+ implemented getintparaloc() for llvm

git-svn-id: trunk@30430 -
This commit is contained in:
Jonas Maebe 2015-04-04 14:29:19 +00:00
parent 61e4a1b811
commit 94aadb23ab

View File

@ -45,6 +45,7 @@ unit llvmpara;
architecture-specific code, or whether we will have to integrate parts
into the various tcpuparamanager classes }
tllvmparamanager = class(tcpuparamanager)
procedure getintparaloc(list: TAsmList; pd: tabstractprocdef; nr: longint; var cgpara: tcgpara); override;
function param_use_paraloc(const cgpara: tcgpara): boolean; override;
procedure createtempparaloc(list: TAsmList; calloption: tproccalloption; parasym: tparavarsym; can_use_final_stack_loc: boolean; var cgpara: TCGPara); override;
function create_paraloc_info(p: tabstractprocdef; side: tcallercallee): longint; override;
@ -66,6 +67,15 @@ unit llvmpara;
{ tllvmparamanager }
procedure tllvmparamanager.getintparaloc(list: TAsmList; pd: tabstractprocdef; nr: longint; var cgpara: tcgpara);
begin
if (nr<1) or (nr>pd.paras.count) then
InternalError(2015040401);
pd.init_paraloc_info(callerside);
createtempparaloc(list,pd.proccalloption,tparavarsym(pd.paras[nr-1]),true,cgpara);
end;
function tllvmparamanager.param_use_paraloc(const cgpara: tcgpara): boolean;
begin
{ we can use the paraloc on the callee side if the SSA property is