diff options
| author | Denis Merigoux <denis.merigoux@gmail.com> | 2018-08-21 17:54:12 +0200 |
|---|---|---|
| committer | Eduard-Mihai Burtescu <edy.burt@gmail.com> | 2018-11-16 14:11:09 +0200 |
| commit | 275589150b3ea0f077ccbfd4b6343aaa6e9683ad (patch) | |
| tree | 5a721a072656cf8c5d610497590e9ecd3c1ecc4e /src/librustc_codegen_llvm/llvm | |
| parent | 1bcb4df16678a71b484ea9d1b65911f22b381d86 (diff) | |
| download | rust-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.rs | 18 |
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)] |
