aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/spu/spu.h3
-rw-r--r--gcc/defaults.h3
-rw-r--r--gcc/doc/tm.texi3
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