aboutsummaryrefslogtreecommitdiff
path: root/python/qemu/utils/accel.py
diff options
context:
space:
mode:
authorChao Liu <lc00631@tecorigin.com>2025-03-10 10:35:25 +0800
committerAlistair Francis <alistair.francis@wdc.com>2025-03-19 16:40:42 +1000
commit4e9e2478dfd26480bbf50367a67b9be0edafef2b (patch)
treed4ed75d1710e00dd845b17a434024eb784fc8bf1 /python/qemu/utils/accel.py
parente83845316abcea9024eb5402a6c5eb8b092c79d5 (diff)
downloadqemu-4e9e2478dfd26480bbf50367a67b9be0edafef2b.zip
qemu-4e9e2478dfd26480bbf50367a67b9be0edafef2b.tar.gz
qemu-4e9e2478dfd26480bbf50367a67b9be0edafef2b.tar.bz2
target/riscv: fix handling of nop for vstart >= vl in some vector instruction
Recently, when I was writing a RISCV test, I found that when VL is set to 0, the instruction should be nop, but when I tested it, I found that QEMU will treat all elements as tail elements, and in the case of VTA=1, write all elements to 1. After troubleshooting, it was found that the vext_vx_rm_1 function was called in the vext_vx_rm_2, and then the vext_set_elems_1s function was called to process the tail element, but only VSTART >= vl was checked in the vext_vx_rm_1 function, which caused the tail element to still be processed even if it was returned in advance. So I've made the following change: Put VSTART_CHECK_EARLY_EXIT(env) at the beginning of the vext_vx_rm_2 function, so that the VSTART register is checked correctly. Fixes: df4252b2ec ("target/riscv/vector_helpers: do early exit when vstart >= vl") Signed-off-by: Chao Liu <lc00631@tecorigin.com> Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> Message-ID: <b2649f14915150be4c602d63cd3ea4adf47e9d75.1741573286.git.lc00631@tecorigin.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Diffstat (limited to 'python/qemu/utils/accel.py')
0 files changed, 0 insertions, 0 deletions