X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fsignal%2Fx86_64%2Fsigsetjmp.s;h=9a7695f96dc951d6c531f0b580bb71c21fa79ce8;hb=1da534ada8a66424e0d23e94ab6750b689be6d64;hp=ac02adb2ce5eb35b8113df5f2bec54157de2c140;hpb=60685ecad1c2398b4ab95fa7bf88c8336d914a6c;p=musl diff --git a/src/signal/x86_64/sigsetjmp.s b/src/signal/x86_64/sigsetjmp.s index ac02adb2..9a7695f9 100644 --- a/src/signal/x86_64/sigsetjmp.s +++ b/src/signal/x86_64/sigsetjmp.s @@ -1,13 +1,24 @@ -/* Copyright 2011 Nicholas J. Kain, licensed GNU LGPL 2.1 or later */ .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