From owner-cvs-all@FreeBSD.ORG Fri Jan 11 18:59:35 2008 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A193116A418; Fri, 11 Jan 2008 18:59:35 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8F8A913C478; Fri, 11 Jan 2008 18:59:35 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m0BIxZgs035687; Fri, 11 Jan 2008 18:59:35 GMT (envelope-from bde@repoman.freebsd.org) Received: (from bde@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m0BIxZqu035686; Fri, 11 Jan 2008 18:59:35 GMT (envelope-from bde) Message-Id: <200801111859.m0BIxZqu035686@repoman.freebsd.org> From: Bruce Evans Date: Fri, 11 Jan 2008 18:59:35 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/i386/include ieeefp.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jan 2008 18:59:35 -0000 bde 2008-01-11 18:59:35 UTC FreeBSD src repository Modified files: sys/i386/include ieeefp.h Log: MFamd64 (everything possible up to 1.19; mainly the amd64 implementations of fpget*() and fpset*()). The i386 fpget*() were efficient but a bit obfuscated (using macros and a case statement to demultiplex them through a single inline). The demultiplexing mainly gave smaller source code. The i386 fpset*() were obfuscated in the same way and were very inefficient due to the case statement not having enough cases or complexity so all cases used the FP environment. This also fixes a harmless bug in rev.1.12. fpsetmask() extracted the old value from the bit-field twice, but the doubled shift was harmless since the shift count is 0. All fp*() interfaces are now inline functions on i386. They used to be macros that call (a different set of) inline functions. This is a small ABI change which shouldn't cause problems since cases where inlining fails (mainly -O0) only give (working) static functions. Revision Changes Path 1.14 +103 -61 src/sys/i386/include/ieeefp.h