diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2025-07-23 17:54:56 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2025-07-25 10:31:45 +0100 |
commit | 1c6aae5efbd28ac35003dea341364cd63a4515a1 (patch) | |
tree | 87e8a3d4d5062b009681c7a782021411d3571d7a /hw/core/cpu-user.c | |
parent | b79f944e09657f63b6dd6e78ac7966fdc7a3e6d1 (diff) | |
download | qemu-1c6aae5efbd28ac35003dea341364cd63a4515a1.zip qemu-1c6aae5efbd28ac35003dea341364cd63a4515a1.tar.gz qemu-1c6aae5efbd28ac35003dea341364cd63a4515a1.tar.bz2 |
target/arm: LD1Q, ST1Q are vector + scalar, not scalar + vector
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.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20250723165458.3509150-5-peter.maydell@linaro.org
Diffstat (limited to 'hw/core/cpu-user.c')
0 files changed, 0 insertions, 0 deletions