On 7/10/20 3:48 AM, frank.ch...@sifive.com wrote: > -static void vext_clear(void *tail, uint32_t cnt, uint32_t tot) > +static void vext_clear(void *tail, uint32_t vta, uint32_t cnt, uint32_t tot) > { > + /* tail element undisturbed */ > + if (vta == 0) { > + return; > + } > + > memset(tail, 0, tot - cnt); > }
First, this patch is doing too much. LMUL should definitely be split from VTA/VMA; they are not functionally related. Second, it would be in-spec to simply do nothing for VTA/VMA, except validate their setting within VTYPE. Third, the spec talks about setting "agnostic" values to 1s, not 0s as you are doing here. So there's definitely something wrong. r~