Index: sys/arch/mips/mips/mipsX_subr.S =================================================================== RCS file: /cvsroot/src/sys/arch/mips/mips/mipsX_subr.S,v retrieving revision 1.77 diff -u -p -r1.77 mipsX_subr.S --- sys/arch/mips/mips/mipsX_subr.S 5 Aug 2016 10:39:49 -0000 1.77 +++ sys/arch/mips/mips/mipsX_subr.S 5 Aug 2016 12:09:39 -0000 @@ -2289,6 +2308,7 @@ LEAF_NOPROFILE(MIPSX(tlb_invalidate_addr tlbp # probe the entry in question COP0_SYNC mfc0 v0, MIPS_COP_0_TLB_INDEX # see what we got + MFC0_HAZARD bltz v0, 2f # index < 0 then skip li t2, MIPS_KSEG0_START # invalid address PTR_SLL v0, PGSHIFT | 1 # PAGE_SHIFT | 1 @@ -2311,13 +2331,13 @@ LEAF_NOPROFILE(MIPSX(tlb_invalidate_addr movz t1, zero, a3 # zero lo1 if V would not be set movn t2, a0, v0 # yes, keep VA the same #else - beqz v0, 1f # no valid entry - _SLL a2, a2, PG_V_LSHIFT # move V to MSB + _SLL a2, a2, PG_V_LSHIFT # move V to MSB _SRA a2, a2, PG_V_RSHIFT # fill with MSB and t0, t0, a2 # zero lo0 if V would not be set _SLL a3, a3, PG_V_LSHIFT # move V to MSB _SRA a3, a3, PG_V_RSHIFT # fill with MSB - and t1, t1, a3 # zero lo1 if V would not be set + beqz v0, 1f # no valid entry + and t1, t1, a3 # zero lo1 if V would not be set move t2, a0 # we need entryHi to be valid 1: #endif /* MIPSNN */