summaryrefslogtreecommitdiff
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
parentb7330ca2956293eca39287d6b95db46fd1907b55 (diff)
downloadrockbox-5ea1fe614a8a99b9c5aa18f79cae04c49d81e271.tar.gz
rockbox-5ea1fe614a8a99b9c5aa18f79cae04c49d81e271.zip
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
-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:
396 mov r2, lr @ save lr to r1, call uses r0 only 396 mov r2, lr @ save lr to r1, call uses r0 only
397 bl invalidate_dcache @ Clean and invalidate entire DCache 397 bl invalidate_dcache @ Clean and invalidate entire DCache
398 mcr p15, 0, r1, c7, c5, 0 @ Invalidate ICache (r1=0 from call) 398 mcr p15, 0, r1, c7, c5, 0 @ Invalidate ICache (r1=0 from call)
399 mov pc, r2 @ 399 bx r2
400 .size invalidate_idcache, .-invalidate_idcache 400 .size invalidate_idcache, .-invalidate_idcache