diff mbox

[2/6] target-i386: Cleanup movd xmm, ea

Message ID 1323521895-26693-3-git-send-email-andreas.faerber@web.de
State New
Headers show

Commit Message

Andreas Färber Dec. 10, 2011, 12:58 p.m. UTC
Insert call to tcg_gen_ext_tl_i64().

Signed-off-by: Andreas Färber <andreas.faerber@web.de>
---
 target-i386/translate.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
diff mbox

Patch

diff --git a/target-i386/translate.c b/target-i386/translate.c
index 0ffc450..c929ef9 100644
--- a/target-i386/translate.c
+++ b/target-i386/translate.c
@@ -3192,10 +3192,14 @@  static void gen_sse(DisasContext *s, int b, target_ulong pc_start, int rex_r)
         case 0x16e: /* movd xmm, ea */
 #ifdef TARGET_X86_64
             if (s->dflag == 2) {
+                TCGv_i64 tmp;
                 gen_ldst_modrm(s, modrm, OT_QUAD, OR_TMP0, 0);
                 tcg_gen_addi_ptr(cpu_ptr0, cpu_env, 
                                  offsetof(CPUX86State,xmm_regs[reg]));
-                gen_helper_movq_mm_T0_xmm(cpu_ptr0, cpu_T[0]);
+                tmp = tcg_temp_new_i64();
+                tcg_gen_ext_tl_i64(tmp, cpu_T[0]);
+                gen_helper_movq_mm_T0_xmm(cpu_ptr0, tmp);
+                tcg_temp_free_i64(tmp);
             } else
 #endif
             {