xref: /minix3/lib/libc/arch/powerpc64/gen/__sigsetjmp14.S (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
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