asm_linux_ppc64x.s

 1// Copyright 2014 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 && (ppc64 || ppc64le) && gc
 6
 7#include "textflag.h"
 8
 9//
10// System calls for ppc64, Linux
11//
12
13// Just jump to package syscall's implementation for all these functions.
14// The runtime may know about them.
15
16TEXT ยทSyscallNoError(SB),NOSPLIT,$0-48
17	BL	runtimeยทentersyscall(SB)
18	MOVD	a1+8(FP), R3
19	MOVD	a2+16(FP), R4
20	MOVD	a3+24(FP), R5
21	MOVD	R0, R6
22	MOVD	R0, R7
23	MOVD	R0, R8
24	MOVD	trap+0(FP), R9	// syscall entry
25	SYSCALL R9
26	MOVD	R3, r1+32(FP)
27	MOVD	R4, r2+40(FP)
28	BL	runtimeยทexitsyscall(SB)
29	RET
30
31TEXT ยทRawSyscallNoError(SB),NOSPLIT,$0-48
32	MOVD	a1+8(FP), R3
33	MOVD	a2+16(FP), R4
34	MOVD	a3+24(FP), R5
35	MOVD	R0, R6
36	MOVD	R0, R7
37	MOVD	R0, R8
38	MOVD	trap+0(FP), R9	// syscall entry
39	SYSCALL R9
40	MOVD	R3, r1+32(FP)
41	MOVD	R4, r2+40(FP)
42	RET