From 64ddcb33f431be554449116706eb0d6af2666a11 Mon Sep 17 00:00:00 2001 From: Amanieu d'Antras Date: Sat, 16 Jan 2016 23:40:11 +0000 Subject: Add intrinsics for compare_exchange and compare_exchange_weak --- src/libcore/intrinsics.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/libcore') diff --git a/src/libcore/intrinsics.rs b/src/libcore/intrinsics.rs index 2e2292d63f4..47f5d68f311 100644 --- a/src/libcore/intrinsics.rs +++ b/src/libcore/intrinsics.rs @@ -58,6 +58,33 @@ extern "rust-intrinsic" { pub fn atomic_cxchg_rel(dst: *mut T, old: T, src: T) -> T; pub fn atomic_cxchg_acqrel(dst: *mut T, old: T, src: T) -> T; pub fn atomic_cxchg_relaxed(dst: *mut T, old: T, src: T) -> T; + #[cfg(not(stage0))] + pub fn atomic_cxchg_failrelaxed(dst: *mut T, old: T, src: T) -> T; + #[cfg(not(stage0))] + pub fn atomic_cxchg_failacq(dst: *mut T, old: T, src: T) -> T; + #[cfg(not(stage0))] + pub fn atomic_cxchg_acq_failrelaxed(dst: *mut T, old: T, src: T) -> T; + #[cfg(not(stage0))] + pub fn atomic_cxchg_acqrel_failrelaxed(dst: *mut T, old: T, src: T) -> T; + + #[cfg(not(stage0))] + pub fn atomic_cxchgweak(dst: *mut T, old: T, src: T) -> (T, bool); + #[cfg(not(stage0))] + pub fn atomic_cxchgweak_acq(dst: *mut T, old: T, src: T) -> (T, bool); + #[cfg(not(stage0))] + pub fn atomic_cxchgweak_rel(dst: *mut T, old: T, src: T) -> (T, bool); + #[cfg(not(stage0))] + pub fn atomic_cxchgweak_acqrel(dst: *mut T, old: T, src: T) -> (T, bool); + #[cfg(not(stage0))] + pub fn atomic_cxchgweak_relaxed(dst: *mut T, old: T, src: T) -> (T, bool); + #[cfg(not(stage0))] + pub fn atomic_cxchgweak_failrelaxed(dst: *mut T, old: T, src: T) -> (T, bool); + #[cfg(not(stage0))] + pub fn atomic_cxchgweak_failacq(dst: *mut T, old: T, src: T) -> (T, bool); + #[cfg(not(stage0))] + pub fn atomic_cxchgweak_acq_failrelaxed(dst: *mut T, old: T, src: T) -> (T, bool); + #[cfg(not(stage0))] + pub fn atomic_cxchgweak_acqrel_failrelaxed(dst: *mut T, old: T, src: T) -> (T, bool); pub fn atomic_load(src: *const T) -> T; pub fn atomic_load_acq(src: *const T) -> T; -- cgit 1.4.1-3-g733a5