Followup on i386 vs. m68k floating point crap

Charles M. Hannum root@ihack.net
Sat Sep 26 21:42:00 GMT 1998


`So I was bored.'

If you compare figure 1-12 in the `M68000 Family Programmer's
Reference Manual' and figure 6-11 in the `Pentium Processor Reference
Manual, Vol 3', you'll see that the two extended-precision formats
really are the same.  Or at least they look that way.

It turns out there's a difference in underflow handling.

On the i387, all positive extended-precision values below 2^-16382 are
represented with a biased exponent of 0 and an integer bit of 0;
i.e. they are denormalized.  Numbers with a biased exponent of 0 and
the integer bit set to 1 are undefined.

On the m68882, extended-precision numbers with an exponent of 0 and
the integer bit set to 1 are valid, and are consider normalized.

Thus, on the i387, the smallest normalized number is 2^-16382, whereas
on the m68882 it's 2^-16383.

I believe the i387 behaviour is actually the correct one according to
IEEE 854, but that's sort of a moot point.

So, I retract my previous comment.  Your include files are correct.
B-)




More information about the Gcc mailing list