diff --git a/lib/std/start.zig b/lib/std/start.zig index 9bc001fe598b5182943be40b85794ba95e7c7158..8d1b793cbb14ec0f84c6198a2e4215cd1bfb1cf1 100644 --- a/lib/std/start.zig +++ b/lib/std/start.zig @@ -276,7 +276,15 @@ fn _start() callconv(.naked) noreturn { \\ ;; \\ goto %[posixCallMainAndExit] , - .loongarch32, .loongarch64 => + .loongarch32 => + \\ move $fp, $zero + \\ move $ra, $zero + \\ move $a0, $sp + \\ srli.w $sp, $sp, 4 + \\ slli.w $sp, $sp, 4 + \\ b %[posixCallMainAndExit] + , + .loongarch64 => \\ move $fp, $zero \\ move $ra, $zero \\ move $a0, $sp