Wed Mar 22 16:28:46 2006 Søren Sandmann <sandmann@redhat.com>
Use inline assembly for copy area, since gcc doesn't generate movq instructions.
This commit is contained in:
parent
5b3084c64f
commit
5449634e3c
|
@ -1,3 +1,8 @@
|
||||||
|
Wed Mar 22 16:28:46 2006 Søren Sandmann <sandmann@redhat.com>
|
||||||
|
|
||||||
|
* fb/fbmmx.c (fbCopyAreammx): Use inline assembly for copy area,
|
||||||
|
since gcc doesn't generate movq instructions.
|
||||||
|
|
||||||
Wed Mar 22 16:05:09 2006 Søren Sandmann <sandmann@redhat.com>
|
Wed Mar 22 16:05:09 2006 Søren Sandmann <sandmann@redhat.com>
|
||||||
|
|
||||||
* fb/fbmmx.c (fbSolidFillmmx): Use inline assembly for solid
|
* fb/fbmmx.c (fbSolidFillmmx): Use inline assembly for solid
|
||||||
|
|
32
fb/fbmmx.c
32
fb/fbmmx.c
|
@ -2235,14 +2235,30 @@ fbCopyAreammx (DrawablePtr pSrc,
|
||||||
|
|
||||||
while (w >= 64)
|
while (w >= 64)
|
||||||
{
|
{
|
||||||
*(__m64 *)(d + 0) = *(__m64 *)(s + 0);
|
__asm__ (
|
||||||
*(__m64 *)(d + 8) = *(__m64 *)(s + 8);
|
"movq (%1), %%mm0\n"
|
||||||
*(__m64 *)(d + 16) = *(__m64 *)(s + 16);
|
"movq 8(%1), %%mm1\n"
|
||||||
*(__m64 *)(d + 24) = *(__m64 *)(s + 24);
|
"movq 16(%1), %%mm2\n"
|
||||||
*(__m64 *)(d + 32) = *(__m64 *)(s + 32);
|
"movq 24(%1), %%mm3\n"
|
||||||
*(__m64 *)(d + 40) = *(__m64 *)(s + 40);
|
"movq 32(%1), %%mm4\n"
|
||||||
*(__m64 *)(d + 48) = *(__m64 *)(s + 48);
|
"movq 40(%1), %%mm5\n"
|
||||||
*(__m64 *)(d + 56) = *(__m64 *)(s + 56);
|
"movq 48(%1), %%mm6\n"
|
||||||
|
"movq 56(%1), %%mm7\n"
|
||||||
|
|
||||||
|
"movq %%mm0, (%0)\n"
|
||||||
|
"movq %%mm1, 8(%0)\n"
|
||||||
|
"movq %%mm2, 16(%0)\n"
|
||||||
|
"movq %%mm3, 24(%0)\n"
|
||||||
|
"movq %%mm4, 32(%0)\n"
|
||||||
|
"movq %%mm5, 40(%0)\n"
|
||||||
|
"movq %%mm6, 48(%0)\n"
|
||||||
|
"movq %%mm7, 56(%0)\n"
|
||||||
|
:
|
||||||
|
: "r" (d), "r" (s)
|
||||||
|
: "memory",
|
||||||
|
"%mm0", "%mm1", "%mm2", "%mm3",
|
||||||
|
"%mm4", "%mm5", "%mm6", "%mm7");
|
||||||
|
|
||||||
w -= 64;
|
w -= 64;
|
||||||
s += 64;
|
s += 64;
|
||||||
d += 64;
|
d += 64;
|
||||||
|
|
Loading…
Reference in New Issue