aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--disasm/disasm.cc22
1 files changed, 20 insertions, 2 deletions
diff --git a/disasm/disasm.cc b/disasm/disasm.cc
index fef9fac..d797a91 100644
--- a/disasm/disasm.cc
+++ b/disasm/disasm.cc
@@ -1184,14 +1184,17 @@ void disassembler_t::add_instructions(const isa_parser_t* isa)
}
if (isa->extension_enabled(EXT_ZFHMIN)) {
- DEFINE_FLOAD(flh)
- DEFINE_FSTORE(fsh)
DEFINE_FR1TYPE(fcvt_h_s);
DEFINE_FR1TYPE(fcvt_h_d);
DEFINE_FR1TYPE(fcvt_h_q);
DEFINE_FR1TYPE(fcvt_s_h);
DEFINE_FR1TYPE(fcvt_d_h);
DEFINE_FR1TYPE(fcvt_q_h);
+ }
+
+ if (isa->extension_enabled(EXT_INTERNAL_ZFH_MOVE)) {
+ DEFINE_FLOAD(flh)
+ DEFINE_FSTORE(fsh)
DEFINE_XFTYPE(fmv_h_x);
DEFINE_FXTYPE(fmv_x_h);
}
@@ -1239,6 +1242,11 @@ void disassembler_t::add_instructions(const isa_parser_t* isa)
DEFINE_FX2TYPE(fle_q);
}
+ if (isa->extension_enabled(EXT_ZFBFMIN)) {
+ DEFINE_FR1TYPE(fcvt_bf16_s);
+ DEFINE_FR1TYPE(fcvt_s_bf16);
+ }
+
// ext-h
if (isa->extension_enabled('H')) {
DEFINE_XLOAD_BASE(hlv_b)
@@ -1787,6 +1795,16 @@ void disassembler_t::add_instructions(const isa_parser_t* isa)
}
}
+ if (isa->extension_enabled(EXT_ZVFBFMIN)) {
+ DEFINE_VECTOR_V(vfncvtbf16_f_f_w);
+ DEFINE_VECTOR_V(vfwcvtbf16_f_f_v);
+ }
+
+ 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);