diff options
| author | Brian Anderson <banderson@mozilla.com> | 2013-05-20 17:28:06 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2013-05-20 17:28:06 -0700 |
| commit | 474d9983beb8a5770a202c552f36c14fa52917a2 (patch) | |
| tree | f794f14ce03c53a813dfeefcdfa6c80b40a7d62b /src/rustllvm/RustWrapper.cpp | |
| parent | 26babaafcdbcfdf2e842d84dbeabbed0dae6efef (diff) | |
| download | rust-474d9983beb8a5770a202c552f36c14fa52917a2.tar.gz rust-474d9983beb8a5770a202c552f36c14fa52917a2.zip | |
rustllvm: Use target alignment for atomic load/store
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
| -rw-r--r-- | src/rustllvm/RustWrapper.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp index 9e44abe081c..cff448b6a1a 100644 --- a/src/rustllvm/RustWrapper.cpp +++ b/src/rustllvm/RustWrapper.cpp @@ -548,22 +548,24 @@ extern "C" LLVMTypeRef LLVMMetadataType(void) { extern "C" LLVMValueRef LLVMBuildAtomicLoad(LLVMBuilderRef B, LLVMValueRef source, const char* Name, - AtomicOrdering order) { + AtomicOrdering order, + unsigned alignment) { LoadInst* li = new LoadInst(unwrap(source),0); li->setVolatile(true); li->setAtomic(order); - li->setAlignment(sizeof(intptr_t)); + li->setAlignment(alignment); return wrap(unwrap(B)->Insert(li, Name)); } extern "C" LLVMValueRef LLVMBuildAtomicStore(LLVMBuilderRef B, - LLVMValueRef val, - LLVMValueRef target, - AtomicOrdering order) { + LLVMValueRef val, + LLVMValueRef target, + AtomicOrdering order, + unsigned alignment) { StoreInst* si = new StoreInst(unwrap(val),unwrap(target)); si->setVolatile(true); si->setAtomic(order); - si->setAlignment(sizeof(intptr_t)); + si->setAlignment(alignment); return wrap(unwrap(B)->Insert(si)); } |
