diff options
author | Chris Lattner <sabre@nondot.org> | 2008-10-05 18:31:58 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-10-05 18:31:58 +0000 |
commit | 758ce7260de67be32ae756d9d1b82a175a11f1bd (patch) | |
tree | 2b7a92f5e6259c9251de84faabb6354d109a81ef /llvm/utils/TableGen | |
parent | 851e72cd229ce7e5dd87a464d33940f305b6db90 (diff) | |
download | bcm5719-llvm-758ce7260de67be32ae756d9d1b82a175a11f1bd.tar.gz bcm5719-llvm-758ce7260de67be32ae756d9d1b82a175a11f1bd.zip |
Fix shift overflow bug that would occur when a field was a full 32-bits
in tblgen. This is PR2827, thanks to Waldemar Knorr for tracking this
down.
llvm-svn: 57124
Diffstat (limited to 'llvm/utils/TableGen')
-rw-r--r-- | llvm/utils/TableGen/CodeEmitterGen.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/utils/TableGen/CodeEmitterGen.cpp b/llvm/utils/TableGen/CodeEmitterGen.cpp index 62df686ea28..ae4a6aa445b 100644 --- a/llvm/utils/TableGen/CodeEmitterGen.cpp +++ b/llvm/utils/TableGen/CodeEmitterGen.cpp @@ -191,7 +191,7 @@ void CodeEmitterGen::run(std::ostream &o) { gotOp = true; } - unsigned opMask = (1 << N) - 1; + unsigned opMask = ~0U >> (32-N); int opShift = beginVarBit - N + 1; opMask <<= opShift; opShift = beginInstBit - beginVarBit; |