diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/codecs/demac/libdemac/predictor-arm.S | 8 | ||||
-rw-r--r-- | apps/codecs/lib/mdct_arm.S | 6 | ||||
-rw-r--r-- | apps/codecs/libatrac/atrac3_arm.S | 6 | ||||
-rw-r--r-- | apps/codecs/libffmpegFLAC/arm.S | 2 | ||||
-rw-r--r-- | apps/codecs/libmad/dct32_arm.S | 2 | ||||
-rw-r--r-- | apps/codecs/libmad/imdct_l_arm.S | 5 | ||||
-rw-r--r-- | apps/codecs/libmad/synth_full_arm.S | 9 | ||||
-rw-r--r-- | apps/codecs/libmusepack/synth_filter_arm.S | 6 | ||||
-rw-r--r-- | apps/codecs/libspeex/filters_arm4.S | 10 | ||||
-rw-r--r-- | apps/codecs/libtta/filter_arm.S | 4 | ||||
-rw-r--r-- | apps/codecs/libwavpack/arm.S | 5 | ||||
-rw-r--r-- | apps/codecs/libwavpack/arml.S | 4 | ||||
-rw-r--r-- | apps/dsp_arm.S | 31 | ||||
-rw-r--r-- | apps/eq_arm.S | 2 | ||||
-rw-r--r-- | apps/plugins/mpegplayer/idct_arm.S | 8 | ||||
-rw-r--r-- | apps/plugins/mpegplayer/motion_comp_arm_s.S | 32 | ||||
-rw-r--r-- | apps/plugins/pacbox/pacbox_arm.S | 3 | ||||
-rw-r--r-- | apps/recorder/jpeg_idct_arm.S | 24 |
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: | |||
505 | done: | 505 | done: |
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 | ||
510 | move_hist: | 514 | move_hist: |
511 | @ dest = r11 (p->historybuffer) | 515 | @ dest = r11 (p->historybuffer) |
@@ -664,7 +668,11 @@ loopm: | |||
664 | donem: | 668 | donem: |
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 | ||
669 | move_histm: | 677 | move_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 | ||
132 | mdct_butterfly_32: | 132 | mdct_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) |
263 | mdct_butterfly_generic_loop: | 263 | mdct_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 |
224 | bitrev: | 224 | bitrev: |
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 | ||
140 | synth_full_even_sbsample: | 141 | synth_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 | ||
294 | csa: | 295 | csa: |
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 |
338 | synth_full_sp: | 339 | synth_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 |
94 | mpc_decoder_windowing_D: | 96 | mpc_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 | ||
197 | hybrid_filter_end: | 197 | hybrid_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: | |||
470 | common_exit: | 473 | common_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 | ||
318 | mpeg2_idct_add: | 320 | mpeg2_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 |
389 | 3: | 391 | 3: |
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 | ||
76 | MC_put_o_16_align2: | 76 | MC_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 | ||
88 | MC_put_o_16_align3: | 88 | MC_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 | ||
145 | MC_put_o_8_align2: | 145 | MC_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 | ||
157 | MC_put_o_8_align3: | 157 | MC_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 | ||
223 | MC_put_x_16_align1: | 223 | MC_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 | ||
239 | MC_put_x_16_align2: | 239 | MC_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 | ||
255 | MC_put_x_16_align3: | 255 | MC_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 | ||
302 | MC_put_x_8_align1: | 302 | MC_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 | ||
316 | MC_put_x_8_align2: | 316 | MC_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 | ||
330 | MC_put_x_8_align3: | 330 | MC_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 |
428 | 2: | 428 | 2: |
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 |
635 | 2: | 635 | 2: |
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+ */ |
832 | jpeg_idct8v: | 832 | jpeg_idct8v: |
833 | stmdb sp!, { r4-r11, lr } | 833 | stmdb sp!, { r4-r11, lr } |
834 | add r2, r0, #128 | 834 | add r2, r0, #128 |