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)
|
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();
|
RETURN();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user