Go to the documentation of this file.
65 inverted_(inverted), parent_(parentBus) {
168 string procName =
"Guard::loadState";
170 __FILE__, __LINE__, procName,
197 :
Guard(inverted, &parentBus), port_(&port) {
216 :
Guard(state, parentBus) {
221 const string procName =
"PortGuard::PortGuard";
223 format errorMsg = textGen.
text(
228 __FILE__, __LINE__, procName, errorMsg.str());
248 if (portGuard == NULL) {
270 if (portGuard == NULL) {
313 string procName =
"PortGuard::loadState";
329 TXT_GUARD_REF_LOAD_ERR);
340 fu = fuNav.
item(fuName);
343 TXT_GUARD_REF_LOAD_ERR_FU);
353 TXT_GUARD_REF_LOAD_ERR_PORT);
394 bool inverted,
const RegisterFile& regFile,
unsigned int registerIndex,
396 :
Guard(inverted, parentBus),
398 registerIndex_(registerIndex) {
403 string procName =
"RegisterGuard::RegisterGuard";
404 throw OutOfRange(__FILE__, __LINE__, procName);
414 boost::format text = textGen.
text(
437 :
Guard(state, parentBus) {
442 const string procName =
"RegisterGuard::RegisterGuard";
444 format errorMsg = textGen.
text(
449 __FILE__, __LINE__, procName, errorMsg.str());
470 if (regGuard == NULL) {
494 if (regGuard == NULL) {
536 string procName =
"RegisterGuard::loadState";
545 TXT_GUARD_REF_LOAD_ERR);
560 if (regNav.
hasItem(regFileName)) {
567 format text = textGenerator.
text(
570 __FILE__, __LINE__,
__func__, text.str());
577 format text = textGenerator.
text(
583 procName, text.str());
587 TXT_GUARD_REF_LOAD_ERR_RF);
616 :
Guard(inverted, &parentBus) {
631 :
Guard(state, parentBus) {
636 const string procName =
"UnconditionalGuard::UnconditionalGuard";
638 format errorMsg = textGen.
text(
642 __FILE__, __LINE__, procName, errorMsg.str());
663 if (ucGuard == NULL) {
697 string procName =
"UnconditionalGuard::loadState";
ObjectState * saveState() const
virtual ObjectState * saveState() const
void loadState(const ObjectState *state)
@ TXT_INVALID_GUARD_LATENCY
static const std::string OSNAME_GUARD
ObjectState name for guard.
virtual TCEString name() const
std::string stringAttribute(const std::string &name) const
virtual bool isDisjoint(const Guard &guard) const
static const std::string OSNAME_REGISTER_GUARD
ObjectState name for RegisterGuard.
int registerIndex() const
FunctionUnit * parentUnit() const
FUPort * port_
Port from which the condition term is taken.
virtual void ensureRegistration(const Component &component) const
virtual bool isEqual(const Guard &guard) const =0
bool inverted_
Indicated whether the condition term is inverted.
bool isOpposite(const Guard &guard) const
ObjectState * saveState() const
void addGuard(Guard &guard)
virtual boost::format text(int textId)
void setName(const std::string &name)
static std::string toString(const T &source)
virtual int numberOfRegisters() const
virtual ControlUnit * controlUnit() const
bool isEqual(const Guard &guard) const
static const std::string OSKEY_INVERTED
ObjectState attribute key for inverted feature.
bool hasItem(const std::string &name) const
Bus * parent_
The parent bus of the guard.
void loadState(const ObjectState *state)
virtual FunctionUnitNavigator functionUnitNavigator() const
static const std::string OSKEY_PORT
ObjectState attribute key for port name.
bool isEqual(const Guard &guard) const
virtual bool isLessRestrictive(const Guard &guard) const
@ TXT_EQUAL_REGISTER_GUARDS
Guard(bool inverted, Bus *parentBus)
int registerIndex_
Index of the register from which the condition term is taken.
@ TXT_EQUAL_UNCONDITIONAL_GUARDS
UnconditionalGuard(bool inverted, Bus &parentBus)
std::string errorMessage() const
bool isOpposite(const Guard &guard) const
RegisterGuard(bool inverted, const RegisterFile ®File, unsigned int registerIndex, Bus *parentBus)
static const std::string OSKEY_REGFILE
ObjectState attribute key for register file name.
virtual Bus * parentBus() const
virtual RegisterFileNavigator registerFileNavigator() const
virtual void removeGuard(Guard &guard)
virtual bool isInverted() const
virtual ~UnconditionalGuard()
virtual Machine * machine() const
virtual std::string name() const
virtual void loadState(const ObjectState *state)
static const std::string OSKEY_FU
ObjectState attribute key for function unit name.
PortGuard(bool inverted, FUPort &port, Bus &parentBus)
int intAttribute(const std::string &name) const
static const std::string OSKEY_INDEX
ObjectState attribute key for register index.
ComponentType * item(int index) const
virtual int guardLatency() const
virtual FUPort * operationPort(const std::string &name) const
virtual bool isMoreRestrictive(const Guard &guard) const
void loadState(const ObjectState *state)
@ TXT_GUARD_REF_LOAD_ERR_REGISTER
int globalGuardLatency() const
static const std::string OSNAME_PORT_GUARD
ObjectState name for PortGuard ObjectState.
static const std::string OSNAME_UNCONDITIONAL_GUARD
ObjectState name for UnconditionalGuard.
const RegisterFile * registerFile() const
ObjectState * saveState() const
bool isEqual(const Guard &guard) const
const RegisterFile * regFile_
RegisterFile from which the condition term is taken.
void setAttribute(const std::string &name, const std::string &value)