From: Evan Cheng Date: Thu, 13 May 2010 23:25:21 +0000 (+0000) Subject: Eliminate use of magic numbers to access OpActions. It also has the effect of allowin... X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=b9c0e332b31c8834ef455dcf5fbd73803720110c;p=oota-llvm.git Eliminate use of magic numbers to access OpActions. It also has the effect of allowing more than 31 scalar value types. MAX_ALLOWED_VALUETYPE had already been updated to 64 a while back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103743 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Target/TargetLowering.h b/include/llvm/Target/TargetLowering.h index 27017d4869c..84ae3aee33e 100644 --- a/include/llvm/Target/TargetLowering.h +++ b/include/llvm/Target/TargetLowering.h @@ -202,12 +202,14 @@ public: } unsigned I = VT.getSimpleVT().SimpleTy; assert(I<4*array_lengthof(ValueTypeActions)*sizeof(ValueTypeActions[0])); - return (LegalizeAction)((ValueTypeActions[I>>4] >> ((2*I) & 31)) & 3); + unsigned Mask = (unsigned)MVT::MAX_ALLOWED_VALUETYPE-1; + return (LegalizeAction)((ValueTypeActions[I>>4] >> ((2*I) & Mask)) & 3); } void setTypeAction(EVT VT, LegalizeAction Action) { unsigned I = VT.getSimpleVT().SimpleTy; assert(I<4*array_lengthof(ValueTypeActions)*sizeof(ValueTypeActions[0])); - ValueTypeActions[I>>4] |= Action << ((I*2) & 31); + unsigned Mask = (unsigned)MVT::MAX_ALLOWED_VALUETYPE-1; + ValueTypeActions[I>>4] |= Action << ((I*2) & Mask); } }; @@ -360,9 +362,9 @@ public: (unsigned)VT.getSimpleVT().SimpleTy < sizeof(OpActions[0][0])*8 && "Table isn't big enough!"); unsigned I = (unsigned) VT.getSimpleVT().SimpleTy; - unsigned J = I & 31; + unsigned J = I & ((unsigned)MVT::MAX_ALLOWED_VALUETYPE-1); I = I >> 5; - return (LegalizeAction)((OpActions[I][Op] >> (J*2) ) & 3); + return (LegalizeAction)((OpActions[I][Op] >> (J*2)) & 3); } /// isOperationLegalOrCustom - Return true if the specified operation is @@ -987,7 +989,7 @@ protected: void setOperationAction(unsigned Op, MVT VT, LegalizeAction Action) { unsigned I = (unsigned)VT.SimpleTy; - unsigned J = I & 31; + unsigned J = I & ((unsigned)MVT::MAX_ALLOWED_VALUETYPE - 1); I = I >> 5; OpActions[I][Op] &= ~(uint64_t(3UL) << (J*2)); OpActions[I][Op] |= (uint64_t)Action << (J*2);