removed duplicate code

This commit is contained in:
Màrius Montón 2021-02-01 12:24:25 +01:00
parent 22b7ec4c03
commit 03c95d2de3
4 changed files with 26 additions and 118 deletions

View File

@ -67,39 +67,6 @@ public:
return m_instr.range(31, 27); return m_instr.range(31, 27);
} }
/**
* @brief Access to rs1 field
* @return rs1 field
*/
inline int32_t get_rs1() const override {
return m_instr.range(19, 15);
}
inline void set_rs1(int32_t value) override {
m_instr.range(19, 15) = value;
}
/**
* @brief Access to rs2 field
* @return rs2 field
*/
inline int32_t get_rs2() const override {
return m_instr.range(24, 20);
}
inline void set_rs2(int32_t value) override {
m_instr.range(24, 20) = value;
}
inline int32_t get_funct3() const override {
return m_instr.range(14, 12);
}
inline void set_funct3(int32_t value) override {
m_instr.range(14, 12) = value;
}
/** /**
* @brief Decodes opcode of instruction * @brief Decodes opcode of instruction
* @return opcode of instruction * @return opcode of instruction

View File

@ -100,54 +100,6 @@ public:
*/ */
using extension_base::extension_base; using extension_base::extension_base;
/**
* @brief Access to rs1 field
* @return rs1 field
*/
inline int32_t get_rs1() const override {
return m_instr.range(19, 15);
}
/**
* @brief Sets rs1 field
* @param value desired rs1 value
*/
inline void set_rs1(int32_t value) override {
m_instr.range(19, 15) = value;
}
/**
* @brief Access to rs2 field
* @return rs2 field
*/
inline int32_t get_rs2() const override {
return m_instr.range(24, 20);
}
/**
* @brief Sets rs2 field
* @param value desired rs2 value
*/
inline void set_rs2(int32_t value) override {
m_instr.range(24, 10) = value;
}
/**
* @brief Access to funct3 field
* @return funct3 field
*/
inline int32_t get_funct3() const override {
return m_instr.range(14, 12);
}
/**
* @brief Sets func3 field
* @param value desired func3 value
*/
inline void set_funct3(int32_t value) override {
m_instr.range(14, 12) = value;
}
/** /**
* @brief Access to funct7 field * @brief Access to funct7 field
* @return funct7 field * @return funct7 field

View File

@ -81,37 +81,6 @@ private:
return m_instr.range(14, 12); return m_instr.range(14, 12);
} }
/**
* @brief Access to rs1 field
* @return rs1 field
*/
inline int32_t get_rs1() const {
return m_instr.range(19, 15);
}
inline void set_rs1(int32_t value) {
m_instr.range(19, 15) = value;
}
/**
* @brief Access to rs2 field
* @return rs2 field
*/
inline int32_t get_rs2() const {
return m_instr.range(24, 20);
}
inline void set_rs2(int32_t value) {
m_instr.range(24, 20) = value;
}
inline int32_t get_funct3() const {
return m_instr.range(14, 12);
}
inline void set_funct3(int32_t value) {
m_instr.range(14, 12) = value;
}
}; };
#endif #endif

View File

@ -36,18 +36,38 @@ public:
/* pure virtual functions */ /* pure virtual functions */
virtual int32_t opcode() const = 0; virtual int32_t opcode() const = 0;
virtual int32_t get_rd() const { virtual int32_t get_rd() const {
return m_instr.range(11, 7); return m_instr.range(11, 7);
} }
virtual void set_rd(int32_t value) { virtual void set_rd(int32_t value) {
m_instr.range(11, 7) = value; m_instr.range(11, 7) = value;
} }
virtual int32_t get_rs1() const = 0;
virtual void set_rs1(int32_t value) = 0; virtual int32_t get_rs1() const {
virtual int32_t get_rs2() const = 0; return m_instr.range(19, 15);
virtual void set_rs2(int32_t value) = 0; }
virtual int32_t get_funct3() const = 0;
virtual void set_funct3(int32_t value) = 0; virtual void set_rs1(int32_t value) {
m_instr.range(19, 15) = value;
}
virtual int32_t get_rs2() const {
return m_instr.range(24, 20);
}
virtual void set_rs2(int32_t value) {
m_instr.range(24, 20) = value;
}
virtual int32_t get_funct3() const {
return m_instr.range(14, 12);
}
virtual void set_funct3(int32_t value) {
m_instr.range(14, 12) = value;
}
virtual void dump() const; virtual void dump() const;