mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 18:25:58 +02:00
* merged
This commit is contained in:
parent
8bbe79ac69
commit
4e6bcf9ed7
@ -808,27 +808,39 @@ Begin
|
||||
Dispose(hp2,Done);
|
||||
End
|
||||
Else
|
||||
If (Pai386(p)^.oper[1].reg <> Pai386(hp2)^.oper[1].reg) And
|
||||
not(RegInRef(Pai386(p)^.oper[1].reg,Pai386(p)^.oper[0].ref^)) And
|
||||
not(RegInRef(Pai386(hp2)^.oper[1].reg,Pai386(hp2)^.oper[0].ref^))
|
||||
Then
|
||||
{ mov mem1, reg1 mov mem1, reg1
|
||||
mov reg1, mem2 mov reg1, mem2
|
||||
mov mem2, reg2 mov mem2, reg1
|
||||
to: to:
|
||||
mov mem1, reg1 mov mem1, reg1
|
||||
mov mem1, reg2 mov reg1, mem2
|
||||
mov reg1, mem2}
|
||||
Begin
|
||||
If (Pai386(p)^.oper[1].reg <> Pai386(hp2)^.oper[1].reg) Then
|
||||
Begin
|
||||
Pai386(hp1)^.LoadRef(0,newreference(Pai386(p)^.oper[0].ref^));
|
||||
Pai386(hp1)^.LoadReg(1,Pai386(hp2)^.oper[1].reg);
|
||||
End
|
||||
mov reg1, mem2
|
||||
|
||||
or (if mem1 depends on reg1
|
||||
and/or if mem2 depends on reg2)
|
||||
to:
|
||||
mov mem1, reg1
|
||||
mov reg1, mem2
|
||||
mov reg1, reg2
|
||||
}
|
||||
Begin
|
||||
Pai386(hp1)^.LoadRef(0,newreference(Pai386(p)^.oper[0].ref^));
|
||||
Pai386(hp1)^.LoadReg(1,Pai386(hp2)^.oper[1].reg);
|
||||
Pai386(hp2)^.LoadRef(1,newreference(Pai386(hp2)^.oper[0].ref^));
|
||||
Pai386(hp2)^.LoadReg(0,Pai386(p)^.oper[1].reg);
|
||||
End
|
||||
Else
|
||||
If (Pai386(hp1)^.Oper[0].reg <> Pai386(hp2)^.Oper[1].reg) Then
|
||||
Pai386(hp2)^.LoadReg(0,Pai386(hp1)^.Oper[0].reg)
|
||||
Else
|
||||
Begin
|
||||
AsmL^.Remove(hp1);
|
||||
Dispose(hp1, Done)
|
||||
End;
|
||||
Pai386(hp2)^.LoadRef(1,newreference(Pai386(hp2)^.oper[0].ref^));
|
||||
Pai386(hp2)^.LoadReg(0,Pai386(p)^.oper[1].reg);
|
||||
End;
|
||||
AsmL^.Remove(hp2);
|
||||
Dispose(hp2, Done);
|
||||
End
|
||||
End;
|
||||
End
|
||||
Else
|
||||
@ -1521,7 +1533,13 @@ End.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.55 1999-06-18 09:55:31 peter
|
||||
Revision 1.56 1999-06-23 12:33:52 jonas
|
||||
* merged
|
||||
|
||||
Revision 1.54.2.2 1999/06/23 11:55:08 jonas
|
||||
* fixed bug in "mov mem1,reg1;mov reg1,mem2;mov mem2,reg2" optimization
|
||||
|
||||
Revision 1.55 1999/06/18 09:55:31 peter
|
||||
* merged
|
||||
|
||||
Revision 1.54.2.1 1999/06/18 09:52:40 peter
|
||||
|
Loading…
Reference in New Issue
Block a user