aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/x86/lpc_mmx.c
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2010-01-02 17:48:08 +0000
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2010-01-02 17:48:08 +0000
commit4a1289450a0597fa915891ea9ce1e254a80d8f5e (patch)
tree53bb8514bb9261014ac7b40cac401a37970eb968 /libavcodec/x86/lpc_mmx.c
parentcd44b2e307ea9ff042cae7cb11d5400fa6332481 (diff)
downloadffmpeg-4a1289450a0597fa915891ea9ce1e254a80d8f5e.tar.gz
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. Originally committed as revision 21003 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/x86/lpc_mmx.c')
-rw-r--r--libavcodec/x86/lpc_mmx.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/libavcodec/x86/lpc_mmx.c b/libavcodec/x86/lpc_mmx.c
index 40fc678b7c..2ef5fa6de3 100644
--- a/libavcodec/x86/lpc_mmx.c
+++ b/libavcodec/x86/lpc_mmx.c
@@ -89,12 +89,12 @@ void ff_lpc_compute_autocorr_sse2(const int32_t *data, int len, int lag,
"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 @@ void ff_lpc_compute_autocorr_sse2(const int32_t *data, int len, int lag,
"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(