aboutsummaryrefslogtreecommitdiff
path: root/libgcc/soft-fp
diff options
context:
space:
mode:
Diffstat (limited to 'libgcc/soft-fp')
-rw-r--r--libgcc/soft-fp/adddf3.c2
-rw-r--r--libgcc/soft-fp/addsf3.c2
-rw-r--r--libgcc/soft-fp/addtf3.c2
-rw-r--r--libgcc/soft-fp/divdf3.c2
-rw-r--r--libgcc/soft-fp/divsf3.c2
-rw-r--r--libgcc/soft-fp/divtf3.c2
-rw-r--r--libgcc/soft-fp/double.h3
-rw-r--r--libgcc/soft-fp/eqdf2.c2
-rw-r--r--libgcc/soft-fp/eqsf2.c2
-rw-r--r--libgcc/soft-fp/eqtf2.c2
-rw-r--r--libgcc/soft-fp/extenddftf2.c2
-rw-r--r--libgcc/soft-fp/extended.h6
-rw-r--r--libgcc/soft-fp/extendsfdf2.c2
-rw-r--r--libgcc/soft-fp/extendsftf2.c2
-rw-r--r--libgcc/soft-fp/fixdfdi.c2
-rw-r--r--libgcc/soft-fp/fixdfsi.c2
-rw-r--r--libgcc/soft-fp/fixsfdi.c2
-rw-r--r--libgcc/soft-fp/fixsfsi.c2
-rw-r--r--libgcc/soft-fp/fixtfdi.c2
-rw-r--r--libgcc/soft-fp/fixtfsi.c2
-rw-r--r--libgcc/soft-fp/fixunsdfdi.c2
-rw-r--r--libgcc/soft-fp/fixunsdfsi.c2
-rw-r--r--libgcc/soft-fp/fixunssfdi.c2
-rw-r--r--libgcc/soft-fp/fixunssfsi.c2
-rw-r--r--libgcc/soft-fp/fixunstfdi.c2
-rw-r--r--libgcc/soft-fp/fixunstfsi.c2
-rw-r--r--libgcc/soft-fp/floatdidf.c2
-rw-r--r--libgcc/soft-fp/floatdisf.c2
-rw-r--r--libgcc/soft-fp/floatditf.c2
-rw-r--r--libgcc/soft-fp/floatsidf.c2
-rw-r--r--libgcc/soft-fp/floatsisf.c2
-rw-r--r--libgcc/soft-fp/floatsitf.c2
-rw-r--r--libgcc/soft-fp/floatundidf.c2
-rw-r--r--libgcc/soft-fp/floatundisf.c2
-rw-r--r--libgcc/soft-fp/floatunditf.c2
-rw-r--r--libgcc/soft-fp/floatunsidf.c2
-rw-r--r--libgcc/soft-fp/floatunsisf.c2
-rw-r--r--libgcc/soft-fp/floatunsitf.c2
-rw-r--r--libgcc/soft-fp/gedf2.c2
-rw-r--r--libgcc/soft-fp/gesf2.c2
-rw-r--r--libgcc/soft-fp/getf2.c2
-rw-r--r--libgcc/soft-fp/ledf2.c2
-rw-r--r--libgcc/soft-fp/lesf2.c2
-rw-r--r--libgcc/soft-fp/letf2.c2
-rw-r--r--libgcc/soft-fp/muldf3.c2
-rw-r--r--libgcc/soft-fp/mulsf3.c2
-rw-r--r--libgcc/soft-fp/multf3.c2
-rw-r--r--libgcc/soft-fp/negdf2.c2
-rw-r--r--libgcc/soft-fp/negsf2.c2
-rw-r--r--libgcc/soft-fp/negtf2.c2
-rw-r--r--libgcc/soft-fp/op-1.h12
-rw-r--r--libgcc/soft-fp/op-2.h18
-rw-r--r--libgcc/soft-fp/op-4.h16
-rw-r--r--libgcc/soft-fp/op-8.h4
-rw-r--r--libgcc/soft-fp/op-common.h104
-rw-r--r--libgcc/soft-fp/quad.h2
-rw-r--r--libgcc/soft-fp/single.h2
-rw-r--r--libgcc/soft-fp/soft-fp.h3
-rw-r--r--libgcc/soft-fp/subdf3.c2
-rw-r--r--libgcc/soft-fp/subsf3.c2
-rw-r--r--libgcc/soft-fp/subtf3.c2
-rw-r--r--libgcc/soft-fp/truncdfsf2.c2
-rw-r--r--libgcc/soft-fp/trunctfdf2.c2
-rw-r--r--libgcc/soft-fp/trunctfsf2.c2
-rw-r--r--libgcc/soft-fp/unorddf2.c2
-rw-r--r--libgcc/soft-fp/unordsf2.c2
-rw-r--r--libgcc/soft-fp/unordtf2.c2
67 files changed, 164 insertions, 120 deletions
diff --git a/libgcc/soft-fp/adddf3.c b/libgcc/soft-fp/adddf3.c
index 5e66461..55df554 100644
--- a/libgcc/soft-fp/adddf3.c
+++ b/libgcc/soft-fp/adddf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a + b
- Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/addsf3.c b/libgcc/soft-fp/addsf3.c
index 7f61d16..8a31449 100644
--- a/libgcc/soft-fp/addsf3.c
+++ b/libgcc/soft-fp/addsf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a + b
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/addtf3.c b/libgcc/soft-fp/addtf3.c
index f5da019..7a27325 100644
--- a/libgcc/soft-fp/addtf3.c
+++ b/libgcc/soft-fp/addtf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a + b
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/divdf3.c b/libgcc/soft-fp/divdf3.c
index 105beab..c3dcf80 100644
--- a/libgcc/soft-fp/divdf3.c
+++ b/libgcc/soft-fp/divdf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a / b
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/divsf3.c b/libgcc/soft-fp/divsf3.c
index 41e32c0..063462f 100644
--- a/libgcc/soft-fp/divsf3.c
+++ b/libgcc/soft-fp/divsf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a / b
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/divtf3.c b/libgcc/soft-fp/divtf3.c
index b932351..03d017d 100644
--- a/libgcc/soft-fp/divtf3.c
+++ b/libgcc/soft-fp/divtf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a / b
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/double.h b/libgcc/soft-fp/double.h
index 5bad49c..759c2eb 100644
--- a/libgcc/soft-fp/double.h
+++ b/libgcc/soft-fp/double.h
@@ -1,7 +1,6 @@
/* Software floating-point emulation.
Definitions for IEEE Double Precision
- Copyright (C) 1997, 1998, 1999, 2006, 2007, 2008, 2009, 2012
- Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
diff --git a/libgcc/soft-fp/eqdf2.c b/libgcc/soft-fp/eqdf2.c
index b5749b4..c93c118 100644
--- a/libgcc/soft-fp/eqdf2.c
+++ b/libgcc/soft-fp/eqdf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 otherwise
- Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/eqsf2.c b/libgcc/soft-fp/eqsf2.c
index 8bf3603..e5b2a5f 100644
--- a/libgcc/soft-fp/eqsf2.c
+++ b/libgcc/soft-fp/eqsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 otherwise
- Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/eqtf2.c b/libgcc/soft-fp/eqtf2.c
index e40f31a..47b5d5c 100644
--- a/libgcc/soft-fp/eqtf2.c
+++ b/libgcc/soft-fp/eqtf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 otherwise
- Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/extenddftf2.c b/libgcc/soft-fp/extenddftf2.c
index f7082ef..ff76a8c 100644
--- a/libgcc/soft-fp/extenddftf2.c
+++ b/libgcc/soft-fp/extenddftf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a converted to IEEE quad
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/extended.h b/libgcc/soft-fp/extended.h
index af9c6e6..7492755 100644
--- a/libgcc/soft-fp/extended.h
+++ b/libgcc/soft-fp/extended.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Definitions for IEEE Extended Precision.
- Copyright (C) 1999,2006,2007,2012 Free Software Foundation, Inc.
+ Copyright (C) 1999-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jakub Jelinek (jj@ultra.linux.cz).
@@ -203,7 +203,7 @@ union _FP_UNION_E
* anyway, we optimize it by doing most of the calculations
* in two UWtype registers instead of four.
*/
-
+
#define _FP_SQRT_MEAT_E(R, S, T, X, q) \
do { \
q = (_FP_W_TYPE)1 << (_FP_W_TYPE_SIZE - 1); \
@@ -416,7 +416,7 @@ union _FP_UNION_E
R##_f0 |= _FP_WORK_STICKY; \
} \
} while (0)
-
+
#define FP_CMP_E(r,X,Y,un) _FP_CMP(E,2,r,X,Y,un)
#define FP_CMP_EQ_E(r,X,Y) _FP_CMP_EQ(E,2,r,X,Y)
#define FP_CMP_UNORD_E(r,X,Y) _FP_CMP_UNORD(E,2,r,X,Y)
diff --git a/libgcc/soft-fp/extendsfdf2.c b/libgcc/soft-fp/extendsfdf2.c
index ac84375..7fc4046 100644
--- a/libgcc/soft-fp/extendsfdf2.c
+++ b/libgcc/soft-fp/extendsfdf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a converted to IEEE double
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/extendsftf2.c b/libgcc/soft-fp/extendsftf2.c
index a0d6270..8271a88 100644
--- a/libgcc/soft-fp/extendsftf2.c
+++ b/libgcc/soft-fp/extendsftf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a converted to IEEE quad
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixdfdi.c b/libgcc/soft-fp/fixdfdi.c
index d1060bc..71ce1d4 100644
--- a/libgcc/soft-fp/fixdfdi.c
+++ b/libgcc/soft-fp/fixdfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit signed integer
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixdfsi.c b/libgcc/soft-fp/fixdfsi.c
index 6388719..f0c9960 100644
--- a/libgcc/soft-fp/fixdfsi.c
+++ b/libgcc/soft-fp/fixdfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit signed integer
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixsfdi.c b/libgcc/soft-fp/fixsfdi.c
index 9dc04b6..5f69d6a 100644
--- a/libgcc/soft-fp/fixsfdi.c
+++ b/libgcc/soft-fp/fixsfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit signed integer
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixsfsi.c b/libgcc/soft-fp/fixsfsi.c
index c17514a..6fffdd7 100644
--- a/libgcc/soft-fp/fixsfsi.c
+++ b/libgcc/soft-fp/fixsfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit signed integer
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixtfdi.c b/libgcc/soft-fp/fixtfdi.c
index 3731580..ac67bfb 100644
--- a/libgcc/soft-fp/fixtfdi.c
+++ b/libgcc/soft-fp/fixtfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit signed integer
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixtfsi.c b/libgcc/soft-fp/fixtfsi.c
index 9ceed12..8f27ff6 100644
--- a/libgcc/soft-fp/fixtfsi.c
+++ b/libgcc/soft-fp/fixtfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit signed integer
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixunsdfdi.c b/libgcc/soft-fp/fixunsdfdi.c
index 4a5a7df..82fe1c7 100644
--- a/libgcc/soft-fp/fixunsdfdi.c
+++ b/libgcc/soft-fp/fixunsdfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit unsigned integer
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixunsdfsi.c b/libgcc/soft-fp/fixunsdfsi.c
index 82b54ad..43287b0 100644
--- a/libgcc/soft-fp/fixunsdfsi.c
+++ b/libgcc/soft-fp/fixunsdfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit unsigned integer
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixunssfdi.c b/libgcc/soft-fp/fixunssfdi.c
index d99f6fa..c0691c6 100644
--- a/libgcc/soft-fp/fixunssfdi.c
+++ b/libgcc/soft-fp/fixunssfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit unsigned integer
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixunssfsi.c b/libgcc/soft-fp/fixunssfsi.c
index b226b1f..3d00ce8 100644
--- a/libgcc/soft-fp/fixunssfsi.c
+++ b/libgcc/soft-fp/fixunssfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit unsigned integer
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixunstfdi.c b/libgcc/soft-fp/fixunstfdi.c
index 97c4ec9..d6038fa 100644
--- a/libgcc/soft-fp/fixunstfdi.c
+++ b/libgcc/soft-fp/fixunstfdi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 64bit unsigned integer
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/fixunstfsi.c b/libgcc/soft-fp/fixunstfsi.c
index df4ca9a7..c8481f1 100644
--- a/libgcc/soft-fp/fixunstfsi.c
+++ b/libgcc/soft-fp/fixunstfsi.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a to 32bit unsigned integer
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatdidf.c b/libgcc/soft-fp/floatdidf.c
index c1e0084..f6f594a 100644
--- a/libgcc/soft-fp/floatdidf.c
+++ b/libgcc/soft-fp/floatdidf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit signed integer to IEEE double
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatdisf.c b/libgcc/soft-fp/floatdisf.c
index 76a9245..72252e4 100644
--- a/libgcc/soft-fp/floatdisf.c
+++ b/libgcc/soft-fp/floatdisf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit signed integer to IEEE single
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatditf.c b/libgcc/soft-fp/floatditf.c
index d6d8818..68da6c6 100644
--- a/libgcc/soft-fp/floatditf.c
+++ b/libgcc/soft-fp/floatditf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit signed integer to IEEE quad
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatsidf.c b/libgcc/soft-fp/floatsidf.c
index 3409ecd..ec578fb 100644
--- a/libgcc/soft-fp/floatsidf.c
+++ b/libgcc/soft-fp/floatsidf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit signed integer to IEEE double
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatsisf.c b/libgcc/soft-fp/floatsisf.c
index 002aa17..c9ff205 100644
--- a/libgcc/soft-fp/floatsisf.c
+++ b/libgcc/soft-fp/floatsisf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit signed integer to IEEE single
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatsitf.c b/libgcc/soft-fp/floatsitf.c
index 9cc6e65..6e24b9e 100644
--- a/libgcc/soft-fp/floatsitf.c
+++ b/libgcc/soft-fp/floatsitf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit signed integer to IEEE quad
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatundidf.c b/libgcc/soft-fp/floatundidf.c
index ab1152c..1babcec 100644
--- a/libgcc/soft-fp/floatundidf.c
+++ b/libgcc/soft-fp/floatundidf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit unsigned integer to IEEE double
- Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatundisf.c b/libgcc/soft-fp/floatundisf.c
index ff544f9..1c645c0 100644
--- a/libgcc/soft-fp/floatundisf.c
+++ b/libgcc/soft-fp/floatundisf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit unsigned integer to IEEE single
- Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatunditf.c b/libgcc/soft-fp/floatunditf.c
index 0723c40..fff73fd 100644
--- a/libgcc/soft-fp/floatunditf.c
+++ b/libgcc/soft-fp/floatunditf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 64bit unsigned integer to IEEE quad
- Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatunsidf.c b/libgcc/soft-fp/floatunsidf.c
index 4a955da..548dc7c 100644
--- a/libgcc/soft-fp/floatunsidf.c
+++ b/libgcc/soft-fp/floatunsidf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit unsigned integer to IEEE double
- Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatunsisf.c b/libgcc/soft-fp/floatunsisf.c
index 7d588c6..2c0cc89 100644
--- a/libgcc/soft-fp/floatunsisf.c
+++ b/libgcc/soft-fp/floatunsisf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit unsigned integer to IEEE single
- Copyright (C) 1997, 1999, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/floatunsitf.c b/libgcc/soft-fp/floatunsitf.c
index e9a88f8..1099c2e 100644
--- a/libgcc/soft-fp/floatunsitf.c
+++ b/libgcc/soft-fp/floatunsitf.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Convert a 32bit unsigned integer to IEEE quad
- Copyright (C) 1997,1999, 2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/gedf2.c b/libgcc/soft-fp/gedf2.c
index 55298e5..0ef9f5d 100644
--- a/libgcc/soft-fp/gedf2.c
+++ b/libgcc/soft-fp/gedf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
- Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/gesf2.c b/libgcc/soft-fp/gesf2.c
index ea7c226..f0a8377 100644
--- a/libgcc/soft-fp/gesf2.c
+++ b/libgcc/soft-fp/gesf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
- Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/getf2.c b/libgcc/soft-fp/getf2.c
index dd19a9d..705d48b 100644
--- a/libgcc/soft-fp/getf2.c
+++ b/libgcc/soft-fp/getf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, -2 iff a ? b, -1 iff a < b
- Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/ledf2.c b/libgcc/soft-fp/ledf2.c
index 7642ced5..7b8f403 100644
--- a/libgcc/soft-fp/ledf2.c
+++ b/libgcc/soft-fp/ledf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
- Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/lesf2.c b/libgcc/soft-fp/lesf2.c
index 594b114..41f823b 100644
--- a/libgcc/soft-fp/lesf2.c
+++ b/libgcc/soft-fp/lesf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
- Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/letf2.c b/libgcc/soft-fp/letf2.c
index ae3060e..59342ca 100644
--- a/libgcc/soft-fp/letf2.c
+++ b/libgcc/soft-fp/letf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 0 iff a == b, 1 iff a > b, 2 iff a ? b, -1 iff a < b
- Copyright (C) 1997,1999,2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/muldf3.c b/libgcc/soft-fp/muldf3.c
index 8aaebc0..8c08281 100644
--- a/libgcc/soft-fp/muldf3.c
+++ b/libgcc/soft-fp/muldf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a * b
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/mulsf3.c b/libgcc/soft-fp/mulsf3.c
index 18c49a5..f0341a5 100644
--- a/libgcc/soft-fp/mulsf3.c
+++ b/libgcc/soft-fp/mulsf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a * b
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/multf3.c b/libgcc/soft-fp/multf3.c
index 9fd10d8..35badf2 100644
--- a/libgcc/soft-fp/multf3.c
+++ b/libgcc/soft-fp/multf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a * b
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/negdf2.c b/libgcc/soft-fp/negdf2.c
index 08494aa..3cc6f5f 100644
--- a/libgcc/soft-fp/negdf2.c
+++ b/libgcc/soft-fp/negdf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return -a
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/negsf2.c b/libgcc/soft-fp/negsf2.c
index 1eb9a50..d8d5910 100644
--- a/libgcc/soft-fp/negsf2.c
+++ b/libgcc/soft-fp/negsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return -a
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/negtf2.c b/libgcc/soft-fp/negtf2.c
index fe9f05e..1c08441 100644
--- a/libgcc/soft-fp/negtf2.c
+++ b/libgcc/soft-fp/negtf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return -a
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/op-1.h b/libgcc/soft-fp/op-1.h
index 2cffb7f..8e05e2f 100644
--- a/libgcc/soft-fp/op-1.h
+++ b/libgcc/soft-fp/op-1.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Basic one-word fraction declaration and manipulation.
- Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -233,7 +233,7 @@ do { \
_nl = X##_f << (_FP_W_TYPE_SIZE - 1); \
_nh = X##_f >> 1; \
} \
- \
+ \
udiv_qrnnd(_q, _r, _nh, _nl, _y); \
R##_f = _q | (_r != 0); \
} while (0)
@@ -255,14 +255,14 @@ do { \
udiv_qrnnd(_q, _r, _nh, _nl, Y##_f); \
R##_f = _q | (_r != 0); \
} while (0)
-
-
+
+
/*
* Square root algorithms:
* We have just one right now, maybe Newton approximation
* should be added for those machines where division is fast.
*/
-
+
#define _FP_SQRT_MEAT_1(R, S, T, X, q) \
do { \
while (q != _FP_WORK_ROUND) \
@@ -286,7 +286,7 @@ do { \
} while (0)
/*
- * Assembly/disassembly for converting to/from integral types.
+ * Assembly/disassembly for converting to/from integral types.
* No shifting or overflow handled here.
*/
diff --git a/libgcc/soft-fp/op-2.h b/libgcc/soft-fp/op-2.h
index 7c7a958..48e01d2 100644
--- a/libgcc/soft-fp/op-2.h
+++ b/libgcc/soft-fp/op-2.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Basic two-word fraction declaration and manipulation.
- Copyright (C) 1997,1998,1999,2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -145,7 +145,7 @@
#define _FP_MAXFRAC_2 (~(_FP_WS_TYPE)0), (~(_FP_WS_TYPE)0)
/*
- * Internals
+ * Internals
*/
#define __FP_FRAC_SET_2(X,I1,I0) (X##_f0 = I0, X##_f1 = I1)
@@ -348,7 +348,7 @@
point multiplication. This is useful if floating point
multiplication has much bigger throughput than integer multiply.
It is supposed to work for _FP_W_TYPE_SIZE 64 and wfracbits
- between 106 and 120 only.
+ between 106 and 120 only.
Caller guarantees that X and Y has (1LLL << (wfracbits - 1)) set.
SETFETZ is a macro which will disable all FPU exceptions and set rounding
towards zero, RESETFE should optionally reset it back. */
@@ -433,10 +433,10 @@
R##_f1 = (_t240 << (128 - (wfracbits - 1))) \
| ((_u240 & 0xffffff) >> ((wfracbits - 1) - 104)); \
R##_f0 = ((_u240 & 0xffffff) << (168 - (wfracbits - 1))) \
- | ((_v240 & 0xffffff) << (144 - (wfracbits - 1))) \
- | ((_w240 & 0xffffff) << (120 - (wfracbits - 1))) \
- | ((_x240 & 0xffffff) >> ((wfracbits - 1) - 96)) \
- | _y240; \
+ | ((_v240 & 0xffffff) << (144 - (wfracbits - 1))) \
+ | ((_w240 & 0xffffff) << (120 - (wfracbits - 1))) \
+ | ((_x240 & 0xffffff) >> ((wfracbits - 1) - 96)) \
+ | _y240; \
resetfe; \
} while (0)
@@ -544,7 +544,7 @@
* We have just one right now, maybe Newton approximation
* should be added for those machines where division is fast.
*/
-
+
#define _FP_SQRT_MEAT_2(R, S, T, X, q) \
do { \
while (q) \
@@ -586,7 +586,7 @@
/*
- * Assembly/disassembly for converting to/from integral types.
+ * Assembly/disassembly for converting to/from integral types.
* No shifting or overflow handled here.
*/
diff --git a/libgcc/soft-fp/op-4.h b/libgcc/soft-fp/op-4.h
index a81e7ab..007b01f 100644
--- a/libgcc/soft-fp/op-4.h
+++ b/libgcc/soft-fp/op-4.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Basic four-word fraction declaration and manipulation.
- Copyright (C) 1997,1998,1999,2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -81,7 +81,7 @@
} while (0)
-/* Right shift with sticky-lsb.
+/* Right shift with sticky-lsb.
* What this actually means is that we do a standard right-shift,
* but that if any of the bits that fall off the right hand side
* were one then we always set the LSbit.
@@ -435,7 +435,7 @@
* We have just one right now, maybe Newton approximation
* should be added for those machines where division is fast.
*/
-
+
#define _FP_SQRT_MEAT_4(R, S, T, X, q) \
do { \
while (q) \
@@ -481,7 +481,7 @@
S##_f[2] += (T##_f[1] > S##_f[1]); \
S##_f[3] += (T##_f[2] > S##_f[2]); \
__FP_FRAC_DEC_3(X##_f[3], X##_f[2], X##_f[1], \
- T##_f[3], T##_f[2], T##_f[1]); \
+ T##_f[3], T##_f[2], T##_f[1]); \
R##_f[1] += q; \
} \
_FP_FRAC_SLL_4(X, 1); \
@@ -516,7 +516,7 @@
/*
- * Internals
+ * Internals
*/
#define __FP_FRAC_SET_4(X,I3,I2,I1,I0) \
@@ -618,9 +618,9 @@
/* Convert FP values between word sizes. This appears to be more
* complicated than I'd have expected it to be, so these might be
* wrong... These macros are in any case somewhat bogus because they
- * use information about what various FRAC_n variables look like
+ * use information about what various FRAC_n variables look like
* internally [eg, that 2 word vars are X_f0 and x_f1]. But so do
- * the ones in op-2.h and op-1.h.
+ * the ones in op-2.h and op-1.h.
*/
#define _FP_FRAC_COPY_1_4(D, S) (D##_f = S##_f[0])
@@ -630,7 +630,7 @@ do { \
D##_f1 = S##_f[1]; \
} while (0)
-/* Assembly/disassembly for converting to/from integral types.
+/* Assembly/disassembly for converting to/from integral types.
* No shifting or overflow handled here.
*/
/* Put the FP value X into r, which is an integer of size rsize. */
diff --git a/libgcc/soft-fp/op-8.h b/libgcc/soft-fp/op-8.h
index 9643793..8890d02 100644
--- a/libgcc/soft-fp/op-8.h
+++ b/libgcc/soft-fp/op-8.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Basic eight-word fraction declaration and manipulation.
- Copyright (C) 1997,1998,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz) and
@@ -77,7 +77,7 @@
} while (0)
-/* Right shift with sticky-lsb.
+/* Right shift with sticky-lsb.
* What this actually means is that we do a standard right-shift,
* but that if any of the bits that fall off the right hand side
* were one then we always set the LSbit.
diff --git a/libgcc/soft-fp/op-common.h b/libgcc/soft-fp/op-common.h
index 12fb16e..c4acb99 100644
--- a/libgcc/soft-fp/op-common.h
+++ b/libgcc/soft-fp/op-common.h
@@ -1,5 +1,5 @@
/* Software floating-point emulation. Common operations.
- Copyright (C) 1997,1998,1999,2006,2007,2012 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
@@ -29,10 +29,22 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#define _FP_DECL(wc, X) \
- _FP_I_TYPE X##_c __attribute__((unused)), X##_s, X##_e; \
+#define _FP_DECL(wc, X) \
+ _FP_I_TYPE X##_c __attribute__((unused)); \
+ _FP_I_TYPE X##_s __attribute__((unused)); \
+ _FP_I_TYPE X##_e; \
_FP_FRAC_DECL_##wc(X)
+/* Test whether the qNaN bit denotes a signaling NaN. */
+#define _FP_FRAC_SNANP(fs, X) \
+ ((_FP_QNANNEGATEDP) \
+ ? (_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs) \
+ : !(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs))
+#define _FP_FRAC_SNANP_SEMIRAW(fs, X) \
+ ((_FP_QNANNEGATEDP) \
+ ? (_FP_FRAC_HIGH_##fs(X) & _FP_QNANBIT_SH_##fs) \
+ : !(_FP_FRAC_HIGH_##fs(X) & _FP_QNANBIT_SH_##fs))
+
/*
* Finish truely unpacking a native fp value by classifying the kind
* of fp value and normalizing both the exponent and the fraction.
@@ -72,7 +84,7 @@ do { \
{ \
X##_c = FP_CLS_NAN; \
/* Check for signaling NaN */ \
- if (!(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)) \
+ if (_FP_FRAC_SNANP(fs, X)) \
FP_SET_EXCEPTION(FP_EX_INVALID); \
} \
break; \
@@ -110,7 +122,7 @@ do { \
do { \
if (X##_e == _FP_EXPMAX_##fs \
&& !_FP_FRAC_ZEROP_##wc(X) \
- && !(_FP_FRAC_HIGH_##fs(X) & _FP_QNANBIT_SH_##fs)) \
+ && _FP_FRAC_SNANP_SEMIRAW(fs, X)) \
FP_SET_EXCEPTION(FP_EX_INVALID); \
} while (0)
@@ -125,6 +137,39 @@ do { \
_FP_FRAC_SLL_##wc(R, _FP_WORKBITS); \
} while (0)
+/* Make the fractional part a quiet NaN, preserving the payload
+ if possible, otherwise make it the canonical quiet NaN and set
+ the sign bit accordingly. */
+#define _FP_SETQNAN(fs, wc, X) \
+do { \
+ if (_FP_QNANNEGATEDP) \
+ { \
+ _FP_FRAC_HIGH_RAW_##fs(X) &= _FP_QNANBIT_##fs - 1; \
+ if (_FP_FRAC_ZEROP_##wc(X)) \
+ { \
+ X##_s = _FP_NANSIGN_##fs; \
+ _FP_FRAC_SET_##wc(X, _FP_NANFRAC_##fs); \
+ } \
+ } \
+ else \
+ _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs; \
+} while (0)
+#define _FP_SETQNAN_SEMIRAW(fs, wc, X) \
+do { \
+ if (_FP_QNANNEGATEDP) \
+ { \
+ _FP_FRAC_HIGH_##fs(X) &= _FP_QNANBIT_SH_##fs - 1; \
+ if (_FP_FRAC_ZEROP_##wc(X)) \
+ { \
+ X##_s = _FP_NANSIGN_##fs; \
+ _FP_FRAC_SET_##wc(X, _FP_NANFRAC_##fs); \
+ _FP_FRAC_SLL_##wc(X, _FP_WORKBITS); \
+ } \
+ } \
+ else \
+ _FP_FRAC_HIGH_##fs(X) |= _FP_QNANBIT_SH_##fs; \
+} while (0)
+
/* Test whether a biased exponent is normal (not zero or maximum). */
#define _FP_EXP_NORMAL(fs, wc, X) (((X##_e + 1) & _FP_EXPMAX_##fs) > 1)
@@ -157,7 +202,7 @@ do { \
X##_s = _FP_NANSIGN_##fs; \
} \
else \
- _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs; \
+ _FP_SETQNAN(fs, wc, X); \
} \
} while (0)
@@ -271,7 +316,7 @@ do { \
X##_s = _FP_NANSIGN_##fs; \
} \
else \
- _FP_FRAC_HIGH_RAW_##fs(X) |= _FP_QNANBIT_##fs; \
+ _FP_SETQNAN(fs, wc, X); \
break; \
} \
} while (0)
@@ -285,7 +330,7 @@ do { \
if (X##_e == _FP_EXPMAX_##fs) \
{ \
if (!_FP_FRAC_ZEROP_##wc(X) \
- && !(_FP_FRAC_HIGH_RAW_##fs(X) & _FP_QNANBIT_##fs)) \
+ && _FP_FRAC_SNANP(fs, X)) \
__ret = 1; \
} \
__ret; \
@@ -746,11 +791,11 @@ do { \
#define _FP_MUL(fs, wc, R, X, Y) \
do { \
R##_s = X##_s ^ Y##_s; \
+ R##_e = X##_e + Y##_e + 1; \
switch (_FP_CLS_COMBINE(X##_c, Y##_c)) \
{ \
case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NORMAL): \
R##_c = FP_CLS_NORMAL; \
- R##_e = X##_e + Y##_e + 1; \
\
_FP_MUL_MEAT_##fs(R,X,Y); \
\
@@ -809,11 +854,11 @@ do { \
#define _FP_DIV(fs, wc, R, X, Y) \
do { \
R##_s = X##_s ^ Y##_s; \
+ R##_e = X##_e - Y##_e; \
switch (_FP_CLS_COMBINE(X##_c, Y##_c)) \
{ \
case _FP_CLS_COMBINE(FP_CLS_NORMAL,FP_CLS_NORMAL): \
R##_c = FP_CLS_NORMAL; \
- R##_e = X##_e - Y##_e; \
\
_FP_DIV_MEAT_##fs(R,X,Y); \
break; \
@@ -947,37 +992,37 @@ do { \
case FP_CLS_NAN: \
_FP_FRAC_COPY_##wc(R, X); \
R##_s = X##_s; \
- R##_c = FP_CLS_NAN; \
- break; \
+ R##_c = FP_CLS_NAN; \
+ break; \
case FP_CLS_INF: \
- if (X##_s) \
- { \
- R##_s = _FP_NANSIGN_##fs; \
+ if (X##_s) \
+ { \
+ R##_s = _FP_NANSIGN_##fs; \
R##_c = FP_CLS_NAN; /* NAN */ \
_FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
FP_SET_EXCEPTION(FP_EX_INVALID); \
- } \
- else \
- { \
- R##_s = 0; \
- R##_c = FP_CLS_INF; /* sqrt(+inf) = +inf */ \
- } \
- break; \
+ } \
+ else \
+ { \
+ R##_s = 0; \
+ R##_c = FP_CLS_INF; /* sqrt(+inf) = +inf */ \
+ } \
+ break; \
case FP_CLS_ZERO: \
R##_s = X##_s; \
R##_c = FP_CLS_ZERO; /* sqrt(+-0) = +-0 */ \
break; \
case FP_CLS_NORMAL: \
- R##_s = 0; \
+ R##_s = 0; \
if (X##_s) \
{ \
- R##_c = FP_CLS_NAN; /* sNAN */ \
+ R##_c = FP_CLS_NAN; /* NAN */ \
R##_s = _FP_NANSIGN_##fs; \
_FP_FRAC_SET_##wc(R, _FP_NANFRAC_##fs); \
FP_SET_EXCEPTION(FP_EX_INVALID); \
break; \
} \
- R##_c = FP_CLS_NORMAL; \
+ R##_c = FP_CLS_NORMAL; \
if (X##_e & 1) \
_FP_FRAC_SLL_##wc(X, 1); \
R##_e = X##_e >> 1; \
@@ -1118,8 +1163,9 @@ do { \
{ \
/* Exactly representable; shift left. */ \
_FP_FRAC_DISASSEMBLE_##wc(X, ur_, rsize); \
- _FP_FRAC_SLL_##wc(X, (_FP_EXPBIAS_##fs \
- + _FP_FRACBITS_##fs - 1 - X##_e)); \
+ if (_FP_EXPBIAS_##fs + _FP_FRACBITS_##fs - 1 - X##_e > 0) \
+ _FP_FRAC_SLL_##wc(X, (_FP_EXPBIAS_##fs \
+ + _FP_FRACBITS_##fs - 1 - X##_e)); \
} \
else \
{ \
@@ -1197,7 +1243,7 @@ do { \
D##_e = _FP_EXPMAX_##dfs; \
if (!_FP_FRAC_ZEROP_##swc(S)) \
{ \
- if (!(_FP_FRAC_HIGH_RAW_##sfs(S) & _FP_QNANBIT_##sfs)) \
+ if (_FP_FRAC_SNANP(sfs, S)) \
FP_SET_EXCEPTION(FP_EX_INVALID); \
_FP_FRAC_SLL_##dwc(D, (_FP_FRACBITS_##dfs \
- _FP_FRACBITS_##sfs)); \
@@ -1284,7 +1330,7 @@ do { \
/* Semi-raw NaN must have all workbits cleared. */ \
_FP_FRAC_LOW_##dwc(D) \
&= ~(_FP_W_TYPE) ((1 << _FP_WORKBITS) - 1); \
- _FP_FRAC_HIGH_##dfs(D) |= _FP_QNANBIT_SH_##dfs; \
+ _FP_SETQNAN_SEMIRAW(dfs, dwc, D); \
} \
} \
} \
diff --git a/libgcc/soft-fp/quad.h b/libgcc/soft-fp/quad.h
index b05bd2d..f0aa07e 100644
--- a/libgcc/soft-fp/quad.h
+++ b/libgcc/soft-fp/quad.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Definitions for IEEE Quad Precision.
- Copyright (C) 1997,1998,1999,2006,2007,2012 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
diff --git a/libgcc/soft-fp/single.h b/libgcc/soft-fp/single.h
index 119d0db..dec0031 100644
--- a/libgcc/soft-fp/single.h
+++ b/libgcc/soft-fp/single.h
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Definitions for IEEE Single Precision.
- Copyright (C) 1997,1998,1999,2006,2012 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
diff --git a/libgcc/soft-fp/soft-fp.h b/libgcc/soft-fp/soft-fp.h
index 49a8770..b1c6e61 100644
--- a/libgcc/soft-fp/soft-fp.h
+++ b/libgcc/soft-fp/soft-fp.h
@@ -1,6 +1,5 @@
/* Software floating-point emulation.
- Copyright (C) 1997,1998,1999,2000,2002,2003,2005,2006,2007,2012
- Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com),
Jakub Jelinek (jj@ultra.linux.cz),
diff --git a/libgcc/soft-fp/subdf3.c b/libgcc/soft-fp/subdf3.c
index 9352b0a..032ac0f 100644
--- a/libgcc/soft-fp/subdf3.c
+++ b/libgcc/soft-fp/subdf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a - b
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/subsf3.c b/libgcc/soft-fp/subsf3.c
index 1182612..c9f56c7 100644
--- a/libgcc/soft-fp/subsf3.c
+++ b/libgcc/soft-fp/subsf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a - b
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/subtf3.c b/libgcc/soft-fp/subtf3.c
index 0d73d4b..a111d57 100644
--- a/libgcc/soft-fp/subtf3.c
+++ b/libgcc/soft-fp/subtf3.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return a - b
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/truncdfsf2.c b/libgcc/soft-fp/truncdfsf2.c
index 54015c1..e9a7223 100644
--- a/libgcc/soft-fp/truncdfsf2.c
+++ b/libgcc/soft-fp/truncdfsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Truncate IEEE double into IEEE single
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/trunctfdf2.c b/libgcc/soft-fp/trunctfdf2.c
index 16e817c..35c6496 100644
--- a/libgcc/soft-fp/trunctfdf2.c
+++ b/libgcc/soft-fp/trunctfdf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Truncate IEEE quad into IEEE double
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/trunctfsf2.c b/libgcc/soft-fp/trunctfsf2.c
index 82ef246..751c7c8 100644
--- a/libgcc/soft-fp/trunctfsf2.c
+++ b/libgcc/soft-fp/trunctfsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Truncate IEEE quad into IEEE single
- Copyright (C) 1997,1999,2006 Free Software Foundation, Inc.
+ Copyright (C) 1997-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson (rth@cygnus.com) and
Jakub Jelinek (jj@ultra.linux.cz).
diff --git a/libgcc/soft-fp/unorddf2.c b/libgcc/soft-fp/unorddf2.c
index 3036a2f..2e77f2d 100644
--- a/libgcc/soft-fp/unorddf2.c
+++ b/libgcc/soft-fp/unorddf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a or b is a NaN, 0 otherwise.
- Copyright (C) 2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 2006-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Joseph Myers (joseph@codesourcery.com).
diff --git a/libgcc/soft-fp/unordsf2.c b/libgcc/soft-fp/unordsf2.c
index c22578c..b5b5322 100644
--- a/libgcc/soft-fp/unordsf2.c
+++ b/libgcc/soft-fp/unordsf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a or b is a NaN, 0 otherwise.
- Copyright (C) 2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 2006-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Joseph Myers (joseph@codesourcery.com).
diff --git a/libgcc/soft-fp/unordtf2.c b/libgcc/soft-fp/unordtf2.c
index 8f9b5c6..1a85c25 100644
--- a/libgcc/soft-fp/unordtf2.c
+++ b/libgcc/soft-fp/unordtf2.c
@@ -1,6 +1,6 @@
/* Software floating-point emulation.
Return 1 iff a or b is a NaN, 0 otherwise.
- Copyright (C) 2006,2007 Free Software Foundation, Inc.
+ Copyright (C) 2006-2013 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Joseph Myers (joseph@codesourcery.com).