Commit c29da84c0e

Koakuma <koachan@protonmail.com>
2020-08-22 11:30:17
Add sp loading
1 parent 23433fb
Changed files (2)
lib
std
os
bits
lib/std/os/bits/linux/sparc64.zig
@@ -544,6 +544,9 @@ pub const timezone = extern struct {
     tz_dsttime: i32,
 };
 
+// TODO I'm not sure if the code below is correct, need someone with more
+// knowledge about sparc64 linux internals to look into.
+
 pub const Elf_Symndx = u32;
 
 pub const fpstate = extern struct {
lib/std/start.zig
@@ -147,6 +147,11 @@ fn _start() callconv(.Naked) noreturn {
                 : "r0"
             );
         },
+        .sparcv9 => {
+            starting_stack_ptr = asm (""
+                : [argc] "={o6}" (-> [*]usize)
+            );
+        },
         else => @compileError("unsupported arch"),
     }
     // If LLVM inlines stack variables into _start, they will overwrite