diff options
-rw-r--r-- | disasm/disasm.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/disasm/disasm.cc b/disasm/disasm.cc index fef9fac..9f2da34 100644 --- a/disasm/disasm.cc +++ b/disasm/disasm.cc @@ -1239,6 +1239,15 @@ void disassembler_t::add_instructions(const isa_parser_t* isa) DEFINE_FX2TYPE(fle_q); } + if (isa->extension_enabled(EXT_ZFBFMIN)) { + DEFINE_FLOAD(flh) + DEFINE_FSTORE(fsh) + DEFINE_FR1TYPE(fcvt_bf16_s); + DEFINE_FR1TYPE(fcvt_s_bf16); + DEFINE_XFTYPE(fmv_h_x); + DEFINE_FXTYPE(fmv_x_h); + } + // ext-h if (isa->extension_enabled('H')) { DEFINE_XLOAD_BASE(hlv_b) @@ -1787,6 +1796,20 @@ void disassembler_t::add_instructions(const isa_parser_t* isa) } } + if (isa->extension_enabled(EXT_ZVFBFMIN)) { + DEFINE_FLOAD(flh) + DEFINE_FSTORE(fsh) + DEFINE_VECTOR_V(vfncvtbf16_f_f_w); + DEFINE_VECTOR_V(vfwcvtbf16_f_f_v); + DEFINE_XFTYPE(fmv_h_x); + DEFINE_FXTYPE(fmv_x_h); + } + + if (isa->extension_enabled(EXT_ZVFBFWMA)) { + DEFINE_VECTOR_VV(vfwmaccbf16_vv); + DEFINE_VECTOR_VF(vfwmaccbf16_vf); + } + #define DEFINE_PI3TYPE(code) add_pitype3_insn(this, #code, match_##code, mask_##code); #define DEFINE_PI4TYPE(code) add_pitype4_insn(this, #code, match_##code, mask_##code); #define DEFINE_PI5TYPE(code) add_pitype5_insn(this, #code, match_##code, mask_##code); |