hotspot/src/share/vm/runtime/deoptimization.cpp
changeset 34651 07b1cc0f6040
parent 34185 ee71c590a456
child 35071 a0910b1d3e0d
equal deleted inserted replaced
34648:b7ea5d095ef5 34651:07b1cc0f6040
   569   // incremented at the beginning of fetch_unroll_info() and (in C2) at
   569   // incremented at the beginning of fetch_unroll_info() and (in C2) at
   570   // the beginning of uncommon_trap().
   570   // the beginning of uncommon_trap().
   571   thread->dec_in_deopt_handler();
   571   thread->dec_in_deopt_handler();
   572 }
   572 }
   573 
   573 
       
   574 // Moved from cpu directories because none of the cpus has callee save values.
       
   575 // If a cpu implements callee save values, move this to deoptimization_<cpu>.cpp.
       
   576 void Deoptimization::unwind_callee_save_values(frame* f, vframeArray* vframe_array) {
       
   577 
       
   578   // This code is sort of the equivalent of C2IAdapter::setup_stack_frame back in
       
   579   // the days we had adapter frames. When we deoptimize a situation where a
       
   580   // compiled caller calls a compiled caller will have registers it expects
       
   581   // to survive the call to the callee. If we deoptimize the callee the only
       
   582   // way we can restore these registers is to have the oldest interpreter
       
   583   // frame that we create restore these values. That is what this routine
       
   584   // will accomplish.
       
   585 
       
   586   // At the moment we have modified c2 to not have any callee save registers
       
   587   // so this problem does not exist and this routine is just a place holder.
       
   588 
       
   589   assert(f->is_interpreted_frame(), "must be interpreted");
       
   590 }
   574 
   591 
   575 // Return BasicType of value being returned
   592 // Return BasicType of value being returned
   576 JRT_LEAF(BasicType, Deoptimization::unpack_frames(JavaThread* thread, int exec_mode))
   593 JRT_LEAF(BasicType, Deoptimization::unpack_frames(JavaThread* thread, int exec_mode))
   577 
   594 
   578   // We are already active int he special DeoptResourceMark any ResourceObj's we
   595   // We are already active int he special DeoptResourceMark any ResourceObj's we