mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 09:26:15 +02:00
* TX86AsmOptimizer.OptPass1MOV should be left, after an optimization has been carried out, instead the outer loop should call it again, resolves issue #30277
git-svn-id: trunk@34724 -
This commit is contained in:
parent
ec54cb2a7a
commit
fe0ce2f456
@ -728,9 +728,10 @@ unit aoptx86;
|
|||||||
begin
|
begin
|
||||||
asml.remove(p);
|
asml.remove(p);
|
||||||
p.free;
|
p.free;
|
||||||
p := hp1;
|
p:=hp1;
|
||||||
DebugMsg('Peephole removed deadstore before leave/ret',p);
|
DebugMsg('Peephole removed deadstore before leave/ret',p);
|
||||||
RemoveLastDeallocForFuncRes(p);
|
RemoveLastDeallocForFuncRes(p);
|
||||||
|
exit;
|
||||||
end
|
end
|
||||||
{ change
|
{ change
|
||||||
mov reg1, mem1
|
mov reg1, mem1
|
||||||
@ -1004,9 +1005,9 @@ unit aoptx86;
|
|||||||
p := hp1;
|
p := hp1;
|
||||||
end;
|
end;
|
||||||
ReleaseUsedRegs(TmpUsedRegs);
|
ReleaseUsedRegs(TmpUsedRegs);
|
||||||
end;
|
end
|
||||||
|
|
||||||
if GetNextIntruction_p and
|
else if GetNextIntruction_p and
|
||||||
MatchInstruction(hp1,A_BTS,A_BTR,[Taicpu(p).opsize]) and
|
MatchInstruction(hp1,A_BTS,A_BTR,[Taicpu(p).opsize]) and
|
||||||
GetNextInstruction(hp1, hp2) and
|
GetNextInstruction(hp1, hp2) and
|
||||||
MatchInstruction(hp2,A_OR,[Taicpu(p).opsize]) and
|
MatchInstruction(hp2,A_OR,[Taicpu(p).opsize]) and
|
||||||
@ -1024,9 +1025,9 @@ unit aoptx86;
|
|||||||
asml.remove(p);
|
asml.remove(p);
|
||||||
p.free;
|
p.free;
|
||||||
p:=hp1;
|
p:=hp1;
|
||||||
end;
|
end
|
||||||
|
|
||||||
if GetNextIntruction_p and
|
else if GetNextIntruction_p and
|
||||||
MatchInstruction(hp1,A_LEA,[S_L]) and
|
MatchInstruction(hp1,A_LEA,[S_L]) and
|
||||||
MatchOpType(Taicpu(p),top_ref,top_reg) and
|
MatchOpType(Taicpu(p),top_ref,top_reg) and
|
||||||
((MatchReference(Taicpu(hp1).oper[0]^.ref^,Taicpu(hp1).oper[1]^.reg,Taicpu(p).oper[1]^.reg) and
|
((MatchReference(Taicpu(hp1).oper[0]^.ref^,Taicpu(hp1).oper[1]^.reg,Taicpu(p).oper[1]^.reg) and
|
||||||
|
Loading…
Reference in New Issue
Block a user