changeset 10763:98bf00fa95cd libavcodec

Reduce number of ASM constraints for ff_lpc_compute_autocorr_sse2 since it causes no significant speed difference and can avoid compilation issues with --enable-pic.
author reimar
date Sat, 02 Jan 2010 17:48:08 +0000
parents a4842fc20ac8
children 4546d91de818
files x86/lpc_mmx.c
diffstat 1 files changed, 10 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/x86/lpc_mmx.c	Sat Jan 02 12:15:09 2010 +0000
+++ b/x86/lpc_mmx.c	Sat Jan 02 17:48:08 2010 +0000
@@ -89,12 +89,12 @@
                 "movsd    "MANGLE(ff_pd_1)", %%xmm1 \n\t"
                 "movsd    "MANGLE(ff_pd_1)", %%xmm2 \n\t"
                 "1:                                 \n\t"
-                "movapd   (%4,%0), %%xmm3           \n\t"
-                "movupd -8(%5,%0), %%xmm4           \n\t"
-                "movapd   (%5,%0), %%xmm5           \n\t"
+                "movapd   (%2,%0), %%xmm3           \n\t"
+                "movupd -8(%3,%0), %%xmm4           \n\t"
+                "movapd   (%3,%0), %%xmm5           \n\t"
                 "mulpd     %%xmm3, %%xmm4           \n\t"
                 "mulpd     %%xmm3, %%xmm5           \n\t"
-                "mulpd -16(%5,%0), %%xmm3           \n\t"
+                "mulpd -16(%3,%0), %%xmm3           \n\t"
                 "addpd     %%xmm4, %%xmm1           \n\t"
                 "addpd     %%xmm5, %%xmm0           \n\t"
                 "addpd     %%xmm3, %%xmm2           \n\t"
@@ -106,11 +106,12 @@
                 "addsd     %%xmm3, %%xmm0           \n\t"
                 "addsd     %%xmm4, %%xmm1           \n\t"
                 "addsd     %%xmm5, %%xmm2           \n\t"
-                "movsd     %%xmm0, %1               \n\t"
-                "movsd     %%xmm1, %2               \n\t"
-                "movsd     %%xmm2, %3               \n\t"
-                :"+&r"(i), "=m"(autoc[j]), "=m"(autoc[j+1]), "=m"(autoc[j+2])
-                :"r"(data1+len), "r"(data1+len-j)
+                "movsd     %%xmm0,   (%1)           \n\t"
+                "movsd     %%xmm1,  8(%1)           \n\t"
+                "movsd     %%xmm2, 16(%1)           \n\t"
+                :"+&r"(i)
+                :"r"(autoc+j), "r"(data1+len), "r"(data1+len-j)
+                :"memory"
             );
         } else {
             __asm__ volatile(