xref: /plan9-contrib/sys/src/ape/lib/ap/riscv64/setjmp.s (revision ce95e1b3727b9cb1c223ffbed69aff21a8ced255)
1TEXT	setjmp(SB), 1, $-4
2	MOV 	R2, 0(R8)
3	MOV 	R1, XLEN(R8)
4	MOV 	$0, R8
5	RET
6
7TEXT	sigsetjmp(SB), 1, $-4
8	MOVW 	savemask+XLEN(FP), R10
9	MOV 	R10, 0(R8)
10	MOVW 	$_psigblocked(SB), R10
11	MOV 	R10, XLEN(R8)
12	MOV 	R2, (2*XLEN)(R8)
13	MOV 	R1, (3*XLEN)(R8)
14	MOV 	$0, R8
15	RET
16
17TEXT	longjmp(SB), 1, $-4
18	MOVW	r+XLEN(FP), R10
19	BNE	R10, ok		/* ansi: "longjmp(0) => longjmp(1)" */
20	MOV	$1, R10		/* bless their pointed heads */
21ok:	MOV	0(R8), R2
22	MOV	XLEN(R8), R1
23	MOV	R10, R8
24	RET
25