[aarch64-port-dev ] DMB elimination in C2 synchronization implementation

Andrew Haley aph at redhat.com
Mon Sep 7 11:43:49 UTC 2015


This hunk is odd:

@@ -8381,7 +8458,7 @@
     "cmpw rscratch1, zr\t# EQ on successful write"
   %}

-  ins_encode(aarch64_enc_cmpxchg(mem, oldval, newval));
+  ins_encode(aarch64_enc_cmpxchg_acq(mem, oldval, newval));

   ins_pipe(pipe_slow);
 %}
@@ -8398,7 +8475,7 @@
     "cmpw rscratch1, zr\t# EQ on successful write"
   %}

-  ins_encode(aarch64_enc_cmpxchgw(mem, oldval, newval));
+  ins_encode(aarch64_enc_cmpxchgw_acq(mem, oldval, newval));

   ins_pipe(pipe_slow);
 %}

In it, you strengthen storeLConditional and storeIConditional to use acq.

However, you do not strengthen storePConditional.

What is this for?

Andrew.


More information about the aarch64-port-dev mailing list