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

std.start: add or1k support


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

lib/std/start.zig+9
......@@ -202,6 +202,7 @@ fn _start() callconv(.naked) noreturn {
202202 .loongarch32, .loongarch64 => ".cfi_undefined 1",
203203 .m68k => ".cfi_undefined %%pc",
204204 .mips, .mipsel, .mips64, .mips64el => ".cfi_undefined $ra",
205 .or1k => ".cfi_undefined r9",
205206 .powerpc, .powerpcle, .powerpc64, .powerpc64le => ".cfi_undefined lr",
206207 .riscv32, .riscv32be, .riscv64, .riscv64be => if (builtin.zig_backend == .stage2_riscv64)
207208 ""
......@@ -305,6 +306,14 @@ fn _start() callconv(.naked) noreturn {
305306 \\ bstrins.d $sp, $zero, 3, 0
306307 \\ b %[posixCallMainAndExit]
307308 ,
309 .or1k =>
310 // r1 = SP, r2 = FP, r9 = LR
311 \\ l.ori r2, r0, 0
312 \\ l.ori r9, r0, 0
313 \\ l.ori r3, r1, 0
314 \\ l.andi r1, r1, -4
315 \\ l.jal %[posixCallMainAndExit]
316 ,
308317 .riscv32, .riscv32be, .riscv64, .riscv64be =>
309318 \\ li fp, 0
310319 \\ li ra, 0