Text file
src/syscall/asm9_unix1_amd64.s
Documentation: syscall
1 // Copyright 2016 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 //go:build netbsd
6 // +build netbsd
7
8 #include "textflag.h"
9 #include "funcdata.h"
10
11 //
12 // Syscall9 support for AMD64, NetBSD
13 //
14
15 // func Syscall9(trap int64, a1, a2, a3, a4, a5, a6, a7, a8, a9 int64) (r1, r2, err int64);
16 TEXT ·Syscall9(SB),NOSPLIT,$0-104
17 CALL runtime·entersyscall(SB)
18 MOVQ num+0(FP), AX // syscall entry
19 MOVQ a1+8(FP), DI
20 MOVQ a2+16(FP), SI
21 MOVQ a3+24(FP), DX
22 MOVQ a4+32(FP), R10
23 MOVQ a5+40(FP), R8
24 MOVQ a6+48(FP), R9
25 MOVQ a7+56(FP), R11
26 MOVQ a8+64(FP), R12
27 MOVQ a9+72(FP), R13
28 SUBQ $32, SP
29 MOVQ R11, 8(SP) // arg 7
30 MOVQ R12, 16(SP) // arg 8
31 MOVQ R13, 24(SP) // arg 9
32 SYSCALL
33 JCC ok9
34 ADDQ $32, SP
35 MOVQ $-1, 88(SP) // r1
36 MOVQ $0, 96(SP) // r2
37 MOVQ AX, 104(SP) // errno
38 CALL runtime·exitsyscall(SB)
39 RET
40 ok9:
41 ADDQ $32, SP
42 MOVQ AX, 88(SP) // r1
43 MOVQ DX, 96(SP) // r2
44 MOVQ $0, 104(SP) // errno
45 CALL runtime·exitsyscall(SB)
46 RET
47
View as plain text