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