qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] target-arm: Don't overflow when calculating val


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH] target-arm: Don't overflow when calculating value for signed VABAL
Date: Tue, 12 Apr 2011 23:31:20 +0100

On 12 April 2011 22:32, Aurelien Jarno <address@hidden> wrote:
> On Mon, Apr 11, 2011 at 04:32:08PM +0100, Peter Maydell wrote:

>> @@ -1524,12 +1528,12 @@ uint64_t HELPER(neon_abdl_u16)(uint32_t a, uint32_t 
>> b)
>>  {
>>      uint64_t tmp;
>>      uint64_t result;
>> -    DO_ABD(result, a, b, uint8_t);
>> -    DO_ABD(tmp, a >> 8, b >> 8, uint8_t);
>> +    DO_ABD(result, a, b, uint8_t, uint32_t);
>> +    DO_ABD(tmp, a >> 8, b >> 8, uint8_t, uint32_t);
>>      result |= tmp << 16;
>> -    DO_ABD(tmp, a >> 16, b >> 16, uint8_t);
>> +    DO_ABD(tmp, a >> 16, b >> 16, uint8_t, uint32_t);
>>      result |= tmp << 32;
>> -    DO_ABD(tmp, a >> 24, b >> 24, uint8_t);
>> +    DO_ABD(tmp, a >> 24, b >> 24, uint8_t, uint32_t);
>>      result |= tmp << 48;
>>      return result;
>>  }
>
> Do we really need a 32-bit type for the computation here?

No, anything wider than 8 will do, but my guess was that in
practice 32 bits would be fractionally more efficient than
unnecessarily forcing 16 bit arithmetic. For that matter I
guess we could just say "int" and "unsigned int" since C
guarantees us at least 16 bits there.

-- PMM



reply via email to

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