diff options
Diffstat (limited to 'apps/codecs')
-rw-r--r-- | apps/codecs/lib/mdct_arm.S | 12 | ||||
-rw-r--r-- | apps/codecs/libmad/synth_full_arm.S | 36 | ||||
-rwxr-xr-x | apps/codecs/libmusepack/synth_filter_arm.S | 54 |
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 | ||
121 | mdct_butterfly_32: | 121 | mdct_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) |
253 | mdct_butterfly_generic_loop: | 253 | mdct_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] |
257 | 1: | 257 | 1: |
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] |
343 | 1: | 343 | 1: |
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 |
34 | synth_full1: | 34 | synth_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 | ||
140 | synth_full2: | 140 | synth_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 | ||
248 | III_aliasreduce: | 248 | III_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 | ||
294 | csa: | 294 | csa: |
295 | .word +0x0db84a81 | 295 | .word +0x0db84a81 |
@@ -311,14 +311,14 @@ csa: | |||
311 | 311 | ||
312 | .global III_overlap | 312 | .global III_overlap |
313 | III_overlap: | 313 | III_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 |
338 | synth_full_sp: | 338 | synth_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 |
163 | mpc_decoder_windowing_D: | 163 | mpc_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 |