[Info-vax] Current VMS engineering quality, was: Re: What's VMS up to these
glen herrmannsfeldt
gah at ugcs.caltech.edu
Tue Mar 20 08:19:07 EDT 2012
Michael Kraemer <M.Kraemer at gsi.de> wrote:
(snip, I wrote)
>> Also, for S/360, an early C target after the PDP-11, floating point
>> registers are double precision, though you can do single precision
>> arithmetic on them. The single precision multiply instruction always
>> generates a double precision product. It takes two extra instructions
>> and one extra register to zero out the low bits of the product, as
>> many compilers for other languages do.
> Really?
> Iirc there are the MDR and MER instructions, both operating on the same
> register set (0,2,4,6), but in the single precision case only 32 bits
> are used. It's easier than with IEEE, because the exponent is the same
> (16**+-64).
MER generates a double length product from two single length operands.
Much more recently, late in the ESA/390 years, MEER was added to
generate a single precision product. I don't remember if it zeros
the low bits or just leaves them alone.
See:
ftp://public.dhe.ibm.com/software/websphere/awdtools/hlasm/sh93fpov.pdf
It seems that MEE and MEER were added about the same time as
IEEE (BFP) around 1999.
Otherwise, you SDR to clear a register and then LER to copy the
high order half over after MER. That is, at least, what Fortran
and PL/I compilers do.
That is only needed if you need the value for other double precision
operations. If you store it with STE then there is no problem.
If you want the extra precision, it also isn't a problem.
-- glen
More information about the Info-vax
mailing list