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:
parent
5603a4873d
commit
f099b1c909
|
@ -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>
|
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.
|
* fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
|
||||||
|
|
|
@ -1192,8 +1192,16 @@ static rtx
|
||||||
stack_result (decl)
|
stack_result (decl)
|
||||||
tree 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
|
if (result != 0
|
||||||
&& ! (GET_CODE (result) == REG
|
&& ! (GET_CODE (result) == REG
|
||||||
&& REGNO (result) < FIRST_PSEUDO_REGISTER))
|
&& REGNO (result) < FIRST_PSEUDO_REGISTER))
|
||||||
|
|
Loading…
Reference in New Issue