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-dbarboza@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