blob: 98ae02760da1ee63ba1d10e52917ab5d3598741e [file] [log] [blame]
Don Newton98fd8812019-09-23 15:15:02 -04001// 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
David K. Bainbridgee05cf0c2021-08-19 03:16:50 +00005//go:build linux && arm64 && gc
Don Newton98fd8812019-09-23 15:15:02 -04006// +build linux
7// +build arm64
David K. Bainbridgee05cf0c2021-08-19 03:16:50 +00008// +build gc
Don Newton98fd8812019-09-23 15:15:02 -04009
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
15TEXT ·Syscall(SB),NOSPLIT,$0-56
16 B syscall·Syscall(SB)
17
18TEXT ·Syscall6(SB),NOSPLIT,$0-80
19 B syscall·Syscall6(SB)
20
21TEXT ·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
36TEXT ·RawSyscall(SB),NOSPLIT,$0-56
37 B syscall·RawSyscall(SB)
38
39TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
40 B syscall·RawSyscall6(SB)
41
42TEXT ·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