authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-05-26 08:08:53+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2026-05-26 08:11:04+02:00
log5143239e2bcc41f6aba8a56b73810f2f9965feb4
treec6a149aa12e864847a5a6adfaa13d20175453d44
parent68d2bef8c0e956f0ce1dcee8284687c24230c26b
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.start: add xtensa support


1 files changed, 10 insertions(+), 0 deletions(-)

lib/std/start.zig+10
......@@ -183,6 +183,7 @@ fn _start() callconv(.naked) noreturn {
183183 .sparc, .sparc64 => ".cfi_undefined %%i7",
184184 .x86 => ".cfi_undefined %%eip",
185185 .x86_64 => ".cfi_undefined %%rip",
186 .xtensa, .xtensaeb => "", // No CFI support.
186187 else => @compileError("unsupported arch"),
187188 });
188189
......@@ -486,6 +487,15 @@ fn _start() callconv(.naked) noreturn {
486487 \\ sub %%sp, 2047, %%sp
487488 \\ ba,a %[posixCallMainAndExit]
488489 ,
490 .xtensa, .xtensaeb =>
491 // a0 = LR, a7 = FP, a1 = SP
492 \\ movi a0, 0
493 \\ movi a7, 0
494 \\ mov a2, sp
495 \\ movi a8, -16
496 \\ and sp, sp, a8
497 \\ callx0 %[posixCallMainAndExit]
498 ,
489499 else => @compileError("unsupported arch"),
490500 }
491501 :