8214128: ARM32: wrong stack alignment on Deoptimization::unpack_frames
authorbulasevich
Mon, 10 Dec 2018 17:34:49 +0300
changeset 52924 420ff459906f
parent 52923 8790e9f9f984
child 52925 9c18c9d839d3
8214128: ARM32: wrong stack alignment on Deoptimization::unpack_frames Reviewed-by: dsamersoff
src/hotspot/cpu/arm/sharedRuntime_arm.cpp
--- a/src/hotspot/cpu/arm/sharedRuntime_arm.cpp	Mon Dec 10 15:31:36 2018 +0100
+++ b/src/hotspot/cpu/arm/sharedRuntime_arm.cpp	Mon Dec 10 17:34:49 2018 +0300
@@ -1580,9 +1580,9 @@
   __ 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();
   }
@@ -1747,8 +1747,8 @@
   // 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);