This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Use ieee754/dbl-64/wordsize-64 on powerpc64


This makes powerpc64 to use wordsize-64 math dbl-64 implementations like
the other 64-bit targets.

Andreas.

	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_ceil.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_finite.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_floor.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_frexp.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_isinf.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_isnan.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_llround.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_logb.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_lround.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_modf.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_nearbyint.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_remquo.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_rint.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_round.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_scalbln.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_scalbn.c: New file.
	* sysdeps/ieee754/ldbl-opt/wordsize-64/s_trunc.c: New file.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies: Add
	ieee754/ldbl-opt/wordsize-64.
	* sysdeps/powerpc/powerpc64/Implies: Add
	ieee754/dbl-64/wordsize-64.
---
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_ceil.c      |  5 +++++
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_finite.c    | 18 ++++++++++++++++++
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_floor.c     |  5 +++++
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_frexp.c     |  9 +++++++++
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_isinf.c     |  8 ++++++++
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_isnan.c     |  8 ++++++++
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_llround.c   |  6 ++++++
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_logb.c      |  5 +++++
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_lround.c    |  1 +
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_modf.c      |  9 +++++++++
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_nearbyint.c |  5 +++++
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_remquo.c    |  5 +++++
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_rint.c      |  5 +++++
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_round.c     |  5 +++++
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_scalbln.c   |  9 +++++++++
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_scalbn.c    |  9 +++++++++
 sysdeps/ieee754/ldbl-opt/wordsize-64/s_trunc.c     |  5 +++++
 sysdeps/powerpc/powerpc64/Implies                  |  1 +
 sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies  |  1 +
 19 files changed, 119 insertions(+)
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_ceil.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_finite.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_floor.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_frexp.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_isinf.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_isnan.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_llround.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_logb.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_lround.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_modf.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_nearbyint.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_remquo.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_rint.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_round.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_scalbln.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_scalbn.c
 create mode 100644 sysdeps/ieee754/ldbl-opt/wordsize-64/s_trunc.c

diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_ceil.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_ceil.c
new file mode 100644
index 0000000..c170392
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_ceil.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/wordsize-64/s_ceil.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __ceil, ceill, GLIBC_2_0);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_finite.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_finite.c
new file mode 100644
index 0000000..dec9862
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_finite.c
@@ -0,0 +1,18 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c>
+weak_alias (__finite, ___finite)
+#ifdef IS_IN_libm
+# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __finite, __finitel, GLIBC_2_1);
+# endif
+# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, ___finite, finitel, GLIBC_2_0);
+# endif
+#else
+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libm, __finite, __finitel, GLIBC_2_0);
+# endif
+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, ___finite, finitel, GLIBC_2_0);
+# endif
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_floor.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_floor.c
new file mode 100644
index 0000000..f29c946
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_floor.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/wordsize-64/s_floor.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __floor, floorl, GLIBC_2_0);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_frexp.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_frexp.c
new file mode 100644
index 0000000..3372c47
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_frexp.c
@@ -0,0 +1,9 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/wordsize-64/s_frexp.c>
+#ifdef IS_IN_libm
+# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __frexp, frexpl, GLIBC_2_0);
+# endif
+#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __frexp, frexpl, GLIBC_2_0);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_isinf.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_isinf.c
new file mode 100644
index 0000000..0851136
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_isinf.c
@@ -0,0 +1,8 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c>
+#ifndef IS_IN_libm
+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __isinf, __isinfl, GLIBC_2_0);
+compat_symbol (libc, isinf, isinfl, GLIBC_2_0);
+# endif
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_isnan.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_isnan.c
new file mode 100644
index 0000000..d4a6050
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_isnan.c
@@ -0,0 +1,8 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c>
+#ifndef IS_IN_libm
+# if LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __isnan, __isnanl, GLIBC_2_0);
+compat_symbol (libc, isnan, isnanl, GLIBC_2_0);
+# endif
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_llround.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_llround.c
new file mode 100644
index 0000000..438cd0f
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_llround.c
@@ -0,0 +1,6 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/wordsize-64/s_llround.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __llround, llroundl, GLIBC_2_1);
+compat_symbol (libm, __lround, lroundl, GLIBC_2_1);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_logb.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_logb.c
new file mode 100644
index 0000000..6fa7834
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_logb.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/wordsize-64/s_logb.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __logb, logbl, GLIBC_2_0);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_lround.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_lround.c
new file mode 100644
index 0000000..1e06fcb
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_lround.c
@@ -0,0 +1 @@
+/* The code is the same as llround.  Use an alias, see s_llround.c.  */
diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_modf.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_modf.c
new file mode 100644
index 0000000..50e793d
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_modf.c
@@ -0,0 +1,9 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/wordsize-64/s_modf.c>
+#ifdef IS_IN_libm
+# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __modf, modfl, GLIBC_2_0);
+# endif
+#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __modf, modfl, GLIBC_2_0);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_nearbyint.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_nearbyint.c
new file mode 100644
index 0000000..abbce7c
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_nearbyint.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/wordsize-64/s_nearbyint.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __nearbyint, nearbyintl, GLIBC_2_1);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_remquo.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_remquo.c
new file mode 100644
index 0000000..c627d0b
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_remquo.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/wordsize-64/s_remquo.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __remquo, remquol, GLIBC_2_1);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_rint.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_rint.c
new file mode 100644
index 0000000..9099a73
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_rint.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/wordsize-64/s_rint.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __rint, rintl, GLIBC_2_0);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_round.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_round.c
new file mode 100644
index 0000000..37f1620
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_round.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/wordsize-64/s_round.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __round, roundl, GLIBC_2_1);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_scalbln.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_scalbln.c
new file mode 100644
index 0000000..dc70658
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_scalbln.c
@@ -0,0 +1,9 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c>
+#ifdef IS_IN_libm
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __scalbln, scalblnl, GLIBC_2_1);
+#endif
+#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_1)
+compat_symbol (libc, __scalbln, scalblnl, GLIBC_2_1);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_scalbn.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_scalbn.c
new file mode 100644
index 0000000..e74170a
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_scalbn.c
@@ -0,0 +1,9 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c>
+#ifdef IS_IN_libm
+# if LONG_DOUBLE_COMPAT(libm, GLIBC_2_0)
+compat_symbol (libm, __scalbn, scalbnl, GLIBC_2_0);
+# endif
+#elif LONG_DOUBLE_COMPAT(libc, GLIBC_2_0)
+compat_symbol (libc, __scalbn, scalbnl, GLIBC_2_0);
+#endif
diff --git a/sysdeps/ieee754/ldbl-opt/wordsize-64/s_trunc.c b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_trunc.c
new file mode 100644
index 0000000..b37b52b
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/wordsize-64/s_trunc.c
@@ -0,0 +1,5 @@
+#include <math_ldbl_opt.h>
+#include <sysdeps/ieee754/dbl-64/wordsize-64/s_trunc.c>
+#if LONG_DOUBLE_COMPAT(libm, GLIBC_2_1)
+compat_symbol (libm, __trunc, truncl, GLIBC_2_1);
+#endif
diff --git a/sysdeps/powerpc/powerpc64/Implies b/sysdeps/powerpc/powerpc64/Implies
index a8cae95..7603c98 100644
--- a/sysdeps/powerpc/powerpc64/Implies
+++ b/sysdeps/powerpc/powerpc64/Implies
@@ -1 +1,2 @@
 wordsize-64
+ieee754/dbl-64/wordsize-64
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies
index 8d91c80..d68b54b 100644
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/Implies
@@ -1 +1,2 @@
 unix/sysv/linux/wordsize-64
+ieee754/ldbl-opt/wordsize-64
-- 
1.8.0


-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]