aboutsummaryrefslogtreecommitdiff
path: root/spike_main
diff options
context:
space:
mode:
authorChih-Min Chao <chihmin.chao@sifive.com>2020-04-09 20:05:24 -0700
committerChih-Min Chao <chihmin.chao@sifive.com>2020-05-04 00:03:40 -0700
commit0d1ef2aced0585cea5c1f86e5ab208453e220824 (patch)
tree455a6b368b7feccb8b848b7b624526bf8d29f913 /spike_main
parent280ccef2ebf50edfca4667af8cb8a630d12cf215 (diff)
downloadspike-0d1ef2aced0585cea5c1f86e5ab208453e220824.zip
spike-0d1ef2aced0585cea5c1f86e5ab208453e220824.tar.gz
spike-0d1ef2aced0585cea5c1f86e5ab208453e220824.tar.bz2
zfh: add fp16 disasm
Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
Diffstat (limited to 'spike_main')
-rw-r--r--spike_main/disasm.cc38
1 files changed, 38 insertions, 0 deletions
diff --git a/spike_main/disasm.cc b/spike_main/disasm.cc
index fe6be50..8056ca9 100644
--- a/spike_main/disasm.cc
+++ b/spike_main/disasm.cc
@@ -420,10 +420,12 @@ disassembler_t::disassembler_t(int xlen)
DEFINE_FLOAD(flw)
DEFINE_FLOAD(fld)
+ DEFINE_FLOAD(flh)
DEFINE_FLOAD(flq)
DEFINE_FSTORE(fsw)
DEFINE_FSTORE(fsd)
+ DEFINE_FSTORE(fsh)
DEFINE_FSTORE(fsq)
add_insn(new disasm_insn_t("j", match_jal, mask_jal | mask_rd, {&jump_target}));
@@ -592,6 +594,42 @@ disassembler_t::disassembler_t(int xlen)
DEFINE_FX2TYPE(flt_d);
DEFINE_FX2TYPE(fle_d);
+ DEFINE_FRTYPE(fadd_h);
+ DEFINE_FRTYPE(fsub_h);
+ DEFINE_FRTYPE(fmul_h);
+ DEFINE_FRTYPE(fdiv_h);
+ DEFINE_FR1TYPE(fsqrt_h);
+ DEFINE_FRTYPE(fmin_h);
+ DEFINE_FRTYPE(fmax_h);
+ DEFINE_FR3TYPE(fmadd_h);
+ DEFINE_FR3TYPE(fmsub_h);
+ DEFINE_FR3TYPE(fnmadd_h);
+ DEFINE_FR3TYPE(fnmsub_h);
+ DEFINE_FRTYPE(fsgnj_h);
+ DEFINE_FRTYPE(fsgnjn_h);
+ DEFINE_FRTYPE(fsgnjx_h);
+ 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);
+ DEFINE_XFTYPE(fcvt_h_l);
+ DEFINE_XFTYPE(fcvt_h_lu);
+ DEFINE_XFTYPE(fcvt_h_w);
+ DEFINE_XFTYPE(fcvt_h_wu);
+ DEFINE_XFTYPE(fcvt_h_wu);
+ DEFINE_XFTYPE(fmv_h_x);
+ DEFINE_FXTYPE(fcvt_l_h);
+ DEFINE_FXTYPE(fcvt_lu_h);
+ DEFINE_FXTYPE(fcvt_w_h);
+ DEFINE_FXTYPE(fcvt_wu_h);
+ DEFINE_FXTYPE(fclass_h);
+ DEFINE_FXTYPE(fmv_x_h);
+ DEFINE_FX2TYPE(feq_h);
+ DEFINE_FX2TYPE(flt_h);
+ DEFINE_FX2TYPE(fle_h);
+
DEFINE_FRTYPE(fadd_q);
DEFINE_FRTYPE(fsub_q);
DEFINE_FRTYPE(fmul_q);