aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_utility.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-10-26 11:44:25 +0100
committergingerBill <bill@gingerbill.org>2021-10-26 11:44:25 +0100
commit72cc92dc5cf9e96b484020e3036487d8548f4f52 (patch)
tree0735619b46d73944c95cd6fc138ebe613850358d /src/llvm_backend_utility.cpp
parentc9e6862332fc3b0beb8b939d5dae9bba96bc6879 (diff)
Add `llvm_get_inline_asm` for future compatibility
Diffstat (limited to 'src/llvm_backend_utility.cpp')
-rw-r--r--src/llvm_backend_utility.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/llvm_backend_utility.cpp b/src/llvm_backend_utility.cpp
index 0531c62bb..948180f30 100644
--- a/src/llvm_backend_utility.cpp
+++ b/src/llvm_backend_utility.cpp
@@ -1379,3 +1379,16 @@ lbValue lb_soa_struct_cap(lbProcedure *p, lbValue value) {
}
return lb_emit_struct_ev(p, value, cast(i32)n);
}
+
+LLVMValueRef llvm_get_inline_asm(LLVMTypeRef func_type, String const &str, String const &clobbers, bool has_side_effects=true, bool is_align_stack=false, LLVMInlineAsmDialect dialect=LLVMInlineAsmDialectATT) {
+ return LLVMGetInlineAsm(func_type,
+ cast(char *)str.text, cast(size_t)str.len,
+ cast(char *)clobbers.text, cast(size_t)clobbers.len,
+ /*HasSideEffects*/true, /*IsAlignStack*/false,
+ dialect
+ #if LLVM_VERSION_MAJOR >= 13
+ , /*CanThrow*/false
+ #endif
+ );
+}
+