aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
authorJoey Ye <joey.ye@arm.com>2014-02-28 21:53:40 +0000
committerJoey Ye <jye2@gcc.gnu.org>2014-02-28 21:53:40 +0000
commitdc11d79b74fd394b522b6bec8c5da3474a205d22 (patch)
treea69088cc5b4d8371c964023d23a0e7cf86fb7d3e /libgcc
parent3c3f892bf083c7df33c50347ed106c54fc9ed941 (diff)
downloadgcc-dc11d79b74fd394b522b6bec8c5da3474a205d22.zip
gcc-dc11d79b74fd394b522b6bec8c5da3474a205d22.tar.gz
gcc-dc11d79b74fd394b522b6bec8c5da3474a205d22.tar.bz2
re PR libgcc/60166 (ARM default NAN encoding violates EABI)
2014-02-28 Joey Ye <joey.ye@arm.com> PR libgcc/60166 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANFRAC_S, _FP_NANFRAC_D, _FP_NANFRAC_Q): Set to zero. From-SVN: r208229
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog7
-rw-r--r--libgcc/config/arm/sfp-machine.h10
2 files changed, 13 insertions, 4 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 167e7a9..2fe114e 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,10 @@
+2014-02-28 Joey Ye <joey.ye@arm.com>
+
+ PR libgcc/60166
+ * config/arm/sfp-machine.h (_FP_NANFRAC_H,
+ _FP_NANFRAC_S, _FP_NANFRAC_D, _FP_NANFRAC_Q):
+ Set to zero.
+
2014-02-24 Walter Lee <walt@tilera.com>
* config.host: Support "tilegx*" and "tilepro*" triplets.
diff --git a/libgcc/config/arm/sfp-machine.h b/libgcc/config/arm/sfp-machine.h
index 0323617..4f2b15d 100644
--- a/libgcc/config/arm/sfp-machine.h
+++ b/libgcc/config/arm/sfp-machine.h
@@ -19,10 +19,12 @@ typedef int __gcc_CMPtype __attribute__ ((mode (__libgcc_cmp_return__)));
#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_H ((_FP_QNANBIT_H << 1) - 1)
-#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
+/* According to RTABI, QNAN is only with the most significant bit of the
+ significand set, and all other significand bits zero. */
+#define _FP_NANFRAC_H 0
+#define _FP_NANFRAC_S 0
+#define _FP_NANFRAC_D 0, 0
+#define _FP_NANFRAC_Q 0, 0, 0, 0
#define _FP_NANSIGN_H 0
#define _FP_NANSIGN_S 0
#define _FP_NANSIGN_D 0