comparison x86/lpc_mmx.c @ 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 94595d0e617c
children
comparison
equal deleted inserted replaced
10762:a4842fc20ac8 10763:98bf00fa95cd
87 __asm__ volatile( 87 __asm__ volatile(
88 "movsd "MANGLE(ff_pd_1)", %%xmm0 \n\t" 88 "movsd "MANGLE(ff_pd_1)", %%xmm0 \n\t"
89 "movsd "MANGLE(ff_pd_1)", %%xmm1 \n\t" 89 "movsd "MANGLE(ff_pd_1)", %%xmm1 \n\t"
90 "movsd "MANGLE(ff_pd_1)", %%xmm2 \n\t" 90 "movsd "MANGLE(ff_pd_1)", %%xmm2 \n\t"
91 "1: \n\t" 91 "1: \n\t"
92 "movapd (%4,%0), %%xmm3 \n\t" 92 "movapd (%2,%0), %%xmm3 \n\t"
93 "movupd -8(%5,%0), %%xmm4 \n\t" 93 "movupd -8(%3,%0), %%xmm4 \n\t"
94 "movapd (%5,%0), %%xmm5 \n\t" 94 "movapd (%3,%0), %%xmm5 \n\t"
95 "mulpd %%xmm3, %%xmm4 \n\t" 95 "mulpd %%xmm3, %%xmm4 \n\t"
96 "mulpd %%xmm3, %%xmm5 \n\t" 96 "mulpd %%xmm3, %%xmm5 \n\t"
97 "mulpd -16(%5,%0), %%xmm3 \n\t" 97 "mulpd -16(%3,%0), %%xmm3 \n\t"
98 "addpd %%xmm4, %%xmm1 \n\t" 98 "addpd %%xmm4, %%xmm1 \n\t"
99 "addpd %%xmm5, %%xmm0 \n\t" 99 "addpd %%xmm5, %%xmm0 \n\t"
100 "addpd %%xmm3, %%xmm2 \n\t" 100 "addpd %%xmm3, %%xmm2 \n\t"
101 "add $16, %0 \n\t" 101 "add $16, %0 \n\t"
102 "jl 1b \n\t" 102 "jl 1b \n\t"
104 "movhlps %%xmm1, %%xmm4 \n\t" 104 "movhlps %%xmm1, %%xmm4 \n\t"
105 "movhlps %%xmm2, %%xmm5 \n\t" 105 "movhlps %%xmm2, %%xmm5 \n\t"
106 "addsd %%xmm3, %%xmm0 \n\t" 106 "addsd %%xmm3, %%xmm0 \n\t"
107 "addsd %%xmm4, %%xmm1 \n\t" 107 "addsd %%xmm4, %%xmm1 \n\t"
108 "addsd %%xmm5, %%xmm2 \n\t" 108 "addsd %%xmm5, %%xmm2 \n\t"
109 "movsd %%xmm0, %1 \n\t" 109 "movsd %%xmm0, (%1) \n\t"
110 "movsd %%xmm1, %2 \n\t" 110 "movsd %%xmm1, 8(%1) \n\t"
111 "movsd %%xmm2, %3 \n\t" 111 "movsd %%xmm2, 16(%1) \n\t"
112 :"+&r"(i), "=m"(autoc[j]), "=m"(autoc[j+1]), "=m"(autoc[j+2]) 112 :"+&r"(i)
113 :"r"(data1+len), "r"(data1+len-j) 113 :"r"(autoc+j), "r"(data1+len), "r"(data1+len-j)
114 :"memory"
114 ); 115 );
115 } else { 116 } else {
116 __asm__ volatile( 117 __asm__ volatile(
117 "movsd "MANGLE(ff_pd_1)", %%xmm0 \n\t" 118 "movsd "MANGLE(ff_pd_1)", %%xmm0 \n\t"
118 "movsd "MANGLE(ff_pd_1)", %%xmm1 \n\t" 119 "movsd "MANGLE(ff_pd_1)", %%xmm1 \n\t"