authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-23 07:24:24+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-10-23 09:27:17+02:00
logc792ebfee2fab3ee9c633e7abc344d0e7535c983
tree83cd2247c9e1de52edbc64dd8716d9052c9858d4
parent252e1fd7ecc037b129490af5eb5ca8fdfa6a20bc
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

std.start: add microblaze support


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

lib/std/start.zig+11
...@@ -203,6 +203,7 @@ fn _start() callconv(.naked) noreturn {...@@ -203,6 +203,7 @@ fn _start() callconv(.naked) noreturn {
203 .hexagon => ".cfi_undefined r31",203 .hexagon => ".cfi_undefined r31",
204 .loongarch32, .loongarch64 => ".cfi_undefined 1",204 .loongarch32, .loongarch64 => ".cfi_undefined 1",
205 .m68k => ".cfi_undefined %%pc",205 .m68k => ".cfi_undefined %%pc",
206 .microblaze, .microblazeel => ".cfi_undefined r15",
206 .mips, .mipsel, .mips64, .mips64el => ".cfi_undefined $ra",207 .mips, .mipsel, .mips64, .mips64el => ".cfi_undefined $ra",
207 .or1k => ".cfi_undefined r9",208 .or1k => ".cfi_undefined r9",
208 .powerpc, .powerpcle, .powerpc64, .powerpc64le => ".cfi_undefined lr",209 .powerpc, .powerpcle, .powerpc64, .powerpc64le => ".cfi_undefined lr",
...@@ -346,6 +347,16 @@ fn _start() callconv(.naked) noreturn {...@@ -346,6 +347,16 @@ fn _start() callconv(.naked) noreturn {
346 \\ lea %[posixCallMainAndExit] - . - 8, %%a0347 \\ lea %[posixCallMainAndExit] - . - 8, %%a0
347 \\ jsr (%%pc, %%a0)348 \\ jsr (%%pc, %%a0)
348 ,349 ,
350 .microblaze, .microblazeel =>
351 // r1 = SP, r15 = LR, r19 = FP, r20 = GP
352 \\ ori r15, r0, r0
353 \\ ori r19, r0, r0
354 \\ mfs r20, rpc
355 \\ addik r20, r20, _GLOBAL_OFFSET_TABLE_ + 8
356 \\ ori r5, r1, r0
357 \\ andi r1, r1, -4
358 \\ brlid r15, %[posixCallMainAndExit]
359 ,
349 .mips, .mipsel =>360 .mips, .mipsel =>
350 \\ move $fp, $zero361 \\ move $fp, $zero
351 \\ bal 1f362 \\ bal 1f