aboutsummaryrefslogtreecommitdiff
path: root/riscv/sim.cc
diff options
context:
space:
mode:
authorChristopher Celio <celio@eecs.berkeley.edu>2014-08-15 15:38:41 -0700
committerChristopher Celio <celio@eecs.berkeley.edu>2014-08-15 15:38:41 -0700
commit616cc32c30ac0684edfd50ed44fc78ed1bc20884 (patch)
tree3ad9cbea79da5a40a5a351e842e1e890a07ad298 /riscv/sim.cc
parente2c0c3021ac2fa7cad5866e0f100c2dbf2372986 (diff)
downloadriscv-isa-sim-616cc32c30ac0684edfd50ed44fc78ed1bc20884.zip
riscv-isa-sim-616cc32c30ac0684edfd50ed44fc78ed1bc20884.tar.gz
riscv-isa-sim-616cc32c30ac0684edfd50ed44fc78ed1bc20884.tar.bz2
Added PC histogram option.
- Spits out all PCs (on 4B granularity) executed with count. - Requires a compile time configuration option. - Also requires a run-time flag.
Diffstat (limited to 'riscv/sim.cc')
-rw-r--r--riscv/sim.cc13
1 files changed, 12 insertions, 1 deletions
diff --git a/riscv/sim.cc b/riscv/sim.cc
index 59fe593..9490af3 100644
--- a/riscv/sim.cc
+++ b/riscv/sim.cc
@@ -40,8 +40,10 @@ sim_t::sim_t(size_t nprocs, size_t mem_mb, const std::vector<std::string>& args)
debug_mmu = new mmu_t(mem, memsz);
- for (size_t i = 0; i < procs.size(); i++)
+ for (size_t i = 0; i < procs.size(); i++) {
procs[i] = new processor_t(this, new mmu_t(mem, memsz), i);
+ }
+
}
sim_t::~sim_t()
@@ -124,8 +126,17 @@ void sim_t::set_debug(bool value)
debug = value;
}
+void sim_t::set_histogram(bool value)
+{
+ histogram_enabled = value;
+ for (size_t i = 0; i < procs.size(); i++) {
+ procs[i]->set_histogram(histogram_enabled);
+ }
+}
+
void sim_t::set_procs_debug(bool value)
{
for (size_t i=0; i< procs.size(); i++)
procs[i]->set_debug(value);
}
+