[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/6] target-arm: Fix rounding constant addition
From: |
Christophe Lyon |
Subject: |
Re: [Qemu-devel] [PATCH 1/6] target-arm: Fix rounding constant addition for Neon shift instructions. |
Date: |
Tue, 15 Feb 2011 11:07:22 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.2.13) Gecko/20101207 Lightning/1.0b2 Thunderbird/3.1.7 |
On 14.02.2011 19:12, Peter Maydell wrote:
> On 11 February 2011 15:10, <address@hidden> wrote:
>> +uint32_t HELPER(neon_rshl_s32)(uint32_t valop, uint32_t shiftop)
>> +{
>> + int32_t dest;
>> + int32_t val = (int32_t)valop;
>> + int8_t shift = (int8_t)shiftop;
>> + if (shift >= 32) {
>> + dest = 0;
>> + } else if (shift < -32) {
>> + dest = val >> 31;
>
> This is the wrong answer: large rounding right shifts give zero.
>
>> + } else if (shift == -32) {
>> + dest = val >> 31;
>> + dest++;
>> + dest >>= 1;
>
> These three lines will always result in dest becoming
> 0 regardless of the input value.
>
You are right. Actually, I just intended to fix the case where
-32 < shift < 0, and merely re-instanciated the preceding macro with a known
size of 32.
You comments also apply to the 8 and 16 bits variants in that macro.
I am too respectful of existing code :-)
Christophe.
- [Qemu-devel] [PATCH v3 0/6] target-arm: Fix Neon shift instructions., christophe.lyon, 2011/02/11
- [Qemu-devel] [PATCH 6/6] target-arm: fix decoding of Neon 64 bit shifts., christophe.lyon, 2011/02/11
- [Qemu-devel] [PATCH 4/6] target-arm: fix saturated values for Neon right shifts., christophe.lyon, 2011/02/11
- [Qemu-devel] [PATCH 1/6] target-arm: Fix rounding constant addition for Neon shift instructions., christophe.lyon, 2011/02/11
- [Qemu-devel] [PATCH 2/6] target-arm: fix Neon right shifts with shift amount == input width., christophe.lyon, 2011/02/11
- [Qemu-devel] [PATCH 5/6] target-arm: fix Neon VQSHRN and VSHRN., christophe.lyon, 2011/02/11
- [Qemu-devel] [PATCH 3/6] target-arm: fix unsigned 64 bit right shifts., christophe.lyon, 2011/02/11
- Re: [Qemu-devel] [PATCH v3 0/6] target-arm: Fix Neon shift instructions., Peter Maydell, 2011/02/14