1*0a6a1f1dSLionel Sambuc/* $NetBSD: __sigsetjmp14.S,v 1.3 2014/08/23 02:24:22 matt Exp $ */ 22fe8fb19SBen Gras 3*0a6a1f1dSLionel Sambuc#include "SYS.h" 42fe8fb19SBen Gras 52fe8fb19SBen Gras#if defined(LIBC_SCCS) 62fe8fb19SBen Gras .text 7*0a6a1f1dSLionel Sambuc .asciz "$NetBSD: __sigsetjmp14.S,v 1.3 2014/08/23 02:24:22 matt Exp $" 82fe8fb19SBen Gras#endif 92fe8fb19SBen Gras 102fe8fb19SBen GrasENTRY(__sigsetjmp14) 112fe8fb19SBen Gras mr %r6,%r3 122fe8fb19SBen Gras or. %r7,%r4,%r4 132fe8fb19SBen Gras beq 1f 142fe8fb19SBen Gras li %r3,1 # SIG_BLOCK 152fe8fb19SBen Gras li %r4,0 162fe8fb19SBen Gras addi %r5,%r6,100 # &sigmask 17*0a6a1f1dSLionel Sambuc _DOSYSCALL(__sigprocmask14) # assume no error XXX 182fe8fb19SBen Gras1: 192fe8fb19SBen Gras mflr %r11 202fe8fb19SBen Gras mfcr %r12 212fe8fb19SBen Gras mr %r10,%r1 222fe8fb19SBen Gras mr %r9,%r2 232fe8fb19SBen Gras i = 0 242fe8fb19SBen Gras .rept 32-7 252fe8fb19SBen Gras std 7+i,i*8(%r6) # save r7-r31 262fe8fb19SBen Gras i = i + 1 272fe8fb19SBen Gras .endr 282fe8fb19SBen Gras li %r3,0 292fe8fb19SBen Gras blr 30*0a6a1f1dSLionel SambucEND(__sigsetjmp14) 312fe8fb19SBen Gras 322fe8fb19SBen GrasENTRY(__siglongjmp14) 332fe8fb19SBen Gras i = 0 342fe8fb19SBen Gras .rept 32-7 352fe8fb19SBen Gras ld 7+i,i*8(%r3) # load r7-r31 362fe8fb19SBen Gras i = i + 1 372fe8fb19SBen Gras .endr 382fe8fb19SBen Gras mr %r6,%r4 392fe8fb19SBen Gras mtlr %r11 402fe8fb19SBen Gras mtcr %r12 412fe8fb19SBen Gras mr %r2,%r9 422fe8fb19SBen Gras mr %r1,%r10 432fe8fb19SBen Gras or. %r7,%r7,%r7 442fe8fb19SBen Gras beq 1f 452fe8fb19SBen Gras addi %r4,%r3,100 # &sigmask 462fe8fb19SBen Gras li %r3,3 # SIG_SETMASK 472fe8fb19SBen Gras li %r5,0 48*0a6a1f1dSLionel Sambuc _DOSYSCALL(__sigprocmask14) # assume no error XXX 492fe8fb19SBen Gras1: 502fe8fb19SBen Gras or. %r3,%r6,%r6 512fe8fb19SBen Gras bnelr 522fe8fb19SBen Gras li %r3,1 532fe8fb19SBen Gras blr 54*0a6a1f1dSLionel SambucEND(__siglongjmp14) 55