Hi, This v2 contains changes proposed after the review from Richard. Most notable change is in patch 11, where we simplified our lives a bit and just calculated 'vlmax' using 'vlenb' instead of trying to use the TCG global 'cpu_vl'.
Patch 10 also changed a bit to avoid the negative shift we were doing in v1. Changes from v1: - patch 8: - instead of shifting sew, adjust the amount of shift rights to use 'vlenb' - patch 9: - adjust the shifts rights to use 'vlenb' instead of shifting 'vlenb' left beforehand - patch 10: - calc 'max_sz' before doing shift rights to retrieve MAX_SZ() - patches 11 and 12: - squashed together - calc 'vlmax' using the same logic from patch 9 in both functions - v1 link: https://lore.kernel.org/qemu-riscv/20240112213812.173521-1-dbarb...@ventanamicro.com/ Daniel Henrique Barboza (12): target/riscv: add 'vlenb' field in cpu->cfg target/riscv/csr.c: use 'vlenb' instead of 'vlen' target/riscv/gdbstub.c: use 'vlenb' instead of shifting 'vlen' target/riscv/insn_trans/trans_rvbf16.c.inc: use cpu->cfg.vlenb target/riscv/insn_trans/trans_rvv.c.inc: use 'vlenb' target/riscv/insn_trans/trans_rvvk.c.inc: use 'vlenb' target/riscv/vector_helper.c: use 'vlenb' target/riscv/vector_helper.c: use vlenb in HELPER(vsetvl) target/riscv/cpu.h: use 'vlenb' in vext_get_vlmax() target/riscv/insn_trans/trans_rvv.c.inc: use 'vlenb' in MAXSZ() trans_rvv.c.inc: use 'vlenb' to calc vlmax in trans_vrgather_v*() target/riscv/cpu.c: remove cpu->cfg.vlen target/riscv/cpu.c | 12 +- target/riscv/cpu.h | 6 +- target/riscv/cpu_cfg.h | 2 +- target/riscv/csr.c | 4 +- target/riscv/gdbstub.c | 6 +- target/riscv/insn_trans/trans_rvbf16.c.inc | 12 +- target/riscv/insn_trans/trans_rvv.c.inc | 152 ++++++++++----------- target/riscv/insn_trans/trans_rvvk.c.inc | 16 +-- target/riscv/tcg/tcg-cpu.c | 4 +- target/riscv/vector_helper.c | 26 ++-- 10 files changed, 124 insertions(+), 116 deletions(-) -- 2.43.0