aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-05-26 18:58:47 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-05-26 18:58:47 -0400
commitc03c4711734044f4c18b8697918cacc74d9728f0 (patch)
tree6ffa4e1942441714387ec627b1b79074a3d8e395
parent35bb77fd397ff2d2fefd3cfc394270e3d99ed9de (diff)
downloadgcc-c03c4711734044f4c18b8697918cacc74d9728f0.zip
gcc-c03c4711734044f4c18b8697918cacc74d9728f0.tar.gz
gcc-c03c4711734044f4c18b8697918cacc74d9728f0.tar.bz2
(jump_optimize): When looking for an `if' statement that takes two insns to compute a result using a temporary...
(jump_optimize): When looking for an `if' statement that takes two insns to compute a result using a temporary, allow the temporary to be a SUBREG. From-SVN: r7355
-rw-r--r--gcc/jump.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/jump.c b/gcc/jump.c
index c2a1837..834bbce 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -946,7 +946,11 @@ jump_optimize (f, cross_jump, noop_moves, after_regscan)
&& simplejump_p (temp2)
&& JUMP_LABEL (temp2) == JUMP_LABEL (insn)))
&& (temp1 = single_set (temp)) != 0
- && (temp5 = SET_DEST (temp1), GET_CODE (temp5) == REG)
+ && (temp5 = SET_DEST (temp1),
+ (GET_CODE (temp5) == REG
+ || (GET_CODE (temp5) == SUBREG
+ && (temp5 = SUBREG_REG (temp5),
+ GET_CODE (temp5) == REG))))
&& REGNO (temp5) >= FIRST_PSEUDO_REGISTER
&& regno_first_uid[REGNO (temp5)] == INSN_UID (temp)
&& regno_last_uid[REGNO (temp5)] == INSN_UID (temp3)