1*ea952cb8Sskrll/* $NetBSD: __sigsetjmp14.S,v 1.6 2023/10/11 09:12:21 skrll Exp $ */ 2b09fbb02Smatt 3cf88c389Smatt#include "SYS.h" 4cf88c389Smatt#include "assym.h" 5b09fbb02Smatt 6b09fbb02Smatt#if defined(LIBC_SCCS) 7*ea952cb8Sskrll__RCSID("$NetBSD: __sigsetjmp14.S,v 1.6 2023/10/11 09:12:21 skrll Exp $") 8b09fbb02Smatt#endif 9b09fbb02Smatt 10b09fbb02SmattENTRY(__sigsetjmp14) 11b09fbb02Smatt mr %r6,%r3 12b09fbb02Smatt or. %r7,%r4,%r4 13b09fbb02Smatt beq 1f 14*ea952cb8Sskrll li %r3,0 # how is ignored 15*ea952cb8Sskrll li %r4,0 # set = NULL 16cf88c389Smatt addi %r5,%r6,4*(1+24) # &sigmask 17cf88c389Smatt _DOSYSCALL(__sigprocmask14) # assume no error XXX 18b09fbb02Smatt1: 19b09fbb02Smatt mflr %r11 20b09fbb02Smatt mfcr %r12 21b09fbb02Smatt mr %r10,%r1 22b09fbb02Smatt mr %r9,%r2 23b09fbb02Smatt stmw %r7,0(%r6) # save r7-r31 24b09fbb02Smatt li %r3,0 25b09fbb02Smatt blr 26cf88c389SmattEND(__sigsetjmp14) 27b09fbb02Smatt 28b09fbb02SmattENTRY(__siglongjmp14) 29b09fbb02Smatt lmw %r7,0(%r3) # load r7-r31 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 37cf88c389Smatt addi %r4,%r3,4*(1+24) # &sigmask 38cf88c389Smatt li %r3,SIG_SETMASK 39b09fbb02Smatt li %r5,0 40cf88c389Smatt _DOSYSCALL(__sigprocmask14) # assume no error XXX 41b09fbb02Smatt1: 42b09fbb02Smatt or. %r3,%r6,%r6 43b09fbb02Smatt bnelr 44b09fbb02Smatt li %r3,1 45b09fbb02Smatt blr 46cf88c389SmattEND(__siglongjmp14) 47