about summary refs log tree commit diff
path: root/src/librustc_codegen_llvm/llvm
diff options
context:
space:
mode:
authorDenis Merigoux <denis.merigoux@gmail.com>2018-08-21 17:54:12 +0200
committerEduard-Mihai Burtescu <edy.burt@gmail.com>2018-11-16 14:11:09 +0200
commit275589150b3ea0f077ccbfd4b6343aaa6e9683ad (patch)
tree5a721a072656cf8c5d610497590e9ecd3c1ecc4e /src/librustc_codegen_llvm/llvm
parent1bcb4df16678a71b484ea9d1b65911f22b381d86 (diff)
downloadrust-275589150b3ea0f077ccbfd4b6343aaa6e9683ad.tar.gz
rust-275589150b3ea0f077ccbfd4b6343aaa6e9683ad.zip
Generalized AtomicRmwBinOp for BuilderMethods
Diffstat (limited to 'src/librustc_codegen_llvm/llvm')
-rw-r--r--src/librustc_codegen_llvm/llvm/ffi.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/librustc_codegen_llvm/llvm/ffi.rs b/src/librustc_codegen_llvm/llvm/ffi.rs
index dd47024a657..b44b611f439 100644
--- a/src/librustc_codegen_llvm/llvm/ffi.rs
+++ b/src/librustc_codegen_llvm/llvm/ffi.rs
@@ -244,6 +244,24 @@ pub enum AtomicRmwBinOp {
     AtomicUMin = 10,
 }
 
+impl AtomicRmwBinOp {
+    pub fn from_generic(op : traits::AtomicRmwBinOp) -> Self {
+        match op {
+            traits::AtomicRmwBinOp::AtomicXchg => AtomicRmwBinOp::AtomicXchg,
+            traits::AtomicRmwBinOp::AtomicAdd => AtomicRmwBinOp::AtomicAdd,
+            traits::AtomicRmwBinOp::AtomicSub => AtomicRmwBinOp::AtomicSub,
+            traits::AtomicRmwBinOp::AtomicAnd => AtomicRmwBinOp::AtomicAnd,
+            traits::AtomicRmwBinOp::AtomicNand => AtomicRmwBinOp::AtomicNand,
+            traits::AtomicRmwBinOp::AtomicOr => AtomicRmwBinOp::AtomicOr,
+            traits::AtomicRmwBinOp::AtomicXor => AtomicRmwBinOp::AtomicXor,
+            traits::AtomicRmwBinOp::AtomicMax => AtomicRmwBinOp::AtomicMax,
+            traits::AtomicRmwBinOp::AtomicMin => AtomicRmwBinOp::AtomicMin,
+            traits::AtomicRmwBinOp::AtomicUMax => AtomicRmwBinOp::AtomicUMax,
+            traits::AtomicRmwBinOp::AtomicUMin => AtomicRmwBinOp::AtomicUMin
+        }
+    }
+}
+
 /// LLVMAtomicOrdering
 #[derive(Copy, Clone)]
 #[repr(C)]