On 02/21/2010 12:13 PM, Richard Guenther wrote:
> On Sun, Feb 21, 2010 at 1:06 PM, Geert Bosch <bo...@adacore.com> wrote:
>>
>> On Feb 21, 2010, at 06:18, Steven Bosscher wrote:
>>> My point: gcc may fail to attract users (and/or may be losing users)
>>> when it tries to tailor to the needs of minorities.
>>>
>>> IMHO it would be much more reasonable to change the defaults to
>>> generate code that can run on, say, 95% of the computers still in use.
>>> If a user want to use the latest-and-greatest gcc for a really old
>>> machine, the burden of adding extra flags to change the default
>>> behavior of the compiler should be on that user.
>>>
>>> In this case of the i386 back end, that probably means changing the
>>> default to something like pentium3.
>>
>> The biggest change we need to make for x86 is to enable SSE2,
>> so we can get proper rounding behavior for float and double,
>> as well as significant performance increases.
> 
> I think Joseph fixed the rounding behavior for 4.5.  Also without an adjusted
> ABI you'd introduce x87 <-> SSE register moves which are not helpful
> for performance.

Exactly.  For example,

double plus(double a, double b)
{
  return a+b;
}

plus:
        pushl   %ebp
        movl    %esp, %ebp
        subl    $8, %esp
        movsd   16(%ebp), %xmm0
        addsd   8(%ebp), %xmm0
        movsd   %xmm0, -8(%ebp)
        fldl    -8(%ebp)
        leave
        ret

Andrew.

Reply via email to