提交 60445285 编写于 作者: T ths

Fix writable length of the index register.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3431 c046a42c-6fe2-441c-8c8c-71466251a162
上级 7d307e9e
...@@ -1481,7 +1481,14 @@ void op_mfc0_desave (void) ...@@ -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();
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册