From 37d1bdb8a7b700b900dd83c8c5c85296f5c3c17a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 8 Aug 2026 19:11:14 +0200 Subject: [PATCH] std.pie: fix potentially unaligned quadword load in powerpc64 assembly It probably happened to be quadword aligned by coincidence, or real hardware can cope with misaligned loads. Either way, we should just align it properly. --- lib/std/pie.zig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/std/pie.zig b/lib/std/pie.zig index a5c63e0580dbd66b3f4b17e2ac108b0c8aea8e6b..7bb0713bbdd5c23c271c1bbfdc7b0d96efc9b865 100644 --- a/lib/std/pie.zig +++ b/lib/std/pie.zig @@ -230,11 +230,13 @@ inline fn getDynamicSymbol() [*]const elf.Dyn { .powerpc64, .powerpc64le => asm volatile ( \\ .weak _DYNAMIC \\ .hidden _DYNAMIC + \\ .balign 8 \\ bl 1f + \\ nop \\ .quad _DYNAMIC - . \\1: \\ mflr %[ret] - \\ ld 4, 0(%[ret]) + \\ ld 4, 4(%[ret]) \\ add %[ret], 4, %[ret] : [ret] "=r" (-> [*]const elf.Dyn), : -- 2.54.0