aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-12-11 17:46:34 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1996-12-11 17:46:34 -0500
commitd409668956f44a538314abbee36486e1d199392b (patch)
tree7ecec600591f0b4f4c7ed19446feabac7faf24d9 /gcc
parent0bc8ae6e51d53dde5e675997f00145066f88d8a1 (diff)
downloadgcc-d409668956f44a538314abbee36486e1d199392b.zip
gcc-d409668956f44a538314abbee36486e1d199392b.tar.gz
gcc-d409668956f44a538314abbee36486e1d199392b.tar.bz2
(try_combine): When splitting an insn, check for the new I2 setting a
SUBREG. From-SVN: r13286
Diffstat (limited to 'gcc')
-rw-r--r--gcc/combine.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index 683765f..472767a 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -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)]++;
}
}