about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorLuqman Aden <laden@csclub.uwaterloo.ca>2012-10-21 22:23:50 -0400
committerLuqman Aden <laden@csclub.uwaterloo.ca>2012-10-21 22:23:50 -0400
commite1db959ec22712376763e062dc2fbffc18f33d9c (patch)
tree63c0810cfa7f2860e77be5885cda1c9eead3dc71 /src/rustllvm/RustWrapper.cpp
parent082d3d51674203d97fd21e6cda6181b4dccfb2e1 (diff)
downloadrust-e1db959ec22712376763e062dc2fbffc18f33d9c.tar.gz
rust-e1db959ec22712376763e062dc2fbffc18f33d9c.zip
rustc: add new intrinsics - atomic_cxchg{_acq,_rel}
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
-rw-r--r--src/rustllvm/RustWrapper.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp
index 498a4e137f0..39a707ad320 100644
--- a/src/rustllvm/RustWrapper.cpp
+++ b/src/rustllvm/RustWrapper.cpp
@@ -482,6 +482,14 @@ extern "C" LLVMTypeRef LLVMMetadataType(void) {
   return LLVMMetadataTypeInContext(LLVMGetGlobalContext());
 }
 
+extern "C" LLVMValueRef LLVMBuildAtomicCmpXchg(LLVMBuilderRef B,
+                                               LLVMValueRef target,
+                                               LLVMValueRef old,
+                                               LLVMValueRef source,
+                                               AtomicOrdering order) {
+    return wrap(unwrap(B)->CreateAtomicCmpXchg(unwrap(target), unwrap(old),
+                                               unwrap(source), order));
+}
 extern "C" LLVMValueRef LLVMBuildAtomicRMW(LLVMBuilderRef B,
                                            AtomicRMWInst::BinOp op,
                                            LLVMValueRef target,