AArch64 gen_continuation_enter
dean.long at oracle.com
dean.long at oracle.com
Wed Aug 24 18:01:16 UTC 2022
leave() restores rfp and lr.
On 8/24/22 9:09 AM, Andrew Haley wrote:
> 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.
>
More information about the loom-dev
mailing list