X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fmips%2Fmm%2Ftlbex32-r3k.S;h=cc4a4642e28c531c60456448cf691fe43eec0519;hb=9e1bf581d67d87a1d7fc0ea500729e3a03643a26;hp=04c11f1200e199c16b624d93569ddc9dccdb80d7;hpb=8d40237c730b8be87c1b80a5d96b9c603fefa829;p=linux-2.6.git diff --git a/arch/mips/mm/tlbex32-r3k.S b/arch/mips/mm/tlbex32-r3k.S index 04c11f120..cc4a4642e 100644 --- a/arch/mips/mm/tlbex32-r3k.S +++ b/arch/mips/mm/tlbex32-r3k.S @@ -24,6 +24,36 @@ #define TLB_OPTIMIZE /* If you are paranoid, disable this. */ + .text + .set mips1 + .set noreorder + + __INIT + + /* TLB refill, R[23]00 version */ + LEAF(except_vec0_r2300) + .set noat + .set mips1 + mfc0 k0, CP0_BADVADDR + lw k1, pgd_current # get pgd pointer + srl k0, k0, 22 + sll k0, k0, 2 + addu k1, k1, k0 + mfc0 k0, CP0_CONTEXT + lw k1, (k1) + and k0, k0, 0xffc + addu k1, k1, k0 + lw k0, (k1) + nop + mtc0 k0, CP0_ENTRYLO0 + mfc0 k1, CP0_EPC + tlbwr + jr k1 + rfe + END(except_vec0_r2300) + + __FINIT + /* ABUSE of CPP macros 101. */ /* After this macro runs, the pte faulted on is