|
@@ -637,12 +637,20 @@ begin
|
|
|
because it can never be executed}
|
|
|
if (taicpu(p).opcode = A_JMP) then
|
|
|
begin
|
|
|
- while GetNextInstruction(p, hp1) and
|
|
|
+ hp2:=p;
|
|
|
+ while GetNextInstruction(hp2, hp1) and
|
|
|
(hp1.typ <> ait_label) do
|
|
|
if not(hp1.typ in ([ait_label,ait_align]+skipinstr)) then
|
|
|
begin
|
|
|
- asml.remove(hp1);
|
|
|
- hp1.free;
|
|
|
+ { don't kill start/end of assembler block,
|
|
|
+ no-line-info-start/end etc }
|
|
|
+ if hp1.typ<>ait_marker then
|
|
|
+ begin
|
|
|
+ asml.remove(hp1);
|
|
|
+ hp1.free;
|
|
|
+ end
|
|
|
+ else
|
|
|
+ hp2:=hp1;
|
|
|
end
|
|
|
else break;
|
|
|
end;
|