diff options
author | Kazu Hirata <kazu@codesourcery.com> | 2007-01-18 19:54:44 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2007-01-18 19:54:44 +0000 |
commit | 576c9028f00d275eb9beb66ab2116383759130bb (patch) | |
tree | f226a49f2943bd53650b7a718323a484610cf83f /gcc/doc/tm.texi | |
parent | dfd050746b226f24b1e4ae35ad06d71ecd77bd04 (diff) | |
download | gcc-576c9028f00d275eb9beb66ab2116383759130bb.zip gcc-576c9028f00d275eb9beb66ab2116383759130bb.tar.gz gcc-576c9028f00d275eb9beb66ab2116383759130bb.tar.bz2 |
200x-xx-xx Kazu Hirata <kazu@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
gcc/
200x-xx-xx Kazu Hirata <kazu@codesourcery.com>
Richard Sandiford <richard@codesourcery.com>
* doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
parallels.
* calls.c (expand_call): If the return value is a PARALLEL,
extract its first member.
* config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
* config/m68k/m68k.c (m68k_output_function_epilogue): Don't
use FUNCTION_EXTRA_EPILOGUE.
(m68k_function_value): Return a PARALLEL if the return value
is of a pointer type.
* config/m68k/netbsd-elf.h (current_function_returns_pointer)
(FUNCTION_EXTRA_EPILOGUE): Remove.
* config/m68k/m68k.md (D0_REG): New constant.
Co-Authored-By: Richard Sandiford <richard@codesourcery.com>
From-SVN: r120929
Diffstat (limited to 'gcc/doc/tm.texi')
-rw-r--r-- | gcc/doc/tm.texi | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index dcf7e02..ad70779 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -4107,7 +4107,12 @@ place regardless of mode.) The value of the expression is usually a @code{reg} RTX for the hard register where the return value is stored. The value can also be a @code{parallel} RTX, if the return value is in multiple places. See @code{FUNCTION_ARG} for an explanation of the -@code{parallel} form. +@code{parallel} form. Note that the callee will populate every +location specified in the @code{parallel}, but if the first element of +the @code{parallel} contains the whole return value, callers will use +that element as the canonical location and ignore the others. The m68k +port uses this type of @code{parallel} to return pointers in both +@samp{%a0} (the canonical location) and @samp{%d0}. If @code{TARGET_PROMOTE_FUNCTION_RETURN} returns true, you must apply the same promotion rules specified in @code{PROMOTE_MODE} if |