summaryrefslogtreecommitdiff
path: root/src/signal/x32/sigsetjmp.s
blob: d354d6802a9e32108c7bdbd2ea6e65cf6d6beaf5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
.global sigsetjmp
.global __sigsetjmp
.type sigsetjmp,@function
.type __sigsetjmp,@function
sigsetjmp:
__sigsetjmp:
	test %esi,%esi
	jz 1f

	popq 64(%rdi)
	mov %rbx,72+8(%rdi)
	mov %rdi,%rbx

	call setjmp

	pushq 64(%rbx)
	mov %rbx,%rdi
	mov %eax,%esi
	mov 72+8(%rbx),%rbx

.hidden __sigsetjmp_tail
	jmp __sigsetjmp_tail

1:	jmp setjmp