@@ -755,6 +755,11 @@ static void NOINLINE add_vector_vf_insn(disassembler_t* d, const char* name, uin
755
755
d->add_insn (new disasm_insn_t (name, match, mask, {&vd, &vs2, &frs1, opt, &vm}));
756
756
}
757
757
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
+
758
763
static void NOINLINE add_vector_vi_insn (disassembler_t * d, const char * name, uint32_t match, uint32_t mask)
759
764
{
760
765
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)
1656
1661
#define DEFINE_VECTOR_VX (code ) add_vector_vx_insn(this , #code, match_##code, mask_##code)
1657
1662
#define DEFINE_VECTOR_MULTIPLYADD_VX (code ) add_vector_multiplyadd_vx_insn(this , #code, match_##code, mask_##code)
1658
1663
#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)
1659
1665
#define DEFINE_VECTOR_VI (code ) add_vector_vi_insn(this , #code, match_##code, mask_##code)
1660
1666
#define DEFINE_VECTOR_VIU (code ) add_vector_viu_insn(this , #code, match_##code, mask_##code)
1661
1667
@@ -1876,6 +1882,10 @@ void disassembler_t::add_instructions(const isa_parser_t* isa)
1876
1882
DEFINE_VECTOR_VV (name##_vv); \
1877
1883
DEFINE_VECTOR_VF (name##_vf)
1878
1884
1885
+ #define DISASM_OPIV_MULTIPLYADD_VF_INSN (name ) \
1886
+ DEFINE_VECTOR_MULTIPLYADD_VV (name##_vv); \
1887
+ DEFINE_VECTOR_MULTIPLYADD_VF (name##_vf)
1888
+
1879
1889
#define DISASM_OPIV_WF_INSN (name ) \
1880
1890
DEFINE_VECTOR_VV (name##_wv); \
1881
1891
DEFINE_VECTOR_VF (name##_wf)
@@ -1943,14 +1953,14 @@ void disassembler_t::add_instructions(const isa_parser_t* isa)
1943
1953
1944
1954
DISASM_OPIV_VF_INSN (vfmul);
1945
1955
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);
1954
1964
1955
1965
// 0b11_0000
1956
1966
DISASM_OPIV_VF_INSN (vfwadd);
0 commit comments