Fix writable length of the index register.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3431 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
7d307e9edc
commit
60445285a8
@ -1481,7 +1481,14 @@ void op_mfc0_desave (void)
|
||||
|
||||
void op_mtc0_index (void)
|
||||
{
|
||||
env->CP0_Index = (env->CP0_Index & 0x80000000) | (T0 % env->tlb->nb_tlb);
|
||||
int num = 1;
|
||||
unsigned int tmp = env->tlb->nb_tlb;
|
||||
|
||||
do {
|
||||
tmp >>= 1;
|
||||
num <<= 1;
|
||||
} while (tmp);
|
||||
env->CP0_Index = (env->CP0_Index & 0x80000000) | (T0 & (num - 1));
|
||||
RETURN();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user