Преглед изворни кода

x86: Some oversights fixed where another iteration of pass 1 wasn't performed when it should have been

J. Gareth "Curious Kit" Moreton пре 2 година
родитељ
комит
42711da392
1 измењених фајлова са 4 додато и 1 уклоњено
  1. 4 1
      compiler/x86/aoptx86.pas

+ 4 - 1
compiler/x86/aoptx86.pas

@@ -4278,6 +4278,8 @@ unit aoptx86;
                                       hp3 := tai(hp2.Previous);
                                       RemoveInstruction(hp2);
 
+                                      Include(OptsToCheck, aoc_ForceNewIteration);
+
                                       { See if there's more we can optimise }
                                       Continue;
                                     end
@@ -4381,7 +4383,8 @@ unit aoptx86;
                                 { Same value - register hasn't changed }
                                 DebugMsg(SPeepholeOptimization + 'Mov2Nop 2 done', hp2);
                                 RemoveInstruction(hp2);
-                                Result := True;
+
+                                Include(OptsToCheck, aoc_ForceNewIteration);
 
                                 { See if there's more we can optimise }
                                 Continue;