It's something to do with the 80-bit FP registers on x86, and a
legacy 16-bit carry word. So my memory serves, I could be
wrong.

Most architectures with an abundance of registers (SPARC, MIPS,
PowerPC) can just span across two FPU registers or use a SIMD unit.
128-bit values can be easily represented there and I am sure
this is the case on SPARC.

AMD64 even with it's improvements seems not to afford such "luxury"
items also there is some precision advantage to using a native 80bit
FPU and those legacy FPU registers are ONLY used to handle long
double math (everything else is done in the SSE unit).

-- 
Matt Sealey <[EMAIL PROTECTED]>
Manager, Genesi, Developer Relations


> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf 
> Of John Gilbert
> Sent: Wednesday, July 13, 2005 5:15 PM
> To: [email protected]
> Subject: [osol-code] long doubles on x86/AMD64 vs. SPARC
> 
> Hello,
> Is there an underlying hardware reason why 'long double' is 
> treated as 16 bytes on SPARC and 12 bytes on AMD64 and x86? 
> It seems to be the case with both gcc and Sun Studio compilers.
> Thanks.
> This message posted from opensolaris.org 
> _______________________________________________
> opensolaris-code mailing list
> [email protected]
> https://opensolaris.org:444/mailman/listinfo/opensolaris-code
> 

_______________________________________________
opensolaris-code mailing list
[email protected]
https://opensolaris.org:444/mailman/listinfo/opensolaris-code

Reply via email to