Fix some -march=thumb regressions. tBR_JTr is not predicable.
authorEvan Cheng <evan.cheng@apple.com>
Mon, 21 May 2007 23:17:32 +0000 (23:17 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Mon, 21 May 2007 23:17:32 +0000 (23:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37272 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMInstrInfo.cpp

index 78f8de4d6d7c6f5dd95a2d0d8d5c694e536be89e..186c3dd587f2f392adefe95e79f26efe4d96fa52 100644 (file)
@@ -498,7 +498,9 @@ unsigned ARM::GetInstSize(MachineInstr *MI) {
       // These are jumptable branches, i.e. a branch followed by an inlined
       // jumptable. The size is 4 + 4 * number of entries.
       unsigned NumOps = TID->numOperands;
-      unsigned JTI = MI->getOperand(NumOps-3).getJumpTableIndex();
+      MachineOperand JTOP =
+        MI->getOperand(NumOps - ((TID->Flags & M_PREDICABLE) ? 3 : 2));
+      unsigned JTI = JTOP.getJumpTableIndex();
       MachineJumpTableInfo *MJTI = MF->getJumpTableInfo();
       const std::vector<MachineJumpTableEntry> &JT = MJTI->getJumpTables();
       assert(JTI < JT.size());