std.start: add or1k support

This commit is contained in:
Alex Rønne Petersen 2025-10-18 15:00:05 +02:00
parent afc6e88413
commit 0d2d51dd8c
No known key found for this signature in database

View File

@ -202,6 +202,7 @@ fn _start() callconv(.naked) noreturn {
.loongarch32, .loongarch64 => ".cfi_undefined 1", .loongarch32, .loongarch64 => ".cfi_undefined 1",
.m68k => ".cfi_undefined %%pc", .m68k => ".cfi_undefined %%pc",
.mips, .mipsel, .mips64, .mips64el => ".cfi_undefined $ra", .mips, .mipsel, .mips64, .mips64el => ".cfi_undefined $ra",
.or1k => ".cfi_undefined r9",
.powerpc, .powerpcle, .powerpc64, .powerpc64le => ".cfi_undefined lr", .powerpc, .powerpcle, .powerpc64, .powerpc64le => ".cfi_undefined lr",
.riscv32, .riscv32be, .riscv64, .riscv64be => if (builtin.zig_backend == .stage2_riscv64) .riscv32, .riscv32be, .riscv64, .riscv64be => if (builtin.zig_backend == .stage2_riscv64)
"" ""
@ -305,6 +306,14 @@ fn _start() callconv(.naked) noreturn {
\\ bstrins.d $sp, $zero, 3, 0 \\ bstrins.d $sp, $zero, 3, 0
\\ b %[posixCallMainAndExit] \\ b %[posixCallMainAndExit]
, ,
.or1k =>
// r1 = SP, r2 = FP, r9 = LR
\\ l.ori r2, r0, 0
\\ l.ori r9, r0, 0
\\ l.ori r3, r1, 0
\\ l.andi r1, r1, -4
\\ l.jal %[posixCallMainAndExit]
,
.riscv32, .riscv32be, .riscv64, .riscv64be => .riscv32, .riscv32be, .riscv64, .riscv64be =>
\\ li fp, 0 \\ li fp, 0
\\ li ra, 0 \\ li ra, 0