< prev index next >
src/hotspot/cpu/sparc/templateInterpreterGenerator_sparc.cpp
Print this page
@@ -311,11 +311,11 @@
return entry;
}
-address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state, int step) {
+address TemplateInterpreterGenerator::generate_deopt_entry_for(TosState state, int step, address continuation) {
address entry = __ pc();
__ get_constant_pool_cache(LcpoolCache); // load LcpoolCache
#if INCLUDE_JVMCI
// Check if we need to take lock at entry of synchronized method. This can
// only occur on method entry so emit it only for vtos with step 0.
@@ -348,11 +348,15 @@
__ br_null_short(Gtemp, Assembler::pt, L);
__ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::throw_pending_exception));
__ should_not_reach_here();
__ bind(L);
}
+ if (continuation == NULL) {
__ dispatch_next(state, step);
+ } else {
+ __ jump_to_entry(continuation);
+ }
return entry;
}
// A result handler converts/unboxes a native call result into
// a java interpreter/compiler result. The current frame is an
< prev index next >