OpenASIP
2.0
|
#include <ExecutableInstruction.hh>
Public Member Functions | |
ExecutableInstruction () | |
virtual | ~ExecutableInstruction () |
void | addExecutableMove (ExecutableMove *move) |
void | addLongImmediateUpdateAction (LongImmUpdateAction *action) |
void | execute () |
ClockCycleCount | executionCount () const |
ClockCycleCount | moveExecutionCount (std::size_t moveIndex) const |
void | resetExecutionCounts () |
bool | moveSquashed (std::size_t moveIndex) const |
void | setExitPoint (bool b) |
bool | isExitPoint () const |
Private Types | |
typedef std::vector< ExecutableMove * > | MoveContainer |
Contains ExecutableMoves. More... | |
typedef std::vector< LongImmUpdateAction * > | UpdateContainer |
Contains long immediate update actions. More... | |
Private Member Functions | |
ExecutableInstruction (const ExecutableInstruction &) | |
Copying not allowed. More... | |
ExecutableInstruction & | operator= (const ExecutableInstruction &) |
Assignment not allowed. More... | |
Private Attributes | |
MoveContainer | moves_ |
All moves of the instruction. More... | |
UpdateContainer | updateActions_ |
All long immediate update actions. More... | |
ClockCycleCount | executionCount_ |
The count of times this instruction has been executed. More... | |
bool | exitPoint_ |
True in case the instruction is considered a program exit point. More... | |
Represents an interpreted TTA instruction.
This class is used to simulate the data transports performed by a TTA instruction.
Definition at line 49 of file ExecutableInstruction.hh.
|
private |
Contains ExecutableMoves.
Definition at line 74 of file ExecutableInstruction.hh.
|
private |
Contains long immediate update actions.
Definition at line 76 of file ExecutableInstruction.hh.
ExecutableInstruction::ExecutableInstruction | ( | ) |
Constructor.
Definition at line 42 of file ExecutableInstruction.cc.
References resetExecutionCounts().
|
virtual |
Destructor.
Definition at line 50 of file ExecutableInstruction.cc.
References SequenceTools::deleteAllItems(), moves_, and updateActions_.
|
private |
Copying not allowed.
void ExecutableInstruction::addExecutableMove | ( | ExecutableMove * | move | ) |
Adds move to the instruction.
Moves must be added in the same order they are in source Program model's instruction.
move | Move to be added. |
Definition at line 64 of file ExecutableInstruction.cc.
References moves_.
Referenced by CompiledSimUtilizationStats::calculate(), and SimProgramBuilder::processInstruction().
void ExecutableInstruction::addLongImmediateUpdateAction | ( | LongImmUpdateAction * | action | ) |
Adds long immediate update action.
action | Action to be added. |
Definition at line 74 of file ExecutableInstruction.cc.
References updateActions_.
Referenced by SimProgramBuilder::processInstruction().
void ExecutableInstruction::execute | ( | ) |
Referenced by OTASimulationController::simulateCycle(), and SimulationController::simulateCycle().
ClockCycleCount ExecutableInstruction::executionCount | ( | ) | const |
Returns the count of times this instruction has been executed so far.
Definition at line 85 of file ExecutableInstruction.cc.
References executionCount_.
Referenced by SimulationStatistics::calculate(), SimulatorFrontend::finishSimulation(), RFAccessTracker::handleEvent(), DisasmTopCountAttrProvider::moveCellAttr(), DesignSpaceExplorer::simulate(), and DisasmTopCountAttrProvider::updateTopCountTable().
bool ExecutableInstruction::isExitPoint | ( | ) | const |
Referenced by OTASimulationController::simulateCycle(), and SimulationController::simulateCycle().
ClockCycleCount ExecutableInstruction::moveExecutionCount | ( | std::size_t | moveIndex | ) | const |
Returns the count of full executions so far of move at given index.
Squashed moves are not included in the count. Thus, to get count of times a move has be squashed, one should get the instruction execution count and subsract the move's execution count from it.
Definition at line 110 of file ExecutableInstruction.cc.
References moves_.
Referenced by UtilizationStats::calculateForInstruction(), and DisasmExecPercentageAttrProvider::moveCellAttr().
bool ExecutableInstruction::moveSquashed | ( | std::size_t | moveIndex | ) | const |
Referenced by ProximMachineStateWindow::addMoves(), and RFAccessTracker::handleEvent().
|
private |
Assignment not allowed.
void ExecutableInstruction::resetExecutionCounts | ( | ) |
Resets the execution counters of this instruction and its moves.
Definition at line 93 of file ExecutableInstruction.cc.
References executionCount_, and moves_.
Referenced by ExecutableInstruction().
void ExecutableInstruction::setExitPoint | ( | bool | b | ) |
|
private |
The count of times this instruction has been executed.
Definition at line 82 of file ExecutableInstruction.hh.
Referenced by executionCount(), and resetExecutionCounts().
|
private |
True in case the instruction is considered a program exit point.
Definition at line 84 of file ExecutableInstruction.hh.
|
private |
All moves of the instruction.
Definition at line 78 of file ExecutableInstruction.hh.
Referenced by addExecutableMove(), moveExecutionCount(), resetExecutionCounts(), and ~ExecutableInstruction().
|
private |
All long immediate update actions.
Definition at line 80 of file ExecutableInstruction.hh.
Referenced by addLongImmediateUpdateAction(), and ~ExecutableInstruction().