diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8d11d84a3c3c114e6decd6fe901fdb635b4bb8ce..a3e285dba5f292a8bc139670f91936aaa90d76ff 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2000-04-17  Mark Mitchell  <mark@codesourcery.com>
+
+	* function.c (expand_function_start): Use hard_function_value to
+	compute the RTL to use for DECL_RESULT.
+
 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
 
 	* i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
diff --git a/gcc/function.c b/gcc/function.c
index 4b6f5ff17539f220f889bd06e020de821cd531b9..b502ab41f58ae0a5afaa56d0512924b0beceea1a 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -6182,13 +6182,8 @@ expand_function_start (subr, parms_have_cleanups)
   else
     /* Scalar, returned in a register.  */
     {
-#ifdef FUNCTION_OUTGOING_VALUE
-      DECL_RTL (DECL_RESULT (subr))
-	= FUNCTION_OUTGOING_VALUE (TREE_TYPE (DECL_RESULT (subr)), subr);
-#else
       DECL_RTL (DECL_RESULT (subr))
-	= FUNCTION_VALUE (TREE_TYPE (DECL_RESULT (subr)), subr);
-#endif
+	= 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)