diff options
-rw-r--r-- | arch/mips/mm/tlbex.c | 23 |
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); |