Add capture regs from Chip Data File to IsolationNode
Change-Id: Ia91821f2b14e12ed917c97b622789710ffb8bdb4
Signed-off-by: Zane Shelley <zshelle@us.ibm.com>
diff --git a/src/util/hei_bit_string.cpp b/src/util/hei_bit_string.cpp
index 9cc2613..a04fb43 100644
--- a/src/util/hei_bit_string.cpp
+++ b/src/util/hei_bit_string.cpp
@@ -286,25 +286,29 @@
bool BitString::operator<(const BitString& i_str) const
{
- // The two bit strings must be the same length. Otherwise, the comparison
- // undefined (i.e. compare from the left vs. right).
- HEI_ASSERT(getBitLen() == i_str.getBitLen());
-
- for (uint64_t pos = 0; pos < getBitLen(); pos += UINT64_BIT_LEN)
+ if (getBitLen() < i_str.getBitLen())
{
- uint64_t len = std::min(getBitLen() - pos, UINT64_BIT_LEN);
-
- auto l_str = getFieldRight(pos, len);
- auto r_str = i_str.getFieldRight(pos, len);
-
- if (l_str < r_str)
+ return true;
+ }
+ else if (getBitLen() == i_str.getBitLen())
+ {
+ // Can only compare the bit strings if the length is the same.
+ for (uint64_t pos = 0; pos < getBitLen(); pos += UINT64_BIT_LEN)
{
- return true;
- }
- // The loop can only continue if the values are equal.
- else if (l_str > r_str)
- {
- return false;
+ uint64_t len = std::min(getBitLen() - pos, UINT64_BIT_LEN);
+
+ auto l_str = getFieldRight(pos, len);
+ auto r_str = i_str.getFieldRight(pos, len);
+
+ if (l_str < r_str)
+ {
+ return true;
+ }
+ // The loop can only continue if the values are equal.
+ else if (l_str > r_str)
+ {
+ return false;
+ }
}
}
diff --git a/src/util/hei_bit_string.hpp b/src/util/hei_bit_string.hpp
index 669e755..59369b7 100644
--- a/src/util/hei_bit_string.hpp
+++ b/src/util/hei_bit_string.hpp
@@ -333,7 +333,15 @@
return isEqual(i_str);
}
- /** @brief Less-than operator */
+ /**
+ * @brief Less-than operator.
+ *
+ * IMPORTANT:
+ * The purpose of this function is primarily for sorting these objects in
+ * data structures like map and vector. It does not guarantee a less than
+ * comparison of the bit strings because bit strings can vary in length and
+ * it is difficult to define that kind of comparison.
+ */
bool operator<(const BitString& i_str) const;
/** @brief Bitwise NOT operator. */