aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/llvm.zig
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2023-08-12 19:34:17 -0400
committerAndrew Kelley <andrew@ziglang.org>2023-09-19 09:37:32 -0700
commit3506bc61b766528341ceaea27ae44b44227bf901 (patch)
tree434d5e3f3d7522f81b719b61d311866928903491 /src/codegen/llvm.zig
parentcad594372e8c24070ed5e869e2cd83bd09ff359d (diff)
downloadzig-3506bc61b766528341ceaea27ae44b44227bf901.tar.gz
zig-3506bc61b766528341ceaea27ae44b44227bf901.zip
llvm: update data layout computation to LLVM 17
Diffstat (limited to 'src/codegen/llvm.zig')
-rw-r--r--src/codegen/llvm.zig8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index 9a6d1b2421..8706089a81 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -421,8 +421,12 @@ const DataLayoutBuilder = struct {
if (idx != size) try writer.print(":{d}", .{idx});
}
}
- if (self.target.cpu.arch.isArmOrThumb())
- try writer.writeAll("-Fi8"); // for thumb interwork
+ if (self.target.cpu.arch.isArmOrThumb()) try writer.writeAll("-Fi8") // for thumb interwork
+ else if (self.target.cpu.arch == .powerpc64 and
+ self.target.os.tag != .freebsd and self.target.abi != .musl)
+ try writer.writeAll("-Fi64")
+ else if (self.target.cpu.arch.isPPC() or self.target.cpu.arch.isPPC64())
+ try writer.writeAll("-Fn32");
if (self.target.cpu.arch != .hexagon) {
if (self.target.cpu.arch == .arc or self.target.cpu.arch == .s390x)
try self.typeAlignment(.integer, 1, 8, 8, false, writer);