src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp
changeset 47916 bdbef8638948
parent 47586 07ad034e0c29
child 48332 651a95f30dfb
equal deleted inserted replaced
47915:d4af6b80aec3 47916:bdbef8638948
   692 
   692 
   693   __ dispatch_next(state, step);
   693   __ dispatch_next(state, step);
   694   return entry;
   694   return entry;
   695 }
   695 }
   696 
   696 
   697 address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state, int step) {
   697 address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state, int step, address continuation) {
   698   address entry = __ pc();
   698   address entry = __ pc();
   699   // If state != vtos, we're returning from a native method, which put it's result
   699   // If state != vtos, we're returning from a native method, which put it's result
   700   // into the result register. So move the value out of the return register back
   700   // into the result register. So move the value out of the return register back
   701   // to the TOS cache of current frame.
   701   // to the TOS cache of current frame.
   702 
   702 
   719 
   719 
   720   // Handle a pending exception, fall through if none.
   720   // Handle a pending exception, fall through if none.
   721   __ check_and_forward_exception(R11_scratch1, R12_scratch2);
   721   __ check_and_forward_exception(R11_scratch1, R12_scratch2);
   722 
   722 
   723   // Start executing bytecodes.
   723   // Start executing bytecodes.
   724   __ dispatch_next(state, step);
   724   if (continuation == NULL) {
       
   725     __ dispatch_next(state, step);
       
   726   } else {
       
   727     __ jump_to_entry(continuation, R11_scratch1);
       
   728   }
   725 
   729 
   726   return entry;
   730   return entry;
   727 }
   731 }
   728 
   732 
   729 address TemplateInterpreterGenerator::generate_safept_entry_for(TosState state, address runtime_entry) {
   733 address TemplateInterpreterGenerator::generate_safept_entry_for(TosState state, address runtime_entry) {