| ... | ... | @@ -240,6 +240,14 @@ fn _start() callconv(.Naked) noreturn { |
| 240 | 240 | : [tos] "={rax}" (-> *std.os.plan9.Tos), |
| 241 | 241 | ); |
| 242 | 242 | } |
| 243 | switch (native_arch) { |
| 244 | // https://github.com/ziglang/zig/issues/16799 |
| 245 | .riscv64 => @export(argc_argv_ptr, .{ |
| 246 | .name = "__zig_argc_argv_ptr", |
| 247 | .visibility = .hidden, |
| 248 | }), |
| 249 | else => {}, |
| 250 | } |
| 243 | 251 | asm volatile (switch (native_arch) { |
| 244 | 252 | .x86_64 => |
| 245 | 253 | \\ xorl %%ebp, %%ebp |
| ... | ... | @@ -270,7 +278,8 @@ fn _start() callconv(.Naked) noreturn { |
| 270 | 278 | .riscv64 => |
| 271 | 279 | \\ li s0, 0 |
| 272 | 280 | \\ li ra, 0 |
| 273 | | \\ sd sp, %[argc_argv_ptr] |
| 281 | \\ lui a0, %hi(__zig_argc_argv_ptr) |
| 282 | \\ sd sp, %lo(__zig_argc_argv_ptr)(a0) |
| 274 | 283 | \\ andi sp, sp, -16 |
| 275 | 284 | \\ tail %[posixCallMainAndExit]@plt |
| 276 | 285 | , |