aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/head_8xx.S
diff options
context:
space:
mode:
authorLEROY Christophe <christophe.leroy@c-s.fr>2014-08-29 05:14:37 -0400
committerScott Wood <scottwood@freescale.com>2014-09-04 20:13:31 -0400
commit3e43640346507caaa0b3b03882a93f641ace4e58 (patch)
treed90346180bc106c0d888d539456327d028bc8734 /arch/powerpc/kernel/head_8xx.S
parent92625d491e59719f5241bad31eb0f2295479b019 (diff)
powerpc/8xx: Remove loading of r10 at end of FixupDAR
Since commit 2321f33790a6c5b80322d907a92d5739e7521a13, r10 is not used anymore after FixupDAR. There is therefore no need to set it up with the value of DAR. Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr> Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'arch/powerpc/kernel/head_8xx.S')
-rw-r--r--arch/powerpc/kernel/head_8xx.S7
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/powerpc/kernel/head_8xx.S b/arch/powerpc/kernel/head_8xx.S
index 17158089833b..0bed748bbb85 100644
--- a/arch/powerpc/kernel/head_8xx.S
+++ b/arch/powerpc/kernel/head_8xx.S
@@ -498,7 +498,7 @@ DataTLBError:
498 mfspr r10, SPRN_DAR 498 mfspr r10, SPRN_DAR
499 cmpwi cr0, r10, 0x00f0 499 cmpwi cr0, r10, 0x00f0
500 beq- FixupDAR /* must be a buggy dcbX, icbi insn. */ 500 beq- FixupDAR /* must be a buggy dcbX, icbi insn. */
501DARFixed:/* Return from dcbx instruction bug workaround, r10 holds value of DAR */ 501DARFixed:/* Return from dcbx instruction bug workaround */
502#ifdef CONFIG_8xx_CPU6 502#ifdef CONFIG_8xx_CPU6
503 lwz r3, 8(r0) 503 lwz r3, 8(r0)
504#endif 504#endif
@@ -527,7 +527,7 @@ DARFixed:/* Return from dcbx instruction bug workaround, r10 holds value of DAR
527 527
528/* This is the procedure to calculate the data EA for buggy dcbx,dcbi instructions 528/* This is the procedure to calculate the data EA for buggy dcbx,dcbi instructions
529 * by decoding the registers used by the dcbx instruction and adding them. 529 * by decoding the registers used by the dcbx instruction and adding them.
530 * DAR is set to the calculated address and r10 also holds the EA on exit. 530 * DAR is set to the calculated address.
531 */ 531 */
532 /* define if you don't want to use self modifying code */ 532 /* define if you don't want to use self modifying code */
533#define NO_SELF_MODIFYING_CODE 533#define NO_SELF_MODIFYING_CODE
@@ -567,8 +567,7 @@ FixupDAR:/* Entry point for dcbx workaround. */
567 beq+ 142f 567 beq+ 142f
568 cmpwi cr0, r10, 1964 /* Is icbi? */ 568 cmpwi cr0, r10, 1964 /* Is icbi? */
569 beq+ 142f 569 beq+ 142f
570141: mfspr r10, SPRN_DAR /* r10 must hold DAR at exit */ 570141: b DARFixed /* Nope, go back to normal TLB processing */
571 b DARFixed /* Nope, go back to normal TLB processing */
572 571
573144: mfspr r10, SPRN_DSISR 572144: mfspr r10, SPRN_DSISR
574 rlwinm r10, r10,0,7,5 /* Clear store bit for buggy dcbst insn */ 573 rlwinm r10, r10,0,7,5 /* Clear store bit for buggy dcbst insn */