1*ea952cb8Sskrll/* $NetBSD: __sigsetjmp14.S,v 1.4 2023/10/11 09:12:21 skrll Exp $ */ 260ce5dccSross 338dcdc34Smatt#include "SYS.h" 460ce5dccSross 560ce5dccSross#if defined(LIBC_SCCS) 660ce5dccSross .text 7*ea952cb8Sskrll .asciz "$NetBSD: __sigsetjmp14.S,v 1.4 2023/10/11 09:12:21 skrll Exp $" 860ce5dccSross#endif 960ce5dccSross 1060ce5dccSrossENTRY(__sigsetjmp14) 1160ce5dccSross mr %r6,%r3 1260ce5dccSross or. %r7,%r4,%r4 1360ce5dccSross beq 1f 14*ea952cb8Sskrll li %r3,0 # how is ignored 15*ea952cb8Sskrll li %r4,0 # set = NULL 1660ce5dccSross addi %r5,%r6,100 # &sigmask 1738dcdc34Smatt _DOSYSCALL(__sigprocmask14) # assume no error XXX 1860ce5dccSross1: 1960ce5dccSross mflr %r11 2060ce5dccSross mfcr %r12 2160ce5dccSross mr %r10,%r1 2260ce5dccSross mr %r9,%r2 23093c642fSmrg i = 0 24093c642fSmrg .rept 32-7 25093c642fSmrg std 7+i,i*8(%r6) # save r7-r31 26093c642fSmrg i = i + 1 27093c642fSmrg .endr 2860ce5dccSross li %r3,0 2960ce5dccSross blr 3038dcdc34SmattEND(__sigsetjmp14) 3160ce5dccSross 3260ce5dccSrossENTRY(__siglongjmp14) 33093c642fSmrg i = 0 34093c642fSmrg .rept 32-7 35093c642fSmrg ld 7+i,i*8(%r3) # load r7-r31 36093c642fSmrg i = i + 1 37093c642fSmrg .endr 3860ce5dccSross mr %r6,%r4 3960ce5dccSross mtlr %r11 4060ce5dccSross mtcr %r12 4160ce5dccSross mr %r2,%r9 4260ce5dccSross mr %r1,%r10 4360ce5dccSross or. %r7,%r7,%r7 4460ce5dccSross beq 1f 4560ce5dccSross addi %r4,%r3,100 # &sigmask 4660ce5dccSross li %r3,3 # SIG_SETMASK 4760ce5dccSross li %r5,0 4838dcdc34Smatt _DOSYSCALL(__sigprocmask14) # assume no error XXX 4960ce5dccSross1: 5060ce5dccSross or. %r3,%r6,%r6 5160ce5dccSross bnelr 5260ce5dccSross li %r3,1 5360ce5dccSross blr 5438dcdc34SmattEND(__siglongjmp14) 55