diff --git a/gen_input/templates/CORENAME.h.gtl b/gen_input/templates/CORENAME.h.gtl index fa69704..dbe4c82 100644 --- a/gen_input/templates/CORENAME.h.gtl +++ b/gen_input/templates/CORENAME.h.gtl @@ -169,7 +169,6 @@ struct ${coreDef.name.toLowerCase()}: public arch_if { }}%> uint32_t trap_state = 0, pending_trap = 0; uint64_t icount = 0; - uint64_t cycle = 0; uint64_t instret = 0; uint32_t last_branch; } reg; diff --git a/incl/iss/arch/riscv_hart_m_p.h b/incl/iss/arch/riscv_hart_m_p.h index b50b990..91dd7b4 100644 --- a/incl/iss/arch/riscv_hart_m_p.h +++ b/incl/iss/arch/riscv_hart_m_p.h @@ -237,6 +237,10 @@ protected: uint64_t get_next_pc() override { return arch.get_next_pc(); }; + uint64_t get_instr_count() { return arch.reg.icount; } + + uint64_t get_total_cycles() override { return arch.reg.icount + arch.cycle_offset; } + void set_curr_instr_cycles(unsigned cycles) override { arch.cycle_offset += cycles - 1; }; riscv_hart_m_p &arch; diff --git a/incl/iss/arch/riscv_hart_msu_vp.h b/incl/iss/arch/riscv_hart_msu_vp.h index 196cae5..4ba669e 100644 --- a/incl/iss/arch/riscv_hart_msu_vp.h +++ b/incl/iss/arch/riscv_hart_msu_vp.h @@ -340,6 +340,10 @@ protected: virtual uint64_t get_next_pc() { return arch.get_next_pc(); }; + uint64_t get_instr_count() { return arch.reg.icount; } + + uint64_t get_total_cycles() override { return arch.reg.icount + arch.cycle_offset; } + virtual void set_curr_instr_cycles(unsigned cycles) { arch.cycle_offset += cycles - 1; }; riscv_hart_msu_vp &arch; diff --git a/incl/iss/arch/riscv_hart_mu_p.h b/incl/iss/arch/riscv_hart_mu_p.h index 754ea1c..ab0444c 100644 --- a/incl/iss/arch/riscv_hart_mu_p.h +++ b/incl/iss/arch/riscv_hart_mu_p.h @@ -252,6 +252,10 @@ protected: virtual uint64_t get_next_pc() { return arch.get_next_pc(); }; + uint64_t get_instr_count() { return arch.reg.icount; } + + uint64_t get_total_cycles() override { return arch.reg.icount + arch.cycle_offset; } + virtual void set_curr_instr_cycles(unsigned cycles) { arch.cycle_offset += cycles - 1; }; riscv_hart_mu_p &arch;