reg-stack.c (stack_result): Aggregates are not returned in stack registers.

* reg-stack.c (stack_result): Aggregates are not returned in
        stack registers.

From-SVN: r30081
This commit is contained in:
Jeffrey A Law 1999-10-19 08:12:30 +00:00 committed by Jeff Law
parent 5603a4873d
commit f099b1c909
2 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,8 @@
Tue Oct 19 02:03:00 1999 Jeffrey A Law (law@cygnus.com)
* reg-stack.c (stack_result): Aggregates are not returned in
stack registers.
Tue Oct 19 01:26:48 1999 Alasdair Baird <alasdair@wildcat.demon.co.uk>
* fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.

View File

@ -1192,8 +1192,16 @@ static rtx
stack_result (decl)
tree decl;
{
rtx result = DECL_RTL (DECL_RESULT (decl));
rtx result;
/* If the value is supposed to be returned in memory, then clearly
it is not returned in a stack register. */
if (aggregate_value_p (DECL_RESULT (decl)))
return 0;
result = DECL_RTL (DECL_RESULT (decl));
/* ?!? What is this code supposed to do? Can this code actually
trigger if we kick out aggregates above? */
if (result != 0
&& ! (GET_CODE (result) == REG
&& REGNO (result) < FIRST_PSEUDO_REGISTER))