+2001-04-06 Bernd Schmidt <bernds@redhat.com>
+
+ 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.
+
2001-04-04 Bernd Schmidt <bernds@redhat.com>
Fri Nov 5 10:07:25 1999 Nick Clifton <nickc@cygnus.com>
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
static struct cse_reg_info* get_cse_reg_info PROTO((int));
static void free_cse_reg_info PROTO((splay_tree_value));
static void flush_hash_table PROTO((void));
-
-extern int rtx_equal_function_value_matters;
\f
/* Dump the expressions in the equivalence class indicated by CLASSP.
This function is used only for debugging. */
/* For a NOTE_INSN_LIVE note, the original basic block number. */
#define RANGE_LIVE_ORIG_BLOCK(INSN) (XINT (INSN, 1))
\f
+/* Nonzero if we need to distinguish between the return value of this function
+ and the return value of a function called by this function. This helps
+ integrate.c.
+ This is 1 until after the rtl generation pass. */
+extern int rtx_equal_function_value_matters;
+
/* Generally useful functions. */
/* The following functions accept a wide integer argument. Rather than
#define DIR_SEPARATOR '/'
#endif
-extern int rtx_equal_function_value_matters;
-
#if ! (defined (VMS) || defined (OS2))
extern char **environ;
#endif