aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaul Brook <paul@codesourcery.com>2009-12-22 12:24:32 +0000
committerPaul Brook <pbrook@gcc.gnu.org>2009-12-22 12:24:32 +0000
commitd17c29c35fc100402cbfedb0c663eb8e5ffc4b96 (patch)
treecd8771b1e0228f70a0a775d3d24200fb3cc66d8a /gcc
parentac2e5c890aa795612105a0c4d4ab48a57e5c60fd (diff)
downloadgcc-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/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