diff options
| author | Alex Rønne Petersen <alex@alexrp.com> | 2025-10-23 07:24:24 +0200 |
|---|---|---|
| committer | Alex Rønne Petersen <alex@alexrp.com> | 2025-10-23 09:27:17 +0200 |
| commit | c792ebfee2fab3ee9c633e7abc344d0e7535c983 (patch) | |
| tree | 83cd2247c9e1de52edbc64dd8716d9052c9858d4 /lib/std/start.zig | |
| parent | 252e1fd7ecc037b129490af5eb5ca8fdfa6a20bc (diff) | |
| download | zig-c792ebfee2fab3ee9c633e7abc344d0e7535c983.tar.gz zig-c792ebfee2fab3ee9c633e7abc344d0e7535c983.zip | |
std.start: add microblaze support
Diffstat (limited to 'lib/std/start.zig')
| -rw-r--r-- | lib/std/start.zig | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/std/start.zig b/lib/std/start.zig index ab362a3195..7e45bc42ea 100644 --- a/lib/std/start.zig +++ b/lib/std/start.zig @@ -203,6 +203,7 @@ fn _start() callconv(.naked) noreturn { .hexagon => ".cfi_undefined r31", .loongarch32, .loongarch64 => ".cfi_undefined 1", .m68k => ".cfi_undefined %%pc", + .microblaze, .microblazeel => ".cfi_undefined r15", .mips, .mipsel, .mips64, .mips64el => ".cfi_undefined $ra", .or1k => ".cfi_undefined r9", .powerpc, .powerpcle, .powerpc64, .powerpc64le => ".cfi_undefined lr", @@ -346,6 +347,16 @@ fn _start() callconv(.naked) noreturn { \\ lea %[posixCallMainAndExit] - . - 8, %%a0 \\ jsr (%%pc, %%a0) , + .microblaze, .microblazeel => + // r1 = SP, r15 = LR, r19 = FP, r20 = GP + \\ ori r15, r0, r0 + \\ ori r19, r0, r0 + \\ mfs r20, rpc + \\ addik r20, r20, _GLOBAL_OFFSET_TABLE_ + 8 + \\ ori r5, r1, r0 + \\ andi r1, r1, -4 + \\ brlid r15, %[posixCallMainAndExit] + , .mips, .mipsel => \\ move $fp, $zero \\ bal 1f |
