* forgotten part of previous commit: fix BccB2Cond optimization on arm

git-svn-id: trunk@42684 -
This commit is contained in:
florian 2019-08-13 22:12:52 +00:00
parent ba0768b6a6
commit 0a0397c9f5

View File

@ -2315,6 +2315,7 @@ Implementation
CanBeCond(hp1) and
{ stop on labels }
not(hp1.typ=ait_label) and
{ avoid that we cannot recognize the case BccB2Cond }
not((hp1.typ=ait_instruction) and (taicpu(hp1).opcode=A_B)) do
begin
inc(l);
@ -2393,9 +2394,16 @@ Implementation
{ skip hp1 to <several moves 2> }
GetNextInstruction(hp1, hp1);
while assigned(hp1) and
CanBeCond(hp1) do
CanBeCond(hp1) and
(l<=3) do
begin
inc(l);
if MustBeLast(hp1) then
begin
GetNextInstruction(hp1, hp1);
break;
end
else
GetNextInstruction(hp1, hp1);
end;
{ hp1 points to yyy: }
@ -2409,6 +2417,12 @@ Implementation
repeat
if hp1.typ=ait_instruction then
taicpu(hp1).condition:=condition;
if MustBeLast(hp1) then
begin
GetNextInstruction(hp1, hp1);
break;
end
else
GetNextInstruction(hp1, hp1);
until not(assigned(hp1)) or
not(CanBeCond(hp1)) or