diff options
author | Rafaël Carré <rafael.carre@gmail.com> | 2010-05-29 17:12:42 +0000 |
---|---|---|
committer | Rafaël Carré <rafael.carre@gmail.com> | 2010-05-29 17:12:42 +0000 |
commit | 5ea1fe614a8a99b9c5aa18f79cae04c49d81e271 (patch) | |
tree | 6586b57ce4d91869d32576c1324b4919503824c0 /firmware/target/arm/mmu-arm.S | |
parent | b7330ca2956293eca39287d6b95db46fd1907b55 (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.S | 2 |
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 |