summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-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
-rw-r--r--apps/dsp_arm.S31
-rw-r--r--apps/eq_arm.S2
-rw-r--r--apps/plugins/mpegplayer/idct_arm.S8
-rw-r--r--apps/plugins/mpegplayer/motion_comp_arm_s.S32
-rw-r--r--apps/plugins/pacbox/pacbox_arm.S3
-rw-r--r--apps/recorder/jpeg_idct_arm.S24
18 files changed, 96 insertions, 71 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
diff --git a/apps/dsp_arm.S b/apps/dsp_arm.S
index 2150ff0631..7e360749a3 100644
--- a/apps/dsp_arm.S
+++ b/apps/dsp_arm.S
@@ -23,6 +23,9 @@
23/**************************************************************************** 23/****************************************************************************
24 * void channels_process_sound_chan_mono(int count, int32_t *buf[]) 24 * void channels_process_sound_chan_mono(int count, int32_t *buf[])
25 */ 25 */
26
27#include "config.h"
28
26 .section .icode, "ax", %progbits 29 .section .icode, "ax", %progbits
27 .align 2 30 .align 2
28 .global channels_process_sound_chan_mono 31 .global channels_process_sound_chan_mono
@@ -47,7 +50,7 @@ channels_process_sound_chan_mono:
47 stmia r2!, { r12, r14 } @ store Mo0, Mo1 50 stmia r2!, { r12, r14 } @ store Mo0, Mo1
48 bgt .monoloop @ 51 bgt .monoloop @
49 @ 52 @
50 ldmltfd sp!, { r4, pc } @ if count was even, we're done 53 ldmpc cond=lt, regs=r4 @ if count was even, we're done
51 @ 54 @
52.mono_singlesample: @ 55.mono_singlesample: @
53 ldr r3, [r1] @ r3 = Ls 56 ldr r3, [r1] @ r3 = Ls
@@ -57,7 +60,7 @@ channels_process_sound_chan_mono:
57 str r12, [r1] @ store Mo 60 str r12, [r1] @ store Mo
58 str r12, [r2] @ store Mo 61 str r12, [r2] @ store Mo
59 @ 62 @
60 ldmfd sp!, { r4, pc } @ 63 ldmpc regs=r4 @
61 .size channels_process_sound_chan_mono, \ 64 .size channels_process_sound_chan_mono, \
62 .-channels_process_sound_chan_mono 65 .-channels_process_sound_chan_mono
63 66
@@ -112,7 +115,7 @@ channels_process_sound_chan_custom:
112 115
113 bgt .custom_loop 116 bgt .custom_loop
114 117
115 ldmltfd sp!, { r4-r10, pc } @ < 0? even count 118 ldmpc cond=lt, regs=r4-r10 @ < 0? even count
116 119
117.custom_single_sample: 120.custom_single_sample:
118 ldr r5, [r1] @ handle odd sample 121 ldr r5, [r1] @ handle odd sample
@@ -131,7 +134,7 @@ channels_process_sound_chan_custom:
131 str r5, [r1] @ Store Lc0 134 str r5, [r1] @ Store Lc0
132 str r7, [r2] @ Store Rc0 135 str r7, [r2] @ Store Rc0
133 136
134 ldmfd sp!, { r4-r10, pc } 137 ldmpc regs=r4-r10
135 .size channels_process_sound_chan_custom, \ 138 .size channels_process_sound_chan_custom, \
136 .-channels_process_sound_chan_custom 139 .-channels_process_sound_chan_custom
137 140
@@ -164,7 +167,7 @@ channels_process_sound_chan_karaoke:
164 stmia r2!, { r12, r14 } @ store Ro0, Ro1 167 stmia r2!, { r12, r14 } @ store Ro0, Ro1
165 bgt .karaokeloop @ 168 bgt .karaokeloop @
166 @ 169 @
167 ldmltfd sp!, { r4, pc } @ if count was even, we're done 170 ldmpc cond=lt, regs=r4 @ if count was even, we're done
168 @ 171 @
169.karaoke_singlesample: @ 172.karaoke_singlesample: @
170 ldr r3, [r1] @ r3 = Li 173 ldr r3, [r1] @ r3 = Li
@@ -175,7 +178,7 @@ channels_process_sound_chan_karaoke:
175 str r3, [r1] @ store Lo 178 str r3, [r1] @ store Lo
176 str r12, [r2] @ store Ro 179 str r12, [r2] @ store Ro
177 @ 180 @
178 ldmfd sp!, { r4, pc } @ 181 ldmpc regs=r4 @
179 .size channels_process_sound_chan_karaoke, \ 182 .size channels_process_sound_chan_karaoke, \
180 .-channels_process_sound_chan_karaoke 183 .-channels_process_sound_chan_karaoke
181 184
@@ -225,7 +228,7 @@ sample_output_mono:
225 subs r0, r0, #2 228 subs r0, r0, #2
226 bgt .somloop 229 bgt .somloop
227 230
228 ldmltfd sp!, { r4-r6, pc } @ even 'count'? return 231 ldmpc cond=lt, regs=r4-r6 @ even 'count'? return
229 232
230.som_singlesample: 233.som_singlesample:
231 ldr r5, [r2] @ do odd sample 234 ldr r5, [r2] @ do odd sample
@@ -239,7 +242,7 @@ sample_output_mono:
239 orr r5, r5, r5, lsl #16 242 orr r5, r5, r5, lsl #16
240 str r5, [r3] 243 str r5, [r3]
241 244
242 ldmfd sp!, { r4-r6, pc } 245 ldmpc regs=r4-r6
243 .size sample_output_mono, .-sample_output_mono 246 .size sample_output_mono, .-sample_output_mono
244 247
245/**************************************************************************** 248/****************************************************************************
@@ -302,7 +305,7 @@ sample_output_stereo:
302 subs r0, r0, #2 305 subs r0, r0, #2
303 bgt .sosloop 306 bgt .sosloop
304 307
305 ldmltfd sp!, { r4-r9, pc } @ even 'count'? return 308 ldmpc cond=lt, regs=r4-r9 @ even 'count'? return
306 309
307.sos_singlesample: 310.sos_singlesample:
308 ldr r6, [r2] @ left odd sample 311 ldr r6, [r2] @ left odd sample
@@ -324,7 +327,7 @@ sample_output_stereo:
324 327
325 str r8, [r3] 328 str r8, [r3]
326 329
327 ldmfd sp!, { r4-r9, pc } 330 ldmpc regs=r4-r9
328 .size sample_output_stereo, .-sample_output_stereo 331 .size sample_output_stereo, .-sample_output_stereo
329#endif /* ARM_ARCH < 6 */ 332#endif /* ARM_ARCH < 6 */
330 333
@@ -387,7 +390,7 @@ apply_crossfeed:
387 stmia r12, { r8-r11 } @ save filter history 390 stmia r12, { r8-r11 } @ save filter history
388 str r0, [r12, #30*4] @ save delay line index 391 str r0, [r12, #30*4] @ save delay line index
389 add sp, sp, #8 @ remove temp variables from stack 392 add sp, sp, #8 @ remove temp variables from stack
390 ldmia sp!, { r4-r11, pc } 393 ldmpc regs=r4-r11
391 .size apply_crossfeed, .-apply_crossfeed 394 .size apply_crossfeed, .-apply_crossfeed
392 395
393/**************************************************************************** 396/****************************************************************************
@@ -444,7 +447,7 @@ dsp_downsample:
444 ldr r1, [r3] @ r1 = &dst[0] 447 ldr r1, [r3] @ r1 = &dst[0]
445 sub r8, r8, r1 @ dst - &dst[0] 448 sub r8, r8, r1 @ dst - &dst[0]
446 mov r0, r8, lsr #2 @ convert bytes->samples 449 mov r0, r8, lsr #2 @ convert bytes->samples
447 ldmia sp!, { r4-r11, pc } @ ... and we're out 450 ldmpc regs=r4-r11 @ ... and we're out
448 .size dsp_downsample, .-dsp_downsample 451 .size dsp_downsample, .-dsp_downsample
449 452
450/**************************************************************************** 453/****************************************************************************
@@ -507,7 +510,7 @@ dsp_upsample:
507 sub r8, r8, r2 @ dst - &dst[0] 510 sub r8, r8, r2 @ dst - &dst[0]
508 mov r0, r8, lsr #2 @ convert bytes->samples 511 mov r0, r8, lsr #2 @ convert bytes->samples
509 add sp, sp, #8 @ adjust stack for temp variables 512 add sp, sp, #8 @ adjust stack for temp variables
510 ldmfd sp!, { r4-r11, pc } @ ... and we're out 513 ldmpc regs=r4-r11 @ ... and we're out
511 .size dsp_upsample, .-dsp_upsample 514 .size dsp_upsample, .-dsp_upsample
512 515
513/**************************************************************************** 516/****************************************************************************
@@ -554,5 +557,5 @@ dsp_apply_gain:
554 subs r3, r3, #1 557 subs r3, r3, #1
555 bgt .dag_outerloop @ end of outer loop 558 bgt .dag_outerloop @ end of outer loop
556 559
557 ldmfd sp!, { r4-r8, pc } 560 ldmpc regs=r4-r8
558 .size dsp_apply_gain, .-dsp_apply_gain 561 .size dsp_apply_gain, .-dsp_apply_gain
diff --git a/apps/eq_arm.S b/apps/eq_arm.S
index 92446e3798..ca6ceec1db 100644
--- a/apps/eq_arm.S
+++ b/apps/eq_arm.S
@@ -85,5 +85,5 @@ eq_filter:
85 bne .filterloop 85 bne .filterloop
86 86
87 add sp, sp, #16 @ compensate for temp storage 87 add sp, sp, #16 @ compensate for temp storage
88 ldmia sp!, { r4-r11, pc } 88 ldmpc regs=r4-r11
89 89
diff --git a/apps/plugins/mpegplayer/idct_arm.S b/apps/plugins/mpegplayer/idct_arm.S
index 7253d890bf..97a87a8b59 100644
--- a/apps/plugins/mpegplayer/idct_arm.S
+++ b/apps/plugins/mpegplayer/idct_arm.S
@@ -19,6 +19,8 @@
19 * 19 *
20 ****************************************************************************/ 20 ****************************************************************************/
21 21
22#include "config.h"
23
22 .global mpeg2_idct_copy 24 .global mpeg2_idct_copy
23 .type mpeg2_idct_copy, %function 25 .type mpeg2_idct_copy, %function
24 .global mpeg2_idct_add 26 .global mpeg2_idct_add
@@ -313,7 +315,7 @@ mpeg2_idct_copy:
313 add r1, r1, r2 315 add r1, r1, r2
314 cmp r0, r12 316 cmp r0, r12
315 blo 1b 317 blo 1b
316 ldmfd sp!, { r4-r11, pc } 318 ldmpc regs=r4-r11
317 319
318mpeg2_idct_add: 320mpeg2_idct_add:
319 cmp r0, #129 321 cmp r0, #129
@@ -385,7 +387,7 @@ mpeg2_idct_add:
385 add r1, r1, r2 387 add r1, r1, r2
386 cmp r0, r12 388 cmp r0, r12
387 blo 2b 389 blo 2b
388 ldmfd sp!, { r4-r11, pc } 390 ldmpc regs=r4-r11
3893: 3913:
390 stmfd sp!, { r4-r5, lr } 392 stmfd sp!, { r4-r5, lr }
391 ldrsh r1, [r0, #0] /* r1 = block[0] */ 393 ldrsh r1, [r0, #0] /* r1 = block[0] */
@@ -438,4 +440,4 @@ mpeg2_idct_add:
438 add r2, r2, r3 440 add r2, r2, r3
439 cmp r2, r0 441 cmp r2, r0
440 blo 4b 442 blo 4b
441 ldmfd sp!, { r4-r5, pc } 443 ldmpc regs=r4-r5
diff --git a/apps/plugins/mpegplayer/motion_comp_arm_s.S b/apps/plugins/mpegplayer/motion_comp_arm_s.S
index fb29d59e99..49628c6ad5 100644
--- a/apps/plugins/mpegplayer/motion_comp_arm_s.S
+++ b/apps/plugins/mpegplayer/motion_comp_arm_s.S
@@ -47,7 +47,7 @@ MC_put_o_16_align0:
47 subs r3, r3, #1 47 subs r3, r3, #1
48 add r0, r0, r2 48 add r0, r0, r2
49 bne MC_put_o_16_align0 49 bne MC_put_o_16_align0
50 ldmfd sp!, {r4-r7, pc} @@ update PC with LR content. 50 ldmpc regs=r4-r7 @@ update PC with LR content.
51 51
52.macro ADJ_ALIGN_QW shift, R0, R1, R2, R3, R4 52.macro ADJ_ALIGN_QW shift, R0, R1, R2, R3, R4
53 mov \R0, \R0, lsr #(\shift) 53 mov \R0, \R0, lsr #(\shift)
@@ -71,7 +71,7 @@ MC_put_o_16_align1:
71 subs r3, r3, #1 71 subs r3, r3, #1
72 add r0, r0, r2 72 add r0, r0, r2
73 bne 1b 73 bne 1b
74 ldmfd sp!, {r4-r7, pc} @@ update PC with LR content. 74 ldmpc regs=r4-r7 @@ update PC with LR content.
75 75
76MC_put_o_16_align2: 76MC_put_o_16_align2:
77 and r1, r1, #0xFFFFFFFC 77 and r1, r1, #0xFFFFFFFC
@@ -83,7 +83,7 @@ MC_put_o_16_align2:
83 subs r3, r3, #1 83 subs r3, r3, #1
84 add r0, r0, r2 84 add r0, r0, r2
85 bne 1b 85 bne 1b
86 ldmfd sp!, {r4-r7, pc} @@ update PC with LR content. 86 ldmpc regs=r4-r7 @@ update PC with LR content.
87 87
88MC_put_o_16_align3: 88MC_put_o_16_align3:
89 and r1, r1, #0xFFFFFFFC 89 and r1, r1, #0xFFFFFFFC
@@ -95,7 +95,7 @@ MC_put_o_16_align3:
95 subs r3, r3, #1 95 subs r3, r3, #1
96 add r0, r0, r2 96 add r0, r0, r2
97 bne 1b 97 bne 1b
98 ldmfd sp!, {r4-r7, pc} @@ update PC with LR content. 98 ldmpc regs=r4-r7 @@ update PC with LR content.
99 99
100@ ---------------------------------------------------------------- 100@ ----------------------------------------------------------------
101 .align 101 .align
@@ -120,7 +120,7 @@ MC_put_o_8_align0:
120 add r0, r0, r2 120 add r0, r0, r2
121 subs r3, r3, #1 121 subs r3, r3, #1
122 bne MC_put_o_8_align0 122 bne MC_put_o_8_align0
123 ldmfd sp!, {r4, r5, pc} @@ update PC with LR content. 123 ldmpc regs=r4-r5 @@ update PC with LR content.
124 124
125.macro ADJ_ALIGN_DW shift, R0, R1, R2 125.macro ADJ_ALIGN_DW shift, R0, R1, R2
126 mov \R0, \R0, lsr #(\shift) 126 mov \R0, \R0, lsr #(\shift)
@@ -140,7 +140,7 @@ MC_put_o_8_align1:
140 subs r3, r3, #1 140 subs r3, r3, #1
141 add r0, r0, r2 141 add r0, r0, r2
142 bne 1b 142 bne 1b
143 ldmfd sp!, {r4, r5, pc} @@ update PC with LR content. 143 ldmpc regs=r4-r5 @@ update PC with LR content.
144 144
145MC_put_o_8_align2: 145MC_put_o_8_align2:
146 and r1, r1, #0xFFFFFFFC 146 and r1, r1, #0xFFFFFFFC
@@ -152,7 +152,7 @@ MC_put_o_8_align2:
152 subs r3, r3, #1 152 subs r3, r3, #1
153 add r0, r0, r2 153 add r0, r0, r2
154 bne 1b 154 bne 1b
155 ldmfd sp!, {r4, r5, pc} @@ update PC with LR content. 155 ldmpc regs=r4-r5 @@ update PC with LR content.
156 156
157MC_put_o_8_align3: 157MC_put_o_8_align3:
158 and r1, r1, #0xFFFFFFFC 158 and r1, r1, #0xFFFFFFFC
@@ -164,7 +164,7 @@ MC_put_o_8_align3:
164 subs r3, r3, #1 164 subs r3, r3, #1
165 add r0, r0, r2 165 add r0, r0, r2
166 bne 1b 166 bne 1b
167 ldmfd sp!, {r4, r5, pc} @@ update PC with LR content. 167 ldmpc regs=r4-r5 @@ update PC with LR content.
168 168
169@ ---------------------------------------------------------------- 169@ ----------------------------------------------------------------
170.macro AVG_PW rW1, rW2 170.macro AVG_PW rW1, rW2
@@ -218,7 +218,7 @@ MC_put_x_16_align0:
218 subs r3, r3, #1 218 subs r3, r3, #1
219 add r0, r0, r2 219 add r0, r0, r2
220 bne MC_put_x_16_align0 220 bne MC_put_x_16_align0
221 ldmfd sp!, {r4-r8, HIGH_REGS, pc} @@ update PC with LR content. 221 ldmpc regs="r4-r8, HIGH_REGS" @@ update PC with LR content.
222 222
223MC_put_x_16_align1: 223MC_put_x_16_align1:
224 and r1, r1, #0xFFFFFFFC 224 and r1, r1, #0xFFFFFFFC
@@ -234,7 +234,7 @@ MC_put_x_16_align1:
234 subs r3, r3, #1 234 subs r3, r3, #1
235 add r0, r0, r2 235 add r0, r0, r2
236 bne 1b 236 bne 1b
237 ldmfd sp!, {r4-r8, HIGH_REGS, pc} @@ update PC with LR content. 237 ldmpc regs="r4-r8, HIGH_REGS" @@ update PC with LR content.
238 238
239MC_put_x_16_align2: 239MC_put_x_16_align2:
240 and r1, r1, #0xFFFFFFFC 240 and r1, r1, #0xFFFFFFFC
@@ -250,7 +250,7 @@ MC_put_x_16_align2:
250 subs r3, r3, #1 250 subs r3, r3, #1
251 add r0, r0, r2 251 add r0, r0, r2
252 bne 1b 252 bne 1b
253 ldmfd sp!, {r4-r8, HIGH_REGS, pc} @@ update PC with LR content. 253 ldmpc regs="r4-r8, HIGH_REGS" @@ update PC with LR content.
254 254
255MC_put_x_16_align3: 255MC_put_x_16_align3:
256 and r1, r1, #0xFFFFFFFC 256 and r1, r1, #0xFFFFFFFC
@@ -266,7 +266,7 @@ MC_put_x_16_align3:
266 subs r3, r3, #1 266 subs r3, r3, #1
267 add r0, r0, r2 267 add r0, r0, r2
268 bne 1b 268 bne 1b
269 ldmfd sp!, {r4-r8, HIGH_REGS, pc} @@ update PC with LR content. 269 ldmpc regs="r4-r8, HIGH_REGS" @@ update PC with LR content.
270 270
271@ ---------------------------------------------------------------- 271@ ----------------------------------------------------------------
272 .align 272 .align
@@ -297,7 +297,7 @@ MC_put_x_8_align0:
297 subs r3, r3, #1 297 subs r3, r3, #1
298 add r0, r0, r2 298 add r0, r0, r2
299 bne MC_put_x_8_align0 299 bne MC_put_x_8_align0
300 ldmfd sp!, {r4-r6, HIGH_REGS, pc} @@ update PC with LR content. 300 ldmpc regs="r4-r6, HIGH_REGS" @@ update PC with LR content.
301 301
302MC_put_x_8_align1: 302MC_put_x_8_align1:
303 and r1, r1, #0xFFFFFFFC 303 and r1, r1, #0xFFFFFFFC
@@ -311,7 +311,7 @@ MC_put_x_8_align1:
311 subs r3, r3, #1 311 subs r3, r3, #1
312 add r0, r0, r2 312 add r0, r0, r2
313 bne 1b 313 bne 1b
314 ldmfd sp!, {r4-r6, HIGH_REGS, pc} @@ update PC with LR content. 314 ldmpc regs="r4-r6, HIGH_REGS" @@ update PC with LR content.
315 315
316MC_put_x_8_align2: 316MC_put_x_8_align2:
317 and r1, r1, #0xFFFFFFFC 317 and r1, r1, #0xFFFFFFFC
@@ -325,7 +325,7 @@ MC_put_x_8_align2:
325 subs r3, r3, #1 325 subs r3, r3, #1
326 add r0, r0, r2 326 add r0, r0, r2
327 bne 1b 327 bne 1b
328 ldmfd sp!, {r4-r6, HIGH_REGS, pc} @@ update PC with LR content. 328 ldmpc regs="r4-r6, HIGH_REGS" @@ update PC with LR content.
329 329
330MC_put_x_8_align3: 330MC_put_x_8_align3:
331 and r1, r1, #0xFFFFFFFC 331 and r1, r1, #0xFFFFFFFC
@@ -339,4 +339,4 @@ MC_put_x_8_align3:
339 subs r3, r3, #1 339 subs r3, r3, #1
340 add r0, r0, r2 340 add r0, r0, r2
341 bne 1b 341 bne 1b
342 ldmfd sp!, {r4-r6, HIGH_REGS, pc} @@ update PC with LR content. 342 ldmpc regs="r4-r6, HIGH_REGS @@ update PC with LR content.
diff --git a/apps/plugins/pacbox/pacbox_arm.S b/apps/plugins/pacbox/pacbox_arm.S
index 32cf2d447e..87696ce6f7 100644
--- a/apps/plugins/pacbox/pacbox_arm.S
+++ b/apps/plugins/pacbox/pacbox_arm.S
@@ -19,6 +19,7 @@
19 * 19 *
20 ****************************************************************************/ 20 ****************************************************************************/
21 21
22#include "config.h"
22#include "pacbox.h" 23#include "pacbox.h"
23 24
24 .section .icode,"ax",%progbits 25 .section .icode,"ax",%progbits
@@ -120,7 +121,7 @@ loop_x:
120/* end of y loop */ 121/* end of y loop */
121 add r1, r1, #224*3 @ vbuf += 224*3 122 add r1, r1, #224*3 @ vbuf += 224*3
122 subs lr, lr, #4 @ y-=4 123 subs lr, lr, #4 @ y-=4
123 ldmeqia sp!, {r4-r11, pc} 124 ldmpc cond=eq, regs=r4-r11
124 b loop_y 125 b loop_y
125#endif 126#endif
126#endif 127#endif
diff --git a/apps/recorder/jpeg_idct_arm.S b/apps/recorder/jpeg_idct_arm.S
index 4739600a81..e7eb4b87f1 100644
--- a/apps/recorder/jpeg_idct_arm.S
+++ b/apps/recorder/jpeg_idct_arm.S
@@ -89,7 +89,7 @@ jpeg_idct2v:
89 add r0, r0, #4 89 add r0, r0, #4
90 cmp r0, r1 90 cmp r0, r1
91 bcc 1b 91 bcc 1b
92 ldmia sp!, { r4, pc } 92 ldmpc regs=r4
93#else 93#else
94/* ARMv6 offers partitioned adds and subtracts, used here to unroll the loop 94/* ARMv6 offers partitioned adds and subtracts, used here to unroll the loop
95 to two columns. 95 to two columns.
@@ -137,7 +137,7 @@ jpeg_idct2h:
137 add r1, r1, r3 137 add r1, r1, r3
138 cmp r0, r2 138 cmp r0, r2
139 bcc 1b 139 bcc 1b
140 ldmia sp!, { r4-r5, pc } 140 ldmpc regs=r4-r5
141#else 141#else
142 stmdb sp!, { r4, lr } 142 stmdb sp!, { r4, lr }
143 ldrsh r14, .Lpool4+2 143 ldrsh r14, .Lpool4+2
@@ -190,7 +190,7 @@ jpeg_idct4v:
190 add r0, r0, #2 190 add r0, r0, #2
191 cmp r0, r1 191 cmp r0, r1
192 bcc 1b 192 bcc 1b
193 ldmia sp!, { r4-r7, pc } 193 ldmpc regs=r4-r7
194#elif ARM_ARCH < 6 194#elif ARM_ARCH < 6
195 stmdb sp!, { r4-r8, lr } 195 stmdb sp!, { r4-r8, lr }
196 mov r8, #1024 196 mov r8, #1024
@@ -221,7 +221,7 @@ jpeg_idct4v:
221 cmp r0, r1 221 cmp r0, r1
222 bcc 1b 222 bcc 1b
223 ldmia sp!, { r4-r8, pc } 223 ldmia sp!, { r4-r8, pc }
224#else 224#else /* ARMv6+ */
225 stmdb sp!, { r4-r10, lr } 225 stmdb sp!, { r4-r10, lr }
226 ldrd r2, .Lpool4 226 ldrd r2, .Lpool4
227 mov r12, #1024 227 mov r12, #1024
@@ -325,8 +325,8 @@ jpeg_idct4h:
325 add r1, r1, r3 325 add r1, r1, r3
326 cmp r0, r2 326 cmp r0, r2
327 bcc 1b 327 bcc 1b
328 ldmia sp!, { r4-r10, pc } 328 ldmpc regs=r4-r10
329#elif ARM_ARCH < 6 329#elif ARM_ARCH < 6 /* ARMv5 */
330 stmdb sp!, { r4-r9, lr } 330 stmdb sp!, { r4-r9, lr }
331 ldr r4, .Lpool4 331 ldr r4, .Lpool4
332 ldr r5, .Lpool4+4 332 ldr r5, .Lpool4+4
@@ -367,7 +367,7 @@ jpeg_idct4h:
367 cmp r0, r2 367 cmp r0, r2
368 bcc 1b 368 bcc 1b
369 ldmia sp!, { r4-r9, pc } 369 ldmia sp!, { r4-r9, pc }
370#else 370#else /* ARMv6+ */
371 stmdb sp!, { r4-r9, lr } 371 stmdb sp!, { r4-r9, lr }
372 ldrd r4, .Lpool4 372 ldrd r4, .Lpool4
373 mov r9, r4, lsr #16 373 mov r9, r4, lsr #16
@@ -424,7 +424,7 @@ jpeg_idct8v:
424 cmp r0, r1 424 cmp r0, r1
425 add r2, r2, #2 425 add r2, r2, #2
426 bcc 1b 426 bcc 1b
427 ldmia sp!, { r4-r11, pc } 427 ldmpc regs=r4-r11
4282: 4282:
429 ldr r14, =4433 429 ldr r14, =4433
430 ldr r12, =-15137 430 ldr r12, =-15137
@@ -586,7 +586,7 @@ jpeg_idct8v:
586 cmp r0, r1 586 cmp r0, r1
587 add r2, r2, #2 587 add r2, r2, #2
588 bcc 1b 588 bcc 1b
589 ldmia sp!, { r4-r11, pc } 589 ldmpc regs=r4-r11
590 .size jpeg_idct8v, .-jpeg_idct8v 590 .size jpeg_idct8v, .-jpeg_idct8v
591 591
592#if ARM_ARCH > 4 592#if ARM_ARCH > 4
@@ -631,7 +631,7 @@ jpeg_idct8h:
631 add r1, r1, r3 631 add r1, r1, r3
632 cmp r0, r2 632 cmp r0, r2
633 bcc 1b 633 bcc 1b
634 ldmia sp!, { r4-r11, pc } 634 ldmpc regs=r4-r11
6352: 6352:
636 ldr r14, =4433 636 ldr r14, =4433
637 ldr r12, =-15137 637 ldr r12, =-15137
@@ -826,9 +826,9 @@ jpeg_idct8h:
826 add r1, r1, r3 826 add r1, r1, r3
827 cmp r0, r2 827 cmp r0, r2
828 bcc 1b 828 bcc 1b
829 ldmia sp!, { r4-r11, pc } 829 ldmpc regs=r4-r11
830 .size jpeg_idct8h, .-jpeg_idct8h 830 .size jpeg_idct8h, .-jpeg_idct8h
831#else 831#else /* ARMv6+ */
832jpeg_idct8v: 832jpeg_idct8v:
833 stmdb sp!, { r4-r11, lr } 833 stmdb sp!, { r4-r11, lr }
834 add r2, r0, #128 834 add r2, r0, #128