|
@@ -680,6 +680,7 @@ interface
|
|
|
{ this constructor is made private on purpose }
|
|
|
{ because sections should be created via new_section() }
|
|
|
constructor Create(Asectype:TAsmSectiontype;const Aname:string;Aalign:longint;Asecorder:TasmSectionorder=secorder_default);
|
|
|
+ constructor Create_proc(Asectype:TAsmSectiontype;const Aname:string;Aalign:longint;Asecorder:TasmSectionorder=secorder_default);
|
|
|
{$pop}
|
|
|
end;
|
|
|
|
|
@@ -1060,6 +1061,7 @@ interface
|
|
|
|
|
|
procedure maybe_new_object_file(list:TAsmList);
|
|
|
function new_section(list:TAsmList;Asectype:TAsmSectiontype;const Aname:string;Aalign:byte;Asecorder:TasmSectionorder=secorder_default) : tai_section;
|
|
|
+ function new_proc_section(list:TAsmList;Asectype:TAsmSectiontype;const Aname:string;Aalign:byte;Asecorder:TasmSectionorder=secorder_default) : tai_section;
|
|
|
|
|
|
function ppuloadai(ppufile:tcompilerppufile):tai;
|
|
|
procedure ppuwriteai(ppufile:tcompilerppufile;n:tai);
|
|
@@ -1099,6 +1101,16 @@ implementation
|
|
|
end;
|
|
|
|
|
|
|
|
|
+ function new_proc_section(list:TAsmList;Asectype:TAsmSectiontype;
|
|
|
+ const Aname:string;Aalign:byte;Asecorder:TasmSectionorder):tai_section;
|
|
|
+ begin
|
|
|
+ Result:=tai_section.Create_proc(Asectype,Aname,Aalign,Asecorder);
|
|
|
+ list.concat(Result);
|
|
|
+ inc(list.section_count);
|
|
|
+ list.concat(cai_align.create(Aalign));
|
|
|
+ end;
|
|
|
+
|
|
|
+
|
|
|
function ppuloadai(ppufile:tcompilerppufile):tai;
|
|
|
var
|
|
|
b : byte;
|
|
@@ -1318,6 +1330,15 @@ implementation
|
|
|
sec:=nil;
|
|
|
end;
|
|
|
|
|
|
+ constructor tai_section.Create_proc(Asectype:TAsmSectiontype;
|
|
|
+ const Aname:string;Aalign:longint;Asecorder:TasmSectionorder);
|
|
|
+ begin
|
|
|
+ Create(Asectype,Aname,Aalign,Asecorder);
|
|
|
+ secprogbits:=SPB_PROGBITS;
|
|
|
+ exclude(secflags,SF_W);
|
|
|
+ include(secflags,SF_X);
|
|
|
+ end;
|
|
|
+
|
|
|
|
|
|
constructor tai_section.ppuload(t:taitype;ppufile:tcompilerppufile);
|
|
|
begin
|