From owner-p4-projects@FreeBSD.ORG Mon Jul 21 19:31:59 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 00BC037B404; Mon, 21 Jul 2003 19:31:58 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8E8D237B401 for ; Mon, 21 Jul 2003 19:31:58 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3458E43F93 for ; Mon, 21 Jul 2003 19:31:58 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6M2Vw0U029534 for ; Mon, 21 Jul 2003 19:31:58 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6M2VvI0029531 for perforce@freebsd.org; Mon, 21 Jul 2003 19:31:57 -0700 (PDT) Date: Mon, 21 Jul 2003 19:31:57 -0700 (PDT) Message-Id: <200307220231.h6M2VvI0029531@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 34807 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 Jul 2003 02:32:00 -0000 http://perforce.freebsd.org/chv.cgi?CH=34807 Change 34807 by peter@peter_daintree on 2003/07/21 19:31:08 Use the defaults for FPU precision. Also, drop support 80287 coprocessors. Affected files ... .. //depot/projects/hammer/sys/amd64/include/npx.h#8 edit Differences ... ==== //depot/projects/hammer/sys/amd64/include/npx.h#8 (text+ko) ==== @@ -85,16 +85,17 @@ * 64-bit precision * all exceptions masked. * - * We modify the affine mode bit and precision bits in this to give: + * FreeBSD/i386 uses 53 bit precision for things like fadd/fsub/fsqrt etc + * because of the difference between memory and fpu register stack arguments. + * If its using an intermediate fpu register, it has 80/64 bits to work + * with. If it uses memory, it has 64/53 bits to work with. However, + * gcc is aware of this and goes to a fair bit of trouble to make the + * best use of it. * - * affine mode for 287's (if they work at all) (1 in bitfield 1<<12) - * 53-bit precision (2 in bitfield 3<<8) - * - * 64-bit precision often gives bad results with high level languages - * because it makes the results of calculations depend on whether - * intermediate values are stored in memory or in FPU registers. + * This is mostly academic for AMD64, because the ABI prefers the use + * SSE2 based math. For FreeBSD/amd64, we go with the default settings. */ -#define __INITIAL_NPXCW__ 0x127F +#define __INITIAL_NPXCW__ 0x037F #define __INITIAL_MXCSR__ 0x1F80 #define __INITIAL_MXCSR_MASK__ 0xFFBF