]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR libgcc/60166 (ARM default NAN encoding violates EABI)
authorJoey Ye <joey.ye@arm.com>
Fri, 28 Feb 2014 21:53:40 +0000 (21:53 +0000)
committerJoey Ye <jye2@gcc.gnu.org>
Fri, 28 Feb 2014 21:53:40 +0000 (21:53 +0000)
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

libgcc/ChangeLog
libgcc/config/arm/sfp-machine.h

index 167e7a90b3c6ea1975d27292f54ff0d0d14c4994..2fe114e4a941a6afd10abab6be2b3d4ff0b041da 100644 (file)
@@ -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.
index 0323617336132d61f070c4dcad9fcf40c2f6b0fa..4f2b15d7e55d0c53176b382d51d676f3b13ad996 100644 (file)
@@ -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