X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fsignal%2Fx32%2Fsigsetjmp.s;h=1f02b0e502822cb3a10e3b0affc48e639bee1670;hb=a60b9e06861e56c0810bae0249b421e1758d281a;hp=17436f02cea41752d6b25bdd8e874902745fd261;hpb=b9b2db2f374bce907fa5015c9cf63205054f2356;p=musl diff --git a/src/signal/x32/sigsetjmp.s b/src/signal/x32/sigsetjmp.s index 17436f02..1f02b0e5 100644 --- a/src/signal/x32/sigsetjmp.s +++ b/src/signal/x32/sigsetjmp.s @@ -1,17 +1,25 @@ -/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ .global sigsetjmp .global __sigsetjmp .type sigsetjmp,@function .type __sigsetjmp,@function sigsetjmp: __sigsetjmp: - andl %esi,%esi - movq %rsi,64(%rdi) + test %esi,%esi jz 1f - pushq %rdi - leaq 72(%rdi),%rdx - xorl %esi,%esi - movl $2,%edi - call sigprocmask - popq %rdi -1: jmp setjmp + + 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