summary refs log tree commit diff stats
path: root/include/qemu/host-utils.h
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2025-07-23 17:54:56 +0100
committerPeter Maydell <peter.maydell@linaro.org>2025-07-25 10:31:45 +0100
commit1c6aae5efbd28ac35003dea341364cd63a4515a1 (patch)
tree87e8a3d4d5062b009681c7a782021411d3571d7a /include/qemu/host-utils.h
parentb79f944e09657f63b6dd6e78ac7966fdc7a3e6d1 (diff)
downloadfocaccia-qemu-1c6aae5efbd28ac35003dea341364cd63a4515a1.tar.gz
focaccia-qemu-1c6aae5efbd28ac35003dea341364cd63a4515a1.zip
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 'include/qemu/host-utils.h')
0 files changed, 0 insertions, 0 deletions