OSDN Git Service

(try_combine): When splitting an insn, check for the new I2 setting a
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 11 Dec 1996 22:46:34 +0000 (22:46 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 11 Dec 1996 22:46:34 +0000 (22:46 +0000)
SUBREG.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13286 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/combine.c

index 683765f..472767a 100644 (file)
@@ -1845,10 +1845,15 @@ try_combine (i3, i2, i1)
                     || GET_CODE (new_i3_dest) == SUBREG)
                new_i3_dest = XEXP (new_i3_dest, 0);
 
+             while (GET_CODE (new_i2_dest) == ZERO_EXTRACT
+                    || GET_CODE (new_i2_dest) == STRICT_LOW_PART
+                    || GET_CODE (new_i2_dest) == SUBREG)
+               new_i2_dest = XEXP (new_i2_dest, 0);
+
              if (GET_CODE (new_i3_dest) == REG
                  && GET_CODE (new_i2_dest) == REG
                  && REGNO (new_i3_dest) == REGNO (new_i2_dest))
-               reg_n_sets[REGNO (SET_DEST (i2set))]++;
+               reg_n_sets[REGNO (new_i2_dest)]++;
            }
        }