Vincent Lefevre writes: > Package: gcc-3.3 > Version: 1:3.3.3-1 > Severity: normal > > The gcc man page says: > > -ffloat-store > Do not store floating point variables in registers. This pre- > vents undesirable excess precision on machines such as the 68000 > where the floating registers (of the 68881) keep more precision > than a double is supposed to have. > > For most programs, the excess precision does only good, but a > few programs rely on the precise definition of IEEE floating > point. Use `-ffloat-store' for such programs. > > The second paragraph is incorrect. The IEEE754 standard has nothing > to do with that since it allows extended precision for intermediate > computations. This option just makes gcc more ISO C compliant, since > the ISO C forbids excess precision after an explicit conversion to > double (cast or affectation).
gcc-3.4 reads: -ffloat-store Do not store floating point variables in registers, and inhibit other options that might change whether a floating point value is taken from a register or memory. This option prevents undesirable excess precision on machines such as the 68000 where the floating registers (of the 68881) keep more precision than a "double" is supposed to have. Similarly for the x86 architecture. For most programs, the excess precision does only good, but a few programs rely on the precise definition of IEEE floating point. Use -ffloat-store for such programs, after modifying them to store all pertinent intermediate computations into variables.