changeset 9467:2d8e910c71e3

8267235: [macos_aarch64] InterpreterRuntime::throw_pending_exception messing up LR results in crash Reviewed-by: akozlov, aph
author vkempik
date Thu, 20 May 2021 15:46:53 +0000
parents 25016dd2c4cd
children 85c1e19cae36
files src/cpu/aarch64/vm/macroAssembler_aarch64.cpp
diffstat 1 files changed, 5 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp	Tue Jun 24 07:10:06 2014 -0700
+++ b/src/cpu/aarch64/vm/macroAssembler_aarch64.cpp	Thu May 20 15:46:53 2021 +0000
@@ -644,6 +644,11 @@
   // do the call, remove parameters
   MacroAssembler::call_VM_leaf_base(entry_point, number_of_arguments, &l);
 
+  // lr could be poisoned with PAC signature during throw_pending_exception
+  // if it was tail-call optimized by compiler, since lr is not callee-saved
+  // reload it with proper value
+  adr(lr, l);
+
   // reset last Java frame
   // Only interpreter should have to clear fp
   reset_last_Java_frame(true);