]> granicus.if.org Git - libx264/commitdiff
faster SAD_INC_2x16P for amd64.
authorLoren Merritt <pengvado@videolan.org>
Wed, 13 Jul 2005 15:52:59 +0000 (15:52 +0000)
committerLoren Merritt <pengvado@videolan.org>
Wed, 13 Jul 2005 15:52:59 +0000 (15:52 +0000)
patch by Josef Zlomek.

git-svn-id: svn://svn.videolan.org/x264/trunk@274 df754926-b1dd-0310-bc7b-ec298dee348c

common/amd64/pixel-a.asm
common/i386/pixel-a.asm

index c5d8e776855593c8509a5fd3274375b0e9f73a00..432420bb6e8888feca3a772968a778e85b5a969b 100644 (file)
@@ -38,41 +38,29 @@ BITS 64
 
 %macro SAD_INC_2x16P 0
     movq    mm1,    [rax]
-    movq    mm2,    [rcx]
-    movq    mm3,    [rax+8]
-    movq    mm4,    [rcx+8]
-
-    psadbw  mm1,    mm2
-    psadbw  mm3,    mm4
-    paddw   mm0,    mm1
-    paddw   mm0,    mm3
-
-    movq    mm1,    [rax+rbx]
-    movq    mm2,    [rcx+rdx]
-    movq    mm3,    [rax+rbx+8]
-    movq    mm4,    [rcx+rdx+8]
-
-    psadbw  mm1,    mm2
-    psadbw  mm3,    mm4
-    paddw   mm0,    mm1
-    paddw   mm0,    mm3
-
+    movq    mm2,    [rax+8]
+    movq    mm3,    [rax+rbx]
+    movq    mm4,    [rax+rbx+8]
+    psadbw  mm1,    [rcx]
+    psadbw  mm2,    [rcx+8]
+    psadbw  mm3,    [rcx+rdx]
+    psadbw  mm4,    [rcx+rdx+8]
     lea     rax,    [rax+2*rbx]
+    paddw   mm1,    mm2
+    paddw   mm3,    mm4
     lea     rcx,    [rcx+2*rdx]
+    paddw   mm0,    mm1
+    paddw   mm0,    mm3
 %endmacro
 
 %macro SAD_INC_2x8P 0
     movq    mm1,    [rax]
-    movq    mm2,    [rcx]
-    movq    mm3,    [rax+rbx]
-    movq    mm4,    [rcx+rdx]
-
-    psadbw  mm1,    mm2
-    psadbw  mm3,    mm4
-    paddw   mm0,    mm1
-    paddw   mm0,    mm3
-
+    movq    mm2,    [rax+rbx]
+    psadbw  mm1,    [rcx]
+    psadbw  mm2,    [rcx+rdx]
     lea     rax,    [rax+2*rbx]
+    paddw   mm0,    mm1
+    paddw   mm0,    mm2
     lea     rcx,    [rcx+2*rdx]
 %endmacro
 
index 67c7068da01fd534b14a04713d1b0a34336e66c2..576757a76e317f5796ce529f47c25c8ae6c2a0f0 100644 (file)
@@ -49,22 +49,18 @@ BITS 32
     paddw   mm1,    mm2
     paddw   mm3,    mm4
     lea     ecx,    [ecx+2*edx]
-       paddw   mm0,    mm1
-       paddw   mm0,    mm3
+    paddw   mm0,    mm1
+    paddw   mm0,    mm3
 %endmacro
 
 %macro SAD_INC_2x8P 0
     movq    mm1,    [eax]
-    movq    mm2,    [ecx]
-    movq    mm3,    [eax+ebx]
-    movq    mm4,    [ecx+edx]
-
-    psadbw  mm1,    mm2
-    psadbw  mm3,    mm4
-    paddw   mm0,    mm1
-    paddw   mm0,    mm3
-
+    movq    mm2,    [eax+ebx]
+    psadbw  mm1,    [ecx]
+    psadbw  mm2,    [ecx+edx]
     lea     eax,    [eax+2*ebx]
+    paddw   mm0,    mm1
+    paddw   mm0,    mm2
     lea     ecx,    [ecx+2*edx]
 %endmacro