authorgravatar for koachan@protonmail.comKoakuma <koachan@protonmail.com> 2023-09-17 19:18:59+07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-10-12 16:13:32-07:00
log375bb5f4a1ebfc1d002e252d97077da7e1db7e4d
treee216296d7a47dd4c53117a96abac506f844bba43
parent67ee68fc9eb02b78d7a2c26c617a16f60f91012d

lib: Fix asm code in _start for SPARC

SPARCs have delayed branches, that is, it will unconditionally run the next instruction following a branch. Slightly reorder the _start code sequence to prevent it from accidentally executing stray instructions, which may result in odd program behavior.

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

lib/std/start.zig+1-1
......@@ -327,8 +327,8 @@ fn _start() callconv(.Naked) noreturn {
327327 // argc is stored after a register window (16 registers) plus stack bias
328328 \\ mov %%g0, %%i6
329329 \\ add %%o6, 2175, %%l0
330 \\ stx %%l0, %[argc_argv_ptr]
331330 \\ ba %[posixCallMainAndExit]
331 \\ stx %%l0, %[argc_argv_ptr]
332332 ,
333333 else => @compileError("unsupported arch"),
334334 }