+ new chlcgobj class reference variable that can be used to call thlcg*

virtual methods even when hlcg doesn't contain a valid instance

git-svn-id: branches/hlcgllvm@28143 -
This commit is contained in:
Jonas Maebe 2014-07-03 22:28:31 +00:00
parent 5cf52bb957
commit 1516661249
13 changed files with 29 additions and 1 deletions

View File

@ -42,4 +42,6 @@ implementation
create_codegen;
end;
begin
chlcgobj:=thlcg2ll;
end.

View File

@ -42,4 +42,6 @@ implementation
create_codegen;
end;
begin
chlcgobj:=thlcg2ll;
end.

View File

@ -580,10 +580,15 @@ unit hlcgobj;
produces a simple jump to destination label. }
procedure g_local_unwind(list: TAsmList; l: TAsmLabel);virtual;abstract;
end;
thlcgobjclass = class of thlcgobj;
var
{# Main high level code generator class }
hlcg : thlcgobj;
{ class type of high level code generator class (also valid when hlcg is
nil, in order to be able to call its virtual class methods) }
chlcgobj: thlcgobjclass;
procedure destroy_hlcodegen;

View File

@ -200,4 +200,6 @@ implementation
begin
chlcgobj:=thlcgcpu;
end.

View File

@ -427,5 +427,6 @@ implementation
end;
begin
chlcgobj:=thlcgcpu;
end.

View File

@ -2557,4 +2557,6 @@ implementation
create_codegen;
end;
begin
chlcgobj:=thlcgjvm;
end.

View File

@ -1483,4 +1483,6 @@ implementation
cgllvm.create_codegen
end;
begin
chlcgobj:=thlcgllvm;
end.

View File

@ -42,4 +42,6 @@ implementation
create_codegen;
end;
begin
chlcgobj:=thlcg2ll;
end.

View File

@ -152,4 +152,6 @@ implementation
create_codegen;
end;
begin
chlcgobj:=thlcgmips;
end.

View File

@ -118,5 +118,7 @@ implementation
end;
begin
chlcgobj:=thlcgcpu;
end.

View File

@ -124,4 +124,6 @@ implementation
begin
chlcgobj:=thlcgcpu;
end.

View File

@ -42,4 +42,6 @@ implementation
create_codegen;
end;
begin
chlcgobj:=thlcg2ll;
end.

View File

@ -42,4 +42,6 @@ implementation
create_codegen;
end;
begin
chlcgobj:=thlcgx86;
end.