RFR: JDK-8214527 AArch64: ZGC for Aarch64
Andrew Haley
aph at redhat.com
Mon Jun 10 16:39:47 UTC 2019
On 6/10/19 3:02 PM, Stuart Monteith wrote:
> Nils' patch for "ZGC Late Barrier Insertion" has been merged
> (http://hg.openjdk.java.net/jdk/jdk/rev/ed12027517c0). I'm now running
> a fresh jtreg test against it with my updated patch here:
>
> http://cr.openjdk.java.net/~smonteith/8214527/webrev.4/
>
> The difference from before are some additions to z_aarch64.ad in order
> to implement the new nodes required by Nils' patch. Running against
> specjbb2015 and Lucene don't throw up any errors.
This hunk is very weird.
--- old/src/hotspot/cpu/aarch64/assembler_aarch64.cpp 2019-06-10 14:25:39.274238301 +0100
+++ new/src/hotspot/cpu/aarch64/assembler_aarch64.cpp 2019-06-10 14:25:39.026235784 +0100
@@ -1265,6 +1265,13 @@
__ movptr(r, (uint64_t)target());
break;
}
+ case post: {
+ // Post-indexed, just copy the contents of the register. Offset added afterwards.
+ if (_base == r) // it's a nop
+ break;
+ __ mov(r, _base);
+ break;
+ }
default:
ShouldNotReachHere();
}
What is going on here:
+
+ // rscratch1 can be passed as src or dst, so don't use it.
+ RegSet savedRegs = RegSet::of(rscratch2, rheapbase);
+
+ Label done;
+ assert_different_registers(rheapbase, rscratch2, dst);
+ assert_different_registers(rheapbase, rscratch2, src.base());
+
+ __ push(savedRegs, sp);
+
+ // Load bad mask into scratch register.
+ __ ldr(rheapbase, address_bad_mask_from_thread(rthread));
+ __ lea(rscratch2, src);
You load an address into rscratch2 but you do not use rscratch2.
Barrier stubs save int registers but not vectors. Why is that?
Surely this file is nearly identical to x86:
--- /dev/null 2019-06-10 08:42:37.317240407 +0100
+++ new/src/hotspot/os_cpu/linux_aarch64/gc/z/zBackingFile_linux_aarch64.cpp 2019-06-10 14:25:44.374290036 +0100
@@ -0,0 +1,590 @@
--
Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
https://keybase.io/andrewhaley
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
More information about the hotspot-gc-dev
mailing list