Go to the documentation of this file.
33 #ifndef TTA_INSTRUCTION_HH
34 #define TTA_INSTRUCTION_HH
60 #ifdef TCE_PYTHON_BINDINGS
87 std::shared_ptr<Move>
movePtr(
int i)
const;
125 typedef std::vector<std::shared_ptr<Move> >
MoveList;
127 typedef std::vector<std::shared_ptr<Immediate> >
ImmList;
void removeMove(Move &move)
void addMove(std::shared_ptr< Move > move)
UInt32 InstructionAddress
InstructionAddress finalAddress_
In case the final instruction address is known (due to program not modified anymore),...
std::vector< std::shared_ptr< Move > > MoveList
List for moves.
bool hasConditionalRegisterAccesses() const
void removeImmediate(Immediate &imm)
std::string toString() const
ImmList immediates_
Immediates contained in this instruction.
bool hasRegisterAccesses_
Set to true in case this instruction has moves that access registers.
const TTAMachine::InstructionTemplate * insTemplate_
Instruction template that is used for this instruction.
std::vector< std::shared_ptr< Immediate > > ImmList
List for immediates.
Instruction * copy() const
CodeSnippet & parent() const
short size_
Size of instruction in MAU's.
std::shared_ptr< Immediate > immediatePtr(int i) const
Immediate & immediate(int i) const
bool hasRegisterAccesses() const
const TTAMachine::InstructionTemplate & instructionTemplate() const
void setParent(CodeSnippet &proc)
bool isInProcedure() const
InstructionAddress positionInProcedure_
Cache the instruction's index in the its procedure for faster address().
static NullInstructionTemplate & instance()
MoveList moves_
Moves contained in this instruction.
bool hasConditionalRegisterAccesses_
Set to true in case this instruction has moves that access registers and are conditional.
int immediateCount() const
void setInstructionTemplate(const TTAMachine::InstructionTemplate &insTemp)
bool hasControlFlowMove() const
std::shared_ptr< Move > movePtr(int i) const
void setFinalAddress(InstructionAddress addr)
CodeSnippet * parent_
Parent procedure.
bool hasFinalAddress() const
void addImmediate(std::shared_ptr< Immediate > imm)
Instruction & operator=(const Instruction &)
Assignment not allowed.
Instruction(const TTAMachine::InstructionTemplate &instructionTemplate=TTAMachine::NullInstructionTemplate::instance())