mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
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
This commit is contained in:
parent
b36cbd0286
commit
c1671e2d7d
@ -98,10 +98,10 @@ namespace {
|
||||
SelectionDAG &DAG);
|
||||
|
||||
virtual std::pair<SDOperand, SDOperand>
|
||||
LowerVAStart(SDOperand Chain, SelectionDAG &DAG);
|
||||
LowerVAStart(SDOperand Chain, SelectionDAG &DAG, SDOperand Dest);
|
||||
|
||||
virtual std::pair<SDOperand,SDOperand>
|
||||
LowerVAArgNext(bool isVANext, SDOperand Chain, SDOperand VAList,
|
||||
LowerVAArgNext(SDOperand Chain, SDOperand VAList,
|
||||
const Type *ArgTy, SelectionDAG &DAG);
|
||||
|
||||
virtual std::pair<SDOperand, SDOperand>
|
||||
@ -464,14 +464,19 @@ PPC32TargetLowering::LowerCallTo(SDOperand Chain,
|
||||
}
|
||||
|
||||
std::pair<SDOperand, SDOperand>
|
||||
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<SDOperand,SDOperand> 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) {
|
||||
|
Loading…
Reference in New Issue
Block a user