+ live_start and live_end_properties

git-svn-id: trunk@22109 -
This commit is contained in:
florian 2012-08-17 19:35:51 +00:00
parent c2d067940a
commit f9dd5bf5e6

View File

@ -128,7 +128,7 @@ unit rgobj;
by cpu-specific implementations.
--------------------------------------------------------------------}
trgobj=class
trgobj=class
preserved_by_proc : tcpuregisterset;
used_in_proc : tcpuregisterset;
@ -244,8 +244,14 @@ unit rgobj;
procedure assign_colours;
procedure clear_interferences(u:Tsuperregister);
procedure set_live_range_direction(dir: TRADirection);
procedure set_live_start(reg : tsuperregister;t : tai);
function get_live_start(reg : tsuperregister) : tai;
procedure set_live_end(reg : tsuperregister;t : tai);
function get_live_end(reg : tsuperregister) : tai;
public
property live_range_direction: TRADirection read int_live_range_direction write set_live_range_direction;
property live_start[reg : tsuperregister]: tai read get_live_start write set_live_start;
property live_end[reg : tsuperregister]: tai read get_live_end write set_live_end;
end;
const
@ -715,6 +721,30 @@ unit rgobj;
end;
procedure trgobj.set_live_start(reg: tsuperregister; t: tai);
begin
reginfo[reg].live_start:=t;
end;
function trgobj.get_live_start(reg: tsuperregister): tai;
begin
result:=reginfo[reg].live_start;
end;
procedure trgobj.set_live_end(reg: tsuperregister; t: tai);
begin
reginfo[reg].live_end:=t;
end;
function trgobj.get_live_end(reg: tsuperregister): tai;
begin
result:=reginfo[reg].live_end;
end;
procedure trgobj.add_reg_instruction(instr:Tai;r:tregister;aweight:longint);
var
supreg : tsuperregister;
@ -1630,7 +1660,6 @@ unit rgobj;
so:pshifterop;
{$endif arm}
begin
{ Leave when no imaginary registers are used }
if maxreg<=first_imaginary then