From: Jim Wilson Date: Tue, 4 May 1993 00:16:21 +0000 (-0700) Subject: (make_extraction): Move BYTES_BIG_ENDIAN != BITS_BIG_ENDIAN offset X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c6b3f1f25ff7623592b3bfac00a73030508febfd;p=gcc.git (make_extraction): Move BYTES_BIG_ENDIAN != BITS_BIG_ENDIAN offset correction after the offset calculation. From-SVN: r4315 --- diff --git a/gcc/combine.c b/gcc/combine.c index ee9c56b02d5..6293bbc376e 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -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,