__setjmp14.S revision 1.1
11.1Stsubai/* $NetBSD: __setjmp14.S,v 1.1 1998/10/03 12:30:38 tsubai Exp $ */ 21.1Stsubai 31.1Stsubai#include <sys/syscall.h> 41.1Stsubai 51.1Stsubai#include <machine/asm.h> 61.1Stsubai 71.1Stsubai#if defined(LIBC_SCCS) 81.1Stsubai .text 91.1Stsubai .asciz "$NetBSD: __setjmp14.S,v 1.1 1998/10/03 12:30:38 tsubai Exp $" 101.1Stsubai#endif 111.1Stsubai 121.1Stsubai/* 131.1Stsubai * C library -- _setjmp, _longjmp 141.1Stsubai * 151.1Stsubai * longjmp(a,v) 161.1Stsubai * will generate a "return(v?v:1)" from the last call to 171.1Stsubai * setjmp(a) 181.1Stsubai * by restoring registers from the stack. 191.1Stsubai * The previous signal state is restored. 201.1Stsubai */ 211.1Stsubai 221.1StsubaiENTRY(__setjmp14) 231.1Stsubai mr 6,3 241.1Stsubai li 3,1 # SIG_BLOCK 251.1Stsubai li 4,0 261.1Stsubai addi 5,6,100 # &sigmask 271.1Stsubai li 0,SYS___sigprocmask14 281.1Stsubai sc # assume no error XXX 291.1Stsubai mflr 11 301.1Stsubai mfcr 12 311.1Stsubai mr 10,1 321.1Stsubai mr 9,2 331.1Stsubai stmw 8,4(6) # save r8-r31 341.1Stsubai li 3,0 351.1Stsubai blr 361.1Stsubai 371.1StsubaiENTRY(__longjmp14) 381.1Stsubai lmw 8,4(3) # load r8-r31 391.1Stsubai mr 6,4 401.1Stsubai mtlr 11 411.1Stsubai mtcr 12 421.1Stsubai mr 2,9 431.1Stsubai mr 1,10 441.1Stsubai addi 4,3,100 # &sigmask 451.1Stsubai li 3,3 # SIG_SETMASK 461.1Stsubai li 5,0 471.1Stsubai li 0,SYS___sigprocmask14 481.1Stsubai sc # assume no error XXX 491.1Stsubai or. 3,6,6 501.1Stsubai bnelr 511.1Stsubai li 3,1 521.1Stsubai blr 53