@@ -755,6 +755,11 @@ static void NOINLINE add_vector_vf_insn(disassembler_t* d, const char* name, uin
755755 d->add_insn (new disasm_insn_t (name, match, mask, {&vd, &vs2, &frs1, opt, &vm}));
756756}
757757
758+ static void NOINLINE add_vector_multiplyadd_vf_insn (disassembler_t * d, const char * name, uint32_t match, uint32_t mask)
759+ {
760+ d->add_insn (new disasm_insn_t (name, match, mask, {&vd, &frs1, &vs2, opt, &vm}));
761+ }
762+
758763static void NOINLINE add_vector_vi_insn (disassembler_t * d, const char * name, uint32_t match, uint32_t mask)
759764{
760765 d->add_insn (new disasm_insn_t (name, match, mask, {&vd, &vs2, &v_simm5, opt, &vm}));
@@ -1656,6 +1661,7 @@ void disassembler_t::add_instructions(const isa_parser_t* isa)
16561661 #define DEFINE_VECTOR_VX (code ) add_vector_vx_insn(this , #code, match_##code, mask_##code)
16571662 #define DEFINE_VECTOR_MULTIPLYADD_VX (code ) add_vector_multiplyadd_vx_insn(this , #code, match_##code, mask_##code)
16581663 #define DEFINE_VECTOR_VF (code ) add_vector_vf_insn(this , #code, match_##code, mask_##code)
1664+ #define DEFINE_VECTOR_MULTIPLYADD_VF (code ) add_vector_multiplyadd_vf_insn(this , #code, match_##code, mask_##code)
16591665 #define DEFINE_VECTOR_VI (code ) add_vector_vi_insn(this , #code, match_##code, mask_##code)
16601666 #define DEFINE_VECTOR_VIU (code ) add_vector_viu_insn(this , #code, match_##code, mask_##code)
16611667
@@ -1876,6 +1882,10 @@ void disassembler_t::add_instructions(const isa_parser_t* isa)
18761882 DEFINE_VECTOR_VV (name##_vv); \
18771883 DEFINE_VECTOR_VF (name##_vf)
18781884
1885+ #define DISASM_OPIV_MULTIPLYADD_VF_INSN (name ) \
1886+ DEFINE_VECTOR_MULTIPLYADD_VV (name##_vv); \
1887+ DEFINE_VECTOR_MULTIPLYADD_VF (name##_vf)
1888+
18791889 #define DISASM_OPIV_WF_INSN (name ) \
18801890 DEFINE_VECTOR_VV (name##_wv); \
18811891 DEFINE_VECTOR_VF (name##_wf)
@@ -1943,14 +1953,14 @@ void disassembler_t::add_instructions(const isa_parser_t* isa)
19431953
19441954 DISASM_OPIV_VF_INSN (vfmul);
19451955 DISASM_OPIV__F_INSN (vfrsub);
1946- DISASM_OPIV_VF_INSN (vfmadd);
1947- DISASM_OPIV_VF_INSN (vfnmadd);
1948- DISASM_OPIV_VF_INSN (vfmsub);
1949- DISASM_OPIV_VF_INSN (vfnmsub);
1950- DISASM_OPIV_VF_INSN (vfmacc);
1951- DISASM_OPIV_VF_INSN (vfnmacc);
1952- DISASM_OPIV_VF_INSN (vfmsac);
1953- DISASM_OPIV_VF_INSN (vfnmsac);
1956+ DISASM_OPIV_MULTIPLYADD_VF_INSN (vfmadd);
1957+ DISASM_OPIV_MULTIPLYADD_VF_INSN (vfnmadd);
1958+ DISASM_OPIV_MULTIPLYADD_VF_INSN (vfmsub);
1959+ DISASM_OPIV_MULTIPLYADD_VF_INSN (vfnmsub);
1960+ DISASM_OPIV_MULTIPLYADD_VF_INSN (vfmacc);
1961+ DISASM_OPIV_MULTIPLYADD_VF_INSN (vfnmacc);
1962+ DISASM_OPIV_MULTIPLYADD_VF_INSN (vfmsac);
1963+ DISASM_OPIV_MULTIPLYADD_VF_INSN (vfnmsac);
19541964
19551965 // 0b11_0000
19561966 DISASM_OPIV_VF_INSN (vfwadd);
0 commit comments