diff options
author | Jakub Jelinek <jakub@redhat.com> | 2009-04-27 14:33:59 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2009-04-27 14:33:59 +0000 |
commit | 83489168c2447e3fe351dbb302b1026dc9fc512c (patch) | |
tree | 8c0029fbf2d97cd352310c6a793bb15745a24ec4 /sysdeps/i386/fpu/s_sinl.S | |
parent | 51211e710a024163f91ffd5ed29908faa3cd41e7 (diff) |
Updated to fedora-glibc-20090427T1419cvs/fedora-glibc-2_9_90-22
Diffstat (limited to 'sysdeps/i386/fpu/s_sinl.S')
-rw-r--r-- | sysdeps/i386/fpu/s_sinl.S | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/sysdeps/i386/fpu/s_sinl.S b/sysdeps/i386/fpu/s_sinl.S index 3e215de5e1..68c4f99668 100644 --- a/sysdeps/i386/fpu/s_sinl.S +++ b/sysdeps/i386/fpu/s_sinl.S @@ -3,15 +3,22 @@ * Public domain. * * Adapted for `long double' by Ulrich Drepper <drepper@cygnus.com>. + * Fixed errno handling by Ulrich Drepper <drepper@redhat.com>. */ +#define __need_Emath +#include <bits/errno.h> #include <machine/asm.h> -RCSID("$NetBSD: $") - ENTRY(__sinl) fldt 4(%esp) - fsin + fxam + fstsw %ax + movb $0x45, %dh + andb %ah, %dh + cmpb $0x05, %dh + je 3f +4: fsin fnstsw %ax testl $0x400,%eax jnz 1f @@ -27,5 +34,21 @@ ENTRY(__sinl) fstp %st(1) fsin ret +3: +#ifdef PIC + pushl %ebx + cfi_adjust_cfa_offset (4) + cfi_rel_offset (ebx, 0) + LOAD_PIC_REG (bx) + call __errno_location@PLT + movl $EDOM, (%eax) + popl %ebx + cfi_adjust_cfa_offset (-4) + cfi_restore (ebx) +#else + call __errno_location@PLT + movl $EDOM, (%eax) +#endif + jmp 4b END (__sinl) weak_alias (__sinl, sinl) |