From owner-cvs-all@FreeBSD.ORG Wed Jul 5 20:06:43 2006 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CE06516A4DA; Wed, 5 Jul 2006 20:06:43 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 21F1143D6B; Wed, 5 Jul 2006 20:06:43 +0000 (GMT) (envelope-from bde@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k65K6gRs044436; Wed, 5 Jul 2006 20:06:42 GMT (envelope-from bde@repoman.freebsd.org) Received: (from bde@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k65K6gpa044435; Wed, 5 Jul 2006 20:06:42 GMT (envelope-from bde) Message-Id: <200607052006.k65K6gpa044435@repoman.freebsd.org> From: Bruce Evans Date: Wed, 5 Jul 2006 20:06:42 +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/i387 Makefile.inc e_scalb.S e_scalbf.S 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: Wed, 05 Jul 2006 20:06:43 -0000 bde 2006-07-05 20:06:42 UTC FreeBSD src repository Modified files: lib/msun/i387 Makefile.inc Removed files: lib/msun/i387 e_scalb.S e_scalbf.S Log: Removed the optimized asm versions of scalb() and scalbf(). These functions are only for compatibility with obsolete standards. They shouldn't be used, so they shouldn't be optimized. Use the generic versions instead. This fixes scalbf() as a side effect. The optimized asm version left garbage on the FP stack. I fixed the corresponding bug in the optimized asm scalb() and scalbn() in 1996. NetBSD fixed it in scalb(), scalbn() and scalbnf() in 1999 but missed fixing it in scalbf(). Then in 2005 the bug was reimplemented in FreeBSD by importing NetBSD's scalbf(). The generic versions have slightly different error handling: - the asm versions blindly round the second parameter to a (floating point) integer and proceed, while the generic versions return NaN if this rounding changes the value. POSIX permits both behaviours (these functions are XSI extensions and the behaviour for a bogus non-integral second parameter is unspecified). Apart from this and the bug in scalbf(), the behaviour of the generic versions seems to be identical. (I only exhusatively tested generic_scalbf(1.0F, anyfloat) == asm_scalb(1.0F, anyfloat). This covers many representative corner cases involving NaNs and Infs but doesn't test exception flags. The brokenness of scalbf() showed up as weird behaviour after testing just 7 integer cases sequentially.) Revision Changes Path 1.9 +2 -2 src/lib/msun/i387/Makefile.inc 1.9 +0 -45 src/lib/msun/i387/e_scalb.S (dead) 1.3 +0 -15 src/lib/msun/i387/e_scalbf.S (dead)