about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2006-03-07 13:28:12 +0000
committerJakub Jelinek <jakub@redhat.com>2006-03-07 13:28:12 +0000
commit4f2b8b027189b2ce09991b5a1c19843f6dcbbf94 (patch)
tree753f3eabf6c5cb70b7753a4fd5994bf7cc5ba6f5
parent9dc858f906abd8782c0168d70bb20bfc0a7e4706 (diff)
downloadglibc-4f2b8b027189b2ce09991b5a1c19843f6dcbbf94.tar.gz
glibc-4f2b8b027189b2ce09991b5a1c19843f6dcbbf94.tar.xz
glibc-4f2b8b027189b2ce09991b5a1c19843f6dcbbf94.zip
-rw-r--r--ChangeLog6
-rw-r--r--fedora/glibc.spec.in5
-rw-r--r--math/libm-test.inc48
-rw-r--r--sysdeps/powerpc/powerpc64/fpu/s_rintl.S113
4 files changed, 57 insertions, 115 deletions
diff --git a/ChangeLog b/ChangeLog
index 8e43a8cb85..8943e8ccd7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-03-07  Jakub Jelinek  <jakub@redhat.com>
+
+	* math/libm-test.inc [TEST_LDOUBLE] (ceil_test, floor_test, rint_test,
+	round_test, trunc_test): Only run some of the new tests if
+	LDBL_MANT_DIG > 100.
+
 2006-03-03  Steven Munroe  <sjmunroe@us.ibm.com>
 	    Alan Modra  <amodra@bigpond.net.au>
 
diff --git a/fedora/glibc.spec.in b/fedora/glibc.spec.in
index 5e958fea93..cc252b2c2d 100644
--- a/fedora/glibc.spec.in
+++ b/fedora/glibc.spec.in
@@ -1,4 +1,4 @@
-%define glibcrelease 2
+%define glibcrelease 3
 %define auxarches i586 i686 athlon sparcv9 alphaev6
 %define prelinkarches noarch
 %define xenarches i686 athlon
@@ -1344,6 +1344,9 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Tue Mar  7 2006 Jakub Jelinek <jakub@redhat.com> 2.4-3
+- really fix rintl on ppc64
+
 * Tue Mar  7 2006 Jakub Jelinek <jakub@redhat.com> 2.4-2
 - accurate unwind info for lowlevellock.h stubs on %%{ix86}
 - fix ppc/ppc64 ceill, floorl, rintl, roundl and truncl (BZ#2423)
diff --git a/math/libm-test.inc b/math/libm-test.inc
index e2a1d90bf6..b144796f2a 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -1648,13 +1648,15 @@ ceil_test (void)
   TEST_f_f (ceil, -4503599627370496.5L, -4503599627370496.0L);
   TEST_f_f (ceil, -4503599627370496.75L, -4503599627370496.0L);
   TEST_f_f (ceil, -4503599627370497.5L, -4503599627370497.0L);
-  
+
+# if LDBL_MANT_DIG > 100
   TEST_f_f (ceil, 4503599627370494.5000000000001L, 4503599627370495.0L);
   TEST_f_f (ceil, 4503599627370495.5000000000001L, 4503599627370496.0L);
   TEST_f_f (ceil, 4503599627370496.5000000000001L, 4503599627370497.0L);
   TEST_f_f (ceil, -4503599627370494.5000000000001L, -4503599627370494.0L);
   TEST_f_f (ceil, -4503599627370495.5000000000001L, -4503599627370495.0L);
   TEST_f_f (ceil, -4503599627370496.5000000000001L, -4503599627370496.0L);
+# endif
 
   TEST_f_f (ceil, 9007199254740991.5L, 9007199254740992.0L);
   TEST_f_f (ceil, 9007199254740992.25L, 9007199254740993.0L);
@@ -1668,6 +1670,7 @@ ceil_test (void)
   TEST_f_f (ceil, -9007199254740992.75L, -9007199254740992.0L);
   TEST_f_f (ceil, -9007199254740993.5L, -9007199254740993.0L);
 
+# if LDBL_MANT_DIG > 100
   TEST_f_f (ceil, 9007199254740991.0000000000001L, 9007199254740992.0L);
   TEST_f_f (ceil, 9007199254740992.0000000000001L, 9007199254740993.0L);
   TEST_f_f (ceil, 9007199254740993.0000000000001L, 9007199254740994.0L);
@@ -1681,6 +1684,7 @@ ceil_test (void)
   TEST_f_f (ceil, -9007199254740991.5000000000001L, -9007199254740991.0L);
   TEST_f_f (ceil, -9007199254740992.5000000000001L, -9007199254740992.0L);
   TEST_f_f (ceil, -9007199254740993.5000000000001L, -9007199254740993.0L);
+# endif
 
   TEST_f_f (ceil, 72057594037927935.5L, 72057594037927936.0L);
   TEST_f_f (ceil, 72057594037927936.25L, 72057594037927937.0L);
@@ -2667,18 +2671,22 @@ floor_test (void)
   TEST_f_f (floor, 4503599627370496.5L, 4503599627370496.0L);
   TEST_f_f (floor, 4503599627370496.75L, 4503599627370496.0L);
   TEST_f_f (floor, 4503599627370497.5L, 4503599627370497.0L);
+# if LDBL_MANT_DIG > 100
   TEST_f_f (floor, 4503599627370494.5000000000001L, 4503599627370494.0L);
   TEST_f_f (floor, 4503599627370495.5000000000001L, 4503599627370495.0L);
   TEST_f_f (floor, 4503599627370496.5000000000001L, 4503599627370496.0L);
+# endif
 
   TEST_f_f (floor, -4503599627370495.5L, -4503599627370496.0L);
   TEST_f_f (floor, -4503599627370496.25L, -4503599627370497.0L);
   TEST_f_f (floor, -4503599627370496.5L, -4503599627370497.0L);
   TEST_f_f (floor, -4503599627370496.75L, -4503599627370497.0L);
   TEST_f_f (floor, -4503599627370497.5L, -4503599627370498.0L);
+# if LDBL_MANT_DIG > 100
   TEST_f_f (floor, -4503599627370494.5000000000001L, -4503599627370495.0L);
   TEST_f_f (floor, -4503599627370495.5000000000001L, -4503599627370496.0L);
   TEST_f_f (floor, -4503599627370496.5000000000001L, -4503599627370497.0L);
+# endif
 
   TEST_f_f (floor, 9007199254740991.5L, 9007199254740991.0L);
   TEST_f_f (floor, 9007199254740992.25L, 9007199254740992.0L);
@@ -2686,12 +2694,14 @@ floor_test (void)
   TEST_f_f (floor, 9007199254740992.75L, 9007199254740992.0L);
   TEST_f_f (floor, 9007199254740993.5L, 9007199254740993.0L);
 
+# if LDBL_MANT_DIG > 100
   TEST_f_f (floor, 9007199254740991.0000000000001L, 9007199254740991.0L);
   TEST_f_f (floor, 9007199254740992.0000000000001L, 9007199254740992.0L);
   TEST_f_f (floor, 9007199254740993.0000000000001L, 9007199254740993.0L);
   TEST_f_f (floor, 9007199254740991.5000000000001L, 9007199254740991.0L);
   TEST_f_f (floor, 9007199254740992.5000000000001L, 9007199254740992.0L);
   TEST_f_f (floor, 9007199254740993.5000000000001L, 9007199254740993.0L);
+# endif
 
   TEST_f_f (floor, -9007199254740991.5L, -9007199254740992.0L);
   TEST_f_f (floor, -9007199254740992.25L, -9007199254740993.0L);
@@ -2699,12 +2709,14 @@ floor_test (void)
   TEST_f_f (floor, -9007199254740992.75L, -9007199254740993.0L);
   TEST_f_f (floor, -9007199254740993.5L, -9007199254740994.0L);
 
+# if LDBL_MANT_DIG > 100
   TEST_f_f (floor, -9007199254740991.0000000000001L, -9007199254740992.0L);
   TEST_f_f (floor, -9007199254740992.0000000000001L, -9007199254740993.0L);
   TEST_f_f (floor, -9007199254740993.0000000000001L, -9007199254740994.0L);
   TEST_f_f (floor, -9007199254740991.5000000000001L, -9007199254740992.0L);
   TEST_f_f (floor, -9007199254740992.5000000000001L, -9007199254740993.0L);
   TEST_f_f (floor, -9007199254740993.5000000000001L, -9007199254740994.0L);
+# endif
 
   TEST_f_f (floor, 72057594037927935.5L, 72057594037927935.0L);
   TEST_f_f (floor, 72057594037927936.25L, 72057594037927936.0L);
@@ -4033,9 +4045,11 @@ rint_test (void)
   TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L);
   TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L);
   
+# if LDBL_MANT_DIG > 100
   TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L);
   TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L);
   TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L);
+# endif
 
   TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L);
   TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L);
@@ -4043,6 +4057,7 @@ rint_test (void)
   TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L);
   TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L);
   
+# if LDBL_MANT_DIG > 100
   TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L);
   TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L);
   TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L);
@@ -4060,6 +4075,7 @@ rint_test (void)
   TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L);
   TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L);
   TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L);
+# endif
 
   TEST_f_f (rint, 9007199254740991.5L, 9007199254740992.0L);
   TEST_f_f (rint, 9007199254740992.25L, 9007199254740992.0L);
@@ -4128,14 +4144,17 @@ rint_test_tonearest (void)
     TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L);
     TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L);
     TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L);
+# if LDBL_MANT_DIG > 100
     TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L);
     TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L);
     TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L);
+# endif
     TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L);
     TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L);
     TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L);
     TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L);
     TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L);
+# if LDBL_MANT_DIG > 100
     TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L);
     TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L);
     TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L);
@@ -4153,6 +4172,7 @@ rint_test_tonearest (void)
     TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L);
     TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L);
     TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L);
+# endif
 #endif
   }
 
@@ -4194,14 +4214,17 @@ rint_test_towardzero (void)
     TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L);
     TEST_f_f (rint, 4503599627370496.75L, 4503599627370496.0L);
     TEST_f_f (rint, 4503599627370497.5L, 4503599627370497.0L);
+# if LDBL_MANT_DIG > 100
     TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370494.0L);
     TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370495.0L);
     TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370496.0L);
+# endif
     TEST_f_f (rint, -4503599627370495.5L, -4503599627370495.0L);
     TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L);
     TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L);
     TEST_f_f (rint, -4503599627370496.75L, -4503599627370496.0L);
     TEST_f_f (rint, -4503599627370497.5L, -4503599627370497.0L);
+# if LDBL_MANT_DIG > 100
     TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370494.0L);
     TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370495.0L);
     TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370496.0L);
@@ -4219,6 +4242,7 @@ rint_test_towardzero (void)
     TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740991.0L);
     TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740992.0L);
     TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740993.0L);
+# endif
 #endif
   }
 
@@ -4260,14 +4284,17 @@ rint_test_downward (void)
     TEST_f_f (rint, 4503599627370496.5L, 4503599627370496.0L);
     TEST_f_f (rint, 4503599627370496.75L, 4503599627370496.0L);
     TEST_f_f (rint, 4503599627370497.5L, 4503599627370497.0L);
+# if LDBL_MANT_DIG > 100
     TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370494.0L);
     TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370495.0L);
     TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370496.0L);
+# endif
     TEST_f_f (rint, -4503599627370495.5L, -4503599627370496.0L);
     TEST_f_f (rint, -4503599627370496.25L, -4503599627370497.0L);
     TEST_f_f (rint, -4503599627370496.5L, -4503599627370497.0L);
     TEST_f_f (rint, -4503599627370496.75L, -4503599627370497.0L);
     TEST_f_f (rint, -4503599627370497.5L, -4503599627370498.0L);
+# if LDBL_MANT_DIG > 100
     TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370495.0L);
     TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370496.0L);
     TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370497.0L);
@@ -4285,6 +4312,7 @@ rint_test_downward (void)
     TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740992.0L);
     TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740993.0L);
     TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740994.0L);
+# endif
 #endif
   }
 
@@ -4326,14 +4354,17 @@ rint_test_upward (void)
     TEST_f_f (rint, 4503599627370496.5L, 4503599627370497.0L);
     TEST_f_f (rint, 4503599627370496.75L, 4503599627370497.0L);
     TEST_f_f (rint, 4503599627370497.5L, 4503599627370498.0L);
+# if LDBL_MANT_DIG > 100
     TEST_f_f (rint, 4503599627370494.5000000000001L, 4503599627370495.0L);
     TEST_f_f (rint, 4503599627370495.5000000000001L, 4503599627370496.0L);
     TEST_f_f (rint, 4503599627370496.5000000000001L, 4503599627370497.0L);
+# endif
     TEST_f_f (rint, -4503599627370495.5L, -4503599627370495.0L);
     TEST_f_f (rint, -4503599627370496.25L, -4503599627370496.0L);
     TEST_f_f (rint, -4503599627370496.5L, -4503599627370496.0L);
     TEST_f_f (rint, -4503599627370496.75L, -4503599627370496.0L);
     TEST_f_f (rint, -4503599627370497.5L, -4503599627370497.0L);
+# if LDBL_MANT_DIG > 100
     TEST_f_f (rint, -4503599627370494.5000000000001L, -4503599627370494.0L);
     TEST_f_f (rint, -4503599627370495.5000000000001L, -4503599627370495.0L);
     TEST_f_f (rint, -4503599627370496.5000000000001L, -4503599627370496.0L);
@@ -4351,6 +4382,7 @@ rint_test_upward (void)
     TEST_f_f (rint, -9007199254740991.5000000000001L, -9007199254740991.0L);
     TEST_f_f (rint, -9007199254740992.5000000000001L, -9007199254740992.0L);
     TEST_f_f (rint, -9007199254740993.5000000000001L, -9007199254740993.0L);
+# endif
 #endif
   }
 
@@ -4390,18 +4422,22 @@ round_test (void)
   TEST_f_f (round, 4503599627370496.5L, 4503599627370497.0L); 
   TEST_f_f (round, 4503599627370496.75L, 4503599627370497.0L);
   TEST_f_f (round, 4503599627370497.5L, 4503599627370498.0L);
+# if LDBL_MANT_DIG > 100
   TEST_f_f (round, 4503599627370494.5000000000001L, 4503599627370495.0L);
   TEST_f_f (round, 4503599627370495.5000000000001L, 4503599627370496.0L);
   TEST_f_f (round, 4503599627370496.5000000000001L, 4503599627370497.0L);
+# endif
 
   TEST_f_f (round, -4503599627370495.5L, -4503599627370496.0L); 
   TEST_f_f (round, -4503599627370496.25L, -4503599627370496.0L); 
   TEST_f_f (round, -4503599627370496.5L, -4503599627370497.0L);
   TEST_f_f (round, -4503599627370496.75L, -4503599627370497.0L); 
   TEST_f_f (round, -4503599627370497.5L, -4503599627370498.0L);
+# if LDBL_MANT_DIG > 100
   TEST_f_f (round, -4503599627370494.5000000000001L, -4503599627370495.0L);
   TEST_f_f (round, -4503599627370495.5000000000001L, -4503599627370496.0L);
   TEST_f_f (round, -4503599627370496.5000000000001L, -4503599627370497.0L);
+# endif
 
   TEST_f_f (round, 9007199254740991.5L, 9007199254740992.0L);
   TEST_f_f (round, 9007199254740992.25L, 9007199254740992.0L);
@@ -4415,6 +4451,7 @@ round_test (void)
   TEST_f_f (round, -9007199254740992.75L, -9007199254740993.0L);
   TEST_f_f (round, -9007199254740993.5L, -9007199254740994.0L);
 
+# if LDBL_MANT_DIG > 100
   TEST_f_f (round, 9007199254740991.0000000000001L, 9007199254740991.0L);
   TEST_f_f (round, 9007199254740992.0000000000001L, 9007199254740992.0L);
   TEST_f_f (round, 9007199254740993.0000000000001L, 9007199254740993.0L);
@@ -4428,6 +4465,7 @@ round_test (void)
   TEST_f_f (round, -9007199254740991.5000000000001L, -9007199254740992.0L);
   TEST_f_f (round, -9007199254740992.5000000000001L, -9007199254740993.0L);
   TEST_f_f (round, -9007199254740993.5000000000001L, -9007199254740994.0L);
+# endif
 
   TEST_f_f (round, 72057594037927935.5L, 72057594037927936.0L);
   TEST_f_f (round, 72057594037927936.25L, 72057594037927936.0L);
@@ -4827,9 +4865,11 @@ trunc_test (void)
   TEST_f_f (trunc, 4503599627370496.75L, 4503599627370496.0L);
   TEST_f_f (trunc, 4503599627370497.5L, 4503599627370497.0L);
 
+# if LDBL_MANT_DIG > 100
   TEST_f_f (trunc, 4503599627370494.5000000000001L, 4503599627370494.0L);
   TEST_f_f (trunc, 4503599627370495.5000000000001L, 4503599627370495.0L);
   TEST_f_f (trunc, 4503599627370496.5000000000001L, 4503599627370496.0L);
+# endif
   
   TEST_f_f (trunc, -4503599627370495.5L, -4503599627370495.0L);
   TEST_f_f (trunc, -4503599627370496.25L, -4503599627370496.0L);
@@ -4837,9 +4877,11 @@ trunc_test (void)
   TEST_f_f (trunc, -4503599627370496.75L, -4503599627370496.0L);
   TEST_f_f (trunc, -4503599627370497.5L, -4503599627370497.0L);
   
+# if LDBL_MANT_DIG > 100
   TEST_f_f (trunc, -4503599627370494.5000000000001L, -4503599627370494.0L);
   TEST_f_f (trunc, -4503599627370495.5000000000001L, -4503599627370495.0L);
   TEST_f_f (trunc, -4503599627370496.5000000000001L, -4503599627370496.0L);
+# endif
 
   TEST_f_f (trunc, 9007199254740991.5L, 9007199254740991.0L);
   TEST_f_f (trunc, 9007199254740992.25L, 9007199254740992.0L);
@@ -4847,12 +4889,14 @@ trunc_test (void)
   TEST_f_f (trunc, 9007199254740992.75L, 9007199254740992.0L);
   TEST_f_f (trunc, 9007199254740993.5L, 9007199254740993.0L);
 
+# if LDBL_MANT_DIG > 100
   TEST_f_f (trunc, 9007199254740991.0000000000001L, 9007199254740991.0L);
   TEST_f_f (trunc, 9007199254740992.0000000000001L, 9007199254740992.0L);
   TEST_f_f (trunc, 9007199254740993.0000000000001L, 9007199254740993.0L);
   TEST_f_f (trunc, 9007199254740991.5000000000001L, 9007199254740991.0L);
   TEST_f_f (trunc, 9007199254740992.5000000000001L, 9007199254740992.0L);
   TEST_f_f (trunc, 9007199254740993.5000000000001L, 9007199254740993.0L);
+# endif
 
   TEST_f_f (trunc, -9007199254740991.5L, -9007199254740991.0L);
   TEST_f_f (trunc, -9007199254740992.25L, -9007199254740992.0L);
@@ -4860,12 +4904,14 @@ trunc_test (void)
   TEST_f_f (trunc, -9007199254740992.75L, -9007199254740992.0L);
   TEST_f_f (trunc, -9007199254740993.5L, -9007199254740993.0L);
 
+# if LDBL_MANT_DIG > 100
   TEST_f_f (trunc, -9007199254740991.0000000000001L, -9007199254740991.0L);
   TEST_f_f (trunc, -9007199254740992.0000000000001L, -9007199254740992.0L);
   TEST_f_f (trunc, -9007199254740993.0000000000001L, -9007199254740993.0L);
   TEST_f_f (trunc, -9007199254740991.5000000000001L, -9007199254740991.0L);
   TEST_f_f (trunc, -9007199254740992.5000000000001L, -9007199254740992.0L);
   TEST_f_f (trunc, -9007199254740993.5000000000001L, -9007199254740993.0L);
+# endif
 
   TEST_f_f (trunc, 72057594037927935.5L, 72057594037927935.0L);
   TEST_f_f (trunc, 72057594037927936.25L, 72057594037927936.0L);
diff --git a/sysdeps/powerpc/powerpc64/fpu/s_rintl.S b/sysdeps/powerpc/powerpc64/fpu/s_rintl.S
deleted file mode 100644
index 2ca2d4481f..0000000000
--- a/sysdeps/powerpc/powerpc64/fpu/s_rintl.S
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Round to int long double floating-point values.
-   IBM extended format long double version.
-   Copyright (C) 2004, 2006 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-/* This has been coded in assembler because GCC makes such a mess of it
-   when it's coded in C.  */
-
-#include <sysdep.h>
-#include <math_ldbl_opt.h>
-
-	.section	".toc","aw"
-.LC0:	/* 2**52 */
-	.tc FD_43300000_0[TC],0x4330000000000000
-	.section	".text"
-
-ENTRY (__rintl)
-	lfd	fp13,.LC0@toc(2)
-	fabs	fp0,fp1
-	fsub	fp12,fp13,fp13	/* generate 0.0  */
-	fabs	fp9,fp2
-	fcmpu	cr7,fp0,fp13	/* if (fabs(x) > TWO52)  */
-	fcmpu	cr6,fp1,fp12	/* if (x > 0.0)  */
-	bnl-	cr7,.L2
-	fmr	fp2,fp12
-	bng-	cr6,.L1
-	fadd	fp1,fp1,fp13	/* x+= TWO52;  */
-	fsub	fp1,fp1,fp13	/* x-= TWO52;  */
-	fabs	fp1,fp1		/* if (x == 0.0)  */
-	blr			/* x = 0.0; */
-.L1:
-	bnllr-	cr6		/* if (x < 0.0)  */
-	fsub	fp1,fp1,fp13	/* x-= TWO52;  */
-	fadd	fp1,fp1,fp13	/* x+= TWO52;  */
-	fnabs	fp1,fp1		/* if (x == 0.0)  */
-	blr			/* x = -0.0; */
-
-/* The high double is > TWO52 so we need to round the low double and
-   perhaps the high double.  In this case we have to round the low
-   double and handle any adjustment to the high double that may be
-   caused by rounding (up).  This is complicated by the fact that the
-   high double may already be rounded and the low double may have the
-   opposite sign to compensate.This gets a bit tricky so we use the
-   following algorithm:
-
-   tau = floor(x_high/TWO52);
-   x0 = x_high - tau;
-   x1 = x_low + tau;
-   r1 = rint(x1);
-   y_high = x0 + r1;
-   y_low = x0 - y_high + r1;
-   return y;  */
-.L2:
-	fcmpu	cr7,fp9,fp13	/* if (|x_low| > TWO52)  */
-	fcmpu	cr0,fp9,fp12	/* || (|x_low| == 0.0)  */
-	fcmpu	cr5,fp2,fp12	/* if (x_low > 0.0)  */
-	bgelr-	cr7		/*   return x;	*/
-	beqlr-  cr0
-	fdiv	fp8,fp1,fp13	/* x_high/TWO52  */
-	
-	bng-	cr6,.L6		/* if (x > 0.0)  */
-	fctidz	fp0,fp8
-	fcfid	fp8,fp0		/* tau = floor(x_high/TWO52);  */
-	fadd	fp8,fp8,fp8	/* tau++; Make tau even  */
-	bng	cr5,.L4		/* if (x_low > 0.0)  */
-	fmr	fp3,fp1
-	fmr	fp4,fp2
-	b	.L5
-.L4:				/* if (x_low < 0.0)  */
-	fsub	fp3,fp1,fp8	/* x0 = x_high - tau;  */
-	fadd	fp4,fp2,fp8	/* x1 = x_low + tau;  */
-.L5:
-	fadd	fp5,fp4,fp13	/* r1 = x1 + TWO52;  */
-	fsub	fp5,fp5,fp13	/* r1 = r1 - TWO52;  */
-	b	.L9
-.L6:				/* if (x < 0.0)  */
-	fctidz	fp0,fp8
-	fcfid	fp8,fp0		/* tau = floor(x_high/TWO52);  */
-	fadd	fp8,fp8,fp8	/* tau++; Make tau even  */	
-	bnl	cr5,.L7		/* if (x_low < 0.0)  */
-	fmr	fp3,fp1
-	fmr	fp4,fp2
-	b	.L8
-.L7:				/* if (x_low > 0.0)  */
-	fsub	fp3,fp1,fp8	/* x0 = x_high - tau;  */
-	fadd	fp4,fp2,fp8	/* x1 = x_low + tau;  */
-.L8:
-	fsub	fp5,fp13,fp4	/* r1 = TWO52 - x1;  */
-	fsub	fp0,fp5,fp13	/* r1 = - (r1 - TWO52);  */
-	fneg	fp5,fp0
-.L9:
-	fadd	fp1,fp3,fp5	/* y_high = x0 + r1;  */
-	fsub	fp2,fp3,fp1	/* y_low = x0 - y_high + r1;  */
-	fadd	fp2,fp2,fp5
-	blr
-END (__rintl)
-
-long_double_symbol (libm, __rintl, rintl)