arch-riscv: Don't crash when printing unknown CSRs
This patch fixes a potential crash if an unnamed CSR is accessed and debug flags are enabled that print disassembly. Unknown CSRs will be identified as "??" followed by the address that was used. Change-Id: If5ac57f1422bd59c72a1a06206fa9d9dc05d21ef Reviewed-on: https://gem5-review.googlesource.com/7321 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Alec Roelke <ar4jc@virginia.edu>
This commit is contained in:
@@ -60,7 +60,11 @@ CSROp::generateDisassembly(Addr pc, const SymbolTable *symtab) const
|
||||
ss << mnemonic << ' ' << registerName(_destRegIdx[0]) << ", ";
|
||||
if (_numSrcRegs > 0)
|
||||
ss << registerName(_srcRegIdx[0]) << ", ";
|
||||
ss << MiscRegNames.at(csr);
|
||||
auto name = MiscRegNames.find(csr);
|
||||
if (name != MiscRegNames.end())
|
||||
ss << name->second;
|
||||
else
|
||||
ss << "?? (" << hex << "0x" << csr << ")";
|
||||
return ss.str();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user