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