RFR: 8267235: [macos_aarch64] InterpreterRuntime::throw_pending_exception messing up LR results in crash

Andrew Haley aph at openjdk.java.net
Thu May 20 13:18:30 UTC 2021


On Wed, 19 May 2021 12:54:03 GMT, Vladimir Kempik <vkempik at openjdk.org> wrote:

> Please review this patch for call_VM_Base routine.
> it's expected there the LR is callee-saved register, but it's not on aarch64.
> when InterpreterRuntime::throw_pending_exception is tail-call optimized,
> the last subroutine before return is pthread_jit_write_protect_np which pac-sign LR.
> It can only be reproduced in macos 11.4beta (just run J2Ddemo ) but in fact affects every aarch64 build.

src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp line 687:

> 685:                             JavaThread::frame_anchor_offset()
> 686:                             + JavaFrameAnchor::last_Java_pc_offset()));
> 687: 

Is this any different from `adr(lr, l)` ?

-------------

PR: https://git.openjdk.java.net/jdk/pull/4115


More information about the hotspot-runtime-dev mailing list