aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_abi.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2024-03-28 10:58:40 +0000
committergingerBill <bill@gingerbill.org>2024-03-28 10:58:40 +0000
commit308e9112f23a37322878968f388a4751d3d54278 (patch)
treee5153ded8ed01f9a06625eef1aef27c646ea3aff /src/llvm_abi.cpp
parent58d0635f480ae2d55066543937eec7a76b77a45e (diff)
Disable packing on ARM64 and AMD64
Diffstat (limited to 'src/llvm_abi.cpp')
-rw-r--r--src/llvm_abi.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/llvm_abi.cpp b/src/llvm_abi.cpp
index 5f5f734fb..724e4e35a 100644
--- a/src/llvm_abi.cpp
+++ b/src/llvm_abi.cpp
@@ -876,7 +876,8 @@ namespace lbAbiAmd64SysV {
if (types.count == 1) {
return types[0];
}
- return LLVMStructTypeInContext(c, types.data, cast(unsigned)types.count, true);
+ // TODO(bill): this should be packed but it causes code generation issues
+ return LLVMStructTypeInContext(c, types.data, cast(unsigned)types.count, false);
}
gb_internal void classify_with(LLVMTypeRef t, Array<RegClass> *cls, i64 ix, i64 off) {
@@ -1165,7 +1166,8 @@ namespace lbAbiArm64 {
size_copy -= 8;
}
GB_ASSERT(size_copy <= 0);
- cast_type = LLVMStructTypeInContext(c, types, count, true);
+ // TODO(bill): this should be packed but it causes code generation issues
+ cast_type = LLVMStructTypeInContext(c, types, count, false);
}
return lb_arg_type_direct(return_type, cast_type, nullptr, nullptr);
} else {