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

Andrew Haley aph at redhat.com
Thu Apr 23 16:46:28 UTC 2015


On 04/23/2015 04:13 PM, Edward Nevill wrote:
> On Thu, 2015-04-23 at 08:40 +0100, Andrew Haley wrote:
>> On 22/04/15 10:40, Edward Nevill wrote:
>>> If there is no other feedback shall I prepare a revised patch with R29 marked NS?
>>
>> I think you should.  I'm as certain as I can be that the GC root-
>> finding code won't find an OOP saved in R29 and then pushed by
>> native code.
> 
> Done.
> 
> http://cr.openjdk.java.net/~enevill/8075930/webrev.04/

Please run webrev after committing, so that the webrev is a proper
changeset.  Please make sure that the jcheck extension is enabled.

http://openjdk.java.net/projects/code-tools/jcheck/

> However I don't believe it makes any difference to the code
> generated. C2 will still use R29 as a general purpose register, and
> will still not spill it on a method call (I have checked).
> 
> I think that in order to do a GC root scan it must be at a safe
> point and I don't believe it can be at a safe point in native code.

Sure it can.  Native methods are always safepoints, as are calls to
the runtime to allocate objects, etc.  But all such calls have a
wrapper, and it pushes FP, it has an OopMap, so it should be fine.

> In compiled code it uses the OopMaps, unwinds the stack and finds
> the OOP in R29.

Okay, I see.

Thanks,
Andrew.


More information about the aarch64-port-dev mailing list