This patch series fixes bugs in the Neon shift instructions VRSHR, VRSRA, VQRSHRN, VQRSHRUN, VRSHRN, VQSHRN, VSHRN, VQSHRUN, VRSHL, and VQRSHL. It is based on the v3 patchset Christophe sent recently, with some fixes for minor nits in those patches, plus some patches from me which fix problems with shifts by large shift counts and an issue with overlapping source and destination registers.
With this patchset qemu passes random instruction sequence testing for all these instruction patterns. Christophe Lyon (5): target-arm: Fix rounding constant addition for Neon shifts target-arm: Fix unsigned VRSHL.s8 and .s16 right shifts by type width target-arm: fix unsigned 64 bit right shifts. target-arm: fix Neon VQSHRN and VSHRN. target-arm: fix decoding of Neon 64 bit shifts. Peter Maydell (5): target-arm: Fix signed VRSHL by large shift counts target-arm: Fix saturated values for Neon right shifts target-arm: Fix signed VQRSHL by large shift counts target-arm: Fix unsigned VQRSHL by large shift counts target-arm: Fix shift by immediate and narrow where src,dest overlap target-arm/neon_helper.c | 232 +++++++++++++++++++++++++++++++++++++++------- target-arm/translate.c | 71 ++++++++++---- 2 files changed, 250 insertions(+), 53 deletions(-)