mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 09:43:56 -06:00
target/riscv: Add Zvkg ISA extension support
This commit adds support for the Zvkg vector-crypto extension, which consists of the following instructions: * vgmul.vv * vghsh.vv Translation functions are defined in `target/riscv/insn_trans/trans_rvvk.c.inc` and helpers are defined in `target/riscv/vcrypto_helper.c`. Co-authored-by: Lawrence Hunter <lawrence.hunter@codethink.co.uk> [max.chou@sifive.com: Replaced vstart checking by TCG op] Signed-off-by: Lawrence Hunter <lawrence.hunter@codethink.co.uk> Signed-off-by: Nazar Kazakov <nazar.kazakov@codethink.co.uk> Signed-off-by: Max Chou <max.chou@sifive.com> Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> [max.chou@sifive.com: Exposed x-zvkg property] [max.chou@sifive.com: Replaced uint by int for cross win32 build] Message-ID: <20230711165917.2629866-13-max.chou@sifive.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
2350881c44
commit
767eb03548
6 changed files with 114 additions and 2 deletions
|
@ -531,3 +531,33 @@ static inline bool vsm3c_check(DisasContext *s, arg_rmrr *a)
|
|||
|
||||
GEN_VV_UNMASKED_TRANS(vsm3me_vv, vsm3me_check, ZVKSH_EGS)
|
||||
GEN_VI_UNMASKED_TRANS(vsm3c_vi, vsm3c_check, ZVKSH_EGS)
|
||||
|
||||
/*
|
||||
* Zvkg
|
||||
*/
|
||||
|
||||
#define ZVKG_EGS 4
|
||||
|
||||
static bool vgmul_check(DisasContext *s, arg_rmr *a)
|
||||
{
|
||||
int egw_bytes = ZVKG_EGS << s->sew;
|
||||
return s->cfg_ptr->ext_zvkg == true &&
|
||||
vext_check_isa_ill(s) &&
|
||||
require_rvv(s) &&
|
||||
MAXSZ(s) >= egw_bytes &&
|
||||
vext_check_ss(s, a->rd, a->rs2, a->vm) &&
|
||||
s->sew == MO_32;
|
||||
}
|
||||
|
||||
GEN_V_UNMASKED_TRANS(vgmul_vv, vgmul_check, ZVKG_EGS)
|
||||
|
||||
static bool vghsh_check(DisasContext *s, arg_rmrr *a)
|
||||
{
|
||||
int egw_bytes = ZVKG_EGS << s->sew;
|
||||
return s->cfg_ptr->ext_zvkg == true &&
|
||||
opivv_check(s, a) &&
|
||||
MAXSZ(s) >= egw_bytes &&
|
||||
s->sew == MO_32;
|
||||
}
|
||||
|
||||
GEN_VV_UNMASKED_TRANS(vghsh_vv, vghsh_check, ZVKG_EGS)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue