Go to the documentation of this file.
35 #include <boost/format.hpp>
58 : port_(port), operation_(NULL), opcode_(NULL) {
61 "Opcode setting port terminals must have opcode set!";
75 port_(opcodeSettingPort), operation_(&opcode), opcode_(NULL) {
90 "Error loading the operation '%s' definition: '%s'.")
105 : port_(*operation.port(opIndex)),
106 operation_(&operation),
115 "Port binding of operand %d of operation '%s' "
128 "Error loading the operation '%s' definition: '%s'.")
141 Terminal(), port_(tfup.port_), operation_(tfup.operation_),
142 opcode_(tfup.opcode_), opIndex_(tfup.opIndex_), po_(tfup.po_) {
218 <<
"operation == NULL || !port_.isopcodesetting()" << std::endl;
222 "Terminal does not set opcode for FU.");
243 "FU port of the terminal is not opcode-setting "
244 "and bears no auxiliary 'hint operation' information.";
341 "Opcode _must_ be set for terminals that "
342 "refers opcode setting port!");
Operation * opcode_
The OSAL operation.
virtual bool isFUPort() const
Operation & operation(const char *name)
virtual const TTAMachine::FunctionUnit & functionUnit() const
virtual bool isOpcodeSetting() const
TerminalFUPort(const TTAMachine::FUPort &opcodeSettingPort, const TTAMachine::HWOperation &opcode)
FunctionUnit * parentUnit() const
virtual bool isTriggering() const
virtual Terminal * copy() const
const TTAMachine::BaseFUPort & port_
Port of the unit.
virtual TCEString toString() const
const TTAMachine::HWOperation * operation_
Operation code transported to the port.
void setCause(const Exception &cause)
virtual bool equals(const Terminal &other) const
virtual Operation & operation() const
virtual bool isRA() const
static NullOperation & instance()
virtual TCEString name() const
void setHintOperation(const char *name)
virtual bool isOpcodeSetting() const =0
#define assert(condition)
virtual bool isFUPort() const
virtual Operation & hintOperation() const
virtual std::string toString() const
int io(const FUPort &port) const
#define abortWithError(message)
virtual int operationIndex() const
const std::string & name() const
int opIndex_
Operation index.
virtual std::string toString() const
virtual const TTAMachine::Port & port() const
virtual ~TerminalFUPort()
virtual bool isOpcodeSetting() const
virtual bool isTriggering() const =0
virtual void setOperation(const TTAMachine::HWOperation &hwOp)
std::string errorMessage() const
virtual const TTAMachine::HWOperation * hwOperation() const
virtual HWOperation * operation(const std::string &name) const
int findNewOperationIndex() const