From 3dbffc68862e545bd9fa1bbd317b2c93a6436561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Mon, 19 Oct 2026 08:03:19 +0200 Subject: [PATCH] std.Target: fix some inaccuracies in stackAlignment() --- lib/std/Target.zig | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/lib/std/Target.zig b/lib/std/Target.zig index 9019b913b2f0916b840a036b8d239f4c9e95843e..5601a2661388baced89e175614510f0b61ae14f8 100644 --- a/lib/std/Target.zig +++ b/lib/std/Target.zig @@ -3066,14 +3066,17 @@ pub fn ptrBitWidth(target: *const Target) u16 { pub fn stackAlignment(target: *const Target) u16 { // Overrides for when the stack alignment is not equal to the pointer width. switch (target.cpu.arch) { - .ez80 => return 1, + .avr, + .ez80, + => return 1, - .m68k => return 2, + .m68k => if (target.os.tag != .netbsd) return 2, .amdgcn => return 4, .arm, .armeb, + .hexagon, .hppa, .lanai, .mips, @@ -3091,28 +3094,34 @@ pub fn stackAlignment(target: *const Target) u16 { .hppa64, .loongarch32, .loongarch64, + .m88k, .mips64, .mips64el, + .powerpc, + .powerpcle, + .powerpc64, + .powerpc64le, .sparc64, .ve, .wasm32, .wasm64, .x86_64, + .xtensa, + .xtensaeb, => return 16, - // Some of the following prongs should really be testing the ABI, but our current `Abi` enum - // can't handle that level of nuance yet. - .powerpc64, - .powerpc64le, - => if (target.os.tag == .linux) return 16, - .riscv32, .riscv32be, .riscv64, .riscv64be, => if (!target.cpu.has(.riscv, .e)) return 16, - .x86 => if (target.os.tag != .windows and target.os.tag != .uefi) return 16, + .x86 => switch (target.os.tag) { + .hurd, + .linux, + => return 16, + else => {}, + }, .kvx => return 32, -- 2.54.0