OpenASIP
2.0
|
#include <OperationExecutor.hh>
Public Member Functions | |
OperationExecutor () | |
OperationExecutor (FUState &parent) | |
virtual | ~OperationExecutor () |
FUState & | parent () const |
void | setParent (FUState &parent) |
void | addBinding (int io, PortState &port) |
PortState & | binding (int io) const |
virtual void | startOperation (Operation &op)=0 |
bool | hasPendingOperations () const |
virtual void | advanceClock ()=0 |
virtual OperationExecutor * | copy ()=0 |
virtual void | setContext (OperationContext &context)=0 |
virtual void | reset () |
Protected Attributes | |
std::vector< PortState * > | bindings_ |
PortStates that are bound to a certain input or output operand. More... | |
bool | hasPendingOperations_ |
This is set to true if the OperationExecutor is not in 'idle' mode. More... | |
Private Member Functions | |
OperationExecutor & | operator= (const OperationExecutor &) |
Assignment not allowed. More... | |
Private Attributes | |
FUState * | parent_ |
Parent of the executor. More... | |
Executes operations in function units.
Definition at line 49 of file OperationExecutor.hh.
|
inline |
Definition at line 51 of file OperationExecutor.hh.
|
explicit |
|
virtual |
void OperationExecutor::addBinding | ( | int | io, |
PortState & | port | ||
) |
Adds binding of operand to a port.
io | Operand index. |
port | Port to be bind. |
IllegalRegistration | If parent of the port is not the same as the parent of the executor. |
Definition at line 67 of file OperationExecutor.cc.
References __func__, bindings_, PortState::parent(), and parent_.
Referenced by MachineStateBuilder::bindPortsToOperands(), and FUState::replaceOperationExecutor().
|
pure virtual |
Implemented in MultiLatencyOperationExecutor, ConflictDetectingOperationExecutor, SimpleOperationExecutor, TransportPipeline, and OneCycleOperationExecutor.
Referenced by FUState::advanceClock().
PortState& OperationExecutor::binding | ( | int | io | ) | const |
|
pure virtual |
Implemented in MultiLatencyOperationExecutor, ConflictDetectingOperationExecutor, SimpleOperationExecutor, TransportPipeline, and OneCycleOperationExecutor.
Referenced by FUState::addOperationExecutor().
bool OperationExecutor::hasPendingOperations | ( | ) | const |
Referenced by FUState::advanceClock(), and FUState::endClock().
|
private |
Assignment not allowed.
FUState& OperationExecutor::parent | ( | ) | const |
Referenced by FUState::replaceOperationExecutor(), setParent(), and TransportPipeline::TransportPipeline().
|
virtual |
Reimplemented in MultiLatencyOperationExecutor.
Definition at line 87 of file OperationExecutor.cc.
|
pure virtual |
Implemented in MultiLatencyOperationExecutor, SimpleOperationExecutor, TransportPipeline, and OneCycleOperationExecutor.
Referenced by FUState::addOperationExecutor(), and FUState::replaceOperationExecutor().
|
inline |
Definition at line 56 of file OperationExecutor.hh.
References parent(), and parent_.
Referenced by FUState::replaceOperationExecutor().
|
pure virtual |
Implemented in MultiLatencyOperationExecutor, ConflictDetectingOperationExecutor, SimpleOperationExecutor, TransportPipeline, and OneCycleOperationExecutor.
Referenced by FUState::endClock().
|
protected |
PortStates that are bound to a certain input or output operand.
Definition at line 70 of file OperationExecutor.hh.
Referenced by addBinding(), and OneCycleOperationExecutor::initializeIOVector().
|
protected |
This is set to true if the OperationExecutor is not in 'idle' mode.
Definition at line 73 of file OperationExecutor.hh.
Referenced by OneCycleOperationExecutor::advanceClock(), SimpleOperationExecutor::advanceClock(), ConflictDetectingOperationExecutor::advanceClock(), MultiLatencyOperationExecutor::advanceClock(), MultiLatencyOperationExecutor::MultiLatencyOperationExecutor(), MultiLatencyOperationExecutor::reset(), SimpleOperationExecutor::SimpleOperationExecutor(), OneCycleOperationExecutor::startOperation(), SimpleOperationExecutor::startOperation(), ConflictDetectingOperationExecutor::startOperation(), and MultiLatencyOperationExecutor::startOperation().
|
private |
Parent of the executor.
Definition at line 79 of file OperationExecutor.hh.
Referenced by addBinding(), and setParent().