Revision 4136f33c target-i386/translate.c

b/target-i386/translate.c
3540 3540
                    gen_op_movw_eflags_T0_cpl0();
3541 3541
                }
3542 3542
            } else {
3543
                if (s->dflag) {
3544
                    gen_op_movl_eflags_T0();
3543
                if (s->cpl <= s->iopl) {
3544
                    if (s->dflag) {
3545
                        gen_op_movl_eflags_T0_io();
3546
                    } else {
3547
                        gen_op_movw_eflags_T0_io();
3548
                    }
3545 3549
                } else {
3546
                    gen_op_movw_eflags_T0();
3550
                    if (s->dflag) {
3551
                        gen_op_movl_eflags_T0();
3552
                    } else {
3553
                        gen_op_movw_eflags_T0();
3554
                    }
3547 3555
                }
3548 3556
            }
3549 3557
            gen_pop_update(s);
......
4265 4273
    [INDEX_op_movb_eflags_T0] = CC_S | CC_Z | CC_A | CC_P | CC_C,
4266 4274
    [INDEX_op_movw_eflags_T0] = CC_OSZAPC,
4267 4275
    [INDEX_op_movl_eflags_T0] = CC_OSZAPC,
4276
    [INDEX_op_movw_eflags_T0_io] = CC_OSZAPC,
4277
    [INDEX_op_movl_eflags_T0_io] = CC_OSZAPC,
4278
    [INDEX_op_movw_eflags_T0_cpl0] = CC_OSZAPC,
4279
    [INDEX_op_movl_eflags_T0_cpl0] = CC_OSZAPC,
4268 4280
    [INDEX_op_clc] = CC_C,
4269 4281
    [INDEX_op_stc] = CC_C,
4270 4282
    [INDEX_op_cmc] = CC_C,

Also available in: Unified diff