diff --git a/target-i386/translate.c b/target-i386/translate.c index 6eb12ce1e33639433cc6da71ab3a2a87a8c02ebc..04ef295ce32861e158972d4ea947e3c96e674950 100644 --- a/target-i386/translate.c +++ b/target-i386/translate.c @@ -6643,23 +6643,13 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) tcg_gen_bswap64_i64(cpu_T[0], cpu_T[0]); gen_op_mov_reg_T0(OT_QUAD, reg); } else - { - TCGv_i32 tmp0; - gen_op_mov_TN_reg(OT_LONG, 0, reg); - - tmp0 = tcg_temp_new_i32(); - tcg_gen_trunc_i64_i32(tmp0, cpu_T[0]); - tcg_gen_bswap32_i32(tmp0, tmp0); - tcg_gen_extu_i32_i64(cpu_T[0], tmp0); - gen_op_mov_reg_T0(OT_LONG, reg); - } -#else +#endif { gen_op_mov_TN_reg(OT_LONG, 0, reg); - tcg_gen_bswap32_i32(cpu_T[0], cpu_T[0]); + tcg_gen_ext32u_tl(cpu_T[0], cpu_T[0]); + tcg_gen_bswap32_tl(cpu_T[0], cpu_T[0]); gen_op_mov_reg_T0(OT_LONG, reg); } -#endif break; case 0xd6: /* salc */ if (CODE64(s))