diff options
author | Chris Lattner <sabre@nondot.org> | 2005-01-19 20:19:58 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-01-19 20:19:58 +0000 |
commit | 02b86f52ed19213ef4911da902145155c03fb136 (patch) | |
tree | 95751149cb64950865ba207cf66d75efddaa1d14 /include/llvm/CodeGen | |
parent | 1e81b9e5112c40c23ecca9a64b6ab2ce97c8c6d4 (diff) | |
download | external_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.h | 14 |
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); |