summaryrefslogtreecommitdiff
path: root/apps/codecs
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs')
-rw-r--r--apps/codecs/lib/mdct_arm.S12
-rw-r--r--apps/codecs/libmad/synth_full_arm.S36
-rwxr-xr-xapps/codecs/libmusepack/synth_filter_arm.S54
3 files changed, 51 insertions, 51 deletions
diff --git a/apps/codecs/lib/mdct_arm.S b/apps/codecs/lib/mdct_arm.S
index f262951ea8..d082b4e932 100644
--- a/apps/codecs/lib/mdct_arm.S
+++ b/apps/codecs/lib/mdct_arm.S
@@ -119,7 +119,7 @@ mdct_butterfly_16:
119 ldr pc, [sp], #4 119 ldr pc, [sp], #4
120 120
121mdct_butterfly_32: 121mdct_butterfly_32:
122 stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr} 122 stmdb sp!, {r4-r11, lr}
123 123
124 add r1, r0, #16*4 124 add r1, r0, #16*4
125 125
@@ -247,13 +247,13 @@ mdct_butterfly_32:
247 add r0, r0, #16*4 247 add r0, r0, #16*4
248 bl mdct_butterfly_16 248 bl mdct_butterfly_16
249 249
250 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12, pc} 250 ldmia sp!, {r4-r11, pc}
251 251
252 @ mdct_butterfly_generic_loop(x1, x2, T0, step, Ttop) 252 @ mdct_butterfly_generic_loop(x1, x2, T0, step, Ttop)
253mdct_butterfly_generic_loop: 253mdct_butterfly_generic_loop:
254 stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr} 254 stmdb sp!, {r4-r11, lr}
255 str r2, [sp, #-4] 255 str r2, [sp, #-4]
256 ldr r4, [sp, #40] 256 ldr r4, [sp, #36]
2571: 2571:
258 ldmdb r0, {r6, r7, r8, r9} 258 ldmdb r0, {r6, r7, r8, r9}
259 ldmdb r1, {r10, r11, r12, r14} 259 ldmdb r1, {r10, r11, r12, r14}
@@ -339,7 +339,7 @@ mdct_butterfly_generic_loop:
339 cmp r2, r4 339 cmp r2, r4
340 bhi 1b 340 bhi 1b
341 341
342 ldr r4, [sp, #40] 342 ldr r4, [sp, #36]
3431: 3431:
344 ldmdb r0, {r6, r7, r8, r9} 344 ldmdb r0, {r6, r7, r8, r9}
345 ldmdb r1, {r10, r11, r12, r14} 345 ldmdb r1, {r10, r11, r12, r14}
@@ -425,5 +425,5 @@ mdct_butterfly_generic_loop:
425 cmp r2, r4 425 cmp r2, r4
426 bhi 1b 426 bhi 1b
427 427
428 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12, pc} 428 ldmia sp!, {r4-r11, pc}
429 429
diff --git a/apps/codecs/libmad/synth_full_arm.S b/apps/codecs/libmad/synth_full_arm.S
index 99a223e784..419bf2b96e 100644
--- a/apps/codecs/libmad/synth_full_arm.S
+++ b/apps/codecs/libmad/synth_full_arm.S
@@ -32,8 +32,8 @@
32 ;; r3 = D0ptr 32 ;; r3 = D0ptr
33 ;; r4 = D1ptr 33 ;; r4 = D1ptr
34synth_full1: 34synth_full1:
35 stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr} 35 stmdb sp!, {r4-r11, lr}
36 ldr r4, [sp, #40] 36 ldr r4, [sp, #36]
37 ldr r5, =synth_full_sp 37 ldr r5, =synth_full_sp
38 str sp, [r5] 38 str sp, [r5]
39 mov r5, #15 39 mov r5, #15
@@ -135,11 +135,11 @@ synth_full1:
135 135
136 ldr r5, =synth_full_sp 136 ldr r5, =synth_full_sp
137 ldr sp, [r5] 137 ldr sp, [r5]
138 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12, pc} 138 ldmia sp!, {r4-r11, pc}
139 139
140synth_full2: 140synth_full2:
141 stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr} 141 stmdb sp!, {r4-r11, lr}
142 ldr r4, [sp, #40] 142 ldr r4, [sp, #36]
143 ldr r5, =synth_full_sp 143 ldr r5, =synth_full_sp
144 str sp, [r5] 144 str sp, [r5]
145 mov r5, #15 145 mov r5, #15
@@ -241,12 +241,12 @@ synth_full2:
241 241
242 ldr r5, =synth_full_sp 242 ldr r5, =synth_full_sp
243 ldr sp, [r5] 243 ldr sp, [r5]
244 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12, pc} 244 ldmia sp!, {r4-r11, pc}
245 245
246 .global III_aliasreduce 246 .global III_aliasreduce
247 247
248III_aliasreduce: 248III_aliasreduce:
249 stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12, lr} 249 stmdb sp!, {r4-r11, lr}
250 add r1, r0, r1, lsl #2 250 add r1, r0, r1, lsl #2
251 add r0, r0, #72 251 add r0, r0, #72
252.arl1: 252.arl1:
@@ -289,7 +289,7 @@ III_aliasreduce:
289 add r0, r0, #72 289 add r0, r0, #72
290 cmp r0, r1 290 cmp r0, r1
291 blo .arl1 291 blo .arl1
292 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, r12, pc} 292 ldmia sp!, {r4-r11, pc}
293 293
294csa: 294csa:
295 .word +0x0db84a81 295 .word +0x0db84a81
@@ -311,14 +311,14 @@ csa:
311 311
312 .global III_overlap 312 .global III_overlap
313III_overlap: 313III_overlap:
314 stmdb sp!, {r4, r5, r6, r7, r8, lr} 314 stmdb sp!, {r4-r7, lr}
315 add r2, r2, r3, lsl #2 315 add r2, r2, r3, lsl #2
316 mov r3, #6 316 mov r3, #6
317.ol: 317.ol:
318 ldmia r0!, {r4, r5, r6} 318 ldmia r0!, {r4, r5, r6}
319 ldmia r1!, {r7, r8, lr} 319 ldmia r1!, {r7, r12, lr}
320 add r4, r4, r7 320 add r4, r4, r7
321 add r5, r5, r8 321 add r5, r5, r12
322 add r6, r6, lr 322 add r6, r6, lr
323 str r4, [r2], #128 323 str r4, [r2], #128
324 str r5, [r2], #128 324 str r5, [r2], #128
@@ -326,13 +326,13 @@ III_overlap:
326 subs r3, r3, #1 326 subs r3, r3, #1
327 bne .ol 327 bne .ol
328 sub r1, r1, #72 328 sub r1, r1, #72
329 ldmia r0!, {r4, r5, r6, r7, r8, lr} 329 ldmia r0!, {r4, r5, r6, r7, r12, lr}
330 stmia r1!, {r4, r5, r6, r7, r8, lr} 330 stmia r1!, {r4, r5, r6, r7, r12, lr}
331 ldmia r0!, {r4, r5, r6, r7, r8, lr} 331 ldmia r0!, {r4, r5, r6, r7, r12, lr}
332 stmia r1!, {r4, r5, r6, r7, r8, lr} 332 stmia r1!, {r4, r5, r6, r7, r12, lr}
333 ldmia r0!, {r4, r5, r6, r7, r8, lr} 333 ldmia r0!, {r4, r5, r6, r7, r12, lr}
334 stmia r1!, {r4, r5, r6, r7, r8, lr} 334 stmia r1!, {r4, r5, r6, r7, r12, lr}
335 ldmia sp!, {r4, r5, r6, r7, r8, pc} 335 ldmia sp!, {r4-r7, pc}
336 336
337 .section IBSS_SECTION_MPA_ARM,"aw",%nobits 337 .section IBSS_SECTION_MPA_ARM,"aw",%nobits
338synth_full_sp: 338synth_full_sp:
diff --git a/apps/codecs/libmusepack/synth_filter_arm.S b/apps/codecs/libmusepack/synth_filter_arm.S
index c2b28bd06f..8c87b61609 100755
--- a/apps/codecs/libmusepack/synth_filter_arm.S
+++ b/apps/codecs/libmusepack/synth_filter_arm.S
@@ -9,10 +9,10 @@
9 * 9 *
10 * Copyright (C) 2008 by Andree Buschmann 10 * Copyright (C) 2008 by Andree Buschmann
11 * 11 *
12 * This program is free software; you can redistribute it and/or 12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License 13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2 14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version. 15 * of the License, or (at your option) any later version.
16 * 16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied. 18 * KIND, either express or implied.
@@ -41,7 +41,7 @@ mpc_decoder_windowing_D:
41 /* r2 = D[] */ 41 /* r2 = D[] */
42 /* lr = counter */ 42 /* lr = counter */
43 43
44 stmfd sp!, {r4-r12, lr} 44 stmfd sp!, {r4-r11, lr}
45 45
46 mov lr, #32 46 mov lr, #32
47.loop32: 47.loop32:
@@ -86,7 +86,7 @@ mpc_decoder_windowing_D:
86 subs lr, lr, #1 86 subs lr, lr, #1
87 bgt .loop32 87 bgt .loop32
88 88
89 ldmfd sp!, {r4-r12, pc} 89 ldmfd sp!, {r4-r11, pc}
90.mpc_dewindowing_end: 90.mpc_dewindowing_end:
91 .size mpc_decoder_windowing_D,.mpc_dewindowing_end-mpc_decoder_windowing_D 91 .size mpc_decoder_windowing_D,.mpc_dewindowing_end-mpc_decoder_windowing_D
92#else 92#else
@@ -110,55 +110,55 @@ mpc_decoder_windowing_D:
110 /************************************************************************ 110 /************************************************************************
111 * Reference implementation. 111 * Reference implementation.
112 ***********************************************************************/ 112 ***********************************************************************/
113 stmfd sp!, {r4-r9, lr} 113 stmfd sp!, {r4-r8, lr}
114 114
115 mov lr, #32 115 mov lr, #32
116.loop32: 116.loop32:
117 ldmia r2!, { r3-r6 } /* load D[00..03] */ 117 ldmia r2!, { r3-r6 } /* load D[00..03] */
118 ldr r7, [r1] /* 0 */ 118 ldr r7, [r1] /* 0 */
119 smull r8, r9, r7, r3 119 smull r8, r12, r7, r3
120 ldr r7, [r1, #96*4] /* 1 */ 120 ldr r7, [r1, #96*4] /* 1 */
121 smlal r8, r9, r7, r4 121 smlal r8, r12, r7, r4
122 ldr r7, [r1, #128*4] /* 2 */ 122 ldr r7, [r1, #128*4] /* 2 */
123 smlal r8, r9, r7, r5 123 smlal r8, r12, r7, r5
124 ldr r7, [r1, #224*4] /* 3 */ 124 ldr r7, [r1, #224*4] /* 3 */
125 smlal r8, r9, r7, r6 125 smlal r8, r12, r7, r6
126 ldmia r2!, { r3-r6 } /* load D[04..07] */ 126 ldmia r2!, { r3-r6 } /* load D[04..07] */
127 ldr r7, [r1, #256*4] /* 4 */ 127 ldr r7, [r1, #256*4] /* 4 */
128 smlal r8, r9, r7, r3 128 smlal r8, r12, r7, r3
129 ldr r7, [r1, #352*4] /* 5 */ 129 ldr r7, [r1, #352*4] /* 5 */
130 smlal r8, r9, r7, r4 130 smlal r8, r12, r7, r4
131 ldr r7, [r1, #384*4] /* 6 */ 131 ldr r7, [r1, #384*4] /* 6 */
132 smlal r8, r9, r7, r5 132 smlal r8, r12, r7, r5
133 ldr r7, [r1, #480*4] /* 7 */ 133 ldr r7, [r1, #480*4] /* 7 */
134 smlal r8, r9, r7, r6 134 smlal r8, r12, r7, r6
135 ldmia r2!, { r3-r6 } /* load D[08..11] */ 135 ldmia r2!, { r3-r6 } /* load D[08..11] */
136 ldr r7, [r1, #512*4] /* 8 */ 136 ldr r7, [r1, #512*4] /* 8 */
137 smlal r8, r9, r7, r3 137 smlal r8, r12, r7, r3
138 ldr r7, [r1, #608*4] /* 9 */ 138 ldr r7, [r1, #608*4] /* 9 */
139 smlal r8, r9, r7, r4 139 smlal r8, r12, r7, r4
140 ldr r7, [r1, #640*4] /* 10 */ 140 ldr r7, [r1, #640*4] /* 10 */
141 smlal r8, r9, r7, r5 141 smlal r8, r12, r7, r5
142 ldr r7, [r1, #736*4] /* 11 */ 142 ldr r7, [r1, #736*4] /* 11 */
143 smlal r8, r9, r7, r6 143 smlal r8, r12, r7, r6
144 ldmia r2!, { r3-r6 } /* load D[12..15] */ 144 ldmia r2!, { r3-r6 } /* load D[12..15] */
145 ldr r7, [r1, #768*4] /* 12 */ 145 ldr r7, [r1, #768*4] /* 12 */
146 smlal r8, r9, r7, r3 146 smlal r8, r12, r7, r3
147 ldr r7, [r1, #864*4] /* 13 */ 147 ldr r7, [r1, #864*4] /* 13 */
148 smlal r8, r9, r7, r4 148 smlal r8, r12, r7, r4
149 ldr r7, [r1, #896*4] /* 14 */ 149 ldr r7, [r1, #896*4] /* 14 */
150 smlal r8, r9, r7, r5 150 smlal r8, r12, r7, r5
151 ldr r7, [r1, #992*4] /* 15 */ 151 ldr r7, [r1, #992*4] /* 15 */
152 smlal r8, r9, r7, r6 152 smlal r8, r12, r7, r6
153 mov r8, r8, lsr #16 153 mov r8, r8, lsr #16
154 orr r8, r8, r9, lsl #16 /* (lo>>16) || (hi<<16) */ 154 orr r8, r8, r12, lsl #16 /* (lo>>16) || (hi<<16) */
155 str r8, [r0], #4 /* store Data */ 155 str r8, [r0], #4 /* store Data */
156 add r1, r1, #4 /* V++ */ 156 add r1, r1, #4 /* V++ */
157 157
158 subs lr, lr, #1 158 subs lr, lr, #1
159 bgt .loop32 159 bgt .loop32
160 160
161 ldmfd sp!, {r4-r9, pc} 161 ldmfd sp!, {r4-r8, pc}
162#else 162#else
163mpc_decoder_windowing_D: 163mpc_decoder_windowing_D:
164 /* r0 = Data[] */ 164 /* r0 = Data[] */
@@ -174,7 +174,7 @@ mpc_decoder_windowing_D:
174 * The row V[16] can be extracted as it has symmetries within this single 174 * The row V[16] can be extracted as it has symmetries within this single
175 * row. 8 smull/mlal and 8 ldr's can be saved. 175 * row. 8 smull/mlal and 8 ldr's can be saved.
176 ***********************************************************************/ 176 ***********************************************************************/
177 stmfd sp!, {r4-r12, lr} 177 stmfd sp!, {r4-r11, lr}
178 178
179 /****************************************** 179 /******************************************
180 * row 0 with internal symmetry 180 * row 0 with internal symmetry
@@ -356,7 +356,7 @@ mpc_decoder_windowing_D:
356 str r8, [r0], #4 /* store Data */ 356 str r8, [r0], #4 /* store Data */
357 add r1, r1, #4 /* V++ */ 357 add r1, r1, #4 /* V++ */
358 358
359 ldmfd sp!, {r4-r12, pc} 359 ldmfd sp!, {r4-r11, pc}
360#endif 360#endif
361.mpc_dewindowing_end: 361.mpc_dewindowing_end:
362 .size mpc_decoder_windowing_D,.mpc_dewindowing_end-mpc_decoder_windowing_D 362 .size mpc_decoder_windowing_D,.mpc_dewindowing_end-mpc_decoder_windowing_D