diff options
Diffstat (limited to 'src/syscall/syscall_amd64_linux.s')
| -rw-r--r-- | src/syscall/syscall_amd64_linux.s | 119 |
1 files changed, 20 insertions, 99 deletions
diff --git a/src/syscall/syscall_amd64_linux.s b/src/syscall/syscall_amd64_linux.s index 1a37dc0d29..38d6ac442d 100644 --- a/src/syscall/syscall_amd64_linux.s +++ b/src/syscall/syscall_amd64_linux.s @@ -6,112 +6,33 @@ // System calls for AMD64, Linux // -TEXT syscall·open(SB),1,$0-16 - MOVQ 8(SP), DI - MOVQ 16(SP), SI - MOVQ $0, DX - MOVQ $2, AX // syscall entry - SYSCALL - CMPQ AX, $0xfffffffffffff001 - JLS 5(PC) - MOVQ $-1, 24(SP) - NEGQ AX - MOVQ AX, 32(SP) - RET - MOVQ AX, 24(SP) - MOVQ $0, 32(SP) - RET - -TEXT syscall·close(SB),1,$0-16 - MOVQ 8(SP), DI - MOVL $3, AX // syscall entry - SYSCALL - CMPQ AX, $0xfffffffffffff001 - JLS 5(PC) - MOVQ $-1, 16(SP) - NEGQ AX - MOVQ AX, 24(SP) - RET - MOVQ AX, 16(SP) - MOVQ $0, 24(SP) - RET - -TEXT syscall·read(SB),1,$0-16 - MOVL 8(SP), DI - MOVQ 16(SP), SI - MOVL 24(SP), DX - MOVL $0, AX // syscall entry - SYSCALL - CMPQ AX, $0xfffffffffffff001 - JLS 5(PC) - MOVQ $-1, 32(SP) - NEGQ AX - MOVQ AX, 40(SP) - RET - MOVQ AX, 32(SP) - MOVQ $0, 40(SP) - RET +// func Syscall(trap int64, a1, a2, a3 int64) (r1, r2, err int64); +// Trap # in AX, args in DI SI DX, return in AX DX -TEXT syscall·write(SB),1,$0-16 - MOVL 8(SP), DI - MOVQ 16(SP), SI - MOVL 24(SP), DX - MOVL $1, AX // syscall entry +TEXT syscall·Syscall(SB),1,$-8 + MOVQ 16(SP), DI + MOVQ 24(SP), SI + MOVQ 32(SP), DX + MOVQ 8(SP), AX // syscall entry SYSCALL CMPQ AX, $0xfffffffffffff001 - JLS 5(PC) - MOVQ $-1, 32(SP) + JLS 6(PC) + MOVQ $-1, 40(SP) // r1 + MOVQ $0, 48(SP) // r2 NEGQ AX - MOVQ AX, 40(SP) + MOVQ AX, 56(SP) // errno RET - MOVQ AX, 32(SP) - MOVQ $0, 40(SP) + MOVQ AX, 40(SP) // r1 + MOVQ DX, 48(SP) // r2 + MOVQ $0, 56(SP) // errno RET -TEXT syscall·stat(SB),1,$0-16 - MOVQ 8(SP), DI - MOVQ 16(SP), SI - MOVQ $0, DX - MOVQ $5, AX // syscall entry - SYSCALL - CMPQ AX, $0xfffffffffffff001 - JLS 5(PC) - MOVQ $-1, 24(SP) - NEGQ AX - MOVQ AX, 32(SP) - RET - MOVQ AX, 24(SP) - MOVQ $0, 32(SP) - RET - -TEXT syscall·fstat(SB),1,$0-16 - MOVL 8(SP), DI - MOVQ 16(SP), SI - MOVQ $0, DX - MOVQ $5, AX // syscall entry - SYSCALL - CMPQ AX, $0xfffffffffffff001 - JLS 5(PC) - MOVQ $-1, 24(SP) - NEGQ AX - MOVQ AX, 32(SP) - RET - MOVQ AX, 24(SP) - MOVQ $0, 32(SP) +TEXT syscall·AddrToInt(SB),1,$-8 + MOVQ 8(SP), AX + MOVQ AX, 16(SP) RET -TEXT syscall·lstat(SB),1,$0-16 - MOVL 8(SP), DI - MOVQ 16(SP), SI - MOVQ $0, DX - MOVQ $6, AX // syscall entry - SYSCALL - CMPQ AX, $0xfffffffffffff001 - JLS 5(PC) - MOVQ $-1, 24(SP) - NEGQ AX - MOVQ AX, 32(SP) - RET - MOVQ AX, 24(SP) - MOVQ $0, 32(SP) +TEXT syscall·StatToInt(SB),1,$-8 + MOVQ 8(SP), AX + MOVQ AX, 16(SP) RET |
