This is the mail archive of the glibc-cvs@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]

GNU C Library master sources branch master updated. glibc-2.18-633-g29618f6


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  29618f6b74520811db2d2394e33606b9c7f2ef4a (commit)
      from  eacfdfbfad99346b53048d5a2da1d98f94659258 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=29618f6b74520811db2d2394e33606b9c7f2ef4a

commit 29618f6b74520811db2d2394e33606b9c7f2ef4a
Author: Kaz Kojima <kkojima@rr.iij4u.or.jp>
Date:   Tue Dec 17 09:00:05 2013 +0900

    Make soft-float sh use soft-fp fma/fmaf.

diff --git a/ChangeLog b/ChangeLog
index 2d8010e..ad32031 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2013-12-16  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+
+	[BZ #13304]
+	* sysdeps/sh/s_fma.c: New file.
+	* sysdeps/sh/s_fmaf.c: New file.
+	* sysdeps/sh/soft-fp/sfp-machine.h: New file.  Based on arm
+	version.
+	* sysdeps/sh/Implies: Add sh/soft-fp.
+
 2013-12-16  Roland McGrath  <roland@hack.frob.com>
 
 	* elf/dl-error.c (struct catch): Add new member `errcode'.  Add a
diff --git a/sysdeps/sh/Implies b/sysdeps/sh/Implies
index 780c4e2..1fdc53d 100644
--- a/sysdeps/sh/Implies
+++ b/sysdeps/sh/Implies
@@ -1,3 +1,4 @@
+sh/soft-fp
 wordsize-32
 ieee754/flt-32
 ieee754/dbl-64
diff --git a/sysdeps/sh/s_fma.c b/sysdeps/sh/s_fma.c
new file mode 100644
index 0000000..d92438d
--- /dev/null
+++ b/sysdeps/sh/s_fma.c
@@ -0,0 +1,5 @@
+#ifdef __SH_FPU_ANY__
+# include <sysdeps/ieee754/dbl-64/s_fma.c>
+#else
+# include <soft-fp/fmadf4.c>
+#endif
diff --git a/sysdeps/sh/s_fmaf.c b/sysdeps/sh/s_fmaf.c
new file mode 100644
index 0000000..3b811ae
--- /dev/null
+++ b/sysdeps/sh/s_fmaf.c
@@ -0,0 +1,5 @@
+#ifdef __SH_FPU_ANY__
+# include <sysdeps/ieee754/dbl-64/s_fmaf.c>
+#else
+# include <soft-fp/fmasf4.c>
+#endif
diff --git a/sysdeps/sh/soft-fp/sfp-machine.h b/sysdeps/sh/soft-fp/sfp-machine.h
new file mode 100644
index 0000000..9b90748
--- /dev/null
+++ b/sysdeps/sh/soft-fp/sfp-machine.h
@@ -0,0 +1,55 @@
+#define _FP_W_TYPE_SIZE		32
+#define _FP_W_TYPE		unsigned long
+#define _FP_WS_TYPE		signed long
+#define _FP_I_TYPE		long
+
+#define _FP_MUL_MEAT_S(R,X,Y)				\
+  _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_D(R,X,Y)				\
+  _FP_MUL_MEAT_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_Q(R,X,Y)				\
+  _FP_MUL_MEAT_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_MUL_MEAT_DW_S(R,X,Y)				\
+  _FP_MUL_MEAT_DW_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_DW_D(R,X,Y)				\
+  _FP_MUL_MEAT_DW_2_wide(_FP_WFRACBITS_D,R,X,Y,umul_ppmm)
+#define _FP_MUL_MEAT_DW_Q(R,X,Y)				\
+  _FP_MUL_MEAT_DW_4_wide(_FP_WFRACBITS_Q,R,X,Y,umul_ppmm)
+
+#define _FP_DIV_MEAT_S(R,X,Y)	_FP_DIV_MEAT_1_loop(S,R,X,Y)
+#define _FP_DIV_MEAT_D(R,X,Y)	_FP_DIV_MEAT_2_udiv(D,R,X,Y)
+#define _FP_DIV_MEAT_Q(R,X,Y)	_FP_DIV_MEAT_4_udiv(Q,R,X,Y)
+
+#define _FP_NANFRAC_S		((_FP_QNANBIT_S << 1) - 1)
+#define _FP_NANFRAC_D		((_FP_QNANBIT_D << 1) - 1), -1
+#define _FP_NANFRAC_Q		((_FP_QNANBIT_Q << 1) - 1), -1, -1, -1
+#define _FP_NANSIGN_S		0
+#define _FP_NANSIGN_D		0
+#define _FP_NANSIGN_Q		0
+
+#define _FP_KEEPNANFRACP 1
+#define _FP_QNANNEGATEDP 0
+
+/* Someone please check this.  */
+#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP)			\
+  do {								\
+    if ((_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)		\
+	&& !(_FP_FRAC_HIGH_RAW_##fs(Y) & _FP_QNANBIT_##fs))	\
+      {								\
+	R##_s = Y##_s;						\
+	_FP_FRAC_COPY_##wc(R,Y);				\
+      }								\
+    else							\
+      {								\
+	R##_s = X##_s;						\
+	_FP_FRAC_COPY_##wc(R,X);				\
+      }								\
+    R##_c = FP_CLS_NAN;						\
+  } while (0)
+
+#define FP_EX_INVALID           (1 << 6)
+#define FP_EX_DIVZERO           (1 << 5)
+#define FP_EX_OVERFLOW          (1 << 4)
+#define FP_EX_UNDERFLOW         (1 << 3)
+#define FP_EX_INEXACT           (1 << 2)

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                        |    9 ++++++
 sysdeps/sh/Implies               |    1 +
 sysdeps/sh/s_fma.c               |    5 +++
 sysdeps/sh/s_fmaf.c              |    5 +++
 sysdeps/sh/soft-fp/sfp-machine.h |   55 ++++++++++++++++++++++++++++++++++++++
 5 files changed, 75 insertions(+), 0 deletions(-)
 create mode 100644 sysdeps/sh/s_fma.c
 create mode 100644 sysdeps/sh/s_fmaf.c
 create mode 100644 sysdeps/sh/soft-fp/sfp-machine.h


hooks/post-receive
-- 
GNU C Library master sources


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