diff options
author | ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-01-22 20:50:42 +0000 |
---|---|---|
committer | ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-01-22 20:50:42 +0000 |
commit | 3b1c8be4f4f1b5d4114320aaf41ec4872ab4598c (patch) | |
tree | 688f8bb16adc69fe1549605db772d44eb7c0ebeb /target-mips/op_helper.c | |
parent | c281868e2675efc737fd99961ab083456bcdab35 (diff) |
Fix PageMask handling, second part.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2345 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-mips/op_helper.c')
-rw-r--r-- | target-mips/op_helper.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/target-mips/op_helper.c b/target-mips/op_helper.c index 849482478d..4326b6621d 100644 --- a/target-mips/op_helper.c +++ b/target-mips/op_helper.c @@ -392,6 +392,7 @@ static void fill_tlb (int idx) tlb = &env->tlb[idx]; tlb->VPN = env->CP0_EntryHi & (int32_t)0xFFFFE000; tlb->ASID = env->CP0_EntryHi & 0xFF; + tlb->PageMask = env->CP0_PageMask; tlb->G = env->CP0_EntryLo0 & env->CP0_EntryLo1 & 1; tlb->V0 = (env->CP0_EntryLo0 & 2) != 0; tlb->D0 = (env->CP0_EntryLo0 & 4) != 0; @@ -473,6 +474,7 @@ void do_tlbr (void) mips_tlb_flush_extra(env, MIPS_TLB_NB); env->CP0_EntryHi = tlb->VPN | tlb->ASID; + env->CP0_PageMask = tlb->PageMask; env->CP0_EntryLo0 = tlb->G | (tlb->V0 << 1) | (tlb->D0 << 2) | (tlb->C0 << 3) | (tlb->PFN[0] >> 6); env->CP0_EntryLo1 = tlb->G | (tlb->V1 << 1) | (tlb->D1 << 2) | |