[MPlayer-dev-eng] [PATCH] x86_64 mmx/sse/3dnow optimisation support

Aurelien Jacobs aurel at gnuage.org
Wed Oct 13 01:08:33 CEST 2004


On Tue, 12 Oct 2004 22:51:59 +0200
Reimar Döffinger <Reimar.Doeffinger at stud.uni-karlsruhe.de> wrote:

> >>>-               : "S" (y), "D" (dst), "a" (u), "b" (v), "d" (&us),
> >>>"c" (w/16)
> >>>+               : "S" (y), "D" (dst), "a" (u), "b" (v),
> >>>"c" (w/16),
> >>>+#ifdef ARCH_X86_64
> >>>+               "d" (us), "r" (vs)
> >>>+#else
> >>>+               "d" (&us)
> >>>+#endif
> >>
> >>Weird. Why was this done this way? Because your X86_64 version works
> >>on my AMD Athlon, too... I think this difference shouldn't be
> >there...
> > 
> > I thought it was done that way because all registers were allready
> > used. In fact esp and ebp was not used but I thought they couldn't
> > be used.
> 
> I think ecx isn't used... you could consider specifying it explicitly

Probably the too long line for a mail has hide you this ;-)
"c" (w/16)
So yes, ecx IS used !

> > I used anoter way on x86_64 because of the bigger number of GPR.
> 
> Just out of interest: which registers does it have in addition?

eax... are extended to the 64 bits rax...
r8 to r15 are new 64 bits GPR (you can use r8d, r8w or r8b if you
want 32, 16 or 8 bits register).
There are also two times more SSE registers (xmm8 to xmm15).

> Thanks for explaining.

Thanks for the patch review :-)

Aurel




More information about the MPlayer-dev-eng mailing list