From 5ea1fe614a8a99b9c5aa18f79cae04c49d81e271 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?= Date: Sat, 29 May 2010 17:12:42 +0000 Subject: 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 --- firmware/target/arm/mmu-arm.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'firmware/target/arm/mmu-arm.S') 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 -- cgit v1.2.3