mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 09:13:55 -06:00
target/riscv: Add Zvkned ISA extension support
This commit adds support for the Zvkned vector-crypto extension, which consists of the following instructions: * vaesef.[vv,vs] * vaesdf.[vv,vs] * vaesdm.[vv,vs] * vaesz.vs * vaesem.[vv,vs] * vaeskf1.vi * vaeskf2.vi 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> Co-authored-by: William Salmon <will.salmon@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: William Salmon <will.salmon@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: Imported aes-round.h and exposed x-zvkned property] [max.chou@sifive.com: Fixed endian issues and replaced the vstart & vl egs checking by helper function] [max.chou@sifive.com: Replaced bswap32 calls in aes key expanding] Message-ID: <20230711165917.2629866-10-max.chou@sifive.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
0602847289
commit
e972bf22f6
6 changed files with 381 additions and 1 deletions
|
@ -1250,3 +1250,17 @@ DEF_HELPER_6(vandn_vx_b, void, ptr, ptr, tl, ptr, env, i32)
|
|||
DEF_HELPER_6(vandn_vx_h, void, ptr, ptr, tl, ptr, env, i32)
|
||||
DEF_HELPER_6(vandn_vx_w, void, ptr, ptr, tl, ptr, env, i32)
|
||||
DEF_HELPER_6(vandn_vx_d, void, ptr, ptr, tl, ptr, env, i32)
|
||||
|
||||
DEF_HELPER_2(egs_check, void, i32, env)
|
||||
|
||||
DEF_HELPER_4(vaesef_vv, void, ptr, ptr, env, i32)
|
||||
DEF_HELPER_4(vaesef_vs, void, ptr, ptr, env, i32)
|
||||
DEF_HELPER_4(vaesdf_vv, void, ptr, ptr, env, i32)
|
||||
DEF_HELPER_4(vaesdf_vs, void, ptr, ptr, env, i32)
|
||||
DEF_HELPER_4(vaesem_vv, void, ptr, ptr, env, i32)
|
||||
DEF_HELPER_4(vaesem_vs, void, ptr, ptr, env, i32)
|
||||
DEF_HELPER_4(vaesdm_vv, void, ptr, ptr, env, i32)
|
||||
DEF_HELPER_4(vaesdm_vs, void, ptr, ptr, env, i32)
|
||||
DEF_HELPER_4(vaesz_vs, void, ptr, ptr, env, i32)
|
||||
DEF_HELPER_5(vaeskf1_vi, void, ptr, ptr, i32, env, i32)
|
||||
DEF_HELPER_5(vaeskf2_vi, void, ptr, ptr, i32, env, i32)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue