Commit acd858d91f73fe310627e2b92a8fdd529ec06ade
1 parent
3529b538
Handle EBase properly.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2613 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
1 additions
and
1 deletions
target-mips/helper.c
@@ -398,7 +398,7 @@ void do_interrupt (CPUState *env) | @@ -398,7 +398,7 @@ void do_interrupt (CPUState *env) | ||
398 | if (env->CP0_Status & (1 << CP0St_BEV)) { | 398 | if (env->CP0_Status & (1 << CP0St_BEV)) { |
399 | env->PC = (int32_t)0xBFC00200; | 399 | env->PC = (int32_t)0xBFC00200; |
400 | } else { | 400 | } else { |
401 | - env->PC = (int32_t)0x80000000; | 401 | + env->PC = (int32_t)(env->CP0_EBase & ~0x3ff); |
402 | } | 402 | } |
403 | env->PC += offset; | 403 | env->PC += offset; |
404 | env->CP0_Cause = (env->CP0_Cause & ~0x7C) | (cause << 2); | 404 | env->CP0_Cause = (env->CP0_Cause & ~0x7C) | (cause << 2); |