diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2016-05-06 15:46:38 -0700 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2016-05-06 15:46:38 -0700 |
| commit | 100802cdc0a898b948d30b464ac2348be1928080 (patch) | |
| tree | 00aea62fb0d7a5b63637fc7a73f3f3be47f70fc8 /src/zig_llvm.cpp | |
| parent | 0c96920172dee530f445e4ef304954d0fe233bfa (diff) | |
| download | zig-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.cpp | 15 |
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)); +} + //------------------------------------ |
