Message ID | 20240116205817.344178-10-dbarboza@ventanamicro.com |
---|---|
State | New |
Headers | show |
Series | target/riscv: add 'cpu->cfg.vlenb', remove 'cpu->cfg.vlen' | expand |
On Wed, Jan 17, 2024 at 7:02 AM Daniel Henrique Barboza <dbarboza@ventanamicro.com> wrote: > > Calculate the maximum vector size possible, 'max_sz', which is the size > in bytes 'vlenb' multiplied by the max value of LMUL (LMUL = 8, when > s->lmul = 3). > > 'max_sz' is then shifted right by 'scale', expressed as '3 - s->lmul', > which is clearer than doing 'scale = lmul - 3' and then using '-scale' > in the shift right. > > 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> Alistair > --- > target/riscv/insn_trans/trans_rvv.c.inc | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/target/riscv/insn_trans/trans_rvv.c.inc b/target/riscv/insn_trans/trans_rvv.c.inc > index d743675262..b4663b6e1f 100644 > --- a/target/riscv/insn_trans/trans_rvv.c.inc > +++ b/target/riscv/insn_trans/trans_rvv.c.inc > @@ -1160,12 +1160,12 @@ GEN_LDST_WHOLE_TRANS(vs8r_v, 8, 1, true) > /* > * MAXSZ returns the maximum vector size can be operated in bytes, > * which is used in GVEC IR when vl_eq_vlmax flag is set to true > - * to accerlate vector operation. > + * to accelerate vector operation. > */ > static inline uint32_t MAXSZ(DisasContext *s) > { > - int scale = s->lmul - 3; > - return s->cfg_ptr->vlen >> -scale; > + int max_sz = s->cfg_ptr->vlenb * 8; > + return max_sz >> (3 - s->lmul); > } > > static bool opivv_check(DisasContext *s, arg_rmrr *a) > -- > 2.43.0 > >
diff --git a/target/riscv/insn_trans/trans_rvv.c.inc b/target/riscv/insn_trans/trans_rvv.c.inc index d743675262..b4663b6e1f 100644 --- a/target/riscv/insn_trans/trans_rvv.c.inc +++ b/target/riscv/insn_trans/trans_rvv.c.inc @@ -1160,12 +1160,12 @@ GEN_LDST_WHOLE_TRANS(vs8r_v, 8, 1, true) /* * MAXSZ returns the maximum vector size can be operated in bytes, * which is used in GVEC IR when vl_eq_vlmax flag is set to true - * to accerlate vector operation. + * to accelerate vector operation. */ static inline uint32_t MAXSZ(DisasContext *s) { - int scale = s->lmul - 3; - return s->cfg_ptr->vlen >> -scale; + int max_sz = s->cfg_ptr->vlenb * 8; + return max_sz >> (3 - s->lmul); } static bool opivv_check(DisasContext *s, arg_rmrr *a)