about summary refs log tree commit diff
path: root/sysdeps/i386/fpu/e_atanh.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386/fpu/e_atanh.S')
-rw-r--r--sysdeps/i386/fpu/e_atanh.S22
1 files changed, 4 insertions, 18 deletions
diff --git a/sysdeps/i386/fpu/e_atanh.S b/sysdeps/i386/fpu/e_atanh.S
index 90d19bc9d6..5772bbf802 100644
--- a/sysdeps/i386/fpu/e_atanh.S
+++ b/sysdeps/i386/fpu/e_atanh.S
@@ -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)
@@ -88,18 +84,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