mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-14 18:19:54 +02:00
* reduce dependencies of the procinfo unit
git-svn-id: trunk@30871 -
This commit is contained in:
parent
956883b0c7
commit
420309ec59
@ -142,7 +142,7 @@ unit procinfo;
|
||||
|
||||
procedure allocate_push_parasize(size:longint);
|
||||
|
||||
function calc_stackframe_size:longint;virtual;
|
||||
function calc_stackframe_size:longint;virtual;abstract;
|
||||
|
||||
{ Set the address of the first temp, can be used to allocate
|
||||
space for pushing parameters }
|
||||
@ -190,12 +190,8 @@ unit procinfo;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
cutils,systems,
|
||||
tgobj,cgobj,
|
||||
paramgr
|
||||
;
|
||||
|
||||
uses
|
||||
cutils,systems;
|
||||
|
||||
{****************************************************************************
|
||||
TProcInfo
|
||||
@ -277,7 +273,7 @@ implementation
|
||||
function tprocinfo.get_normal_proc: tprocinfo;
|
||||
begin
|
||||
result:=self;
|
||||
while assigned(result.parent)and(result.procdef.parast.symtablelevel>normal_function_level) do
|
||||
while assigned(result.parent) and (result.procdef.parast.symtablelevel>normal_function_level) do
|
||||
result:=result.parent;
|
||||
end;
|
||||
|
||||
@ -301,18 +297,10 @@ implementation
|
||||
maxpushedparasize:=size;
|
||||
end;
|
||||
|
||||
|
||||
function tprocinfo.calc_stackframe_size:longint;
|
||||
begin
|
||||
result:=Align(tg.direction*tg.lasttemp,current_settings.alignment.localalignmin);
|
||||
end;
|
||||
|
||||
|
||||
procedure tprocinfo.set_first_temp_offset;
|
||||
begin
|
||||
end;
|
||||
|
||||
|
||||
procedure tprocinfo.generate_parameter_info;
|
||||
begin
|
||||
{ generate callee paraloc register info, it initialises the size that
|
||||
@ -321,20 +309,17 @@ implementation
|
||||
para_stack_size:=procdef.calleeargareasize;
|
||||
end;
|
||||
|
||||
|
||||
procedure tprocinfo.allocate_got_register(list: TAsmList);
|
||||
begin
|
||||
{ most os/cpu combo's don't use this yet, so not yet abstract }
|
||||
end;
|
||||
|
||||
|
||||
procedure tprocinfo.init_framepointer;
|
||||
begin
|
||||
{ most targets use a constant, but some have a typed constant that must
|
||||
be initialized }
|
||||
end;
|
||||
|
||||
|
||||
procedure tprocinfo.postprocess_code;
|
||||
begin
|
||||
{ no action by default }
|
||||
|
@ -54,7 +54,11 @@ interface
|
||||
final_asmnode : tasmnode;
|
||||
final_used : boolean;
|
||||
dfabuilder : TDFABuilder;
|
||||
|
||||
destructor destroy;override;
|
||||
|
||||
function calc_stackframe_size : longint;override;
|
||||
|
||||
procedure printproc(pass:string);
|
||||
procedure generate_code;
|
||||
procedure generate_code_tree;
|
||||
@ -678,6 +682,12 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
function tcgprocinfo.calc_stackframe_size:longint;
|
||||
begin
|
||||
result:=Align(tg.direction*tg.lasttemp,current_settings.alignment.localalignmin);
|
||||
end;
|
||||
|
||||
|
||||
procedure tcgprocinfo.printproc(pass:string);
|
||||
begin
|
||||
assign(printnodefile,treelogfilename);
|
||||
|
Loading…
Reference in New Issue
Block a user