Correctly handle scattered operands where the bits of the operand are contiguous...
authorOwen Anderson <resistor@mac.com>
Fri, 29 Jul 2011 23:01:18 +0000 (23:01 +0000)
committerOwen Anderson <resistor@mac.com>
Fri, 29 Jul 2011 23:01:18 +0000 (23:01 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136534 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/FixedLenDecoderEmitter.cpp

index 809100328861044e7f4a73dbd86f842212044195..b87634bfee40e0384aa006f8700d4586d19de32b 100644 (file)
@@ -1295,6 +1295,11 @@ static bool populateInstruction(const CodeGenInstruction &CGI,
         Base = bi;
         Width = 1;
         Offset = BI->getBitNum();
+      } else if (BI->getBitNum() != Offset + Width) {
+        OpInfo.addField(Base, Width, Offset);
+        Base = bi;
+        Width = 1;
+        Offset = BI->getBitNum();
       } else {
         ++Width;
       }