[PATCH v2 10/52] disas/riscv: Drop explicit zero of rv_opcode_data fields
Richard Henderson <[email protected]>
| Newsgroups | org.nongnu.qemu-riscv,org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
Mechanical s/, NULL, 0, 0, 0 }/ }/ s/, 0, 0, 0 }/ }/ s/, NULL, 0, 0 }/ }/ s/, NULL, 0 }/ }/ Reviewed-by: Alistair Francis <[email protected]> Signed-off-by: Richard Henderson <[email protected]> --- disas/riscv-xlrbr.c | 18 +- disas/riscv-xthead.c | 210 ++--- disas/riscv-xventana.c | 6 +- disas/riscv.c | 1826 ++++++++++++++++++++-------------------- 4 files changed, 1030 insertions(+), 1030 deletions(-) diff --git a/disas/riscv-xlrbr.c b/disas/riscv-xlrbr.c index f61028fce9..d0092e9edd 100644 --- a/disas/riscv-xlrbr.c +++ b/disas/riscv-xlrbr.c @@ -25,15 +25,15 @@ typedef enum { } rv_xlrbr_op; static const rv_opcode_data xlrbr_opcode_data[] = { - { "illegal", rv_codec_illegal, rv_fmt_none, NULL, 0, 0, 0 }, - { "crc32.b", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "crc32.h", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "crc32.w", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "crc32.d", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "crc32c.b", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "crc32c.h", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "crc32c.w", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "crc32c.d", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, + { "illegal", rv_codec_illegal, rv_fmt_none }, + { "crc32.b", rv_codec_r, rv_fmt_rd_rs1 }, + { "crc32.h", rv_codec_r, rv_fmt_rd_rs1 }, + { "crc32.w", rv_codec_r, rv_fmt_rd_rs1 }, + { "crc32.d", rv_codec_r, rv_fmt_rd_rs1 }, + { "crc32c.b", rv_codec_r, rv_fmt_rd_rs1 }, + { "crc32c.h", rv_codec_r, rv_fmt_rd_rs1 }, + { "crc32c.w", rv_codec_r, rv_fmt_rd_rs1 }, + { "crc32c.d", rv_codec_r, rv_fmt_rd_rs1 }, }; void decode_xlrbr(rv_decode *dec, rv_isa isa) diff --git a/disas/riscv-xthead.c b/disas/riscv-xthead.c index 96f80bc8e5..757d6ff39f 100644 --- a/disas/riscv-xthead.c +++ b/disas/riscv-xthead.c @@ -128,122 +128,122 @@ typedef enum { } rv_xthead_op; static const rv_opcode_data xthead_opcode_data[] = { - { "th.illegal", rv_codec_illegal, rv_fmt_none, NULL, 0, 0, 0 }, + { "th.illegal", rv_codec_illegal, rv_fmt_none }, /* XTheadBa */ - { "th.addsl", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, + { "th.addsl", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, /* XTheadBb */ - { "th.srri", rv_codec_r2_imm6, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "th.srriw", rv_codec_r2_imm5, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "th.ext", rv_codec_r2_immhl, rv_fmt_rd_rs1_immh_imml, NULL, 0, 0, 0 }, - { "th.extu", rv_codec_r2_immhl, rv_fmt_rd_rs1_immh_imml, NULL, 0, 0, 0 }, - { "th.ff0", rv_codec_r2, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "th.ff1", rv_codec_r2, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "th.rev", rv_codec_r2, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "th.revw", rv_codec_r2, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "th.tstnbz", rv_codec_r2, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, + { "th.srri", rv_codec_r2_imm6, rv_fmt_rd_rs1_imm }, + { "th.srriw", rv_codec_r2_imm5, rv_fmt_rd_rs1_imm }, + { "th.ext", rv_codec_r2_immhl, rv_fmt_rd_rs1_immh_imml }, + { "th.extu", rv_codec_r2_immhl, rv_fmt_rd_rs1_immh_imml }, + { "th.ff0", rv_codec_r2, rv_fmt_rd_rs1 }, + { "th.ff1", rv_codec_r2, rv_fmt_rd_rs1 }, + { "th.rev", rv_codec_r2, rv_fmt_rd_rs1 }, + { "th.revw", rv_codec_r2, rv_fmt_rd_rs1 }, + { "th.tstnbz", rv_codec_r2, rv_fmt_rd_rs1 }, /* XTheadBs */ - { "th.tst", rv_codec_r2_imm6, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, + { "th.tst", rv_codec_r2_imm6, rv_fmt_rd_rs1_imm }, /* XTheadCmo */ - { "th.dcache.call", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "th.dcache.ciall", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "th.dcache.iall", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "th.dcache.cpa", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "th.dcache.cipa", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "th.dcache.ipa", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "th.dcache.cva", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "th.dcache.civa", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "th.dcache.iva", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "th.dcache.csw", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "th.dcache.cisw", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "th.dcache.isw", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "th.dcache.cpal1", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "th.dcache.cval1", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "th.icache.iall", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "th.icache.ialls", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "th.icache.ipa", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "th.icache.iva", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "th.l2cache.call", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "th.l2cache.ciall", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "th.l2cache.iall", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "th.dcache.call", rv_codec_none, rv_fmt_none }, + { "th.dcache.ciall", rv_codec_none, rv_fmt_none }, + { "th.dcache.iall", rv_codec_none, rv_fmt_none }, + { "th.dcache.cpa", rv_codec_r, rv_fmt_rs1 }, + { "th.dcache.cipa", rv_codec_r, rv_fmt_rs1 }, + { "th.dcache.ipa", rv_codec_r, rv_fmt_rs1 }, + { "th.dcache.cva", rv_codec_r, rv_fmt_rs1 }, + { "th.dcache.civa", rv_codec_r, rv_fmt_rs1 }, + { "th.dcache.iva", rv_codec_r, rv_fmt_rs1 }, + { "th.dcache.csw", rv_codec_r, rv_fmt_rs1 }, + { "th.dcache.cisw", rv_codec_r, rv_fmt_rs1 }, + { "th.dcache.isw", rv_codec_r, rv_fmt_rs1 }, + { "th.dcache.cpal1", rv_codec_r, rv_fmt_rs1 }, + { "th.dcache.cval1", rv_codec_r, rv_fmt_rs1 }, + { "th.icache.iall", rv_codec_none, rv_fmt_none }, + { "th.icache.ialls", rv_codec_none, rv_fmt_none }, + { "th.icache.ipa", rv_codec_r, rv_fmt_rs1 }, + { "th.icache.iva", rv_codec_r, rv_fmt_rs1 }, + { "th.l2cache.call", rv_codec_none, rv_fmt_none }, + { "th.l2cache.ciall", rv_codec_none, rv_fmt_none }, + { "th.l2cache.iall", rv_codec_none, rv_fmt_none }, /* XTheadCondMov */ - { "th.mveqz", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "th.mvnez", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "th.mveqz", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "th.mvnez", rv_codec_r, rv_fmt_rd_rs1_rs2 }, /* XTheadFMemIdx */ - { "th.flrd", rv_codec_r_imm2, rv_fmt_frd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.flrw", rv_codec_r_imm2, rv_fmt_frd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.flurd", rv_codec_r_imm2, rv_fmt_frd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.flurw", rv_codec_r_imm2, rv_fmt_frd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.fsrd", rv_codec_r_imm2, rv_fmt_frd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.fsrw", rv_codec_r_imm2, rv_fmt_frd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.fsurd", rv_codec_r_imm2, rv_fmt_frd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.fsurw", rv_codec_r_imm2, rv_fmt_frd_rs1_rs2_imm, NULL, 0, 0, 0 }, + { "th.flrd", rv_codec_r_imm2, rv_fmt_frd_rs1_rs2_imm }, + { "th.flrw", rv_codec_r_imm2, rv_fmt_frd_rs1_rs2_imm }, + { "th.flurd", rv_codec_r_imm2, rv_fmt_frd_rs1_rs2_imm }, + { "th.flurw", rv_codec_r_imm2, rv_fmt_frd_rs1_rs2_imm }, + { "th.fsrd", rv_codec_r_imm2, rv_fmt_frd_rs1_rs2_imm }, + { "th.fsrw", rv_codec_r_imm2, rv_fmt_frd_rs1_rs2_imm }, + { "th.fsurd", rv_codec_r_imm2, rv_fmt_frd_rs1_rs2_imm }, + { "th.fsurw", rv_codec_r_imm2, rv_fmt_frd_rs1_rs2_imm }, /* XTheadFmv */ - { "th.fmv.hw.x", rv_codec_r, rv_fmt_rd_frs1, NULL, 0, 0, 0 }, - { "th.fmv.x.hw", rv_codec_r, rv_fmt_rd_frs1, NULL, 0, 0, 0 }, + { "th.fmv.hw.x", rv_codec_r, rv_fmt_rd_frs1 }, + { "th.fmv.x.hw", rv_codec_r, rv_fmt_rd_frs1 }, /* XTheadMac */ - { "th.mula", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "th.mulaw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "th.mulah", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "th.muls", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "th.mulsw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "th.mulsh", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "th.mula", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "th.mulaw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "th.mulah", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "th.muls", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "th.mulsw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "th.mulsh", rv_codec_r, rv_fmt_rd_rs1_rs2 }, /* XTheadMemIdx */ - { "th.lbia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.lbib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml, NULL, 0, 0, 0 }, - { "th.lbuia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.lbuib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.lhia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.lhib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.lhuia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.lhuib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.lwia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.lwib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.lwuia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.lwuib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.ldia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.ldib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.sbia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.sbib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.shia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.shib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.swia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.swib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.sdia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.sdib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr, NULL, 0, 0, 0 }, - { "th.lrb", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.lrbu", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.lrh", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.lrhu", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.lrw", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.lrwu", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.lrd", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.srb", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.srh", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.srw", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.srd", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.lurb", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.lurbu", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.lurh", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.lurhu", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.lurw", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.lurwu", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.lurd", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.surb", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.surh", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.surw", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, - { "th.surd", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm, NULL, 0, 0, 0 }, + { "th.lbia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.lbib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml }, + { "th.lbuia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.lbuib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.lhia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.lhib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.lhuia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.lhuib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.lwia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.lwib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.lwuia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.lwuib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.ldia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.ldib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.sbia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.sbib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.shia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.shib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.swia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.swib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.sdia", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.sdib", rv_codec_r2_imm2_imm5, rv_fmt_rd_rs1_immh_imml_addr }, + { "th.lrb", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.lrbu", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.lrh", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.lrhu", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.lrw", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.lrwu", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.lrd", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.srb", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.srh", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.srw", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.srd", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.lurb", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.lurbu", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.lurh", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.lurhu", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.lurw", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.lurwu", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.lurd", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.surb", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.surh", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.surw", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, + { "th.surd", rv_codec_r_imm2, rv_fmt_rd_rs1_rs2_imm }, /* XTheadMemPair */ - { "th.ldd", rv_codec_r_imm2, rv_fmt_rd2_imm, NULL, 0, 0, 0 }, - { "th.lwd", rv_codec_r_imm2, rv_fmt_rd2_imm, NULL, 0, 0, 0 }, - { "th.lwud", rv_codec_r_imm2, rv_fmt_rd2_imm, NULL, 0, 0, 0 }, - { "th.sdd", rv_codec_r_imm2, rv_fmt_rd2_imm, NULL, 0, 0, 0 }, - { "th.swd", rv_codec_r_imm2, rv_fmt_rd2_imm, NULL, 0, 0, 0 }, + { "th.ldd", rv_codec_r_imm2, rv_fmt_rd2_imm }, + { "th.lwd", rv_codec_r_imm2, rv_fmt_rd2_imm }, + { "th.lwud", rv_codec_r_imm2, rv_fmt_rd2_imm }, + { "th.sdd", rv_codec_r_imm2, rv_fmt_rd2_imm }, + { "th.swd", rv_codec_r_imm2, rv_fmt_rd2_imm }, /* XTheadSync */ - { "th.sfence.vmas", rv_codec_r, rv_fmt_rs1_rs2, NULL, 0, 0, 0 }, - { "th.sync", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "th.sync.i", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "th.sync.is", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "th.sync.s", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "th.sfence.vmas", rv_codec_r, rv_fmt_rs1_rs2 }, + { "th.sync", rv_codec_none, rv_fmt_none }, + { "th.sync.i", rv_codec_none, rv_fmt_none }, + { "th.sync.is", rv_codec_none, rv_fmt_none }, + { "th.sync.s", rv_codec_none, rv_fmt_none }, }; void decode_xtheadba(rv_decode *dec, rv_isa isa) diff --git a/disas/riscv-xventana.c b/disas/riscv-xventana.c index 4539173d95..4fb9a29d0b 100644 --- a/disas/riscv-xventana.c +++ b/disas/riscv-xventana.c @@ -15,9 +15,9 @@ typedef enum { } rv_ventana_op; static const rv_opcode_data ventana_opcode_data[] = { - { "vt.illegal", rv_codec_illegal, rv_fmt_none, NULL, 0, 0, 0 }, - { "vt.maskc", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "vt.maskcn", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, + { "vt.illegal", rv_codec_illegal, rv_fmt_none }, + { "vt.maskc", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "vt.maskcn", rv_codec_r, rv_fmt_rd_rs1_rs2 }, }; void decode_xventanacondops(rv_decode *dec, rv_isa isa) diff --git a/disas/riscv.c b/disas/riscv.c index eb6d132a2c..ec40abb618 100644 --- a/disas/riscv.c +++ b/disas/riscv.c @@ -1657,233 +1657,233 @@ static uint32_t operand_lpl(rv_inst inst) /* instruction metadata */ static const rv_opcode_data rvi_opcode_data[] = { - { "illegal", rv_codec_illegal, rv_fmt_none, NULL, 0, 0, 0 }, - { "lui", rv_codec_u, rv_fmt_rd_uimm, NULL, 0, 0, 0 }, - { "auipc", rv_codec_u, rv_fmt_rd_uoffset, NULL, 0, 0, 0 }, - { "jal", rv_codec_uj, rv_fmt_rd_offset, rvcp_jal, 0, 0, 0 }, - { "jalr", rv_codec_i, rv_fmt_rd_rs1_offset, rvcp_jalr, 0, 0, 0 }, - { "beq", rv_codec_sb, rv_fmt_rs1_rs2_offset, rvcp_beq, 0, 0, 0 }, - { "bne", rv_codec_sb, rv_fmt_rs1_rs2_offset, rvcp_bne, 0, 0, 0 }, - { "blt", rv_codec_sb, rv_fmt_rs1_rs2_offset, rvcp_blt, 0, 0, 0 }, - { "bge", rv_codec_sb, rv_fmt_rs1_rs2_offset, rvcp_bge, 0, 0, 0 }, - { "bltu", rv_codec_sb, rv_fmt_rs1_rs2_offset, rvcp_bltu, 0, 0, 0 }, - { "bgeu", rv_codec_sb, rv_fmt_rs1_rs2_offset, rvcp_bgeu, 0, 0, 0 }, - { "lb", rv_codec_i, rv_fmt_rd_offset_rs1, NULL, 0, 0, 0 }, - { "lh", rv_codec_i, rv_fmt_rd_offset_rs1, NULL, 0, 0, 0 }, - { "lw", rv_codec_i, rv_fmt_rd_offset_rs1, NULL, 0, 0, 0 }, - { "lbu", rv_codec_i, rv_fmt_rd_offset_rs1, NULL, 0, 0, 0 }, - { "lhu", rv_codec_i, rv_fmt_rd_offset_rs1, NULL, 0, 0, 0 }, - { "sb", rv_codec_s, rv_fmt_rs2_offset_rs1, NULL, 0, 0, 0 }, - { "sh", rv_codec_s, rv_fmt_rs2_offset_rs1, NULL, 0, 0, 0 }, - { "sw", rv_codec_s, rv_fmt_rs2_offset_rs1, NULL, 0, 0, 0 }, - { "addi", rv_codec_i, rv_fmt_rd_rs1_imm, rvcp_addi, 0, 0, 0 }, - { "slti", rv_codec_i, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "sltiu", rv_codec_i, rv_fmt_rd_rs1_imm, rvcp_sltiu, 0, 0, 0 }, - { "xori", rv_codec_i, rv_fmt_rd_rs1_imm, rvcp_xori, 0, 0, 0 }, - { "ori", rv_codec_i, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "andi", rv_codec_i, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "slli", rv_codec_i_sh7, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "srli", rv_codec_i_sh7, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "srai", rv_codec_i_sh7, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "add", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sub", rv_codec_r, rv_fmt_rd_rs1_rs2, rvcp_sub, 0, 0, 0 }, - { "sll", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "slt", rv_codec_r, rv_fmt_rd_rs1_rs2, rvcp_slt, 0, 0, 0 }, - { "sltu", rv_codec_r, rv_fmt_rd_rs1_rs2, rvcp_sltu, 0, 0, 0 }, - { "xor", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "srl", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sra", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "or", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "and", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "fence", rv_codec_r_f, rv_fmt_pred_succ, NULL, 0, 0, 0 }, - { "fence.i", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "lwu", rv_codec_i, rv_fmt_rd_offset_rs1, NULL, 0, 0, 0 }, - { "ld", rv_codec_i, rv_fmt_rd_offset_rs1, NULL, 0, 0, 0 }, - { "sd", rv_codec_s, rv_fmt_rs2_offset_rs1, NULL, 0, 0, 0 }, - { "addiw", rv_codec_i, rv_fmt_rd_rs1_imm, rvcp_addiw, 0, 0, 0 }, - { "slliw", rv_codec_i_sh5, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "srliw", rv_codec_i_sh5, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "sraiw", rv_codec_i_sh5, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "addw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "subw", rv_codec_r, rv_fmt_rd_rs1_rs2, rvcp_subw, 0, 0, 0 }, - { "sllw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "srlw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sraw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "ldu", rv_codec_i, rv_fmt_rd_offset_rs1, NULL, 0, 0, 0 }, - { "lq", rv_codec_i, rv_fmt_rd_offset_rs1, NULL, 0, 0, 0 }, - { "sq", rv_codec_s, rv_fmt_rs2_offset_rs1, NULL, 0, 0, 0 }, - { "addid", rv_codec_i, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "sllid", rv_codec_i_sh6, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "srlid", rv_codec_i_sh6, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "sraid", rv_codec_i_sh6, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "addd", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "subd", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "slld", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "srld", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "srad", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "mul", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "mulh", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "mulhsu", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "mulhu", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "div", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "divu", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "rem", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "remu", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "mulw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "divw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "divuw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "remw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "remuw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "muld", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "divd", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "divud", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "remd", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "remud", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "lr.w", rv_codec_r_l, rv_fmt_aqrl_rd_rs1, NULL, 0, 0, 0 }, - { "sc.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoswap.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoadd.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoxor.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoor.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoand.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amomin.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amomax.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amominu.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amomaxu.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "lr.d", rv_codec_r_l, rv_fmt_aqrl_rd_rs1, NULL, 0, 0, 0 }, - { "sc.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoswap.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoadd.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoxor.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoor.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoand.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amomin.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amomax.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amominu.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amomaxu.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "lr.q", rv_codec_r_l, rv_fmt_aqrl_rd_rs1, NULL, 0, 0, 0 }, - { "sc.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoswap.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoadd.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoxor.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoor.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoand.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amomin.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amomax.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amominu.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amomaxu.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "ecall", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "ebreak", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "uret", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "sret", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "hret", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "mret", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "dret", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "sfence.vm", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "sfence.vma", rv_codec_r, rv_fmt_rs1_rs2, NULL, 0, 0, 0 }, - { "wfi", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "csrrw", rv_codec_i_csr, rv_fmt_rd_csr_rs1, rvcp_csrrw, 0, 0, 0 }, - { "csrrs", rv_codec_i_csr, rv_fmt_rd_csr_rs1, rvcp_csrrs, 0, 0, 0 }, - { "csrrc", rv_codec_i_csr, rv_fmt_rd_csr_rs1, NULL, 0, 0, 0 }, - { "csrrwi", rv_codec_i_csr, rv_fmt_rd_csr_zimm, rvcp_csrrwi, 0, 0, 0 }, - { "csrrsi", rv_codec_i_csr, rv_fmt_rd_csr_zimm, NULL, 0, 0, 0 }, - { "csrrci", rv_codec_i_csr, rv_fmt_rd_csr_zimm, NULL, 0, 0, 0 }, - { "flw", rv_codec_i, rv_fmt_frd_offset_rs1, NULL, 0, 0, 0 }, - { "fsw", rv_codec_s, rv_fmt_frs2_offset_rs1, NULL, 0, 0, 0 }, - { "fmadd.s", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3, NULL, 0, 0, 0 }, - { "fmsub.s", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3, NULL, 0, 0, 0 }, - { "fnmsub.s", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3, NULL, 0, 0, 0 }, - { "fnmadd.s", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3, NULL, 0, 0, 0 }, - { "fadd.s", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fsub.s", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fmul.s", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fdiv.s", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fsgnj.s", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnj_s, 0, 0, 0 }, - { "fsgnjn.s", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnjn_s, 0, 0, 0 }, - { "fsgnjx.s", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnjx_s, 0, 0, 0 }, - { "fmin.s", rv_codec_r, rv_fmt_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fmax.s", rv_codec_r, rv_fmt_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fsqrt.s", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "fle.s", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "flt.s", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "feq.s", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "fcvt.w.s", rv_codec_r_m, rv_fmt_rm_rd_frs1, NULL, 0, 0, 0 }, - { "fcvt.wu.s", rv_codec_r_m, rv_fmt_rm_rd_frs1, NULL, 0, 0, 0 }, - { "fcvt.s.w", rv_codec_r_m, rv_fmt_rm_frd_rs1, NULL, 0, 0, 0 }, - { "fcvt.s.wu", rv_codec_r_m, rv_fmt_rm_frd_rs1, NULL, 0, 0, 0 }, - { "fmv.x.s", rv_codec_r, rv_fmt_rd_frs1, NULL, 0, 0, 0 }, - { "fclass.s", rv_codec_r, rv_fmt_rd_frs1, NULL, 0, 0, 0 }, - { "fmv.s.x", rv_codec_r, rv_fmt_frd_rs1, NULL, 0, 0, 0 }, - { "fcvt.l.s", rv_codec_r_m, rv_fmt_rm_rd_frs1, NULL, 0, 0, 0 }, - { "fcvt.lu.s", rv_codec_r_m, rv_fmt_rm_rd_frs1, NULL, 0, 0, 0 }, - { "fcvt.s.l", rv_codec_r_m, rv_fmt_rm_frd_rs1, NULL, 0, 0, 0 }, - { "fcvt.s.lu", rv_codec_r_m, rv_fmt_rm_frd_rs1, NULL, 0, 0, 0 }, - { "fld", rv_codec_i, rv_fmt_frd_offset_rs1, NULL, 0, 0, 0 }, - { "fsd", rv_codec_s, rv_fmt_frs2_offset_rs1, NULL, 0, 0, 0 }, - { "fmadd.d", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3, NULL, 0, 0, 0 }, - { "fmsub.d", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3, NULL, 0, 0, 0 }, - { "fnmsub.d", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3, NULL, 0, 0, 0 }, - { "fnmadd.d", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3, NULL, 0, 0, 0 }, - { "fadd.d", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fsub.d", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fmul.d", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fdiv.d", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fsgnj.d", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnj_d, 0, 0, 0 }, - { "fsgnjn.d", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnjn_d, 0, 0, 0 }, - { "fsgnjx.d", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnjx_d, 0, 0, 0 }, - { "fmin.d", rv_codec_r, rv_fmt_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fmax.d", rv_codec_r, rv_fmt_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fcvt.s.d", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "fcvt.d.s", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "fsqrt.d", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "fle.d", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "flt.d", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "feq.d", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "fcvt.w.d", rv_codec_r_m, rv_fmt_rm_rd_frs1, NULL, 0, 0, 0 }, - { "fcvt.wu.d", rv_codec_r_m, rv_fmt_rm_rd_frs1, NULL, 0, 0, 0 }, - { "fcvt.d.w", rv_codec_r_m, rv_fmt_rm_frd_rs1, NULL, 0, 0, 0 }, - { "fcvt.d.wu", rv_codec_r_m, rv_fmt_rm_frd_rs1, NULL, 0, 0, 0 }, - { "fclass.d", rv_codec_r, rv_fmt_rd_frs1, NULL, 0, 0, 0 }, - { "fcvt.l.d", rv_codec_r_m, rv_fmt_rm_rd_frs1, NULL, 0, 0, 0 }, - { "fcvt.lu.d", rv_codec_r_m, rv_fmt_rm_rd_frs1, NULL, 0, 0, 0 }, - { "fmv.x.d", rv_codec_r, rv_fmt_rd_frs1, NULL, 0, 0, 0 }, - { "fcvt.d.l", rv_codec_r_m, rv_fmt_rm_frd_rs1, NULL, 0, 0, 0 }, - { "fcvt.d.lu", rv_codec_r_m, rv_fmt_rm_frd_rs1, NULL, 0, 0, 0 }, - { "fmv.d.x", rv_codec_r, rv_fmt_frd_rs1, NULL, 0, 0, 0 }, - { "flq", rv_codec_i, rv_fmt_frd_offset_rs1, NULL, 0, 0, 0 }, - { "fsq", rv_codec_s, rv_fmt_frs2_offset_rs1, NULL, 0, 0, 0 }, - { "fmadd.q", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3, NULL, 0, 0, 0 }, - { "fmsub.q", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3, NULL, 0, 0, 0 }, - { "fnmsub.q", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3, NULL, 0, 0, 0 }, - { "fnmadd.q", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3, NULL, 0, 0, 0 }, - { "fadd.q", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fsub.q", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fmul.q", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fdiv.q", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fsgnj.q", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnj_q, 0, 0, 0 }, - { "fsgnjn.q", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnjn_q, 0, 0, 0 }, - { "fsgnjx.q", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnjx_q, 0, 0, 0 }, - { "fmin.q", rv_codec_r, rv_fmt_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fmax.q", rv_codec_r, rv_fmt_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fcvt.s.q", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "fcvt.q.s", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "fcvt.d.q", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "fcvt.q.d", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "fsqrt.q", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "fle.q", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "flt.q", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "feq.q", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "fcvt.w.q", rv_codec_r_m, rv_fmt_rm_rd_frs1, NULL, 0, 0, 0 }, - { "fcvt.wu.q", rv_codec_r_m, rv_fmt_rm_rd_frs1, NULL, 0, 0, 0 }, - { "fcvt.q.w", rv_codec_r_m, rv_fmt_rm_frd_rs1, NULL, 0, 0, 0 }, - { "fcvt.q.wu", rv_codec_r_m, rv_fmt_rm_frd_rs1, NULL, 0, 0, 0 }, - { "fclass.q", rv_codec_r, rv_fmt_rd_frs1, NULL, 0, 0, 0 }, - { "fcvt.l.q", rv_codec_r_m, rv_fmt_rm_rd_frs1, NULL, 0, 0, 0 }, - { "fcvt.lu.q", rv_codec_r_m, rv_fmt_rm_rd_frs1, NULL, 0, 0, 0 }, - { "fcvt.q.l", rv_codec_r_m, rv_fmt_rm_frd_rs1, NULL, 0, 0, 0 }, - { "fcvt.q.lu", rv_codec_r_m, rv_fmt_rm_frd_rs1, NULL, 0, 0, 0 }, - { "fmv.x.q", rv_codec_r, rv_fmt_rd_frs1, NULL, 0, 0, 0 }, - { "fmv.q.x", rv_codec_r, rv_fmt_frd_rs1, NULL, 0, 0, 0 }, + { "illegal", rv_codec_illegal, rv_fmt_none }, + { "lui", rv_codec_u, rv_fmt_rd_uimm }, + { "auipc", rv_codec_u, rv_fmt_rd_uoffset }, + { "jal", rv_codec_uj, rv_fmt_rd_offset, rvcp_jal }, + { "jalr", rv_codec_i, rv_fmt_rd_rs1_offset, rvcp_jalr }, + { "beq", rv_codec_sb, rv_fmt_rs1_rs2_offset, rvcp_beq }, + { "bne", rv_codec_sb, rv_fmt_rs1_rs2_offset, rvcp_bne }, + { "blt", rv_codec_sb, rv_fmt_rs1_rs2_offset, rvcp_blt }, + { "bge", rv_codec_sb, rv_fmt_rs1_rs2_offset, rvcp_bge }, + { "bltu", rv_codec_sb, rv_fmt_rs1_rs2_offset, rvcp_bltu }, + { "bgeu", rv_codec_sb, rv_fmt_rs1_rs2_offset, rvcp_bgeu }, + { "lb", rv_codec_i, rv_fmt_rd_offset_rs1 }, + { "lh", rv_codec_i, rv_fmt_rd_offset_rs1 }, + { "lw", rv_codec_i, rv_fmt_rd_offset_rs1 }, + { "lbu", rv_codec_i, rv_fmt_rd_offset_rs1 }, + { "lhu", rv_codec_i, rv_fmt_rd_offset_rs1 }, + { "sb", rv_codec_s, rv_fmt_rs2_offset_rs1 }, + { "sh", rv_codec_s, rv_fmt_rs2_offset_rs1 }, + { "sw", rv_codec_s, rv_fmt_rs2_offset_rs1 }, + { "addi", rv_codec_i, rv_fmt_rd_rs1_imm, rvcp_addi }, + { "slti", rv_codec_i, rv_fmt_rd_rs1_imm }, + { "sltiu", rv_codec_i, rv_fmt_rd_rs1_imm, rvcp_sltiu }, + { "xori", rv_codec_i, rv_fmt_rd_rs1_imm, rvcp_xori }, + { "ori", rv_codec_i, rv_fmt_rd_rs1_imm }, + { "andi", rv_codec_i, rv_fmt_rd_rs1_imm }, + { "slli", rv_codec_i_sh7, rv_fmt_rd_rs1_imm }, + { "srli", rv_codec_i_sh7, rv_fmt_rd_rs1_imm }, + { "srai", rv_codec_i_sh7, rv_fmt_rd_rs1_imm }, + { "add", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sub", rv_codec_r, rv_fmt_rd_rs1_rs2, rvcp_sub }, + { "sll", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "slt", rv_codec_r, rv_fmt_rd_rs1_rs2, rvcp_slt }, + { "sltu", rv_codec_r, rv_fmt_rd_rs1_rs2, rvcp_sltu }, + { "xor", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "srl", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sra", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "or", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "and", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "fence", rv_codec_r_f, rv_fmt_pred_succ }, + { "fence.i", rv_codec_none, rv_fmt_none }, + { "lwu", rv_codec_i, rv_fmt_rd_offset_rs1 }, + { "ld", rv_codec_i, rv_fmt_rd_offset_rs1 }, + { "sd", rv_codec_s, rv_fmt_rs2_offset_rs1 }, + { "addiw", rv_codec_i, rv_fmt_rd_rs1_imm, rvcp_addiw }, + { "slliw", rv_codec_i_sh5, rv_fmt_rd_rs1_imm }, + { "srliw", rv_codec_i_sh5, rv_fmt_rd_rs1_imm }, + { "sraiw", rv_codec_i_sh5, rv_fmt_rd_rs1_imm }, + { "addw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "subw", rv_codec_r, rv_fmt_rd_rs1_rs2, rvcp_subw }, + { "sllw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "srlw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sraw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "ldu", rv_codec_i, rv_fmt_rd_offset_rs1 }, + { "lq", rv_codec_i, rv_fmt_rd_offset_rs1 }, + { "sq", rv_codec_s, rv_fmt_rs2_offset_rs1 }, + { "addid", rv_codec_i, rv_fmt_rd_rs1_imm }, + { "sllid", rv_codec_i_sh6, rv_fmt_rd_rs1_imm }, + { "srlid", rv_codec_i_sh6, rv_fmt_rd_rs1_imm }, + { "sraid", rv_codec_i_sh6, rv_fmt_rd_rs1_imm }, + { "addd", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "subd", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "slld", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "srld", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "srad", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "mul", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "mulh", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "mulhsu", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "mulhu", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "div", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "divu", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "rem", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "remu", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "mulw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "divw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "divuw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "remw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "remuw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "muld", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "divd", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "divud", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "remd", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "remud", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "lr.w", rv_codec_r_l, rv_fmt_aqrl_rd_rs1 }, + { "sc.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoswap.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoadd.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoxor.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoor.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoand.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amomin.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amomax.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amominu.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amomaxu.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "lr.d", rv_codec_r_l, rv_fmt_aqrl_rd_rs1 }, + { "sc.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoswap.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoadd.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoxor.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoor.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoand.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amomin.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amomax.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amominu.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amomaxu.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "lr.q", rv_codec_r_l, rv_fmt_aqrl_rd_rs1 }, + { "sc.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoswap.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoadd.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoxor.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoor.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoand.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amomin.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amomax.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amominu.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amomaxu.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "ecall", rv_codec_none, rv_fmt_none }, + { "ebreak", rv_codec_none, rv_fmt_none }, + { "uret", rv_codec_none, rv_fmt_none }, + { "sret", rv_codec_none, rv_fmt_none }, + { "hret", rv_codec_none, rv_fmt_none }, + { "mret", rv_codec_none, rv_fmt_none }, + { "dret", rv_codec_none, rv_fmt_none }, + { "sfence.vm", rv_codec_r, rv_fmt_rs1 }, + { "sfence.vma", rv_codec_r, rv_fmt_rs1_rs2 }, + { "wfi", rv_codec_none, rv_fmt_none }, + { "csrrw", rv_codec_i_csr, rv_fmt_rd_csr_rs1, rvcp_csrrw }, + { "csrrs", rv_codec_i_csr, rv_fmt_rd_csr_rs1, rvcp_csrrs }, + { "csrrc", rv_codec_i_csr, rv_fmt_rd_csr_rs1 }, + { "csrrwi", rv_codec_i_csr, rv_fmt_rd_csr_zimm, rvcp_csrrwi }, + { "csrrsi", rv_codec_i_csr, rv_fmt_rd_csr_zimm }, + { "csrrci", rv_codec_i_csr, rv_fmt_rd_csr_zimm }, + { "flw", rv_codec_i, rv_fmt_frd_offset_rs1 }, + { "fsw", rv_codec_s, rv_fmt_frs2_offset_rs1 }, + { "fmadd.s", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3 }, + { "fmsub.s", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3 }, + { "fnmsub.s", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3 }, + { "fnmadd.s", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3 }, + { "fadd.s", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2 }, + { "fsub.s", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2 }, + { "fmul.s", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2 }, + { "fdiv.s", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2 }, + { "fsgnj.s", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnj_s }, + { "fsgnjn.s", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnjn_s }, + { "fsgnjx.s", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnjx_s }, + { "fmin.s", rv_codec_r, rv_fmt_frd_frs1_frs2 }, + { "fmax.s", rv_codec_r, rv_fmt_frd_frs1_frs2 }, + { "fsqrt.s", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "fle.s", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "flt.s", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "feq.s", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "fcvt.w.s", rv_codec_r_m, rv_fmt_rm_rd_frs1 }, + { "fcvt.wu.s", rv_codec_r_m, rv_fmt_rm_rd_frs1 }, + { "fcvt.s.w", rv_codec_r_m, rv_fmt_rm_frd_rs1 }, + { "fcvt.s.wu", rv_codec_r_m, rv_fmt_rm_frd_rs1 }, + { "fmv.x.s", rv_codec_r, rv_fmt_rd_frs1 }, + { "fclass.s", rv_codec_r, rv_fmt_rd_frs1 }, + { "fmv.s.x", rv_codec_r, rv_fmt_frd_rs1 }, + { "fcvt.l.s", rv_codec_r_m, rv_fmt_rm_rd_frs1 }, + { "fcvt.lu.s", rv_codec_r_m, rv_fmt_rm_rd_frs1 }, + { "fcvt.s.l", rv_codec_r_m, rv_fmt_rm_frd_rs1 }, + { "fcvt.s.lu", rv_codec_r_m, rv_fmt_rm_frd_rs1 }, + { "fld", rv_codec_i, rv_fmt_frd_offset_rs1 }, + { "fsd", rv_codec_s, rv_fmt_frs2_offset_rs1 }, + { "fmadd.d", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3 }, + { "fmsub.d", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3 }, + { "fnmsub.d", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3 }, + { "fnmadd.d", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3 }, + { "fadd.d", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2 }, + { "fsub.d", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2 }, + { "fmul.d", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2 }, + { "fdiv.d", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2 }, + { "fsgnj.d", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnj_d }, + { "fsgnjn.d", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnjn_d }, + { "fsgnjx.d", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnjx_d }, + { "fmin.d", rv_codec_r, rv_fmt_frd_frs1_frs2 }, + { "fmax.d", rv_codec_r, rv_fmt_frd_frs1_frs2 }, + { "fcvt.s.d", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "fcvt.d.s", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "fsqrt.d", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "fle.d", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "flt.d", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "feq.d", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "fcvt.w.d", rv_codec_r_m, rv_fmt_rm_rd_frs1 }, + { "fcvt.wu.d", rv_codec_r_m, rv_fmt_rm_rd_frs1 }, + { "fcvt.d.w", rv_codec_r_m, rv_fmt_rm_frd_rs1 }, + { "fcvt.d.wu", rv_codec_r_m, rv_fmt_rm_frd_rs1 }, + { "fclass.d", rv_codec_r, rv_fmt_rd_frs1 }, + { "fcvt.l.d", rv_codec_r_m, rv_fmt_rm_rd_frs1 }, + { "fcvt.lu.d", rv_codec_r_m, rv_fmt_rm_rd_frs1 }, + { "fmv.x.d", rv_codec_r, rv_fmt_rd_frs1 }, + { "fcvt.d.l", rv_codec_r_m, rv_fmt_rm_frd_rs1 }, + { "fcvt.d.lu", rv_codec_r_m, rv_fmt_rm_frd_rs1 }, + { "fmv.d.x", rv_codec_r, rv_fmt_frd_rs1 }, + { "flq", rv_codec_i, rv_fmt_frd_offset_rs1 }, + { "fsq", rv_codec_s, rv_fmt_frs2_offset_rs1 }, + { "fmadd.q", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3 }, + { "fmsub.q", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3 }, + { "fnmsub.q", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3 }, + { "fnmadd.q", rv_codec_r4_m, rv_fmt_rm_frd_frs1_frs2_frs3 }, + { "fadd.q", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2 }, + { "fsub.q", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2 }, + { "fmul.q", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2 }, + { "fdiv.q", rv_codec_r_m, rv_fmt_rm_frd_frs1_frs2 }, + { "fsgnj.q", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnj_q }, + { "fsgnjn.q", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnjn_q }, + { "fsgnjx.q", rv_codec_r, rv_fmt_frd_frs1_frs2, rvcp_fsgnjx_q }, + { "fmin.q", rv_codec_r, rv_fmt_frd_frs1_frs2 }, + { "fmax.q", rv_codec_r, rv_fmt_frd_frs1_frs2 }, + { "fcvt.s.q", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "fcvt.q.s", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "fcvt.d.q", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "fcvt.q.d", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "fsqrt.q", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "fle.q", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "flt.q", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "feq.q", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "fcvt.w.q", rv_codec_r_m, rv_fmt_rm_rd_frs1 }, + { "fcvt.wu.q", rv_codec_r_m, rv_fmt_rm_rd_frs1 }, + { "fcvt.q.w", rv_codec_r_m, rv_fmt_rm_frd_rs1 }, + { "fcvt.q.wu", rv_codec_r_m, rv_fmt_rm_frd_rs1 }, + { "fclass.q", rv_codec_r, rv_fmt_rd_frs1 }, + { "fcvt.l.q", rv_codec_r_m, rv_fmt_rm_rd_frs1 }, + { "fcvt.lu.q", rv_codec_r_m, rv_fmt_rm_rd_frs1 }, + { "fcvt.q.l", rv_codec_r_m, rv_fmt_rm_frd_rs1 }, + { "fcvt.q.lu", rv_codec_r_m, rv_fmt_rm_frd_rs1 }, + { "fmv.x.q", rv_codec_r, rv_fmt_rd_frs1 }, + { "fmv.q.x", rv_codec_r, rv_fmt_frd_rs1 }, { "c.addi4spn", rv_codec_ciw_4spn, rv_fmt_rd_rs1_imm, NULL, rv_op_addi, rv_op_addi, rv_op_addi, rvcd_imm_nz }, { "c.fld", rv_codec_cl_ld, rv_fmt_frd_offset_rs1, NULL, rv_op_fld, @@ -1970,696 +1970,696 @@ static const rv_opcode_data rvi_opcode_data[] = { { "c.lqsp", rv_codec_ci_lqsp, rv_fmt_rd_offset_rs1, NULL, 0, 0, rv_op_lq }, { "c.sqsp", rv_codec_css_sqsp, rv_fmt_rs2_offset_rs1, NULL, 0, 0, rv_op_sq }, - { "nop", rv_codec_i, rv_fmt_none, NULL, 0, 0, 0 }, - { "mv", rv_codec_i, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "not", rv_codec_i, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "neg", rv_codec_r, rv_fmt_rd_rs2, NULL, 0, 0, 0 }, - { "negw", rv_codec_r, rv_fmt_rd_rs2, NULL, 0, 0, 0 }, - { "sext.w", rv_codec_i, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "seqz", rv_codec_i, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "snez", rv_codec_r, rv_fmt_rd_rs2, NULL, 0, 0, 0 }, - { "sltz", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "sgtz", rv_codec_r, rv_fmt_rd_rs2, NULL, 0, 0, 0 }, - { "fmv.s", rv_codec_r, rv_fmt_frd_frs1, NULL, 0, 0, 0 }, - { "fabs.s", rv_codec_r, rv_fmt_frd_frs1, NULL, 0, 0, 0 }, - { "fneg.s", rv_codec_r, rv_fmt_frd_frs1, NULL, 0, 0, 0 }, - { "fmv.d", rv_codec_r, rv_fmt_frd_frs1, NULL, 0, 0, 0 }, - { "fabs.d", rv_codec_r, rv_fmt_frd_frs1, NULL, 0, 0, 0 }, - { "fneg.d", rv_codec_r, rv_fmt_frd_frs1, NULL, 0, 0, 0 }, - { "fmv.q", rv_codec_r, rv_fmt_frd_frs1, NULL, 0, 0, 0 }, - { "fabs.q", rv_codec_r, rv_fmt_frd_frs1, NULL, 0, 0, 0 }, - { "fneg.q", rv_codec_r, rv_fmt_frd_frs1, NULL, 0, 0, 0 }, - { "beqz", rv_codec_sb, rv_fmt_rs1_offset, NULL, 0, 0, 0 }, - { "bnez", rv_codec_sb, rv_fmt_rs1_offset, NULL, 0, 0, 0 }, - { "blez", rv_codec_sb, rv_fmt_rs2_offset, NULL, 0, 0, 0 }, - { "bgez", rv_codec_sb, rv_fmt_rs1_offset, NULL, 0, 0, 0 }, - { "bltz", rv_codec_sb, rv_fmt_rs1_offset, NULL, 0, 0, 0 }, - { "bgtz", rv_codec_sb, rv_fmt_rs2_offset, NULL, 0, 0, 0 }, - { "ble", rv_codec_sb, rv_fmt_rs2_rs1_offset, NULL, 0, 0, 0 }, - { "bleu", rv_codec_sb, rv_fmt_rs2_rs1_offset, NULL, 0, 0, 0 }, - { "bgt", rv_codec_sb, rv_fmt_rs2_rs1_offset, NULL, 0, 0, 0 }, - { "bgtu", rv_codec_sb, rv_fmt_rs2_rs1_offset, NULL, 0, 0, 0 }, - { "j", rv_codec_uj, rv_fmt_offset, NULL, 0, 0, 0 }, - { "ret", rv_codec_i, rv_fmt_none, NULL, 0, 0, 0 }, - { "jr", rv_codec_i, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "rdcycle", rv_codec_i_csr, rv_fmt_rd, NULL, 0, 0, 0 }, - { "rdtime", rv_codec_i_csr, rv_fmt_rd, NULL, 0, 0, 0 }, - { "rdinstret", rv_codec_i_csr, rv_fmt_rd, NULL, 0, 0, 0 }, - { "rdcycleh", rv_codec_i_csr, rv_fmt_rd, NULL, 0, 0, 0 }, - { "rdtimeh", rv_codec_i_csr, rv_fmt_rd, NULL, 0, 0, 0 }, - { "rdinstreth", rv_codec_i_csr, rv_fmt_rd, NULL, 0, 0, 0 }, - { "frcsr", rv_codec_i_csr, rv_fmt_rd, NULL, 0, 0, 0 }, - { "frrm", rv_codec_i_csr, rv_fmt_rd, NULL, 0, 0, 0 }, - { "frflags", rv_codec_i_csr, rv_fmt_rd, NULL, 0, 0, 0 }, - { "fscsr", rv_codec_i_csr, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "fsrm", rv_codec_i_csr, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "fsflags", rv_codec_i_csr, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "fsrmi", rv_codec_i_csr, rv_fmt_rd_zimm, NULL, 0, 0, 0 }, - { "fsflagsi", rv_codec_i_csr, rv_fmt_rd_zimm, NULL, 0, 0, 0 }, - { "bseti", rv_codec_i_sh7, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "bclri", rv_codec_i_sh7, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "binvi", rv_codec_i_sh7, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "bexti", rv_codec_i_sh7, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "rori", rv_codec_i_sh7, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "clz", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "ctz", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "cpop", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "sext.h", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "sext.b", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "xnor", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "orn", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "andn", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "rol", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "ror", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sh1add", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sh2add", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sh3add", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sh1add.uw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sh2add.uw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sh3add.uw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "clmul", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "clmulr", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "clmulh", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "min", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "minu", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "max", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "maxu", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "clzw", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "ctzw", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "cpopw", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "slli.uw", rv_codec_i_sh6, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "add.uw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "rolw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "rorw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "rev8", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "zext.h", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "roriw", rv_codec_i_sh5, rv_fmt_rd_rs1_imm, NULL, 0, 0, 0 }, - { "orc.b", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "bset", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "bclr", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "binv", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "bext", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "aes32esmi", rv_codec_k_bs, rv_fmt_rs1_rs2_bs, NULL, 0, 0, 0 }, - { "aes32esi", rv_codec_k_bs, rv_fmt_rs1_rs2_bs, NULL, 0, 0, 0 }, - { "aes32dsmi", rv_codec_k_bs, rv_fmt_rs1_rs2_bs, NULL, 0, 0, 0 }, - { "aes32dsi", rv_codec_k_bs, rv_fmt_rs1_rs2_bs, NULL, 0, 0, 0 }, - { "aes64ks1i", rv_codec_k_rnum, rv_fmt_rd_rs1_rnum, NULL, 0, 0, 0 }, - { "aes64ks2", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "aes64im", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "aes64esm", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "aes64es", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "aes64dsm", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "aes64ds", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sha256sig0", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "sha256sig1", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "sha256sum0", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "sha256sum1", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "sha512sig0", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sha512sig1", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sha512sum0", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sha512sum1", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sha512sum0r", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sha512sum1r", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sha512sig0l", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sha512sig0h", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sha512sig1l", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sha512sig1h", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "sm3p0", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "sm3p1", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "sm4ed", rv_codec_k_bs, rv_fmt_rs1_rs2_bs, NULL, 0, 0, 0 }, - { "sm4ks", rv_codec_k_bs, rv_fmt_rs1_rs2_bs, NULL, 0, 0, 0 }, - { "brev8", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "pack", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "packh", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "packw", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "unzip", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "zip", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "xperm4", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "xperm8", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0, 0 }, - { "vle8.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vle16.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vle32.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vle64.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vse8.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vse16.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vse32.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vse64.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vlm.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vsm.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vlse8.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_rs2_vm, NULL, 0, 0, 0 }, - { "vlse16.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_rs2_vm, NULL, 0, 0, 0 }, - { "vlse32.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_rs2_vm, NULL, 0, 0, 0 }, - { "vlse64.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_rs2_vm, NULL, 0, 0, 0 }, - { "vsse8.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_rs2_vm, NULL, 0, 0, 0 }, - { "vsse16.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_rs2_vm, NULL, 0, 0, 0 }, - { "vsse32.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_rs2_vm, NULL, 0, 0, 0 }, - { "vsse64.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_rs2_vm, NULL, 0, 0, 0 }, - { "vluxei8.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vluxei16.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vluxei32.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vluxei64.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vloxei8.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vloxei16.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vloxei32.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vloxei64.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vsuxei8.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vsuxei16.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vsuxei32.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vsuxei64.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vsoxei8.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vsoxei16.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vsoxei32.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vsoxei64.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vle8ff.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vle16ff.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vle32ff.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vle64ff.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vl1re8.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vl1re16.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vl1re32.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vl1re64.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vl2re8.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vl2re16.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vl2re32.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vl2re64.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vl4re8.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vl4re16.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vl4re32.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vl4re64.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vl8re8.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vl8re16.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vl8re32.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vl8re64.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vs1r.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vs2r.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vs4r.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vs8r.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm, NULL, 0, 0, 0 }, - { "vadd.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vadd.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vadd.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm, NULL, 0, 0, 0 }, - { "vsub.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vsub.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vrsub.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vrsub.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm, NULL, 0, 0, 0 }, - { "vwaddu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vwaddu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vwadd.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vwadd.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vwsubu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vwsubu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vwsub.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vwsub.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vwaddu.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vwaddu.wx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vwadd.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vwadd.wx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vwsubu.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vwsubu.wx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vwsub.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vwsub.wx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vadc.vvm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vl, NULL, 0, 0, 0 }, - { "vadc.vxm", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vl, NULL, 0, 0, 0 }, - { "vadc.vim", rv_codec_v_i, rv_fmt_vd_vs2_imm_vl, NULL, 0, 0, 0 }, - { "vmadc.vvm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vl, NULL, 0, 0, 0 }, - { "vmadc.vxm", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vl, NULL, 0, 0, 0 }, - { "vmadc.vim", rv_codec_v_i, rv_fmt_vd_vs2_imm_vl, NULL, 0, 0, 0 }, - { "vsbc.vvm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vl, NULL, 0, 0, 0 }, - { "vsbc.vxm", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vl, NULL, 0, 0, 0 }, - { "vmsbc.vvm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vl, NULL, 0, 0, 0 }, - { "vmsbc.vxm", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vl, NULL, 0, 0, 0 }, - { "vand.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vand.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vand.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm, NULL, 0, 0, 0 }, - { "vor.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vor.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vor.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm, NULL, 0, 0, 0 }, - { "vxor.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vxor.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vxor.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm, NULL, 0, 0, 0 }, - { "vsll.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vsll.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vsll.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm, NULL, 0, 0, 0 }, - { "vsrl.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vsrl.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vsrl.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm, NULL, 0, 0, 0 }, - { "vsra.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vsra.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vsra.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm, NULL, 0, 0, 0 }, - { "vnsrl.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vnsrl.wx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vnsrl.wi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm, NULL, 0, 0, 0 }, - { "vnsra.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vnsra.wx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vnsra.wi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm, NULL, 0, 0, 0 }, - { "vmseq.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmseq.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vmseq.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm, NULL, 0, 0, 0 }, - { "vmsne.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmsne.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vmsne.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm, NULL, 0, 0, 0 }, - { "vmsltu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmsltu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vmslt.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmslt.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vmsleu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmsleu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vmsleu.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm, NULL, 0, 0, 0 }, - { "vmsle.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmsle.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vmsle.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm, NULL, 0, 0, 0 }, - { "vmsgtu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vmsgtu.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm, NULL, 0, 0, 0 }, - { "vmsgt.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vmsgt.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm, NULL, 0, 0, 0 }, - { "vminu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vminu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vmin.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmin.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vmaxu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmaxu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vmax.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmax.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vmul.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmul.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vmulh.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmulh.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vmulhu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmulhu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vmulhsu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmulhsu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vdivu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vdivu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vdiv.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vdiv.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vremu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vremu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vrem.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vrem.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vwmulu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vwmulu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vwmulsu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vwmulsu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vwmul.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vwmul.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vmacc.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vmacc.vx", rv_codec_v_r, rv_fmt_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vnmsac.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vnmsac.vx", rv_codec_v_r, rv_fmt_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vmadd.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vmadd.vx", rv_codec_v_r, rv_fmt_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vnmsub.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vnmsub.vx", rv_codec_v_r, rv_fmt_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vwmaccu.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vwmaccu.vx", rv_codec_v_r, rv_fmt_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vwmacc.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vwmacc.vx", rv_codec_v_r, rv_fmt_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vwmaccsu.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vwmaccsu.vx", rv_codec_v_r, rv_fmt_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vwmaccus.vx", rv_codec_v_r, rv_fmt_vd_rs1_vs2_vm, NULL, 0, 0, 0 }, - { "vmv.v.v", rv_codec_v_r, rv_fmt_vd_vs1, NULL, 0, 0, 0 }, - { "vmv.v.x", rv_codec_v_r, rv_fmt_vd_rs1, NULL, 0, 0, 0 }, - { "vmv.v.i", rv_codec_v_i, rv_fmt_vd_imm, NULL, 0, 0, 0 }, - { "vmerge.vvm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vl, NULL, 0, 0, 0 }, - { "vmerge.vxm", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vl, NULL, 0, 0, 0 }, - { "vmerge.vim", rv_codec_v_i, rv_fmt_vd_vs2_imm_vl, NULL, 0, 0, 0 }, - { "vsaddu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vsaddu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vsaddu.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm, NULL, 0, 0, 0 }, - { "vsadd.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vsadd.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vsadd.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm, NULL, 0, 0, 0 }, - { "vssubu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vssubu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vssub.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vssub.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vaadd.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vaadd.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vaaddu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vaaddu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vasub.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vasub.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vasubu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vasubu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vsmul.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vsmul.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vssrl.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vssrl.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vssrl.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm, NULL, 0, 0, 0 }, - { "vssra.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vssra.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vssra.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm, NULL, 0, 0, 0 }, - { "vnclipu.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vnclipu.wx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vnclipu.wi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm, NULL, 0, 0, 0 }, - { "vnclip.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vnclip.wx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vnclip.wi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm, NULL, 0, 0, 0 }, - { "vfadd.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfadd.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfsub.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfsub.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfrsub.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfwadd.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfwadd.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfwadd.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfwadd.wf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfwsub.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfwsub.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfwsub.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfwsub.wf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfmul.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfmul.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfdiv.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfdiv.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfrdiv.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfwmul.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfwmul.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfmacc.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfmacc.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfnmacc.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfnmacc.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfmsac.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfmsac.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfnmsac.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfnmsac.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfmadd.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfmadd.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfnmadd.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfnmadd.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfmsub.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfmsub.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfnmsub.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfnmsub.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfwmacc.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfwmacc.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfwnmacc.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfwnmacc.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfwmsac.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfwmsac.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfwnmsac.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfwnmsac.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfsqrt.v", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vfrsqrt7.v", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vfrec7.v", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vfmin.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfmin.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfmax.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfmax.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfsgnj.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfsgnj.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfsgnjn.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfsgnjn.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfsgnjx.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfsgnjx.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfslide1up.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfslide1down.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vmfeq.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmfeq.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vmfne.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmfne.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vmflt.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmflt.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vmfle.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmfle.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vmfgt.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vmfge.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm, NULL, 0, 0, 0 }, - { "vfclass.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfmerge.vfm", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vl, NULL, 0, 0, 0 }, - { "vfmv.v.f", rv_codec_v_r, rv_fmt_vd_fs1, NULL, 0, 0, 0 }, - { "vfcvt.xu.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfcvt.x.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfcvt.f.xu.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfcvt.f.x.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfcvt.rtz.xu.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfcvt.rtz.x.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfwcvt.xu.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfwcvt.x.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfwcvt.f.xu.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfwcvt.f.x.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfwcvt.f.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfwcvt.rtz.xu.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfwcvt.rtz.x.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfncvt.xu.f.w", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfncvt.x.f.w", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfncvt.f.xu.w", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfncvt.f.x.w", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfncvt.f.f.w", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfncvt.rod.f.f.w", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfncvt.rtz.xu.f.w", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfncvt.rtz.x.f.w", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vredsum.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vredand.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vredor.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vredxor.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vredminu.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vredmin.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vredmaxu.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vredmax.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vwredsumu.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vwredsum.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfredusum.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfredosum.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfredmin.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfredmax.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfwredusum.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vfwredosum.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmand.mm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmnand.mm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmandn.mm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmxor.mm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmor.mm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmnor.mm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmorn.mm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vmxnor.mm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vcpop.m", rv_codec_v_r, rv_fmt_rd_vs2_vm, NULL, 0, 0, 0 }, - { "vfirst.m", rv_codec_v_r, rv_fmt_rd_vs2_vm, NULL, 0, 0, 0 }, - { "vmsbf.m", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vmsif.m", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vmsof.m", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "viota.m", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vid.v", rv_codec_v_r, rv_fmt_vd_vm, NULL, 0, 0, 0 }, - { "vmv.x.s", rv_codec_v_r, rv_fmt_rd_vs2, NULL, 0, 0, 0 }, - { "vmv.s.x", rv_codec_v_r, rv_fmt_vd_rs1, NULL, 0, 0, 0 }, - { "vfmv.f.s", rv_codec_v_r, rv_fmt_fd_vs2, NULL, 0, 0, 0 }, - { "vfmv.s.f", rv_codec_v_r, rv_fmt_vd_fs1, NULL, 0, 0, 0 }, - { "vslideup.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vslideup.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm, NULL, 0, 0, 0 }, - { "vslide1up.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vslidedown.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vslidedown.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm, NULL, 0, 0, 0 }, - { "vslide1down.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vrgather.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vrgatherei16.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vrgather.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vrgather.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm, NULL, 0, 0, 0 }, - { "vcompress.vm", rv_codec_v_r, rv_fmt_vd_vs2_vs1, NULL, 0, 0, 0 }, - { "vmv1r.v", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vmv2r.v", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vmv4r.v", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vmv8r.v", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vzext.vf2", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vzext.vf4", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vzext.vf8", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vsext.vf2", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vsext.vf4", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vsext.vf8", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vsetvli", rv_codec_vsetvli, rv_fmt_vsetvli, NULL, 0, 0, 0 }, - { "vsetivli", rv_codec_vsetivli, rv_fmt_vsetivli, NULL, 0, 0, 0 }, - { "vsetvl", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "c.zext.b", rv_codec_zcb_ext, rv_fmt_rd, NULL, 0 }, - { "c.sext.b", rv_codec_zcb_ext, rv_fmt_rd, NULL, 0 }, - { "c.zext.h", rv_codec_zcb_ext, rv_fmt_rd, NULL, 0 }, - { "c.sext.h", rv_codec_zcb_ext, rv_fmt_rd, NULL, 0 }, - { "c.zext.w", rv_codec_zcb_ext, rv_fmt_rd, NULL, 0 }, - { "c.not", rv_codec_zcb_ext, rv_fmt_rd, NULL, 0 }, - { "c.mul", rv_codec_zcb_mul, rv_fmt_rd_rs2, NULL, 0, 0 }, - { "c.lbu", rv_codec_zcb_lb, rv_fmt_rs1_rs2_zce_ldst, NULL, 0, 0, 0 }, - { "c.lhu", rv_codec_zcb_lh, rv_fmt_rs1_rs2_zce_ldst, NULL, 0, 0, 0 }, - { "c.lh", rv_codec_zcb_lh, rv_fmt_rs1_rs2_zce_ldst, NULL, 0, 0, 0 }, - { "c.sb", rv_codec_zcb_lb, rv_fmt_rs1_rs2_zce_ldst, NULL, 0, 0, 0 }, - { "c.sh", rv_codec_zcb_lh, rv_fmt_rs1_rs2_zce_ldst, NULL, 0, 0, 0 }, - { "cm.push", rv_codec_zcmp_cm_pushpop, rv_fmt_push_rlist, NULL, 0, 0 }, - { "cm.pop", rv_codec_zcmp_cm_pushpop, rv_fmt_pop_rlist, NULL, 0, 0 }, - { "cm.popret", rv_codec_zcmp_cm_pushpop, rv_fmt_pop_rlist, NULL, 0, 0, 0 }, - { "cm.popretz", rv_codec_zcmp_cm_pushpop, rv_fmt_pop_rlist, NULL, 0, 0 }, - { "cm.mva01s", rv_codec_zcmp_cm_mv, rv_fmt_rd_rs2, NULL, 0, 0, 0 }, - { "cm.mvsa01", rv_codec_zcmp_cm_mv, rv_fmt_rd_rs2, NULL, 0, 0, 0 }, - { "cm.jt", rv_codec_zcmt_jt, rv_fmt_zcmt_index, NULL, 0 }, - { "cm.jalt", rv_codec_zcmt_jt, rv_fmt_zcmt_index, NULL, 0 }, - { "czero.eqz", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "czero.nez", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "fcvt.bf16.s", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "fcvt.s.bf16", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "vfncvtbf16.f.f.w", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfwcvtbf16.f.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vfwmaccbf16.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm, NULL, 0, 0, 0 }, - { "vfwmaccbf16.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm, NULL, 0, 0, 0 }, - { "flh", rv_codec_i, rv_fmt_frd_offset_rs1, NULL, 0, 0, 0 }, - { "fsh", rv_codec_s, rv_fmt_frs2_offset_rs1, NULL, 0, 0, 0 }, - { "fmv.h.x", rv_codec_r, rv_fmt_frd_rs1, NULL, 0, 0, 0 }, - { "fmv.x.h", rv_codec_r, rv_fmt_rd_frs1, NULL, 0, 0, 0 }, - { "fli.s", rv_codec_fli, rv_fmt_fli, NULL, 0, 0, 0 }, - { "fli.d", rv_codec_fli, rv_fmt_fli, NULL, 0, 0, 0 }, - { "fli.q", rv_codec_fli, rv_fmt_fli, NULL, 0, 0, 0 }, - { "fli.h", rv_codec_fli, rv_fmt_fli, NULL, 0, 0, 0 }, - { "fminm.s", rv_codec_r, rv_fmt_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fmaxm.s", rv_codec_r, rv_fmt_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fminm.d", rv_codec_r, rv_fmt_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fmaxm.d", rv_codec_r, rv_fmt_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fminm.q", rv_codec_r, rv_fmt_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fmaxm.q", rv_codec_r, rv_fmt_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fminm.h", rv_codec_r, rv_fmt_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fmaxm.h", rv_codec_r, rv_fmt_frd_frs1_frs2, NULL, 0, 0, 0 }, - { "fround.s", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "froundnx.s", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "fround.d", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "froundnx.d", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "fround.q", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "froundnx.q", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "fround.h", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "froundnx.h", rv_codec_r_m, rv_fmt_rm_frd_frs1, NULL, 0, 0, 0 }, - { "fcvtmod.w.d", rv_codec_r_m, rv_fmt_rm_rd_frs1, NULL, 0, 0, 0 }, - { "fmvh.x.d", rv_codec_r, rv_fmt_rd_frs1, NULL, 0, 0, 0 }, - { "fmvp.d.x", rv_codec_r, rv_fmt_frd_rs1_rs2, NULL, 0, 0, 0 }, - { "fmvh.x.q", rv_codec_r, rv_fmt_rd_frs1, NULL, 0, 0, 0 }, - { "fmvp.q.x", rv_codec_r, rv_fmt_frd_rs1_rs2, NULL, 0, 0, 0 }, - { "fleq.s", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "fltq.s", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "fleq.d", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "fltq.d", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "fleq.q", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "fltq.q", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "fleq.h", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "fltq.h", rv_codec_r, rv_fmt_rd_frs1_frs2, NULL, 0, 0, 0 }, - { "vaesdf.vv", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vaesdf.vs", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vaesdm.vv", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vaesdm.vs", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vaesef.vv", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vaesef.vs", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vaesem.vv", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vaesem.vs", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vaeskf1.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm, NULL, 0, 0, 0 }, - { "vaeskf2.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm, NULL, 0, 0, 0 }, - { "vaesz.vs", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vandn.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vandn.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vbrev.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vbrev8.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vclmul.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vclmul.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vclmulh.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vclmulh.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vclz.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vcpop.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vctz.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vghsh.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1, NULL, 0, 0, 0 }, - { "vgmul.vv", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vrev8.v", rv_codec_v_r, rv_fmt_vd_vs2_vm, NULL, 0, 0, 0 }, - { "vrol.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vrol.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vror.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vror.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vror.vi", rv_codec_vror_vi, rv_fmt_vd_vs2_uimm_vm, NULL, 0, 0, 0 }, - { "vsha2ch.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1, NULL, 0, 0, 0 }, - { "vsha2cl.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1, NULL, 0, 0, 0 }, - { "vsha2ms.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1, NULL, 0, 0, 0 }, - { "vsm3c.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm, NULL, 0, 0, 0 }, - { "vsm3me.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1, NULL, 0, 0, 0 }, - { "vsm4k.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm, NULL, 0, 0, 0 }, - { "vsm4r.vv", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vsm4r.vs", rv_codec_v_r, rv_fmt_vd_vs2, NULL, 0, 0, 0 }, - { "vwsll.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm, NULL, 0, 0, 0 }, - { "vwsll.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm, NULL, 0, 0, 0 }, - { "vwsll.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm, NULL, 0, 0, 0 }, - { "amocas.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amocas.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amocas.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "mop.r.0", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.1", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.2", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.3", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.4", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.5", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.6", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.7", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.8", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.9", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.10", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.11", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.12", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.13", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.14", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.15", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.16", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.17", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.18", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.19", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.20", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.21", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.22", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.23", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.24", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.25", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.26", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.27", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.28", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.29", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.30", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.r.31", rv_codec_r, rv_fmt_rd_rs1, NULL, 0, 0 }, - { "mop.rr.0", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "mop.rr.1", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "mop.rr.2", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "mop.rr.3", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "mop.rr.4", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "mop.rr.5", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "mop.rr.6", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "mop.rr.7", rv_codec_r, rv_fmt_rd_rs1_rs2, NULL, 0, 0, 0 }, - { "c.mop.1", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "c.mop.3", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "c.mop.5", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "c.mop.7", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "c.mop.9", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "c.mop.11", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "c.mop.13", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "c.mop.15", rv_codec_ci_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "amoswap.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoadd.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoxor.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoor.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoand.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amomin.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amomax.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amominu.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amomaxu.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoswap.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoadd.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoxor.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoor.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amoand.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amomin.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amomax.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amominu.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amomaxu.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amocas.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "amocas.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "wrs.sto", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "wrs.nto", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, - { "lpad", rv_codec_lp, rv_fmt_imm, NULL, 0, 0, 0 }, - { "sspush", rv_codec_r, rv_fmt_rs2, NULL, 0, 0, 0 }, - { "sspopchk", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "ssrdp", rv_codec_r, rv_fmt_rd, NULL, 0, 0, 0 }, - { "ssamoswap.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, - { "ssamoswap.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1, NULL, 0, 0, 0 }, + { "nop", rv_codec_i, rv_fmt_none }, + { "mv", rv_codec_i, rv_fmt_rd_rs1 }, + { "not", rv_codec_i, rv_fmt_rd_rs1 }, + { "neg", rv_codec_r, rv_fmt_rd_rs2 }, + { "negw", rv_codec_r, rv_fmt_rd_rs2 }, + { "sext.w", rv_codec_i, rv_fmt_rd_rs1 }, + { "seqz", rv_codec_i, rv_fmt_rd_rs1 }, + { "snez", rv_codec_r, rv_fmt_rd_rs2 }, + { "sltz", rv_codec_r, rv_fmt_rd_rs1 }, + { "sgtz", rv_codec_r, rv_fmt_rd_rs2 }, + { "fmv.s", rv_codec_r, rv_fmt_frd_frs1 }, + { "fabs.s", rv_codec_r, rv_fmt_frd_frs1 }, + { "fneg.s", rv_codec_r, rv_fmt_frd_frs1 }, + { "fmv.d", rv_codec_r, rv_fmt_frd_frs1 }, + { "fabs.d", rv_codec_r, rv_fmt_frd_frs1 }, + { "fneg.d", rv_codec_r, rv_fmt_frd_frs1 }, + { "fmv.q", rv_codec_r, rv_fmt_frd_frs1 }, + { "fabs.q", rv_codec_r, rv_fmt_frd_frs1 }, + { "fneg.q", rv_codec_r, rv_fmt_frd_frs1 }, + { "beqz", rv_codec_sb, rv_fmt_rs1_offset }, + { "bnez", rv_codec_sb, rv_fmt_rs1_offset }, + { "blez", rv_codec_sb, rv_fmt_rs2_offset }, + { "bgez", rv_codec_sb, rv_fmt_rs1_offset }, + { "bltz", rv_codec_sb, rv_fmt_rs1_offset }, + { "bgtz", rv_codec_sb, rv_fmt_rs2_offset }, + { "ble", rv_codec_sb, rv_fmt_rs2_rs1_offset }, + { "bleu", rv_codec_sb, rv_fmt_rs2_rs1_offset }, + { "bgt", rv_codec_sb, rv_fmt_rs2_rs1_offset }, + { "bgtu", rv_codec_sb, rv_fmt_rs2_rs1_offset }, + { "j", rv_codec_uj, rv_fmt_offset }, + { "ret", rv_codec_i, rv_fmt_none }, + { "jr", rv_codec_i, rv_fmt_rs1 }, + { "rdcycle", rv_codec_i_csr, rv_fmt_rd }, + { "rdtime", rv_codec_i_csr, rv_fmt_rd }, + { "rdinstret", rv_codec_i_csr, rv_fmt_rd }, + { "rdcycleh", rv_codec_i_csr, rv_fmt_rd }, + { "rdtimeh", rv_codec_i_csr, rv_fmt_rd }, + { "rdinstreth", rv_codec_i_csr, rv_fmt_rd }, + { "frcsr", rv_codec_i_csr, rv_fmt_rd }, + { "frrm", rv_codec_i_csr, rv_fmt_rd }, + { "frflags", rv_codec_i_csr, rv_fmt_rd }, + { "fscsr", rv_codec_i_csr, rv_fmt_rd_rs1 }, + { "fsrm", rv_codec_i_csr, rv_fmt_rd_rs1 }, + { "fsflags", rv_codec_i_csr, rv_fmt_rd_rs1 }, + { "fsrmi", rv_codec_i_csr, rv_fmt_rd_zimm }, + { "fsflagsi", rv_codec_i_csr, rv_fmt_rd_zimm }, + { "bseti", rv_codec_i_sh7, rv_fmt_rd_rs1_imm }, + { "bclri", rv_codec_i_sh7, rv_fmt_rd_rs1_imm }, + { "binvi", rv_codec_i_sh7, rv_fmt_rd_rs1_imm }, + { "bexti", rv_codec_i_sh7, rv_fmt_rd_rs1_imm }, + { "rori", rv_codec_i_sh7, rv_fmt_rd_rs1_imm }, + { "clz", rv_codec_r, rv_fmt_rd_rs1 }, + { "ctz", rv_codec_r, rv_fmt_rd_rs1 }, + { "cpop", rv_codec_r, rv_fmt_rd_rs1 }, + { "sext.h", rv_codec_r, rv_fmt_rd_rs1 }, + { "sext.b", rv_codec_r, rv_fmt_rd_rs1 }, + { "xnor", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "orn", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "andn", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "rol", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "ror", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sh1add", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sh2add", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sh3add", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sh1add.uw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sh2add.uw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sh3add.uw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "clmul", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "clmulr", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "clmulh", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "min", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "minu", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "max", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "maxu", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "clzw", rv_codec_r, rv_fmt_rd_rs1 }, + { "ctzw", rv_codec_r, rv_fmt_rd_rs1 }, + { "cpopw", rv_codec_r, rv_fmt_rd_rs1 }, + { "slli.uw", rv_codec_i_sh6, rv_fmt_rd_rs1_imm }, + { "add.uw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "rolw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "rorw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "rev8", rv_codec_r, rv_fmt_rd_rs1 }, + { "zext.h", rv_codec_r, rv_fmt_rd_rs1 }, + { "roriw", rv_codec_i_sh5, rv_fmt_rd_rs1_imm }, + { "orc.b", rv_codec_r, rv_fmt_rd_rs1 }, + { "bset", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "bclr", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "binv", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "bext", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "aes32esmi", rv_codec_k_bs, rv_fmt_rs1_rs2_bs }, + { "aes32esi", rv_codec_k_bs, rv_fmt_rs1_rs2_bs }, + { "aes32dsmi", rv_codec_k_bs, rv_fmt_rs1_rs2_bs }, + { "aes32dsi", rv_codec_k_bs, rv_fmt_rs1_rs2_bs }, + { "aes64ks1i", rv_codec_k_rnum, rv_fmt_rd_rs1_rnum }, + { "aes64ks2", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "aes64im", rv_codec_r, rv_fmt_rd_rs1 }, + { "aes64esm", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "aes64es", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "aes64dsm", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "aes64ds", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sha256sig0", rv_codec_r, rv_fmt_rd_rs1 }, + { "sha256sig1", rv_codec_r, rv_fmt_rd_rs1 }, + { "sha256sum0", rv_codec_r, rv_fmt_rd_rs1 }, + { "sha256sum1", rv_codec_r, rv_fmt_rd_rs1 }, + { "sha512sig0", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sha512sig1", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sha512sum0", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sha512sum1", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sha512sum0r", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sha512sum1r", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sha512sig0l", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sha512sig0h", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sha512sig1l", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sha512sig1h", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "sm3p0", rv_codec_r, rv_fmt_rd_rs1 }, + { "sm3p1", rv_codec_r, rv_fmt_rd_rs1 }, + { "sm4ed", rv_codec_k_bs, rv_fmt_rs1_rs2_bs }, + { "sm4ks", rv_codec_k_bs, rv_fmt_rs1_rs2_bs }, + { "brev8", rv_codec_r, rv_fmt_rd_rs1 }, + { "pack", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "packh", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "packw", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "unzip", rv_codec_r, rv_fmt_rd_rs1 }, + { "zip", rv_codec_r, rv_fmt_rd_rs1 }, + { "xperm4", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "xperm8", rv_codec_r, rv_fmt_rd_rs1 }, + { "vle8.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vle16.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vle32.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vle64.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vse8.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vse16.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vse32.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vse64.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vlm.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vsm.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vlse8.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_rs2_vm }, + { "vlse16.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_rs2_vm }, + { "vlse32.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_rs2_vm }, + { "vlse64.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_rs2_vm }, + { "vsse8.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_rs2_vm }, + { "vsse16.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_rs2_vm }, + { "vsse32.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_rs2_vm }, + { "vsse64.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_rs2_vm }, + { "vluxei8.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm }, + { "vluxei16.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm }, + { "vluxei32.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm }, + { "vluxei64.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm }, + { "vloxei8.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm }, + { "vloxei16.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm }, + { "vloxei32.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm }, + { "vloxei64.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm }, + { "vsuxei8.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm }, + { "vsuxei16.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm }, + { "vsuxei32.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm }, + { "vsuxei64.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm }, + { "vsoxei8.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm }, + { "vsoxei16.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm }, + { "vsoxei32.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm }, + { "vsoxei64.v", rv_codec_v_r, rv_fmt_ldst_vd_rs1_vs2_vm }, + { "vle8ff.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vle16ff.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vle32ff.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vle64ff.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vl1re8.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vl1re16.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vl1re32.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vl1re64.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vl2re8.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vl2re16.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vl2re32.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vl2re64.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vl4re8.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vl4re16.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vl4re32.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vl4re64.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vl8re8.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vl8re16.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vl8re32.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vl8re64.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vs1r.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vs2r.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vs4r.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vs8r.v", rv_codec_v_ldst, rv_fmt_ldst_vd_rs1_vm }, + { "vadd.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vadd.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vadd.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm }, + { "vsub.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vsub.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vrsub.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vrsub.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm }, + { "vwaddu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vwaddu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vwadd.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vwadd.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vwsubu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vwsubu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vwsub.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vwsub.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vwaddu.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vwaddu.wx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vwadd.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vwadd.wx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vwsubu.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vwsubu.wx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vwsub.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vwsub.wx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vadc.vvm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vl }, + { "vadc.vxm", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vl }, + { "vadc.vim", rv_codec_v_i, rv_fmt_vd_vs2_imm_vl }, + { "vmadc.vvm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vl }, + { "vmadc.vxm", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vl }, + { "vmadc.vim", rv_codec_v_i, rv_fmt_vd_vs2_imm_vl }, + { "vsbc.vvm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vl }, + { "vsbc.vxm", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vl }, + { "vmsbc.vvm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vl }, + { "vmsbc.vxm", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vl }, + { "vand.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vand.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vand.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm }, + { "vor.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vor.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vor.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm }, + { "vxor.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vxor.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vxor.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm }, + { "vsll.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vsll.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vsll.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm }, + { "vsrl.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vsrl.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vsrl.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm }, + { "vsra.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vsra.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vsra.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm }, + { "vnsrl.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vnsrl.wx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vnsrl.wi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm }, + { "vnsra.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vnsra.wx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vnsra.wi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm }, + { "vmseq.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmseq.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vmseq.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm }, + { "vmsne.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmsne.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vmsne.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm }, + { "vmsltu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmsltu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vmslt.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmslt.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vmsleu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmsleu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vmsleu.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm }, + { "vmsle.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmsle.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vmsle.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm }, + { "vmsgtu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vmsgtu.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm }, + { "vmsgt.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vmsgt.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm }, + { "vminu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vminu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vmin.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmin.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vmaxu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmaxu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vmax.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmax.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vmul.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmul.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vmulh.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmulh.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vmulhu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmulhu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vmulhsu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmulhsu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vdivu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vdivu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vdiv.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vdiv.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vremu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vremu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vrem.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vrem.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vwmulu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vwmulu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vwmulsu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vwmulsu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vwmul.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vwmul.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vmacc.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vmacc.vx", rv_codec_v_r, rv_fmt_vd_rs1_vs2_vm }, + { "vnmsac.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vnmsac.vx", rv_codec_v_r, rv_fmt_vd_rs1_vs2_vm }, + { "vmadd.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vmadd.vx", rv_codec_v_r, rv_fmt_vd_rs1_vs2_vm }, + { "vnmsub.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vnmsub.vx", rv_codec_v_r, rv_fmt_vd_rs1_vs2_vm }, + { "vwmaccu.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vwmaccu.vx", rv_codec_v_r, rv_fmt_vd_rs1_vs2_vm }, + { "vwmacc.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vwmacc.vx", rv_codec_v_r, rv_fmt_vd_rs1_vs2_vm }, + { "vwmaccsu.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vwmaccsu.vx", rv_codec_v_r, rv_fmt_vd_rs1_vs2_vm }, + { "vwmaccus.vx", rv_codec_v_r, rv_fmt_vd_rs1_vs2_vm }, + { "vmv.v.v", rv_codec_v_r, rv_fmt_vd_vs1 }, + { "vmv.v.x", rv_codec_v_r, rv_fmt_vd_rs1 }, + { "vmv.v.i", rv_codec_v_i, rv_fmt_vd_imm }, + { "vmerge.vvm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vl }, + { "vmerge.vxm", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vl }, + { "vmerge.vim", rv_codec_v_i, rv_fmt_vd_vs2_imm_vl }, + { "vsaddu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vsaddu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vsaddu.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm }, + { "vsadd.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vsadd.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vsadd.vi", rv_codec_v_i, rv_fmt_vd_vs2_imm_vm }, + { "vssubu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vssubu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vssub.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vssub.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vaadd.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vaadd.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vaaddu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vaaddu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vasub.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vasub.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vasubu.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vasubu.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vsmul.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vsmul.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vssrl.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vssrl.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vssrl.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm }, + { "vssra.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vssra.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vssra.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm }, + { "vnclipu.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vnclipu.wx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vnclipu.wi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm }, + { "vnclip.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vnclip.wx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vnclip.wi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm }, + { "vfadd.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfadd.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfsub.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfsub.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfrsub.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfwadd.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfwadd.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfwadd.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfwadd.wf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfwsub.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfwsub.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfwsub.wv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfwsub.wf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfmul.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfmul.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfdiv.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfdiv.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfrdiv.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfwmul.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfwmul.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfmacc.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vfmacc.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm }, + { "vfnmacc.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vfnmacc.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm }, + { "vfmsac.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vfmsac.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm }, + { "vfnmsac.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vfnmsac.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm }, + { "vfmadd.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vfmadd.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm }, + { "vfnmadd.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vfnmadd.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm }, + { "vfmsub.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vfmsub.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm }, + { "vfnmsub.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vfnmsub.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm }, + { "vfwmacc.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vfwmacc.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm }, + { "vfwnmacc.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vfwnmacc.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm }, + { "vfwmsac.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vfwmsac.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm }, + { "vfwnmsac.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vfwnmsac.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm }, + { "vfsqrt.v", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vfrsqrt7.v", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vfrec7.v", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vfmin.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfmin.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfmax.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfmax.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfsgnj.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfsgnj.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfsgnjn.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfsgnjn.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfsgnjx.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfsgnjx.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfslide1up.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfslide1down.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vmfeq.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmfeq.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vmfne.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmfne.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vmflt.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmflt.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vmfle.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmfle.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vmfgt.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vmfge.vf", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vm }, + { "vfclass.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfmerge.vfm", rv_codec_v_r, rv_fmt_vd_vs2_fs1_vl }, + { "vfmv.v.f", rv_codec_v_r, rv_fmt_vd_fs1 }, + { "vfcvt.xu.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfcvt.x.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfcvt.f.xu.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfcvt.f.x.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfcvt.rtz.xu.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfcvt.rtz.x.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfwcvt.xu.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfwcvt.x.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfwcvt.f.xu.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfwcvt.f.x.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfwcvt.f.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfwcvt.rtz.xu.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfwcvt.rtz.x.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfncvt.xu.f.w", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfncvt.x.f.w", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfncvt.f.xu.w", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfncvt.f.x.w", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfncvt.f.f.w", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfncvt.rod.f.f.w", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfncvt.rtz.xu.f.w", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfncvt.rtz.x.f.w", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vredsum.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vredand.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vredor.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vredxor.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vredminu.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vredmin.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vredmaxu.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vredmax.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vwredsumu.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vwredsum.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfredusum.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfredosum.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfredmin.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfredmax.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfwredusum.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vfwredosum.vs", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmand.mm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmnand.mm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmandn.mm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmxor.mm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmor.mm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmnor.mm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmorn.mm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vmxnor.mm", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vcpop.m", rv_codec_v_r, rv_fmt_rd_vs2_vm }, + { "vfirst.m", rv_codec_v_r, rv_fmt_rd_vs2_vm }, + { "vmsbf.m", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vmsif.m", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vmsof.m", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "viota.m", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vid.v", rv_codec_v_r, rv_fmt_vd_vm }, + { "vmv.x.s", rv_codec_v_r, rv_fmt_rd_vs2 }, + { "vmv.s.x", rv_codec_v_r, rv_fmt_vd_rs1 }, + { "vfmv.f.s", rv_codec_v_r, rv_fmt_fd_vs2 }, + { "vfmv.s.f", rv_codec_v_r, rv_fmt_vd_fs1 }, + { "vslideup.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vslideup.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm }, + { "vslide1up.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vslidedown.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vslidedown.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm }, + { "vslide1down.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vrgather.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vrgatherei16.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vrgather.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vrgather.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm }, + { "vcompress.vm", rv_codec_v_r, rv_fmt_vd_vs2_vs1 }, + { "vmv1r.v", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vmv2r.v", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vmv4r.v", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vmv8r.v", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vzext.vf2", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vzext.vf4", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vzext.vf8", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vsext.vf2", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vsext.vf4", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vsext.vf8", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vsetvli", rv_codec_vsetvli, rv_fmt_vsetvli }, + { "vsetivli", rv_codec_vsetivli, rv_fmt_vsetivli }, + { "vsetvl", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "c.zext.b", rv_codec_zcb_ext, rv_fmt_rd }, + { "c.sext.b", rv_codec_zcb_ext, rv_fmt_rd }, + { "c.zext.h", rv_codec_zcb_ext, rv_fmt_rd }, + { "c.sext.h", rv_codec_zcb_ext, rv_fmt_rd }, + { "c.zext.w", rv_codec_zcb_ext, rv_fmt_rd }, + { "c.not", rv_codec_zcb_ext, rv_fmt_rd }, + { "c.mul", rv_codec_zcb_mul, rv_fmt_rd_rs2 }, + { "c.lbu", rv_codec_zcb_lb, rv_fmt_rs1_rs2_zce_ldst }, + { "c.lhu", rv_codec_zcb_lh, rv_fmt_rs1_rs2_zce_ldst }, + { "c.lh", rv_codec_zcb_lh, rv_fmt_rs1_rs2_zce_ldst }, + { "c.sb", rv_codec_zcb_lb, rv_fmt_rs1_rs2_zce_ldst }, + { "c.sh", rv_codec_zcb_lh, rv_fmt_rs1_rs2_zce_ldst }, + { "cm.push", rv_codec_zcmp_cm_pushpop, rv_fmt_push_rlist }, + { "cm.pop", rv_codec_zcmp_cm_pushpop, rv_fmt_pop_rlist }, + { "cm.popret", rv_codec_zcmp_cm_pushpop, rv_fmt_pop_rlist }, + { "cm.popretz", rv_codec_zcmp_cm_pushpop, rv_fmt_pop_rlist }, + { "cm.mva01s", rv_codec_zcmp_cm_mv, rv_fmt_rd_rs2 }, + { "cm.mvsa01", rv_codec_zcmp_cm_mv, rv_fmt_rd_rs2 }, + { "cm.jt", rv_codec_zcmt_jt, rv_fmt_zcmt_index }, + { "cm.jalt", rv_codec_zcmt_jt, rv_fmt_zcmt_index }, + { "czero.eqz", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "czero.nez", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "fcvt.bf16.s", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "fcvt.s.bf16", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "vfncvtbf16.f.f.w", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfwcvtbf16.f.f.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vfwmaccbf16.vv", rv_codec_v_r, rv_fmt_vd_vs1_vs2_vm }, + { "vfwmaccbf16.vf", rv_codec_v_r, rv_fmt_vd_fs1_vs2_vm }, + { "flh", rv_codec_i, rv_fmt_frd_offset_rs1 }, + { "fsh", rv_codec_s, rv_fmt_frs2_offset_rs1 }, + { "fmv.h.x", rv_codec_r, rv_fmt_frd_rs1 }, + { "fmv.x.h", rv_codec_r, rv_fmt_rd_frs1 }, + { "fli.s", rv_codec_fli, rv_fmt_fli }, + { "fli.d", rv_codec_fli, rv_fmt_fli }, + { "fli.q", rv_codec_fli, rv_fmt_fli }, + { "fli.h", rv_codec_fli, rv_fmt_fli }, + { "fminm.s", rv_codec_r, rv_fmt_frd_frs1_frs2 }, + { "fmaxm.s", rv_codec_r, rv_fmt_frd_frs1_frs2 }, + { "fminm.d", rv_codec_r, rv_fmt_frd_frs1_frs2 }, + { "fmaxm.d", rv_codec_r, rv_fmt_frd_frs1_frs2 }, + { "fminm.q", rv_codec_r, rv_fmt_frd_frs1_frs2 }, + { "fmaxm.q", rv_codec_r, rv_fmt_frd_frs1_frs2 }, + { "fminm.h", rv_codec_r, rv_fmt_frd_frs1_frs2 }, + { "fmaxm.h", rv_codec_r, rv_fmt_frd_frs1_frs2 }, + { "fround.s", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "froundnx.s", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "fround.d", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "froundnx.d", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "fround.q", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "froundnx.q", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "fround.h", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "froundnx.h", rv_codec_r_m, rv_fmt_rm_frd_frs1 }, + { "fcvtmod.w.d", rv_codec_r_m, rv_fmt_rm_rd_frs1 }, + { "fmvh.x.d", rv_codec_r, rv_fmt_rd_frs1 }, + { "fmvp.d.x", rv_codec_r, rv_fmt_frd_rs1_rs2 }, + { "fmvh.x.q", rv_codec_r, rv_fmt_rd_frs1 }, + { "fmvp.q.x", rv_codec_r, rv_fmt_frd_rs1_rs2 }, + { "fleq.s", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "fltq.s", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "fleq.d", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "fltq.d", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "fleq.q", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "fltq.q", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "fleq.h", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "fltq.h", rv_codec_r, rv_fmt_rd_frs1_frs2 }, + { "vaesdf.vv", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vaesdf.vs", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vaesdm.vv", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vaesdm.vs", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vaesef.vv", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vaesef.vs", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vaesem.vv", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vaesem.vs", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vaeskf1.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm }, + { "vaeskf2.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm }, + { "vaesz.vs", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vandn.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vandn.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vbrev.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vbrev8.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vclmul.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vclmul.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vclmulh.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vclmulh.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vclz.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vcpop.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vctz.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vghsh.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1 }, + { "vgmul.vv", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vrev8.v", rv_codec_v_r, rv_fmt_vd_vs2_vm }, + { "vrol.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vrol.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vror.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vror.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vror.vi", rv_codec_vror_vi, rv_fmt_vd_vs2_uimm_vm }, + { "vsha2ch.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1 }, + { "vsha2cl.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1 }, + { "vsha2ms.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1 }, + { "vsm3c.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm }, + { "vsm3me.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1 }, + { "vsm4k.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm }, + { "vsm4r.vv", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vsm4r.vs", rv_codec_v_r, rv_fmt_vd_vs2 }, + { "vwsll.vv", rv_codec_v_r, rv_fmt_vd_vs2_vs1_vm }, + { "vwsll.vx", rv_codec_v_r, rv_fmt_vd_vs2_rs1_vm }, + { "vwsll.vi", rv_codec_v_i_u, rv_fmt_vd_vs2_uimm_vm }, + { "amocas.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amocas.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amocas.q", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "mop.r.0", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.1", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.2", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.3", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.4", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.5", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.6", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.7", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.8", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.9", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.10", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.11", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.12", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.13", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.14", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.15", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.16", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.17", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.18", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.19", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.20", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.21", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.22", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.23", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.24", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.25", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.26", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.27", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.28", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.29", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.30", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.r.31", rv_codec_r, rv_fmt_rd_rs1 }, + { "mop.rr.0", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "mop.rr.1", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "mop.rr.2", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "mop.rr.3", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "mop.rr.4", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "mop.rr.5", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "mop.rr.6", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "mop.rr.7", rv_codec_r, rv_fmt_rd_rs1_rs2 }, + { "c.mop.1", rv_codec_ci_none, rv_fmt_none }, + { "c.mop.3", rv_codec_ci_none, rv_fmt_none }, + { "c.mop.5", rv_codec_ci_none, rv_fmt_none }, + { "c.mop.7", rv_codec_ci_none, rv_fmt_none }, + { "c.mop.9", rv_codec_ci_none, rv_fmt_none }, + { "c.mop.11", rv_codec_ci_none, rv_fmt_none }, + { "c.mop.13", rv_codec_ci_none, rv_fmt_none }, + { "c.mop.15", rv_codec_ci_none, rv_fmt_none }, + { "amoswap.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoadd.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoxor.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoor.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoand.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amomin.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amomax.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amominu.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amomaxu.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoswap.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoadd.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoxor.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoor.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amoand.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amomin.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amomax.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amominu.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amomaxu.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amocas.b", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "amocas.h", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "wrs.sto", rv_codec_none, rv_fmt_none }, + { "wrs.nto", rv_codec_none, rv_fmt_none }, + { "lpad", rv_codec_lp, rv_fmt_imm }, + { "sspush", rv_codec_r, rv_fmt_rs2 }, + { "sspopchk", rv_codec_r, rv_fmt_rs1 }, + { "ssrdp", rv_codec_r, rv_fmt_rd }, + { "ssamoswap.w", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, + { "ssamoswap.d", rv_codec_r_a, rv_fmt_aqrl_rd_rs2_rs1 }, { "c.sspush", rv_codec_cmop_ss, rv_fmt_rs2, NULL, rv_op_sspush, rv_op_sspush, 0 }, { "c.sspopchk", rv_codec_cmop_ss, rv_fmt_rs1, NULL, rv_op_sspopchk, rv_op_sspopchk, 0 }, - { "cbo.inval", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "cbo.clean", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "cbo.flush", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "cbo.zero", rv_codec_r, rv_fmt_rs1, NULL, 0, 0, 0 }, - { "mnret", rv_codec_none, rv_fmt_none, NULL, 0, 0, 0 }, + { "cbo.inval", rv_codec_r, rv_fmt_rs1 }, + { "cbo.clean", rv_codec_r, rv_fmt_rs1 }, + { "cbo.flush", rv_codec_r, rv_fmt_rs1 }, + { "cbo.zero", rv_codec_r, rv_fmt_rs1 }, + { "mnret", rv_codec_none, rv_fmt_none }, }; /* CSR names */ -- 2.43.0