authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-07-22 11:55:30+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-07-22 14:39:53+02:00
log142209444a52c5c44b19a984f25376173027da7e
tree810915bd02e1cb3bdaccdb37712ade78a60c382e
parent1fc42ed3e7ca0b74b54aaa827276d995d6c7c6cd
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

start: Pass _start() into its own inline asm as an operand.


1 files changed, 4 insertions(+), 3 deletions(-)

lib/std/start.zig+4-3
...@@ -340,8 +340,8 @@ fn _start() callconv(.Naked) noreturn {...@@ -340,8 +340,8 @@ fn _start() callconv(.Naked) noreturn {
340 ,340 ,
341 .powerpc64, .powerpc64le =>341 .powerpc64, .powerpc64le =>
342 // Setup the initial stack frame and clear the back chain pointer.342 // Setup the initial stack frame and clear the back chain pointer.
343 \\ addis 2, 12, .TOC. - _start@ha343 \\ addis 2, 12, .TOC. - %[_start]@ha
344 \\ addi 2, 2, .TOC. - _start@l344 \\ addi 2, 2, .TOC. - %[_start]@l
345 \\ mr 3, 1345 \\ mr 3, 1
346 \\ clrrdi 1, 1, 4346 \\ clrrdi 1, 1, 4
347 \\ li 0, 0347 \\ li 0, 0
...@@ -359,7 +359,8 @@ fn _start() callconv(.Naked) noreturn {...@@ -359,7 +359,8 @@ fn _start() callconv(.Naked) noreturn {
359 else => @compileError("unsupported arch"),359 else => @compileError("unsupported arch"),
360 }360 }
361 :361 :
362 : [posixCallMainAndExit] "X" (&posixCallMainAndExit),362 : [_start] "X" (_start),
363 [posixCallMainAndExit] "X" (&posixCallMainAndExit),
363 );364 );
364}365}
365366