From 19a0cef7e8adfff9dea6f9672cc022ad267939ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sat, 8 Aug 2026 14:08:27 +0200 Subject: [PATCH] std.start: simplify sh _start assembly a bit A couple extra instructions, but this looks significantly less arcane. --- lib/std/start.zig | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/std/start.zig b/lib/std/start.zig index ccfc572f0690ccbc254270b4d9c6c76bb66ccfa7..503de37118a60fabd7f45cf5d1ea7e362ee15e1e 100644 --- a/lib/std/start.zig +++ b/lib/std/start.zig @@ -476,13 +476,14 @@ fn _start() callconv(.naked) noreturn { \\ mov r15, r4 \\ mov #-4, r0 \\ and r0, r15 + \\ mova 2f, r0 \\ mov.l 2f, r1 - \\1: - \\ braf r1 + \\ add r0, r1 + \\ jmp @r1 \\ nop - \\2: \\ .balign 4 - \\ .long %[posixCallMainAndExit]@PCREL - (1b + 4 - .) + \\1: + \\ .long %[posixCallMainAndExit] - . , .sparc => // argc is stored after a register window (16 registers * 4 bytes). -- 2.54.0