diff options
| author | bors <bors@rust-lang.org> | 2013-05-20 19:25:29 -0700 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2013-05-20 19:25:29 -0700 |
| commit | 6c0a4693c94ffbb5601b59d0c82c7785d347107d (patch) | |
| tree | fd2d368589a1edf333623eeb9d0e91d2d75be38d /src/rustllvm/RustWrapper.cpp | |
| parent | 32e30aaa00d098d81fd269d48845cbfd95d20710 (diff) | |
| parent | 474d9983beb8a5770a202c552f36c14fa52917a2 (diff) | |
| download | rust-6c0a4693c94ffbb5601b59d0c82c7785d347107d.tar.gz rust-6c0a4693c94ffbb5601b59d0c82c7785d347107d.zip | |
auto merge of #6649 : brson/rust/atomic-load-align, r=graydon
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)); } |
