hg: shenandoah/jdk9/hotspot: AArchh64: Added missing barriers. Fixed CAS-obj intrinsics C1/C2. Implemented narrow-oop CAS-obj C1/c2.

Andrew Haley aph at redhat.com
Tue Aug 23 21:35:53 UTC 2016


On 23/08/16 12:07, roman at kennke.org wrote:
> Changeset: ceeb425078b2
> Author:    rkennke
> Date:      2016-08-22 21:00 +0000
> URL:       http://hg.openjdk.java.net/shenandoah/jdk9/hotspot/rev/ceeb425078b2
> 
> AArchh64: Added missing barriers. Fixed CAS-obj intrinsics C1/C2. Implemented narrow-oop CAS-obj C1/c2.

+  load_exclusive(tmp, addr, xword, acquire);
+  cmp(tmp, expected);
+  br(Assembler::EQ, store);
+  oopDesc::bs()->interpreter_read_barrier(this, tmp);
+  oopDesc::bs()->interpreter_read_barrier(this, expected);
+  cmp(tmp, expected);
+  br(Assembler::NE, done);
+  bind(store);
+  store_exclusive(tmp, new_val, addr, xword, release);
+  cbnzw(tmp, retry);

Umm, no.  You can't do any memory access in between a load exclusive and a
store exclusive.

Andrew.



More information about the shenandoah-dev mailing list