removed duplicate code
This commit is contained in:
parent
22b7ec4c03
commit
03c95d2de3
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue