Avoid needles store to temps before function call
This commit is contained in:
parent
135d357dbc
commit
a52c869099
|
@ -2023,21 +2023,21 @@ void NativeCodeInstruction::FilterRegUsage(NumberSet& requiredTemps, NumberSet&
|
||||||
// check runtime calls
|
// check runtime calls
|
||||||
|
|
||||||
if (mType == ASMIT_JSR)
|
if (mType == ASMIT_JSR)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (mFlags & NCIF_RUNTIME)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 4; i++)
|
for (int i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
if (!providedTemps[BC_REG_ACCU + i])
|
if (!providedTemps[BC_REG_ACCU + i])
|
||||||
requiredTemps += BC_REG_ACCU + i;
|
requiredTemps += BC_REG_ACCU + i;
|
||||||
providedTemps += BC_REG_ACCU + i;
|
|
||||||
if (!providedTemps[BC_REG_WORK + i])
|
if (!providedTemps[BC_REG_WORK + i])
|
||||||
requiredTemps += BC_REG_WORK + i;
|
requiredTemps += BC_REG_WORK + i;
|
||||||
providedTemps += BC_REG_WORK + i;
|
|
||||||
if (!providedTemps[BC_REG_ADDR + i])
|
if (!providedTemps[BC_REG_ADDR + i])
|
||||||
requiredTemps += BC_REG_ADDR + i;
|
requiredTemps += BC_REG_ADDR + i;
|
||||||
providedTemps += BC_REG_ADDR + i;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (!(mFlags & NCIF_RUNTIME))
|
else
|
||||||
{
|
{
|
||||||
if (mLinkerObject)
|
if (mLinkerObject)
|
||||||
{
|
{
|
||||||
|
@ -2052,6 +2052,13 @@ void NativeCodeInstruction::FilterRegUsage(NumberSet& requiredTemps, NumberSet&
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
providedTemps += BC_REG_ACCU + i;
|
||||||
|
providedTemps += BC_REG_WORK + i;
|
||||||
|
providedTemps += BC_REG_ADDR + i;
|
||||||
|
}
|
||||||
|
|
||||||
providedTemps += CPU_REG_A;
|
providedTemps += CPU_REG_A;
|
||||||
providedTemps += CPU_REG_X;
|
providedTemps += CPU_REG_X;
|
||||||
providedTemps += CPU_REG_Y;
|
providedTemps += CPU_REG_Y;
|
||||||
|
|
Loading…
Reference in New Issue