hotspot/src/cpu/sparc/vm/frame_sparc.cpp
changeset 40332 a52d1e719c4d
parent 38144 0976c0c5c5d3
child 40337 0e9a027b0f8a
equal deleted inserted replaced
40331:b6c370a546fc 40332:a52d1e719c4d
   223     }
   223     }
   224 
   224 
   225     // Entry frame checks
   225     // Entry frame checks
   226     if (is_entry_frame()) {
   226     if (is_entry_frame()) {
   227       // an entry frame must have a valid fp.
   227       // an entry frame must have a valid fp.
   228 
   228       return fp_safe && is_entry_frame_valid(thread);
   229       if (!fp_safe) {
       
   230         return false;
       
   231       }
       
   232 
       
   233       // Validate the JavaCallWrapper an entry frame must have
       
   234 
       
   235       address jcw = (address)entry_frame_call_wrapper();
       
   236 
       
   237       bool jcw_safe = (jcw <= thread->stack_base()) && ( jcw > _FP);
       
   238 
       
   239       return jcw_safe;
       
   240 
       
   241     }
   229     }
   242 
   230 
   243     intptr_t* younger_sp = sp();
   231     intptr_t* younger_sp = sp();
   244     intptr_t* _SENDER_SP = sender_sp(); // sender is actually just _FP
   232     intptr_t* _SENDER_SP = sender_sp(); // sender is actually just _FP
   245     bool adjusted_stack = is_interpreted_frame();
   233     bool adjusted_stack = is_interpreted_frame();
   288     // We should never be able to see an adapter if the current frame is something from code cache
   276     // We should never be able to see an adapter if the current frame is something from code cache
   289     if (sender_blob->is_adapter_blob()) {
   277     if (sender_blob->is_adapter_blob()) {
   290       return false;
   278       return false;
   291     }
   279     }
   292 
   280 
   293     if( sender.is_entry_frame()) {
   281     if (sender.is_entry_frame()) {
   294       // Validate the JavaCallWrapper an entry frame must have
   282       return sender.is_entry_frame_valid(thread);
   295 
       
   296       address jcw = (address)sender.entry_frame_call_wrapper();
       
   297 
       
   298       bool jcw_safe = (jcw <= thread->stack_base()) && ( jcw > sender_fp);
       
   299 
       
   300       return jcw_safe;
       
   301     }
   283     }
   302 
   284 
   303     // If the frame size is 0 something (or less) is bad because every nmethod has a non-zero frame size
   285     // If the frame size is 0 something (or less) is bad because every nmethod has a non-zero frame size
   304     // because you must allocate window space
   286     // because you must allocate window space
   305 
   287