aboutsummaryrefslogtreecommitdiff
path: root/gcc/expmed.c
diff options
context:
space:
mode:
authorPer Bothner <bothner@gcc.gnu.org>1994-08-25 17:15:35 -0700
committerPer Bothner <bothner@gcc.gnu.org>1994-08-25 17:15:35 -0700
commit556a4cb2c9fb6366ade3edc4cebd907b336ed83e (patch)
treeabe21c328156d608fc100bac130ed98513739857 /gcc/expmed.c
parentaf3869c1cca932fb4696a49aae03fa8fa032d618 (diff)
downloadgcc-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.c8
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,