x86_64

std.runtime.darwin.x86_64

fun _start

pub fun _start();

LC_MAINdyld 在寄存器中带主函数参数调用入口点。[rsp] 保存 dyld 的返回地址,并且 rsp 是调用后的 RSP%16==8,因此下面的 and rsp, -16 既丢弃了该帧(该入口点永不返回),又恢复了下个 CALL 边界所需的 16 字节对齐。

fun _start

pub fun _start();

LC_UNIXTHREAD:内核在线程状态的 pc 处进入,rsp 指向参数块,因此从栈中读取 argc/argv 并推导 envp