OSDN Git Service

target/arm: Implement MVE VCTP
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 13 Aug 2021 16:11:56 +0000 (17:11 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Wed, 25 Aug 2021 09:48:50 +0000 (10:48 +0100)
commit0f31e37c7f0b9577c6ce46304158ccd7c935006b
treefbcb2f0f86862ee0c3a48a32e2bd3a1cfcd7add6
parentfea3958fa11c75b4f3f335ac0ce4cfc5cf0af7de
target/arm: Implement MVE VCTP

Implement the MVE VCTP insn, which sets the VPR.P0 predicate bits so
as to predicate any element at index Rn or greater is predicated.  As
with VPNOT, this insn itself is predicable and subject to beatwise
execution.

The calculation of the mask is the same as is used to determine
ltpmask in mve_element_mask(), but we precalculate masklen in
generated code to avoid having to have 4 helpers specialized by size.

We put the decode line in with the low-overhead-loop insns in
t32.decode because it's logically part of that collection of insn
patterns, even though it is an MVE only insn.

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_helper.c
target/arm/t32.decode
target/arm/translate-a32.h
target/arm/translate-mve.c
target/arm/translate.c