aboutsummaryrefslogtreecommitdiff
path: root/gcc/function.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2001-05-23 00:01:43 -0700
committerRichard Henderson <rth@gcc.gnu.org>2001-05-23 00:01:43 -0700
commitd5bf11434788c415a53f27a7f5fc278920941869 (patch)
treec46dc0c9b13f201462d48ed91d38580c40a20648 /gcc/function.c
parent9336389d378d0e0179e3bbc92f786a2a3f3bd6f5 (diff)
downloadgcc-d5bf11434788c415a53f27a7f5fc278920941869.zip
gcc-d5bf11434788c415a53f27a7f5fc278920941869.tar.gz
gcc-d5bf11434788c415a53f27a7f5fc278920941869.tar.bz2
function.c (expand_function_start): Always use a pseudo for the function result value.
* function.c (expand_function_start): Always use a pseudo for the function result value. From-SVN: r42486
Diffstat (limited to 'gcc/function.c')
-rw-r--r--gcc/function.c25
1 files changed, 3 insertions, 22 deletions
diff --git a/gcc/function.c b/gcc/function.c
index 54dd308..6aeed3e9 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -6366,13 +6366,10 @@ expand_function_start (subr, parms_have_cleanups)
else if (DECL_MODE (DECL_RESULT (subr)) == VOIDmode)
/* If return mode is void, this decl rtl should not be used. */
SET_DECL_RTL (DECL_RESULT (subr), NULL_RTX);
- else if (parms_have_cleanups
- || current_function_instrument_entry_exit
- || (flag_exceptions && USING_SJLJ_EXCEPTIONS))
+ else
{
- /* If function will end with cleanup code for parms, compute the
- return values into a pseudo reg, which we will copy into the
- true return register after the cleanups are done. */
+ /* Compute the return values into a pseudo reg, which we will copy
+ into the true return register after the cleanups are done. */
/* In order to figure out what mode to use for the pseudo, we
figure out what the mode of the eventual return register will
@@ -6393,22 +6390,6 @@ expand_function_start (subr, parms_have_cleanups)
in case it's a named return value whose address is taken. */
DECL_REGISTER (DECL_RESULT (subr)) = 1;
}
- else
- {
- /* Scalar, returned in a register. */
- SET_DECL_RTL (DECL_RESULT (subr),
- hard_function_value (TREE_TYPE (DECL_RESULT (subr)),
- subr, 1));
-
- /* Mark this reg as the function's return value. */
- if (GET_CODE (DECL_RTL (DECL_RESULT (subr))) == REG)
- {
- REG_FUNCTION_VALUE_P (DECL_RTL (DECL_RESULT (subr))) = 1;
- /* Needed because we may need to move this to memory
- in case it's a named return value whose address is taken. */
- DECL_REGISTER (DECL_RESULT (subr)) = 1;
- }
- }
/* Initialize rtx for parameters and local variables.
In some cases this requires emitting insns. */