aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/mips/mm/tlbex.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index 6ea152552e51..2833dcb67b5a 100644
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
@@ -511,13 +511,19 @@ static void __cpuinit build_tlb_write_entry(u32 **p, struct uasm_label **l,
511 511
512 case CPU_R4600: 512 case CPU_R4600:
513 case CPU_R4700: 513 case CPU_R4700:
514 case CPU_R5000:
515 case CPU_R5000A:
516 uasm_i_nop(p); 514 uasm_i_nop(p);
517 tlbw(p); 515 tlbw(p);
518 uasm_i_nop(p); 516 uasm_i_nop(p);
519 break; 517 break;
520 518
519 case CPU_R5000:
520 case CPU_R5000A:
521 case CPU_NEVADA:
522 uasm_i_nop(p); /* QED specifies 2 nops hazard */
523 uasm_i_nop(p); /* QED specifies 2 nops hazard */
524 tlbw(p);
525 break;
526
521 case CPU_R4300: 527 case CPU_R4300:
522 case CPU_5KC: 528 case CPU_5KC:
523 case CPU_TX49XX: 529 case CPU_TX49XX:
@@ -551,19 +557,6 @@ static void __cpuinit build_tlb_write_entry(u32 **p, struct uasm_label **l,
551 tlbw(p); 557 tlbw(p);
552 break; 558 break;
553 559
554 case CPU_NEVADA:
555 uasm_i_nop(p); /* QED specifies 2 nops hazard */
556 uasm_i_nop(p); /* QED specifies 2 nops hazard */
557 /*
558 * This branch uses up a mtc0 hazard nop slot and saves
559 * a nop after the tlbw instruction.
560 */
561 uasm_bgezl_hazard(p, r, hazard_instance);
562 tlbw(p);
563 uasm_bgezl_label(l, p, hazard_instance);
564 hazard_instance++;
565 break;
566
567 case CPU_RM7000: 560 case CPU_RM7000:
568 uasm_i_nop(p); 561 uasm_i_nop(p);
569 uasm_i_nop(p); 562 uasm_i_nop(p);