From owner-freebsd-current Thu Mar 14 21:31:14 2002 Delivered-To: freebsd-current@freebsd.org Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by hub.freebsd.org (Postfix) with ESMTP id 672F237B400; Thu, 14 Mar 2002 21:31:10 -0800 (PST) Received: from bde.zeta.org.au (bde.zeta.org.au [203.2.228.102]) by mailman.zeta.org.au (8.9.3/8.8.7) with ESMTP id QAA18378; Fri, 15 Mar 2002 16:30:58 +1100 Date: Fri, 15 Mar 2002 16:32:29 +1100 (EST) From: Bruce Evans X-X-Sender: To: "ozan s. yigit" Cc: Steve Kargl , , Subject: Re: gcc -O broken in CURRENT In-Reply-To: <200203141846.g2EIkbI08862@zonzorp.canada.sun.com> Message-ID: <20020315160900.G22865-100000@gamplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Thu, 14 Mar 2002, ozan s. yigit wrote: > > Add the -ffloat-store flag to your compilation flags (or > > add -msoft-float). > > that really means for this compiler on certain platforms, you > can have slow and correct or fast and incorrect, but NOT fast > and correct. I think fast and correct is impossible on i386's. "Correct" requires assignments and casts to discard any extra precision, and the fastest way to implement this is probably to store to memory and reload. The -ffloat-store kludge only does a subset of the necessary conversions. Doing them all would be slower and correct, which is why gcc doesn't do them. C90 can be read as permitting this incorrectness, but C99 doesn't permit it. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message