mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-09 15:29:16 +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
|
||||
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 }
|
||||
|
Loading…
Reference in New Issue
Block a user