[PULL v2 43/96] disas/riscv: Drop explicit zero of rv_opcode_data fields
[email protected] Mon, 24 Aug 2026 15:47:13 +1000
Newsgroups
org.nongnu.qemu-devel
Message-ID
<[email protected] >
From: Richard Henderson <[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] >
Message-ID: <[email protected] >
Signed-off-by: Alistair Francis <[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.54.0