commit 2d5cdfcfc2f073111c42940475d5126c3ea50e5c (tree)
parent 0d2d51dd8c00af71e19626aeb50dd7d9ff63ccf7
Author: Alex Rønne Petersen <alex@alexrp.com>
Date: Sat, 18 Oct 2025 15:01:15 +0200
std.start: align stack pointer according to ARC v3 ABI
Diffstat:
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git 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 =>