mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 23:49:07 +02:00
* forgotten part of previous commit: fix BccB2Cond optimization on arm
git-svn-id: trunk@42684 -
This commit is contained in:
parent
ba0768b6a6
commit
0a0397c9f5
@ -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,10 +2394,17 @@ 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);
|
||||
GetNextInstruction(hp1, hp1);
|
||||
if MustBeLast(hp1) then
|
||||
begin
|
||||
GetNextInstruction(hp1, hp1);
|
||||
break;
|
||||
end
|
||||
else
|
||||
GetNextInstruction(hp1, hp1);
|
||||
end;
|
||||
{ hp1 points to yyy: }
|
||||
if assigned(hp1) and
|
||||
@ -2409,7 +2417,13 @@ Implementation
|
||||
repeat
|
||||
if hp1.typ=ait_instruction then
|
||||
taicpu(hp1).condition:=condition;
|
||||
GetNextInstruction(hp1,hp1);
|
||||
if MustBeLast(hp1) then
|
||||
begin
|
||||
GetNextInstruction(hp1, hp1);
|
||||
break;
|
||||
end
|
||||
else
|
||||
GetNextInstruction(hp1, hp1);
|
||||
until not(assigned(hp1)) or
|
||||
not(CanBeCond(hp1)) or
|
||||
((hp1.typ=ait_instruction) and (taicpu(hp1).opcode=A_B));
|
||||
|
Loading…
Reference in New Issue
Block a user