From: Joey Ye Date: Fri, 28 Feb 2014 22:05:13 +0000 (+0000) Subject: backport: re PR libgcc/60166 (ARM default NAN encoding violates EABI) X-Git-Tag: releases/gcc-4.7.4~219 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=70952949a1826c0bee0b4573da137eaa2e05ce7b;p=thirdparty%2Fgcc.git backport: re PR libgcc/60166 (ARM default NAN encoding violates EABI) 2014-02-28 Joey Ye Backport from mainline r208229 2014-02-28 Joey Ye 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: r208233 --- diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 87f3eab99795..f87f51d82638 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,13 @@ +014-02-28 Joey Ye + + Backport from mainline r208229 + 2014-02-28 Joey Ye + + PR libgcc/60166 + * config/arm/sfp-machine.h (_FP_NANFRAC_H, + _FP_NANFRAC_S, _FP_NANFRAC_D, _FP_NANFRAC_Q): + Set to zero. + 2014-01-25 Walter Lee Backport from mainline diff --git a/libgcc/config/arm/sfp-machine.h b/libgcc/config/arm/sfp-machine.h index a89d05a00ba3..8591ab439e99 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