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