From: Jim Grosbach Date: Tue, 31 Aug 2010 18:49:31 +0000 (+0000) Subject: this assert should just be a condition, since this function is just asking if X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=d4511e947ee1e89a4f199bfac0d401976930ccfe;p=oota-llvm.git this assert should just be a condition, since this function is just asking if the offset is legally encodable, not actually trying to do the encoding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112622 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/ARM/ARMBaseRegisterInfo.cpp b/lib/Target/ARM/ARMBaseRegisterInfo.cpp index 0fa1727310c..e692988fd52 100644 --- a/lib/Target/ARM/ARMBaseRegisterInfo.cpp +++ b/lib/Target/ARM/ARMBaseRegisterInfo.cpp @@ -1605,11 +1605,14 @@ bool ARMBaseRegisterInfo::isFrameOffsetLegal(const MachineInstr *MI, } Offset += getFrameIndexInstrOffset(MI, i); - assert((Offset & (Scale-1)) == 0 && "Can't encode this offset!"); + // Make sure the offset is encodable for instructions that scale the + // immediate. + if ((Offset & (Scale-1)) != 0) + return false; + if (isSigned && Offset < 0) Offset = -Offset; - unsigned Mask = (1 << NumBits) - 1; if ((unsigned)Offset <= Mask * Scale) return true;