forked from OSchip/llvm-project
Add low-level option for avoiding float stores from va_start until
soft-float is properly supported. llvm-svn: 215221
This commit is contained in:
parent
0013b9292d
commit
eb8655afd3
|
@ -39,6 +39,10 @@
|
||||||
#include "llvm/Target/TargetOptions.h"
|
#include "llvm/Target/TargetOptions.h"
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
|
// FIXME: Remove this once soft-float is supported.
|
||||||
|
static cl::opt<bool> DisablePPCFloatInVariadic("disable-ppc-float-in-variadic",
|
||||||
|
cl::desc("disable saving float registers for va_start on PPC"), cl::Hidden);
|
||||||
|
|
||||||
static cl::opt<bool> DisablePPCPreinc("disable-ppc-preinc",
|
static cl::opt<bool> DisablePPCPreinc("disable-ppc-preinc",
|
||||||
cl::desc("disable preincrement load/store generation on PPC"), cl::Hidden);
|
cl::desc("disable preincrement load/store generation on PPC"), cl::Hidden);
|
||||||
|
|
||||||
|
@ -2494,7 +2498,9 @@ PPCTargetLowering::LowerFormalArguments_32SVR4(
|
||||||
PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7,
|
PPC::F1, PPC::F2, PPC::F3, PPC::F4, PPC::F5, PPC::F6, PPC::F7,
|
||||||
PPC::F8
|
PPC::F8
|
||||||
};
|
};
|
||||||
const unsigned NumFPArgRegs = array_lengthof(FPArgRegs);
|
unsigned NumFPArgRegs = array_lengthof(FPArgRegs);
|
||||||
|
if (DisablePPCFloatInVariadic)
|
||||||
|
NumFPArgRegs = 0;
|
||||||
|
|
||||||
FuncInfo->setVarArgsNumGPR(CCInfo.getFirstUnallocated(GPArgRegs,
|
FuncInfo->setVarArgsNumGPR(CCInfo.getFirstUnallocated(GPArgRegs,
|
||||||
NumGPArgRegs));
|
NumGPArgRegs));
|
||||||
|
|
Loading…
Reference in New Issue