target/riscv: rvv-1.0: Add Zve64f support for load and store insns
All Zve* extensions support all vector load and store instructions, except Zve64* extensions do not support EEW=64 for index values when XLEN=32. Signed-off-by: Frank Chang <frank.chang@sifive.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Message-id: 20220118014522.13613-4-frank.chang@sifive.com Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
c7a26fb2f6
commit
494104093f
@ -263,10 +263,21 @@ static bool vext_check_st_index(DisasContext *s, int vd, int vs2, int nf,
|
||||
uint8_t eew)
|
||||
{
|
||||
int8_t emul = eew - s->sew + s->lmul;
|
||||
return (emul >= -3 && emul <= 3) &&
|
||||
require_align(vs2, emul) &&
|
||||
require_align(vd, s->lmul) &&
|
||||
require_nf(vd, nf, s->lmul);
|
||||
bool ret = (emul >= -3 && emul <= 3) &&
|
||||
require_align(vs2, emul) &&
|
||||
require_align(vd, s->lmul) &&
|
||||
require_nf(vd, nf, s->lmul);
|
||||
|
||||
/*
|
||||
* All Zve* extensions support all vector load and store instructions,
|
||||
* except Zve64* extensions do not support EEW=64 for index values
|
||||
* when XLEN=32. (Section 18.2)
|
||||
*/
|
||||
if (get_xl(s) == MXL_RV32) {
|
||||
ret &= (!has_ext(s, RVV) && s->ext_zve64f ? eew != MO_64 : true);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user