[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: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH 1/6] target-arm: Fix rounding constant addition for Neon shift instructions. |
Date: |
Mon, 14 Feb 2011 18:12:59 +0000 |
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.
I'm going to post a patch which fixes these as part
of getting the answers right for VRSHL by large shift
counts in general.
-- PMM
- [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
- Re: [Qemu-devel] [PATCH 1/6] target-arm: Fix rounding constant addition for Neon shift instructions.,
Peter Maydell <=
- [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