changeset 10646:bb14c1586891 libavcodec

slightly faster scalarproduct_and_madd_int16_ssse3 on penryn, no change on conroe
author lorenm
date Sat, 05 Dec 2009 17:53:11 +0000
parents 6f958f237d7d
children 0139a62827ce
files x86/dsputil_yasm.asm
diffstat 1 files changed, 13 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/x86/dsputil_yasm.asm	Sat Dec 05 17:51:57 2009 +0000
+++ b/x86/dsputil_yasm.asm	Sat Dec 05 17:53:11 2009 +0000
@@ -202,12 +202,20 @@
     mova    m2, [v3q + orderq]
     mova    m3, [v3q + orderq + mmsize]
 %endif
-    pmaddwd m0, [v1q + orderq]
-    pmaddwd m1, [v1q + orderq + mmsize]
+    %define t0  [v1q + orderq]
+    %define t1  [v1q + orderq + mmsize]
+%ifdef ARCH_X86_64
+    mova    m8, t0
+    mova    m9, t1
+    %define t0  m8
+    %define t1  m9
+%endif
+    pmaddwd m0, t0
+    pmaddwd m1, t1
     pmullw  m2, m7
     pmullw  m3, m7
-    paddw   m2, [v1q + orderq]
-    paddw   m3, [v1q + orderq + mmsize]
+    paddw   m2, t0
+    paddw   m3, t1
     paddd   m6, m0
     paddd   m6, m1
     mova    [v1q + orderq], m2
@@ -219,7 +227,7 @@
 %endmacro
 
 ; int scalarproduct_and_madd_int16(int16_t *v1, int16_t *v2, int16_t *v3, int order, int mul)
-cglobal scalarproduct_and_madd_int16_ssse3, 4,5,8, v1, v2, v3, order, mul
+cglobal scalarproduct_and_madd_int16_ssse3, 4,5,10, v1, v2, v3, order, mul
     shl orderq, 1
     movd    m7, mulm
     pshuflw m7, m7, 0