OSDN Git Service

target/arm: Implement MVE shift-by-scalar
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 13 Aug 2021 16:11:52 +0000 (17:11 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Wed, 25 Aug 2021 09:48:49 +0000 (10:48 +0100)
commit1b15a97d4cf99efdd60e60e0bfd2d185174ab0eb
tree3346a99e00c8a31495c0200d6e5d2a9ffd3b7352
parent6b895bf8fb088a04a91714a555d2b6234cf1e98d
target/arm: Implement MVE shift-by-scalar

Implement the MVE instructions which perform shifts by a scalar.
These are VSHL T2, VRSHL T2, VQSHL T1 and VQRSHL T2.  They take the
shift amount in a general purpose register and shift every element in
the vector by that amount.

Mostly we can reuse the helper functions for shift-by-immediate; we
do need two new helpers for VQRSHL.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
target/arm/helper-mve.h
target/arm/mve.decode
target/arm/mve_helper.c
target/arm/translate-mve.c