aboutsummaryrefslogtreecommitdiff
path: root/riscv
diff options
context:
space:
mode:
authorRupert Swarbrick <rswarbrick@gmail.com>2022-04-11 11:07:08 +0100
committerRupert Swarbrick <rswarbrick@lowrisc.org>2022-04-12 11:10:46 +0100
commit9f0cf3437051b1ff0da9f087d001f768c2242870 (patch)
treebb0767afe4ea19067db35aea4732018f6f05d766 /riscv
parent61b4f61a857de65d1a341f55597bfceeb7b7690d (diff)
downloadspike-9f0cf3437051b1ff0da9f087d001f768c2242870.zip
spike-9f0cf3437051b1ff0da9f087d001f768c2242870.tar.gz
spike-9f0cf3437051b1ff0da9f087d001f768c2242870.tar.bz2
Remove nprocs from cfg_t
Now we have hartids, we can remove nprocs so that we have a single source of truth.
Diffstat (limited to 'riscv')
-rw-r--r--riscv/cfg.h6
-rw-r--r--riscv/sim.cc2
2 files changed, 3 insertions, 5 deletions
diff --git a/riscv/cfg.h b/riscv/cfg.h
index 6410c81..1e40aed 100644
--- a/riscv/cfg.h
+++ b/riscv/cfg.h
@@ -54,13 +54,12 @@ class cfg_t
{
public:
cfg_t(std::pair<reg_t, reg_t> default_initrd_bounds,
- const char *default_bootargs, size_t default_nprocs,
+ const char *default_bootargs,
const char *default_isa, const char *default_priv,
const std::vector<mem_cfg_t> &default_mem_layout,
const std::vector<int> default_hartids)
: initrd_bounds(default_initrd_bounds),
bootargs(default_bootargs),
- nprocs(default_nprocs),
isa(default_isa),
priv(default_priv),
mem_layout(default_mem_layout),
@@ -70,13 +69,14 @@ public:
cfg_arg_t<std::pair<reg_t, reg_t>> initrd_bounds;
cfg_arg_t<const char *> bootargs;
- cfg_arg_t<size_t> nprocs;
cfg_arg_t<const char *> isa;
cfg_arg_t<const char *> priv;
cfg_arg_t<std::vector<mem_cfg_t>> mem_layout;
std::optional<reg_t> start_pc;
cfg_arg_t<std::vector<int>> hartids;
bool explicit_hartids;
+
+ size_t nprocs() const { return hartids().size(); }
};
#endif
diff --git a/riscv/sim.cc b/riscv/sim.cc
index d7585ca..6945c64 100644
--- a/riscv/sim.cc
+++ b/riscv/sim.cc
@@ -62,8 +62,6 @@ sim_t::sim_t(const cfg_t *cfg, const char* varch, bool halted, bool real_time_cl
remote_bitbang(NULL),
debug_module(this, dm_config)
{
- assert(cfg->hartids().size() == cfg->nprocs());
-
signal(SIGINT, &handle_signal);
sout_.rdbuf(std::cerr.rdbuf()); // debug output goes to stderr by default