diff options
author | ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-04-05 23:18:13 +0000 |
---|---|---|
committer | ths <ths@c046a42c-6fe2-441c-8c8c-71466251a162> | 2007-04-05 23:18:13 +0000 |
commit | acd858d91f73fe310627e2b92a8fdd529ec06ade (patch) | |
tree | dd90d8a18c0c606134e764fece7a2ebdc9e342dc /target-mips/helper.c | |
parent | 3529b538ce91df31b7300ce2fbd838a2ca36e1fc (diff) |
Handle EBase properly.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2613 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-mips/helper.c')
-rw-r--r-- | target-mips/helper.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/target-mips/helper.c b/target-mips/helper.c index 2572050bb3..dc51814677 100644 --- a/target-mips/helper.c +++ b/target-mips/helper.c @@ -398,7 +398,7 @@ void do_interrupt (CPUState *env) if (env->CP0_Status & (1 << CP0St_BEV)) { env->PC = (int32_t)0xBFC00200; } else { - env->PC = (int32_t)0x80000000; + env->PC = (int32_t)(env->CP0_EBase & ~0x3ff); } env->PC += offset; env->CP0_Cause = (env->CP0_Cause & ~0x7C) | (cause << 2); |