aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_abi.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2024-09-30 11:45:24 +0100
committergingerBill <bill@gingerbill.org>2024-09-30 11:45:24 +0100
commitb173fa1b9a5643d0dff68d5f780351fa21f56630 (patch)
treee2102e67279a9b5825e3bd58314b73c2a5de2410 /src/llvm_abi.cpp
parent225ffdec36c7e131cac8b10a68a45037307adc83 (diff)
Fix LLVM 18 ABI for 128-bit integers (because LLVM broke things)
Diffstat (limited to 'src/llvm_abi.cpp')
-rw-r--r--src/llvm_abi.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/llvm_abi.cpp b/src/llvm_abi.cpp
index 42086b09d..d0fe541da 100644
--- a/src/llvm_abi.cpp
+++ b/src/llvm_abi.cpp
@@ -531,6 +531,7 @@ namespace lbAbiAmd64SysV {
RegClass_SSEInt16,
RegClass_SSEInt32,
RegClass_SSEInt64,
+ RegClass_SSEInt128,
RegClass_SSEUp,
RegClass_X87,
RegClass_X87Up,
@@ -616,6 +617,10 @@ namespace lbAbiAmd64SysV {
}
switch (kind) {
case LLVMIntegerTypeKind:
+ if (LLVM_VERSION_MAJOR >= 18 && sz >= 16) {
+ return false;
+ }
+ return true;
case LLVMHalfTypeKind:
case LLVMFloatTypeKind:
case LLVMDoubleTypeKind: