From b4fe9677a1f69acde12e7cf296269f0c4d98362f Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 20 Mar 2024 16:06:50 +0000 Subject: Change ARM64 ABI for integer-like parameters --- src/llvm_abi.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'src/llvm_abi.cpp') diff --git a/src/llvm_abi.cpp b/src/llvm_abi.cpp index 24e86fa64..fcd22a40d 100644 --- a/src/llvm_abi.cpp +++ b/src/llvm_abi.cpp @@ -1183,14 +1183,8 @@ namespace lbAbiArm64 { i64 size = lb_sizeof(type); if (size <= 16) { LLVMTypeRef cast_type = nullptr; - if (size <= 1) { - cast_type = LLVMIntTypeInContext(c, 8); - } else if (size <= 2) { - cast_type = LLVMIntTypeInContext(c, 16); - } else if (size <= 4) { - cast_type = LLVMIntTypeInContext(c, 32); - } else if (size <= 8) { - cast_type = LLVMIntTypeInContext(c, 64); + if (size <= 8) { + cast_type = LLVMIntTypeInContext(c, cast(unsigned)(size*8)); } else { unsigned count = cast(unsigned)((size+7)/8); cast_type = llvm_array_type(LLVMIntTypeInContext(c, 64), count); -- cgit v1.2.3