_setjmp.S revision 256281
1/*	$NetBSD: _setjmp.S,v 1.1 1997/03/29 20:55:53 thorpej Exp $	*/
2
3#include <machine/asm.h>
4
5#if (defined(LIBC_SCCS) || defined(LIBC_RCS)) && !defined(lint)
6	.text
7	.asciz "$FreeBSD: stable/10/lib/libstand/powerpc/_setjmp.S 68544 2000-11-10 06:10:28Z benno $"
8#endif
9
10/*
11 * C library -- _setjmp, _longjmp
12 *
13 *	_longjmp(a,v)
14 * will generate a "return(v?v:1)" from the last call to
15 *	_setjmp(a)
16 * by restoring registers from the stack.
17 * The previous signal state is NOT restored.
18 */
19
20ENTRY(_setjmp)
21	mflr	11
22	mfcr	12
23	mr	10,1
24	mr	9,2
25	stmw	9,8(3)
26	li	3,0
27	blr
28
29ENTRY(_longjmp)
30	lmw	9,8(3)
31	mtlr	11
32	mtcr	12
33	mr	2,9
34	mr	1,10
35	mr	3,4
36	blr
37