* combine.c (expand_field_assignment): Use subreg_lsb().
authorKazu Hirata <kazu@hxi.com>
Thu, 10 Jan 2002 18:30:00 +0000 (18:30 +0000)
committerKazu Hirata <kazu@gcc.gnu.org>
Thu, 10 Jan 2002 18:30:00 +0000 (18:30 +0000)
From-SVN: r48742

gcc/ChangeLog
gcc/combine.c

index 5a5e12e735a77eb250071faa13900b6fbfd0c55f..ffadb4105edcf8d16d94a75e98b4bed3a0363ed9 100644 (file)
@@ -1,3 +1,7 @@
+2002-01-10  Kazu Hirata  <kazu@hxi.com>
+
+       * combine.c (expand_field_assignment): Use subreg_lsb().
+
 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
 
        * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
index 1215a65e9c008df5cd571d82168b3db190ee1bfb..7421a33d40fb9c65f356706a94c3a852c98825e4 100644 (file)
@@ -5685,11 +5685,9 @@ expand_field_assignment (x)
       if (GET_CODE (SET_DEST (x)) == STRICT_LOW_PART
          && GET_CODE (XEXP (SET_DEST (x), 0)) == SUBREG)
        {
-         int byte_offset = SUBREG_BYTE (XEXP (SET_DEST (x), 0));
-
          inner = SUBREG_REG (XEXP (SET_DEST (x), 0));
          len = GET_MODE_BITSIZE (GET_MODE (XEXP (SET_DEST (x), 0)));
-         pos = GEN_INT (BITS_PER_WORD * (byte_offset / UNITS_PER_WORD));
+         pos = GEN_INT (subreg_lsb (XEXP (SET_DEST (x), 0)));
        }
       else if (GET_CODE (SET_DEST (x)) == ZERO_EXTRACT
               && GET_CODE (XEXP (SET_DEST (x), 1)) == CONST_INT)