Ignore NumberHack and give each SubRegIndex instance a unique enum value instead.
[oota-llvm.git] / utils / TableGen / CodeGenTarget.h
index 5b2587f3b7f7030bf50a3cfe6d39f1e6b4a7e92a..6b06b66c29bcb63fad91842687692e04a1829cd9 100644 (file)
@@ -107,7 +107,11 @@ public:
 
   // Map a SubRegIndex Record to its number.
   unsigned getSubRegIndexNo(Record *idx) const {
-    return idx->getValueAsInt("NumberHack");
+    if (SubRegIndices.empty()) ReadSubRegIndices();
+    std::vector<Record*>::const_iterator i =
+      std::find(SubRegIndices.begin(), SubRegIndices.end(), idx);
+    assert(i != SubRegIndices.end() && "Not a SubRegIndex");
+    return (i - SubRegIndices.begin()) + 1;
   }
 
   const std::vector<CodeGenRegisterClass> &getRegisterClasses() const {