[DGD] 64-bit platform question

bart at wotf.org bart at wotf.org
Mon Feb 22 11:24:56 CET 2010


Better question is: which platforms do support it.

http://www.codeguru.com/forum/showthread.php?t=390950 seems to agree with your
idea of why MS removed support for them, but also suggests there is a bit more
to it, being that SSE* doesn't support long double, only x86 fpu does, where
SSE* is nowadays the prefered way to do floating point and is where cpu
vendors are spending their time for optimizing performance.

Besides x86 I found that later 68k fpus do support long double natively.

Which other platforms do?

Also, there is the additional small issue of long double not being binary
transferable between systems with different byte order (solvable by conversion
I'd think)

I'd think that if the software side of wintel cares enough about other
architectures to not promote a wintel hardware feature, and even remove
support for it, that it is extremely likely those other architectures exist
and are being used enough to hold relevance to them.

I also do know that the system that runs my 'main' gurbalib development mud
has no hardware floating point support at all, and, that is actually a kind of
system that many consumers tend to have (often unwittingly) (arm based
'network attached storage' device running linux)

Bart.

On Sun, 21 Feb 2010 18:25:33 -0800, Shentino wrote
> On Sun, Feb 21, 2010 at 5:08 PM, Felix A. Croes <felix at dworkin.nl> wrote:
> 
> > bart at wotf.org wrote:
> >
> > > Its one of the reasons why 64bit lpc ints would be useful to have, even
> > with
> > > the availability of asn.
> > >
> > > I'd be glad to create a subproject for 64bit ints if someone wants to
> > make a
> > > start on this.
> >
> > I had already freed up two instructions for this.  Instruction 0 is
> > reserved for PUSH_INT8, and instruction 1 is for a big float.
> >
> > Big floats gave me trouble.  LPC floats must be capable of representing
> > all integer values without loss of precision, but not so large that they
> > increase the size of the value struct.  80 bits would be ideal, but only
> > one platform has native support for those.
> >
> 
> Just curious, what platforms don't support it?  And why?
> 
> I'm aware that the x86 FPU has hardware support for it, and that at 
> least in Visual C++, long doubles are silently coerced as doubles 
> (IMHO, cuz microsoft wussed out and handicapped itself for the sake 
> of non x86 archs).
> 
> Apart from those two tidbits though I know zilch.
> 
> Currently floating point arithmetic is all simulated in C (so that DGD
> > also offers floats on platforms without hardware floating point), which
> > is reasonably efficient.  I don't consider this to be an option for a
> > much larger mantissa, though.
> >
> > Regards,
> > Felix Croes
> > ___________________________________________
> > https://mail.dworkin.nl/mailman/listinfo/dgd
> >
> ___________________________________________
> https://mail.dworkin.nl/mailman/listinfo/dgd

--
Created with Open WebMail at http://www.bartsplace.net/
Read my weblog at http://soapbox.bartsplace.net/



More information about the DGD mailing list