Mercurial > libavcodec.hg
annotate x86/lpc_mmx.c @ 12481:e9a1e1ba768f libavcodec
Allow the lowres option to affect audio codecs, too
author | mstorsjo |
---|---|
date | Fri, 10 Sep 2010 06:19:31 +0000 |
parents | 98bf00fa95cd |
children |
rev | line source |
---|---|
10424
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
1 /* |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
2 * MMX optimized LPC DSP utils |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
3 * Copyright (c) 2007 Loren Merritt |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
4 * |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
5 * This file is part of FFmpeg. |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
6 * |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
7 * FFmpeg is free software; you can redistribute it and/or |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
8 * modify it under the terms of the GNU Lesser General Public |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
9 * License as published by the Free Software Foundation; either |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
10 * version 2.1 of the License, or (at your option) any later version. |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
11 * |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
12 * FFmpeg is distributed in the hope that it will be useful, |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
15 * Lesser General Public License for more details. |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
16 * |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
17 * You should have received a copy of the GNU Lesser General Public |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
18 * License along with FFmpeg; if not, write to the Free Software |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
20 */ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
21 |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
22 #include "libavutil/x86_cpu.h" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
23 #include "dsputil_mmx.h" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
24 |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
25 static void apply_welch_window_sse2(const int32_t *data, int len, double *w_data) |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
26 { |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
27 double c = 2.0 / (len-1.0); |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
28 int n2 = len>>1; |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
29 x86_reg i = -n2*sizeof(int32_t); |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
30 x86_reg j = n2*sizeof(int32_t); |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
31 __asm__ volatile( |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
32 "movsd %0, %%xmm7 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
33 "movapd "MANGLE(ff_pd_1)", %%xmm6 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
34 "movapd "MANGLE(ff_pd_2)", %%xmm5 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
35 "movlhps %%xmm7, %%xmm7 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
36 "subpd %%xmm5, %%xmm7 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
37 "addsd %%xmm6, %%xmm7 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
38 ::"m"(c) |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
39 ); |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
40 #define WELCH(MOVPD, offset)\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
41 __asm__ volatile(\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
42 "1: \n\t"\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
43 "movapd %%xmm7, %%xmm1 \n\t"\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
44 "mulpd %%xmm1, %%xmm1 \n\t"\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
45 "movapd %%xmm6, %%xmm0 \n\t"\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
46 "subpd %%xmm1, %%xmm0 \n\t"\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
47 "pshufd $0x4e, %%xmm0, %%xmm1 \n\t"\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
48 "cvtpi2pd (%3,%0), %%xmm2 \n\t"\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
49 "cvtpi2pd "#offset"*4(%3,%1), %%xmm3 \n\t"\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
50 "mulpd %%xmm0, %%xmm2 \n\t"\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
51 "mulpd %%xmm1, %%xmm3 \n\t"\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
52 "movapd %%xmm2, (%2,%0,2) \n\t"\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
53 MOVPD" %%xmm3, "#offset"*8(%2,%1,2) \n\t"\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
54 "subpd %%xmm5, %%xmm7 \n\t"\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
55 "sub $8, %1 \n\t"\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
56 "add $8, %0 \n\t"\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
57 "jl 1b \n\t"\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
58 :"+&r"(i), "+&r"(j)\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
59 :"r"(w_data+n2), "r"(data+n2)\ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
60 ); |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
61 if(len&1) |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
62 WELCH("movupd", -1) |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
63 else |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
64 WELCH("movapd", -2) |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
65 #undef WELCH |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
66 } |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
67 |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
68 void ff_lpc_compute_autocorr_sse2(const int32_t *data, int len, int lag, |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
69 double *autoc) |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
70 { |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
71 double tmp[len + lag + 2]; |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
72 double *data1 = tmp + lag; |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
73 int j; |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
74 |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
75 if((x86_reg)data1 & 15) |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
76 data1++; |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
77 |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
78 apply_welch_window_sse2(data, len, data1); |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
79 |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
80 for(j=0; j<lag; j++) |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
81 data1[j-lag]= 0.0; |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
82 data1[len] = 0.0; |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
83 |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
84 for(j=0; j<lag; j+=2){ |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
85 x86_reg i = -len*sizeof(double); |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
86 if(j == lag-2) { |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
87 __asm__ volatile( |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
88 "movsd "MANGLE(ff_pd_1)", %%xmm0 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
89 "movsd "MANGLE(ff_pd_1)", %%xmm1 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
90 "movsd "MANGLE(ff_pd_1)", %%xmm2 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
91 "1: \n\t" |
10763
98bf00fa95cd
Reduce number of ASM constraints for ff_lpc_compute_autocorr_sse2 since it
reimar
parents:
10424
diff
changeset
|
92 "movapd (%2,%0), %%xmm3 \n\t" |
98bf00fa95cd
Reduce number of ASM constraints for ff_lpc_compute_autocorr_sse2 since it
reimar
parents:
10424
diff
changeset
|
93 "movupd -8(%3,%0), %%xmm4 \n\t" |
98bf00fa95cd
Reduce number of ASM constraints for ff_lpc_compute_autocorr_sse2 since it
reimar
parents:
10424
diff
changeset
|
94 "movapd (%3,%0), %%xmm5 \n\t" |
10424
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
95 "mulpd %%xmm3, %%xmm4 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
96 "mulpd %%xmm3, %%xmm5 \n\t" |
10763
98bf00fa95cd
Reduce number of ASM constraints for ff_lpc_compute_autocorr_sse2 since it
reimar
parents:
10424
diff
changeset
|
97 "mulpd -16(%3,%0), %%xmm3 \n\t" |
10424
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
98 "addpd %%xmm4, %%xmm1 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
99 "addpd %%xmm5, %%xmm0 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
100 "addpd %%xmm3, %%xmm2 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
101 "add $16, %0 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
102 "jl 1b \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
103 "movhlps %%xmm0, %%xmm3 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
104 "movhlps %%xmm1, %%xmm4 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
105 "movhlps %%xmm2, %%xmm5 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
106 "addsd %%xmm3, %%xmm0 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
107 "addsd %%xmm4, %%xmm1 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
108 "addsd %%xmm5, %%xmm2 \n\t" |
10763
98bf00fa95cd
Reduce number of ASM constraints for ff_lpc_compute_autocorr_sse2 since it
reimar
parents:
10424
diff
changeset
|
109 "movsd %%xmm0, (%1) \n\t" |
98bf00fa95cd
Reduce number of ASM constraints for ff_lpc_compute_autocorr_sse2 since it
reimar
parents:
10424
diff
changeset
|
110 "movsd %%xmm1, 8(%1) \n\t" |
98bf00fa95cd
Reduce number of ASM constraints for ff_lpc_compute_autocorr_sse2 since it
reimar
parents:
10424
diff
changeset
|
111 "movsd %%xmm2, 16(%1) \n\t" |
98bf00fa95cd
Reduce number of ASM constraints for ff_lpc_compute_autocorr_sse2 since it
reimar
parents:
10424
diff
changeset
|
112 :"+&r"(i) |
98bf00fa95cd
Reduce number of ASM constraints for ff_lpc_compute_autocorr_sse2 since it
reimar
parents:
10424
diff
changeset
|
113 :"r"(autoc+j), "r"(data1+len), "r"(data1+len-j) |
98bf00fa95cd
Reduce number of ASM constraints for ff_lpc_compute_autocorr_sse2 since it
reimar
parents:
10424
diff
changeset
|
114 :"memory" |
10424
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
115 ); |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
116 } else { |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
117 __asm__ volatile( |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
118 "movsd "MANGLE(ff_pd_1)", %%xmm0 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
119 "movsd "MANGLE(ff_pd_1)", %%xmm1 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
120 "1: \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
121 "movapd (%3,%0), %%xmm3 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
122 "movupd -8(%4,%0), %%xmm4 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
123 "mulpd %%xmm3, %%xmm4 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
124 "mulpd (%4,%0), %%xmm3 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
125 "addpd %%xmm4, %%xmm1 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
126 "addpd %%xmm3, %%xmm0 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
127 "add $16, %0 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
128 "jl 1b \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
129 "movhlps %%xmm0, %%xmm3 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
130 "movhlps %%xmm1, %%xmm4 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
131 "addsd %%xmm3, %%xmm0 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
132 "addsd %%xmm4, %%xmm1 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
133 "movsd %%xmm0, %1 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
134 "movsd %%xmm1, %2 \n\t" |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
135 :"+&r"(i), "=m"(autoc[j]), "=m"(autoc[j+1]) |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
136 :"r"(data1+len), "r"(data1+len-j) |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
137 ); |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
138 } |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
139 } |
94595d0e617c
Move autocorrelation function from flacenc.c to lpc.c. Also rename the
jbr
parents:
diff
changeset
|
140 } |