[Haskell-cafe] question about Data.Binary and Double instance

Ian Lynagh igloo at earth.li
Sun Apr 22 17:43:23 EDT 2007


On Tue, Apr 17, 2007 at 11:42:40PM -0400, Brian Alliet wrote:
> 
> > Perhaps we just don't care about ARM or other arches where GHC runs that
> 
> Are there really any architectures supported by GHC that don't use IEEE
> floating point? If so GHC.Float is wrong as isIEEE is always true.

The one most likely to be non-IEEE is ARM, which has a middle-endian
representation; to make it explicit, it's the middle case here
(FLOAT_WORDS_BIGENDIAN but not WORDS_BIGENDIAN):

#if WORDS_BIGENDIAN
    unsigned int negative:1;
    unsigned int exponent:11;
    unsigned int mantissa0:20;
    unsigned int mantissa1:32;
#else
#if FLOAT_WORDS_BIGENDIAN
    unsigned int mantissa0:20;
    unsigned int exponent:11;
    unsigned int negative:1;
    unsigned int mantissa1:32;
#else
    unsigned int mantissa1:32;
    unsigned int mantissa0:20;
    unsigned int exponent:11;
    unsigned int negative:1;
#endif
#endif

Does anyone know if that makes it non-IEEE?


Thanks
Ian



More information about the Haskell-Cafe mailing list