src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp
changeset 48014 ae7bd89bdc0d
parent 47586 07ad034e0c29
child 48332 651a95f30dfb
--- a/src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp	Tue Nov 21 10:21:24 2017 -0600
+++ b/src/hotspot/cpu/ppc/templateInterpreterGenerator_ppc.cpp	Tue Nov 21 09:04:42 2017 -0800
@@ -694,7 +694,7 @@
   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();
   // 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
@@ -721,7 +721,11 @@
   __ check_and_forward_exception(R11_scratch1, R12_scratch2);
 
   // Start executing bytecodes.
-  __ dispatch_next(state, step);
+  if (continuation == NULL) {
+    __ dispatch_next(state, step);
+  } else {
+    __ jump_to_entry(continuation, R11_scratch1);
+  }
 
   return entry;
 }