From owner-cvs-src@FreeBSD.ORG Fri Feb 22 11:59:06 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 61FB016A400; Fri, 22 Feb 2008 11:59:06 +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 59AC013C442; Fri, 22 Feb 2008 11:59:06 +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 m1MBx6PY089463; Fri, 22 Feb 2008 11:59:06 GMT (envelope-from bde@repoman.freebsd.org) Received: (from bde@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m1MBx6il089462; Fri, 22 Feb 2008 11:59:06 GMT (envelope-from bde) Message-Id: <200802221159.m1MBx6il089462@repoman.freebsd.org> From: Bruce Evans Date: Fri, 22 Feb 2008 11:59:06 +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/lib/msun/src s_rintl.c 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: Fri, 22 Feb 2008 11:59:06 -0000 bde 2008-02-22 11:59:05 UTC FreeBSD src repository Modified files: lib/msun/src s_rintl.c Log: Optimize the conversion to bits a little (by about 11 cycles or 16% on i386 (A64), 5 cycles on amd64 (A64), and 3 cycles on ia64). gcc tends to generate very bad code for accessing floating point values as bits except when the integer accesses have the same width as the floating point values, and direct accesses to bit-fields (as is common only for long double precision) always gives such accesses. Use the expsign access method, which is good for 80-bit long doubles and hopefully no worse for 128-bit long doubles. Now the generated code is less bad. There is still unnecessary copying of the arg on amd64 and i386 and mysterious extra slowness on amd64. Revision Changes Path 1.5 +13 -5 src/lib/msun/src/s_rintl.c