Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 04 Mar 2004 15:14:33 +1000
From:      Peter Grehan <grehan@freebsd.org>
To:        Daniel Eischen <eischen@vigrid.com>
Cc:        freebsd-threads@freebsd.org
Subject:   Re: User-space context switch and floating-point
Message-ID:  <4046BB39.9050608@freebsd.org>
In-Reply-To: <Pine.GSO.4.10.10403032332380.22172-100000@pcnet5.pcnet.com>
References:  <Pine.GSO.4.10.10403032332380.22172-100000@pcnet5.pcnet.com>

next in thread | previous in thread | raw e-mail | index | archive | help
 > 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.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4046BB39.9050608>