diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2008-01-31 21:00:00 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2008-01-31 21:00:00 +0000 |
| commit | 27b32b87ed8fdde58902457023705a0bc85ebf84 (patch) | |
| tree | 19a53b7c5da5199ba774d6065ff5e53cfa115329 /llvm/lib/Target/Alpha/AlphaISelLowering.cpp | |
| parent | 9cc55f5b1f5234fe5532bef3a5cb414d8e439661 (diff) | |
| download | bcm5719-llvm-27b32b87ed8fdde58902457023705a0bc85ebf84.tar.gz bcm5719-llvm-27b32b87ed8fdde58902457023705a0bc85ebf84.zip | |
Revert 46556 and 46585. Dan please fix the PseudoSourceValue problem and re-commit.
llvm-svn: 46623
Diffstat (limited to 'llvm/lib/Target/Alpha/AlphaISelLowering.cpp')
| -rw-r--r-- | llvm/lib/Target/Alpha/AlphaISelLowering.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/llvm/lib/Target/Alpha/AlphaISelLowering.cpp b/llvm/lib/Target/Alpha/AlphaISelLowering.cpp index d20e1f7fb12..c359a5bcdbe 100644 --- a/llvm/lib/Target/Alpha/AlphaISelLowering.cpp +++ b/llvm/lib/Target/Alpha/AlphaISelLowering.cpp @@ -491,9 +491,10 @@ SDOperand AlphaTargetLowering::LowerOperation(SDOperand Op, SelectionDAG &DAG) { case ISD::VAARG: { SDOperand Chain = Op.getOperand(0); SDOperand VAListP = Op.getOperand(1); - const Value *VAListS = cast<SrcValueSDNode>(Op.getOperand(2))->getValue(); + SrcValueSDNode *VAListS = cast<SrcValueSDNode>(Op.getOperand(2)); - SDOperand Base = DAG.getLoad(MVT::i64, Chain, VAListP, VAListS, 0); + SDOperand Base = DAG.getLoad(MVT::i64, Chain, VAListP, VAListS->getValue(), + VAListS->getOffset()); SDOperand Tmp = DAG.getNode(ISD::ADD, MVT::i64, VAListP, DAG.getConstant(8, MVT::i64)); SDOperand Offset = DAG.getExtLoad(ISD::SEXTLOAD, MVT::i64, Base.getValue(1), @@ -526,11 +527,13 @@ SDOperand AlphaTargetLowering::LowerOperation(SDOperand Op, SelectionDAG &DAG) { SDOperand Chain = Op.getOperand(0); SDOperand DestP = Op.getOperand(1); SDOperand SrcP = Op.getOperand(2); - const Value *DestS = cast<SrcValueSDNode>(Op.getOperand(3))->getValue(); - const Value *SrcS = cast<SrcValueSDNode>(Op.getOperand(4))->getValue(); + SrcValueSDNode *DestS = cast<SrcValueSDNode>(Op.getOperand(3)); + SrcValueSDNode *SrcS = cast<SrcValueSDNode>(Op.getOperand(4)); - SDOperand Val = DAG.getLoad(getPointerTy(), Chain, SrcP, SrcS, 0); - SDOperand Result = DAG.getStore(Val.getValue(1), Val, DestP, DestS, 0); + SDOperand Val = DAG.getLoad(getPointerTy(), Chain, SrcP, + SrcS->getValue(), SrcS->getOffset()); + SDOperand Result = DAG.getStore(Val.getValue(1), Val, DestP, DestS->getValue(), + DestS->getOffset()); SDOperand NP = DAG.getNode(ISD::ADD, MVT::i64, SrcP, DAG.getConstant(8, MVT::i64)); Val = DAG.getExtLoad(ISD::SEXTLOAD, MVT::i64, Result, NP, NULL,0, MVT::i32); @@ -541,11 +544,12 @@ SDOperand AlphaTargetLowering::LowerOperation(SDOperand Op, SelectionDAG &DAG) { case ISD::VASTART: { SDOperand Chain = Op.getOperand(0); SDOperand VAListP = Op.getOperand(1); - const Value *VAListS = cast<SrcValueSDNode>(Op.getOperand(2))->getValue(); + SrcValueSDNode *VAListS = cast<SrcValueSDNode>(Op.getOperand(2)); // vastart stores the address of the VarArgsBase and VarArgsOffset SDOperand FR = DAG.getFrameIndex(VarArgsBase, MVT::i64); - SDOperand S1 = DAG.getStore(Chain, FR, VAListP, VAListS, 0); + SDOperand S1 = DAG.getStore(Chain, FR, VAListP, VAListS->getValue(), + VAListS->getOffset()); SDOperand SA2 = DAG.getNode(ISD::ADD, MVT::i64, VAListP, DAG.getConstant(8, MVT::i64)); return DAG.getTruncStore(S1, DAG.getConstant(VarArgsOffset, MVT::i64), |

