From 703d3faf2784616a503831cf9fd2b58cb22d948a Mon Sep 17 00:00:00 2001 From: Blaise Tine Date: Sat, 5 Feb 2022 06:37:54 -0500 Subject: [PATCH] minor bug fixes --- sim/simx/decode.cpp | 2 ++ sim/simx/instr.h | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/sim/simx/decode.cpp b/sim/simx/decode.cpp index 33724f33..cc4d3c83 100644 --- a/sim/simx/decode.cpp +++ b/sim/simx/decode.cpp @@ -450,6 +450,7 @@ std::shared_ptr Decoder::decode(uint32_t code) const { case 0x71: // FCLASS.D, FMV.X.D instr->setDestReg(rd, RegType::Integer); instr->setSrcReg(rs1, RegType::Float); + instr->setSrcReg(rs2, RegType::Integer); break; case 0x68: // FCVT.S.W, FCVT.S.WU, FCVT.S.L, FCVT.S.LU case 0x69: // FCVT.D.W, FCVT.D.WU, FCVT.D.L, FCVT.D.LU @@ -457,6 +458,7 @@ std::shared_ptr Decoder::decode(uint32_t code) const { case 0x79: // FMV.D.X instr->setDestReg(rd, RegType::Float); instr->setSrcReg(rs1, RegType::Integer); + instr->setSrcReg(rs2, RegType::Integer); break; default: instr->setDestReg(rd, RegType::Float); diff --git a/sim/simx/instr.h b/sim/simx/instr.h index 87477cfa..bbaef6ae 100644 --- a/sim/simx/instr.h +++ b/sim/simx/instr.h @@ -57,7 +57,9 @@ public: , has_imm_(false) , rdest_type_(RegType::None) , rdest_(0) + , func2_(0) , func3_(0) + , func6_(0) , func7_(0) { for (uint32_t i = 0; i < MAX_REG_SOURCES; ++i) { rsrc_type_[i] = RegType::None; @@ -121,6 +123,7 @@ private: uint32_t func2_; uint32_t func3_; uint32_t func6_; + uint32_t func7_; // Vector uint32_t vmask_; @@ -130,8 +133,7 @@ private: uint32_t vs3_; uint32_t vlmul_; uint32_t vsew_; - uint32_t vediv_; - uint32_t func7_; + uint32_t vediv_; friend std::ostream &operator<<(std::ostream &, const Instr&); };