diff --git a/lib/std/start.zig b/lib/std/start.zig index 326857d9c0953b57a6afa9e27f3b91aacaa58a4b..d97381ef0dcef3a3aab9e94ade1588c5b882e78e 100644 --- a/lib/std/start.zig +++ b/lib/std/start.zig @@ -307,6 +307,15 @@ fn _start() callconv(.Naked) noreturn { \\ and sp, #-16 \\ b %[posixCallMainAndExit] , + .hexagon => + // r29 = SP, r30 = FP + \\ r30 = #0 + \\ r0 = r29 + \\ r29 = and(r29, #-16) + \\ memw(r29 + #-8) = r29 + \\ r29 = add(r29, #-8) + \\ call %[posixCallMainAndExit] + , .loongarch32, .loongarch64 => \\ move $fp, $zero \\ move $a0, $sp