summaryrefslogtreecommitdiffstats
path: root/target-i386/translate.c
diff options
context:
space:
mode:
authoraurel322009-03-13 10:35:41 +0100
committeraurel322009-03-13 10:35:41 +0100
commit8777643e480f59c407d994bb4ee25cb39b96e36e (patch)
tree66943a0db6ddade4997d4e85a12e04dc46cc4312 /target-i386/translate.c
parenttarget-ppc: use the new bswap* TCG ops (diff)
downloadqemu-8777643e480f59c407d994bb4ee25cb39b96e36e.tar.gz
qemu-8777643e480f59c407d994bb4ee25cb39b96e36e.tar.xz
qemu-8777643e480f59c407d994bb4ee25cb39b96e36e.zip
target-i386: use the new bswap* TCG ops
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6836 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'target-i386/translate.c')
-rw-r--r--target-i386/translate.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/target-i386/translate.c b/target-i386/translate.c
index 6eb12ce1e3..04ef295ce3 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))