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-278-g2ae21ed


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  2ae21ed2d2e2e0e38b84bd046bcf5f009ab417f3 (commit)
      from  cb8f9562a53b54ffbcc0b4ba4a6ac5e56b05beb2 (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=2ae21ed2d2e2e0e38b84bd046bcf5f009ab417f3

commit 2ae21ed2d2e2e0e38b84bd046bcf5f009ab417f3
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Thu Oct 10 11:38:56 2013 +0000

    soft-fp: fix negation NaN handling (bug 16034).

diff --git a/ChangeLog b/ChangeLog
index 00ba832..7367bab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2013-10-10  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #16034]
+	* soft-fp/op-common.h (_FP_NEG): Document input as raw.  Do not
+	copy class of input value.
+	* soft-fp/negdf2.c (__negdf2): Use raw unpacking and packing.  Do
+	not handle exceptions.
+	* soft-fp/negsf2.c (__negsf2): Likewise.
+	* soft-fp/negtf2.c (__negtf2): Likewise.
+	* sysdeps/sparc/sparc32/soft-fp/q_neg.c (_Q_neg): Likewise.
+
 2013-10-09  Joseph Myers  <joseph@codesourcery.com>
 
 	* soft-fp/op-4.h (_FP_FRAC_DISASSEMBLE_4): Remove trailing
diff --git a/NEWS b/NEWS
index 73fa9fe..5f0a710 100644
--- a/NEWS
+++ b/NEWS
@@ -14,7 +14,7 @@ Version 2.19
   15734, 15735, 15736, 15748, 15749, 15754, 15760, 15797, 15844, 15849,
   15855, 15856, 15857, 15859, 15867, 15886, 15887, 15890, 15892, 15893,
   15895, 15897, 15905, 15909, 15919, 15921, 15923, 15939, 15963, 15966,
-  15988.
+  15988, 16034.
 
 * CVE-2012-4412 The strcoll implementation caches indices and rules for
   large collation sequences to optimize multiple passes.  This cache
diff --git a/soft-fp/negdf2.c b/soft-fp/negdf2.c
index 3cc6f5f..1dedc71 100644
--- a/soft-fp/negdf2.c
+++ b/soft-fp/negdf2.c
@@ -33,15 +33,12 @@
 
 DFtype __negdf2(DFtype a)
 {
-  FP_DECL_EX;
   FP_DECL_D(A); FP_DECL_D(R);
   DFtype r;
 
-  FP_UNPACK_D(A, a);
+  FP_UNPACK_RAW_D(A, a);
   FP_NEG_D(R, A);
-  FP_PACK_D(r, R);
-  FP_CLEAR_EXCEPTIONS;
-  FP_HANDLE_EXCEPTIONS;
+  FP_PACK_RAW_D(r, R);
 
   return r;
 }
diff --git a/soft-fp/negsf2.c b/soft-fp/negsf2.c
index d8d5910..35ece56 100644
--- a/soft-fp/negsf2.c
+++ b/soft-fp/negsf2.c
@@ -33,15 +33,12 @@
 
 SFtype __negsf2(SFtype a)
 {
-  FP_DECL_EX;
   FP_DECL_S(A); FP_DECL_S(R);
   SFtype r;
 
-  FP_UNPACK_S(A, a);
+  FP_UNPACK_RAW_S(A, a);
   FP_NEG_S(R, A);
-  FP_PACK_S(r, R);
-  FP_CLEAR_EXCEPTIONS;
-  FP_HANDLE_EXCEPTIONS;
+  FP_PACK_RAW_S(r, R);
 
   return r;
 }
diff --git a/soft-fp/negtf2.c b/soft-fp/negtf2.c
index 1c08441..f51a621 100644
--- a/soft-fp/negtf2.c
+++ b/soft-fp/negtf2.c
@@ -33,15 +33,12 @@
 
 TFtype __negtf2(TFtype a)
 {
-  FP_DECL_EX;
   FP_DECL_Q(A); FP_DECL_Q(R);
   TFtype r;
 
-  FP_UNPACK_Q(A, a);
+  FP_UNPACK_RAW_Q(A, a);
   FP_NEG_Q(R, A);
-  FP_PACK_Q(r, R);
-  FP_CLEAR_EXCEPTIONS;
-  FP_HANDLE_EXCEPTIONS;
+  FP_PACK_RAW_Q(r, R);
 
   return r;
 }
diff --git a/soft-fp/op-common.h b/soft-fp/op-common.h
index 75ea352..5dfb73c 100644
--- a/soft-fp/op-common.h
+++ b/soft-fp/op-common.h
@@ -771,14 +771,12 @@ do {									 \
 
 
 /*
- * Main negation routine.  FIXME -- when we care about setting exception
- * bits reliably, this will not do.  We should examine all of the fp classes.
+ * Main negation routine.  The input value is raw.
  */
 
 #define _FP_NEG(fs, wc, R, X)		\
   do {					\
     _FP_FRAC_COPY_##wc(R, X);		\
-    R##_c = X##_c;			\
     R##_e = X##_e;			\
     R##_s = 1 ^ X##_s;			\
   } while (0)
diff --git a/sysdeps/sparc/sparc32/soft-fp/q_neg.c b/sysdeps/sparc/sparc32/soft-fp/q_neg.c
index 551c408..5e2449c 100644
--- a/sysdeps/sparc/sparc32/soft-fp/q_neg.c
+++ b/sysdeps/sparc/sparc32/soft-fp/q_neg.c
@@ -24,7 +24,6 @@
 
 long double _Q_neg(const long double a)
 {
-  FP_DECL_EX;
   long double c = a;
 
 #if (__BYTE_ORDER == __BIG_ENDIAN)
@@ -36,11 +35,9 @@ long double _Q_neg(const long double a)
 #else
   FP_DECL_Q(A); FP_DECL_Q(C);
 
-  FP_UNPACK_Q(A, a);
+  FP_UNPACK_RAW_Q(A, a);
   FP_NEG_Q(C, A);
-  FP_PACK_Q(c, C);
+  FP_PACK_RAW_Q(c, C);
 #endif
-  FP_CLEAR_EXCEPTIONS;
-  FP_HANDLE_EXCEPTIONS;
   return c;
 }

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

Summary of changes:
 ChangeLog                             |   11 +++++++++++
 NEWS                                  |    2 +-
 soft-fp/negdf2.c                      |    7 ++-----
 soft-fp/negsf2.c                      |    7 ++-----
 soft-fp/negtf2.c                      |    7 ++-----
 soft-fp/op-common.h                   |    4 +---
 sysdeps/sparc/sparc32/soft-fp/q_neg.c |    7 ++-----
 7 files changed, 21 insertions(+), 24 deletions(-)


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]