diff --git a/lib/std/start.zig b/lib/std/start.zig index 98f8e43b8a..a5bec41231 100644 --- a/lib/std/start.zig +++ b/lib/std/start.zig @@ -205,6 +205,7 @@ fn _start() callconv(.naked) noreturn { .arm, .armeb, .thumb, .thumbeb => "", // https://github.com/llvm/llvm-project/issues/115891 .csky => ".cfi_undefined lr", .hexagon => ".cfi_undefined r31", + .kvx => ".cfi_undefined r14", .loongarch32, .loongarch64 => ".cfi_undefined 1", .m68k => ".cfi_undefined %%pc", .microblaze, .microblazeel => ".cfi_undefined r15", @@ -318,6 +319,15 @@ fn _start() callconv(.naked) noreturn { \\ r29 = add(r29, #-8) \\ call %[posixCallMainAndExit] , + .kvx => + \\ make $fp = 0 + \\ ;; + \\ set $ra = $fp + \\ copyd $r0 = $sp + \\ andd $sp = $sp, -32 + \\ ;; + \\ goto %[posixCallMainAndExit] + , .loongarch32, .loongarch64 => \\ move $fp, $zero \\ move $ra, $zero