diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-07-06 23:34:09 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-07-06 23:34:09 +0000 |
commit | 9ad6f03166b9ae169f1c9e3fe229cae1e0f94d7a (patch) | |
tree | 38914e4b84ae0e9efe06539404e2b88552a6b137 /lib | |
parent | d2c5eb864fc80665ca57038793f2f4a296a87eb3 (diff) | |
download | external_llvm-9ad6f03166b9ae169f1c9e3fe229cae1e0f94d7a.zip external_llvm-9ad6f03166b9ae169f1c9e3fe229cae1e0f94d7a.tar.gz external_llvm-9ad6f03166b9ae169f1c9e3fe229cae1e0f94d7a.tar.bz2 |
No need for ccop anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37965 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/ARM/ARMInstrInfo.td | 20 | ||||
-rw-r--r-- | lib/Target/ARM/ARMInstrThumb.td | 4 | ||||
-rw-r--r-- | lib/Target/ARM/ARMInstrVFP.td | 16 |
3 files changed, 17 insertions, 23 deletions
diff --git a/lib/Target/ARM/ARMInstrInfo.td b/lib/Target/ARM/ARMInstrInfo.td index 6884e00..97cc15d 100644 --- a/lib/Target/ARM/ARMInstrInfo.td +++ b/lib/Target/ARM/ARMInstrInfo.td @@ -286,12 +286,6 @@ def pred : PredicateOperand<OtherVT, (ops i32imm, CCR), let PrintMethod = "printPredicateOperand"; } -// Conditional code operand for conditional branches and conditional moves. -// No AlwaysVal value. -def ccop : PredicateOperand<OtherVT, (ops i32imm, CCR), (ops)> { - let PrintMethod = "printPredicateOperand"; -} - // Conditional code result for instructions whose 's' bit is set, e.g. subs. // def cc_out : OptionalDefOperand<OtherVT, (ops CCR), (ops (i32 zero_reg))> { @@ -702,7 +696,7 @@ let isBranch = 1, isTerminator = 1, noResults = 1 in { // FIXME: should be able to write a pattern for ARMBrcond, but can't use // a two-value operand where a dag node expects two operands. :( - def Bcc : AXI<(ops brtarget:$dst, ccop:$cc), "b$cc $dst", + def Bcc : AI<(ops brtarget:$dst), "b", " $dst", [/*(ARMbrcond bb:$dst, imm:$cc, CCR:$ccr)*/]>; } @@ -1192,18 +1186,18 @@ def : ARMPat<(ARMcmpNZ GPR:$src, so_imm_neg:$imm), // Conditional moves // FIXME: should be able to write a pattern for ARMcmov, but can't use // a two-value operand where a dag node expects two operands. :( -def MOVCCr : AXI<(ops GPR:$dst, GPR:$false, GPR:$true, ccop:$cc), - "mov$cc $dst, $true", +def MOVCCr : AI<(ops GPR:$dst, GPR:$false, GPR:$true), + "mov", " $dst, $true", [/*(set GPR:$dst, (ARMcmov GPR:$false, GPR:$true, imm:$cc, CCR:$ccr))*/]>, RegConstraint<"$false = $dst">; -def MOVCCs : AXI<(ops GPR:$dst, GPR:$false, so_reg:$true, ccop:$cc), - "mov$cc $dst, $true", +def MOVCCs : AI<(ops GPR:$dst, GPR:$false, so_reg:$true), + "mov", " $dst, $true", [/*(set GPR:$dst, (ARMcmov GPR:$false, so_reg:$true, imm:$cc, CCR:$ccr))*/]>, RegConstraint<"$false = $dst">; -def MOVCCi : AXI<(ops GPR:$dst, GPR:$false, so_imm:$true, ccop:$cc), - "mov$cc $dst, $true", +def MOVCCi : AI<(ops GPR:$dst, GPR:$false, so_imm:$true), + "mov", " $dst, $true", [/*(set GPR:$dst, (ARMcmov GPR:$false, so_imm:$true, imm:$cc, CCR:$ccr))*/]>, RegConstraint<"$false = $dst">; diff --git a/lib/Target/ARM/ARMInstrThumb.td b/lib/Target/ARM/ARMInstrThumb.td index d8bc874..25e1872 100644 --- a/lib/Target/ARM/ARMInstrThumb.td +++ b/lib/Target/ARM/ARMInstrThumb.td @@ -226,7 +226,7 @@ let isBranch = 1, isTerminator = 1, noResults = 1 in { // FIXME: should be able to write a pattern for ARMBrcond, but can't use // a two-value operand where a dag node expects two operands. :( let isBranch = 1, isTerminator = 1, noResults = 1 in - def tBcc : TI<(ops brtarget:$dst, ccop:$cc), "b$cc $dst", + def tBcc : TI<(ops brtarget:$dst, pred:$cc), "b$cc $dst", [/*(ARMbrcond bb:$dst, imm:$cc)*/]>; //===----------------------------------------------------------------------===// @@ -522,7 +522,7 @@ def tUXTH : TI<(ops GPR:$dst, GPR:$src), // Expanded by the scheduler into a branch sequence. let usesCustomDAGSchedInserter = 1 in // Expanded by the scheduler. def tMOVCCr : - PseudoInst<(ops GPR:$dst, GPR:$false, GPR:$true, ccop:$cc), + PseudoInst<(ops GPR:$dst, GPR:$false, GPR:$true, pred:$cc), "@ tMOVCCr $cc", [/*(set GPR:$dst, (ARMcmov GPR:$false, GPR:$true, imm:$cc))*/]>; diff --git a/lib/Target/ARM/ARMInstrVFP.td b/lib/Target/ARM/ARMInstrVFP.td index fde9698..9b10d1e 100644 --- a/lib/Target/ARM/ARMInstrVFP.td +++ b/lib/Target/ARM/ARMInstrVFP.td @@ -366,22 +366,22 @@ def FNMSCS : ASI<(ops SPR:$dst, SPR:$dstin, SPR:$a, SPR:$b), // FP Conditional moves. // -def FCPYDcc : AXDI<(ops DPR:$dst, DPR:$false, DPR:$true, ccop:$cc), - "fcpyd$cc $dst, $true", +def FCPYDcc : ADI<(ops DPR:$dst, DPR:$false, DPR:$true), + "fcpyd", " $dst, $true", [/*(set DPR:$dst, (ARMcmov DPR:$false, DPR:$true, imm:$cc))*/]>, RegConstraint<"$false = $dst">; -def FCPYScc : AXSI<(ops SPR:$dst, SPR:$false, SPR:$true, ccop:$cc), - "fcpys$cc $dst, $true", +def FCPYScc : ASI<(ops SPR:$dst, SPR:$false, SPR:$true), + "fcpys", " $dst, $true", [/*(set SPR:$dst, (ARMcmov SPR:$false, SPR:$true, imm:$cc))*/]>, RegConstraint<"$false = $dst">; -def FNEGDcc : AXDI<(ops DPR:$dst, DPR:$false, DPR:$true, ccop:$cc), - "fnegd$cc $dst, $true", +def FNEGDcc : ADI<(ops DPR:$dst, DPR:$false, DPR:$true), + "fnegd", " $dst, $true", [/*(set DPR:$dst, (ARMcneg DPR:$false, DPR:$true, imm:$cc))*/]>, RegConstraint<"$false = $dst">; -def FNEGScc : AXSI<(ops SPR:$dst, SPR:$false, SPR:$true, ccop:$cc), - "fnegs$cc $dst, $true", +def FNEGScc : ASI<(ops SPR:$dst, SPR:$false, SPR:$true), + "fnegs", " $dst, $true", [/*(set SPR:$dst, (ARMcneg SPR:$false, SPR:$true, imm:$cc))*/]>, RegConstraint<"$false = $dst">; |