Add an accessor for targets that pass args in regs
authorChris Lattner <sabre@nondot.org>
Wed, 19 Jan 2005 20:19:58 +0000 (20:19 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 19 Jan 2005 20:19:58 +0000 (20:19 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19702 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/SelectionDAG.h

index b4f67fe7c15f5816cd8271b64c19f805be196074..8c2020d8d2c92ae46603262b97fb6858ac891bb8 100644 (file)
@@ -131,6 +131,20 @@ public:
     return NN;
   }
 
+  /// getCall - This is identical to the one above, and should be used for calls
+  /// where arguments are passed in physical registers.  This destroys the
+  /// RetVals and ArgsInRegs vectors.
+  SDNode *getCall(std::vector<MVT::ValueType> &RetVals, SDOperand Chain,
+                  SDOperand Callee, std::vector<SDOperand> &ArgsInRegs) {
+    ArgsInRegs.insert(ArgsInRegs.begin(), Callee);
+    ArgsInRegs.insert(ArgsInRegs.begin(), Chain);
+    SDNode *NN = new SDNode(ISD::CALL, ArgsInRegs);
+    NN->setValueTypes(RetVals);
+    AllNodes.push_back(NN);
+    return NN;
+  }
+
+
   SDOperand getSetCC(ISD::CondCode, MVT::ValueType VT,
                      SDOperand LHS, SDOperand RHS);