asm_linux_amd64.s

 1// Copyright 2009 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// +build !gccgo
 6
 7#include "textflag.h"
 8
 9//
10// System calls for AMD64, Linux
11//
12
13// Just jump to package syscall's implementation for all these functions.
14// The runtime may know about them.
15
16TEXT Syscall(SB),NOSPLIT,$0-56
17	JMP	syscallSyscall(SB)
18
19TEXT Syscall6(SB),NOSPLIT,$0-80
20	JMP	syscallSyscall6(SB)
21
22TEXT SyscallNoError(SB),NOSPLIT,$0-48
23	CALL	runtimeentersyscall(SB)
24	MOVQ	a1+8(FP), DI
25	MOVQ	a2+16(FP), SI
26	MOVQ	a3+24(FP), DX
27	MOVQ	$0, R10
28	MOVQ	$0, R8
29	MOVQ	$0, R9
30	MOVQ	trap+0(FP), AX	// syscall entry
31	SYSCALL
32	MOVQ	AX, r1+32(FP)
33	MOVQ	DX, r2+40(FP)
34	CALL	runtimeexitsyscall(SB)
35	RET
36
37TEXT RawSyscall(SB),NOSPLIT,$0-56
38	JMP	syscallRawSyscall(SB)
39
40TEXT RawSyscall6(SB),NOSPLIT,$0-80
41	JMP	syscallRawSyscall6(SB)
42
43TEXT RawSyscallNoError(SB),NOSPLIT,$0-48
44	MOVQ	a1+8(FP), DI
45	MOVQ	a2+16(FP), SI
46	MOVQ	a3+24(FP), DX
47	MOVQ	$0, R10
48	MOVQ	$0, R8
49	MOVQ	$0, R9
50	MOVQ	trap+0(FP), AX	// syscall entry
51	SYSCALL
52	MOVQ	AX, r1+32(FP)
53	MOVQ	DX, r2+40(FP)
54	RET
55
56TEXT gettimeofday(SB),NOSPLIT,$0-16
57	JMP	syscallgettimeofday(SB)