diff options
| author | A.J. Gardner <aaron.j.gardner@gmail.com> | 2017-03-21 19:50:23 -0500 |
|---|---|---|
| committer | A.J. Gardner <aaron.j.gardner@gmail.com> | 2017-04-12 19:12:49 -0500 |
| commit | 9240054b3ee5690b6c75bebdb6316a14bdd46340 (patch) | |
| tree | 0fa69ca152be3ac13f9fa7f2678c118492211214 | |
| parent | 7be5043fd99308135bcd0443f8af6d7e012e4148 (diff) | |
| download | rust-9240054b3ee5690b6c75bebdb6316a14bdd46340.tar.gz rust-9240054b3ee5690b6c75bebdb6316a14bdd46340.zip | |
Expose LLVM appendModuleInlineAsm
| -rw-r--r-- | src/librustc_llvm/ffi.rs | 1 | ||||
| -rw-r--r-- | src/librustc_trans/asm.rs | 2 | ||||
| -rw-r--r-- | src/rustllvm/RustWrapper.cpp | 4 |
3 files changed, 6 insertions, 1 deletions
diff --git a/src/librustc_llvm/ffi.rs b/src/librustc_llvm/ffi.rs index 32c9183ece9..402166cc13f 100644 --- a/src/librustc_llvm/ffi.rs +++ b/src/librustc_llvm/ffi.rs @@ -507,6 +507,7 @@ extern "C" { /// See Module::setModuleInlineAsm. pub fn LLVMSetModuleInlineAsm(M: ModuleRef, Asm: *const c_char); + pub fn LLVMRustAppendModuleInlineAsm(M: ModuleRef, Asm: *const c_char); /// See llvm::LLVMTypeKind::getTypeID. pub fn LLVMRustGetTypeKind(Ty: TypeRef) -> TypeKind; diff --git a/src/librustc_trans/asm.rs b/src/librustc_trans/asm.rs index 577d6798ec3..92cbd004206 100644 --- a/src/librustc_trans/asm.rs +++ b/src/librustc_trans/asm.rs @@ -129,6 +129,6 @@ pub fn trans_global_asm<'a, 'tcx>(ccx: &CrateContext<'a, 'tcx>, ga: &hir::GlobalAsm) { let asm = CString::new(ga.asm.as_str().as_bytes()).unwrap(); unsafe { - llvm::LLVMSetModuleInlineAsm(ccx.llmod(), asm.as_ptr()); + llvm::LLVMRustAppendModuleInlineAsm(ccx.llmod(), asm.as_ptr()); } } diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp index 5ab786f40b9..c24867224ea 100644 --- a/src/rustllvm/RustWrapper.cpp +++ b/src/rustllvm/RustWrapper.cpp @@ -312,6 +312,10 @@ extern "C" LLVMValueRef LLVMRustInlineAsm(LLVMTypeRef Ty, char *AsmString, HasSideEffects, IsAlignStack, fromRust(Dialect))); } +extern "C" void LLVMRustAppendModuleInlineAsm(LLVMModuleRef M, const char *Asm) { + unwrap(M)->appendModuleInlineAsm(StringRef(Asm)); +} + typedef DIBuilder *LLVMRustDIBuilderRef; typedef struct LLVMOpaqueMetadata *LLVMRustMetadataRef; |
