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", )