From ccd88c523597e2e33a32e92175659d8f5e9a475b Mon Sep 17 00:00:00 2001 From: Joshua Yanovski Date: Sun, 14 Dec 2014 01:44:24 -0800 Subject: [PATCH] Add LLVM's unordered intrinsic to Rust. --- src/libcore/intrinsics.rs | 2 ++ src/librustc_trans/trans/intrinsic.rs | 1 + 2 files changed, 3 insertions(+) diff --git a/src/libcore/intrinsics.rs b/src/libcore/intrinsics.rs index 2fc4d23e7fd74..11ea1a4505998 100644 --- a/src/libcore/intrinsics.rs +++ b/src/libcore/intrinsics.rs @@ -77,10 +77,12 @@ extern "rust-intrinsic" { pub fn atomic_load(src: *const T) -> T; pub fn atomic_load_acq(src: *const T) -> T; pub fn atomic_load_relaxed(src: *const T) -> T; + pub fn atomic_load_unordered(src: *const T) -> T; pub fn atomic_store(dst: *mut T, val: T); pub fn atomic_store_rel(dst: *mut T, val: T); pub fn atomic_store_relaxed(dst: *mut T, val: T); + pub fn atomic_store_unordered(dst: *mut T, val: T); pub fn atomic_xchg(dst: *mut T, src: T) -> T; pub fn atomic_xchg_acq(dst: *mut T, src: T) -> T; diff --git a/src/librustc_trans/trans/intrinsic.rs b/src/librustc_trans/trans/intrinsic.rs index 890652401d7eb..d02eb3bc5c7f8 100644 --- a/src/librustc_trans/trans/intrinsic.rs +++ b/src/librustc_trans/trans/intrinsic.rs @@ -518,6 +518,7 @@ pub fn trans_intrinsic_call<'a, 'blk, 'tcx>(mut bcx: Block<'blk, 'tcx>, llvm::SequentiallyConsistent } else { match split[2] { + "unordered" => llvm::Unordered, "relaxed" => llvm::Monotonic, "acq" => llvm::Acquire, "rel" => llvm::Release,