summaryrefslogtreecommitdiff
path: root/compiler/paramgr.pas
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2009-09-12 12:21:34 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2009-09-12 12:21:34 +0000
commit3f90547faad3fca54d8534050642227cb68d73d6 (patch)
tree31430ff951429394d7489dd53dd277cf63d4f5e4 /compiler/paramgr.pas
parentb373f72b02d2c83eafdb5a5fd5f97ed4a71580fc (diff)
downloadfpc-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.pas10
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 }