Revert regression causing changes to store_bit_field_1.
Revert 2011-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> PR middle-end/50325 * expmed.c (store_bit_field_1): Use extract_bit_field on big endian targets if the source cannot be exactly covered by word mode chunks. From-SVN: r181598
This commit is contained in:
parent
7fefb1d1a9
commit
e57a3447f7
2 changed files with 12 additions and 11 deletions
|
@ -1,3 +1,13 @@
|
|||
2011-11-21 David S. Miller <davem@davemloft.net>
|
||||
|
||||
Revert
|
||||
2011-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
|
||||
|
||||
PR middle-end/50325
|
||||
* expmed.c (store_bit_field_1): Use extract_bit_field on big
|
||||
endian targets if the source cannot be exactly covered by word
|
||||
mode chunks.
|
||||
|
||||
2011-11-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR debug/50827
|
||||
|
|
13
gcc/expmed.c
13
gcc/expmed.c
|
@ -557,18 +557,9 @@ store_bit_field_1 (rtx str_rtx, unsigned HOST_WIDE_INT bitsize,
|
|||
0)
|
||||
: (int) i * BITS_PER_WORD);
|
||||
rtx value_word = operand_subword_force (value, wordnum, fieldmode);
|
||||
unsigned HOST_WIDE_INT new_bitsize =
|
||||
MIN (BITS_PER_WORD, bitsize - i * BITS_PER_WORD);
|
||||
|
||||
/* If the remaining chunk doesn't have full wordsize we have
|
||||
to make sure that for big endian machines the higher order
|
||||
bits are used. */
|
||||
if (new_bitsize < BITS_PER_WORD && BYTES_BIG_ENDIAN)
|
||||
value_word = extract_bit_field (value_word, new_bitsize, 0,
|
||||
true, false, NULL_RTX,
|
||||
BLKmode, word_mode);
|
||||
|
||||
if (!store_bit_field_1 (op0, new_bitsize,
|
||||
if (!store_bit_field_1 (op0, MIN (BITS_PER_WORD,
|
||||
bitsize - i * BITS_PER_WORD),
|
||||
bitnum + bit_offset,
|
||||
bitregion_start, bitregion_end,
|
||||
word_mode,
|
||||
|
|
Loading…
Add table
Reference in a new issue