AArch64 gen_continuation_enter

Andrew Haley aph-open at littlepinkcloud.com
Wed Aug 24 16:09:33 UTC 2022


I'm looking at this in gen_continuation_enter:

       __ call_VM_leaf(CAST_FROM_FN_PTR(address, SharedRuntime::exception_handler_for_return_address), rthread, c_rarg1);

       // see OptoRuntime::generate_exception_blob: r0 -- exception oop, r3 -- exception pc

       __ mov(r1, r0); // the exception handler
       __ mov(r0, r19); // restore return value contaning the exception oop
       __ verify_oop(r0);

       __ leave();
       __ mov(r3, lr);
       __ br(r1); // the exception handler

This read from LR looks wrong. Nothing defines LR at this point: as far as I
can see it probably contains the address of the instruction after the call to
SharedRuntime::exception_handler_for_return_address, but the platform ABI
doesn't require that.

-- 
Andrew Haley  (he/him)
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
https://keybase.io/andrewhaley
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671


More information about the loom-dev mailing list