From d17c29c35fc100402cbfedb0c663eb8e5ffc4b96 Mon Sep 17 00:00:00 2001 From: Paul Brook Date: Tue, 22 Dec 2009 12:24:32 +0000 Subject: tm.texi (ARG_POINTER_CFA_OFFSET): Document new default. 2009-12-22 Paul Brook 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/spu/spu.h | 3 ++- gcc/defaults.h | 3 ++- gcc/doc/tm.texi | 3 ++- 4 files changed, 12 insertions(+), 3 deletions(-) (limited to 'gcc') 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 + + * 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 * 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 -- cgit v1.1