aboutsummaryrefslogtreecommitdiff
path: root/system/libraries/sys/start.zig
blob: a65eec89a636275d12bcabc6252cc7d19d6519cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//! Entry point

extern fn main(pc: u32, pv: [*]const [*:0]const u8) u8;

export fn _start() callconv(.naked) noreturn {
    asm volatile (
        \\mov (%%rsp), %%edi
        \\mov 8(%%rsp), %%rsi
        \\and $-16, %%rsp
        \\call main
        \\movzbl %%al, %%edi
        \\mov $0x01, %%eax
        \\syscall
        \\ud2
    );
}