summaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
authorLEROY Christophe <christophe.leroy@c-s.fr>2014-08-29 11:14:39 +0200
committerScott Wood <scottwood@freescale.com>2014-09-04 19:28:56 -0500
commit111e32b2f6b3f9d348b549013dab8f5053acdf19 (patch)
tree34785d525cc911cc792250c71c0e0c834345b2c1 /arch/powerpc
parent41cacac63c98803e9fbb054db0b74f92a8c082e4 (diff)
downloadlinux-111e32b2f6b3f9d348b549013dab8f5053acdf19.tar.gz
linux-111e32b2f6b3f9d348b549013dab8f5053acdf19.tar.bz2
linux-111e32b2f6b3f9d348b549013dab8f5053acdf19.zip
powerpc/8xx: Duplicate two insns instead of branching
Branching takes two cycles on MPC8xx. Lets duplicate the two instructions and avoid the branching. Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/kernel/head_8xx.S6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S
index 1bdd7c13ddc1..fafff8dbd5d9 100644
--- a/arch/powerpc/kernel/head_8xx.S
+++ b/arch/powerpc/kernel/head_8xx.S
@@ -644,9 +644,11 @@ modified_instr:
/* special handling for r10,r11 since these are modified already */
153: mfspr r11, SPRN_SPRG_SCRATCH1 /* load r11 from SPRN_SPRG_SCRATCH1 */
- b 155f
+ add r10, r10, r11 /* add it */
+ mfctr r11 /* restore r11 */
+ b 151b
154: mfspr r11, SPRN_SPRG_SCRATCH0 /* load r10 from SPRN_SPRG_SCRATCH0 */
-155: add r10, r10, r11 /* add it */
+ add r10, r10, r11 /* add it */
mfctr r11 /* restore r11 */
b 151b
#endif