This commit is contained in:
Jonas Maebe 1999-06-23 12:33:52 +00:00
parent 8bbe79ac69
commit 4e6bcf9ed7

View File

@ -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