------- Comment #9 from brian at dessent dot net 2008-03-07 01:20 ------- Subject: A incorrect result in a simple division, only in 32-bit gcc.
> Although I knew GCC use 80-bit format internally, I thought the result should > be same in 80-bit format. No, it's not that gcc uses 80 bit or 64 bit "internally". It's that the i387 does computations for 64 bit double types in 80 bit extended mode by default. So it's not gcc that determines this, or that gcc changed anything and suddenly decided "to support 64-bit internal foramt in GCC 4.x version." gcc's double precision type has always been and always will be 64 bits on 32 bit i386. That has not changed in 4.x. It's a matter of how the i387 hardware is configured. The -mpc64 switch changes nothing about gcc's internal representation, it simply emits extra code to set some fp registers to tell the hardware not to use extended precision. This is not a change in gcc per se. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35488