aboutsummaryrefslogtreecommitdiff
path: root/gcc/explow.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>1999-11-16 09:43:40 -0800
committerRichard Henderson <rth@gcc.gnu.org>1999-11-16 09:43:40 -0800
commit4dc07bd7c1dae4996da88b9d4114c954e5ace101 (patch)
tree1284fde2a9c3617cfa59b12813b42b4c31d7e35b /gcc/explow.c
parent95a7b5548cdd92fffb080078fcbef56119410ba5 (diff)
downloadgcc-4dc07bd7c1dae4996da88b9d4114c954e5ace101.zip
gcc-4dc07bd7c1dae4996da88b9d4114c954e5ace101.tar.gz
gcc-4dc07bd7c1dae4996da88b9d4114c954e5ace101.tar.bz2
explow.c (hard_function_value): Add outgoing argument.
* explow.c (hard_function_value): Add outgoing argument. * expr.h (hard_function_value): Declare it. * calls.c (expand_call, emit_library_call_value): Update callers. * function.c (aggregate_value_p): Ditto. (diddle_return_value): Must look at the outgoing registers on archs with register windows. From-SVN: r30550
Diffstat (limited to 'gcc/explow.c')
-rw-r--r--gcc/explow.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/gcc/explow.c b/gcc/explow.c
index 857bcc6..437c935 100644
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -1541,14 +1541,24 @@ probe_stack_range (first, size)
in which a scalar value of data type VALTYPE
was returned by a function call to function FUNC.
FUNC is a FUNCTION_DECL node if the precise function is known,
- otherwise 0. */
+ otherwise 0.
+ OUTGOING is 1 if on a machine with register windows this function
+ should return the register in which the function will put its result
+ and 0 otherwise. */
rtx
-hard_function_value (valtype, func)
+hard_function_value (valtype, func, outgoing)
tree valtype;
tree func ATTRIBUTE_UNUSED;
+ int outgoing ATTRIBUTE_UNUSED;
{
- rtx val = FUNCTION_VALUE (valtype, func);
+ rtx val;
+#ifdef FUNCTION_OUTGOING_VALUE
+ if (outgoing)
+ val = FUNCTION_OUTGOING_VALUE (valtype, func);
+ else
+#endif
+ val = FUNCTION_VALUE (valtype, func);
if (GET_CODE (val) == REG
&& GET_MODE (val) == BLKmode)
{