aboutsummaryrefslogtreecommitdiff
path: root/lib/std/start.zig
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2025-10-18 15:01:15 +0200
committerAlex Rønne Petersen <alex@alexrp.com>2025-10-18 22:26:52 +0200
commit2d5cdfcfc2f073111c42940475d5126c3ea50e5c (patch)
treee2e32490e5907d3d4c03010c0ce8aadf7ea01450 /lib/std/start.zig
parent0d2d51dd8c00af71e19626aeb50dd7d9ff63ccf7 (diff)
downloadzig-2d5cdfcfc2f073111c42940475d5126c3ea50e5c.tar.gz
zig-2d5cdfcfc2f073111c42940475d5126c3ea50e5c.zip
std.start: align stack pointer according to ARC v3 ABI
Diffstat (limited to 'lib/std/start.zig')
-rw-r--r--lib/std/start.zig5
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/std/start.zig b/lib/std/start.zig
index 5836594468..0a6bcafc34 100644
--- a/lib/std/start.zig
+++ b/lib/std/start.zig
@@ -253,12 +253,11 @@ fn _start() callconv(.naked) noreturn {
\\ b %[posixCallMainAndExit]
,
.arc =>
- // The `arc` tag currently means ARC v1 and v2, which have an unusually low stack
- // alignment requirement. ARC v3 increases it from 4 to 16, but we don't support v3 yet.
+ // ARC v1 and v2 had a very low stack alignment requirement of 4; v3 increased it to 16.
\\ mov fp, 0
\\ mov blink, 0
\\ mov r0, sp
- \\ and sp, sp, -4
+ \\ and sp, sp, -16
\\ b %[posixCallMainAndExit]
,
.arm, .armeb, .thumb, .thumbeb =>