aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_abi.cpp
diff options
context:
space:
mode:
authorLaytan Laats <laytanlaats@hotmail.com>2024-06-09 02:47:05 +0200
committerLaytan Laats <laytanlaats@hotmail.com>2024-06-09 02:47:05 +0200
commit9ad9236c3bc2d9ea538bd1e5050141c85e0732ab (patch)
treeef3eb3ab0d472816415301cc54b3fc088af9e500 /src/llvm_abi.cpp
parent96c06185dd7433402cc9b9acd60880d831c5f71f (diff)
fix large ints amd64 sysv abi
Fixes #3707
Diffstat (limited to 'src/llvm_abi.cpp')
-rw-r--r--src/llvm_abi.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/llvm_abi.cpp b/src/llvm_abi.cpp
index 85a16d321..1f7a39447 100644
--- a/src/llvm_abi.cpp
+++ b/src/llvm_abi.cpp
@@ -900,7 +900,15 @@ namespace lbAbiAmd64SysV {
}
switch (LLVMGetTypeKind(t)) {
- case LLVMIntegerTypeKind:
+ case LLVMIntegerTypeKind: {
+ i64 s = t_size;
+ while (s > 0) {
+ unify(cls, ix + off/8, RegClass_Int);
+ off += 8;
+ s -= 8;
+ }
+ break;
+ }
case LLVMPointerTypeKind:
case LLVMHalfTypeKind:
unify(cls, ix + off/8, RegClass_Int);