authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-18 15:01:15+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-18 22:26:52+02:00
log2d5cdfcfc2f073111c42940475d5126c3ea50e5c
treee2e32490e5907d3d4c03010c0ce8aadf7ea01450
parent0d2d51dd8c00af71e19626aeb50dd7d9ff63ccf7
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.start: align stack pointer according to ARC v3 ABI


1 files changed, 2 insertions(+), 3 deletions(-)

lib/std/start.zig+2-3
......@@ -253,12 +253,11 @@ fn _start() callconv(.naked) noreturn {
253253 \\ b %[posixCallMainAndExit]
254254 ,
255255 .arc =>
256 // The `arc` tag currently means ARC v1 and v2, which have an unusually low stack
257 // alignment requirement. ARC v3 increases it from 4 to 16, but we don't support v3 yet.
256 // ARC v1 and v2 had a very low stack alignment requirement of 4; v3 increased it to 16.
258257 \\ mov fp, 0
259258 \\ mov blink, 0
260259 \\ mov r0, sp
261 \\ and sp, sp, -4
260 \\ and sp, sp, -16
262261 \\ b %[posixCallMainAndExit]
263262 ,
264263 .arm, .armeb, .thumb, .thumbeb =>