On Thu, 2007-01-18 at 13:49 -0800, Chris Lattner wrote: > Please just use uint64_t BitMask = Ty->getIntegerTypeMask();
Good idea. This is changing to IntegerType::getBitMask(). I'm testing that set of changes now and I'll include this fix to ExecutionEngine when its time to commit. Thanks, Reid. > > Thanks, > > -Chris > > > On Jan 18, 2007, at 10:01 AM, Reid Spencer wrote: > > > > > > > Changes in directory llvm/lib/ExecutionEngine: > > > > ExecutionEngine.cpp updated: 1.99 -> 1.100 > > --- > > Log message: > > > > Fix a regression in the last patch. When constructing a BitMask, be > > careful > > not to overflow 64-bits and end up with a 0 mask. This caused i64 > > values to > > always be stored as 0 with lots of consequential damage to nightly > > test. > > > > > > --- > > Diffs of the changes: (+4 -0) > > > > ExecutionEngine.cpp | 4 ++++ > > 1 files changed, 4 insertions(+) > > > > > > Index: llvm/lib/ExecutionEngine/ExecutionEngine.cpp > > diff -u llvm/lib/ExecutionEngine/ExecutionEngine.cpp:1.99 llvm/lib/ > > ExecutionEngine/ExecutionEngine.cpp:1.100 > > --- llvm/lib/ExecutionEngine/ExecutionEngine.cpp:1.99 Wed Jan 17 > > 19:24:02 2007 > > +++ llvm/lib/ExecutionEngine/ExecutionEngine.cpp Thu Jan 18 > > 12:01:32 2007 > > @@ -457,6 +457,8 @@ > > case Type::IntegerTyID: { > > unsigned BitWidth = cast<IntegerType>(Ty)->getBitWidth(); > > uint64_t BitMask = (1ull << BitWidth) - 1; > > + if (BitWidth >= 64) > > + BitMask = (uint64_t)-1; > > GenericValue TmpVal = Val; > > if (BitWidth <= 8) > > Ptr->Untyped[0] = Val.Int8Val & BitMask; > > @@ -513,6 +515,8 @@ > > case Type::IntegerTyID: { > > unsigned BitWidth = cast<IntegerType>(Ty)->getBitWidth(); > > uint64_t BitMask = (1ull << BitWidth) - 1; > > + if (BitWidth >= 64) > > + BitMask = (uint64_t)-1; > > GenericValue TmpVal = Val; > > if (BitWidth <= 8) > > Ptr->Untyped[0] = Val.Int8Val & BitMask; > > > > > > > > _______________________________________________ > > llvm-commits mailing list > > llvm-commits@cs.uiuc.edu > > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits > _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits