From 474d9983beb8a5770a202c552f36c14fa52917a2 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Mon, 20 May 2013 17:28:06 -0700 Subject: rustllvm: Use target alignment for atomic load/store --- src/rustllvm/RustWrapper.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/rustllvm/RustWrapper.cpp') 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)); } -- cgit 1.4.1-3-g733a5