lang-bootstrap/05/musl-0.6.0/src/syscall.s

31 lines
595 B
ArmAsm
Raw Normal View History

2022-02-23 22:37:01 -08:00
# this file is necessary because tcc doesn't like musl's inline-assembly implementation
# of syscall
.global syscall0
.global syscall1
.global syscall2
.global syscall3
.global syscall4
2022-02-20 13:18:21 -08:00
.global syscall5
.global syscall6
2022-02-23 22:37:01 -08:00
syscall0:
syscall1:
syscall2:
syscall3:
syscall4:
2022-02-20 13:18:21 -08:00
syscall5:
syscall6:
# SysV calling convention: RDI, RSI, RDX, RCX, R8, R9, 8(%rsp)
# Linux syscall calling convention: RAX, RDI, RSI, RDX, R10, R8, R9
mov %rdi, %rax
mov %rsi, %rdi
mov %rdx, %rsi
mov %rcx, %rdx
mov %r8, %r10
mov %r9, %r8
mov 8(%rsp), %r9
syscall
2022-02-23 22:37:01 -08:00
mov %rax, %rdi
call __syscall_ret
2022-02-20 13:18:21 -08:00
ret