diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2009-05-03 13:19:09 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2009-05-03 13:19:09 +0000 |
commit | 1bb8cd723d9fc89701fd3e54951c6bb419f798d3 (patch) | |
tree | a0722e03aca03136b3b717f04fb0576dc550c19b /lib/Target/MSP430/MSP430InstrInfo.td | |
parent | 1fcfb6b6d2635ca817e6ecc0ba2dac80e530fb81 (diff) | |
download | llvm-1bb8cd723d9fc89701fd3e54951c6bb419f798d3.tar.gz llvm-1bb8cd723d9fc89701fd3e54951c6bb419f798d3.tar.bz2 llvm-1bb8cd723d9fc89701fd3e54951c6bb419f798d3.tar.xz |
Make handling of conditional stuff much more straightforward
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70767 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/MSP430/MSP430InstrInfo.td')
-rw-r--r-- | lib/Target/MSP430/MSP430InstrInfo.td | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/lib/Target/MSP430/MSP430InstrInfo.td b/lib/Target/MSP430/MSP430InstrInfo.td index 4dfda5d14d..a7d9e79095 100644 --- a/lib/Target/MSP430/MSP430InstrInfo.td +++ b/lib/Target/MSP430/MSP430InstrInfo.td @@ -26,13 +26,11 @@ def SDT_MSP430Call : SDTypeProfile<0, -1, [SDTCisVT<0, iPTR>]>; def SDT_MSP430CallSeqStart : SDCallSeqStart<[SDTCisVT<0, i16>]>; def SDT_MSP430CallSeqEnd : SDCallSeqEnd<[SDTCisVT<0, i16>, SDTCisVT<1, i16>]>; def SDT_MSP430Wrapper : SDTypeProfile<1, 1, [SDTCisSameAs<0, 1>, SDTCisPtrTy<0>]>; -def SDT_MSP430SetCC : SDTypeProfile<1, 2, [SDTCisVT<0, i8>, - SDTCisVT<1, i8>, SDTCisVT<2, i16>]>; def SDT_MSP430Cmp : SDTypeProfile<0, 2, [SDTCisSameAs<0, 1>]>; -def SDT_MSP430BrCond : SDTypeProfile<0, 3, [SDTCisVT<0, OtherVT>, - SDTCisVT<1, i8>, SDTCisVT<2, i16>]>; -def SDT_MSP430Select : SDTypeProfile<1, 4, [SDTCisSameAs<0, 1>, SDTCisSameAs<1, 2>, - SDTCisVT<3, i8>, SDTCisVT<4, i16>]>; +def SDT_MSP430BrCC : SDTypeProfile<0, 2, [SDTCisVT<0, OtherVT>, + SDTCisVT<1, i8>]>; +def SDT_MSP430SelectCC : SDTypeProfile<1, 3, [SDTCisSameAs<0, 1>, SDTCisSameAs<1, 2>, + SDTCisVT<3, i8>]>; //===----------------------------------------------------------------------===// // MSP430 Specific Node Definitions. @@ -53,10 +51,9 @@ def MSP430callseq_end : SDNode<"ISD::CALLSEQ_END", SDT_MSP430CallSeqEnd, [SDNPHasChain, SDNPOptInFlag, SDNPOutFlag]>; def MSP430Wrapper : SDNode<"MSP430ISD::Wrapper", SDT_MSP430Wrapper>; -def MSP430setcc : SDNode<"MSP430ISD::SETCC", SDT_MSP430SetCC>; -def MSP430cmp : SDNode<"MSP430ISD::CMP", SDT_MSP430Cmp>; -def MSP430brcond : SDNode<"MSP430ISD::BRCOND", SDT_MSP430BrCond, [SDNPHasChain]>; -def MSP430select : SDNode<"MSP430ISD::SELECT", SDT_MSP430Select>; +def MSP430cmp : SDNode<"MSP430ISD::CMP", SDT_MSP430Cmp, [SDNPOutFlag]>; +def MSP430brcc : SDNode<"MSP430ISD::BR_CC", SDT_MSP430BrCC, [SDNPHasChain, SDNPInFlag]>; +def MSP430selectcc: SDNode<"MSP430ISD::SELECT_CC", SDT_MSP430SelectCC, [SDNPInFlag]>; //===----------------------------------------------------------------------===// // MSP430 Operand Definitions. @@ -113,7 +110,7 @@ let usesCustomDAGSchedInserter = 1 in { def Select16 : Pseudo<(outs GR16:$dst), (ins GR16:$src1, GR16:$src2, i8imm:$cc), "# Select16 PSEUDO", [(set GR16:$dst, - (MSP430select GR16:$src1, GR16:$src2, imm:$cc, SRW))]>; + (MSP430selectcc GR16:$src1, GR16:$src2, imm:$cc))]>; } let neverHasSideEffects = 1 in @@ -140,7 +137,7 @@ let isBarrier = 1 in let Uses = [SRW] in def JCC : Pseudo<(outs), (ins brtarget:$dst, cc:$cc), "j$cc $dst", - [(MSP430brcond bb:$dst, imm:$cc, SRW)]>; + [(MSP430brcc bb:$dst, imm:$cc)]>; } // isBranch, isTerminator //===----------------------------------------------------------------------===// |