Fix temp spilling in recursive functions
This commit is contained in:
parent
e6bc6371c9
commit
2db8890453
|
@ -39,6 +39,13 @@ namespace opp {
|
|||
v = k;
|
||||
}
|
||||
|
||||
void operator-=(int k)
|
||||
{
|
||||
k = v - k;
|
||||
__assume(k >= tmin && k <= tmax);
|
||||
v = k;
|
||||
}
|
||||
|
||||
operator int() const
|
||||
{
|
||||
int k = v;
|
||||
|
|
|
@ -5971,7 +5971,7 @@ InterCodeProcedure* InterCodeGenerator::TranslateProcedure(InterCodeModule * mod
|
|||
if (dec->mFlags & DTF_FUNC_INTRCALLED)
|
||||
proc->mInterruptCalled = true;
|
||||
|
||||
if (dec->mFlags & DTF_DYNSTACK)
|
||||
if ((dec->mFlags & DTF_DYNSTACK) || (dec->mFlags & DTF_FUNC_RECURSIVE))
|
||||
proc->mDynamicStack = true;
|
||||
|
||||
if ((dec->mFlags & DTF_PREVENT_INLINE) || (dec->mBase->mFlags & DTF_VARIADIC))
|
||||
|
|
Loading…
Reference in New Issue