powerpc32: small optimisation in flush_icache_range()
authorChristophe Leroy <christophe.leroy@c-s.fr>
Tue, 9 Feb 2016 16:08:31 +0000 (17:08 +0100)
committerScott Wood <oss@buserror.net>
Fri, 11 Mar 2016 23:20:12 +0000 (17:20 -0600)
Inlining of _dcache_range() functions has shown that the compiler
does the same thing a bit better with one insn less

Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
Signed-off-by: Scott Wood <oss@buserror.net>
arch/powerpc/kernel/misc_32.S

index 09e1e5df0f345f7b49f7b7f1b06a9fa3133c46ff..3ec5a2204f2678b931f8ced62a62f74c56a9b095 100644 (file)
@@ -348,10 +348,9 @@ BEGIN_FTR_SECTION
        PURGE_PREFETCHED_INS
        blr                             /* for 601, do nothing */
 END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE)
-       li      r5,L1_CACHE_BYTES-1
-       andc    r3,r3,r5
+       rlwinm  r3,r3,0,0,31 - L1_CACHE_SHIFT
        subf    r4,r3,r4
-       add     r4,r4,r5
+       addi    r4,r4,L1_CACHE_BYTES - 1
        srwi.   r4,r4,L1_CACHE_SHIFT
        beqlr
        mtctr   r4