mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-18 18:59:40 +02:00
* adjust the reg. allocations of the target register in RemoveSuperfluousMove
git-svn-id: trunk@22194 -
This commit is contained in:
parent
3d7b603d11
commit
a92ca7c456
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user