sim: instrs can have different effect on perf count
[calu.git] / 3c_disasm / Iinstr.hpp
index 2cc17df5e1f4d5093e10a75d4eb5f3b03db25e41..e16c26c13a90200373d6de7e9af94d2d28a121f2 100644 (file)
@@ -51,7 +51,7 @@ enum CONDITIONS {
 
 class Iinstr {
        protected:
-               short opcode;
+               short opcode, clockcount;
                std::string name;
                short m_ra, m_rb, m_rd;
                bool m_c, m_d, m_hl, m_f, m_s;
@@ -59,7 +59,7 @@ class Iinstr {
                short m_cond;
                boost::dynamic_bitset<> argbits;
                CDat hexdump;
-               Iinstr() : opcode(0), name(""), m_ra(0), m_rb(0), m_rd(0), m_c(0), m_d(0), m_hl(0), m_f(0), m_s(0), m_imm(0), m_cond(ALWAYS), argbits(32), hexdump(0) {}
+               Iinstr() : opcode(0), clockcount(1), name(""), m_ra(0), m_rb(0), m_rd(0), m_c(0), m_d(0), m_hl(0), m_f(0), m_s(0), m_imm(0), m_cond(ALWAYS), argbits(32), hexdump(0) {}
 
                CDat generate16ImmFill(const CDat value) const {
                        CDat i = value;
@@ -141,6 +141,10 @@ class Iinstr {
                        return m_cond;
                }
 
+               short getClockCount() {
+                       return clockcount;
+               }
+
                void decodeCondition(short condition) {
                        if(condition >= 0 && condition <= 15) {
                                m_cond = condition;