Adjust llvm wrapper for unwinding support for inlineasm
This commit is contained in:
parent
940b2eabad
commit
491dd1f387
3 changed files with 6 additions and 2 deletions
|
@ -450,6 +450,7 @@ pub(crate) fn inline_asm_call(
|
||||||
) -> Option<&'ll Value> {
|
) -> Option<&'ll Value> {
|
||||||
let volatile = if volatile { llvm::True } else { llvm::False };
|
let volatile = if volatile { llvm::True } else { llvm::False };
|
||||||
let alignstack = if alignstack { llvm::True } else { llvm::False };
|
let alignstack = if alignstack { llvm::True } else { llvm::False };
|
||||||
|
let can_throw = llvm::False;
|
||||||
|
|
||||||
let argtys = inputs
|
let argtys = inputs
|
||||||
.iter()
|
.iter()
|
||||||
|
@ -475,6 +476,7 @@ pub(crate) fn inline_asm_call(
|
||||||
volatile,
|
volatile,
|
||||||
alignstack,
|
alignstack,
|
||||||
llvm::AsmDialect::from_generic(dia),
|
llvm::AsmDialect::from_generic(dia),
|
||||||
|
can_throw,
|
||||||
);
|
);
|
||||||
let call = bx.call(fty, v, inputs, None);
|
let call = bx.call(fty, v, inputs, None);
|
||||||
|
|
||||||
|
|
|
@ -1847,6 +1847,7 @@ extern "C" {
|
||||||
SideEffects: Bool,
|
SideEffects: Bool,
|
||||||
AlignStack: Bool,
|
AlignStack: Bool,
|
||||||
Dialect: AsmDialect,
|
Dialect: AsmDialect,
|
||||||
|
CanThrow: Bool,
|
||||||
) -> &Value;
|
) -> &Value;
|
||||||
pub fn LLVMRustInlineAsmVerify(
|
pub fn LLVMRustInlineAsmVerify(
|
||||||
Ty: &Type,
|
Ty: &Type,
|
||||||
|
|
|
@ -445,11 +445,12 @@ extern "C" LLVMValueRef
|
||||||
LLVMRustInlineAsm(LLVMTypeRef Ty, char *AsmString, size_t AsmStringLen,
|
LLVMRustInlineAsm(LLVMTypeRef Ty, char *AsmString, size_t AsmStringLen,
|
||||||
char *Constraints, size_t ConstraintsLen,
|
char *Constraints, size_t ConstraintsLen,
|
||||||
LLVMBool HasSideEffects, LLVMBool IsAlignStack,
|
LLVMBool HasSideEffects, LLVMBool IsAlignStack,
|
||||||
LLVMRustAsmDialect Dialect) {
|
LLVMRustAsmDialect Dialect, LLVMBool CanThrow) {
|
||||||
return wrap(InlineAsm::get(unwrap<FunctionType>(Ty),
|
return wrap(InlineAsm::get(unwrap<FunctionType>(Ty),
|
||||||
StringRef(AsmString, AsmStringLen),
|
StringRef(AsmString, AsmStringLen),
|
||||||
StringRef(Constraints, ConstraintsLen),
|
StringRef(Constraints, ConstraintsLen),
|
||||||
HasSideEffects, IsAlignStack, fromRust(Dialect)));
|
HasSideEffects, IsAlignStack,
|
||||||
|
fromRust(Dialect), CanThrow));
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" bool LLVMRustInlineAsmVerify(LLVMTypeRef Ty, char *Constraints,
|
extern "C" bool LLVMRustInlineAsmVerify(LLVMTypeRef Ty, char *Constraints,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue