summaryrefslogtreecommitdiff
path: root/apps/codecs/libmad/synth_full_arm.S
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2010-06-11 04:41:36 +0000
committerRafaël Carré <rafael.carre@gmail.com>2010-06-11 04:41:36 +0000
commit45c7498f59ad2889f2120a865a51043004eddd5d (patch)
tree1a62b0e8549a7f2750679de8d7dd3f82039c5719 /apps/codecs/libmad/synth_full_arm.S
parentfe7ca44471b309a0adea563cce947de9efb62ab5 (diff)
downloadrockbox-45c7498f59ad2889f2120a865a51043004eddd5d.tar.gz
rockbox-45c7498f59ad2889f2120a865a51043004eddd5d.zip
FS#11335 by me: make ARM assembly functions thumb-friendly
We can't pop into pc on ARMv4t when using thumb: the T bit won't be modified if we are returning to a thumb function Code running on ARMv4t should use the new ldrpc / ldmpc macros instead of ldr pc, [sp], #4 and ldm(cond) sp!, {regs, pc} No modification on pure ARM builds and ARMv5+ Note: USE_THUMB is currently never defined, no targets can currently be built with -mthumb, see FS#6734 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26756 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/codecs/libmad/synth_full_arm.S')
-rw-r--r--apps/codecs/libmad/synth_full_arm.S9
1 files changed, 5 insertions, 4 deletions
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: