aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYenHaoChen <howard25336284@gmail.com>2024-09-03 08:56:02 +0800
committerYenHaoChen <howard25336284@gmail.com>2024-09-03 08:57:06 +0800
commit7f38a503d032adafc10b3e9eea006d65e464e991 (patch)
treecb54ee502a1b1c709ab236d2afb43598c3bef459
parentff6210921127925582802bf7e7ad6952c0e0758f (diff)
downloadriscv-isa-sim-7f38a503d032adafc10b3e9eea006d65e464e991.zip
riscv-isa-sim-7f38a503d032adafc10b3e9eea006d65e464e991.tar.gz
riscv-isa-sim-7f38a503d032adafc10b3e9eea006d65e464e991.tar.bz2
vector: disassemble: Let operand ordering be vd, [vr]s1, vs2 to vector widening integer multiply-add instructions
-rw-r--r--disasm/disasm.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/disasm/disasm.cc b/disasm/disasm.cc
index b5e8428..1741969 100644
--- a/disasm/disasm.cc
+++ b/disasm/disasm.cc
@@ -1694,6 +1694,8 @@ void disassembler_t::add_instructions(const isa_parser_t* isa)
#define DISASM_OPIV__X__INSN(name, sign) DEFINE_VECTOR_VX(name##_vx)
+ #define DISASM_OPIV_MULTIPLYADD__X__INSN(name, sign) DEFINE_VECTOR_MULTIPLYADD_VX(name##_vx)
+
#define DEFINE_VECTOR_VVM(name) \
add_vector_vvm_insn(this, #name, match_##name, mask_##name | mask_vm)
@@ -1854,10 +1856,10 @@ void disassembler_t::add_instructions(const isa_parser_t* isa)
DISASM_OPIV_VX__INSN(vwmulu, 0);
DISASM_OPIV_VX__INSN(vwmulsu, 0);
DISASM_OPIV_VX__INSN(vwmul, 1);
- DISASM_OPIV_VX__INSN(vwmaccu, 0);
- DISASM_OPIV_VX__INSN(vwmacc, 1);
- DISASM_OPIV__X__INSN(vwmaccus, 1);
- DISASM_OPIV_VX__INSN(vwmaccsu, 0);
+ DISASM_OPIV_MULTIPLYADD_VX__INSN(vwmaccu, 0);
+ DISASM_OPIV_MULTIPLYADD_VX__INSN(vwmacc, 1);
+ DISASM_OPIV_MULTIPLYADD__X__INSN(vwmaccus, 1);
+ DISASM_OPIV_MULTIPLYADD_VX__INSN(vwmaccsu, 0);
#undef DISASM_OPIV_VXI_INSN
#undef DISASM_OPIV_VX__INSN