diff options
-rw-r--r-- | lib/Target/Alpha/AlphaISelDAGToDAG.cpp | 3 | ||||
-rw-r--r-- | lib/Target/Alpha/AlphaISelLowering.cpp | 8 | ||||
-rw-r--r-- | lib/Target/Alpha/AlphaISelLowering.h | 3 |
3 files changed, 10 insertions, 4 deletions
diff --git a/lib/Target/Alpha/AlphaISelDAGToDAG.cpp b/lib/Target/Alpha/AlphaISelDAGToDAG.cpp index 6d71a2cb61..2b83f39bb4 100644 --- a/lib/Target/Alpha/AlphaISelDAGToDAG.cpp +++ b/lib/Target/Alpha/AlphaISelDAGToDAG.cpp @@ -161,8 +161,7 @@ SDOperand AlphaDAGToDAGISel::Select(SDOperand Op) { switch (N->getOpcode()) { default: break; - case ISD::TAILCALL: - case ISD::CALL: return SelectCALL(Op); + case AlphaISD::CALL: return SelectCALL(Op); case ISD::FrameIndex: { int FI = cast<FrameIndexSDNode>(N)->getIndex(); diff --git a/lib/Target/Alpha/AlphaISelLowering.cpp b/lib/Target/Alpha/AlphaISelLowering.cpp index d6b1bb314e..ac21b563b4 100644 --- a/lib/Target/Alpha/AlphaISelLowering.cpp +++ b/lib/Target/Alpha/AlphaISelLowering.cpp @@ -164,6 +164,7 @@ const char *AlphaTargetLowering::getTargetNodeName(unsigned Opcode) const { case AlphaISD::GPRelLo: return "Alpha::GPRelLo"; case AlphaISD::RelLit: return "Alpha::RelLit"; case AlphaISD::GlobalBaseReg: return "Alpha::GlobalBaseReg"; + case AlphaISD::CALL: return "Alpha::CALL"; case AlphaISD::DivCall: return "Alpha::DivCall"; case AlphaISD::LDQ_: return "Alpha::LDQ_"; case AlphaISD::LDT_: return "Alpha::LDT_"; @@ -357,8 +358,11 @@ AlphaTargetLowering::LowerCallTo(SDOperand Chain, RetVals.push_back(ActualRetTyVT); RetVals.push_back(MVT::Other); - SDOperand TheCall = SDOperand(DAG.getCall(RetVals, - Chain, Callee, args_to_use), 0); + std::vector<SDOperand> Ops; + Ops.push_back(Chain); + Ops.push_back(Callee); + Ops.insert(Ops.end(), args_to_use.begin(), args_to_use.end()); + SDOperand TheCall = DAG.getNode(AlphaISD::CALL, RetVals, Ops); Chain = TheCall.getValue(RetTyVT != MVT::isVoid); Chain = DAG.getNode(ISD::CALLSEQ_END, MVT::Other, Chain, DAG.getConstant(NumBytes, getPointerTy())); diff --git a/lib/Target/Alpha/AlphaISelLowering.h b/lib/Target/Alpha/AlphaISelLowering.h index aedaf395c6..33f87ce818 100644 --- a/lib/Target/Alpha/AlphaISelLowering.h +++ b/lib/Target/Alpha/AlphaISelLowering.h @@ -37,6 +37,9 @@ namespace llvm { /// GlobalBaseReg - used to restore the GOT ptr GlobalBaseReg, + + /// CALL - Normal call. + CALL, /// DIVCALL - used for special library calls for div and rem DivCall, |