aboutsummaryrefslogtreecommitdiff
path: root/disasm
diff options
context:
space:
mode:
authorWeiwei Li <liweiwei@iscas.ac.cn>2023-04-14 22:51:19 +0800
committerWeiwei Li <liweiwei@iscas.ac.cn>2023-05-29 09:01:21 +0800
commita2e8ad3d5f0bc8856da947df7c216d114179dc34 (patch)
tree5fe3296237850a93b6bdba67a429953f3c394da8 /disasm
parent62478900e5f7fd872a2fea5c7b4098a570776e18 (diff)
downloadriscv-isa-sim-a2e8ad3d5f0bc8856da947df7c216d114179dc34.zip
riscv-isa-sim-a2e8ad3d5f0bc8856da947df7c216d114179dc34.tar.gz
riscv-isa-sim-a2e8ad3d5f0bc8856da947df7c216d114179dc34.tar.bz2
Add dsasm support for BF16 extensions
Diffstat (limited to 'disasm')
-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);