target/arm: Implement MVE VCADD
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 17 Jun 2021 12:16:25 +0000 (13:16 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 24 Jun 2021 13:58:48 +0000 (14:58 +0100)
commit67ec113b119360092dee679ca0f5eca8ac60992c
tree6bf1cb50c8194f142949a20a6288cc1838460d8f
parent89bc4c4f78c2435fdf8dc10b650cfe73c75f1f2c
target/arm: Implement MVE VCADD

Implement the MVE VCADD insn, which performs a complex add with
rotate.  Note that the size=0b11 encoding is VSBC.

The architecture grants some leeway for the "destination and Vm
source overlap" case for the size MO_32 case, but we choose not to
make use of it, instead always calculating all 16 bytes worth of
results before setting the destination register.

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