From 60c0c86c288d14c81177e6f56aa5c6b77e40fbec Mon Sep 17 00:00:00 2001 From: Parshintsev Anatoly Date: Mon, 10 Oct 2022 15:01:32 +0300 Subject: Report error if an unsupported memory configuration is detected --- spike_main/spike.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'spike_main') diff --git a/spike_main/spike.cc b/spike_main/spike.cc index f23a2f4..ecce0c5 100644 --- a/spike_main/spike.cc +++ b/spike_main/spike.cc @@ -174,15 +174,20 @@ static std::vector parse_mem_layout(const char* arg) if (size % PGSIZE != 0) size += PGSIZE - size % PGSIZE; - if (base + size < base) - help(); - if (size != size0) { fprintf(stderr, "Warning: the memory at [0x%llX, 0x%llX] has been realigned\n" "to the %ld KiB page size: [0x%llX, 0x%llX]\n", base0, base0 + size0 - 1, long(PGSIZE / 1024), base, base + size - 1); } + if (!mem_cfg_t::check_if_supported(base, size)) { + fprintf(stderr, "unsupported memory region " + "{base = 0x%llX, size = 0x%llX} specified\n", + (unsigned long long)base, + (unsigned long long)size); + exit(EXIT_FAILURE); + } + res.push_back(mem_cfg_t(reg_t(base), reg_t(size))); if (!*p) break; -- cgit v1.1