commit 073d8e55c321db585d71534a94124100582860f7 (tree)
parent 2e85eb2bf8f0e7292a73c58e8f4d04666e4a6be7
Author: Benjamin Feng <benjamin.feng@glassdoor.com>
Date: Sat, 10 Apr 2021 12:58:21 -0500
Initialize the ppc stack frame correctly
Diffstat:
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/lib/std/start.zig b/lib/std/start.zig
@@ -198,13 +198,16 @@ fn _start() callconv(.Naked) noreturn {
);
},
.powerpc => {
+ // Setup the initial stack frame and clear the back chain pointer.
argc_argv_ptr = asm volatile (
- \\ mr 3, 1
+ \\ mr 4, 1
\\ li 0, 0
+ \\ stwu 1,-16(1)
+ \\ stw 0, 0(1)
\\ mtlr 0
- : [argc] "={r3}" (-> [*]usize)
+ : [argc] "={r4}" (-> [*]usize)
:
- : "r0", "r3"
+ : "r0"
);
},
.powerpc64le => {