diff options
Diffstat (limited to 'sysdeps/i386/fpu/e_atanh.S')
-rw-r--r-- | sysdeps/i386/fpu/e_atanh.S | 30 |
1 files changed, 6 insertions, 24 deletions
diff --git a/sysdeps/i386/fpu/e_atanh.S b/sysdeps/i386/fpu/e_atanh.S index 90d19bc9d6..2242040499 100644 --- a/sysdeps/i386/fpu/e_atanh.S +++ b/sysdeps/i386/fpu/e_atanh.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of arctanh function. - Copyright (C) 1996-2015 Free Software Foundation, Inc. + Copyright (C) 1996-2016 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -18,6 +18,7 @@ <http://www.gnu.org/licenses/>. */ #include <machine/asm.h> +#include <i386-math-asm.h> .section .rodata @@ -35,12 +36,7 @@ limit: .double 0.29 ln2_2: .tfloat 0.3465735902799726547086160 ASM_SIZE_DIRECTIVE(ln2_2) - .section .rodata.cst8,"aM",@progbits,8 - - .p2align 3 - .type dbl_min,@object -dbl_min: .byte 0, 0, 0, 0, 0, 0, 0x10, 0 - ASM_SIZE_DIRECTIVE(dbl_min) +DEFINE_DBL_MIN #ifdef PIC #define MO(op) op##@GOTOFF(%edx) @@ -59,11 +55,7 @@ ENTRY(__ieee754_atanh) 7: #ifdef PIC - call 1f - cfi_adjust_cfa_offset (4) -1: popl %edx - cfi_adjust_cfa_offset (-4) - addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx + LOAD_PIC_REG (dx) #endif andl $0x80000000, %ecx // ECX == 0 iff X >= 0 @@ -88,18 +80,8 @@ ENTRY(__ieee754_atanh) sahf jae 4f fyl2xp1 // 0.5*ln2*ld(1+2*|x|+(2*|x|^2)/(1-|x|)) - fcoml MO(dbl_min) - fnstsw - sahf - jae 8f - subl $8, %esp - cfi_adjust_cfa_offset (8) - fld %st(0) - fmul %st(0) - fstpl (%esp) - addl $8, %esp - cfi_adjust_cfa_offset (-8) -8: jecxz 3f + DBL_CHECK_FORCE_UFLOW_NONNEG + jecxz 3f fchs // 0.5*ln2*ld(1+2*x+(2*x^2)/(1-x)) 3: ret |