* adjust the reg. allocations of the target register in RemoveSuperfluousMove

git-svn-id: trunk@22194 -
This commit is contained in:
florian 2012-08-22 19:52:37 +00:00
parent 3d7b603d11
commit a92ca7c456

View File

@ -315,6 +315,18 @@ 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;
{ finally get rid of the mov }
taicpu(p).loadreg(0,taicpu(movp).oper[0]^.reg);
asml.remove(movp);
movp.free;