[aarch64-port-dev ] RFR: 8075930: AARCH64: Use FP Register in C2

Andrew Haley aph at redhat.com
Wed Apr 22 09:54:26 UTC 2015


On 04/22/2015 10:40 AM, Edward Nevill wrote:

> Yes, update_map_with_saved_link does take care of R29 and I have
> stepped through it in gdb to ensure that link_addr is in fact
> pointing at the saved fp.
> 
> I made R29 SOE rather than NS because I simply copied what was done
> on x86 where RBP is marked as SOE.
> 
> I don't believe it makes any difference to the code generation since
> we don't support callee saved registers, therefore it won't attempt
> to save R29 on entry even if it is marked as SOE. However, it may be
> clearer to mark it as NS.
> 
> If there is no other feedback shall I prepare a revised patch with
> R29 marked NS?

I really want to understand this properly.  Are we sure that when
deoptimization happens (or when the stack is scanned for GC roots
during a safepoint) the R29 saved by our callee (which may be native
code) will be correctly processed?

As I understand it, garbage collection would have to rewrite the R29
saved by a native code prologue for this to work.  But we don't even
know where in the frame native functions save FP, so I don't see how
this can possibly work.

Andrew.


More information about the aarch64-port-dev mailing list