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:
Alec Roelke
2017-12-14 23:22:10 -05:00
parent 1437a24864
commit b622601dfb

View File

@@ -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();
}