diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2006-06-26 20:29:47 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2006-06-26 20:29:47 +0000 |
commit | 3e382bc84ce93df505b48fc4e305fcc5f4ac4567 (patch) | |
tree | 9ba7eb0542f104fafafdcc5d04a0e41fbd9a868e /target-mips/helper.c | |
parent | beac80cd437fb383eeaccc4224a4d7faebd77a23 (diff) |
consistent update of ERL and EXL
(Dirk Behme)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2028 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-mips/helper.c')
-rw-r--r-- | target-mips/helper.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/target-mips/helper.c b/target-mips/helper.c index 8325d48438..9c8e4f68df 100644 --- a/target-mips/helper.c +++ b/target-mips/helper.c @@ -332,7 +332,8 @@ void do_interrupt (CPUState *env) } else { env->CP0_ErrorEPC = env->PC; } - env->hflags = MIPS_HFLAG_ERL; + env->hflags |= MIPS_HFLAG_ERL; + env->CP0_Status |= (1 << CP0St_ERL); pc = 0xBFC00000; break; case EXCP_MCHECK: @@ -396,6 +397,7 @@ void do_interrupt (CPUState *env) pc = 0x80000000; } env->hflags |= MIPS_HFLAG_EXL; + env->CP0_Status |= (1 << CP0St_EXL); pc += offset; env->CP0_Cause = (env->CP0_Cause & ~0x7C) | (cause << 2); if (env->hflags & MIPS_HFLAG_BMASK) { |