(convert_move): When truncating, call force_reg first if
it is something that gen_lowpart won't understand. From-SVN: r5287
This commit is contained in:
parent
054b53fe74
commit
431a6ecab3
@ -870,6 +870,13 @@ convert_move (to, from, unsignedp)
|
|||||||
if (GET_MODE_BITSIZE (from_mode) > BITS_PER_WORD
|
if (GET_MODE_BITSIZE (from_mode) > BITS_PER_WORD
|
||||||
&& GET_MODE_BITSIZE (to_mode) <= BITS_PER_WORD)
|
&& GET_MODE_BITSIZE (to_mode) <= BITS_PER_WORD)
|
||||||
{
|
{
|
||||||
|
if (!((GET_CODE (from) == MEM
|
||||||
|
&& ! MEM_VOLATILE_P (from)
|
||||||
|
&& direct_load[(int) to_mode]
|
||||||
|
&& ! mode_dependent_address_p (XEXP (from, 0)))
|
||||||
|
|| GET_CODE (from) == REG
|
||||||
|
|| GET_CODE (from) == SUBREG))
|
||||||
|
from = force_reg (from_mode, from);
|
||||||
convert_move (to, gen_lowpart (word_mode, from), 0);
|
convert_move (to, gen_lowpart (word_mode, from), 0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user