From owner-freebsd-threads@FreeBSD.ORG Wed Mar 3 21:12:06 2004 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A90D416A4CF for ; Wed, 3 Mar 2004 21:12:06 -0800 (PST) Received: from liberty.onthenet.com.au (liberty.OntheNet.com.au [203.22.124.10]) by mx1.FreeBSD.org (Postfix) with ESMTP id 24E6543D2F for ; Wed, 3 Mar 2004 21:12:06 -0800 (PST) (envelope-from grehan@freebsd.org) Received: from freebsd.org (CPE-30-38.dsl.onthenet.net [203.144.30.38]) i245C4ZG088656; Thu, 4 Mar 2004 15:12:05 +1000 (EST) (envelope-from grehan@freebsd.org) Message-ID: <4046BB39.9050608@freebsd.org> Date: Thu, 04 Mar 2004 15:14:33 +1000 From: Peter Grehan User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.3.1) Gecko/20030524 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Daniel Eischen References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: freebsd-threads@freebsd.org Subject: Re: User-space context switch and floating-point X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Mar 2004 05:12:06 -0000 > how do you generate code that does: > > double x, y; > > ... > x = y * 1.5 * sqrt(2.25) - 3.15 + pthread_mutex_lock(&m) + 1.25; Substitute integers for float and it's exactly the same problem and handled in the same way: the caller saves registers it is using for intermediate results prior to the mutex_lock and restores them on return according to the calling convention. > I don't know anything about PPC... It's generic RISC, similar to Alpha in terms of register usage. That's what made me wonder about not saving FP state in the Alpha code, but I now think that's a requirement if there are 2 or more threads using FP. That will be a big performance hit as per my routine comments so I'll do some experiments to see how severe it is and whether it can be alleviated. later, Peter.