Commit 695a0fb4 authored by David Crawshaw's avatar David Crawshaw

syscall: use name+(NN)FP on linux/amd64

Generated from a modified go vet.

Change-Id: Ibe82941283da9bd4dbc7fa624a33ffb12424daa2
Reviewed-on: https://go-review.googlesource.com/2817Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
parent 01295d79
...@@ -2,9 +2,6 @@ ...@@ -2,9 +2,6 @@
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
// TODO(rsc): Rewrite all nn(SP) references into name+(nn-8)(FP)
// so that go vet can check that they are correct.
#include "textflag.h" #include "textflag.h"
#include "funcdata.h" #include "funcdata.h"
...@@ -19,100 +16,104 @@ ...@@ -19,100 +16,104 @@
TEXT ·Syscall(SB),NOSPLIT,$0-56 TEXT ·Syscall(SB),NOSPLIT,$0-56
CALL runtime·entersyscall(SB) CALL runtime·entersyscall(SB)
MOVQ 16(SP), DI MOVQ a1+8(FP), DI
MOVQ 24(SP), SI MOVQ a2+16(FP), SI
MOVQ 32(SP), DX MOVQ a3+24(FP), DX
MOVQ $0, R10 MOVQ $0, R10
MOVQ $0, R8 MOVQ $0, R8
MOVQ $0, R9 MOVQ $0, R9
MOVQ 8(SP), AX // syscall entry MOVQ trap+0(FP), AX // syscall entry
SYSCALL SYSCALL
CMPQ AX, $0xfffffffffffff001 CMPQ AX, $0xfffffffffffff001
JLS ok JLS ok
MOVQ $-1, 40(SP) // r1 MOVQ $-1, r1+32(FP)
MOVQ $0, 48(SP) // r2 MOVQ $0, r2+40(FP)
NEGQ AX NEGQ AX
MOVQ AX, 56(SP) // errno MOVQ AX, err+48(FP)
CALL runtime·exitsyscall(SB) CALL runtime·exitsyscall(SB)
RET RET
ok: ok:
MOVQ AX, 40(SP) // r1 MOVQ AX, r1+32(FP)
MOVQ DX, 48(SP) // r2 MOVQ DX, r2+40(FP)
MOVQ $0, 56(SP) // errno MOVQ $0, err+48(FP)
CALL runtime·exitsyscall(SB) CALL runtime·exitsyscall(SB)
RET RET
// func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
TEXT ·Syscall6(SB),NOSPLIT,$0-80 TEXT ·Syscall6(SB),NOSPLIT,$0-80
CALL runtime·entersyscall(SB) CALL runtime·entersyscall(SB)
MOVQ 16(SP), DI MOVQ a1+8(FP), DI
MOVQ 24(SP), SI MOVQ a2+16(FP), SI
MOVQ 32(SP), DX MOVQ a3+24(FP), DX
MOVQ 40(SP), R10 MOVQ a4+32(FP), R10
MOVQ 48(SP), R8 MOVQ a5+40(FP), R8
MOVQ 56(SP), R9 MOVQ a6+48(FP), R9
MOVQ 8(SP), AX // syscall entry MOVQ trap+0(FP), AX // syscall entry
SYSCALL SYSCALL
CMPQ AX, $0xfffffffffffff001 CMPQ AX, $0xfffffffffffff001
JLS ok6 JLS ok6
MOVQ $-1, 64(SP) // r1 MOVQ $-1, r1+56(FP)
MOVQ $0, 72(SP) // r2 MOVQ $0, r2+64(FP)
NEGQ AX NEGQ AX
MOVQ AX, 80(SP) // errno MOVQ AX, err+72(FP)
CALL runtime·exitsyscall(SB) CALL runtime·exitsyscall(SB)
RET RET
ok6: ok6:
MOVQ AX, 64(SP) // r1 MOVQ AX, r1+56(FP)
MOVQ DX, 72(SP) // r2 MOVQ DX, r2+64(FP)
MOVQ $0, 80(SP) // errno MOVQ $0, err+72(FP)
CALL runtime·exitsyscall(SB) CALL runtime·exitsyscall(SB)
RET RET
// func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr)
TEXT ·RawSyscall(SB),NOSPLIT,$0-56 TEXT ·RawSyscall(SB),NOSPLIT,$0-56
MOVQ 16(SP), DI MOVQ a1+8(FP), DI
MOVQ 24(SP), SI MOVQ a2+16(FP), SI
MOVQ 32(SP), DX MOVQ a3+24(FP), DX
MOVQ $0, R10 MOVQ $0, R10
MOVQ $0, R8 MOVQ $0, R8
MOVQ $0, R9 MOVQ $0, R9
MOVQ 8(SP), AX // syscall entry MOVQ trap+0(FP), AX // syscall entry
SYSCALL SYSCALL
CMPQ AX, $0xfffffffffffff001 CMPQ AX, $0xfffffffffffff001
JLS ok1 JLS ok1
MOVQ $-1, 40(SP) // r1 MOVQ $-1, r1+32(FP)
MOVQ $0, 48(SP) // r2 MOVQ $0, r2+40(FP)
NEGQ AX NEGQ AX
MOVQ AX, 56(SP) // errno MOVQ AX, err+48(FP)
RET RET
ok1: ok1:
MOVQ AX, 40(SP) // r1 MOVQ AX, r1+32(FP)
MOVQ DX, 48(SP) // r2 MOVQ DX, r2+40(FP)
MOVQ $0, 56(SP) // errno MOVQ $0, err+48(FP)
RET RET
// func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
MOVQ 16(SP), DI MOVQ a1+8(FP), DI
MOVQ 24(SP), SI MOVQ a2+16(FP), SI
MOVQ 32(SP), DX MOVQ a3+24(FP), DX
MOVQ 40(SP), R10 MOVQ a4+32(FP), R10
MOVQ 48(SP), R8 MOVQ a5+40(FP), R8
MOVQ 56(SP), R9 MOVQ a6+48(FP), R9
MOVQ 8(SP), AX // syscall entry MOVQ trap+0(FP), AX // syscall entry
SYSCALL SYSCALL
CMPQ AX, $0xfffffffffffff001 CMPQ AX, $0xfffffffffffff001
JLS ok2 JLS ok2
MOVQ $-1, 64(SP) // r1 MOVQ $-1, r1+56(FP)
MOVQ $0, 72(SP) // r2 MOVQ $0, r2+64(FP)
NEGQ AX NEGQ AX
MOVQ AX, 80(SP) // errno MOVQ AX, err+72(FP)
RET RET
ok2: ok2:
MOVQ AX, 64(SP) // r1 MOVQ AX, r1+56(FP)
MOVQ DX, 72(SP) // r2 MOVQ DX, r2+64(FP)
MOVQ $0, 80(SP) // errno MOVQ $0, err+72(FP)
RET RET
// func gettimeofday(tv *Timeval) (err uintptr)
TEXT ·gettimeofday(SB),NOSPLIT,$0-16 TEXT ·gettimeofday(SB),NOSPLIT,$0-16
MOVQ 8(SP), DI MOVQ tv+0(FP), DI
MOVQ $0, SI MOVQ $0, SI
MOVQ runtime·__vdso_gettimeofday_sym(SB), AX MOVQ runtime·__vdso_gettimeofday_sym(SB), AX
CALL AX CALL AX
...@@ -120,8 +121,8 @@ TEXT ·gettimeofday(SB),NOSPLIT,$0-16 ...@@ -120,8 +121,8 @@ TEXT ·gettimeofday(SB),NOSPLIT,$0-16
CMPQ AX, $0xfffffffffffff001 CMPQ AX, $0xfffffffffffff001
JLS ok7 JLS ok7
NEGQ AX NEGQ AX
MOVQ AX, 16(SP) // errno MOVQ AX, err+8(FP)
RET RET
ok7: ok7:
MOVQ $0, 16(SP) // errno MOVQ $0, err+8(FP)
RET RET
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment