diff options
author | Andrew Waterman <andrew@sifive.com> | 2024-04-17 15:36:24 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-17 15:36:24 -0700 |
commit | 3192ee4d31f481e84281a24d55bb6130e3743668 (patch) | |
tree | b0a06e3d79375fb19f156459b7f6edcd733ea181 /riscv | |
parent | 4196bc8fafadb643671a0d92a7b32ac84457dc8d (diff) | |
parent | 410276cf1f09829c1bef322ab6ebc97f29b90dab (diff) | |
download | riscv-isa-sim-3192ee4d31f481e84281a24d55bb6130e3743668.zip riscv-isa-sim-3192ee4d31f481e84281a24d55bb6130e3743668.tar.gz riscv-isa-sim-3192ee4d31f481e84281a24d55bb6130e3743668.tar.bz2 |
Merge pull request #1595 from Siudya/until-paddr
Interaction: Support until-mem operation on physical memory space
Diffstat (limited to 'riscv')
-rw-r--r-- | riscv/interactive.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/riscv/interactive.cc b/riscv/interactive.cc index e32c728..71e26e6 100644 --- a/riscv/interactive.cc +++ b/riscv/interactive.cc @@ -721,7 +721,7 @@ void sim_t::interactive_until(const std::string& cmd, const std::vector<std::str if (args.size() < 3) throw trap_interactive(); - if (args.size() == 3) + if (args.size() == 4 || (args[0] == "pc" && args.size() == 3)) //dont check mem with arg len = 3 get_core(args[1]); // make sure that argument is a valid core number char *end; @@ -732,7 +732,9 @@ void sim_t::interactive_until(const std::string& cmd, const std::vector<std::str throw trap_interactive(); // mask bits above max_xlen - int max_xlen = procs[strtol(args[1].c_str(),NULL,10)]->get_isa().get_max_xlen(); + bool until_mem_paddr = args[0] == "mem" && args.size() == 3; + size_t procnum = until_mem_paddr ? 0 : strtol(args[1].c_str(), NULL, 10); + int max_xlen = procs[procnum]->get_isa().get_max_xlen(); if (max_xlen == 32) val &= 0xFFFFFFFF; std::vector<std::string> args2; |