summaryrefslogtreecommitdiff
path: root/src/signal/m68k/sigsetjmp.s
blob: 09bfa64680e17e6294b51498e5ae777a8ab22067 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
.global sigsetjmp
.global __sigsetjmp
.type sigsetjmp,@function
.type __sigsetjmp,@function
sigsetjmp:
__sigsetjmp:
	move.l 8(%sp),%d0
	beq 1f

	movea.l 4(%sp),%a1
	move.l (%sp)+,156(%a1)
	move.l %a2,156+4+8(%a1)
	movea.l %a1,%a2

.hidden ___setjmp
	lea ___setjmp-.-8,%a1
	jsr (%pc,%a1)

	move.l 156(%a2),-(%sp)
	move.l %a2,4(%sp)
	move.l %d0,8(%sp)
	movea.l 156+4+8(%a2),%a2

.hidden __sigsetjmp_tail
	lea __sigsetjmp_tail-.-8,%a1
	jmp (%pc,%a1)

1:	lea ___setjmp-.-8,%a1
	jmp (%pc,%a1)