< prev index next >

src/cpu/arm/vm/templateTable_arm.cpp

Print this page

        

@@ -2842,10 +2842,18 @@
     __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::register_finalizer), R1);
 
     __ bind(skip_register_finalizer);
   }
 
+  // Explicitly reset last_sp, for handling special case in TemplateInterpreter::deopt_reexecute_entry
+#ifndef AARCH64
+  if (state == vtos) {
+    __ mov(Rtemp, 0);
+    __ str(Rtemp, Address(FP, frame::interpreter_frame_last_sp_offset * wordSize));
+  }
+#endif
+
   // Narrow result if state is itos but result type is smaller.
   // Need to narrow in the return bytecode rather than in generate_return_entry
   // since compiled code callers expect the result to already be narrowed.
   if (state == itos) {
     __ narrow(R0_tos);
< prev index next >