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) 6 .text 7 .asciz "$NetBSD: _setjmp.S,v 1.1 1997/03/29 20:55:53 thorpej Exp $" 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 or. 3,4,4 36 bnelr 37 li 3,1 38 blr 39