redesign sigsetjmp so that signal mask is restored after longjmp
[musl] / src / signal / i386 / sigsetjmp.s
1 .global sigsetjmp
2 .global __sigsetjmp
3 .type sigsetjmp,@function
4 .type __sigsetjmp,@function
5 sigsetjmp:
6 __sigsetjmp:
7         mov 8(%esp),%ecx
8         jecxz 1f
9
10         mov 4(%esp),%eax
11         popl 24(%eax)
12         mov %ebx,28+8(%eax)
13         mov %eax,%ebx
14
15         call setjmp
16
17         pushl 24(%ebx)
18         mov %ebx,4(%esp)
19         mov %eax,8(%esp)
20         mov 28+8(%ebx),%ebx
21
22 .hidden __sigsetjmp_tail
23         jmp __sigsetjmp_tail
24
25 1:      jmp setjmp