diff options
| author | Nate Begeman <natebegeman@mac.com> | 2005-12-20 00:26:01 +0000 |
|---|---|---|
| committer | Nate Begeman <natebegeman@mac.com> | 2005-12-20 00:26:01 +0000 |
| commit | b11b8e44fa59da86031d71ba2e3b3aa91966d244 (patch) | |
| tree | 4978675dbd52dc45c056451ec669de6ebc46896e /llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp | |
| parent | fe90b604a49ba50300d867b1c847cf02e44efe9f (diff) | |
| download | bcm5719-llvm-b11b8e44fa59da86031d71ba2e3b3aa91966d244.tar.gz bcm5719-llvm-b11b8e44fa59da86031d71ba2e3b3aa91966d244.zip | |
Pattern-match return. Includes gross hack!
llvm-svn: 24874
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp')
| -rw-r--r-- | llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp b/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp index 338be660808..4d9abdc9a7f 100644 --- a/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp +++ b/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp @@ -1043,29 +1043,6 @@ SDOperand PPCDAGToDAGISel::Select(SDOperand Op) { Select(N->getOperand(3)), getI32Imm(BROpc)); } - - case ISD::RET: { - SDOperand Chain = Select(N->getOperand(0)); // Token chain. - - if (N->getNumOperands() == 2) { - SDOperand Val = Select(N->getOperand(1)); - if (N->getOperand(1).getValueType() == MVT::i32) { - Chain = CurDAG->getCopyToReg(Chain, PPC::R3, Val); - } else { - assert(MVT::isFloatingPoint(N->getOperand(1).getValueType())); - Chain = CurDAG->getCopyToReg(Chain, PPC::F1, Val); - } - } else if (N->getNumOperands() > 1) { - assert(N->getOperand(1).getValueType() == MVT::i32 && - N->getOperand(2).getValueType() == MVT::i32 && - N->getNumOperands() == 3 && "Unknown two-register ret value!"); - Chain = CurDAG->getCopyToReg(Chain, PPC::R4, Select(N->getOperand(1))); - Chain = CurDAG->getCopyToReg(Chain, PPC::R3, Select(N->getOperand(2))); - } - - // Finally, select this to a blr (return) instruction. - return CurDAG->SelectNodeTo(N, PPC::BLR, MVT::Other, Chain); - } case ISD::BR_CC: case ISD::BRTWOWAY_CC: { SDOperand Chain = Select(N->getOperand(0)); |

