[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