On Wed, Jan 07, 2015 at 06:39:12PM +0100, Paolo Bonzini wrote: > This was accessing an XMM register's low half without going through XMM_Q. > > Cc: qemu-sta...@nongnu.org > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > target-i386/translate.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/target-i386/translate.c b/target-i386/translate.c > index ebdc350..5af4300 100644 > --- a/target-i386/translate.c > +++ b/target-i386/translate.c > @@ -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)));
Do we have (or will patch 4/4 introduce) the same bug on the tcg_gen_addi_ptr() calls that don't use the XMM_Q macro? -- Eduardo