summaryrefslogtreecommitdiff
path: root/firmware/target/arm/mmu-arm.S
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2010-05-29 17:12:42 +0000
committerRafaël Carré <rafael.carre@gmail.com>2010-05-29 17:12:42 +0000
commit5ea1fe614a8a99b9c5aa18f79cae04c49d81e271 (patch)
tree6586b57ce4d91869d32576c1324b4919503824c0 /firmware/target/arm/mmu-arm.S
parentb7330ca2956293eca39287d6b95db46fd1907b55 (diff)
cpucache_invalidate: use bx reg instead of mov pc, reg to return
Using BX has the effect to set the T bit, so it can return to a thumb function With this change, rockbox runs fine on Clipv2 built with -mthumb (for most files which don't use inline 32 bits ARM assembly) Some other places use code which change the T bit on armv5 but not on armv4 so armv4 won't run See FS#6734 git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26386 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/mmu-arm.S')
-rw-r--r--firmware/target/arm/mmu-arm.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/firmware/target/arm/mmu-arm.S b/firmware/target/arm/mmu-arm.S
index 2ffc834a0c..e8482a8d94 100644
--- a/firmware/target/arm/mmu-arm.S
+++ b/firmware/target/arm/mmu-arm.S
@@ -396,5 +396,5 @@ cpucache_invalidate:
mov r2, lr @ save lr to r1, call uses r0 only
bl invalidate_dcache @ Clean and invalidate entire DCache
mcr p15, 0, r1, c7, c5, 0 @ Invalidate ICache (r1=0 from call)
- mov pc, r2 @
+ bx r2
.size invalidate_idcache, .-invalidate_idcache