1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 * Copyright (C) 2007 by Tomasz Malesinski
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
24 .section ICODE_SECTION_MPA_ARM,"ax",%progbits
35 stmdb sp!, {r4-r11, lr}
37 ldr r5, =synth_full_sp
44 ldmia r1!, {r10, r11, r12, lr}
51 smlal r6, r7, r11, r10
53 smlal r6, r7, r12, r10
58 smlal r8, r9, r11, r10
60 smlal r8, r9, r12, r10
64 ldmia r1!, {r11, r12, sp, lr}
66 smlal r6, r7, r11, r10
68 smlal r6, r7, r12, r10
75 smlal r8, r9, r11, r10
77 smlal r8, r9, r12, r10
86 ldmia r2!, {r11, r12, sp, lr}
89 smlal r6, r7, r11, r10
91 smlal r6, r7, r12, r10
98 smlal r8, r9, r11, r10
100 smlal r8, r9, r12, r10
102 smlal r8, r9, sp, r10
104 smlal r8, r9, lr, r10
106 ldmia r2!, {r11, r12, sp, lr}
108 smlal r6, r7, r11, r10
110 smlal r6, r7, r12, r10
112 smlal r6, r7, sp, r10
114 smlal r6, r7, lr, r10
117 smlal r8, r9, r11, r10
119 smlal r8, r9, r12, r10
121 smlal r8, r9, sp, r10
123 smlal r8, r9, lr, r10
126 adc r6, r6, r7, lsl #16
127 str r6, [r0, -r5, lsl #2]
130 adc r8, r8, r9, lsl #16
131 str r8, [r0, r5, lsl #2]
136 ldr r5, =synth_full_sp
138 ldmia sp!, {r4-r11, pc}
141 stmdb sp!, {r4-r11, lr}
143 ldr r5, =synth_full_sp
150 ldmia r1!, {r10, r11, r12, lr}
152 smull r6, r7, r10, r7
154 smull r8, r9, r10, r9
157 smlal r6, r7, r11, r10
159 smlal r6, r7, r12, r10
161 smlal r6, r7, lr, r10
164 smlal r8, r9, r11, r10
166 smlal r8, r9, r12, r10
168 smlal r8, r9, lr, r10
170 ldmia r1!, {r11, r12, sp, lr}
172 smlal r6, r7, r11, r10
174 smlal r6, r7, r12, r10
176 smlal r6, r7, sp, r10
178 smlal r6, r7, lr, r10
181 smlal r8, r9, r11, r10
183 smlal r8, r9, r12, r10
185 smlal r8, r9, sp, r10
187 smlal r8, r9, lr, r10
192 ldmia r2!, {r11, r12, sp, lr}
195 smlal r6, r7, r11, r10
197 smlal r6, r7, r12, r10
199 smlal r6, r7, sp, r10
201 smlal r6, r7, lr, r10
204 smlal r8, r9, r11, r10
206 smlal r8, r9, r12, r10
208 smlal r8, r9, sp, r10
210 smlal r8, r9, lr, r10
212 ldmia r2!, {r11, r12, sp, lr}
214 smlal r6, r7, r11, r10
216 smlal r6, r7, r12, r10
218 smlal r6, r7, sp, r10
220 smlal r6, r7, lr, r10
223 smlal r8, r9, r11, r10
225 smlal r8, r9, r12, r10
227 smlal r8, r9, sp, r10
229 smlal r8, r9, lr, r10
232 adc r6, r6, r7, lsl #16
233 str r6, [r0, -r5, lsl #2]
236 adc r8, r8, r9, lsl #16
237 str r8, [r0, r5, lsl #2]
242 ldr r5, =synth_full_sp
244 ldmia sp!, {r4-r11, pc}
246 .global III_aliasreduce
249 stmdb sp!, {r4-r11, lr}
250 add r1, r0, r1, lsl #2
262 smull r10, r11, r7, r8
263 smlal r10, r11, r12, r9
264 movs r10, r10, lsr #28
265 adc r10, r10, r11, lsl #4
268 smull r11, r8, r12, r8
269 smlal r11, r8, r7, r9
270 movs r11, r11, lsr #28
271 adc r11, r11, r8, lsl #4
274 smull r12, r7, lr, r8
275 smlal r12, r7, r6, r9
276 movs r12, r12, lsr #28
277 adc r12, r12, r7, lsl #4
278 stmia r4!, {r10, r12}
281 smull r7, r10, r6, r8
282 smlal r7, r10, lr, r9
284 adc r7, r7, r10, lsl #4
292 ldmia sp!, {r4-r11, pc}
314 stmdb sp!, {r4-r7, lr}
315 add r2, r2, r3, lsl #2
318 ldmia r0!, {r4, r5, r6}
319 ldmia r1!, {r7, r12, lr}
329 ldmia r0!, {r4, r5, r6, r7, r12, lr}
330 stmia r1!, {r4, r5, r6, r7, r12, lr}
331 ldmia r0!, {r4, r5, r6, r7, r12, lr}
332 stmia r1!, {r4, r5, r6, r7, r12, lr}
333 ldmia r0!, {r4, r5, r6, r7, r12, lr}
334 stmia r1!, {r4, r5, r6, r7, r12, lr}
335 ldmia sp!, {r4-r7, pc}
337 .section IBSS_SECTION_MPA_ARM,"aw",%nobits