From: Johnny Chen Date: Tue, 13 Apr 2010 20:35:16 +0000 (+0000) Subject: Changed getSOImmValRotate()'s hunt retry logic to ignore the low order 6 bits, X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=8a87ffb9252d6d66093dcd96f3b9a496dae4a439;p=oota-llvm.git Changed getSOImmValRotate()'s hunt retry logic to ignore the low order 6 bits, instead of 7, because we are only looking for even rotate amount. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101172 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/ARM/ARMAddressingModes.h b/lib/Target/ARM/ARMAddressingModes.h index f414744fa2f..e68354a42f8 100644 --- a/lib/Target/ARM/ARMAddressingModes.h +++ b/lib/Target/ARM/ARMAddressingModes.h @@ -151,10 +151,10 @@ namespace ARM_AM { if ((rotr32(Imm, RotAmt) & ~255U) == 0) return (32-RotAmt)&31; // HW rotates right, not left. - // For values like 0xF000000F, we should ignore the low 7 bits, then + // For values like 0xF000000F, we should ignore the low 6 bits, then // retry the hunt. - if (Imm & 127U) { - unsigned TZ2 = CountTrailingZeros_32(Imm & ~127U); + if (Imm & 63U) { + unsigned TZ2 = CountTrailingZeros_32(Imm & ~63U); unsigned RotAmt2 = TZ2 & ~1; if ((rotr32(Imm, RotAmt2) & ~255U) == 0) return (32-RotAmt2)&31; // HW rotates right, not left.