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
This commit is contained in:
Paul Brook 2009-12-22 12:24:32 +00:00 committed by Paul Brook
parent ac2e5c890a
commit d17c29c35f
4 changed files with 12 additions and 3 deletions

View file

@ -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.

View file

@ -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 */

View file

@ -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. */

View file

@ -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