+ added register allocation methods from cgobj also to hlcgobj,

call through to cgobj

git-svn-id: branches/jvmbackend@18301 -
This commit is contained in:
Jonas Maebe 2011-08-20 07:36:42 +00:00
parent 09ac60b084
commit 07130a0c71
2 changed files with 39 additions and 1 deletions

View File

@ -56,6 +56,11 @@ unit hlcg2ll;
{************************************************}
{ basic routines }
constructor create;
procedure init_register_allocators;override;
{# Clean up the register allocators needed for the codegenerator.}
procedure done_register_allocators;override;
{# Set whether live_start or live_end should be updated when allocating registers, needed when e.g. generating initcode after the rest of the code. }
procedure set_regalloc_live_range_direction(dir: TRADirection);override;
{# Gets a register suitable to do integer operations on.}
function getintregister(list:TAsmList;size:tdef):Tregister;override;
@ -405,6 +410,20 @@ implementation
begin
end;
procedure thlcg2ll.init_register_allocators;
begin
cg.init_register_allocators;
end;
procedure thlcg2ll.done_register_allocators;
begin
cg.done_register_allocators;
end;
procedure thlcg2ll.set_regalloc_live_range_direction(dir: TRADirection);
begin
cg.set_regalloc_live_range_direction(dir);
end;
function thlcg2ll.getintregister(list: TAsmList; size: tdef): Tregister;
begin

View File

@ -57,6 +57,12 @@ unit hlcgobj;
{ basic routines }
constructor create;
{# Initialize the register allocators needed for the codegenerator.}
procedure init_register_allocators;virtual;
{# Clean up the register allocators needed for the codegenerator.}
procedure done_register_allocators;virtual;
{# Set whether live_start or live_end should be updated when allocating registers, needed when e.g. generating initcode after the rest of the code. }
procedure set_regalloc_live_range_direction(dir: TRADirection);virtual;
{# Gets a register suitable to do integer operations on.}
function getintregister(list:TAsmList;size:tdef):Tregister;virtual;
{# Gets a register suitable to do integer operations on.}
@ -447,13 +453,26 @@ implementation
begin
end;
procedure thlcgobj.init_register_allocators;
begin
cg.init_register_allocators;
end;
procedure thlcgobj.done_register_allocators;
begin
cg.done_register_allocators;
end;
procedure thlcgobj.set_regalloc_live_range_direction(dir: TRADirection);
begin
cg.set_regalloc_live_range_direction(dir);
end;
function thlcgobj.getintregister(list: TAsmList; size: tdef): Tregister;
begin
result:=cg.getintregister(list,def_cgsize(size));
end;
function thlcgobj.getaddressregister(list: TAsmList; size: tdef): Tregister;
begin
result:=cg.getaddressregister(list);