target/arm: Implement MVE LETP insn
commita454ea1e6d40bbd4632e4e66de90e802ae47a68e
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 14 Jun 2021 15:09:19 +0000 (14 16:09 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Wed, 16 Jun 2021 13:33:52 +0000 (16 14:33 +0100)
treee081462ab407845cedfd41a179e28769e865401e
parent40a36f003c0375bb9d347eeb3f60bac7bbeb82c3
target/arm: Implement MVE LETP insn

Implement the MVE LETP insn.  This is like the existing LE loop-end
insn, but it must perform an FPU-enabled check, and on loop-exit it
resets LTPSIZE to 4.

To accommodate the requirement to do something on loop-exit, we drop
the use of condlabel and instead manage both the TB exits manually,
in the same way we already do in trans_WLS().

The other MVE-specific change to the LE insn is that we must raise an
INVSTATE UsageFault insn if LTPSIZE is not 4.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20210614151007.4545-10-peter.maydell@linaro.org
target/arm/t32.decode
target/arm/translate.c