aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2024-08-04 09:03:59 +0200
committerAndrew Kelley <andrew@ziglang.org>2024-08-07 01:09:18 -0700
commitc0681d6b6e74bd70228bb79c6bf719da5a5fe444 (patch)
treef15a0a84ae04091a7472e9b46789af4dc3318e10 /lib
parent8cbf091a9a5dd1996453dfce08e7e3a109b6c30f (diff)
downloadzig-c0681d6b6e74bd70228bb79c6bf719da5a5fe444.tar.gz
zig-c0681d6b6e74bd70228bb79c6bf719da5a5fe444.zip
start: Add sparc32 support.
Diffstat (limited to 'lib')
-rw-r--r--lib/std/start.zig7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/std/start.zig b/lib/std/start.zig
index c975c888af..2a072832bb 100644
--- a/lib/std/start.zig
+++ b/lib/std/start.zig
@@ -406,6 +406,13 @@ fn _start() callconv(.Naked) noreturn {
\\ stg %%r0, 0(%%r15)
\\ jg %[posixCallMainAndExit]
,
+ .sparc =>
+ // argc is stored after a register window (16 registers * 4 bytes).
+ \\ mov %%g0, %%fp
+ \\ add %%sp, 64, %%o0
+ \\ and %%sp, -8, %%sp
+ \\ ba,a %[posixCallMainAndExit]
+ ,
.sparc64 =>
// argc is stored after a register window (16 registers * 8 bytes) plus the stack bias
// (2047 bytes).