Go to the documentation of this file.
76 parent_(NULL), src_(src), dst_(dst), bus_(&bus), guard_(guard) {
90 parent_(NULL), src_(src), dst_(dst), bus_(&bus),
120 "Move is not registered.");
220 if (
isCall())
return true;
221 if (!
isJump())
return false;
350 __FILE__, __LINE__,
"Move::guard()",
"Move is not predicated.");
396 __FILE__, __LINE__,
"Move::sourceSocket()",
397 "Move source is an immediate.");
412 std::shared_ptr<Move>
415 std::shared_ptr<Move> newMove = NULL;
419 newMove = std::make_shared<Move>(
464 lineNumber = INT_MAX;
466 lineNumber = std::min(lineNumber,
annotation(i,
id).intValue());
489 std::string fileName =
"";
std::shared_ptr< Move > copy() const
std::string sourceFileName() const
virtual bool isFUPort() const
TTAMachine::Socket & destinationSocket() const
bool isTriggering() const
virtual Socket * inputSocket() const
@ ANN_JUMP_FUNCTION_CALL
The JUMP in the annotated move is a function call and should be treated as such in the data dependenc...
Terminal * dst_
The destination of the move.
bool isFunctionCall() const
virtual bool isTriggering() const
bool isUnconditional() const
std::string stringValue() const
int sourceLineNumber() const
Terminal & destination() const
const TTAMachine::Bus & bus() const
virtual Operation & operation() const
void setGuard(MoveGuard *guard)
std::string toString() const
@ ANN_DEBUG_SOURCE_CODE_LINE
The line number in the source code file the annotated move originates from.
static NullOperation & instance()
void setParent(Instruction &ins)
Id
the ID in TPEF is 24 bits, here enum
TTAMachine::Socket & sourceSocket() const
virtual Operation & hintOperation() const
void setDestination(Terminal *dst)
virtual ControlUnit * controlUnit() const
bool isControlFlowMove() const
MoveGuard & guard() const
Terminal * src_
The source of the move.
const TTAMachine::Bus * bus_
The bus where the transport is carried.
Move(Terminal *src, Terminal *dst, const TTAMachine::Bus &bus, MoveGuard *guard)
bool isInInstruction() const
static NullInstruction & instance()
virtual bool isOpcodeSetting() const
bool hasAnnotations(ProgramAnnotation::Id id=ProgramAnnotation::ANN_UNDEF_ID) const
ProgramAnnotation annotation(int index, ProgramAnnotation::Id id=ProgramAnnotation::ANN_UNDEF_ID) const
Instruction * parent_
Parent instruction of the move.
virtual Bus * parentBus() const
static std::string disassemble(const TTAProgram::Move &move)
bool hasSourceLineNumber() const
Instruction & parent() const
@ ANN_STACKFRAME_PROCEDURE_RETURN
precedure return jmp
virtual Machine * machine() const
virtual Terminal * copy() const =0
virtual Socket * outputSocket() const
Terminal & source() const
@ ANN_DEBUG_SOURCE_CODE_PATH
debugging info annotations
virtual const TTAMachine::Port & port() const
MoveGuard * guard_
The boolean expression that predicates the move.
virtual int guardLatency() const
const TTAMachine::Guard & guard() const
virtual bool isCall() const
int globalGuardLatency() const
virtual bool isImmediate() const
const RegisterFile * registerFile() const
void setBus(const TTAMachine::Bus &bus)
virtual bool isBranch() const
void setSource(Terminal *src)
virtual bool isControlFlowOperation() const
int annotationCount(ProgramAnnotation::Id id=ProgramAnnotation::ANN_UNDEF_ID) const
bool hasSourceFileName() const