| ... | @@ -202,6 +202,7 @@ fn _start() callconv(.naked) noreturn { | ... | @@ -202,6 +202,7 @@ fn _start() callconv(.naked) noreturn { |
| 202 | .loongarch32, .loongarch64 => ".cfi_undefined 1", | 202 | .loongarch32, .loongarch64 => ".cfi_undefined 1", |
| 203 | .m68k => ".cfi_undefined %%pc", | 203 | .m68k => ".cfi_undefined %%pc", |
| 204 | .mips, .mipsel, .mips64, .mips64el => ".cfi_undefined $ra", | 204 | .mips, .mipsel, .mips64, .mips64el => ".cfi_undefined $ra", |
| | 205 | .or1k => ".cfi_undefined r9", |
| 205 | .powerpc, .powerpcle, .powerpc64, .powerpc64le => ".cfi_undefined lr", | 206 | .powerpc, .powerpcle, .powerpc64, .powerpc64le => ".cfi_undefined lr", |
| 206 | .riscv32, .riscv32be, .riscv64, .riscv64be => if (builtin.zig_backend == .stage2_riscv64) | 207 | .riscv32, .riscv32be, .riscv64, .riscv64be => if (builtin.zig_backend == .stage2_riscv64) |
| 207 | "" | 208 | "" |
| ... | @@ -305,6 +306,14 @@ fn _start() callconv(.naked) noreturn { | ... | @@ -305,6 +306,14 @@ fn _start() callconv(.naked) noreturn { |
| 305 | \\ bstrins.d $sp, $zero, 3, 0 | 306 | \\ bstrins.d $sp, $zero, 3, 0 |
| 306 | \\ b %[posixCallMainAndExit] | 307 | \\ b %[posixCallMainAndExit] |
| 307 | , | 308 | , |
| | 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 | , |
| 308 | .riscv32, .riscv32be, .riscv64, .riscv64be => | 317 | .riscv32, .riscv32be, .riscv64, .riscv64be => |
| 309 | \\ li fp, 0 | 318 | \\ li fp, 0 |
| 310 | \\ li ra, 0 | 319 | \\ li ra, 0 |