X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fsignal%2Fx86_64%2Fsigsetjmp.s;h=9a7695f96dc951d6c531f0b580bb71c21fa79ce8;hb=1da534ada8a66424e0d23e94ab6750b689be6d64;hp=94d7148ddfee602424f590dd7bd7094430f66a85;hpb=8cfbc8be82898c98fc0a93e2cc7912d9e649f32e;p=musl diff --git a/src/signal/x86_64/sigsetjmp.s b/src/signal/x86_64/sigsetjmp.s index 94d7148d..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),%rsi - xorl %edx,%edx - 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