Commit 5478b0eb38

Alex Rønne Petersen <alex@alexrp.com>
2024-07-24 18:35:20
start: Simplify mips and mips64 startup code.
Switches from using r1 as a temporary to r2. That way, we don't have to set the `noat` assembler option. (r1 is the scratch register used by the assembler's pseudoinstructions; the assembler warns when code uses that register explicitly without `noat` set.)
1 parent 47c0464
Changed files (1)
lib
lib/std/start.zig
@@ -332,22 +332,14 @@ fn _start() callconv(.Naked) noreturn {
             \\ move $fp, $0
             \\ move $ra, $0
             \\ move $a0, $sp
-            \\ .set push
-            \\ .set noat
-            \\ addiu $1, $zero, -16
-            \\ and $sp, $sp, $1
-            \\ .set pop
+            \\ and $sp, -16
             \\ j %[posixCallMainAndExit]
             ,
             .mips64, .mips64el =>
             \\ move $fp, $0
             \\ move $ra, $0
             \\ move $a0, $sp
-            \\ .set push
-            \\ .set noat
-            \\ daddiu $1, $zero, -16
-            \\ and $sp, $sp, $1
-            \\ .set pop
+            \\ and $sp, -16
             \\ j %[posixCallMainAndExit]
             ,
             .powerpc, .powerpcle =>