diff options
Diffstat (limited to 'src/arch/arm/insts/static_inst.cc')
-rw-r--r-- | src/arch/arm/insts/static_inst.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/arch/arm/insts/static_inst.cc b/src/arch/arm/insts/static_inst.cc index 6b641d8bb..a76dbd69c 100644 --- a/src/arch/arm/insts/static_inst.cc +++ b/src/arch/arm/insts/static_inst.cc @@ -29,6 +29,7 @@ #include "arch/arm/insts/static_inst.hh" #include "base/condcodes.hh" +#include "base/loader/symtab.hh" namespace ArmISA { @@ -309,6 +310,23 @@ ArmStaticInst::printMnemonic(std::ostream &os, } } +void +ArmStaticInst::printMemSymbol(std::ostream &os, + const SymbolTable *symtab, + const std::string &prefix, + const Addr addr, + const std::string &suffix) const +{ + Addr symbolAddr; + std::string symbol; + if (symtab && symtab->findNearestSymbol(addr, symbol, symbolAddr)) { + ccprintf(os, "%s%s", prefix, symbol); + if (symbolAddr != addr) + ccprintf(os, "+%d", addr - symbolAddr); + ccprintf(os, suffix); + } +} + std::string ArmStaticInst::generateDisassembly(Addr pc, const SymbolTable *symtab) const |