qemu-riscv
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 10/13] target/riscv/insn_trans/trans_rvv.c.inc: use 'vlenb' i


From: Richard Henderson
Subject: Re: [PATCH 10/13] target/riscv/insn_trans/trans_rvv.c.inc: use 'vlenb' in MAXSZ()
Date: Sat, 13 Jan 2024 09:45:22 +1100
User-agent: Mozilla Thunderbird

On 1/13/24 08:38, Daniel Henrique Barboza wrote:
MAXSZ() returns the value in bytes. Now that we have access to vlenb
we don't need to compensate with a '-3' in the scale to use 'vlen'.

MAXSZ() now works as follows:

LMUL  lmul=scale  MAXSZ (vlenb >> -scale)
   1       0       vlenb
   2       1       vlenb << 1
   4       2       vlenb << 2
   8       3       vlenb << 3

Um, what?

  static inline uint32_t MAXSZ(DisasContext *s)
  {
-    int scale = s->lmul - 3;
-    return s->cfg_ptr->vlen >> -scale;
+    return s->cfg_ptr->vlenb >> -s->lmul;

There's no left-shift here, either before or after.
Bug?


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]