Handle EBase properly.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2613 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
3529b538ce
commit
acd858d91f
@ -398,7 +398,7 @@ void do_interrupt (CPUState *env)
|
|||||||
if (env->CP0_Status & (1 << CP0St_BEV)) {
|
if (env->CP0_Status & (1 << CP0St_BEV)) {
|
||||||
env->PC = (int32_t)0xBFC00200;
|
env->PC = (int32_t)0xBFC00200;
|
||||||
} else {
|
} else {
|
||||||
env->PC = (int32_t)0x80000000;
|
env->PC = (int32_t)(env->CP0_EBase & ~0x3ff);
|
||||||
}
|
}
|
||||||
env->PC += offset;
|
env->PC += offset;
|
||||||
env->CP0_Cause = (env->CP0_Cause & ~0x7C) | (cause << 2);
|
env->CP0_Cause = (env->CP0_Cause & ~0x7C) | (cause << 2);
|
||||||
|
Loading…
Reference in New Issue
Block a user