mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-16 09:59:17 +02:00
Fixes by Gareth Moreton for problems exposed by use of -CriotR option
git-svn-id: trunk@43529 -
This commit is contained in:
parent
9bd19b050b
commit
ff415ba39c
@ -381,7 +381,7 @@ Unit AoptObj;
|
|||||||
procedure MakeUnconditional(p: taicpu); virtual;
|
procedure MakeUnconditional(p: taicpu); virtual;
|
||||||
|
|
||||||
{ Removes all instructions between an unconditional jump and the next label }
|
{ Removes all instructions between an unconditional jump and the next label }
|
||||||
procedure RemoveDeadCodeAfterJump(p: taicpu);
|
procedure RemoveDeadCodeAfterJump(p: tai);
|
||||||
|
|
||||||
{ If hp is a label, strip it if its reference count is zero. Repeat until
|
{ If hp is a label, strip it if its reference count is zero. Repeat until
|
||||||
a non-label is found, or a label with a non-zero reference count.
|
a non-label is found, or a label with a non-zero reference count.
|
||||||
@ -1615,7 +1615,7 @@ Unit AoptObj;
|
|||||||
|
|
||||||
|
|
||||||
{ Removes all instructions between an unconditional jump and the next label }
|
{ Removes all instructions between an unconditional jump and the next label }
|
||||||
procedure TAOptObj.RemoveDeadCodeAfterJump(p: taicpu);
|
procedure TAOptObj.RemoveDeadCodeAfterJump(p: tai);
|
||||||
var
|
var
|
||||||
hp1, hp2: tai;
|
hp1, hp2: tai;
|
||||||
begin
|
begin
|
||||||
@ -1657,7 +1657,7 @@ Unit AoptObj;
|
|||||||
hp1.free;
|
hp1.free;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
p:=taicpu(hp1);
|
p:=hp1;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
Break;
|
Break;
|
||||||
|
@ -2057,6 +2057,8 @@ unit aoptx86;
|
|||||||
p.Free;
|
p.Free;
|
||||||
hp2.Free;
|
hp2.Free;
|
||||||
p := hp1;
|
p := hp1;
|
||||||
|
Result := True;
|
||||||
|
Exit;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
if MatchOpType(taicpu(hp2),top_reg,top_reg) and
|
if MatchOpType(taicpu(hp2),top_reg,top_reg) and
|
||||||
|
Loading…
Reference in New Issue
Block a user