1*cf88c389Smatt/* $NetBSD: compat_sigsetjmp.S,v 1.2 2011/01/15 07:31:13 matt Exp $ */ 2b09fbb02Smatt 3*cf88c389Smatt#include "SYS.h" 4*cf88c389Smatt#include "assym.h" 5b09fbb02Smatt 6b09fbb02Smatt#if defined(LIBC_SCCS) 7*cf88c389Smatt__RCSID("$NetBSD: compat_sigsetjmp.S,v 1.2 2011/01/15 07:31:13 matt Exp $") 8b09fbb02Smatt#endif 9b09fbb02Smatt 10b09fbb02SmattENTRY(sigsetjmp) 11b09fbb02Smatt mr %r6,%r3 12b09fbb02Smatt or. %r7,%r4,%r4 13b09fbb02Smatt beq 1f 14*cf88c389Smatt li %r3,SIG_BLOCK 15b09fbb02Smatt li %r4,0 16*cf88c389Smatt _DOSYSCALL(compat_13_sigprocmask13) # assume no error XXX 17b09fbb02Smatt1: 18b09fbb02Smatt mflr %r11 19b09fbb02Smatt mfcr %r12 20b09fbb02Smatt mr %r10,%r1 21b09fbb02Smatt mr %r9,%r2 22b09fbb02Smatt mr %r8,%r3 23b09fbb02Smatt stmw %r7,0(%r6) 24b09fbb02Smatt li %r3,0 25b09fbb02Smatt blr 26*cf88c389SmattEND(sigsetjmp) 27b09fbb02Smatt 28b09fbb02SmattENTRY(siglongjmp) 29b09fbb02Smatt lmw %r7,0(%r3) 30b09fbb02Smatt mr %r6,%r4 31b09fbb02Smatt mtlr %r11 32b09fbb02Smatt mtcr %r12 33b09fbb02Smatt mr %r2,%r9 34b09fbb02Smatt mr %r1,%r10 35b09fbb02Smatt or. %r7,%r7,%r7 36b09fbb02Smatt beq 1f 37b09fbb02Smatt mr %r4,%r8 38*cf88c389Smatt li %r3,SIG_SETMASK 39*cf88c389Smatt _DOSYSCALL(compat_13_sigprocmask13) # assume no error XXX 40b09fbb02Smatt1: 41b09fbb02Smatt or. %r3,%r6,%r6 42b09fbb02Smatt bnelr 43b09fbb02Smatt li %r3,1 44b09fbb02Smatt blr 45*cf88c389SmattEND(siglongjmp) 46