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

Reply via email to