From owner-cvs-src@FreeBSD.ORG Thu Mar 6 06:33:38 2008 Return-Path: Delivered-To: cvs-src@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D506F106566C; Thu, 6 Mar 2008 06:33:38 +0000 (UTC) (envelope-from das@FreeBSD.ORG) Received: from zim.MIT.EDU (ZIM.MIT.EDU [18.95.3.101]) by mx1.freebsd.org (Postfix) with ESMTP id 783038FC1B; Thu, 6 Mar 2008 06:33:38 +0000 (UTC) (envelope-from das@FreeBSD.ORG) Received: from zim.MIT.EDU (localhost [127.0.0.1]) by zim.MIT.EDU (8.14.2/8.14.2) with ESMTP id m266YqOJ048713; Thu, 6 Mar 2008 01:34:52 -0500 (EST) (envelope-from das@FreeBSD.ORG) Received: (from das@localhost) by zim.MIT.EDU (8.14.2/8.14.2/Submit) id m266Yqdm048712; Thu, 6 Mar 2008 01:34:52 -0500 (EST) (envelope-from das@FreeBSD.ORG) Date: Thu, 6 Mar 2008 01:34:52 -0500 From: David Schultz To: Colin Percival Message-ID: <20080306063452.GB48339@zim.MIT.EDU> Mail-Followup-To: Colin Percival , Peter Jeremy , Bruce Evans , src-committers@FreeBSD.ORG, cvs-src@FreeBSD.ORG, cvs-all@FreeBSD.ORG References: <200803051121.m25BLE03035426@repoman.freebsd.org> <20080305182531.GS68971@server.vk2pj.dyndns.org> <20080306021222.GA46783@zim.MIT.EDU> <47CF5D19.3090100@freebsd.org> <20080306033246.GA47280@zim.MIT.EDU> <47CF7EBF.6000009@freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <47CF7EBF.6000009@freebsd.org> Cc: Peter Jeremy , src-committers@FreeBSD.ORG, Bruce Evans , cvs-all@FreeBSD.ORG, cvs-src@FreeBSD.ORG Subject: Re: cvs commit: src/sys/i386/include _types.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Mar 2008 06:33:39 -0000 On Wed, Mar 05, 2008, Colin Percival wrote: > Setting the i387 FPU to 53-bit precision gives standards-compliant > behaviour whether people are using "double" or "long double". Not quite. > Yes and no. Double rounding isn't allowed; Yes, it is. > > The downside is that this breaks long doubles. > > Except that it doesn't. Using 53-bit precision for long doubles is > a perfectly valid and standards-compliant option. It's impossible to implement efficient library functions that produce correct long double results when the FPU is set to 64-bit mode and avoid double rounding and related problems when the FPU is set to 53-bit mode. (Many of these functions use bit fiddling, or range checks that are based on the expected width of the type, for example.) In practice, there are other impediments to making long doubles work correctly, such as constant folding and gcc's lack of support for FENV_ACCESS.