Message ID | 20211229021250.29804-1-frank.chang@sifive.com |
---|---|
Headers | show |
Series | Fix RVV calling incorrect RFV/RVD check functions bug | expand |
<frank.chang@sifive.com> 於 2021年12月29日 週三 上午10:13寫道: > From: Frank Chang <frank.chang@sifive.com> > > For vector widening and narrowing floating-point instructions, we should > use require_scale_rvf() instead of require_rvf() to check whether the > correspond RVF/RVD is enabled if either source or destination > floating-point operand is double-width of SEW. Otherwise, illegal > instruction exception should be raised. > > e.g. For SEW=16, if the source/destination floating-point operand is > double-width of SEW, RVF needs to be enabled. Otherwise, an illegal > instruction exception will be raised. Similarly, for SEW=32, RVD > needs to be enabled. > > Frank Chang (3): > target/riscv: rvv-1.0: Call the correct RVF/RVD check funtion for > widening fp insns > target/riscv: rvv-1.0: Call the correct RVF/RVD check funtion for > widening fp/int type-convert insns > target/riscv: rvv-1.0: Call the correct RVF/RVD check funtion for > narrowing fp/int type-convert insns Oops, I misspell the word "function" in the patch titles. I will correct it in my next patchset. Regards, Frank Chang > > target/riscv/insn_trans/trans_rvv.c.inc | 78 ++++++++++++++++++------- > 1 file changed, 57 insertions(+), 21 deletions(-) > > -- > 2.31.1 > > >
On Wed, Dec 29, 2021 at 10:43 AM Frank Chang <frank.chang@sifive.com> wrote: > <frank.chang@sifive.com> 於 2021年12月29日 週三 上午10:13寫道: > >> From: Frank Chang <frank.chang@sifive.com> >> >> For vector widening and narrowing floating-point instructions, we should >> use require_scale_rvf() instead of require_rvf() to check whether the >> correspond RVF/RVD is enabled if either source or destination >> floating-point operand is double-width of SEW. Otherwise, illegal >> instruction exception should be raised. >> >> e.g. For SEW=16, if the source/destination floating-point operand is >> double-width of SEW, RVF needs to be enabled. Otherwise, an illegal >> instruction exception will be raised. Similarly, for SEW=32, RVD >> needs to be enabled. >> >> Frank Chang (3): >> target/riscv: rvv-1.0: Call the correct RVF/RVD check funtion for >> widening fp insns >> target/riscv: rvv-1.0: Call the correct RVF/RVD check funtion for >> widening fp/int type-convert insns >> target/riscv: rvv-1.0: Call the correct RVF/RVD check funtion for >> narrowing fp/int type-convert insns > > > Oops, I misspell the word "function" in the patch titles. > I will correct it in my next patchset. > > Regards, > Frank Chang > I also missed the 'Signed-off-by' in this patch series. Will also fix it in my next-version patchset. Regards, Frank Chang > > >> > > >> target/riscv/insn_trans/trans_rvv.c.inc | 78 ++++++++++++++++++------- >> 1 file changed, 57 insertions(+), 21 deletions(-) >> >> -- >> 2.31.1 >> >> >>
From: Frank Chang <frank.chang@sifive.com> For vector widening and narrowing floating-point instructions, we should use require_scale_rvf() instead of require_rvf() to check whether the correspond RVF/RVD is enabled if either source or destination floating-point operand is double-width of SEW. Otherwise, illegal instruction exception should be raised. e.g. For SEW=16, if the source/destination floating-point operand is double-width of SEW, RVF needs to be enabled. Otherwise, an illegal instruction exception will be raised. Similarly, for SEW=32, RVD needs to be enabled. Frank Chang (3): target/riscv: rvv-1.0: Call the correct RVF/RVD check funtion for widening fp insns target/riscv: rvv-1.0: Call the correct RVF/RVD check funtion for widening fp/int type-convert insns target/riscv: rvv-1.0: Call the correct RVF/RVD check funtion for narrowing fp/int type-convert insns target/riscv/insn_trans/trans_rvv.c.inc | 78 ++++++++++++++++++------- 1 file changed, 57 insertions(+), 21 deletions(-) -- 2.31.1