On Sun, Apr 22, 2007 at 10:43:23PM +0100, Ian Lynagh wrote: > 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?
AIUI, ieee754 talks about high bits and low bits, not first or last bytes, which means that it is endianness independant. this also means that ieee754 values are endian dependant - we'll have to swap them into network byte order before saving, if we're on a le host. Stefan _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe