Added asserts to prevent negative shift amounts from being generated.
authorMisha Brukman <brukman+llvm@gmail.com>
Wed, 6 Aug 2003 16:28:49 +0000 (16:28 +0000)
committerMisha Brukman <brukman+llvm@gmail.com>
Wed, 6 Aug 2003 16:28:49 +0000 (16:28 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7640 91177308-0d34-0410-b5e6-96231b3b80d8

support/tools/TableGen/CodeEmitterGen.cpp
utils/TableGen/CodeEmitterGen.cpp

index 076945616f9464edb00aba588102edb74b06a7a5..a2839c917797e0576bb76e1ee1540207056ee3a0 100644 (file)
@@ -131,6 +131,7 @@ void CodeEmitterGen::run(std::ostream &o) {
             
             // Mask off the right bits
             // Low mask (ie. shift, if necessary)
+            assert(endBitInVar >= 0 && "Negative shift amount in masking!");
             if (endBitInVar != 0) {
               o << "      op" << OpOrder[Vals[i].getName()]
                 << " >>= " << endBitInVar << ";\n";
@@ -143,6 +144,7 @@ void CodeEmitterGen::run(std::ostream &o) {
               << " &= (1<<" << beginBitInVar+1 << ") - 1;\n";
             
             // Shift the value to the correct place (according to place in inst)
+            assert(endBitInInst >= 0 && "Negative shift amount in inst position!");
             if (endBitInInst != 0)
               o << "      op" << OpOrder[Vals[i].getName()]
               << " <<= " << endBitInInst << ";\n";
index 076945616f9464edb00aba588102edb74b06a7a5..a2839c917797e0576bb76e1ee1540207056ee3a0 100644 (file)
@@ -131,6 +131,7 @@ void CodeEmitterGen::run(std::ostream &o) {
             
             // Mask off the right bits
             // Low mask (ie. shift, if necessary)
+            assert(endBitInVar >= 0 && "Negative shift amount in masking!");
             if (endBitInVar != 0) {
               o << "      op" << OpOrder[Vals[i].getName()]
                 << " >>= " << endBitInVar << ";\n";
@@ -143,6 +144,7 @@ void CodeEmitterGen::run(std::ostream &o) {
               << " &= (1<<" << beginBitInVar+1 << ") - 1;\n";
             
             // Shift the value to the correct place (according to place in inst)
+            assert(endBitInInst >= 0 && "Negative shift amount in inst position!");
             if (endBitInInst != 0)
               o << "      op" << OpOrder[Vals[i].getName()]
               << " <<= " << endBitInInst << ";\n";