From 52653ec82bcc8e10fee9b6d9997b2de41a22a93a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Wed, 24 Jul 2024 17:35:47 +0200 Subject: [PATCH] start: Align the stack on powerpc just in case. The kernel does this as required, but we cannot trust dynamic linkers to do it. --- lib/std/start.zig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/std/start.zig b/lib/std/start.zig index 35485a6995..015f2c077f 100644 --- a/lib/std/start.zig +++ b/lib/std/start.zig @@ -351,8 +351,9 @@ fn _start() callconv(.Naked) noreturn { \\ j %[posixCallMainAndExit] , .powerpc, .powerpcle => - // Setup the initial stack frame and clear the back chain pointer. + // Set up the initial stack frame, and clear the back chain pointer. \\ mr 3, 1 + \\ clrrwi 1, 1, 4 \\ li 0, 0 \\ stwu 1, -16(1) \\ stw 0, 0(1) @@ -360,7 +361,7 @@ fn _start() callconv(.Naked) noreturn { \\ b %[posixCallMainAndExit] , .powerpc64, .powerpc64le => - // Setup the initial stack frame and clear the back chain pointer. + // Set up the ToC and initial stack frame, and clear the back chain pointer. \\ addis 2, 12, .TOC. - %[_start]@ha \\ addi 2, 2, .TOC. - %[_start]@l \\ mr 3, 1