summaryrefslogtreecommitdiff
path: root/src/signal/x32/sigsetjmp.s
blob: 1f02b0e502822cb3a10e3b0affc48e639bee1670 (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
.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@PLT

	pushq 64(%rbx)
	movl $0, 4(%rsp)
	mov %rbx,%rdi
	mov %eax,%esi
	mov 72+8(%rbx),%rbx

.hidden __sigsetjmp_tail
	jmp __sigsetjmp_tail

1:	jmp setjmp@PLT