aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Target.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2024-08-06 14:55:15 -0700
committerGitHub <noreply@github.com>2024-08-06 14:55:15 -0700
commitc8a226a42960297deb0b7bf270cc3ef3253f0c6d (patch)
tree835da0e073e0c76c0ec0e49a0ad5f3d7e59e0cc8 /lib/std/Target.zig
parentde1fb199091ef1b3ae53d4de0fc30fa958131c96 (diff)
parentef502daafe2b4e216c68fe07ff05aa91d539b831 (diff)
downloadzig-c8a226a42960297deb0b7bf270cc3ef3253f0c6d.tar.gz
zig-c8a226a42960297deb0b7bf270cc3ef3253f0c6d.zip
Merge pull request #20960 from alexrp/size-align-fixes
`std.Target`: A bunch of C type size/alignment fixes
Diffstat (limited to 'lib/std/Target.zig')
-rw-r--r--lib/std/Target.zig50
1 files changed, 21 insertions, 29 deletions
diff --git a/lib/std/Target.zig b/lib/std/Target.zig
index 4e43055810..d5bc61e663 100644
--- a/lib/std/Target.zig
+++ b/lib/std/Target.zig
@@ -1852,14 +1852,15 @@ pub fn ptrBitWidth_cpu_abi(cpu: Cpu, abi: Abi) u16 {
.kalimba,
.lanai,
.wasm32,
+ .sparc,
.spirv32,
.loongarch32,
- .dxil,
.xtensa,
=> 32,
.aarch64,
.aarch64_be,
+ .dxil,
.mips64,
.mips64el,
.powerpc64,
@@ -1874,13 +1875,10 @@ pub fn ptrBitWidth_cpu_abi(cpu: Cpu, abi: Abi) u16 {
.sparc64,
.s390x,
.ve,
+ .spirv,
.spirv64,
.loongarch64,
=> 64,
-
- .sparc => if (std.Target.sparc.featureSetHas(cpu.features, .v9)) 64 else 32,
-
- .spirv => @panic("TODO what should this value be?"),
};
}
@@ -2061,12 +2059,12 @@ pub fn c_type_bit_size(target: Target, c_type: CType) u16 {
.aarch64,
.aarch64_be,
.s390x,
- .sparc,
.sparc64,
.wasm32,
.wasm64,
.loongarch32,
.loongarch64,
+ .ve,
=> return 128,
else => return 64,
@@ -2167,12 +2165,12 @@ pub fn c_type_bit_size(target: Target, c_type: CType) u16 {
.s390x,
.mips64,
.mips64el,
- .sparc,
.sparc64,
.wasm32,
.wasm64,
.loongarch32,
.loongarch64,
+ .ve,
=> return 128,
else => return 64,
@@ -2252,23 +2250,20 @@ pub fn c_type_bit_size(target: Target, c_type: CType) u16 {
.longdouble => return 64,
},
- .amdhsa, .amdpal => switch (c_type) {
+ .amdhsa, .amdpal, .mesa3d => switch (c_type) {
.char => return 8,
.short, .ushort => return 16,
.int, .uint, .float => return 32,
.long, .ulong, .longlong, .ulonglong, .double => return 64,
- .longdouble => return 128,
+ .longdouble => return 64,
},
.opencl, .vulkan => switch (c_type) {
.char => return 8,
.short, .ushort => return 16,
.int, .uint, .float => return 32,
- .long, .ulong, .double => return 64,
- .longlong, .ulonglong => return 128,
- // Note: The OpenCL specification does not guarantee a particular size for long double,
- // but clang uses 128 bits.
- .longdouble => return 128,
+ .long, .ulong, .longlong, .ulonglong, .double => return 64,
+ .longdouble => return 64,
},
.ps4, .ps5 => switch (c_type) {
@@ -2285,7 +2280,6 @@ pub fn c_type_bit_size(target: Target, c_type: CType) u16 {
.rtems,
.aix,
.elfiamcu,
- .mesa3d,
.contiki,
.hermit,
.hurd,
@@ -2344,11 +2338,8 @@ pub fn c_type_alignment(target: Target, c_type: CType) u16 {
.csky,
.x86,
.xcore,
- .dxil,
.loongarch32,
- .spirv32,
.kalimba,
- .ve,
.spu_2,
.xtensa,
=> 4,
@@ -2356,22 +2347,24 @@ pub fn c_type_alignment(target: Target, c_type: CType) u16 {
.amdgcn,
.bpfel,
.bpfeb,
+ .dxil,
.hexagon,
- .loongarch64,
.m68k,
.mips,
.mipsel,
.sparc,
- .sparc64,
.lanai,
.nvptx,
.nvptx64,
.s390x,
+ .spirv,
+ .spirv32,
.spirv64,
=> 8,
.aarch64,
.aarch64_be,
+ .loongarch64,
.mips64,
.mips64el,
.powerpc,
@@ -2380,12 +2373,12 @@ pub fn c_type_alignment(target: Target, c_type: CType) u16 {
.powerpc64le,
.riscv32,
.riscv64,
+ .sparc64,
.x86_64,
+ .ve,
.wasm32,
.wasm64,
=> 16,
-
- .spirv => @panic("TODO what should this value be?"),
}),
);
}
@@ -2449,11 +2442,8 @@ pub fn c_type_preferred_alignment(target: Target, c_type: CType) u16 {
.csky,
.xcore,
- .dxil,
.loongarch32,
- .spirv32,
.kalimba,
- .ve,
.spu_2,
.xtensa,
=> 4,
@@ -2467,23 +2457,25 @@ pub fn c_type_preferred_alignment(target: Target, c_type: CType) u16 {
.amdgcn,
.bpfel,
.bpfeb,
+ .dxil,
.hexagon,
.x86,
- .loongarch64,
.m68k,
.mips,
.mipsel,
.sparc,
- .sparc64,
.lanai,
.nvptx,
.nvptx64,
.s390x,
+ .spirv,
+ .spirv32,
.spirv64,
=> 8,
.aarch64,
.aarch64_be,
+ .loongarch64,
.mips64,
.mips64el,
.powerpc,
@@ -2492,12 +2484,12 @@ pub fn c_type_preferred_alignment(target: Target, c_type: CType) u16 {
.powerpc64le,
.riscv32,
.riscv64,
+ .sparc64,
.x86_64,
+ .ve,
.wasm32,
.wasm64,
=> 16,
-
- .spirv => @panic("TODO what should this value be?"),
}),
);
}