Go to the documentation of this file.
106 assert(oldParent != NULL);
148 const string procName =
"GuardField::addGuardEncoding";
190 const string procName =
"GuardField::addGuardEncoding";
232 const string procName =
"GuardField::addGuardEncoding";
292 const string procName =
"GuardField::gprGuardEncoding";
293 throw OutOfRange(__FILE__, __LINE__, procName);
314 const std::string& regFile,
316 bool inverted)
const {
318 for (GPRGuardTable::const_iterator iter =
gprGuards_.begin();
347 const std::string& regFile,
349 bool inverted)
const {
351 for (GPRGuardTable::const_iterator iter =
gprGuards_.begin();
389 const string procName =
"GuardField::fuGuardEncoding";
390 throw OutOfRange(__FILE__, __LINE__, procName);
411 const std::string& fu,
412 const std::string& port,
413 bool inverted)
const {
415 for (FUGuardTable::const_iterator iter =
fuGuards_.begin();
420 encoding->
port() == port &&
444 const std::string& fu,
445 const std::string& port,
446 bool inverted)
const {
448 for (FUGuardTable::const_iterator iter =
fuGuards_.begin();
453 encoding->
port() == port &&
523 const string procName =
"GuardField::childField";
524 throw OutOfRange(__FILE__, __LINE__, procName);
539 for (
int i = 0; i < gprGuards; i++) {
542 if (requiredBits >
width) {
543 width = requiredBits;
547 for (
int i = 0; i < fuGuards; i++) {
550 if (requiredBits >
width) {
551 width = requiredBits;
559 if (requiredBits >
width) {
560 width = requiredBits;
568 if (requiredBits >
width) {
569 width = requiredBits;
586 const string procName =
"GuardField::loadState";
597 for (
int i = 0; i < state->
childCount(); i++) {
601 }
else if (child->
name() ==
604 }
else if (child->
name() ==
606 OSNAME_UNCONDITIONAL_GUARD_ENCODING) {
612 __FILE__, __LINE__, procName, exception.
errorMessage());
697 for (
int i = 0; i < fuGuards; i++) {
704 for (
int i = 0; i < rfGuards; i++) {
static NullUnconditionalGuardEncoding & instance()
virtual ObjectState * saveState() const
void deleteFUGuardEncodings()
bool hasFUGuardEncoding(const std::string &fu, const std::string &port, bool inverted) const
virtual ObjectState * saveState() const
virtual int childFieldCount() const
FUGuardEncoding & fuGuardEncoding(int index) const
std::string registerFile() const
bool isGuardInverted() const
void removeUnconditionalGuardEncoding(UnconditionalGuardEncoding &encoding)
GPRGuardTable gprGuards_
GPR guard encodings.
UnconditionalGuardEncoding & unconditionalGuardEncoding(bool inverted) const
void setName(const std::string &name)
void addGuardEncoding(GPRGuardEncoding &encoding)
virtual ObjectState * saveState() const
#define assert(condition)
virtual void loadState(const ObjectState *state)
GPRGuardEncoding & gprGuardEncoding(int index) const
bool hasSourceField() const
virtual ObjectState * saveState() const
std::string functionUnit() const
static const std::string OSNAME_FU_GUARD_ENCODING
ObjectState name for FU guard encoding.
bool isAssigned(unsigned int encoding) const
static NullGPRGuardEncoding & instance()
bool hasDestinationField() const
MoveSlot * parent() const
GuardField(MoveSlot &parent)
bool hasGPRGuardEncoding(const std::string ®File, int index, bool inverted) const
void setParent(InstructionField *parent)
InstructionField * parent() const
FUGuardTable fuGuards_
FU guard encodings.
ObjectState * child(int index) const
void addChild(ObjectState *child)
bool hasUnconditionalGuardEncoding(bool inverted) const
unsigned int encoding() const
std::string errorMessage() const
static const std::string OSNAME_GUARD_FIELD
ObjectState name for guard field.
void deleteUnconditionalGuardEncodings()
int gprGuardEncodingCount() const
void removeGuardEncoding(GPRGuardEncoding &encoding)
static NullFUGuardEncoding & instance()
static const std::string OSNAME_GPR_GUARD_ENCODING
ObjectState name for GPR guard encoding.
int fuGuardEncodingCount() const
virtual InstructionField & childField(int) const
virtual void loadState(const ObjectState *state)
UnconditionalGuardEncoding * alwaysTrue_
Unconditional guard encoding for always-true expression.
UnconditionalGuardEncoding * alwaysFalse_
Unconditional guard encoding for always-false expression.
int registerIndex() const
void setGuardField(GuardField &field)
virtual int width() const
virtual void setRelativePosition(int position)
void deleteGPRGuardEncodings()
GuardField * parent() const