commit 5478b0eb3821df4fcdbcb221441e732576be7d68 (tree)
parent 47c0464e860486150942b73a78529805d4f320b5
Author: Alex Rønne Petersen <alex@alexrp.com>
Date: Wed, 24 Jul 2024 18:35:20 +0200
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.)
Diffstat:
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/lib/std/start.zig b/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 =>