diff options
author | Per Bothner <bothner@gcc.gnu.org> | 1994-08-25 17:15:35 -0700 |
---|---|---|
committer | Per Bothner <bothner@gcc.gnu.org> | 1994-08-25 17:15:35 -0700 |
commit | 556a4cb2c9fb6366ade3edc4cebd907b336ed83e (patch) | |
tree | abe21c328156d608fc100bac130ed98513739857 /gcc/expmed.c | |
parent | af3869c1cca932fb4696a49aae03fa8fa032d618 (diff) | |
download | gcc-556a4cb2c9fb6366ade3edc4cebd907b336ed83e.zip gcc-556a4cb2c9fb6366ade3edc4cebd907b336ed83e.tar.gz gcc-556a4cb2c9fb6366ade3edc4cebd907b336ed83e.tar.bz2 |
Always store into multi-word bitfields starting with low addresses.
From-SVN: r7985
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r-- | gcc/expmed.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c index ab685ea..026b650 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -313,12 +313,8 @@ store_bit_field (str_rtx, bitsize, bitnum, fieldmode, value, align, total_size) for (i = 0; i < nwords; i++) { - /* If I is 0, use the low-order word in both field and target; - if I is 1, use the next to lowest word; and so on. */ - int wordnum = (WORDS_BIG_ENDIAN ? nwords - i - 1 : i); - int bit_offset = (WORDS_BIG_ENDIAN - ? MAX (bitsize - (i + 1) * BITS_PER_WORD, 0) - : i * BITS_PER_WORD); + int wordnum = i; + int bit_offset = i * BITS_PER_WORD; store_bit_field (op0, MIN (BITS_PER_WORD, bitsize - i * BITS_PER_WORD), bitnum + bit_offset, word_mode, |