qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2/4] target-arm: Fix mixup in decoding of satura


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH 2/4] target-arm: Fix mixup in decoding of saturating add and sub
Date: Wed, 13 Oct 2010 17:00:14 +0100

On 11 October 2010 09:18, Johan Bengtsson <address@hidden> wrote:
> The thumb2 decoder contained a mixup between the bit controlling
> doubling and the bit controlling if the operation was an add or a sub.
>
> Signed-off-by: Johan Bengtsson <address@hidden>

I've confirmed against the ARM ARM that this patch matches
the T1 encodings of QADD, QDADD, QSUB, QDSUB, and
have tested that once the patch is applied qemu gives identical
results to the hardware for execution of these instructions.

Acked-by: Peter Maydell <address@hidden>

> ---
>  target-arm/translate.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/target-arm/translate.c b/target-arm/translate.c
> index f39efc5..b530a53 100644
> --- a/target-arm/translate.c
> +++ b/target-arm/translate.c
> @@ -7713,9 +7713,9 @@ static int disas_thumb2_insn(CPUState *env, 
> DisasContext *s, uint16_t insn_hw1)
>                 /* Saturating add/subtract.  */
>                 tmp = load_reg(s, rn);
>                 tmp2 = load_reg(s, rm);
> -                if (op & 2)
> -                    gen_helper_double_saturate(tmp, tmp);
>                 if (op & 1)
> +                    gen_helper_double_saturate(tmp, tmp);
> +                if (op & 2)
>                     gen_helper_sub_saturate(tmp, tmp2, tmp);
>                 else
>                     gen_helper_add_saturate(tmp, tmp, tmp2);
> --
> 1.7.0.4
>
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]