commit 1fa5ca24feb7b931fdc5f4ff826048a87922ad10 (tree)
parent 142209444a52c5c44b19a984f25376173027da7e
Author: Alex Rønne Petersen <alex@alexrp.com>
Date: Mon, 22 Jul 2024 12:55:08 +0200
start: Add POSIX m68k startup code.
Diffstat:
1 file changed, 8 insertions(+), 0 deletions(-)
diff --git a/lib/std/start.zig b/lib/std/start.zig
@@ -307,6 +307,14 @@ fn _start() callconv(.Naked) noreturn {
\\ andi sp, sp, -16
\\ tail %[posixCallMainAndExit]@plt
,
+ .m68k =>
+ // Note that the - 8 is needed because pc in the jsr instruction points into the middle
+ // of the jsr instruction. (The lea is 6 bytes, the jsr is 4 bytes.)
+ \\ suba.l %%fp, %%fp
+ \\ move.l %%sp, -(%%sp)
+ \\ lea %[posixCallMainAndExit] - . - 8, %%a0
+ \\ jsr (%%pc, %%a0)
+ ,
.mips, .mipsel =>
// The lr is already zeroed on entry, as specified by the ABI.
\\ addiu $fp, $zero, 0