zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit a80ff87a04acff1cd5e5c0496a65d2dbed823c0d (tree)
parent 7e51c731b85f15dc6898e57301c51802e43a924a
Author: Alex Rønne Petersen <alex@alexrp.com>
Date:   Fri, 29 May 2026 08:20:27 +0200

std.start: add xtensa call0 support

Diffstat:
Mlib/std/start.zig | 24++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/lib/std/start.zig b/lib/std/start.zig @@ -487,14 +487,22 @@ fn _start() callconv(.naked) noreturn { \\ sub %%sp, 2047, %%sp \\ ba,a %[posixCallMainAndExit] , - .xtensa, .xtensaeb => - // a0 = LR, a7 = FP, a1 = SP - \\ movi a0, 0 - \\ movi a7, 0 - \\ mov a6, sp - \\ movi a8, -16 - \\ and sp, sp, a8 - \\ call4 %[posixCallMainAndExit] + .xtensa, .xtensaeb => if (builtin.abi == .call0) + // a0 = LR, a15 = FP, a1 = SP + \\ movi a0, 0 + \\ movi a15, 0 + \\ mov a2, sp + \\ movi a8, -16 + \\ and sp, sp, a8 + \\ call0 %[posixCallMainAndExit] + else + // a0 = LR, a7 = FP, a1 = SP + \\ movi a0, 0 + \\ movi a7, 0 + \\ mov a6, sp + \\ movi a8, -16 + \\ and sp, sp, a8 + \\ call4 %[posixCallMainAndExit] , else => @compileError("unsupported arch"), }