OSDN Git Service

target-i386: fix movntsd on big-endian hosts
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 7 Jan 2015 16:36:27 +0000 (17:36 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 14 Jan 2015 09:38:57 +0000 (10:38 +0100)
This was accessing an XMM register's low half without going through XMM_Q.

Cc: qemu-stable@nongnu.org
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
target-i386/translate.c

index ebdc350..5af4300 100644 (file)
@@ -3074,7 +3074,8 @@ static void gen_sse(CPUX86State *env, DisasContext *s, int b,
                 goto illegal_op;
             gen_lea_modrm(env, s, modrm);
             if (b1 & 1) {
-                gen_stq_env_A0(s, offsetof(CPUX86State, xmm_regs[reg]));
+                gen_stq_env_A0(s, offsetof(CPUX86State,
+                                           xmm_regs[reg].XMM_Q(0)));
             } else {
                 tcg_gen_ld32u_tl(cpu_T[0], cpu_env, offsetof(CPUX86State,
                     xmm_regs[reg].XMM_L(0)));