cubefs

Форк
0
/x
/
asm_linux_mips64x.s 
57 строк · 1.2 Кб
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 && (mips64 || mips64le) && gc
6
// +build linux
7
// +build mips64 mips64le
8
// +build gc
9

10
#include "textflag.h"
11

12
//
13
// System calls for mips64, Linux
14
//
15

16
// Just jump to package syscall's implementation for all these functions.
17
// The runtime may know about them.
18

19
TEXT ·Syscall(SB),NOSPLIT,$0-56
20
	JMP	syscall·Syscall(SB)
21

22
TEXT ·Syscall6(SB),NOSPLIT,$0-80
23
	JMP	syscall·Syscall6(SB)
24

25
TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
26
	JAL	runtime·entersyscall(SB)
27
	MOVV	a1+8(FP), R4
28
	MOVV	a2+16(FP), R5
29
	MOVV	a3+24(FP), R6
30
	MOVV	R0, R7
31
	MOVV	R0, R8
32
	MOVV	R0, R9
33
	MOVV	trap+0(FP), R2	// syscall entry
34
	SYSCALL
35
	MOVV	R2, r1+32(FP)
36
	MOVV	R3, r2+40(FP)
37
	JAL	runtime·exitsyscall(SB)
38
	RET
39

40
TEXT ·RawSyscall(SB),NOSPLIT,$0-56
41
	JMP	syscall·RawSyscall(SB)
42

43
TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
44
	JMP	syscall·RawSyscall6(SB)
45

46
TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
47
	MOVV	a1+8(FP), R4
48
	MOVV	a2+16(FP), R5
49
	MOVV	a3+24(FP), R6
50
	MOVV	R0, R7
51
	MOVV	R0, R8
52
	MOVV	R0, R9
53
	MOVV	trap+0(FP), R2	// syscall entry
54
	SYSCALL
55
	MOVV	R2, r1+32(FP)
56
	MOVV	R3, r2+40(FP)
57
	RET
58

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.