diff options
author | pommicket <pommicket@gmail.com> | 2022-02-23 22:37:01 -0800 |
---|---|---|
committer | pommicket <pommicket@gmail.com> | 2022-02-23 22:37:01 -0800 |
commit | c75af0c8e5fdf7792081f03ca8a01764953b19a4 (patch) | |
tree | 811fcdb32086c0b5b4a41f18031c8fcde65ca4b6 /05/musl-0.6.0/src/syscall.s | |
parent | 9bc8a11afeed3569736b89754012e3ca22ee10f6 (diff) |
coda
Diffstat (limited to '05/musl-0.6.0/src/syscall.s')
-rw-r--r-- | 05/musl-0.6.0/src/syscall.s | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/05/musl-0.6.0/src/syscall.s b/05/musl-0.6.0/src/syscall.s new file mode 100644 index 0000000..67af412 --- /dev/null +++ b/05/musl-0.6.0/src/syscall.s @@ -0,0 +1,30 @@ +# 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 +.global syscall5 +.global syscall6 + +syscall0: +syscall1: +syscall2: +syscall3: +syscall4: +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 + mov %rax, %rdi + call __syscall_ret + ret |