aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeon Alrae <leon.alrae@imgtec.com>2015-07-14 11:08:13 +0100
committerLeon Alrae <leon.alrae@imgtec.com>2015-07-15 14:07:25 +0100
commitfe87c2b36ae9c1c9a5279f3891f3bce1b573baa0 (patch)
tree8551e02eaa3bd9427dcf916a077070acf9282335
parent6a973e6b6584221bed89a01e755b88e58b496652 (diff)
target-mips: correct DERET instruction
Fix Debug Mode flag clearing, and when DERET is placed between LL and SC do not make SC fail. Signed-off-by: Leon Alrae <leon.alrae@imgtec.com> Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
-rw-r--r--target-mips/op_helper.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/target-mips/op_helper.c b/target-mips/op_helper.c
index d457a29f3e..9c28631dc1 100644
--- a/target-mips/op_helper.c
+++ b/target-mips/op_helper.c
@@ -2154,10 +2154,9 @@ void helper_deret(CPUMIPSState *env)
debug_pre_eret(env);
set_pc(env, env->CP0_DEPC);
- env->hflags &= MIPS_HFLAG_DM;
+ env->hflags &= ~MIPS_HFLAG_DM;
compute_hflags(env);
debug_post_eret(env);
- env->lladdr = 1;
}
#endif /* !CONFIG_USER_ONLY */