Home | History | Annotate | Line # | Download | only in gen
      1 /*	$NetBSD: __sigsetjmp14.S,v 1.4 2023/10/11 09:12:21 skrll Exp $	*/
      2 
      3 #include "SYS.h"
      4 
      5 #if defined(LIBC_SCCS)
      6 	.text
      7 	.asciz "$NetBSD: __sigsetjmp14.S,v 1.4 2023/10/11 09:12:21 skrll Exp $"
      8 #endif
      9 
     10 ENTRY(__sigsetjmp14)
     11 	mr	%r6,%r3
     12 	or.	%r7,%r4,%r4
     13 	beq	1f
     14 	li	%r3,0			# how is ignored
     15 	li	%r4,0			# set = NULL
     16 	addi	%r5,%r6,100		# &sigmask
     17 	_DOSYSCALL(__sigprocmask14)	# assume no error	XXX
     18 1:
     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
     30 END(__sigsetjmp14)
     31 
     32 ENTRY(__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
     49 1:
     50 	or.	%r3,%r6,%r6
     51 	bnelr
     52 	li	%r3,1
     53 	blr
     54 END(__siglongjmp14)
     55