diff options
| author | Laytan Laats <laytanlaats@hotmail.com> | 2024-06-09 02:47:05 +0200 |
|---|---|---|
| committer | Laytan Laats <laytanlaats@hotmail.com> | 2024-06-09 02:47:05 +0200 |
| commit | 9ad9236c3bc2d9ea538bd1e5050141c85e0732ab (patch) | |
| tree | ef3eb3ab0d472816415301cc54b3fc088af9e500 /src/llvm_abi.cpp | |
| parent | 96c06185dd7433402cc9b9acd60880d831c5f71f (diff) | |
fix large ints amd64 sysv abi
Fixes #3707
Diffstat (limited to 'src/llvm_abi.cpp')
| -rw-r--r-- | src/llvm_abi.cpp | 10 |
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); |