summaryrefslogtreecommitdiff
path: root/apps/recorder
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/recorder
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/recorder')
-rw-r--r--apps/recorder/jpeg_idct_arm.S24
1 files changed, 12 insertions, 12 deletions
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