// rt/abort.s — write a string to stderr and exit(1). // // Args (SysV str-by-value): DI = msg.ptr, SI = msg.len. // We never return. TEXT rt_abort,$0 // reorder args for the write syscall: rdi=fd, rsi=ptr, rdx=len. MOVQ SI, DX // DX = len MOVQ DI, SI // SI = ptr MOVQ $2, DI // DI = stderr MOVQ $1, AX // AX = sys_write SYSCALL // exit(1) MOVQ $1, DI MOVQ $60, AX // sys_exit SYSCALL RET