diff options
author | Richard Henderson <rth@redhat.com> | 2001-05-23 00:01:43 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2001-05-23 00:01:43 -0700 |
commit | d5bf11434788c415a53f27a7f5fc278920941869 (patch) | |
tree | c46dc0c9b13f201462d48ed91d38580c40a20648 /gcc/function.c | |
parent | 9336389d378d0e0179e3bbc92f786a2a3f3bd6f5 (diff) | |
download | gcc-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.c | 25 |
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. */ |