RFR: Aarch64: Fix C1 LRB call in atomic_xchg intrinsic

Roman Kennke rkennke at redhat.com
Wed Aug 14 19:04:57 UTC 2019


I made a mistake when cherry-picking the atomic-xchg-fix into sh/jdk: I
need to add a NULL address argument to the LRB call in atomic_xchg in
aarch64 just like in x86.

diff -r 9d02705e1563 -r 076c6c0cd8e9
src/hotspot/cpu/aarch64/gc/shenandoah/c1/shenandoahBarrierSetC1_aarch64.cpp
---
a/src/hotspot/cpu/aarch64/gc/shenandoah/c1/shenandoahBarrierSetC1_aarch64.cpp
      Tue Aug 13 22:57:21 2019 +0200
+++
b/src/hotspot/cpu/aarch64/gc/shenandoah/c1/shenandoahBarrierSetC1_aarch64.cpp
      Wed Aug 14 21:04:33 2019 +0200
@@ -99,7 +99,7 @@
   __ xchg(access.resolved_addr(), value_opr, result, tmp);

   if (access.is_oop()) {
-    result = load_reference_barrier(access.gen(), result);
+    result = load_reference_barrier(access.gen(), result,
LIR_OprFact::addressConst(0));
     LIR_Opr tmp = gen->new_register(type);
     __ move(result, tmp);
     result = tmp;


Testing: hotspot_gc_shenandoah on aarch64

Ok?



More information about the shenandoah-dev mailing list