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
