mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 14:23:09 +00:00
start: Align the stack on powerpc just in case.
The kernel does this as required, but we cannot trust dynamic linkers to do it.
This commit is contained in:
parent
714e743393
commit
52653ec82b
@ -351,8 +351,9 @@ fn _start() callconv(.Naked) noreturn {
|
|||||||
\\ j %[posixCallMainAndExit]
|
\\ j %[posixCallMainAndExit]
|
||||||
,
|
,
|
||||||
.powerpc, .powerpcle =>
|
.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
|
\\ mr 3, 1
|
||||||
|
\\ clrrwi 1, 1, 4
|
||||||
\\ li 0, 0
|
\\ li 0, 0
|
||||||
\\ stwu 1, -16(1)
|
\\ stwu 1, -16(1)
|
||||||
\\ stw 0, 0(1)
|
\\ stw 0, 0(1)
|
||||||
@ -360,7 +361,7 @@ fn _start() callconv(.Naked) noreturn {
|
|||||||
\\ b %[posixCallMainAndExit]
|
\\ b %[posixCallMainAndExit]
|
||||||
,
|
,
|
||||||
.powerpc64, .powerpc64le =>
|
.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
|
\\ addis 2, 12, .TOC. - %[_start]@ha
|
||||||
\\ addi 2, 2, .TOC. - %[_start]@l
|
\\ addi 2, 2, .TOC. - %[_start]@l
|
||||||
\\ mr 3, 1
|
\\ mr 3, 1
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user