target-mips: fix EntryHi.EHINV being cleared on TLB exception
While implementing TLB invalidation feature we forgot to modify part of code responsible for updating EntryHi during TLB exception. Consequently EntryHi.EHINV is unexpectedly cleared on the exception. Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
This commit is contained in:
parent
7f81dbb9a0
commit
701074a6fc
@ -396,6 +396,7 @@ static void raise_mmu_exception(CPUMIPSState *env, target_ulong address,
|
|||||||
env->CP0_Context = (env->CP0_Context & ~0x007fffff) |
|
env->CP0_Context = (env->CP0_Context & ~0x007fffff) |
|
||||||
((address >> 9) & 0x007ffff0);
|
((address >> 9) & 0x007ffff0);
|
||||||
env->CP0_EntryHi = (env->CP0_EntryHi & env->CP0_EntryHi_ASID_mask) |
|
env->CP0_EntryHi = (env->CP0_EntryHi & env->CP0_EntryHi_ASID_mask) |
|
||||||
|
(env->CP0_EntryHi & (1 << CP0EnHi_EHINV)) |
|
||||||
(address & (TARGET_PAGE_MASK << 1));
|
(address & (TARGET_PAGE_MASK << 1));
|
||||||
#if defined(TARGET_MIPS64)
|
#if defined(TARGET_MIPS64)
|
||||||
env->CP0_EntryHi &= env->SEGMask;
|
env->CP0_EntryHi &= env->SEGMask;
|
||||||
|
Loading…
Reference in New Issue
Block a user