diff options
author | John Hodge <tpg@mutabah.net> | 2016-12-24 15:24:32 +1100 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2016-12-24 15:24:32 +1100 |
commit | d501dd243154e006d95d7223152da0a5f5fc6720 (patch) | |
tree | c094d00f969c8bd143c452d85a4401e199a67646 /src | |
parent | d12a8a886caf2e0edf33c1af831b1df990d2c892 (diff) | |
download | mrust-d501dd243154e006d95d7223152da0a5f5fc6720.tar.gz |
Trans C - Fix some bad atomics
Diffstat (limited to 'src')
-rw-r--r-- | src/trans/codegen_c.cpp | 8 |
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); |