mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 05:29:22 +02:00
* no longer remove AsmBlockStart and AsmBlockEnd markers from
assembler blocks in procedures marked as inline. I have no idea why that was done, but it was the case already since a long time and caused a compiler crash when compiling tests/test/opt/tretopt1 (because it caused the assembler optimizer to process such assembler blocks, while their operand order is not guaranteed to be the AT&T one as expected by the optimizers) git-svn-id: trunk@8604 -
This commit is contained in:
parent
93aad97c22
commit
56f8424af6
@ -210,7 +210,6 @@ interface
|
|||||||
var
|
var
|
||||||
hp,hp2 : tai;
|
hp,hp2 : tai;
|
||||||
i : longint;
|
i : longint;
|
||||||
skipnode : boolean;
|
|
||||||
begin
|
begin
|
||||||
location_reset(location,LOC_VOID,OS_NO);
|
location_reset(location,LOC_VOID,OS_NO);
|
||||||
|
|
||||||
@ -231,7 +230,6 @@ interface
|
|||||||
while assigned(hp) do
|
while assigned(hp) do
|
||||||
begin
|
begin
|
||||||
hp2:=tai(hp.getcopy);
|
hp2:=tai(hp.getcopy);
|
||||||
skipnode:=false;
|
|
||||||
case hp2.typ of
|
case hp2.typ of
|
||||||
ait_label :
|
ait_label :
|
||||||
ReLabel(tasmsymbol(tai_label(hp2).labsym));
|
ReLabel(tasmsymbol(tai_label(hp2).labsym));
|
||||||
@ -274,17 +272,8 @@ interface
|
|||||||
taicpu(hp2).CheckIfValid;
|
taicpu(hp2).CheckIfValid;
|
||||||
{$endif x86}
|
{$endif x86}
|
||||||
end;
|
end;
|
||||||
ait_marker :
|
|
||||||
begin
|
|
||||||
{ it's not an assembler block anymore }
|
|
||||||
if (tai_marker(hp2).kind in [mark_AsmBlockStart, mark_AsmBlockEnd]) then
|
|
||||||
skipnode:=true;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
if not skipnode then
|
current_asmdata.CurrAsmList.concat(hp2);
|
||||||
current_asmdata.CurrAsmList.concat(hp2)
|
|
||||||
else
|
|
||||||
hp2.free;
|
|
||||||
hp:=tai(hp.next);
|
hp:=tai(hp.next);
|
||||||
end;
|
end;
|
||||||
{ restore used symbols }
|
{ restore used symbols }
|
||||||
|
Loading…
Reference in New Issue
Block a user