diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2009-05-03 13:12:06 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2009-05-03 13:12:06 +0000 |
commit | ed1a51af376b9027db60ff060e0a2572493df07b (patch) | |
tree | 1e8fc0c80e4f54a32830327ae9ebf63c8709259a /lib/Target/MSP430/MSP430ISelLowering.h | |
parent | 6e4f62790b8992c3bfa25573cb9e98d648bcf730 (diff) | |
download | external_llvm-ed1a51af376b9027db60ff060e0a2572493df07b.zip external_llvm-ed1a51af376b9027db60ff060e0a2572493df07b.tar.gz external_llvm-ed1a51af376b9027db60ff060e0a2572493df07b.tar.bz2 |
Add first draft for conditions, conditional branches, etc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70743 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/MSP430/MSP430ISelLowering.h')
-rw-r--r-- | lib/Target/MSP430/MSP430ISelLowering.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/lib/Target/MSP430/MSP430ISelLowering.h b/lib/Target/MSP430/MSP430ISelLowering.h index a1f03ac..c0ababd 100644 --- a/lib/Target/MSP430/MSP430ISelLowering.h +++ b/lib/Target/MSP430/MSP430ISelLowering.h @@ -36,7 +36,20 @@ namespace llvm { /// Wrapper - A wrapper node for TargetConstantPool, TargetExternalSymbol, /// and TargetGlobalAddress. - Wrapper + Wrapper, + + /// CMP - Compare instruction. + CMP, + + /// SetCC. Operand 0 is condition code, and operand 1 is the flag + /// operand produced by a CMP instruction. + SETCC, + + /// MSP430 conditional branches. Operand 0 is the chain operand, operand 1 + /// is the block to branch if condition is true, operand 2 is the + /// condition code, and operand 3 is the flag operand produced by a CMP + /// instruction. + BRCOND }; } @@ -54,12 +67,16 @@ namespace llvm { /// DAG node. virtual const char *getTargetNodeName(unsigned Opcode) const; + virtual MVT getSetCCResultType(MVT VT) const; + SDValue LowerFORMAL_ARGUMENTS(SDValue Op, SelectionDAG &DAG); SDValue LowerCALL(SDValue Op, SelectionDAG &DAG); SDValue LowerRET(SDValue Op, SelectionDAG &DAG); SDValue LowerCCCArguments(SDValue Op, SelectionDAG &DAG); SDValue LowerShifts(SDValue Op, SelectionDAG &DAG); SDValue LowerGlobalAddress(SDValue Op, SelectionDAG &DAG); + SDValue LowerSETCC(SDValue Op, SelectionDAG &DAG); + SDValue LowerBRCOND(SDValue Op, SelectionDAG &DAG); SDValue LowerCCCCallTo(SDValue Op, SelectionDAG &DAG, unsigned CC); |