diff options
| author | gingerBill <bill@gingerbill.org> | 2024-03-28 10:58:40 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2024-03-28 10:58:40 +0000 |
| commit | 308e9112f23a37322878968f388a4751d3d54278 (patch) | |
| tree | e5153ded8ed01f9a06625eef1aef27c646ea3aff /src/llvm_abi.cpp | |
| parent | 58d0635f480ae2d55066543937eec7a76b77a45e (diff) | |
Disable packing on ARM64 and AMD64
Diffstat (limited to 'src/llvm_abi.cpp')
| -rw-r--r-- | src/llvm_abi.cpp | 6 |
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 { |