[aarch64-port-dev ] How to skip the synchronization entry

Andrew Haley aph at redhat.com
Wed Aug 15 07:55:25 UTC 2018


On 08/15/2018 08:05 AM, Patrick Zhang wrote:

> I have a very simple function that directly returns the an input int
> parameter inside, there are x29, x30 registers being protected
> before/after "mov w0 w2". I have two questions here:
> 1. Are these Link Register and Frame Pointer respectively according
> to the A64 instruction set document?

Sure.

> 2. Any special flags to remove them for debugging purpose? I tried
> -XX:-PreserveFramePoint but no effect.

No.  We could in theory manage withut saving fp but it wouldn't make
very much difference.  We still have to restore lr, and fp is useful
as a callee-saved scratch register.

> nop
> sub        sp, sp, #0x20
> stp         x29, x30, [sp,#16] ;*synchronization entry
> mov      w0, w2
> ldp        x29, x30, [sp,#16]
> add       sp, sp, #0x20
> ldr         x8, [x28,#264]
> ldr         wzr, [x8] ;   {poll_return}
> ret

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


More information about the aarch64-port-dev mailing list