|
| 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~
| [Prev in Thread] | Current Thread | [Next in Thread] |