From 8ffc41f74705246e61f3c02c253d40b1464ea2bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Mon, 22 Jul 2024 13:22:42 +0200 Subject: [PATCH] start: Add POSIX s390x startup code. --- lib/std/start.zig | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/std/start.zig b/lib/std/start.zig index ff524d5d64..caca4c7be3 100644 --- a/lib/std/start.zig +++ b/lib/std/start.zig @@ -363,6 +363,15 @@ fn _start() callconv(.Naked) noreturn { \\ mtlr 0 \\ b %[posixCallMainAndExit] , + .s390x => + // Set up the stack frame (register save area and cleared back-chain slot). + // Note: Stack pointer is guaranteed by ABI to be 8-byte aligned as required. + \\ lgr %r2, %r15 + \\ aghi %r15, -160 + \\ lghi %r0, 0 + \\ stg %r0, 0(%r15) + \\ jg %[posixCallMainAndExit] + , .sparc64 => // argc is stored after a register window (16 registers) plus stack bias \\ mov %%g0, %%i6