X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fsignal%2Fx86_64%2Fsigsetjmp.s;h=9a7695f96dc951d6c531f0b580bb71c21fa79ce8;hb=1da534ada8a66424e0d23e94ab6750b689be6d64;hp=dc38f032b91d51248f8b776cc8157b3ee1dadce3;hpb=ae0c1de530bc3b27069008b8b247171d08dbe80b;p=musl diff --git a/src/signal/x86_64/sigsetjmp.s b/src/signal/x86_64/sigsetjmp.s index dc38f032..9a7695f9 100644 --- a/src/signal/x86_64/sigsetjmp.s +++ b/src/signal/x86_64/sigsetjmp.s @@ -1,14 +1,24 @@ -/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ .global sigsetjmp +.global __sigsetjmp .type sigsetjmp,@function +.type __sigsetjmp,@function sigsetjmp: - andl %esi,%esi - movq %rsi,64(%rdi) +__sigsetjmp: + 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) + mov %rbx,%rdi + mov %eax,%esi + mov 72+8(%rbx),%rbx + +.hidden __sigsetjmp_tail + jmp __sigsetjmp_tail + +1: jmp setjmp@PLT