diff options
| author | Andrew Lenharth <andrewl@lenharth.org> | 2005-04-12 17:35:16 +0000 |
|---|---|---|
| committer | Andrew Lenharth <andrewl@lenharth.org> | 2005-04-12 17:35:16 +0000 |
| commit | 10c6eb4be2057a03c8d1ff0420af884904d4501e (patch) | |
| tree | 8aae323fe23fdc1d5d809e3ec58ec631ab34eb0b /llvm/lib/Target/Alpha/AlphaISelPattern.cpp | |
| parent | 14f72885dd02896d4f8631826b2f8ef2c302f58c (diff) | |
| download | bcm5719-llvm-10c6eb4be2057a03c8d1ff0420af884904d4501e.tar.gz bcm5719-llvm-10c6eb4be2057a03c8d1ff0420af884904d4501e.zip | |
Get rid of idefs for arguments
llvm-svn: 21250
Diffstat (limited to 'llvm/lib/Target/Alpha/AlphaISelPattern.cpp')
| -rw-r--r-- | llvm/lib/Target/Alpha/AlphaISelPattern.cpp | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/llvm/lib/Target/Alpha/AlphaISelPattern.cpp b/llvm/lib/Target/Alpha/AlphaISelPattern.cpp index 787edb91897..9f309e5b3b4 100644 --- a/llvm/lib/Target/Alpha/AlphaISelPattern.cpp +++ b/llvm/lib/Target/Alpha/AlphaISelPattern.cpp @@ -170,20 +170,25 @@ AlphaTargetLowering::LowerArguments(Function &F, SelectionDAG &DAG) for (int i = 0; i < 6; ++i) { if (F.isVarArg()) { - BuildMI(&BB, Alpha::IDEF, 0, args_int[i]); - BuildMI(&BB, Alpha::IDEF, 0, args_float[i]); + F->addLiveIn(args_int[i]); + F->addLiveIn(args_float[i]); +// BuildMI(&BB, Alpha::IDEF, 0, args_int[i]); +// BuildMI(&BB, Alpha::IDEF, 0, args_float[i]); } else if (I != E) { if(MVT::isInteger(getValueType(I->getType()))) - BuildMI(&BB, Alpha::IDEF, 0, args_int[i]); + F->addLiveIn(args_int[i]); +// BuildMI(&BB, Alpha::IDEF, 0, args_int[i]); else - BuildMI(&BB, Alpha::IDEF, 0, args_float[i]); + F->addLiveIn(args_float[i]); +// BuildMI(&BB, Alpha::IDEF, 0, args_float[i]); ++I; } } } - BuildMI(&BB, Alpha::IDEF, 0, Alpha::R29); + F->addLiveIn(Alpha::R29); +// BuildMI(&BB, Alpha::IDEF, 0, Alpha::R29); BuildMI(&BB, Alpha::BIS, 2, GP).addReg(Alpha::R29).addReg(Alpha::R29); for (Function::arg_iterator I = F.arg_begin(), E = F.arg_end(); I != E; ++I) @@ -257,6 +262,24 @@ AlphaTargetLowering::LowerArguments(Function &F, SelectionDAG &DAG) //Set up a token factor with all the stack traffic DAG.setRoot(DAG.getNode(ISD::TokenFactor, MVT::Other, LS)); + + // Finally, inform the code generator which regs we return values in. + switch (getValueType(F.getReturnType())) { + default: assert(0 && "Unknown type!"); + case MVT::isVoid: break; + case MVT::i1: + case MVT::i8: + case MVT::i16: + case MVT::i32: + case MVT::i64: + MF.addLiveOut(Alpha::R0); + break; + case MVT::f32: + case MVT::f64: + MF.addLiveOut(Alpha::F0); + break; + } + //return the arguments return ArgValues; } |

