From: Chris Lattner Date: Fri, 1 Jul 2005 23:11:56 +0000 (+0000) Subject: Varargs is apparently currently broken on PPC. This hacks it so that it X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=c1671e2d7ddd81f0ac59652cc889ba2a40278ebf;p=oota-llvm.git Varargs is apparently currently broken on PPC. This hacks it so that it is at least overloading the right virtual methods. The implementations are currently wrong though. This fixes Ptrdist/bc, but not other programs (e.g. siod). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22326 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/PowerPC/PPCISelPattern.cpp b/lib/Target/PowerPC/PPCISelPattern.cpp index eaf7b09cb0c..8f3122ef814 100644 --- a/lib/Target/PowerPC/PPCISelPattern.cpp +++ b/lib/Target/PowerPC/PPCISelPattern.cpp @@ -98,10 +98,10 @@ namespace { SelectionDAG &DAG); virtual std::pair - LowerVAStart(SDOperand Chain, SelectionDAG &DAG); + LowerVAStart(SDOperand Chain, SelectionDAG &DAG, SDOperand Dest); virtual std::pair - LowerVAArgNext(bool isVANext, SDOperand Chain, SDOperand VAList, + LowerVAArgNext(SDOperand Chain, SDOperand VAList, const Type *ArgTy, SelectionDAG &DAG); virtual std::pair @@ -464,14 +464,19 @@ PPC32TargetLowering::LowerCallTo(SDOperand Chain, } std::pair -PPC32TargetLowering::LowerVAStart(SDOperand Chain, SelectionDAG &DAG) { +PPC32TargetLowering::LowerVAStart(SDOperand Chain, SelectionDAG &DAG, SDOperand Dest) { //vastart just returns the address of the VarArgsFrameIndex slot. return std::make_pair(DAG.getFrameIndex(VarArgsFrameIndex, MVT::i32), Chain); } std::pair PPC32TargetLowering:: -LowerVAArgNext(bool isVANext, SDOperand Chain, SDOperand VAList, +LowerVAArgNext(SDOperand Chain, SDOperand VAList, const Type *ArgTy, SelectionDAG &DAG) { + // FIXME: THIS IS BROKEN!!! + + bool isVANext = true; + + MVT::ValueType ArgVT = getValueType(ArgTy); SDOperand Result; if (!isVANext) {