1/* $NetBSD: __sigsetjmp14.S,v 1.3 2014/08/23 02:24:22 matt Exp $ */ 2 3#include "SYS.h" 4 5#if defined(LIBC_SCCS) 6 .text 7 .asciz "$NetBSD: __sigsetjmp14.S,v 1.3 2014/08/23 02:24:22 matt Exp $" 8#endif 9 10ENTRY(__sigsetjmp14) 11 mr %r6,%r3 12 or. %r7,%r4,%r4 13 beq 1f 14 li %r3,1 # SIG_BLOCK 15 li %r4,0 16 addi %r5,%r6,100 # &sigmask 17 _DOSYSCALL(__sigprocmask14) # assume no error XXX 181: 19 mflr %r11 20 mfcr %r12 21 mr %r10,%r1 22 mr %r9,%r2 23 i = 0 24 .rept 32-7 25 std 7+i,i*8(%r6) # save r7-r31 26 i = i + 1 27 .endr 28 li %r3,0 29 blr 30END(__sigsetjmp14) 31 32ENTRY(__siglongjmp14) 33 i = 0 34 .rept 32-7 35 ld 7+i,i*8(%r3) # load r7-r31 36 i = i + 1 37 .endr 38 mr %r6,%r4 39 mtlr %r11 40 mtcr %r12 41 mr %r2,%r9 42 mr %r1,%r10 43 or. %r7,%r7,%r7 44 beq 1f 45 addi %r4,%r3,100 # &sigmask 46 li %r3,3 # SIG_SETMASK 47 li %r5,0 48 _DOSYSCALL(__sigprocmask14) # assume no error XXX 491: 50 or. %r3,%r6,%r6 51 bnelr 52 li %r3,1 53 blr 54END(__siglongjmp14) 55