diff options
Diffstat (limited to 'src/signal/i386/sigsetjmp.s')
-rw-r--r-- | src/signal/i386/sigsetjmp.s | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/signal/i386/sigsetjmp.s b/src/signal/i386/sigsetjmp.s index 91c8c048..1d24b6f7 100644 --- a/src/signal/i386/sigsetjmp.s +++ b/src/signal/i386/sigsetjmp.s @@ -4,14 +4,22 @@ .type __sigsetjmp,@function sigsetjmp: __sigsetjmp: - mov 4(%esp),%eax mov 8(%esp),%ecx - mov %ecx,24(%eax) jecxz 1f - add $28,%eax - push %eax - push $0 - push $2 - call sigprocmask - add $12,%esp + + mov 4(%esp),%eax + popl 24(%eax) + mov %ebx,28+8(%eax) + mov %eax,%ebx + + call setjmp + + pushl 24(%ebx) + mov %ebx,4(%esp) + mov %eax,8(%esp) + mov 28+8(%ebx),%ebx + +.hidden __sigsetjmp_tail + jmp __sigsetjmp_tail + 1: jmp setjmp |