< prev index next >

src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp

Print this page

        

*** 692,702 **** __ dispatch_next(state, step); return entry; } ! address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state, int step) { address entry = __ pc(); // If state != vtos, we're returning from a native method, which put it's result // into the result register. So move the value out of the return register back // to the TOS cache of current frame. --- 692,702 ---- __ dispatch_next(state, step); return entry; } ! address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state, int step, address continuation) { address entry = __ pc(); // If state != vtos, we're returning from a native method, which put it's result // into the result register. So move the value out of the return register back // to the TOS cache of current frame.
*** 719,729 **** --- 719,733 ---- // Handle a pending exception, fall through if none. __ check_and_forward_exception(R11_scratch1, R12_scratch2); // Start executing bytecodes. + if (continuation == NULL) { __ dispatch_next(state, step); + } else { + __ jump_to_entry(continuation, R11_scratch1); + } return entry; } address TemplateInterpreterGenerator::generate_safept_entry_for(TosState state, address runtime_entry) {
< prev index next >