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. */