From owner-cvs-src@FreeBSD.ORG Thu May 1 10:26:29 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 477F637B401; Thu, 1 May 2003 10:26:29 -0700 (PDT) Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3218E43F3F; Thu, 1 May 2003 10:26:25 -0700 (PDT) (envelope-from bde@zeta.org.au) Received: from katana.zip.com.au (katana.zip.com.au [61.8.7.246]) by mailman.zeta.org.au (8.9.3p2/8.8.7) with ESMTP id DAA23442; Fri, 2 May 2003 03:26:22 +1000 Date: Fri, 2 May 2003 03:26:21 +1000 (EST) From: Bruce Evans X-X-Sender: bde@gamplex.bde.org To: "David O'Brien" In-Reply-To: <20030501155422.GB43607@dragon.nuxi.com> Message-ID: <20030502030109.B20181@gamplex.bde.org> References: <200304301621.h3UGL3Kl034314@repoman.freebsd.org> <20030501155422.GB43607@dragon.nuxi.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: cvs-src@FreeBSD.org cc: Maxim Sobolev cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/lib/libc/amd64/gen fabs.S modf.S X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 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, 01 May 2003 17:26:29 -0000 On Thu, 1 May 2003, David O'Brien wrote: > On Thu, May 01, 2003 at 02:24:23AM +0300, Maxim Sobolev wrote: > > Does this mean that it is theoretically possible to use those > > and other similar functions on SSE2-capable ia32 processors, such > > as p4, instead of x87 FPU ones? > > Probably. You'll have to do a little /%r/%e/ action. Not to mention changing the i386 calling convention. But you wouldn't want to use these and other similar functions on SSEn-capable ia32 processors, since they don't use SSEn except for using SSE1 registers to pessimize the function call protocol a little for at least the callee (the callee has to do extra work to move values from wrong registers via the stack). Perhaps other unsimilar functions get more benefits from SSE. BTW, is it really safe to use negative stack offsets for scratch variables ? Where is the signal stack? fabs() and some other functions use negative stack offsets, but modf() uses a normal frame pointer. Bruce