mbox series

[0/3] Fix RVV calling incorrect RFV/RVD check functions bug

Message ID 20211229021250.29804-1-frank.chang@sifive.com (mailing list archive)
Headers show
Series Fix RVV calling incorrect RFV/RVD check functions bug | expand

Message

Frank Chang Dec. 29, 2021, 2:12 a.m. UTC
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

Comments

Frank Chang Dec. 29, 2021, 2:43 a.m. UTC | #1
<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
>
>
>
Frank Chang Dec. 30, 2021, 6:53 a.m. UTC | #2
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
>>
>>
>>