diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2013-01-06 15:05:40 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2013-01-06 15:05:40 +0000 |
commit | 4d6426cefa69553d4e13911d77979f73ece885a7 (patch) | |
tree | a13ead72441b43e2f60c093f80d56b0cbd1b279c /compiler/arm/cpupara.pas | |
parent | aed970802355a02175b1c0197fedf57c789e5a4d (diff) | |
download | fpc-4d6426cefa69553d4e13911d77979f73ece885a7.tar.gz |
* pass the procdef to getintparaloc instead of only the proccalloption, so
that the type of the parameters can be determined automatically
o added compilerproc declarations for all helpers called in the compiler
via their assembler name, so we can look up the corresponding procdef
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@23325 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/arm/cpupara.pas')
-rw-r--r-- | compiler/arm/cpupara.pas | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/compiler/arm/cpupara.pas b/compiler/arm/cpupara.pas index 1eb224bf79..9fadf988b4 100644 --- a/compiler/arm/cpupara.pas +++ b/compiler/arm/cpupara.pas @@ -38,7 +38,7 @@ unit cpupara; function get_volatile_registers_mm(calloption : tproccalloption):tcpuregisterset;override; function push_addr_param(varspez:tvarspez;def : tdef;calloption : tproccalloption) : boolean;override; function ret_in_param(def : tdef;calloption : tproccalloption) : boolean;override; - procedure getintparaloc(calloption : tproccalloption; nr : longint; def : tdef; var cgpara : tcgpara);override; + procedure getintparaloc(pd : tabstractprocdef; nr : longint; var cgpara : tcgpara);override; function create_paraloc_info(p : tabstractprocdef; side: tcallercallee):longint;override; function create_varargs_paraloc_info(p : tabstractprocdef; varargspara:tvarargsparalist):longint;override; function get_funcretloc(p : tabstractprocdef; side: tcallercallee; forcetempdef: tdef): tcgpara;override; @@ -76,12 +76,14 @@ unit cpupara; end; - procedure tarmparamanager.getintparaloc(calloption : tproccalloption; nr : longint; def : tdef; var cgpara : tcgpara); + procedure tarmparamanager.getintparaloc(pd : tabstractprocdef; nr : longint; var cgpara : tcgpara); var paraloc : pcgparalocation; + def : tdef; begin if nr<1 then internalerror(2002070801); + def:=tparavarsym(pd.paras[nr-1]).vardef; cgpara.reset; cgpara.size:=def_cgsize(def); cgpara.intsize:=tcgsize2size[cgpara.size]; |