aboutsummaryrefslogtreecommitdiff
path: root/src/zig_llvm.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2016-05-06 15:46:38 -0700
committerAndrew Kelley <superjoe30@gmail.com>2016-05-06 15:46:38 -0700
commit100802cdc0a898b948d30b464ac2348be1928080 (patch)
tree00aea62fb0d7a5b63637fc7a73f3f3be47f70fc8 /src/zig_llvm.cpp
parent0c96920172dee530f445e4ef304954d0fe233bfa (diff)
downloadzig-100802cdc0a898b948d30b464ac2348be1928080.tar.gz
zig-100802cdc0a898b948d30b464ac2348be1928080.zip
add debug safety for left shifting
See #46
Diffstat (limited to 'src/zig_llvm.cpp')
-rw-r--r--src/zig_llvm.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/zig_llvm.cpp b/src/zig_llvm.cpp
index 4ef11f4ca2..bf59763cb2 100644
--- a/src/zig_llvm.cpp
+++ b/src/zig_llvm.cpp
@@ -661,14 +661,25 @@ static AtomicOrdering mapFromLLVMOrdering(LLVMAtomicOrdering Ordering) {
LLVMValueRef ZigLLVMBuildCmpXchg(LLVMBuilderRef builder, LLVMValueRef ptr, LLVMValueRef cmp,
LLVMValueRef new_val, LLVMAtomicOrdering success_ordering,
- LLVMAtomicOrdering failure_ordering,
- const char *name)
+ LLVMAtomicOrdering failure_ordering)
{
return wrap(unwrap(builder)->CreateAtomicCmpXchg(unwrap(ptr), unwrap(cmp), unwrap(new_val),
mapFromLLVMOrdering(success_ordering), mapFromLLVMOrdering(failure_ordering),
CrossThread));
}
+LLVMValueRef ZigLLVMBuildNSWShl(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS,
+ const char *name)
+{
+ return wrap(unwrap(builder)->CreateShl(unwrap(LHS), unwrap(RHS), name, false, true));
+}
+
+LLVMValueRef ZigLLVMBuildNUWShl(LLVMBuilderRef builder, LLVMValueRef LHS, LLVMValueRef RHS,
+ const char *name)
+{
+ return wrap(unwrap(builder)->CreateShl(unwrap(LHS), unwrap(RHS), name, false, true));
+}
+
//------------------------------------