authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-07-22 13:22:42+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-07-22 14:39:55+02:00
log8ffc41f74705246e61f3c02c253d40b1464ea2bf
tree778d7f1a94ca07049cfdfb8925749b8fb1ece9eb
parentc53673276be9de837add3a3c4e948b10cdd7e1a6
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

start: Add POSIX s390x startup code.


1 files changed, 9 insertions(+), 0 deletions(-)

lib/std/start.zig+9
......@@ -363,6 +363,15 @@ fn _start() callconv(.Naked) noreturn {
363363 \\ mtlr 0
364364 \\ b %[posixCallMainAndExit]
365365 ,
366 .s390x =>
367 // Set up the stack frame (register save area and cleared back-chain slot).
368 // Note: Stack pointer is guaranteed by ABI to be 8-byte aligned as required.
369 \\ lgr %r2, %r15
370 \\ aghi %r15, -160
371 \\ lghi %r0, 0
372 \\ stg %r0, 0(%r15)
373 \\ jg %[posixCallMainAndExit]
374 ,
366375 .sparc64 =>
367376 // argc is stored after a register window (16 registers) plus stack bias
368377 \\ mov %%g0, %%i6