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