diff options
| author | bors <bors@rust-lang.org> | 2025-05-12 17:39:21 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2025-05-12 17:39:21 +0000 |
| commit | 1a7f290a9aedc138edf9c88a82019292019754d9 (patch) | |
| tree | 4746f5f00e66e349bd24cd7625b5043728be8879 /compiler/rustc_codegen_llvm/src/llvm/mod.rs | |
| parent | 420ca7104f4db107837cba4d8e48a82c53fcb76c (diff) | |
| parent | eccf0647d3dfcef826a40fdcc7cde279ea154eaf (diff) | |
| download | rust-1a7f290a9aedc138edf9c88a82019292019754d9.tar.gz rust-1a7f290a9aedc138edf9c88a82019292019754d9.zip | |
Auto merge of #140914 - Zalathar:asm-bindings, r=compiler-errors
cg_llvm: Clean up some inline assembly bindings This PR combines a few loosely-related cleanups to LLVM bindings related to inline assembly. These include: - Replacing `LLVMRustInlineAsm` with LLVM-C's `LLVMGetInlineAsm` - Adjusting FFI declarations to avoid the need for explicit `as_c_char_ptr` conversions - Flattening control flow in `inline_asm_call` There should be no functional changes.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/llvm/mod.rs')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/llvm/mod.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/rustc_codegen_llvm/src/llvm/mod.rs b/compiler/rustc_codegen_llvm/src/llvm/mod.rs index 606d97619a0..ed23f911930 100644 --- a/compiler/rustc_codegen_llvm/src/llvm/mod.rs +++ b/compiler/rustc_codegen_llvm/src/llvm/mod.rs @@ -441,3 +441,11 @@ pub(crate) fn set_dso_local<'ll>(v: &'ll Value) { LLVMRustSetDSOLocal(v, true); } } + +/// Safe wrapper for `LLVMAppendModuleInlineAsm`, which delegates to +/// `Module::appendModuleInlineAsm`. +pub(crate) fn append_module_inline_asm<'ll>(llmod: &'ll Module, asm: &[u8]) { + unsafe { + LLVMAppendModuleInlineAsm(llmod, asm.as_ptr(), asm.len()); + } +} |
