From 1601d9c1f0c4045d68e38986780fa2ff4098836c Mon Sep 17 00:00:00 2001 From: Misha Brukman Date: Thu, 19 Aug 2004 21:51:19 +0000 Subject: [PATCH] Stack space for argument passing is 32 regardless of 32- vs. 64-bit arch. Thanks to Nate Begeman for pointing this out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15930 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/PowerPC/PPC64ISelSimple.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/Target/PowerPC/PPC64ISelSimple.cpp b/lib/Target/PowerPC/PPC64ISelSimple.cpp index f80c569d328..b2dd07e5138 100644 --- a/lib/Target/PowerPC/PPC64ISelSimple.cpp +++ b/lib/Target/PowerPC/PPC64ISelSimple.cpp @@ -94,10 +94,10 @@ namespace { std::map AllocaMap; // Target configuration data - const unsigned ParameterSaveAreaOffset; + const unsigned ParameterSaveAreaOffset, MaxArgumentStackSpace; ISel(TargetMachine &tm) : TM(reinterpret_cast(tm)), - F(0), BB(0), ParameterSaveAreaOffset(24) {} + F(0), BB(0), ParameterSaveAreaOffset(24), MaxArgumentStackSpace(32) {} bool doInitialization(Module &M) { // Add external functions that we may call @@ -1290,10 +1290,10 @@ void ISel::doCall(const ValueRecord &Ret, MachineInstr *CallMI, default: assert(0 && "Unknown class!"); } - // Just to be safe, we'll always reserve the full 64 bytes worth of - // argument passing space in case any called code gets funky on us. - if (NumBytes < ParameterSaveAreaOffset + 64) - NumBytes = ParameterSaveAreaOffset + 64; + // Just to be safe, we'll always reserve the full argument passing space in + // case any called code gets funky on us. + if (NumBytes < ParameterSaveAreaOffset + MaxArgumentStackSpace) + NumBytes = ParameterSaveAreaOffset + MaxArgumentStackSpace; // Adjust the stack pointer for the new arguments... // These functions are automatically eliminated by the prolog/epilog pass