[aarch64-port-dev ] Minor patch for shared metaspaces

Andrew Haley aph at redhat.com
Tue Dec 17 02:49:18 PST 2013


We don't need a patchable address for the vtbl_list.

Andrew.


# HG changeset patch
# User aph
# Date 1387277158 18000
#      Tue Dec 17 05:45:58 2013 -0500
# Node ID 82b6dcaa541b86cbc85a8744b8b1a41127e0a7b2
# Parent  18ff7f6f689d8432df5cbc40c4fcc67a26450dbf
We don't need a patchable address for the vtbl_list.

diff -r 18ff7f6f689d -r 82b6dcaa541b src/cpu/aarch64/vm/metaspaceShared_aarch64.cpp
--- a/src/cpu/aarch64/vm/metaspaceShared_aarch64.cpp	Mon Dec 16 18:01:33 2013 +0000
+++ b/src/cpu/aarch64/vm/metaspaceShared_aarch64.cpp	Tue Dec 17 05:45:58 2013 -0500
@@ -96,7 +96,6 @@
       // Load rscratch1 with a value indicating vtable/offset pair.
       // -- bits[ 7..0]  (8 bits) which virtual method in table?
       // -- bits[12..8]  (5 bits) which virtual method table?
-      // -- must fit in 13-bit instruction immediate field.
       __ mov(rscratch1, (i << 8) + j);
       __ b(common_code);
     }
@@ -107,7 +106,7 @@
   Register tmp0 = r10, tmp1 = r11;       // AAPCS64 temporary registers
   __ enter();
   __ lsr(tmp0, rscratch1, 8);            // isolate vtable identifier.
-  __ lea(tmp1, (address)vtbl_list);      // address of list of vtable pointers.
+  __ mov(tmp1, (address)vtbl_list);      // address of list of vtable pointers.
   __ ldr(tmp1, Address(tmp1, tmp0, Address::lsl(LogBytesPerWord))); // get correct vtable pointer.
   __ str(tmp1, Address(c_rarg0));        // update vtable pointer in obj.
   __ add(rscratch1, tmp1, rscratch1, ext::uxtb, LogBytesPerWord); // address of real method pointer.



More information about the aarch64-port-dev mailing list