1 // Copyright 2015 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 linux && arm64 && gc
6 // +build linux
7 // +build arm64
8 // +build gc
9
10 #include "textflag.h"
11
12 // Just jump to package syscall's implementation for all these functions.
13 // The runtime may know about them.
14
15 TEXT ·Syscall(SB),NOSPLIT,$0-56
16 B syscall·Syscall(SB)
17
18 TEXT ·Syscall6(SB),NOSPLIT,$0-80
19 B syscall·Syscall6(SB)
20
21 TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
22 BL runtime·entersyscall(SB)
23 MOVD a1+8(FP), R0
24 MOVD a2+16(FP), R1
25 MOVD a3+24(FP), R2
26 MOVD $0, R3
27 MOVD $0, R4
28 MOVD $0, R5
29 MOVD trap+0(FP), R8 // syscall entry
30 SVC
31 MOVD R0, r1+32(FP) // r1
32 MOVD R1, r2+40(FP) // r2
33 BL runtime·exitsyscall(SB)
34 RET
35
36 TEXT ·RawSyscall(SB),NOSPLIT,$0-56
37 B syscall·RawSyscall(SB)
38
39 TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
40 B syscall·RawSyscall6(SB)
41
42 TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
43 MOVD a1+8(FP), R0
44 MOVD a2+16(FP), R1
45 MOVD a3+24(FP), R2
46 MOVD $0, R3
47 MOVD $0, R4
48 MOVD $0, R5
49 MOVD trap+0(FP), R8 // syscall entry
50 SVC
51 MOVD R0, r1+32(FP)
52 MOVD R1, r2+40(FP)
53 RET
54
View as plain text