...
Text file
src/syscall/asm_linux_riscv64.s
Documentation: syscall
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#include "textflag.h"
6
7//
8// System calls for riscv64, Linux
9//
10
11// func rawVforkSyscall(trap, a1, a2, a3 uintptr) (r1, err uintptr)
12TEXT ·rawVforkSyscall(SB),NOSPLIT|NOFRAME,$0-48
13 MOV a1+8(FP), A0
14 MOV a2+16(FP), A1
15 MOV a3+24(FP), A2
16 MOV ZERO, A3
17 MOV ZERO, A4
18 MOV ZERO, A5
19 MOV trap+0(FP), A7 // syscall entry
20 ECALL
21 MOV $-4096, T0
22 BLTU T0, A0, err
23 MOV A0, r1+32(FP) // r1
24 MOV ZERO, err+40(FP) // errno
25 RET
26err:
27 MOV $-1, T0
28 MOV T0, r1+32(FP) // r1
29 SUB A0, ZERO, A0
30 MOV A0, err+40(FP) // errno
31 RET
32
33TEXT ·rawSyscallNoError(SB),NOSPLIT,$0-48
34 MOV a1+8(FP), A0
35 MOV a2+16(FP), A1
36 MOV a3+24(FP), A2
37 MOV trap+0(FP), A7 // syscall entry
38 ECALL
39 MOV A0, r1+32(FP)
40 MOV A1, r2+40(FP)
41 RET
View as plain text