From 56f1845471231f6b063a912c79c38e63cfbd7d59 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Sat, 27 Jun 2009 00:29:30 -0700 Subject: ARM: Show branch targets relative to the nearest symbol. --- src/arch/arm/insts/static_inst.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/arch/arm/insts/static_inst.cc') 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 -- cgit v1.2.3