Subject: Re: IEEE FP on VAX? [was Re: Trouble by compiling/configuring Perl5
To: Matt Thomas <matt@3am-software.com>
From: Brian Chase <bdc@world.std.com>
List: port-vax
Date: 01/02/2001 15:24:18
On Tue, 2 Jan 2001, Matt Thomas wrote:
> At 01:02 PM 1/2/2001 -0500, Brian Chase wrote:

> >How would one go about doing an IEEE FP emulator for the VAX?  Obviously
> >this wouldn't be ideal in terms of performance but it would be useful.
> >Lots of FP dependent software assumes that you're using IEEE FP.  IMHO
> >this is more of a flaw in the software that makes that assumption.
>
> A lot of FP dependent software is wrong.  Considering how much engineering
> was done using VAX Fortran, I don't think you can say VAX FP is bad.  It's
> different from IEEE FP.  Most software never uses the IEEE rounding modes
> so it's not really an issue.

Oh, I'm definitely not saying it's bad.  I just know I've run into
problems with software wanting some type of IEEE support present before it
would work right.  POVray is an example of something I had difficulty in
getting to run under NetBSD/vax.

> >Maybe emulation is the wrong approach.  Would it be better to provide a
> >compile time library for programs wich need IEEE FP support?
>
> It would be very slow.

Eh, yeah.  Probably about as bad as when I was running Linux/i386 without
a mathco on a 386SX/16.  Likely a bit slower for the MicroVAX-II and
lesser machines, but still neat.

> >Given that we already have VAX FP instructions, I think that VAX based
> >IEEE support could be a lot faster in some cases than a purely integer
> >math based version.  You'd have to transform IEEE data into the VAX
> >format, run a VAX FP instruction, and then transform the result back into
> >IEEE.  I know it's more difficult than just that, but you should be able
> >leverage the existing FP support.
>
> VAX FP does many thing differently than IEEE FP so you can't use it to
> emulate IEEE FP.

Support exisits for IEEE FP on the Intel and ARM32 ports right?  The
386SX, 386DX, and 486SX processors don't support IEEE in hardware without
a mathco.  If they're emulating IEEE support using integer only
operations, I don't see why we couldn't do the same... only we'd be able
to add in VAX FP ops to speed things up a bit.  How much mileage could we
get out of doing the ops with the 128-bit H_float types, and then mapping
the results to smaller 32-bit and 64-bit IEEE formats?

> I have been thinking about adding G-Float libraries
> when I switch to ELF.  (I encode the executable float type in the ELF
> header so you can tell the difference and ld complain if you mix in
> the wrong types).  Note that the G float is closer in precision and
> range to IEEE FP double format.

Is the idea here that an executable would be able to dynamically link to
either G_float or D_float libraries depending on which 64-bit VAX FP type
the executable is expecting to use?  If so, that sounds interesting.

Under which circumstances would that be useful?

-brian.
--- Brian Chase | bdc@world.std.com | http://world.std.com/~bdc/ -----
 Doctor:   I'm afraid I've got really bad news. You have cancer
           and Alzheimer's.
 Patient:  Well... at least I don't have cancer.