Skip to content
This repository was archived by the owner on Feb 2, 2023. It is now read-only.

Commit a0b1ba1

Browse files
author
Vladimir Kempik
committed
8267235: [macos_aarch64] InterpreterRuntime::throw_pending_exception messing up LR results in crash
Backport-of: ca93399af103384e750dabf3abcc6e8392bcf3f4
1 parent 0903e10 commit a0b1ba1

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -684,6 +684,11 @@ void MacroAssembler::call_VM_base(Register oop_result,
684684
// do the call, remove parameters
685685
MacroAssembler::call_VM_leaf_base(entry_point, number_of_arguments, &l);
686686

687+
// lr could be poisoned with PAC signature during throw_pending_exception
688+
// if it was tail-call optimized by compiler, since lr is not callee-saved
689+
// reload it with proper value
690+
adr(lr, l);
691+
687692
// reset last Java frame
688693
// Only interpreter should have to clear fp
689694
reset_last_Java_frame(true);

0 commit comments

Comments
 (0)