xref: /netbsd-src/lib/libc/arch/powerpc/gen/__sigsetjmp14.S (revision ea952cb848ce3fe813ba15ed123efa5019ce2f7f)
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