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>
diff --git a/target-mips/op_helper.c b/target-mips/op_helper.c
index d457a29..9c28631 100644
--- a/target-mips/op_helper.c
+++ b/target-mips/op_helper.c
@@ -2154,10 +2154,9 @@
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 */