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);
}
/**
* @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
* @return opcode of instruction

View File

@ -100,54 +100,6 @@ public:
*/
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
* @return funct7 field

View File

@ -81,37 +81,6 @@ private:
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

View File

@ -36,18 +36,38 @@ public:
/* pure virtual functions */
virtual int32_t opcode() const = 0;
virtual int32_t get_rd() const {
return m_instr.range(11, 7);
}
virtual void set_rd(int32_t 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_rs2() const = 0;
virtual void set_rs2(int32_t value) = 0;
virtual int32_t get_funct3() const = 0;
virtual void set_funct3(int32_t value) = 0;
virtual int32_t get_rs1() const {
return m_instr.range(19, 15);
}
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;