This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: floating point war casualty list


A couple of comments on a couple of points that have been mentioned.

"VAX F float is IEEE format" -- I don't actually know IEEE format, but
I have a VAX and a PDP11 architecture reference manual.  VAX F is VAX
D with the low order 32 mantissa bits lopped off.  In particular, the
order of the 16-bit halves, and the layout of exponent bits in the low
order 16 bits, is the same for F and D.  Currently I'm not seeing that
in gcc, at least not in the pdp11 case when I set that to VAX format
float.  (I haven't yet tried to build it for target=vax.)

"PDP11/40 FPU weirdness" -- the PDP11/40 FPU option is a different
instruction set from the "real" FPP, and functionally a tiny subset.
As for data format, it implements the same F format that other PDP11s
and VAX have.  (It omits D format.)

"G and H format" -- that was a later addition to the VAX
architecture.  G has more exponents bits and fewer mantissa bits than
D; H has an even bigger exponent than G and of course way more
mantissa bits.  PDP11s (with the 11/45 style "full" FPU) do F and D
only. 

"infinity and NaN" -- I don't see any signs of infinity in my VAX
architecture manual.  Zero with sign bit set is NaN, which will trap
if you enable that.  (If I read it right, real.c requires infinity
support to enable NaN support, so for its purposes, VAX format has
neither.) 

	  paul


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]