On 7/23/25 09:54, Peter Maydell wrote:
Unlike the "LD1D (scalar + vector)" etc instructions, LD1Q is
vector + scalar. This means that:
* the vector and the scalar register are in opposite fields
in the encoding
* 31 in the scalar register field is XZR, not XSP
The same applies for ST1Q.
This means we can't reuse the trans_LD1_zprz() and trans_ST1_zprz()
functions for LD1Q and ST1Q. Split them out to use their own
trans functions.
Note that the change made here to sve.decode requires the decodetree
bugfix "decodetree: Infer argument set before inferring format" to
avoid a spurious compile-time error about "dtype".
Fixes: d2aa9a804ee678f ("target/arm: Implement LD1Q, ST1Q for SVE2p1")
Signed-off-by: Peter Maydell <peter.mayd...@linaro.org>
---
target/arm/tcg/sve.decode | 12 +++----
target/arm/tcg/translate-sve.c | 65 ++++++++++++++++++++++++++--------
2 files changed, 57 insertions(+), 20 deletions(-)
Reviewed-by: Richard Henderson <richard.hender...@linaro.org>
r~