mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 20:49:22 +02:00
* merged
This commit is contained in:
parent
8bbe79ac69
commit
4e6bcf9ed7
@ -808,27 +808,39 @@ Begin
|
|||||||
Dispose(hp2,Done);
|
Dispose(hp2,Done);
|
||||||
End
|
End
|
||||||
Else
|
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 mem1, reg1 mov mem1, reg1
|
||||||
mov reg1, mem2 mov reg1, mem2
|
mov reg1, mem2 mov reg1, mem2
|
||||||
mov mem2, reg2 mov mem2, reg1
|
mov mem2, reg2 mov mem2, reg1
|
||||||
to: to:
|
to: to:
|
||||||
mov mem1, reg1 mov mem1, reg1
|
mov mem1, reg1 mov mem1, reg1
|
||||||
mov mem1, reg2 mov reg1, mem2
|
mov mem1, reg2 mov reg1, mem2
|
||||||
mov reg1, mem2}
|
mov reg1, mem2
|
||||||
Begin
|
|
||||||
If (Pai386(p)^.oper[1].reg <> Pai386(hp2)^.oper[1].reg) Then
|
or (if mem1 depends on reg1
|
||||||
Begin
|
and/or if mem2 depends on reg2)
|
||||||
Pai386(hp1)^.LoadRef(0,newreference(Pai386(p)^.oper[0].ref^));
|
to:
|
||||||
Pai386(hp1)^.LoadReg(1,Pai386(hp2)^.oper[1].reg);
|
mov mem1, reg1
|
||||||
End
|
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
|
Else
|
||||||
Begin
|
Begin
|
||||||
AsmL^.Remove(hp1);
|
AsmL^.Remove(hp2);
|
||||||
Dispose(hp1, Done)
|
Dispose(hp2, Done);
|
||||||
End;
|
End
|
||||||
Pai386(hp2)^.LoadRef(1,newreference(Pai386(hp2)^.oper[0].ref^));
|
|
||||||
Pai386(hp2)^.LoadReg(0,Pai386(p)^.oper[1].reg);
|
|
||||||
End;
|
|
||||||
End;
|
End;
|
||||||
End
|
End
|
||||||
Else
|
Else
|
||||||
@ -1521,7 +1533,13 @@ End.
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$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
|
* merged
|
||||||
|
|
||||||
Revision 1.54.2.1 1999/06/18 09:52:40 peter
|
Revision 1.54.2.1 1999/06/18 09:52:40 peter
|
||||||
|
Loading…
Reference in New Issue
Block a user