cvs commit: src/sys/i386/include _types.h

Colin Percival cperciva at freebsd.org
Thu Mar 6 02:46:09 UTC 2008


Bruce Evans wrote:
> On Wed, 5 Mar 2008, Colin Percival wrote:
>> Bruce Evans wrote:
>>>   Change float_t and double_t to long double on i386.
>>
>> Doesn't this have a rather severe performance impact on any code which
>> uses double_t?
> 
> No.  As mentioned in the commit message, this has no performance effect
> except in cases where it avoids compiler bugs.  [...] if you use long double
> for memory variables then you get a severe performance impact and some
> space loss for the load instruction, since loading long doubles is
> much slower than loading doubles (about 4 times slower on Athlons).

Either I'm misunderstanding something, or you seem to be disagreeing with
yourself here... if I have the following code

double_t foo, bar, foobar;
foobar = foo + bar;

then prior to this change the processor loads and stores doubles, while
after this change the processor loads and stores long doubles, with the
associated performance penalty.

Colin Percival



More information about the cvs-src mailing list