about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2012-11-28 21:46:16 +0000
committerJoseph Myers <joseph@codesourcery.com>2012-11-28 21:46:16 +0000
commit9984dd012623633f6e48d6d189a8df7d6c308535 (patch)
treefcda589028e969256495648655ec70487d243c0c
parent14bc93a967e62abf8cf2704725b6f76619399f83 (diff)
downloadglibc-9984dd012623633f6e48d6d189a8df7d6c308535.tar.gz
glibc-9984dd012623633f6e48d6d189a8df7d6c308535.tar.xz
glibc-9984dd012623633f6e48d6d189a8df7d6c308535.zip
Use hex float 64-bit values in ldbl-96 asinl (bug 14803).
-rw-r--r--ChangeLog10
-rw-r--r--NEWS6
-rw-r--r--sysdeps/ieee754/ldbl-96/e_asinl.c9
3 files changed, 19 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index b74cde7e69..1cff12d4f2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2012-11-28  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #14803]
+	* sysdeps/ieee754/ldbl-96/e_asinl.c (pio2_hi): Use hex float value
+	of pi/2 rounded to nearest to 64 bits.
+	(pio2_lo): Use hex float value of pi/2 - pio2_hi rounded to
+	nearest to 64 bits.
+	(pio4_hi): Use hex float value of pi/4 rounded to nearest to 64
+	bits.
+
 2012-11-28  Jeff Law <law@redhat.com>
 	    Martin Osvald <mosvald@redhat.com>
 
diff --git a/NEWS b/NEWS
index 4a17295d41..7adaa272c5 100644
--- a/NEWS
+++ b/NEWS
@@ -20,9 +20,9 @@ Version 2.17
   14557, 14562, 14568, 14576, 14579, 14583, 14587, 14595, 14602, 14610,
   14621, 14638, 14645, 14648, 14652, 14660, 14661, 14669, 14672, 14683,
   14694, 14716, 14719, 14743, 14767, 14783, 14784, 14785, 14793, 14796,
-  14797, 14801, 14805, 14807, 14811, 14815, 14821, 14822, 14824, 14828,
-  14831, 14835, 14838, 14856, 14863, 14865, 14866, 14868, 14869, 14871,
-  14889.
+  14797, 14801, 14803, 14805, 14807, 14811, 14815, 14821, 14822, 14824,
+  14828, 14831, 14835, 14838, 14856, 14863, 14865, 14866, 14868, 14869,
+  14871, 14889.
 
 * CVE-2011-4609 svc_run() produces high cpu usage when accept fails with
   EMFILE has been fixed (Bugzilla #14889).
diff --git a/sysdeps/ieee754/ldbl-96/e_asinl.c b/sysdeps/ieee754/ldbl-96/e_asinl.c
index c33701f11e..c1ffa3e0d9 100644
--- a/sysdeps/ieee754/ldbl-96/e_asinl.c
+++ b/sysdeps/ieee754/ldbl-96/e_asinl.c
@@ -64,9 +64,12 @@
 static const long double
   one = 1.0L,
   huge = 1.0e+4932L,
- pio2_hi = 1.5707963267948966192021943710788178805159986950457096099853515625L,
-  pio2_lo = 2.9127320560933561582586004641843300502121E-20L,
-  pio4_hi = 7.8539816339744830960109718553940894025800E-1L,
+  pio2_hi = 0x1.921fb54442d1846ap+0L, /* pi/2 rounded to nearest to 64
+					 bits.  */
+  pio2_lo = -0x7.6733ae8fe47c65d8p-68L, /* pi/2 - pio2_hi rounded to
+					   nearest to 64 bits.  */
+  pio4_hi = 0xc.90fdaa22168c235p-4L, /* pi/4 rounded to nearest to 64
+					bits.  */
 
 	/* coefficient for R(x^2) */