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

Reply via email to