aboutsummaryrefslogblamecommitdiffstats
path: root/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
blob: ab9d63831a75af45f4d319bce59e7e0d1838a7eb (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
                                                      


                                                     

                         




                     
                                 




                                                                         
                                

                                    
                                 

                                     















                                                

                                       
                                    
                                        












                                                
// Copyright 2015 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// +build linux
// +build mips64 mips64le
// +build !gccgo

#include "textflag.h"

//
// System calls for mips64, Linux
//

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

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

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

TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
    JAL runtime·entersyscall(SB)
    MOVV    a1+8(FP), R4
    MOVV    a2+16(FP), R5
    MOVV    a3+24(FP), R6
    MOVV    R0, R7
    MOVV    R0, R8
    MOVV    R0, R9
    MOVV    trap+0(FP), R2  // syscall entry
    SYSCALL
    MOVV    R2, r1+32(FP)
    MOVV    R3, r2+40(FP)
    JAL runtime·exitsyscall(SB)
    RET

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

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

TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
    MOVV    a1+8(FP), R4
    MOVV    a2+16(FP), R5
    MOVV    a3+24(FP), R6
    MOVV    R0, R7
    MOVV    R0, R8
    MOVV    R0, R9
    MOVV    trap+0(FP), R2  // syscall entry
    SYSCALL
    MOVV    R2, r1+32(FP)
    MOVV    R3, r2+40(FP)
    RET