target-mips: correct DERET instruction

Fix Debug Mode flag clearing, and when DERET is placed between LL and SC
do not make SC fail.

Backports commit fe87c2b36ae9c1c9a5279f3891f3bce1b573baa0 from qemu
This commit is contained in:
Leon Alrae 2018-02-14 17:01:25 -05:00 committed by Lioncash
parent 5ee529edd3
commit 884fe72f54
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7

View file

@ -2162,10 +2162,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 */