55class InstructionReferenceManager;
56class TerminalImmediate;
UInt32 InstructionAddress
find Finds info of the inner loops in the program
std::vector< Instruction * > InstructionVector
Vector for instructions.
static Program * loadFromTPEF(const std::string &tpefFileName, const TTAMachine::Machine &theMachine)
GlobalScope & globalScope()
Procedure & procedure(int index) const
static void writeToTPEF(const TTAProgram::Program &program, const std::string &tpefFileName)
Instruction & nextInstruction(const Instruction &) const
Instruction & firstInstruction() const
ProcList::const_iterator ProcIter
Iterator for the procedure list.
TerminalImmediate * convertSymbolRef(Terminal &tsr)
bool hasProcedure(const std::string &name) const
ProcList procedures_
The procedures in the program.
bool finalized_
True in case the program is not (and must not be) updated anymore and it has its final instruction ad...
GlobalScope * globalScope_
Global scope of the program.
Program(const Program &)
Copying not allowed.
void moveProcedure(Procedure &proc, int howMuch)
void copyCodeLabelsFrom(const Program &srcProg)
TCEString toString() const
InstructionReferenceManager * refManager_
Keeps book of all instruction to instruction (jumps and calls) references in the program.
void fixInstructionReferences()
const Move & moveAt(int number) const
Address entryAddress() const
Instruction & lastInstruction() const
const Procedure & procedureAtIndex(int index) const
void replaceUniversalAddressSpaces(const TTAMachine::AddressSpace &space)
Procedure & operator[](size_t index)
std::vector< Move * > MoveList
List for moves.
Address startAddress() const
MoveList moves_
List of all the moves of the program.
void copyDataMemoriesFrom(const Program &srcProg)
Program & operator=(const Program &old)
void copyDataLabelsFrom(const Program &srcProg)
const GlobalScope & globalScopeConst() const
TTAMachine::Machine & targetProcessor() const
void setEntryAddress(Address address)
bool isInstructionPerAddress() const
DataMemory & dataMemory(int index) const
void removeProcedure(Procedure &proc)
Procedure & nextProcedure(const Procedure &proc) const
void addDataMemory(DataMemory *dataMem)
void addProcedure(Procedure *proc)
Instruction & instructionAt(InstructionAddress address) const
bool instructionPerAddress_
True in case the program is instruction indexed, that is, each instruction is assumed to be in a sing...
int procedureCount() const
void addInstruction(Instruction *ins)
InstructionReferenceManager & instructionReferenceManager() const
UniversalMachine & universalMachine() const
void setStartAddress(Address start)
Address entry_
The entry address of the program.
std::vector< DataMemory * > DataMemList
List for data memories.
int instructionCount() const
static Program * loadFromUnscheduledTPEF(const std::string &tpefFileName, const TTAMachine::Machine &theMachine)
void link(const TTAProgram::Program &other)
std::vector< Procedure * > ProcList
List for procedures.
DataMemList dataMems_
The data memories in the program.
void convertSymbolRefsToInsRefs(bool ignoreUnfoundSymbols=false)
InstructionVector instructionVector() const
UniversalMachine * umach_
The UniversalMachine instance used to refer to in case of the unscheduled/unassigned parts of the pro...
void setUniversalMachine(UniversalMachine *umach)
Procedure & lastProcedure() const
void copyFrom(const Program &source)
Procedure & firstProcedure() const
int dataMemoryCount() const
Address start_
The start address of the program.