2 synth_sse_float: SSE optimized synth (float output version)
4 copyright 1995-2009 by the mpg123 project - free software under the terms of the LGPL 2.1
5 see COPYING and AUTHORS files in distribution or http://mpg123.org
6 initially written by Taihei Monma
19 int synth_1to1_real_sse_asm(real *window, real *b0, real *samples, int bo1);
20 return value: number of clipped samples (0)
36 .globl ASM_NAME(synth_1to1_real_sse_asm)
37 ASM_NAME(synth_1to1_real_sse_asm):
45 movl 16(%ebp), SAMPLES
49 leal 64(WINDOW), WINDOW
56 movups (WINDOW), %xmm0
57 movups 16(WINDOW), %xmm1
58 movups 32(WINDOW), %xmm2
59 movups 48(WINDOW), %xmm3
60 movups 128(WINDOW), %xmm4
61 movups 144(WINDOW), %xmm5
62 movups 160(WINDOW), %xmm6
63 movups 176(WINDOW), %xmm7
81 leal 256(WINDOW), WINDOW
84 movups (WINDOW), %xmm0
85 movups 16(WINDOW), %xmm1
86 movups 32(WINDOW), %xmm2
87 movups 48(WINDOW), %xmm3
88 movups 128(WINDOW), %xmm6
89 movups 144(WINDOW), %xmm7
99 movups 160(WINDOW), %xmm1
100 movups 176(WINDOW), %xmm3
109 leal 256(WINDOW), WINDOW
114 unpcklps %xmm5, %xmm4
115 unpcklps %xmm7, %xmm6
116 unpckhps %xmm5, %xmm0
117 unpckhps %xmm7, %xmm1
128 movups (SAMPLES), %xmm1
129 movups 16(SAMPLES), %xmm2
130 mulps ASM_NAME(scale_sse), %xmm0
131 shufps $0xdd, %xmm2, %xmm1
133 unpcklps %xmm1, %xmm0
134 unpckhps %xmm1, %xmm2
135 movups %xmm0, (SAMPLES)
136 movups %xmm2, 16(SAMPLES)
138 leal 32(SAMPLES), SAMPLES
146 movups (WINDOW), %xmm0
147 movups 16(WINDOW), %xmm1
148 movups 32(WINDOW), %xmm2
149 movups 48(WINDOW), %xmm3
150 movups 128(WINDOW), %xmm4
151 movups 144(WINDOW), %xmm5
152 movups 160(WINDOW), %xmm6
153 movups 176(WINDOW), %xmm7
171 leal 256(WINDOW), WINDOW
174 movups (WINDOW), %xmm0
175 movups 16(WINDOW), %xmm1
176 movups 32(WINDOW), %xmm2
177 movups 48(WINDOW), %xmm3
178 movups 128(WINDOW), %xmm6
179 movups 144(WINDOW), %xmm7
189 movups 160(WINDOW), %xmm1
190 movups 176(WINDOW), %xmm3
199 leal 256(WINDOW), WINDOW
204 unpcklps %xmm5, %xmm4
205 unpcklps %xmm7, %xmm6
206 unpckhps %xmm5, %xmm0
207 unpckhps %xmm7, %xmm1
218 movups (SAMPLES), %xmm1
219 movups 16(SAMPLES), %xmm2
220 mulps ASM_NAME(scale_sse), %xmm0
221 shufps $0xdd, %xmm2, %xmm1
223 unpcklps %xmm1, %xmm0
224 unpckhps %xmm1, %xmm2
225 movups %xmm0, (SAMPLES)
226 movups %xmm2, 16(SAMPLES)
228 leal 32(SAMPLES), SAMPLES