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

Edward Nevill edward.nevill at linaro.org
Tue Apr 28 14:43:45 UTC 2015


On Fri, 2015-04-24 at 15:22 -0700, Dean Long wrote:
> On 4/24/2015 4:35 AM, Edward Nevill wrote:
> > 
> > 
> > On 23 April 2015 at 20:01, Dean Long <dean.long at oracle.com> wrote:

> I was expecting to see r29=Oop, but if it works for x86 I don't see why it wouldn't work for aarch64.
> 
> dl

Hi Dean,

Thanks for this. It was just an example of an OopMap at a safepoint.

However, when I tried to generate a case where it would put R29 into an OopMap and I found I could not. On investigation I found a separate 'reg_class' in aarch64.ad

// Class for all non_special pointer registers
reg_class no_special_ptr_reg(
...
);

which is used for all normal pointers. Unfortunately I had not included R29 in this reg_class, therefore it was never using R29 for a pointer, only for integral values. When I put R29 in this reg_class I get for example.

  0x000003ffa83d7ba4: mov       x29, x13
  0x000003ffa83d7ba8: mov       x1, x13
  0x000003ffa83d7bac: mov       x2, x11
  0x000003ffa83d7bb0: mov       w3, wzr
  0x000003ffa83d7bb4: ldr       w4, [sp,#4]
  0x000003ffa83d7bb8: bl        0x000003ffa80b2300  ; OopMap{rfp=Oop [8]=Oop off=636}
-------------------------------------------------------------^^^^^^^
                                                ;*invokespecial get
                                                ; - java.nio.DirectByteBuffer::get at 117 (line 285)
                                                ; - java.nio.ByteBuffer::get at 5 (line 715)
                                                ; - jdk.internal.jimage.ImageStrings::get at 117 (line 90)
                                                ;   {optimized virtual_call}
  0x000003ffa83d7bbc: mov       x12, x29
  0x000003ffa83d7bc0: ldr       w10, [x12,#12]  ;*getfield mark

It would seem that the patch has already been pushed so I will raise a new JIRA issue and a new patch to include R29 in the no_special_ptr_reg class.

Thanks for your help spotting this!,
Ed.




More information about the aarch64-port-dev mailing list