expmed.c (store_bit_field): Adjust last change to not consider any word-sized field naturally aligned.

* expmed.c (store_bit_field): Adjust last change to not consider
        any word-sized field naturally aligned.

From-SVN: r36601
This commit is contained in:
Richard Henderson 2000-09-25 00:07:33 -07:00 committed by Richard Henderson
parent 07035c0fc6
commit ea9ea00856
2 changed files with 11 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2000-09-25 Richard Henderson <rth@cygnus.com>
* expmed.c (store_bit_field): Adjust last change to not consider
any word-sized field naturally aligned.
2000-09-24 Richard Henderson <rth@cygnus.com>
* config/alpha/alpha.c (alpha_emit_conditional_branch): Handle

View File

@ -305,12 +305,12 @@ store_bit_field (str_rtx, bitsize, bitnum, fieldmode, value, align, total_size)
memory, any naturally sized, unit aligned field can be done directly. */
if (bitsize == GET_MODE_BITSIZE (fieldmode)
&& (GET_MODE_SIZE (fieldmode) >= UNITS_PER_WORD
|| GET_MODE_SIZE (GET_MODE (op0)) == GET_MODE_SIZE (fieldmode)
|| (GET_CODE (op0) == MEM
&& (! SLOW_UNALIGNED_ACCESS (fieldmode, align)
|| (offset * BITS_PER_UNIT % bitsize == 0
&& align % GET_MODE_BITSIZE (fieldmode) == 0))))
&& (GET_CODE (op0) != MEM
? (GET_MODE_SIZE (fieldmode) >= UNITS_PER_WORD
|| GET_MODE_SIZE (GET_MODE (op0)) == GET_MODE_SIZE (fieldmode))
: (! SLOW_UNALIGNED_ACCESS (fieldmode, align)
|| (offset * BITS_PER_UNIT % bitsize == 0
&& align % GET_MODE_BITSIZE (fieldmode) == 0)))
&& (BYTES_BIG_ENDIAN ? bitpos + bitsize == unit : bitpos == 0))
{
if (GET_MODE (op0) != fieldmode)