Fix EFLAGS corruption by ROR r8/r16 imm instruction located at the end of the TB, similarly to commit 089305ac for the non-immediate case.
Reported-by: Hervé Poussineau <[email protected]> Cc: Richard Henderson <[email protected]> Signed-off-by: Aurelien Jarno <[email protected]> --- target-i386/translate.c | 1 + 1 file changed, 1 insertion(+) diff --git a/target-i386/translate.c b/target-i386/translate.c index 524a0b4..0aeccdb 100644 --- a/target-i386/translate.c +++ b/target-i386/translate.c @@ -1871,6 +1871,7 @@ static void gen_rot_rm_im(DisasContext *s, int ot, int op1, int op2, if (is_right) { tcg_gen_shri_tl(cpu_cc_src2, cpu_T[0], mask - 1); tcg_gen_shri_tl(cpu_cc_dst, cpu_T[0], mask); + tcg_gen_andi_tl(cpu_cc_dst, cpu_cc_dst, 1); } else { tcg_gen_shri_tl(cpu_cc_src2, cpu_T[0], mask); tcg_gen_andi_tl(cpu_cc_dst, cpu_T[0], 1); -- 1.7.10.4
