aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeroen van Rijn <Kelimion@users.noreply.github.com>2024-06-09 11:01:31 +0200
committerGitHub <noreply@github.com>2024-06-09 11:01:31 +0200
commit14f08ff02bfca5a79fe14a521448bd28484e45b6 (patch)
tree1ef21f732460907c74deb2a7f4997567ba40b7a9 /src
parent5d5ef78de9e09f01ed29f3f7791141a5cefdd2ed (diff)
parent9ad9236c3bc2d9ea538bd1e5050141c85e0732ab (diff)
Merge pull request #3712 from laytan/fix-large-ints-amd64sysv-abi
fix large ints amd64 sysv abi
Diffstat (limited to 'src')
-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);