diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-06-01 00:56:15 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-06-01 00:56:15 +0000 |
commit | df4da14948dfbc567831f3af4f6ef913c4dd12ad (patch) | |
tree | 09b9b0298551a3f9c8afa6ae0585b26b57e431b7 | |
parent | fe57a7e4df512f3a40b8ff463f5362a59908becc (diff) |
Make jumptable non-predicable for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37381 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/ARMInstrInfo.td | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/lib/Target/ARM/ARMInstrInfo.td b/lib/Target/ARM/ARMInstrInfo.td index 821e536f80..3f117bc612 100644 --- a/lib/Target/ARM/ARMInstrInfo.td +++ b/lib/Target/ARM/ARMInstrInfo.td @@ -400,14 +400,6 @@ class AI2po<dag ops, string opc, string asm, string cstr, list<dag> pattern> class AI3po<dag ops, string opc, string asm, string cstr, list<dag> pattern> : I<ops, AddrMode3, Size4Bytes, IndexModePost, opc, asm, cstr, pattern>; -// BR_JT instructions -class JTI<dag ops, string opc, string asm, list<dag> pattern> - : I<ops, AddrModeNone, SizeSpecial, IndexModeNone, opc, asm, "", pattern>; -class JTI1<dag ops, string opc, string asm, list<dag> pattern> - : I<ops, AddrMode1, SizeSpecial, IndexModeNone, opc, asm, "", pattern>; -class JTI2<dag ops, string opc, string asm, list<dag> pattern> - : I<ops, AddrMode2, SizeSpecial, IndexModeNone, opc, asm, "", pattern>; - class BinOpFrag<dag res> : PatFrag<(ops node:$LHS, node:$RHS), res>; class UnOpFrag <dag res> : PatFrag<(ops node:$Src), res>; @@ -516,6 +508,13 @@ class AXI4<dag ops, string asm, list<dag> pattern> class AXIx2<dag ops, string asm, list<dag> pattern> : XI<ops, AddrModeNone, Size8Bytes, IndexModeNone, asm, "", pattern>; +// BR_JT instructions +class JTI<dag ops, string asm, list<dag> pattern> + : XI<ops, AddrModeNone, SizeSpecial, IndexModeNone, asm, "", pattern>; +class JTI1<dag ops, string asm, list<dag> pattern> + : XI<ops, AddrMode1, SizeSpecial, IndexModeNone, asm, "", pattern>; +class JTI2<dag ops, string asm, list<dag> pattern> + : XI<ops, AddrMode2, SizeSpecial, IndexModeNone, asm, "", pattern>; //===----------------------------------------------------------------------===// // Instructions @@ -639,14 +638,14 @@ let isBranch = 1, isTerminator = 1, noResults = 1 in { [(br bb:$dst)]>; def BR_JTr : JTI<(ops GPR:$dst, jtblock_operand:$jt, i32imm:$id), - "mov", " pc, $dst \n$jt", + "mov pc, $dst \n$jt", [(ARMbrjt GPR:$dst, tjumptable:$jt, imm:$id)]>; def BR_JTm : JTI2<(ops addrmode2:$dst, jtblock_operand:$jt, i32imm:$id), - "ldr", " pc, $dst \n$jt", + "ldr pc, $dst \n$jt", [(ARMbrjt (i32 (load addrmode2:$dst)), tjumptable:$jt, imm:$id)]>; def BR_JTadd : JTI1<(ops GPR:$dst, GPR:$idx, jtblock_operand:$jt, i32imm:$id), - "add", " pc, $dst, $idx \n$jt", + "add pc, $dst, $idx \n$jt", [(ARMbrjt (add GPR:$dst, GPR:$idx), tjumptable:$jt, imm:$id)]>; } |