* allow overriding tparamanager.is_stack_paraloc() and let it always

return true for the JVM target (it uses the evaluation stack to
    pass all parameters)

git-svn-id: branches/jvmbackend@18324 -
This commit is contained in:
Jonas Maebe 2011-08-20 07:46:17 +00:00
parent a5c70392c1
commit c17d022a87
2 changed files with 8 additions and 1 deletions

View File

@ -44,6 +44,7 @@ interface
function get_funcretloc(p : tabstractprocdef; side: tcallercallee; def: tdef): tcgpara;override;
function param_use_paraloc(const cgpara: tcgpara): boolean; override;
function ret_in_param(def: tdef; calloption: tproccalloption): boolean; override;
function is_stack_paraloc(paraloc: pcgparalocation): boolean;override;
private
procedure create_funcretloc_info(p : tabstractprocdef; side: tcallercallee);
procedure create_paraloc_info_intern(p : tabstractprocdef; side: tcallercallee; paras: tparalist;
@ -128,6 +129,12 @@ implementation
Result:=false;
end;
function TJVMParaManager.is_stack_paraloc(paraloc: pcgparalocation): boolean;
begin
{ all parameters are passed on the evaluation stack }
result:=true;
end;
procedure TJVMParaManager.create_paraloc_info_intern(p : tabstractprocdef; side: tcallercallee;paras:tparalist;
var parasize:longint);

View File

@ -124,7 +124,7 @@ unit paramgr;
}
function create_varargs_paraloc_info(p : tabstractprocdef; varargspara:tvarargsparalist):longint;virtual;abstract;
function is_stack_paraloc(paraloc: pcgparalocation): boolean;
function is_stack_paraloc(paraloc: pcgparalocation): boolean;virtual;
procedure createtempparaloc(list: TAsmList;calloption : tproccalloption;parasym : tparavarsym;can_use_final_stack_loc : boolean;var cgpara:TCGPara);virtual;
procedure duplicatecgparaloc(const orgparaloc: pcgparalocation; intonewparaloc: pcgparalocation);
procedure duplicateparaloc(list: TAsmList;calloption : tproccalloption;parasym : tparavarsym;var cgpara:TCGPara);