aboutsummaryrefslogtreecommitdiff
path: root/lib/std/start.zig
diff options
context:
space:
mode:
Diffstat (limited to 'lib/std/start.zig')
-rw-r--r--lib/std/start.zig9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/std/start.zig b/lib/std/start.zig
index d97381ef0d..74e177ce0b 100644
--- a/lib/std/start.zig
+++ b/lib/std/start.zig
@@ -300,6 +300,15 @@ fn _start() callconv(.Naked) noreturn {
\\ and sp, x0, #-16
\\ b %[posixCallMainAndExit]
,
+ .arc =>
+ // The `arc` tag currently means ARCv2, which has an unusually low stack alignment
+ // requirement. ARCv3 increases it from 4 to 16, but we don't support ARCv3 yet.
+ \\ mov fp, 0
+ \\ mov blink, 0
+ \\ mov r0, sp
+ \\ and sp, sp, -4
+ \\ b %[posixCallMainAndExit]
+ ,
.arm, .armeb, .thumb, .thumbeb =>
\\ mov fp, #0
\\ mov lr, #0