Add CALL lowering.
[oota-llvm.git] / lib / Target / MSP430 / MSP430ISelLowering.h
index d68c7a7ccf24d4a6afabb0e32264aec73b05be1a..9e18cb093dd7f60d2e7628b2ddb701297b3f1849 100644 (file)
@@ -28,7 +28,11 @@ namespace llvm {
       RET_FLAG,
 
       /// Y = RRA X, rotate right arithmetically
-      RRA
+      RRA,
+
+      /// CALL/TAILCALL - These operations represent an abstract call
+      /// instruction, which includes a bunch of information.
+      CALL
     };
   }
 
@@ -47,9 +51,18 @@ namespace llvm {
     virtual const char *getTargetNodeName(unsigned Opcode) 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 LowerCCCCallTo(SDValue Op, SelectionDAG &DAG,
+                           unsigned CC);
+    SDNode* LowerCallResult(SDValue Chain, SDValue InFlag,
+                            CallSDNode *TheCall,
+                            unsigned CallingConv, SelectionDAG &DAG);
+
+
   private:
     const MSP430Subtarget &Subtarget;
     const MSP430TargetMachine &TM;