aboutsummaryrefslogtreecommitdiff
path: root/target-mips/op.c
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2006-06-26 20:29:47 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2006-06-26 20:29:47 +0000
commit3e382bc84ce93df505b48fc4e305fcc5f4ac4567 (patch)
tree9ba7eb0542f104fafafdcc5d04a0e41fbd9a868e /target-mips/op.c
parentbeac80cd437fb383eeaccc4224a4d7faebd77a23 (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/op.c')
-rw-r--r--target-mips/op.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/target-mips/op.c b/target-mips/op.c
index bc7f81949f..457551725d 100644
--- a/target-mips/op.c
+++ b/target-mips/op.c
@@ -1104,9 +1104,11 @@ void op_eret (void)
if (env->hflags & MIPS_HFLAG_ERL) {
env->PC = env->CP0_ErrorEPC;
env->hflags &= ~MIPS_HFLAG_ERL;
+ env->CP0_Status &= ~(1 << CP0St_ERL);
} else {
env->PC = env->CP0_EPC;
env->hflags &= ~MIPS_HFLAG_EXL;
+ env->CP0_Status &= ~(1 << CP0St_EXL);
}
env->CP0_LLAddr = 1;
}