...
Run Format

Text file src/syscall/asm_linux_mips64x.s

Documentation: syscall

     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	// +build linux
     6	// +build mips64 mips64le
     7	
     8	#include "textflag.h"
     9	
    10	//
    11	// System calls for mips64, Linux
    12	//
    13	
    14	// func Syscall(trap int64, a1, a2, a3 int64) (r1, r2, err int64);
    15	TEXT ·Syscall(SB),NOSPLIT,$0-56
    16		JAL	runtime·entersyscall(SB)
    17		MOVV	a1+8(FP), R4
    18		MOVV	a2+16(FP), R5
    19		MOVV	a3+24(FP), R6
    20		MOVV	R0, R7
    21		MOVV	R0, R8
    22		MOVV	R0, R9
    23		MOVV	trap+0(FP), R2	// syscall entry
    24		SYSCALL
    25		BEQ	R7, ok
    26		MOVV	$-1, R1
    27		MOVV	R1, r1+32(FP)	// r1
    28		MOVV	R0, r2+40(FP)	// r2
    29		MOVV	R2, err+48(FP)	// errno
    30		JAL	runtime·exitsyscall(SB)
    31		RET
    32	ok:
    33		MOVV	R2, r1+32(FP)	// r1
    34		MOVV	R3, r2+40(FP)	// r2
    35		MOVV	R0, err+48(FP)	// errno
    36		JAL	runtime·exitsyscall(SB)
    37		RET
    38	
    39	TEXT ·Syscall6(SB),NOSPLIT,$0-80
    40		JAL	runtime·entersyscall(SB)
    41		MOVV	a1+8(FP), R4
    42		MOVV	a2+16(FP), R5
    43		MOVV	a3+24(FP), R6
    44		MOVV	a4+32(FP), R7
    45		MOVV	a5+40(FP), R8
    46		MOVV	a6+48(FP), R9
    47		MOVV	trap+0(FP), R2	// syscall entry
    48		SYSCALL
    49		BEQ	R7, ok6
    50		MOVV	$-1, R1
    51		MOVV	R1, r1+56(FP)	// r1
    52		MOVV	R0, r2+64(FP)	// r2
    53		MOVV	R2, err+72(FP)	// errno
    54		JAL	runtime·exitsyscall(SB)
    55		RET
    56	ok6:
    57		MOVV	R2, r1+56(FP)	// r1
    58		MOVV	R3, r2+64(FP)	// r2
    59		MOVV	R0, err+72(FP)	// errno
    60		JAL	runtime·exitsyscall(SB)
    61		RET
    62	
    63	TEXT ·RawSyscall(SB),NOSPLIT,$0-56
    64		MOVV	a1+8(FP), R4
    65		MOVV	a2+16(FP), R5
    66		MOVV	a3+24(FP), R6
    67		MOVV	R0, R7
    68		MOVV	R0, R8
    69		MOVV	R0, R9
    70		MOVV	trap+0(FP), R2	// syscall entry
    71		SYSCALL
    72		BEQ	R7, ok1
    73		MOVV	$-1, R1
    74		MOVV	R1, r1+32(FP)	// r1
    75		MOVV	R0, r2+40(FP)	// r2
    76		MOVV	R2, err+48(FP)	// errno
    77		RET
    78	ok1:
    79		MOVV	R2, r1+32(FP)	// r1
    80		MOVV	R3, r2+40(FP)	// r2
    81		MOVV	R0, err+48(FP)	// errno
    82		RET
    83	
    84	TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
    85		MOVV	a1+8(FP), R4
    86		MOVV	a2+16(FP), R5
    87		MOVV	a3+24(FP), R6
    88		MOVV	a4+32(FP), R7
    89		MOVV	a5+40(FP), R8
    90		MOVV	a6+48(FP), R9
    91		MOVV	trap+0(FP), R2	// syscall entry
    92		SYSCALL
    93		BEQ	R7, ok2
    94		MOVV	$-1, R1
    95		MOVV	R1, r1+56(FP)	// r1
    96		MOVV	R0, r2+64(FP)	// r2
    97		MOVV	R2, err+72(FP)	// errno
    98		RET
    99	ok2:
   100		MOVV	R2, r1+56(FP)	// r1
   101		MOVV	R3, r2+64(FP)	// r2
   102		MOVV	R0, err+72(FP)	// errno
   103		RET
   104	
   105	TEXT ·rawSyscallNoError(SB),NOSPLIT,$0-48
   106		MOVV	a1+8(FP), R4
   107		MOVV	a2+16(FP), R5
   108		MOVV	a3+24(FP), R6
   109		MOVV	R0, R7
   110		MOVV	R0, R8
   111		MOVV	R0, R9
   112		MOVV	trap+0(FP), R2	// syscall entry
   113		SYSCALL
   114		MOVV	R2, r1+32(FP)
   115		MOVV	R3, r2+40(FP)
   116		RET

View as plain text