diff options
| author | gingerBill <bill@gingerbill.org> | 2021-02-24 16:49:19 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-02-24 16:49:19 +0000 |
| commit | 2d88c6c6a552563634aba23e35b6578f6230ad87 (patch) | |
| tree | 4e5176a6253ebe189bb81c12d05f212019c2f4b4 /src/llvm_backend.cpp | |
| parent | a6fdb5eb5e1b4d37d4617e4dcf7cfaa0c3789121 (diff) | |
Begin work on aarch64 ABI for `-llvm-api`
Diffstat (limited to 'src/llvm_backend.cpp')
| -rw-r--r-- | src/llvm_backend.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index c842e2e49..d4b4fd7f2 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -2423,6 +2423,8 @@ LLVMValueRef OdinLLVMBuildTransmute(lbProcedure *p, LLVMValueRef val, LLVMTypeRe if (src_kind == dst_kind) { if (src_kind == LLVMPointerTypeKind) { return LLVMBuildPointerCast(p->builder, val, dst_type, ""); + } else if (src_kind == LLVMArrayTypeKind) { + // ignore } else if (src_kind != LLVMStructTypeKind) { return LLVMBuildBitCast(p->builder, val, dst_type, ""); } @@ -8203,7 +8205,8 @@ lbValue lb_build_builtin_proc(lbProcedure *p, Ast *expr, TypeAndValue const &tv, } case BuiltinProc_cpu_relax: - { + if (build_context.metrics.arch == TargetArch_386 || + build_context.metrics.arch == TargetArch_amd64) { LLVMTypeRef func_type = LLVMFunctionType(LLVMVoidTypeInContext(p->module->ctx), nullptr, 0, false); LLVMValueRef the_asm = LLVMGetInlineAsm(func_type, cast(char *)"pause", 5, |