diff options
author | LEROY Christophe <christophe.leroy@c-s.fr> | 2014-08-29 05:14:39 -0400 |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2014-09-04 20:28:56 -0400 |
commit | 111e32b2f6b3f9d348b549013dab8f5053acdf19 (patch) | |
tree | 34785d525cc911cc792250c71c0e0c834345b2c1 /arch | |
parent | 41cacac63c98803e9fbb054db0b74f92a8c082e4 (diff) |
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')
-rw-r--r-- | arch/powerpc/kernel/head_8xx.S | 6 |
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: | |||
644 | 644 | ||
645 | /* special handling for r10,r11 since these are modified already */ | 645 | /* special handling for r10,r11 since these are modified already */ |
646 | 153: mfspr r11, SPRN_SPRG_SCRATCH1 /* load r11 from SPRN_SPRG_SCRATCH1 */ | 646 | 153: mfspr r11, SPRN_SPRG_SCRATCH1 /* load r11 from SPRN_SPRG_SCRATCH1 */ |
647 | b 155f | 647 | add r10, r10, r11 /* add it */ |
648 | mfctr r11 /* restore r11 */ | ||
649 | b 151b | ||
648 | 154: mfspr r11, SPRN_SPRG_SCRATCH0 /* load r10 from SPRN_SPRG_SCRATCH0 */ | 650 | 154: mfspr r11, SPRN_SPRG_SCRATCH0 /* load r10 from SPRN_SPRG_SCRATCH0 */ |
649 | 155: add r10, r10, r11 /* add it */ | 651 | add r10, r10, r11 /* add it */ |
650 | mfctr r11 /* restore r11 */ | 652 | mfctr r11 /* restore r11 */ |
651 | b 151b | 653 | b 151b |
652 | #endif | 654 | #endif |