35#ifndef TTA_POM_DISASSEMBLER_HH
36#define TTA_POM_DISASSEMBLER_HH
83 std::string
label(Word address,
int index)
const;
137 static std::string
label(
find Finds info of the inner loops in the program
static DisassemblyImmediate * createInlineImmediate(const TTAProgram::Terminal &terminal, bool signExtend)
virtual TCEString procedureDescription(const TTAProgram::Procedure &proc)
int labelCount(Word address) const
static DisassemblyImmediateRegister * createImmediateRegister(const TTAProgram::Terminal &terminal)
static POMDisassembler * disassembler(const TTAMachine::Machine &mach, const TTAProgram::Program &program)
virtual TCEString disassembleInstruction(const TTAProgram::Instruction &instruction, int addr=-1)
"Template methods" that can be overridden in the derived assemblers.
static bool isCallOrJump(const TTAProgram::Terminal &terminal)
static std::string disassemble(const TTAProgram::Move &move)
static DisassemblyElement * createRegister(const TTAProgram::Terminal &terminal)
static TCEString disassembleFully(const TTAProgram::Program &program, bool indices=false)
virtual TCEString disassembleProgram()
virtual size_t instructionSize(const TTAProgram::Instruction &)
Returns the size of the instruction in memory addresses, if known. Falls back to address per instruct...
virtual DisassemblyInstruction * createInstruction(Word instructionIndex) const
static DisassemblyElement * createTerminal(const TTAProgram::Terminal &terminal)
virtual Word instructionCount() const
virtual void setPrintAddresses(bool addresses)
static DisassemblyElement * createFUPort(const TTAProgram::Terminal &terminal)
static DisassemblyMove * createMove(const TTAProgram::Move &move)
virtual ~POMDisassembler()
virtual TCEString dataDefDescription(const TTAProgram::DataDefinition &def)
virtual TCEString disassembleProcedure(const TTAProgram::Procedure &proc)
bool printAddresses_
True if instruction indices (addresses) should be printed at the end of lines.
virtual Word startAddress() const
virtual TCEString labelPositionDescription(TCEString labelStr) const
virtual TCEString printAddress(const TTAProgram::Instruction &instr) const
static DisassemblyImmediateAssignment * createImmediateAssignment(const TTAProgram::Immediate &immediate)
virtual TCEString destinationLabels(const TTAProgram::Procedure &proc, int instrIndex) const
virtual TCEString disassembleProcedures()
virtual TCEString dataSectionDescription(const TTAMachine::AddressSpace &aSpace, Word location)
std::string label(Word address, int index) const
const TTAProgram::Program & program_
Program object model to disassemble.
virtual TCEString codeSectionDescription(Word startAddress)
static DisassemblyGuard * createGuard(const TTAProgram::MoveGuard &guard)