From c6b3f1f25ff7623592b3bfac00a73030508febfd Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Mon, 3 May 1993 17:16:21 -0700 Subject: [PATCH] (make_extraction): Move BYTES_BIG_ENDIAN != BITS_BIG_ENDIAN offset correction after the offset calculation. From-SVN: r4315 --- gcc/combine.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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, -- 2.30.2