< 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 >