* Rewrote those insane {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION} into somewhat more readable form.

git-svn-id: trunk@17163 -
This commit is contained in:
sergei 2011-03-21 21:12:46 +00:00
parent 3569a26166
commit f7dcad6f92
2 changed files with 30 additions and 19 deletions

View File

@ -779,9 +779,11 @@ var
begin begin
{ call cpu/fpu initialisation routine } { call cpu/fpu initialisation routine }
fpc_cpuinit; fpc_cpuinit;
with {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PInitFinalTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION} {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}
InitFinalTable with PInitFinalTable(EntryInformation.InitFinalTable)^ do
{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION} do {$else FPC_HAS_INDIRECT_MAIN_INFORMATION}
with InitFinalTable do
{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
begin begin
for i:=1 to TableCount do for i:=1 to TableCount do
begin begin
@ -808,9 +810,11 @@ end;
procedure FinalizeUnits;[public,alias:'FPC_FINALIZEUNITS']; procedure FinalizeUnits;[public,alias:'FPC_FINALIZEUNITS'];
begin begin
with {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PInitFinalTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION} {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}
InitFinalTable with PInitFinalTable(EntryInformation.InitFinalTable)^ do
{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION} do {$else FPC_HAS_INDIRECT_MAIN_INFORMATION}
with InitFinalTable do
{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
begin begin
while (InitCount>0) do while (InitCount>0) do
begin begin

View File

@ -52,15 +52,18 @@ procedure init_all_unit_threadvars;
var var
i : integer; i : integer;
begin begin
{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}
with PltvInitTablesTable(EntryInformation.ThreadvarTablesTable)^ do
{$else FPC_HAS_INDIRECT_MAIN_INFORMATION}
with ThreadvarTablesTable do
{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
begin
{$ifdef DEBUG_MT} {$ifdef DEBUG_MT}
WriteLn ('init_all_unit_threadvars (', WriteLn ('init_all_unit_threadvars (',count,') units');
{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.count,') units');
{$endif} {$endif}
for i := 1 to {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION} for i := 1 to count do
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.count do init_unit_threadvars (tables[i]);
init_unit_threadvars ({$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION} end;
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.tables[i]);
end; end;
@ -83,14 +86,18 @@ procedure copy_all_unit_threadvars;
var var
i : integer; i : integer;
begin begin
{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}
with PltvInitTablesTable(EntryInformation.ThreadvarTablesTable)^ do
{$else FPC_HAS_INDIRECT_MAIN_INFORMATION}
with ThreadvarTablesTable do
{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}
begin
{$ifdef DEBUG_MT} {$ifdef DEBUG_MT}
WriteLn ('copy_all_unit_threadvars (',{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION} WriteLn ('copy_all_unit_threadvars (',count,') units');
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.count,') units');
{$endif} {$endif}
for i := 1 to {$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION} for i := 1 to count do
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.count do copy_unit_threadvars (tables[i]);
copy_unit_threadvars ({$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION}PltvInitTablesTable(EntryInformation.{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION} end;
ThreadvarTablesTable{$ifdef FPC_HAS_INDIRECT_MAIN_INFORMATION})^{$endif FPC_HAS_INDIRECT_MAIN_INFORMATION}.tables[i]);
end; end;
procedure InitThreadVars(RelocProc : Pointer); procedure InitThreadVars(RelocProc : Pointer);