On 29 June 2012 14:13, Andreas Färber <afaer...@suse.de> wrote: > Am 28.06.2012 01:00, schrieb Catalin Patulea: >> /*---------------------------------------------------------------------------- >> +| Returns 1 if the extended double-precision floating-point value `a' is an >> +| unsupported; otherwise returns 0. >> +*----------------------------------------------------------------------------*/ >> +int floatx80_is_unsupported(floatx80 a) >> +{ >> + return (extractFloatx80Exp(a) && >> + !(extractFloatx80Frac(a) & LIT64(0x8000000000000000))); >> +} > > Disclaimer: It's been a while that I had to learn IEEE 754. > > Unsupported for some i386 instruction? Or unsupported in the SoftFloat > library due to some limitation?
It means 'unsupported' in the sense of "Unsupported Double Extended-Precision Floating-Point Encodings", ie there are some bit patterns in a floatx80 which are not valid floating point numbers of any kind, and the Intel documentation calls these "unsupported". See section 8.2.2 in "Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 1" 253665-034US. -- PMM