diff options
author | Geoff Keating <geoffk@cygnus.com> | 1999-10-28 00:24:32 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@gcc.gnu.org> | 1999-10-28 00:24:32 +0000 |
commit | 62961522f7b2e524e9266302aff321ef8579fb16 (patch) | |
tree | 1a9da0bc9f9dc40b2dca6da80cf643be81653c74 | |
parent | e218fc41a887ae8f97649ad0ac79400654458f33 (diff) | |
download | gcc-62961522f7b2e524e9266302aff321ef8579fb16.zip gcc-62961522f7b2e524e9266302aff321ef8579fb16.tar.gz gcc-62961522f7b2e524e9266302aff321ef8579fb16.tar.bz2 |
rs6000.md (movsf): Don't convert a SUBREG of the function return register into a plain REG until...
* config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
of the function return register into a plain REG until
after function inlining is done.
From-SVN: r30224
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fc5d466..7b90de6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Thu Oct 28 10:20:02 1999 Geoffrey Keating <geoffk@cygnus.com> + + * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG + of the function return register into a plain REG until + after function inlining is done. + Wed Oct 27 15:21:46 1999 Richard Henderson <rth@cygnus.com> * jump.c (jump_optimize_1): If we did cross-jumping, and diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index 7305436..7d313ab 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -6256,7 +6256,9 @@ reg. So expand it. */ if (GET_CODE (operands[0]) == SUBREG && GET_CODE (SUBREG_REG (operands[0])) == REG - && REGNO (SUBREG_REG (operands[0])) < FIRST_PSEUDO_REGISTER) + && REGNO (SUBREG_REG (operands[0])) < FIRST_PSEUDO_REGISTER + && (! REG_FUNCTION_VALUE_P (SUBREG_REG (operands[0])) + || ! rtx_equal_function_value_matters)) operands[0] = alter_subreg (operands[0]); if (GET_CODE (operands[1]) == SUBREG && GET_CODE (SUBREG_REG (operands[1])) == REG |