1 // Copyright 2019 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.
8 // System call support for ARM64, NetBSD
13 // func Syscall(trap uintptr, a1, a2, a3 uintptr) (r1, r2, err uintptr)
14 TEXT ·Syscall(SB),NOSPLIT,$0-56
15 BL runtime·entersyscall<ABIInternal>(SB)
23 MOVD R1, r1+32(FP) // r1
24 MOVD ZR, r2+40(FP) // r2
25 MOVD R0, err+48(FP) // err
26 BL runtime·exitsyscall<ABIInternal>(SB)
29 MOVD R0, r1+32(FP) // r1
30 MOVD R1, r2+40(FP) // r2
31 MOVD ZR, err+48(FP) // err
32 BL runtime·exitsyscall<ABIInternal>(SB)
35 // func RawSyscall(trap uintptr, a1, a2, a3 uintptr) (r1, r2, err uintptr)
36 TEXT ·RawSyscall(SB),NOSPLIT,$0-56
37 MOVD trap+0(FP), R17 // syscall entry
44 MOVD R1, r1+32(FP) // r1
45 MOVD ZR, r2+40(FP) // r2
46 MOVD R0, err+48(FP) // err
49 MOVD R0, r1+32(FP) // r1
50 MOVD R1, r2+40(FP) // r2
51 MOVD ZR, err+48(FP) // err
54 // func Syscall6(trap uintptr, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
55 TEXT ·Syscall6(SB),NOSPLIT,$0-80
56 BL runtime·entersyscall<ABIInternal>(SB)
57 MOVD trap+0(FP), R17 // syscall entry
67 MOVD R1, r1+56(FP) // r1
68 MOVD ZR, r2+64(FP) // r2
69 MOVD R0, err+72(FP) // err
70 BL runtime·exitsyscall<ABIInternal>(SB)
73 MOVD R0, r1+56(FP) // r1
74 MOVD R1, r2+64(FP) // r2
75 MOVD ZR, err+72(FP) // err
76 BL runtime·exitsyscall<ABIInternal>(SB)
79 // func RawSyscall6(trap uintptr, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr)
80 TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
81 MOVD trap+0(FP), R17 // syscall entry
91 MOVD R1, r1+56(FP) // r1
92 MOVD ZR, r2+64(FP) // r2
93 MOVD R0, err+72(FP) // err
96 MOVD R0, r1+56(FP) // r1
97 MOVD R1, r2+64(FP) // r2
99 MOVD R0, err+72(FP) // err
103 TEXT ·Syscall9(SB),NOSPLIT,$0-104
104 BL runtime·entersyscall<ABIInternal>(SB)
105 MOVD num+0(FP), R17 // syscall entry
118 MOVD R1, r1+80(FP) // r1
119 MOVD ZR, r2+88(FP) // r2
120 MOVD R0, err+96(FP) // err
121 BL runtime·exitsyscall<ABIInternal>(SB)
124 MOVD R0, r1+80(FP) // r1
125 MOVD R1, r2+88(FP) // r2
126 MOVD ZR, err+96(FP) // err
127 BL runtime·exitsyscall<ABIInternal>(SB)