mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-02 17:19:27 +01:00
* 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:
parent
a5c70392c1
commit
c17d022a87
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user