On Fri, Feb 28, 2014 at 7:16 AM, Joey Ye <joey...@arm.com> wrote: > This patch is a mirror copy from approved patch in glibc: > http://sourceware.org/ml/libc-alpha/2014-02/msg00741.html > > OK to trunk, 4.8 and 4.7?
OK everywhere. Ramana > > ChangeLog.libgcc: > > * config/arm/sfp-machine.h (_FP_NANFRAC_H, > _FP_NANFRAC_S, _FP_NANFRAC_D, _FP_NANFRAC_Q): > Set to zero. > > diff --git a/libgcc/config/arm/sfp-machine.h > b/libgcc/config/arm/sfp-machine.h > index bb34895..8d45320 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 > > >