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 {
340340 ,
341341 .powerpc64, .powerpc64le =>
342342 // Setup the initial stack frame and clear the back chain pointer.
343 \\ addis 2, 12, .TOC. - _start@ha
344 \\ addi 2, 2, .TOC. - _start@l
343 \\ addis 2, 12, .TOC. - %[_start]@ha
344 \\ addi 2, 2, .TOC. - %[_start]@l
345345 \\ mr 3, 1
346346 \\ clrrdi 1, 1, 4
347347 \\ li 0, 0
......@@ -359,7 +359,8 @@ fn _start() callconv(.Naked) noreturn {
359359 else => @compileError("unsupported arch"),
360360 }
361361 :
362 : [posixCallMainAndExit] "X" (&posixCallMainAndExit),
362 : [_start] "X" (_start),
363 [posixCallMainAndExit] "X" (&posixCallMainAndExit),
363364 );
364365}
365366