OpenASIP
2.0
|
#include <BuslessExecutableMove.hh>
Private Member Functions | |
BuslessExecutableMove (const BuslessExecutableMove &) | |
Copying not allowed. More... | |
BuslessExecutableMove & | operator= (const BuslessExecutableMove &) |
Assignment not allowed. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from ExecutableMove | |
ExecutableMove () | |
Protected Attributes inherited from ExecutableMove | |
const ReadableState * | src_ |
Source of the move. More... | |
BusState * | bus_ |
Bus of the move. More... | |
WritableState * | dst_ |
Destination of the move. More... | |
const ReadableState * | guardReg_ |
Guard of the move. More... | |
const bool | guarded_ |
True if this is a guarded move. More... | |
const bool | negated_ |
True if guard is inverted. More... | |
ClockCycleCount | executionCount_ |
The count of times this move has been fully executed (without squash). More... | |
bool | squashed_ |
True in case this move was squashed last time it was executed. More... | |
Represents an interpreted move which does not utilize a transport bus.
Moves that utilize this class include control unit internal moves such as control flow operations (jump, call) with immediate or RA source. This class can be used also for simulating data transports of sequential code, as writing to (the universal) bus is not necessary in that case.
Definition at line 53 of file BuslessExecutableMove.hh.
BuslessExecutableMove::BuslessExecutableMove | ( | const ReadableState & | src, |
WritableState & | dst | ||
) |
Constructor.
src | Source of the move. |
dst | Destination of the move. |
Definition at line 45 of file BuslessExecutableMove.cc.
BuslessExecutableMove::BuslessExecutableMove | ( | const ReadableState & | src, |
WritableState & | dst, | ||
const ReadableState & | guardReg, | ||
bool | negated | ||
) |
Constructor.
src | Source of the move. |
bus | Bus of the move. |
dst | Destination of the move. |
guardReg | Guard register. |
negated | True if guard is reversed. |
Definition at line 60 of file BuslessExecutableMove.cc.
BuslessExecutableMove::BuslessExecutableMove | ( | InlineImmediateValue * | immediateSource, |
WritableState & | dst, | ||
const ReadableState & | guardReg, | ||
bool | negated | ||
) |
Constructor.
Used to construct a move that has an inline immediate as the source. The inline immediate becomes property of the created BuslessExecutableMove and is deleted by it.
immediateSource | The inline immediate source of the move. |
bus | Bus of the move. |
dst | Destination of the move. |
guardReg | Guard register. |
negated | True if guard is reversed. |
Definition at line 81 of file BuslessExecutableMove.cc.
BuslessExecutableMove::BuslessExecutableMove | ( | InlineImmediateValue * | immediateSource, |
WritableState & | dst | ||
) |
Constructor.
Used to construct a move that has an inline immediate as the source. The inline immediate becomes property of the created BuslessExecutableMove and is deleted by it.
immediateSource | The inline immediate source of the move. |
bus | Bus of the move. |
dst | Destination of the move. |
guardReg | Guard register. |
negated | True if guard is reversed. |
Definition at line 103 of file BuslessExecutableMove.cc.
|
virtual |
|
private |
Copying not allowed.
|
virtual |
Does not do anything because value is transferred directly from source to destination without writing to a bus first.
Reimplemented from ExecutableMove.
Definition at line 122 of file BuslessExecutableMove.cc.
|
virtual |
Writes the value from source to the destination.
If the move is guarded, the value is written to destination only if guard expression is true.
Reimplemented from ExecutableMove.
Definition at line 132 of file BuslessExecutableMove.cc.
References ExecutableMove::dst_, ExecutableMove::executionCount_, ExecutableMove::guarded_, ExecutableMove::guardReg_, ExecutableMove::negated_, WritableState::setValue(), SimValue::sLongWordValue(), ExecutableMove::squashed_, ExecutableMove::src_, and ReadableState::value().
|
private |
Assignment not allowed.