aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/CodeGen/SelectionDAG.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/SelectionDAG.h b/include/llvm/CodeGen/SelectionDAG.h
index b4f67fe7c1..8c2020d8d2 100644
--- a/include/llvm/CodeGen/SelectionDAG.h
+++ b/include/llvm/CodeGen/SelectionDAG.h
@@ -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);