function.c (purge_addressof_1): If trying to take a sub-word integral piece of a floating point mode...

* function.c (purge_addressof_1): If trying to take a sub-word
	integral piece of a floating point mode, put it on the stack.

From-SVN: r22804
This commit is contained in:
David S. Miller 1998-10-04 01:29:21 +00:00 committed by David S. Miller
parent 223bd5493d
commit ca2636edcd
2 changed files with 16 additions and 0 deletions

View File

@ -1,3 +1,8 @@
Sun Oct 4 00:23:00 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
* function.c (purge_addressof_1): If trying to take a sub-word
integral piece of a floating point mode, put it on the stack.
Sat Oct 3 19:01:03 1998 Richard Henderson <rth@cygnus.com>
* alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake.

View File

@ -2881,6 +2881,17 @@ purge_addressof_1 (loc, insn, force, store)
rtx val, seq;
/* We cannot do this if we are trying to pick out
an integral piece, smaller than a word, of a
floating point value. */
if (INTEGRAL_MODE_P (GET_MODE (x))
&& GET_MODE_SIZE (GET_MODE (x)) < UNITS_PER_WORD
&& FLOAT_MODE_P (GET_MODE (sub)))
{
put_addressof_into_stack (XEXP (x, 0));
return;
}
if (store)
{
/* If we can't replace with a register, be afraid. */