Browse Source

* use AllocRegbetween in TARMAsmOptimizer.RemoveSuperfluousMove, resolves #39921

florian 2 years ago
parent
commit
3e5f6d3228
1 changed files with 1 additions and 10 deletions
  1. 1 10
      compiler/armgen/aoptarm.pas

+ 1 - 10
compiler/armgen/aoptarm.pas

@@ -315,16 +315,7 @@ Implementation
               else
                 asml.InsertAfter(dealloc,p);
 
-              { try to move the allocation of the target register }
-              GetLastInstruction(movp,hp1);
-              alloc:=FindRegAlloc(taicpu(movp).oper[0]^.reg,tai(hp1.Next));
-              if assigned(alloc) then
-                begin
-                  asml.Remove(alloc);
-                  asml.InsertBefore(alloc,p);
-                  { adjust used regs }
-                  IncludeRegInUsedRegs(taicpu(movp).oper[0]^.reg,UsedRegs);
-                end;
+              AllocRegBetween(taicpu(movp).oper[0]^.reg,p,movp,UsedRegs);
 
               { finally get rid of the mov }
               taicpu(p).loadreg(0,taicpu(movp).oper[0]^.reg);