aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/CodeGen
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-01-19 20:19:58 +0000
committerChris Lattner <sabre@nondot.org>2005-01-19 20:19:58 +0000
commit02b86f52ed19213ef4911da902145155c03fb136 (patch)
tree95751149cb64950865ba207cf66d75efddaa1d14 /include/llvm/CodeGen
parent1e81b9e5112c40c23ecca9a64b6ab2ce97c8c6d4 (diff)
downloadexternal_llvm-02b86f52ed19213ef4911da902145155c03fb136.zip
external_llvm-02b86f52ed19213ef4911da902145155c03fb136.tar.gz
external_llvm-02b86f52ed19213ef4911da902145155c03fb136.tar.bz2
Add an accessor for targets that pass args in regs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19702 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen')
-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 b4f67fe..8c2020d 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);