From: Geoff Keating Date: Thu, 28 Oct 1999 00:24:32 +0000 (+0000) Subject: rs6000.md (movsf): Don't convert a SUBREG of the function return register into a... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=62961522f7b2e524e9266302aff321ef8579fb16;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fc5d4664409..7b90de63efc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Thu Oct 28 10:20:02 1999 Geoffrey Keating + + * 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 * 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 7305436bff6..7d313abcd34 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