diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2010-09-26 21:24:14 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2010-09-26 21:24:14 +0000 |
commit | 67fdc4128883f8a5fcab97f5ff9c35e511743432 (patch) | |
tree | 076e60927b8362ab7fc6916329ee1c0eebba4943 /compiler/cgutils.pas | |
parent | 902190edb601e383550f659bc60588cecd2c6d2f (diff) | |
download | fpc-67fdc4128883f8a5fcab97f5ff9c35e511743432.tar.gz |
* moved use_fixed_stack from cgutils to a method in paramgr so it can
be used outside the code generator
* renamed tabstractprocdef.requiredargarea into callerargareasize,
and also added calleeargareasize field; added init_paraloc_info(side)
method to init the parameter locations and init those size fields and
replaced all "if not procdef.has_paraloc_info then ..." blocks with
procdef.init_paraloc_info(callersize)"
* moved detection of stack tainting parameters from psub to
symdef/tabstractprocdef
+ added tcallparanode.contains_stack_tainting_call(), which detects
whether a parameter contains a call that makes use of stack paramters
* record for each parameter whether or not any following parameter
contains a call with stack parameters; if not, in case the current
parameter itself is a stack parameter immediately place it in its
final location also for use_fixed_stack platforms rather than
first putting it in a temporary location (part of mantis #17442)
* on use_fixed_stack platforms, always first evaluate parameters
containing a stack tainting call, since those force any preceding
stack parameters of the current call to be stored in a temp location
and copied to the final location afterwards
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@16050 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/cgutils.pas')
-rw-r--r-- | compiler/cgutils.pas | 17 |
1 files changed, 0 insertions, 17 deletions
diff --git a/compiler/cgutils.pas b/compiler/cgutils.pas index 2284af3e74..63aa8aff01 100644 --- a/compiler/cgutils.pas +++ b/compiler/cgutils.pas @@ -148,10 +148,6 @@ unit cgutils; procedure location_copy(var destloc:tlocation; const sourceloc : tlocation); procedure location_swap(var destloc,sourceloc : tlocation); - - { allocate room for parameters on the stack in the entry code? } - function use_fixed_stack: boolean; - { returns r with the given alignment } function setalignment(const r : treference;b : byte) : treference; @@ -248,18 +244,5 @@ uses end; - function use_fixed_stack: boolean; - begin -{$ifdef i386} - result := (target_info.system in [system_i386_darwin,system_x86_64_darwin]); -{$else i386} -{$ifdef cputargethasfixedstack} - result := true; -{$else cputargethasfixedstack} - result := false; -{$endif cputargethasfixedstack} -{$endif i386} - end; - end. |