target/arm: Fix neon VTBL/VTBX for len > 1
authorRichard Henderson <richard.henderson@linaro.org>
Thu, 5 Nov 2020 17:11:26 +0000 (09:11 -0800)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 10 Nov 2020 11:03:48 +0000 (11:03 +0000)
commit604cef3e57eaeeef77074d78f6cf2eca1be11c62
treedeba4511b93c41a6e9f63c6a3509e578e91c3f5a
parentbec3c97e0cf9a80f555dc056cc60b53fcd43c424
target/arm: Fix neon VTBL/VTBX for len > 1

The helper function did not get updated when we reorganized
the vector register file for SVE.  Since then, the neon dregs
are non-sequential and cannot be simply indexed.

At the same time, make the helper function operate on 64-bit
quantities so that we do not have to call it twice.

Fixes: c39c2b9043e
Reported-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
[PMM: use aa32_vfp_dreg() rather than opencoding]
Message-id: 20201105171126.88014-1-richard.henderson@linaro.org
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
target/arm/helper.h
target/arm/op_helper.c
target/arm/translate-neon.c.inc