* track used register better: if a deallocation is moved/removed, the used register may not be removed from the current register used register set

git-svn-id: trunk@44239 -
This commit is contained in:
florian 2020-02-23 18:24:31 +00:00
parent 46ab234886
commit c7b19e2fc9

View File

@ -192,7 +192,6 @@ Unit aopt;
End End
else if tai_regalloc(p).ratype=ra_dealloc then else if tai_regalloc(p).ratype=ra_dealloc then
Begin Begin
ExcludeRegFromUsedRegs(tai_regalloc(p).Reg,Regs);
hp1 := p; hp1 := p;
hp2 := nil; hp2 := nil;
While Not(assigned(FindRegAlloc(tai_regalloc(p).Reg, tai(hp1.Next)))) And While Not(assigned(FindRegAlloc(tai_regalloc(p).Reg, tai(hp1.Next)))) And
@ -233,7 +232,9 @@ Unit aopt;
AsmL.remove(p); AsmL.remove(p);
p.free; p.free;
p := hp1; p := hp1;
end; end
else
ExcludeRegFromUsedRegs(tai_regalloc(p).Reg,Regs);
End End
End End
else else