xref: /plan9/sys/src/libc/sparc/setjmp.s (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1TEXT	setjmp(SB), 1, $0
2
3	MOVW	R1, (R7)
4	MOVW	R15, 4(R7)
5	MOVW	$0, R7
6	RETURN
7
8TEXT	longjmp(SB), 1, $0
9
10	MOVW	R7, R8
11	MOVW	r+4(FP), R7
12	CMP	R7, R0
13	BNE	ok		/* ansi: "longjmp(0) => longjmp(1)" */
14	MOVW	$1, R7		/* bless their pointed heads */
15ok:	MOVW	(R8), R1
16	MOVW	4(R8), R15
17	RETURN
18
19/*
20 * trampoline functions because the kernel smashes r7
21 * in the uregs given to notejmp
22 */
23TEXT	__noterestore(SB), 1, $-4
24	MOVW	R8, R7
25	JMP	(R9)
26