diff options
author | Ivan Klokov <ivan.klokov@syntacore.com> | 2024-03-14 14:57:03 -0300 |
---|---|---|
committer | Alistair Francis <alistair.francis@wdc.com> | 2024-03-22 15:24:37 +1000 |
commit | bac802ada83100c0c47f64ff219aba0e5357dcbd (patch) | |
tree | 0e32a6d9e7b760e0d02f2a2f1f187010a0cff5ac /net/stream.c | |
parent | d57dfe4b37ae542cec84a0cf751ecef313614cb6 (diff) |
target/riscv: enable 'vstart_eq_zero' in the end of insns
The vstart_eq_zero flag is updated at the beginning of the translation
phase from the env->vstart variable. During the execution phase all
functions will set env->vstart = 0 after a successful execution, but the
vstart_eq_zero flag remains the same as at the start of the block. This
will wrongly cause SIGILLs in translations that requires env->vstart = 0
and might be reading vstart_eq_zero = false.
This patch adds a new finalize_rvv_inst() helper that is called at the
end of each vector instruction that will both update vstart_eq_zero and
do a mark_vs_dirty().
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1976
Signed-off-by: Ivan Klokov <ivan.klokov@syntacore.com>
Signed-off-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20240314175704.478276-10-dbarboza@ventanamicro.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Diffstat (limited to 'net/stream.c')
0 files changed, 0 insertions, 0 deletions