Updated repo information
Added support for semihosting "get command line" call.
PiperOrigin-RevId: 720282186
Change-Id: I96c1b7ff3a0fc68e39bcfbd7224bdae38405a9fa
diff --git a/cheriot/mpact_cheriot.cc b/cheriot/mpact_cheriot.cc
index 312e334..fa40b27 100644
--- a/cheriot/mpact_cheriot.cc
+++ b/cheriot/mpact_cheriot.cc
@@ -245,15 +245,12 @@
auto arg_vec = absl::ParseCommandLine(argc, argv);
int exit_code = 0;
- if (arg_vec.size() > 2) {
- std::cerr << "Only a single input file allowed" << std::endl;
- return -1;
- }
- if (arg_vec.size() < 2) {
+ arg_vec.erase(arg_vec.begin());
+ if (arg_vec.empty()) {
std::cerr << "Must specify input file" << std::endl;
return -1;
}
- std::string full_file_name = arg_vec[1];
+ std::string full_file_name = arg_vec[0];
std::string file_name =
full_file_name.substr(full_file_name.find_last_of('/') + 1);
std::string file_basename = file_name.substr(0, file_name.find_first_of('.'));
@@ -426,7 +423,7 @@
auto *memory = static_cast<MemoryInterface *>(router);
auto *semihost =
new RiscVArmSemihost(RiscVArmSemihost::BitWidth::kWord32, memory, memory);
-
+ semihost->SetCmdLine(arg_vec);
cheriot_top.state()->AddEbreakHandler([semihost](const Instruction *inst) {
if (semihost->IsSemihostingCall(inst)) {
semihost->OnEBreak(inst);
diff --git a/repos.bzl b/repos.bzl
index 8756564..fb054f7 100644
--- a/repos.bzl
+++ b/repos.bzl
@@ -22,7 +22,7 @@
if not native.existing_rule("com_google_mpact-riscv"):
http_archive(
name = "com_google_mpact-riscv",
- sha256 = "736672787a720914282b770abbad04d5c4aa22326888da8fe05758ba4824ffd0",
- strip_prefix = "mpact-riscv-05aaf9a3a94b164867aaa590cb79a73e06ccf216",
- url = "https://github.com/google/mpact-riscv/archive/05aaf9a3a94b164867aaa590cb79a73e06ccf216.tar.gz",
+ sha256 = "8d115c03cbd80a1d24d45fa8d361f928cd6e1a11adf2f2c4d5b407ad6da7aa4c",
+ strip_prefix = "mpact-riscv-b60757efd3690928a10927ee6fa6127c7f48df3e",
+ url = "https://github.com/google/mpact-riscv/archive/b60757efd3690928a10927ee6fa6127c7f48df3e.tar.gz",
)