< prev index next >

src/hotspot/cpu/arm/sharedRuntime_arm.cpp

Print this page

        

@@ -1573,13 +1573,13 @@
 
   // Call unpack_frames with proper arguments
   __ mov(R0, Rthread);
   __ mov(R1, Rkind);
 
-  pc_offset = __ set_last_Java_frame(SP, FP, false, Rtemp);
+  pc_offset = __ set_last_Java_frame(SP, FP, true, Rtemp);
   assert(((__ pc()) - start) == __ offset(), "warning: start differs from code_begin");
-  __ call(CAST_FROM_FN_PTR(address, Deoptimization::unpack_frames));
+  __ call_VM_leaf(CAST_FROM_FN_PTR(address, Deoptimization::unpack_frames));
   if (pc_offset == -1) {
     pc_offset = __ offset();
   }
   oop_maps->add_gc_map(pc_offset, new OopMap(frame_size_in_words * VMRegImpl::slots_per_word, 0));
   __ reset_last_Java_frame(Rtemp); // Rtemp free since scratched by far call

@@ -1740,12 +1740,12 @@
   __ mov(FP, SP);
 
   // Call unpack_frames with proper arguments
   __ mov(R0, Rthread);
   __ mov(R1, Deoptimization::Unpack_uncommon_trap);
-  __ set_last_Java_frame(SP, FP, false, Rtemp);
-  __ call(CAST_FROM_FN_PTR(address, Deoptimization::unpack_frames));
+  __ set_last_Java_frame(SP, FP, true, Rtemp);
+  __ call_VM_leaf(CAST_FROM_FN_PTR(address, Deoptimization::unpack_frames));
   //  oop_maps->add_gc_map(__ pc() - start, new OopMap(frame_size_in_words, 0));
   __ reset_last_Java_frame(Rtemp);
 
   __ mov(SP, FP);
   __ pop(RegisterSet(FP) | RegisterSet(PC));
< prev index next >