qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] target-arm: Fix GE bits for v6media signed modu


From: Aurelien Jarno
Subject: Re: [Qemu-devel] [PATCH] target-arm: Fix GE bits for v6media signed modulo arithmetic
Date: Tue, 22 Mar 2011 07:54:13 +0100
User-agent: Mutt/1.5.20 (2009-06-14)

On Thu, Mar 10, 2011 at 06:51:49PM +0000, Peter Maydell wrote:
> Fix the signed modulo arithmetic helpers for the v6media
> instructions (SADD8, SSUB8, SADD16, SSUB16, SASX, SSAX) to set
> the GE bits correctly (based on the result of the add or subtract
> before it is truncated to 16 bits, not after).
> 
> Signed-off-by: Peter Maydell <address@hidden>
> ---
>  target-arm/helper.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)

Thanks, applied.

> diff --git a/target-arm/helper.c b/target-arm/helper.c
> index d360121..4f2b440 100644
> --- a/target-arm/helper.c
> +++ b/target-arm/helper.c
> @@ -2171,7 +2171,7 @@ static inline uint8_t sub8_usat(uint8_t a, uint8_t b)
>  /* Signed modulo arithmetic.  */
>  #define SARITH16(a, b, n, op) do { \
>      int32_t sum; \
> -    sum = (int16_t)((uint16_t)(a) op (uint16_t)(b)); \
> +    sum = (int32_t)(int16_t)(a) op (int32_t)(int16_t)(b); \
>      RESULT(sum, n, 16); \
>      if (sum >= 0) \
>          ge |= 3 << (n * 2); \
> @@ -2179,7 +2179,7 @@ static inline uint8_t sub8_usat(uint8_t a, uint8_t b)
>  
>  #define SARITH8(a, b, n, op) do { \
>      int32_t sum; \
> -    sum = (int8_t)((uint8_t)(a) op (uint8_t)(b)); \
> +    sum = (int32_t)(int8_t)(a) op (int32_t)(int8_t)(b); \
>      RESULT(sum, n, 8); \
>      if (sum >= 0) \
>          ge |= 1 << n; \
> -- 
> 1.7.1
> 
> 
> 

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
address@hidden                 http://www.aurel32.net



reply via email to

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