summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-12-24 15:24:32 +1100
committerJohn Hodge <tpg@mutabah.net>2016-12-24 15:24:32 +1100
commitd501dd243154e006d95d7223152da0a5f5fc6720 (patch)
treec094d00f969c8bd143c452d85a4401e199a67646 /src
parentd12a8a886caf2e0edf33c1af831b1df990d2c892 (diff)
downloadmrust-d501dd243154e006d95d7223152da0a5f5fc6720.tar.gz
Trans C - Fix some bad atomics
Diffstat (limited to 'src')
-rw-r--r--src/trans/codegen_c.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/trans/codegen_c.cpp b/src/trans/codegen_c.cpp
index 0552d118..e1f4b0ad 100644
--- a/src/trans/codegen_c.cpp
+++ b/src/trans/codegen_c.cpp
@@ -1097,6 +1097,14 @@ namespace {
else if( name == "atomic_cxchg_acqrel_failrelaxed" ) {
emit_atomic_cxchg(e, "memory_order_acq_rel", "memory_order_relaxed");
}
+ // _rel = Release, Relaxed (not Release,Release)
+ else if( name == "atomic_cxchg_rel" ) {
+ emit_atomic_cxchg(e, "memory_order_release", "memory_order_relaxed");
+ }
+ // _acqrel = Release, Acquire (not AcqRel,AcqRel)
+ else if( name == "atomic_cxchg_acqrel" ) {
+ emit_atomic_cxchg(e, "memory_order_acq_rel", "memory_order_acquire");
+ }
else if( name.compare(0, 7+6+4, "atomic_cxchg_fail") == 0 ) {
auto fail_ordering = H::get_atomic_ordering(mir_res, name, 7+6+4);
emit_atomic_cxchg(e, "memory_order_seq_cst", fail_ordering);