Richard Guenther wrote:

Oh, so we used to expand to 3dnow?  I see with gcc 3.4 produced:

foo:
       pushl   %ebp
       movl    %esp, %ebp
       pushl   %ebx
       subl    $84, %esp
       movl    12(%ebp), %eax
       movl    16(%ebp), %edx
[...]
       movq    -64(%ebp), %mm0
       movl    %ebx, -72(%ebp)
       movl    -36(%ebp), %ebx
       movl    %ebx, -68(%ebp)
       pfadd   -72(%ebp), %mm0
       movq    %mm0, -56(%ebp)
       movl    12(%eax), %eax
etc.

This doesn't happen anymore with 4.0/4.1.


IIRC, any generic code that produces MMX or 3DNow! instructions is disabled ATM, because gcc doesn't know how/when to insert emms/femms instruction. You don't want to mix 3dNow insns with x87 insn and use shared 3DNow/x87 registers without this insn...

Uros.

Reply via email to