1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 * Copyright (C) 2007 by Tomasz Malesinski
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
18 ****************************************************************************/
22 /* This performs slower in IRAM on PP502x and there is no space in
23 mpegplayer on the PP5002 */
24 #if defined(CPU_PP502x) || (CONFIG_CPU == PP5002 && defined(MPEGPLAYER)) || defined(TOSHIBA_GIGABEAT_F)
25 .section .text,"ax",%progbits
27 .section .icode,"ax",%progbits
39 stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr}
41 ldr r5, =synth_full_sp
48 ldmia r1!, {r10, r11, r12, lr}
55 smlal r6, r7, r11, r10
57 smlal r6, r7, r12, r10
62 smlal r8, r9, r11, r10
64 smlal r8, r9, r12, r10
68 ldmia r1!, {r11, r12, sp, lr}
70 smlal r6, r7, r11, r10
72 smlal r6, r7, r12, r10
79 smlal r8, r9, r11, r10
81 smlal r8, r9, r12, r10
90 ldmia r2!, {r11, r12, sp, lr}
93 smlal r6, r7, r11, r10
95 smlal r6, r7, r12, r10
102 smlal r8, r9, r11, r10
104 smlal r8, r9, r12, r10
106 smlal r8, r9, sp, r10
108 smlal r8, r9, lr, r10
110 ldmia r2!, {r11, r12, sp, lr}
112 smlal r6, r7, r11, r10
114 smlal r6, r7, r12, r10
116 smlal r6, r7, sp, r10
118 smlal r6, r7, lr, r10
121 smlal r8, r9, r11, r10
123 smlal r8, r9, r12, r10
125 smlal r8, r9, sp, r10
127 smlal r8, r9, lr, r10
130 adc r6, r6, r7, lsl #16
131 str r6, [r0, -r5, lsl #2]
134 adc r8, r8, r9, lsl #16
135 str r8, [r0, r5, lsl #2]
140 ldr r5, =synth_full_sp
142 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12, pc}
145 stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr}
147 ldr r5, =synth_full_sp
154 ldmia r1!, {r10, r11, r12, lr}
156 smull r6, r7, r10, r7
158 smull r8, r9, r10, r9
161 smlal r6, r7, r11, r10
163 smlal r6, r7, r12, r10
165 smlal r6, r7, lr, r10
168 smlal r8, r9, r11, r10
170 smlal r8, r9, r12, r10
172 smlal r8, r9, lr, r10
174 ldmia r1!, {r11, r12, sp, lr}
176 smlal r6, r7, r11, r10
178 smlal r6, r7, r12, r10
180 smlal r6, r7, sp, r10
182 smlal r6, r7, lr, r10
185 smlal r8, r9, r11, r10
187 smlal r8, r9, r12, r10
189 smlal r8, r9, sp, r10
191 smlal r8, r9, lr, r10
196 ldmia r2!, {r11, r12, sp, lr}
199 smlal r6, r7, r11, r10
201 smlal r6, r7, r12, r10
203 smlal r6, r7, sp, r10
205 smlal r6, r7, lr, r10
208 smlal r8, r9, r11, r10
210 smlal r8, r9, r12, r10
212 smlal r8, r9, sp, r10
214 smlal r8, r9, lr, r10
216 ldmia r2!, {r11, r12, sp, lr}
218 smlal r6, r7, r11, r10
220 smlal r6, r7, r12, r10
222 smlal r6, r7, sp, r10
224 smlal r6, r7, lr, r10
227 smlal r8, r9, r11, r10
229 smlal r8, r9, r12, r10
231 smlal r8, r9, sp, r10
233 smlal r8, r9, lr, r10
236 adc r6, r6, r7, lsl #16
237 str r6, [r0, -r5, lsl #2]
240 adc r8, r8, r9, lsl #16
241 str r8, [r0, r5, lsl #2]
246 ldr r5, =synth_full_sp
248 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12, pc}
250 .global III_aliasreduce
253 stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr}
254 add r1, r0, r1, lsl #2
266 smull r10, r11, r7, r8
267 smlal r10, r11, r12, r9
268 movs r10, r10, lsr #28
269 adc r10, r10, r11, lsl #4
272 smull r11, r8, r12, r8
273 smlal r11, r8, r7, r9
274 movs r11, r11, lsr #28
275 adc r11, r11, r8, lsl #4
278 smull r12, r7, lr, r8
279 smlal r12, r7, r6, r9
280 movs r12, r12, lsr #28
281 adc r12, r12, r7, lsl #4
282 stmia r4!, {r10, r12}
285 smull r7, r10, r6, r8
286 smlal r7, r10, lr, r9
288 adc r7, r7, r10, lsl #4
296 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12, pc}
318 stmdb sp!, {r4, r5, r6, r7, r8, lr}
319 add r2, r2, r3, lsl #2
322 ldmia r0!, {r4, r5, r6}
323 ldmia r1!, {r7, r8, lr}
333 ldmia r0!, {r4, r5, r6, r7, r8, lr}
334 stmia r1!, {r4, r5, r6, r7, r8, lr}
335 ldmia r0!, {r4, r5, r6, r7, r8, lr}
336 stmia r1!, {r4, r5, r6, r7, r8, lr}
337 ldmia r0!, {r4, r5, r6, r7, r8, lr}
338 stmia r1!, {r4, r5, r6, r7, r8, lr}
339 ldmia sp!, {r4, r5, r6, r7, r8, pc}
341 .section .ibss,"aw",%nobits