delorie.com/archives/browse.cgi | search |
Xref: | news2.mv.net comp.lang.c:54379 comp.lang.c++:69864 comp.os.msdos.djgpp:651 gnu.g++.help:4421 gnu.gcc.help:5635 |
From: | axl AT zedat DOT fu-berlin DOT de (Axel Thimm) |
Newsgroups: | comp.lang.c,comp.lang.c++,gnu.gcc.help,gnu.g++.help,comp.os.msdos.djgpp |
Subject: | Re: float != float and floats as return types |
Date: | Tue, 30 Jan 1996 13:19:40 GMT |
Organization: | FU Berlin |
Lines: | 25 |
Message-ID: | <4el5qt$j5j@fu-berlin.de> |
References: | <4ej9lb$mpc AT fu-berlin DOT de> |
Reply-To: | axl AT zedat DOT fu-berlin DOT de |
NNTP-Posting-Host: | axl.dialup.fu-berlin.de (160.45.218.93) |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Many thanks to all who have answered, I have received lots of mail about this. The problem is that gcc sometimes uses the coprocessor registers/stack to store floating point values. This is done in long double precision for i386. This should also happen with 68000 processors. This can be turned off in gcc with the following switch, which is rather self-explaining. -ffloat-store Do not store floating point variables in registers. This prevents undesirable excess precision on ma- chines such as the 68000 where the floating regis- ters (of the 68881) keep more precision than a dou- ble is supposed to have. For most programs, the excess precision does only good, but a few programs rely on the precise defi- nition of IEEE floating point. Use `-ffloat-store' for such programs. === Axel Thimm <axl AT zedat DOT fu-berlin DOT de> Freie Universitaet Berlin ===
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |