|
OpenASIP 2.2
|
#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. | |
| typedef std::vector< LongImmUpdateAction * > | UpdateContainer |
| Contains long immediate update actions. | |
Private Member Functions | |
| ExecutableInstruction (const ExecutableInstruction &) | |
| Copying not allowed. | |
| ExecutableInstruction & | operator= (const ExecutableInstruction &) |
| Assignment not allowed. | |
Private Attributes | |
| MoveContainer | moves_ |
| All moves of the instruction. | |
| UpdateContainer | updateActions_ |
| All long immediate update actions. | |
| ClockCycleCount | executionCount_ |
| The count of times this instruction has been executed. | |
| bool | exitPoint_ |
| True in case the instruction is considered a program exit point. | |
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(), and InstructionMemory::resetExecutionCounts().
| 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().