Insert call to tcg_gen_ext_tl_i64(). Signed-off-by: Andreas Färber <andreas.faer...@web.de> --- target-i386/translate.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
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 { -- 1.7.7