]> git.proxmox.com Git - qemu.git/commitdiff
target-i386: ROR r8/r16 imm instruction fix
authorAurelien Jarno <aurelien@aurel32.net>
Thu, 9 May 2013 17:36:41 +0000 (19:36 +0200)
committerAurelien Jarno <aurelien@aurel32.net>
Fri, 10 May 2013 17:59:54 +0000 (19:59 +0200)
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 <hpoussin@reactos.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-i386/translate.c

index 524a0b480e3ea899e412bea015db78be1f9f1307..0aeccdbc5969844ad6fa76ca92c0793c02b77fdd 100644 (file)
@@ -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);