Commit c6b3f1f2 by Jim Wilson

(make_extraction): Move BYTES_BIG_ENDIAN != BITS_BIG_ENDIAN offset

correction after the offset calculation.

From-SVN: r4315
parent 50e65854
......@@ -4881,12 +4881,6 @@ make_extraction (mode, inner, pos, pos_rtx, len,
endian in both bits and bytes or little endian in bits and bytes.
If it is mixed, we must adjust. */
#if BYTES_BIG_ENDIAN != BITS_BIG_ENDIAN
if (! spans_byte && is_mode != wanted_mem_mode)
offset = (GET_MODE_SIZE (is_mode)
- GET_MODE_SIZE (wanted_mem_mode) - offset);
#endif
/* If bytes are big endian and we had a paradoxical SUBREG, we must
adjust OFFSET to compensate. */
#if BYTES_BIG_ENDIAN
......@@ -4902,6 +4896,12 @@ make_extraction (mode, inner, pos, pos_rtx, len,
pos %= GET_MODE_BITSIZE (wanted_mem_mode);
}
#if BYTES_BIG_ENDIAN != BITS_BIG_ENDIAN
if (! spans_byte && is_mode != wanted_mem_mode)
offset = (GET_MODE_SIZE (is_mode)
- GET_MODE_SIZE (wanted_mem_mode) - offset);
#endif
if (offset != 0 || inner_mode != wanted_mem_mode)
{
rtx newmem = gen_rtx (MEM, wanted_mem_mode,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment