diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2009-09-12 12:21:34 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2009-09-12 12:21:34 +0000 |
commit | 3f90547faad3fca54d8534050642227cb68d73d6 (patch) | |
tree | 31430ff951429394d7489dd53dd277cf63d4f5e4 /compiler/paramgr.pas | |
parent | b373f72b02d2c83eafdb5a5fd5f97ed4a71580fc (diff) | |
download | fpc-3f90547faad3fca54d8534050642227cb68d73d6.tar.gz |
* fixed handling the result value of functions where the result type is
forced to something else by the compiler (internal rtl functions etc),
necessary for the objc branch
* fixed adding all used function result registers to the list of
registers that may need to be saved before a function call
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@13695 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/paramgr.pas')
-rw-r--r-- | compiler/paramgr.pas | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/compiler/paramgr.pas b/compiler/paramgr.pas index be91952a56..d5002783ea 100644 --- a/compiler/paramgr.pas +++ b/compiler/paramgr.pas @@ -29,7 +29,7 @@ unit paramgr; uses cclasses,globtype, - cpubase,cgbase, + cpubase,cgbase,cgutils, parabase, aasmtai,aasmdata, symconst,symtype,symsym,symdef; @@ -96,6 +96,12 @@ unit paramgr; } function create_paraloc_info(p : tabstractprocdef; side: tcallercallee):longint;virtual;abstract; + { Returns the location of the function result if p had def as + function result instead of its actual result. Used if the compiler + forces the function result to something different than the real + result. } + function get_funcretloc(p : tabstractprocdef; side: tcallercallee; def: tdef): tlocation;virtual;abstract; + { This is used to populate the location information on all parameters for the routine when it is being inlined. It returns the size allocated on the stack @@ -124,7 +130,7 @@ implementation uses systems, - cgobj,tgobj,cgutils, + cgobj,tgobj, defutil,verbose; { true if the location in paraloc can be reused as localloc } |