mirror of git://gcc.gnu.org/git/gcc.git
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:
parent
223bd5493d
commit
ca2636edcd
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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. */
|
||||
|
|
|
|||
Loading…
Reference in New Issue