|
@@ -126,6 +126,22 @@ unit aoptcpu;
|
|
|
end;
|
|
|
Break;
|
|
|
until False;
|
|
|
+
|
|
|
+ { If this flag is set, something was optimised ahead of p, so move
|
|
|
+ ahead by 1 instruction but treat as if Result was set to True }
|
|
|
+ if aoc_ForceNewIteration in OptsToCheck then
|
|
|
+ begin
|
|
|
+ Exclude(OptsToCheck, aoc_ForceNewIteration);
|
|
|
+
|
|
|
+ if not Result then
|
|
|
+ begin
|
|
|
+ if (p.typ in SkipInstr) then
|
|
|
+ UpdateUsedRegs(p);
|
|
|
+
|
|
|
+ p := tai(p.Next);
|
|
|
+ Result := True;
|
|
|
+ end;
|
|
|
+ end;
|
|
|
end;
|
|
|
|
|
|
|
|
@@ -300,6 +316,21 @@ unit aoptcpu;
|
|
|
else
|
|
|
;
|
|
|
end;
|
|
|
+ { If this flag is set, something was optimised ahead of p, so move
|
|
|
+ ahead by 1 instruction but treat as if Result was set to True }
|
|
|
+ if aoc_ForceNewIteration in OptsToCheck then
|
|
|
+ begin
|
|
|
+ Exclude(OptsToCheck, aoc_ForceNewIteration);
|
|
|
+
|
|
|
+ if not Result then
|
|
|
+ begin
|
|
|
+ if (p.typ in SkipInstr) then
|
|
|
+ UpdateUsedRegs(p);
|
|
|
+
|
|
|
+ p := tai(p.Next);
|
|
|
+ Result := True;
|
|
|
+ end;
|
|
|
+ end;
|
|
|
end;
|
|
|
|
|
|
|
|
@@ -402,6 +433,21 @@ unit aoptcpu;
|
|
|
else
|
|
|
;
|
|
|
end;
|
|
|
+ { If this flag is set, something was optimised ahead of p, so move
|
|
|
+ ahead by 1 instruction but treat as if Result was set to True }
|
|
|
+ if aoc_ForceNewIteration in OptsToCheck then
|
|
|
+ begin
|
|
|
+ Exclude(OptsToCheck, aoc_ForceNewIteration);
|
|
|
+
|
|
|
+ if not Result then
|
|
|
+ begin
|
|
|
+ if (p.typ in SkipInstr) then
|
|
|
+ UpdateUsedRegs(p);
|
|
|
+
|
|
|
+ p := tai(p.Next);
|
|
|
+ Result := True;
|
|
|
+ end;
|
|
|
+ end;
|
|
|
end;
|
|
|
|
|
|
|