1// Copyright 2019 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 riscv64,!gccgo 6 7#include "textflag.h" 8 9// 10// System calls for linux/riscv64. 11// 12// Where available, just jump to package syscall's implementation of 13// these functions. 14 15TEXT ·Syscall(SB),NOSPLIT,$0-56 16 JMP syscall·Syscall(SB) 17 18TEXT ·Syscall6(SB),NOSPLIT,$0-80 19 JMP syscall·Syscall6(SB) 20 21TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 22 CALL runtime·entersyscall(SB) 23 MOV a1+8(FP), A0 24 MOV a2+16(FP), A1 25 MOV a3+24(FP), A2 26 MOV trap+0(FP), A7 // syscall entry 27 ECALL 28 MOV A0, r1+32(FP) // r1 29 MOV A1, r2+40(FP) // r2 30 CALL runtime·exitsyscall(SB) 31 RET 32 33TEXT ·RawSyscall(SB),NOSPLIT,$0-56 34 JMP syscall·RawSyscall(SB) 35 36TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 37 JMP syscall·RawSyscall6(SB) 38 39TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 40 MOV a1+8(FP), A0 41 MOV a2+16(FP), A1 42 MOV a3+24(FP), A2 43 MOV trap+0(FP), A7 // syscall entry 44 ECALL 45 MOV A0, r1+32(FP) 46 MOV A1, r2+40(FP) 47 RET 48