Fix placement of proxy variables for unused parameters
This commit is contained in:
parent
7ea4356361
commit
36d6fc6760
|
@ -426,13 +426,16 @@ void GlobalAnalyzer::CheckFastcall(Declaration* procDec, bool head)
|
||||||
Declaration* dec = procDec->mBase->mParams;
|
Declaration* dec = procDec->mBase->mParams;
|
||||||
while (dec)
|
while (dec)
|
||||||
{
|
{
|
||||||
// Check for parameter crossing boundary
|
if (!(dec->mFlags & DTF_FPARAM_UNUSED))
|
||||||
if (cnparams < numfpzero && cnparams + dec->mBase->mSize > numfpzero)
|
|
||||||
{
|
{
|
||||||
npalign = numfpzero - nparams;
|
// Check for parameter crossing boundary
|
||||||
cnparams += npalign;
|
if (cnparams < numfpzero && cnparams + dec->mBase->mSize > numfpzero)
|
||||||
|
{
|
||||||
|
npalign = numfpzero - nparams;
|
||||||
|
cnparams += npalign;
|
||||||
|
}
|
||||||
|
cnparams += dec->mBase->mSize;
|
||||||
}
|
}
|
||||||
cnparams += dec->mBase->mSize;
|
|
||||||
dec = dec->mNext;
|
dec = dec->mNext;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -442,7 +445,11 @@ void GlobalAnalyzer::CheckFastcall(Declaration* procDec, bool head)
|
||||||
dec = procDec->mBase->mParams;
|
dec = procDec->mBase->mParams;
|
||||||
while (dec)
|
while (dec)
|
||||||
{
|
{
|
||||||
if (dec->mForwardParam && (dec->mForwardCall->mBase->mFlags & DTF_FASTCALL) && !(dec->mForwardCall->mFlags & DTF_INLINE))
|
if (dec->mFlags & DTF_FPARAM_UNUSED)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (dec->mForwardParam && (dec->mForwardCall->mBase->mFlags & DTF_FASTCALL) && !(dec->mForwardCall->mFlags & DTF_INLINE))
|
||||||
{
|
{
|
||||||
dec->mVarIndex = dec->mForwardParam->mVarIndex;
|
dec->mVarIndex = dec->mForwardParam->mVarIndex;
|
||||||
}
|
}
|
||||||
|
|
|
@ -328,6 +328,8 @@ bool GlobalOptimizer::Optimize(void)
|
||||||
vi -= pdec->mSize;
|
vi -= pdec->mSize;
|
||||||
|
|
||||||
pdec->mFlags |= DTF_FPARAM_UNUSED;
|
pdec->mFlags |= DTF_FPARAM_UNUSED;
|
||||||
|
pdec->mVarIndex = func->mNumVars++;
|
||||||
|
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue