tinycc/bootstrap/libc/src/base_x86_64.s

35 lines
473 B
ArmAsm

.global _start
.global __syscall
.text
_start:
// Run main
call main
// Exit process
mov %rax, %rdi
mov $60, %rax
syscall
__syscall:
// Save the config (except rax)
push %rdi
push %rsi
push %rdx
push %r10
// Make the syscall
mov %rdi, %rax
mov %rsi, %rdi
mov %rdx, %rsi
mov %rcx, %rdx
mov %r8d, %r10d
syscall
// Restore and return
pop %r10
pop %rdx
pop %rsi
pop %rdi
retq