reduce fp ops down to op width
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 1 Nov 2018 12:13:13 +0000 (12:13 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Thu, 1 Nov 2018 12:13:13 +0000 (12:13 +0000)
riscv/sv_insn_redirect.cc

index fee135cbdd5fb2e3a06ad1e02c7141632eaa0ff3..47ae9c93c432bbdb9f89813ffe26371f6d1776e9 100644 (file)
@@ -119,7 +119,8 @@ union freg_shift {
 
 void (sv_proc_t::DO_WRITE_FREG)(reg_spec_t const& spec, sv_freg_t const& value)
 {
-    int flen = sizeof(freg_t) * 8; // FLEN (not specified in spike)
+    //int flen = sizeof(freg_t) * 8; // FLEN (not specified in spike)
+    int flen = _insn->flen;
     reg_t reg = spec.reg;
     uint8_t dest_elwidth = _insn->reg_elwidth(reg, false);
     int bitwidth = get_bitwidth(dest_elwidth, flen);
@@ -215,7 +216,8 @@ void (sv_proc_t::WRITE_REG)(reg_spec_t const& spec, sv_reg_t const& value)
 
 freg_t (sv_proc_t::READ_FREG)(reg_spec_t const& spec)
 {
-    int flen = sizeof(freg_t) * 8; // FLEN (not specified in spike)
+    //int flen = sizeof(freg_t) * 8; // FLEN (not specified in spike)
+    int flen = _insn->flen;
     reg_t reg = spec.reg;
     uint8_t elwidth = _insn->reg_elwidth(reg, false);
     int bitwidth = get_bitwidth(elwidth, flen);