This is the mail archive of the
mailing list for the GCC project.
vax double precision broken
- From: Stephen L Moshier <steve at moshier dot net>
- To: <gcc at gcc dot gnu dot org>
- Date: Wed, 29 May 2002 17:49:02 -0400 (EDT)
- Subject: vax double precision broken
While checking the ASM_OUTPUT_DOUBLE macros I glossed over the vax
because I thought I knew it. The microvax at FSF went to Valhalla
somewhere around gcc-2.6, however, so I had begun to lose track then.
What seems to have happened later is that a support for switchable
D or G format double precision was installed.
Since our emulation is not switchable at present (due to sundry items
like TARGET_FLOAT_FORMAT being macros instead of variables), the
REAL_ARITHMETIC feature has to be turned off. That has been made
impossible. Also the format switching depended on a printf statement that
used to be in the ASM_OUTPUT_DOUBLE macro that no longer exists.
The gcc command line switch flags are still there, but nothing much will
happen if you exercise them. Therefore vax is now broken, in the same way
that alpha and convex are broken.
Regarding the question about single precision, the binary data structure
that we produce matches what we found on three different vaxen
at the time the emulator was written. It is definitely _not_ the same
as pdp-11 data structure. From the beginning, vax offered a pdp-11
emulation mode that gave you both single and double precision
pdp-11 numbers; but that was not the default. I am now speculating
without having the books in front of me, but the default as I
remember it gave you an IBM-compatible single precision that later was
the basis of IEEE single precision format. Vaxen go back to about 1979,
while IEEE 754 was adopted in 1985.