summaryrefslogtreecommitdiff
path: root/src/signal/or1k/sigsetjmp.s
blob: 70a292236fd098d23e223c5284ec6d937dee59e3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
.global sigsetjmp
.global __sigsetjmp
.type sigsetjmp,@function
.type __sigsetjmp,@function
sigsetjmp:
__sigsetjmp:
	l.sfeq	r4, r0
	l.bf	plt(setjmp)
	 l.sw	52(r3), r4	/* buf->__fl = save */

	l.addi	r1, r1, -8
	l.sw	0(r1), r9
	l.sw	4(r1), r3
	l.addi	r5, r3, 56	/* buf->__ss */
	l.add	r4, r0, r0
	l.jal	plt(sigprocmask)
	 l.ori	r3, r0, 2	/* SIG_SETMASK */

	l.lwz	r9, 0(r1)
	l.lwz	r3, 4(r1)
	l.j	plt(setjmp)
	 l.addi	r1, r1, 8