summaryrefslogtreecommitdiff
path: root/apps/codecs
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs')
-rw-r--r--apps/codecs/demac/libdemac/predictor-arm.S8
-rw-r--r--apps/codecs/lib/mdct_arm.S6
-rw-r--r--apps/codecs/libatrac/atrac3_arm.S6
-rw-r--r--apps/codecs/libffmpegFLAC/arm.S2
-rw-r--r--apps/codecs/libmad/dct32_arm.S2
-rw-r--r--apps/codecs/libmad/imdct_l_arm.S5
-rw-r--r--apps/codecs/libmad/synth_full_arm.S9
-rw-r--r--apps/codecs/libmusepack/synth_filter_arm.S6
-rw-r--r--apps/codecs/libspeex/filters_arm4.S10
-rw-r--r--apps/codecs/libtta/filter_arm.S4
-rw-r--r--apps/codecs/libwavpack/arm.S5
-rw-r--r--apps/codecs/libwavpack/arml.S4
12 files changed, 43 insertions, 24 deletions
diff --git a/apps/codecs/demac/libdemac/predictor-arm.S b/apps/codecs/demac/libdemac/predictor-arm.S
index 1d5587661a..92a78ed9b4 100644
--- a/apps/codecs/demac/libdemac/predictor-arm.S
+++ b/apps/codecs/demac/libdemac/predictor-arm.S
@@ -505,7 +505,11 @@ loop:
505done: 505done:
506 str r14, [r12] @ Save value of p->buf 506 str r14, [r12] @ Save value of p->buf
507 add sp, sp, #12 @ Don't bother restoring r1-r3 507 add sp, sp, #12 @ Don't bother restoring r1-r3
508#ifdef ROCKBOX
509 ldmpc regs=r4-r11
510#else
508 ldmia sp!, {r4 - r11, pc} 511 ldmia sp!, {r4 - r11, pc}
512#endif
509 513
510move_hist: 514move_hist:
511 @ dest = r11 (p->historybuffer) 515 @ dest = r11 (p->historybuffer)
@@ -664,7 +668,11 @@ loopm:
664donem: 668donem:
665 str r14, [r12] @ Save value of p->buf 669 str r14, [r12] @ Save value of p->buf
666 add sp, sp, #8 @ Don't bother restoring r1, r2 670 add sp, sp, #8 @ Don't bother restoring r1, r2
671#ifdef ROCKBOX
672 ldmpc regs=r4-r11
673#else
667 ldmia sp!, {r4 - r11, pc} 674 ldmia sp!, {r4 - r11, pc}
675#endif
668 676
669move_histm: 677move_histm:
670 @ dest = r11 (p->historybuffer) 678 @ dest = r11 (p->historybuffer)
diff --git a/apps/codecs/lib/mdct_arm.S b/apps/codecs/lib/mdct_arm.S
index f2fa1d9c3e..515b859b44 100644
--- a/apps/codecs/lib/mdct_arm.S
+++ b/apps/codecs/lib/mdct_arm.S
@@ -127,7 +127,7 @@ mdct_butterfly_16:
127 @ mdct_butterfly_8 increments r0 by another #8*4 here 127 @ mdct_butterfly_8 increments r0 by another #8*4 here
128 @ at end, r0 has been incremented by #16*4 128 @ at end, r0 has been incremented by #16*4
129 129
130 ldr pc, [sp], #4 130 ldrpc
131 131
132mdct_butterfly_32: 132mdct_butterfly_32:
133 stmdb sp!, {r4-r11, lr} 133 stmdb sp!, {r4-r11, lr}
@@ -257,7 +257,7 @@ mdct_butterfly_32:
257 @ and we wanted to advance by #16*4 anyway, so just call again 257 @ and we wanted to advance by #16*4 anyway, so just call again
258 bl mdct_butterfly_16 258 bl mdct_butterfly_16
259 259
260 ldmia sp!, {r4-r11, pc} 260 ldmpc regs=r4-r11
261 261
262 @ mdct_butterfly_generic_loop(x1, x2, T0, step, Ttop) 262 @ mdct_butterfly_generic_loop(x1, x2, T0, step, Ttop)
263mdct_butterfly_generic_loop: 263mdct_butterfly_generic_loop:
@@ -433,5 +433,5 @@ mdct_butterfly_generic_loop:
433 cmp r2, r4 433 cmp r2, r4
434 bhi 1b 434 bhi 1b
435 435
436 ldmia sp!, {r4-r11, pc} 436 ldmpc regs=r4-r11
437 437
diff --git a/apps/codecs/libatrac/atrac3_arm.S b/apps/codecs/libatrac/atrac3_arm.S
index 0908d582ed..80eaa7954d 100644
--- a/apps/codecs/libatrac/atrac3_arm.S
+++ b/apps/codecs/libatrac/atrac3_arm.S
@@ -19,6 +19,8 @@
19 * 19 *
20 ****************************************************************************/ 20 ****************************************************************************/
21 21
22#include "config.h"
23
22 .section .text, "ax", %progbits 24 .section .text, "ax", %progbits
23 25
24/**************************************************************************** 26/****************************************************************************
@@ -63,7 +65,7 @@ atrac3_iqmf_matrixing:
63 subs r3, r3, #4 /* counter -= 4 */ 65 subs r3, r3, #4 /* counter -= 4 */
64 bgt .iqmf_matrixing_loop 66 bgt .iqmf_matrixing_loop
65 67
66 ldmfd sp!, {r4-r9, pc} /* restore registers */ 68 ldmpc regs=r4-r9 /* restore registers */
67 69
68.atrac3_iqmf_matrixing_end: 70.atrac3_iqmf_matrixing_end:
69 .size atrac3_iqmf_matrixing,.atrac3_iqmf_matrixing_end-atrac3_iqmf_matrixing 71 .size atrac3_iqmf_matrixing,.atrac3_iqmf_matrixing_end-atrac3_iqmf_matrixing
@@ -218,7 +220,7 @@ atrac3_iqmf_dewindowing:
218 subs r3, r3, #1 /* outer loop -= 1 */ 220 subs r3, r3, #1 /* outer loop -= 1 */
219 bgt .iqmf_dewindow_outer_loop 221 bgt .iqmf_dewindow_outer_loop
220 222
221 ldmfd sp!, {r4-r9, pc} /* restore registers */ 223 ldmpc regs=r4-r9 /* restore registers */
222 224
223.atrac3_iqmf_dewindowing_end: 225.atrac3_iqmf_dewindowing_end:
224 .size atrac3_iqmf_dewindowing,.atrac3_iqmf_dewindowing_end-atrac3_iqmf_dewindowing 226 .size atrac3_iqmf_dewindowing,.atrac3_iqmf_dewindowing_end-atrac3_iqmf_dewindowing
diff --git a/apps/codecs/libffmpegFLAC/arm.S b/apps/codecs/libffmpegFLAC/arm.S
index 2a2746eefa..8adca77ce5 100644
--- a/apps/codecs/libffmpegFLAC/arm.S
+++ b/apps/codecs/libffmpegFLAC/arm.S
@@ -267,5 +267,5 @@ lpc_decode_arm:
267 bne .default @ no, prepare for next sample 267 bne .default @ no, prepare for next sample
268 268
269.exit: 269.exit:
270 ldmia sp!, { r4-r11, pc } 270 ldmpc regs=r4-r11
271 271
diff --git a/apps/codecs/libmad/dct32_arm.S b/apps/codecs/libmad/dct32_arm.S
index a4eda8a087..440841bb5e 100644
--- a/apps/codecs/libmad/dct32_arm.S
+++ b/apps/codecs/libmad/dct32_arm.S
@@ -220,7 +220,7 @@ dct32:
220 cmp r0, #9 220 cmp r0, #9
221 bne .l4 221 bne .l4
222 add sp, sp, #144 222 add sp, sp, #144
223 ldmia sp!, {r4-r11, pc} 223 ldmpc regs=r4-r11
224bitrev: 224bitrev:
225 .word 0x0 225 .word 0x0
226 .word 0x2 226 .word 0x2
diff --git a/apps/codecs/libmad/imdct_l_arm.S b/apps/codecs/libmad/imdct_l_arm.S
index b86ba1120d..b511ff169d 100644
--- a/apps/codecs/libmad/imdct_l_arm.S
+++ b/apps/codecs/libmad/imdct_l_arm.S
@@ -45,6 +45,7 @@
45* 45*
46****************************************************************************/ 46****************************************************************************/
47 47
48#include "config.h"
48 49
49/* 50/*
50 On entry: 51 On entry:
@@ -823,7 +824,7 @@ normal_block_x18_to_x35:
823 @---- 824 @----
824 825
825 add sp, sp, #(21*4) @ return stack frame 826 add sp, sp, #(21*4) @ return stack frame
826 ldmia sp!, { r4 - r11, pc } @ restore callee saved regs, and return 827 ldmpc regs=r4-r11 @ restore callee saved regs, and return
827 828
828 @---- 829 @----
829 830
@@ -992,7 +993,7 @@ start_block_x18_to_x35:
992 @---- 993 @----
993 994
994 add sp, sp, #(21*4) @ return stack frame 995 add sp, sp, #(21*4) @ return stack frame
995 ldmia sp!, { r4 - r11, pc } @ restore callee saved regs, and return 996 ldmpc regs=r4-r11 @ restore callee saved regs, and return
996 997
997 @---- 998 @----
998 @END 999 @END
diff --git a/apps/codecs/libmad/synth_full_arm.S b/apps/codecs/libmad/synth_full_arm.S
index e663b8ffcb..dec437f666 100644
--- a/apps/codecs/libmad/synth_full_arm.S
+++ b/apps/codecs/libmad/synth_full_arm.S
@@ -19,6 +19,7 @@
19 * 19 *
20 ****************************************************************************/ 20 ****************************************************************************/
21 21
22#include "config.h"
22#include "mad_iram.h" 23#include "mad_iram.h"
23 24
24 .section ICODE_SECTION_MPA_ARM,"ax",%progbits 25 .section ICODE_SECTION_MPA_ARM,"ax",%progbits
@@ -135,7 +136,7 @@ synth_full_odd_sbsample:
135 136
136 ldr r5, =synth_full_sp 137 ldr r5, =synth_full_sp
137 ldr sp, [r5] 138 ldr sp, [r5]
138 ldmia sp!, {r4-r11, pc} 139 ldmpc regs=r4-r11
139 140
140synth_full_even_sbsample: 141synth_full_even_sbsample:
141 stmdb sp!, {r4-r11, lr} 142 stmdb sp!, {r4-r11, lr}
@@ -241,7 +242,7 @@ synth_full_even_sbsample:
241 242
242 ldr r5, =synth_full_sp 243 ldr r5, =synth_full_sp
243 ldr sp, [r5] 244 ldr sp, [r5]
244 ldmia sp!, {r4-r11, pc} 245 ldmpc regs=r4-r11
245 246
246 .global III_aliasreduce 247 .global III_aliasreduce
247 248
@@ -289,7 +290,7 @@ III_aliasreduce:
289 add r0, r0, #72 290 add r0, r0, #72
290 cmp r0, r1 291 cmp r0, r1
291 blo .arl1 292 blo .arl1
292 ldmia sp!, {r4-r11, pc} 293 ldmpc regs=r4-r11
293 294
294csa: 295csa:
295 .word +0x0db84a81 296 .word +0x0db84a81
@@ -332,7 +333,7 @@ III_overlap:
332 stmia r1!, {r4, r5, r6, r7, r12, lr} 333 stmia r1!, {r4, r5, r6, r7, r12, lr}
333 ldmia r0!, {r4, r5, r6, r7, r12, lr} 334 ldmia r0!, {r4, r5, r6, r7, r12, lr}
334 stmia r1!, {r4, r5, r6, r7, r12, lr} 335 stmia r1!, {r4, r5, r6, r7, r12, lr}
335 ldmia sp!, {r4-r7, pc} 336 ldmpc regs=r4-r7
336 337
337 .section IBSS_SECTION_MPA_ARM,"aw",%nobits 338 .section IBSS_SECTION_MPA_ARM,"aw",%nobits
338synth_full_sp: 339synth_full_sp:
diff --git a/apps/codecs/libmusepack/synth_filter_arm.S b/apps/codecs/libmusepack/synth_filter_arm.S
index 3f78469948..731a21ce21 100644
--- a/apps/codecs/libmusepack/synth_filter_arm.S
+++ b/apps/codecs/libmusepack/synth_filter_arm.S
@@ -19,6 +19,8 @@
19 * 19 *
20 ****************************************************************************/ 20 ****************************************************************************/
21 21
22#include "config.h"
23
22 .section .text, "ax", %progbits 24 .section .text, "ax", %progbits
23 25
24/**************************************************************************** 26/****************************************************************************
@@ -89,7 +91,7 @@ mpc_decoder_windowing_D:
89 subs lr, lr, #1 91 subs lr, lr, #1
90 bgt .loop32 92 bgt .loop32
91 93
92 ldmfd sp!, {r4-r8, pc} 94 ldmpc regs=r4-r8
93#else 95#else
94mpc_decoder_windowing_D: 96mpc_decoder_windowing_D:
95 /* r0 = Data[] */ 97 /* r0 = Data[] */
@@ -287,7 +289,7 @@ mpc_decoder_windowing_D:
287 str r8, [r0], #4 /* store Data */ 289 str r8, [r0], #4 /* store Data */
288 add r1, r1, #4 /* V++ */ 290 add r1, r1, #4 /* V++ */
289 291
290 ldmfd sp!, {r4-r11, pc} 292 ldmpc regs=r4-r11
291#endif 293#endif
292.mpc_dewindowing_end: 294.mpc_dewindowing_end:
293 .size mpc_decoder_windowing_D,.mpc_dewindowing_end-mpc_decoder_windowing_D 295 .size mpc_decoder_windowing_D,.mpc_dewindowing_end-mpc_decoder_windowing_D
diff --git a/apps/codecs/libspeex/filters_arm4.S b/apps/codecs/libspeex/filters_arm4.S
index 109556fa92..dcd1691982 100644
--- a/apps/codecs/libspeex/filters_arm4.S
+++ b/apps/codecs/libspeex/filters_arm4.S
@@ -49,7 +49,7 @@ iir_mem16:
49 beq .order_10 49 beq .order_10
50 cmp r5, #8 50 cmp r5, #8
51 beq .order_8 51 beq .order_8
52 ldmia sp!, { r4-r11, pc } @ Non-supported order, return 52 ldmpc regs=r4-r11 @ Non-supported order, return
53 53
54 @ TODO: try using direct form 1 filtering 54 @ TODO: try using direct form 1 filtering
55.order_8: 55.order_8:
@@ -94,7 +94,7 @@ iir_mem16:
94 bne 0b 94 bne 0b
95 ldr r4, [sp, #40] @ r4 = mem 95 ldr r4, [sp, #40] @ r4 = mem
96 stmia r4, { r5-r12 } @ Save back mem[] 96 stmia r4, { r5-r12 } @ Save back mem[]
97 ldmia sp!, { r4-r11, pc } @ Exit 97 ldmpc regs=r4-r11 @ Exit
98 98
99.order_10: 99.order_10:
100 ldmia r4, { r5-r9 } @ r5-r9 = mem[0..4] 100 ldmia r4, { r5-r9 } @ r5-r9 = mem[0..4]
@@ -154,7 +154,7 @@ iir_mem16:
154 sub r1, r1, #10*2 154 sub r1, r1, #10*2
155 subs r3, r3, #1 155 subs r3, r3, #1
156 bne .order_10 156 bne .order_10
157 ldmia sp!, { r4-r11, pc } @ Exit 157 ldmpc regs=r4-r11 @ Exit
158 158
159 159
160/* void qmf_synth(const spx_word16_t *x1, const spx_word16_t *x2, const spx_word16_t *a, spx_word16_t *y, int N, int M, spx_word32_t *mem1, spx_word32_t *mem2, char *stack) */ 160/* void qmf_synth(const spx_word16_t *x1, const spx_word16_t *x2, const spx_word16_t *a, spx_word16_t *y, int N, int M, spx_word32_t *mem1, spx_word32_t *mem2, char *stack) */
@@ -300,7 +300,7 @@ qmf_synth:
300 strh r8, [r6], #4 300 strh r8, [r6], #4
301 subs r4, r4, #4 301 subs r4, r4, #4
302 bne 0b 302 bne 0b
303 ldmia sp!, { r4-r11, pc } @ Exit 303 ldmpc regs=r4-r11 @ Exit
304 304
305 305
306/* void signal_mul(const spx_sig_t *x, spx_sig_t *y, spx_word32_t scale, int len) */ 306/* void signal_mul(const spx_sig_t *x, spx_sig_t *y, spx_word32_t scale, int len) */
@@ -325,5 +325,5 @@ signal_mul:
325 subs r3, r3, #4 @ Are we done? 325 subs r3, r3, #4 @ Are we done?
326 bne 0b 326 bne 0b
327 327
328 ldmia sp!, { r4-r8, pc } @ Exit 328 ldmpc regs=r4-r8 @ Exit
329 329
diff --git a/apps/codecs/libtta/filter_arm.S b/apps/codecs/libtta/filter_arm.S
index d34b182a04..f3959b83ca 100644
--- a/apps/codecs/libtta/filter_arm.S
+++ b/apps/codecs/libtta/filter_arm.S
@@ -167,7 +167,7 @@ hybrid_filter:
167 @ set to the memory: *pA, *(pA-1), *(pA-2), *(pA-3), *pM, *(pM-1), *(pM-2), *(pM-3) 167 @ set to the memory: *pA, *(pA-1), *(pA-2), *(pA-3), *pM, *(pM-1), *(pM-2), *(pM-3)
168 stmneda r2, {r10, r11, r12, lr} 168 stmneda r2, {r10, r11, r12, lr}
169 stmneda r3, {r5, r6, r7, r8} 169 stmneda r3, {r5, r6, r7, r8}
170 ldmnefd sp!, {r4-r12, pc} @ hybrid_filter end (when fs->index != 0) 170 ldmpc cond=ne regs=r4-r12 @ hybrid_filter end (when fs->index != 0)
171 171
172.hf_memshl: 172.hf_memshl:
173 @ memshl (fs->dl) 173 @ memshl (fs->dl)
@@ -192,7 +192,7 @@ hybrid_filter:
192 ldmia r9, {r1, r2, r3, r4} 192 ldmia r9, {r1, r2, r3, r4}
193 sub r9, r9, #64 @ r9 = fs->dx 193 sub r9, r9, #64 @ r9 = fs->dx
194 stmia r9, {r1 - r8} 194 stmia r9, {r1 - r8}
195 ldmfd sp!, {r4 - r12, pc} @ hybrid_filter end (when fs->index == 0) 195 ldmpc regs=r4-r12 @ hybrid_filter end (when fs->index == 0)
196 196
197hybrid_filter_end: 197hybrid_filter_end:
198 .size hybrid_filter, hybrid_filter_end - hybrid_filter 198 .size hybrid_filter, hybrid_filter_end - hybrid_filter
diff --git a/apps/codecs/libwavpack/arm.S b/apps/codecs/libwavpack/arm.S
index 90dfd46c6e..32de1df7de 100644
--- a/apps/codecs/libwavpack/arm.S
+++ b/apps/codecs/libwavpack/arm.S
@@ -35,6 +35,9 @@
35 * 32-bit multiply-accumulate instruction and so will overflow with 24-bit 35 * 32-bit multiply-accumulate instruction and so will overflow with 24-bit
36 * WavPack files. 36 * WavPack files.
37 */ 37 */
38
39#include "config.h"
40
38 .text 41 .text
39 .align 42 .align
40 .global decorr_stereo_pass_cont_arm 43 .global decorr_stereo_pass_cont_arm
@@ -470,5 +473,5 @@ term_minus_3_loop:
470common_exit: 473common_exit:
471 strh r4, [r5, #4] 474 strh r4, [r5, #4]
472 strh r0, [r5, #6] 475 strh r0, [r5, #6]
473 ldmfd sp!, {r4 - r8, r10, r11, pc} 476 ldmpc regs="r4-r8, r10-r11"
474 477
diff --git a/apps/codecs/libwavpack/arml.S b/apps/codecs/libwavpack/arml.S
index 5745c81ed0..60818aa1e6 100644
--- a/apps/codecs/libwavpack/arml.S
+++ b/apps/codecs/libwavpack/arml.S
@@ -38,6 +38,8 @@
38 * instruction. 38 * instruction.
39 */ 39 */
40 40
41#include "config.h"
42
41 .text 43 .text
42 .align 44 .align
43 .global decorr_stereo_pass_cont_arml 45 .global decorr_stereo_pass_cont_arml
@@ -500,5 +502,5 @@ common_exit:
500 mov r4, r4, asr #18 502 mov r4, r4, asr #18
501 strh r4, [r5, #4] 503 strh r4, [r5, #4]
502 strh r0, [r5, #6] 504 strh r0, [r5, #6]
503 ldmfd sp!, {r4 - r8, r10, r11, pc} 505 ldmpc regs="r4-r8, r10-r11"
504 506