summary refs log tree commit diff
path: root/sysdeps/i386/fpu/e_atanh.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1999-10-24 22:04:52 +0000
committerUlrich Drepper <drepper@redhat.com>1999-10-24 22:04:52 +0000
commit15daa63995211cbe576b28f88ad70f57abe69a37 (patch)
tree72d2fe95e84d28e7d583894391d45e3b89e2c5f9 /sysdeps/i386/fpu/e_atanh.S
parenteb3bf57345cb1451a5d2578dc3f7fbe5aff3b8b5 (diff)
downloadglibc-15daa63995211cbe576b28f88ad70f57abe69a37.tar.gz
glibc-15daa63995211cbe576b28f88ad70f57abe69a37.tar.xz
glibc-15daa63995211cbe576b28f88ad70f57abe69a37.zip
Update.
1999-10-24  Ulrich Drepper  <drepper@cygnus.com>

	* math/libm-test.inc: Disable some boundary case tests for inline
	function testing.

	* math/math.h: Pretty printing.

	* sysdeps/i386/fpu/e_atanh.S: Correct handling of NaN.
	* sysdeps/i386/fpu/e_atanhf.S: Likewise.
	* sysdeps/i386/fpu/e_atanhl.S: Likewise.
	* sysdeps/i386/fpu/e_log10.S: Likewise.
	* sysdeps/i386/fpu/e_log10f.S: Likewise.
	* sysdeps/i386/fpu/e_log10l.S: Likewise.
	* sysdeps/i386/fpu/s_log1p.S: Likewise.
	* sysdeps/i386/fpu/s_log1pf.S: Likewise.
	* sysdeps/i386/fpu/s_log1pl.S: Likewise.
	* sysdeps/i386/fpu/s_log2.S: Likewise.
	* sysdeps/i386/fpu/s_log2f.S: Likewise.
	* sysdeps/i386/fpu/s_log2l.S: Likewise.

	* sysdeps/i386/fpu/libm-test-ulps: New file.

	* sysdeps/i386/fpu/bits/mathinline.h (__expm1_code): Correct return
	value for x == 0.
	(pow): Correct case x == 0.
	(__sgn1l): Correct handling of -0.0.

1999-10-22  Andreas Jaeger  <aj@suse.de>

	* math/libm-test.inc (asinh_test): Add test for NaN as input parameter.
	(atan_test): Likewise.
	(atanh_test): Likewise.
	(atan2_test): Likewise.
	(carg_test): Likewise.
	(ceil_test): Likewise.
	(cos_test): Likewise.
	(cosh_test): Likewise.
	(cpow_test): Likewise.
	(erf_test): Likewise.
	(erfc_test): Likewise.
	(exp_test): Likewise.
	(exp10_test): Likewise.
	(exp2_test): Likewise.
	(expm1_test): Likewise.
	(fabs_test): Likewise.
	(floor_test): Likewise.
	(fmod_test): Likewise.
	(gamma_test): Likewise.
	(lgamma_test): Likewise.
	(log10_test): Likewise.
	(log1p_test): Likewise.
	(log2_test): Likewise.
	(logb_test): Likewise.
	(nearbyint_test): Likewise.
	(remainder_test): Likewise.
	(remquo_test): Likewise.
	(sin_test): Likewise.
	(sincos_test): Likewise.
	(sinh_test): Likewise.
	(sqrt_test): Likewise.
	(tan_test): Likewise.
	(tanh_test): Likewise.
	(tgamma_test): Likewise.
Diffstat (limited to 'sysdeps/i386/fpu/e_atanh.S')
-rw-r--r--sysdeps/i386/fpu/e_atanh.S15
1 files changed, 14 insertions, 1 deletions
diff --git a/sysdeps/i386/fpu/e_atanh.S b/sysdeps/i386/fpu/e_atanh.S
index 231e96f57f..3cd0362459 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 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -50,6 +50,12 @@ ln2_2:	.tfloat 0.3465735902799726547086160
 ENTRY(__ieee754_atanh)
 	movl	8(%esp), %ecx
 
+	movl	%ecx, %eax
+	andl	$0x7fffffff, %eax
+	cmpl	$0x7ff00000, %eax
+	jae	5f
+7:
+
 #ifdef PIC
 	call	1f
 1:	popl	%edx
@@ -98,4 +104,11 @@ ENTRY(__ieee754_atanh)
 	jecxz	3f
 	fchs			// 0.5*ln2*ld((1+x)/(1-x))
 3:	ret
+
+	// x == NaN or ħInf
+5:	ja	6f
+	cmpl	$0, 4(%esp)
+	je	7b
+6:	fldl	4(%esp)
+	ret
 END(__ieee754_atanh)