diff options
author | Paul Brook <paul@codesourcery.com> | 2009-12-22 12:24:32 +0000 |
---|---|---|
committer | Paul Brook <pbrook@gcc.gnu.org> | 2009-12-22 12:24:32 +0000 |
commit | d17c29c35fc100402cbfedb0c663eb8e5ffc4b96 (patch) | |
tree | cd8771b1e0228f70a0a775d3d24200fb3cc66d8a /gcc | |
parent | ac2e5c890aa795612105a0c4d4ab48a57e5c60fd (diff) | |
download | gcc-d17c29c35fc100402cbfedb0c663eb8e5ffc4b96.zip gcc-d17c29c35fc100402cbfedb0c663eb8e5ffc4b96.tar.gz gcc-d17c29c35fc100402cbfedb0c663eb8e5ffc4b96.tar.bz2 |
tm.texi (ARG_POINTER_CFA_OFFSET): Document new default.
2009-12-22 Paul Brook <paul@codesourcery.com>
gcc/
* doc/tm.texi (ARG_POINTER_CFA_OFFSET): Document new default.
* defaults.h (ARG_POINTER_CFA_OFFSET): Add pretend_args_size.
* config/spu/spu.h (ARG_POINTER_CFA_OFFSET): Add pretend_args_size.
From-SVN: r155396
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/spu/spu.h | 3 | ||||
-rw-r--r-- | gcc/defaults.h | 3 | ||||
-rw-r--r-- | gcc/doc/tm.texi | 3 |
4 files changed, 12 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5176a32..ff75266 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-12-22 Paul Brook <paul@codesourcery.com> + + * doc/tm.texi (ARG_POINTER_CFA_OFFSET): Document new default. + * defaults.h (ARG_POINTER_CFA_OFFSET): Add pretend_args_size. + * config/spu/spu.h (ARG_POINTER_CFA_OFFSET): Add pretend_args_size. + 2009-12-21 Brian Hackett <bhackett1024@gmail.com> * plugin.def: Rename pre-genericize event. diff --git a/gcc/config/spu/spu.h b/gcc/config/spu/spu.h index 6d471ce..6d6a306 100644 --- a/gcc/config/spu/spu.h +++ b/gcc/config/spu/spu.h @@ -272,7 +272,8 @@ targetm.resolve_overloaded_builtin = spu_resolve_overloaded_builtin; \ #define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (LINK_REGISTER_REGNUM) -#define ARG_POINTER_CFA_OFFSET(FNDECL) (-STACK_POINTER_OFFSET) +#define ARG_POINTER_CFA_OFFSET(FNDECL) \ + (crtl->args.pretend_args_size - STACK_POINTER_OFFSET) /* Stack Checking */ diff --git a/gcc/defaults.h b/gcc/defaults.h index 0363a46..8ca8896 100644 --- a/gcc/defaults.h +++ b/gcc/defaults.h @@ -1086,7 +1086,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see /* On most machines, the CFA coincides with the first incoming parm. */ #ifndef ARG_POINTER_CFA_OFFSET -#define ARG_POINTER_CFA_OFFSET(FNDECL) FIRST_PARM_OFFSET (FNDECL) +#define ARG_POINTER_CFA_OFFSET(FNDECL) \ + (FIRST_PARM_OFFSET (FNDECL) + crtl->args.pretend_args_size) #endif /* On most machines, we use the CFA as DW_AT_frame_base. */ diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 5616b48..4ae9e2e 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -3340,7 +3340,8 @@ final value should coincide with that calculated by @code{INCOMING_FRAME_SP_OFFSET}. Which is unfortunately not usable during virtual register instantiation. -The default value for this macro is @code{FIRST_PARM_OFFSET (fundecl)}, +The default value for this macro is +@code{FIRST_PARM_OFFSET (fundecl) + crtl->args.pretend_args_size}, which is correct for most machines; in general, the arguments are found immediately before the stack frame. Note that this is not the case on some targets that save registers into the caller's frame, such as SPARC |