* 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:
Jonas Maebe 2007-09-22 19:01:44 +00:00
parent 93aad97c22
commit 56f8424af6

View File

@ -210,7 +210,6 @@ interface
var
hp,hp2 : tai;
i : longint;
skipnode : boolean;
begin
location_reset(location,LOC_VOID,OS_NO);
@ -231,7 +230,6 @@ interface
while assigned(hp) do
begin
hp2:=tai(hp.getcopy);
skipnode:=false;
case hp2.typ of
ait_label :
ReLabel(tasmsymbol(tai_label(hp2).labsym));
@ -274,17 +272,8 @@ interface
taicpu(hp2).CheckIfValid;
{$endif x86}
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;
if not skipnode then
current_asmdata.CurrAsmList.concat(hp2)
else
hp2.free;
current_asmdata.CurrAsmList.concat(hp2);
hp:=tai(hp.next);
end;
{ restore used symbols }