From: Jim Grosbach Date: Fri, 8 Jul 2011 22:25:23 +0000 (+0000) Subject: Pseudo-ize tBRIND. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=aa8d1b80ff35a4370a75b9d08a3e94f19e0d3dae;p=oota-llvm.git Pseudo-ize tBRIND. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134755 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/ARM/ARMInstrThumb.td b/lib/Target/ARM/ARMInstrThumb.td index bba0ab6450c..056cbfce74a 100644 --- a/lib/Target/ARM/ARMInstrThumb.td +++ b/lib/Target/ARM/ARMInstrThumb.td @@ -370,18 +370,6 @@ let isBranch = 1, isTerminator = 1, isBarrier = 1, isIndirectBranch = 1 in { let Inst{6-3} = Rm; let Inst{2-0} = 0b000; } - - def tBRIND : TI<(outs), (ins GPR:$Rm), - IIC_Br, - "mov\tpc, $Rm", - [(brind GPR:$Rm)]>, - T1Special<{1,0,?,?}> { - // A8.6.97 - bits<4> Rm; - let Inst{7} = 1; // = Inst{7:2-0} = pc - let Inst{6-3} = Rm; - let Inst{2-0} = 0b111; - } } let isReturn = 1, isTerminator = 1, isBarrier = 1 in { @@ -1496,3 +1484,9 @@ def tPOP_RET : tPseudoExpand<(outs), (ins pred:$p, reglist:$regs, variable_ops), Size2Bytes, IIC_iPop_Br, [], (tPOP pred:$p, reglist:$regs)>; +// Indirect branch using "mov pc, $Rm" +let isBranch = 1, isTerminator = 1, isBarrier = 1, isIndirectBranch = 1 in { + def tBRIND : tPseudoExpand<(outs), (ins GPR:$Rm), + Size2Bytes, IIC_Br, [(brind GPR:$Rm)], + (tMOVr PC, GPR:$Rm, (ops 14, zero_reg))>; +}