target/arm: Convert Neon 3-reg-diff long multiplies
commit3a1d9eb07b767a7592abca642af80906f9eab0ed
authorPeter Maydell <peter.maydell@linaro.org>
Tue, 16 Jun 2020 09:32:26 +0000 (16 10:32 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 16 Jun 2020 09:32:26 +0000 (16 10:32 +0100)
treed68710be71cc3d847cff2111a126a3a42f4d6c7a
parentf5b28401200ec95ba89552df3ecdcdc342f6b90b
target/arm: Convert Neon 3-reg-diff long multiplies

Convert the Neon 3-reg-diff insns VMULL, VMLAL and VMLSL; these perform
a 32x32->64 multiply with possible accumulate.

Note that for VMLSL we do the accumulate directly with a subtraction
rather than doing a negate-then-add as the old code did.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
target/arm/neon-dp.decode
target/arm/translate-neon.inc.c
target/arm/translate.c