summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2011-12-10 12:06:36 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2012-01-02 15:00:28 +0100
commite9557be0c13b2e11ee9c274edf7dd768fbc72ef5 (patch)
tree59314de9c825022bfd4e07550955866151dfc6cb /arch
parente0d23ec7c8a9ded9730b04ac12b22c18242b9159 (diff)
downloadbarebox-e9557be0c13b2e11ee9c274edf7dd768fbc72ef5.tar.gz
barebox-e9557be0c13b2e11ee9c274edf7dd768fbc72ef5.tar.xz
ARM cache-armv7: use thumb-2 instructions where necessary
Copied from the Kernel Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/cpu/cache-armv7.S8
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/arm/cpu/cache-armv7.S b/arch/arm/cpu/cache-armv7.S
index 5b8491efcf..f25dcfaa57 100644
--- a/arch/arm/cpu/cache-armv7.S
+++ b/arch/arm/cpu/cache-armv7.S
@@ -84,8 +84,12 @@ loop1:
loop2:
mov r9, r4 @ create working copy of max way size
loop3:
- orr r11, r10, r9, lsl r5 @ factor way and cache number into r11
- orr r11, r11, r7, lsl r2 @ factor index number into r11
+ARM( orr r11, r10, r9, lsl r5 ) @ factor way and cache number into r11
+ARM( orr r11, r11, r7, lsl r2 ) @ factor index number into r11
+THUMB( lsl r6, r9, r5 )
+THUMB( orr r11, r10, r6 ) @ factor way and cache number into r11
+THUMB( lsl r6, r7, r2 )
+THUMB( orr r11, r11, r6 ) @ factor index number into r11
mcr p15, 0, r11, c7, c14, 2 @ clean & invalidate by set/way
subs r9, r9, #1 @ decrement the way
bge loop3