return getNode(ISD::CopyFromReg, ResultTys, Ops);
}
- /// getCall - Note that this destroys the vector of RetVals passed in.
- ///
- SDNode *getCall(std::vector<MVT::ValueType> &RetVals, SDOperand Chain,
- SDOperand Callee, bool isTailCall = false) {
- SDNode *NN = new SDNode(isTailCall ? ISD::TAILCALL : ISD::CALL, Chain,
- Callee);
- setNodeValueTypes(NN, RetVals);
- AllNodes.push_back(NN);
- return NN;
- }
- /// getCall - Note that this destroys the vector of RetVals passed in.
- ///
- SDNode *getCall(std::vector<MVT::ValueType> &RetVals, SDOperand Chain,
- SDOperand Callee, SDOperand Flag, bool isTailCall = false) {
- SDNode *NN = new SDNode(isTailCall ? ISD::TAILCALL : ISD::CALL, Chain,
- Callee, Flag);
- setNodeValueTypes(NN, RetVals);
- AllNodes.push_back(NN);
- 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,
- bool isTailCall = false) {
- ArgsInRegs.insert(ArgsInRegs.begin(), Callee);
- ArgsInRegs.insert(ArgsInRegs.begin(), Chain);
- SDNode *NN = new SDNode(isTailCall ? ISD::TAILCALL : ISD::CALL, ArgsInRegs);
- setNodeValueTypes(NN, RetVals);
- AllNodes.push_back(NN);
- return NN;
- }
-
SDOperand getCondCode(ISD::CondCode Cond);
/// getZeroExtendInReg - Return the expression required to zero extend the Op
// function. This operation can have variable number of operands.
RET,
- // CALL - Call to a function pointer. The first operand is the chain, the
- // second is the destination function pointer (a GlobalAddress for a direct
- // call). Arguments have already been lowered to explicit DAGs according to
- // the calling convention in effect here. TAILCALL is the same as CALL, but
- // the callee is known not to access the stack of the caller.
- CALL,
- TAILCALL,
-
// INLINEASM - Represents an inline asm block. This node always has two
// return values: a chain and a flag result. The inputs are as follows:
// Operand #0 : Input chain.