Index: qemu/target-i386/op.c =================================================================== --- qemu.orig/target-i386/op.c +++ qemu/target-i386/op.c @@ -1248,6 +1248,13 @@ void OPPROTO op_movl_crN_T0(void) helper_movl_crN_T0(PARAM1); } +void OPPROTO op_geneflags(void) +{ + CC_SRC = cc_table[CC_OP].compute_all(); + CC_DST = 0; + CC_OP = CC_OP_EFLAGS; +} + #if !defined(CONFIG_USER_ONLY) void OPPROTO op_movtl_T0_cr8(void) { Index: qemu/target-i386/translate.c =================================================================== --- qemu.orig/target-i386/translate.c +++ qemu/target-i386/translate.c @@ -3154,6 +3154,12 @@ static target_ulong disas_insn(DisasCont target_ulong next_eip, tval; int rex_w, rex_r; + ////// DEBUG + if (s->cc_op != CC_OP_DYNAMIC) + gen_op_set_cc_op(s->cc_op); + gen_op_geneflags(); + s->cc_op = CC_OP_DYNAMIC; + /////////////////// s->pc = pc_start; prefixes = 0; aflag = s->code32;