* x86: Fixed bug where "aoc_ForceNewIteration" wouldn't update the registers properly in some circumstances

This commit is contained in:
J. Gareth "Curious Kit" Moreton 2025-02-26 17:11:45 +00:00 committed by FPK
parent 7878a7b390
commit 5536810075
2 changed files with 36 additions and 12 deletions

View File

@ -276,9 +276,15 @@ unit aoptcpu;
if not Result then
begin
if (p.typ in SkipInstr) then
UpdateUsedRegs(p);
p := tai(p.Next);
begin
UpdateUsedRegs(p);
p := tai(p.Next);
end
else
begin
p := tai(p.Next);
UpdateUsedRegs(p);
end;
Result := True;
end;
end;
@ -340,9 +346,15 @@ unit aoptcpu;
if not Result then
begin
if (p.typ in SkipInstr) then
UpdateUsedRegs(p);
p := tai(p.Next);
begin
UpdateUsedRegs(p);
p := tai(p.Next);
end
else
begin
p := tai(p.Next);
UpdateUsedRegs(p);
end;
Result := True;
end;
end;

View File

@ -199,9 +199,15 @@ uses
if not Result then
begin
if (p.typ in SkipInstr) then
UpdateUsedRegs(p);
p := tai(p.Next);
begin
UpdateUsedRegs(p);
p := tai(p.Next);
end
else
begin
p := tai(p.Next);
UpdateUsedRegs(p);
end;
Result := True;
end;
end;
@ -259,9 +265,15 @@ uses
if not Result then
begin
if (p.typ in SkipInstr) then
UpdateUsedRegs(p);
p := tai(p.Next);
begin
UpdateUsedRegs(p);
p := tai(p.Next);
end
else
begin
p := tai(p.Next);
UpdateUsedRegs(p);
end;
Result := True;
end;
end;