Revision 686f3f26 target-i386/translate.c
b/target-i386/translate.c | ||
---|---|---|
3708 | 3708 |
modrm = ldub_code(s->pc++); |
3709 | 3709 |
reg = (modrm >> 3) & 7; |
3710 | 3710 |
gen_ldst_modrm(s, modrm, ot, OR_TMP0, 0); |
3711 |
/* NOTE: in order to handle the 0 case, we must load the |
|
3712 |
result. It could be optimized with a generated jump */ |
|
3713 |
gen_op_mov_TN_reg[ot][1][reg](); |
|
3711 | 3714 |
gen_op_bsx_T0_cc[ot - OT_WORD][b & 1](); |
3712 |
/* NOTE: we always write back the result. Intel doc says it is |
|
3713 |
undefined if T0 == 0 */ |
|
3714 |
gen_op_mov_reg_T0[ot][reg](); |
|
3715 |
gen_op_mov_reg_T1[ot][reg](); |
|
3715 | 3716 |
s->cc_op = CC_OP_LOGICB + ot; |
3716 | 3717 |
break; |
3717 | 3718 |
/************************/ |
Also available in: Unified diff