OpenASIP
2.0
|
#include <Guard.hh>
Public Member Functions | |
PortGuard (bool inverted, FUPort &port, Bus &parentBus) | |
PortGuard (const ObjectState *state, Bus &parentBus) | |
virtual | ~PortGuard () |
bool | isEqual (const Guard &guard) const |
bool | isOpposite (const Guard &guard) const |
FUPort * | port () const |
virtual void | copyTo (Bus &parentBus) const |
ObjectState * | saveState () const |
void | loadState (const ObjectState *state) |
Public Member Functions inherited from TTAMachine::Guard | |
virtual | ~Guard () |
virtual Bus * | parentBus () const |
virtual void | setParentBus (Bus *parentBus) |
virtual bool | isInverted () const |
virtual bool | isMoreRestrictive (const Guard &guard) const |
virtual bool | isLessRestrictive (const Guard &guard) const |
virtual bool | isDisjoint (const Guard &guard) const |
Public Member Functions inherited from Serializable | |
virtual | ~Serializable () |
Static Public Attributes | |
static const std::string | OSNAME_PORT_GUARD = "portguard" |
ObjectState name for PortGuard ObjectState. More... | |
static const std::string | OSKEY_FU = "fu" |
ObjectState attribute key for function unit name. More... | |
static const std::string | OSKEY_PORT = "port" |
ObjectState attribute key for port name. More... | |
Static Public Attributes inherited from TTAMachine::Guard | |
static const std::string | OSNAME_GUARD = "guard" |
ObjectState name for guard. More... | |
static const std::string | OSKEY_INVERTED = "inverted" |
ObjectState attribute key for inverted feature. More... | |
Private Attributes | |
FUPort * | port_ |
Port from which the condition term is taken. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from TTAMachine::Guard | |
Guard (bool inverted, Bus *parentBus) | |
Guard (const ObjectState *state, Bus &parentBus) | |
Protected Member Functions inherited from TTAMachine::SubComponent | |
SubComponent () | |
virtual | ~SubComponent () |
Protected Member Functions inherited from TTAMachine::MachinePart | |
MachinePart () | |
virtual | ~MachinePart () |
Guard where the condition term is taken from the value of an output port of a FunctionUnit.
Constructor.
inverted | Incates whether the condition term is inverted. |
port | Port from which the condition term is taken. |
parentBus | Parent bus component of the guard. |
IllegalRegistration | If the given port is not registered to the same machine as the given parent bus. |
ComponentAlreadyExists | If the parent bus already has an equal guard. |
Definition at line 196 of file Guard.cc.
References TTAMachine::Bus::addGuard(), TTAMachine::Component::ensureRegistration(), TTAMachine::Guard::parentBus(), TTAMachine::BaseFUPort::parentUnit(), and port().
Referenced by copyTo().
TTAMachine::PortGuard::PortGuard | ( | const ObjectState * | state, |
Bus & | parentBus | ||
) |
Constructor.
Loads its state from the given ObjectState instance.
state | The ObjectState instance. |
parentBus | Parent bus of the guard. |
ObjectStateLoadingException | If the reference to the function unit port cannot be resolved or if the given ObjectState instance is invalid. |
Definition at line 215 of file Guard.cc.
References TTAMachine::Bus::addGuard(), loadState(), TTAMachine::Port::name(), TTAMachine::Component::name(), TTAMachine::Guard::parentBus(), TTAMachine::BaseFUPort::parentUnit(), port(), Texts::TextGenerator::text(), and MOMTextGenerator::TXT_EQUAL_PORT_GUARDS.
|
virtual |
|
inlinevirtual |
Implements TTAMachine::Guard.
Definition at line 109 of file Guard.hh.
References TTAMachine::Guard::isInverted(), TTAMachine::Guard::parentBus(), port_, and PortGuard().
|
virtual |
Returns true if the guard is equal with the given guard.
guard | The other guard. |
Implements TTAMachine::Guard.
Definition at line 246 of file Guard.cc.
References TTAMachine::Guard::isInverted(), and port().
|
virtual |
Returns true if the guard is opposite with the given guard, ie. always if one is executed, another is not executed.
guard | The other guard. |
Implements TTAMachine::Guard.
Definition at line 268 of file Guard.cc.
References TTAMachine::Guard::isInverted(), and port().
|
virtual |
Loads its state from the given ObjectState instance.
state | The ObjectState instance. |
ObjectStateLoadingException | If the given ObjectState instance is invalid or if the reference to the function unit port cannot be resolved. |
Reimplemented from TTAMachine::Guard.
Definition at line 312 of file Guard.cc.
References Exception::errorMessage(), TTAMachine::Machine::functionUnitNavigator(), TTAMachine::Machine::Navigator< ComponentType >::item(), TTAMachine::Guard::loadState(), TTAMachine::Component::machine(), ObjectState::name(), TTAMachine::Component::name(), TTAMachine::FunctionUnit::operationPort(), OSKEY_FU, OSKEY_PORT, OSNAME_PORT_GUARD, TTAMachine::Guard::parentBus(), port(), port_, ObjectState::stringAttribute(), and Texts::TextGenerator::text().
Referenced by PortGuard().
FUPort* TTAMachine::PortGuard::port | ( | ) | const |
Referenced by CodeCompressorPlugin::addBitsForGuardField(), BEMGenerator::addEncodings(), MachineStateBuilder::buildMachineState(), UtilizationStats::calculateForInstruction(), BEMValidator::checkGuardField(), TTAMachine::FUPort::cleanupGuards(), TTAMachine::FunctionUnit::cleanupGuards(), DefaultDecoderGenerator::completeDecoderBlock(), DefaultDecoderGenerator::containsSimilarGuard(), TTAProgram::ProgramWriter::createCodeSection(), POMDisassembler::createGuard(), TTAProgram::CodeGenerator::createInverseGuard(), TTAProgram::TPEFProgramFactory::findGuard(), DefaultDecoderGenerator::findGuard(), MachineConnectivityCheck::findPossibleDestinationPorts(), ProgramOperation::fuFromOutMove(), CompiledSimCodeGenerator::generateGuardCondition(), CompiledSimCodeGenerator::generateGuardRead(), DefaultDecoderGenerator::guardPortName(), ProgramOperation::hwopFromOutMove(), isEqual(), isOpposite(), loadState(), BFLateBypassGuard::operator()(), BFEarlyGuardBypass::operator()(), ProgramOperation::outputIndexFromGuard(), PortGuard(), MachineResourceManager::rFPortOrFUIndexReference(), MachineInfo::supportsPortGuardedJump(), and BusDialog::updateGuardLists().
|
virtual |
Saves the contents to an ObjectState object.
Reimplemented from TTAMachine::Guard.
Definition at line 289 of file Guard.cc.
References TTAMachine::Port::name(), TTAMachine::Component::name(), OSKEY_FU, OSKEY_PORT, OSNAME_PORT_GUARD, TTAMachine::BaseFUPort::parentUnit(), port_, TTAMachine::Guard::saveState(), ObjectState::setAttribute(), and ObjectState::setName().
|
static |
ObjectState attribute key for function unit name.
Definition at line 119 of file Guard.hh.
Referenced by loadState(), and saveState().
|
static |
ObjectState attribute key for port name.
Definition at line 121 of file Guard.hh.
Referenced by loadState(), and saveState().
|
static |
ObjectState name for PortGuard ObjectState.
Definition at line 117 of file Guard.hh.
Referenced by TTAMachine::Bus::loadState(), loadState(), and saveState().
|
private |
Port from which the condition term is taken.
Definition at line 125 of file Guard.hh.
Referenced by copyTo(), loadState(), and saveState().