Avoid needles store to temps before function call

This commit is contained in:
drmortalwombat 2021-10-31 19:37:54 +01:00
parent 135d357dbc
commit a52c869099

View File

@ -2024,20 +2024,20 @@ void NativeCodeInstruction::FilterRegUsage(NumberSet& requiredTemps, NumberSet&
if (mType == ASMIT_JSR)
{
for (int i = 0; i < 4; i++)
{
if (!providedTemps[BC_REG_ACCU + i])
requiredTemps += BC_REG_ACCU + i;
providedTemps += BC_REG_ACCU + i;
if (!providedTemps[BC_REG_WORK + i])
requiredTemps += BC_REG_WORK + i;
providedTemps += BC_REG_WORK + i;
if (!providedTemps[BC_REG_ADDR + i])
requiredTemps += BC_REG_ADDR + i;
providedTemps += BC_REG_ADDR + i;
}
if (!(mFlags & NCIF_RUNTIME))
if (mFlags & NCIF_RUNTIME)
{
for (int i = 0; i < 4; i++)
{
if (!providedTemps[BC_REG_ACCU + i])
requiredTemps += BC_REG_ACCU + i;
if (!providedTemps[BC_REG_WORK + i])
requiredTemps += BC_REG_WORK + i;
if (!providedTemps[BC_REG_ADDR + i])
requiredTemps += BC_REG_ADDR + i;
}
}
else
{
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_X;
providedTemps += CPU_REG_Y;