(jump_optimize): When looking for an `if' statement that takes two insns to compute...
authorRichard Kenner <kenner@gcc.gnu.org>
Thu, 26 May 1994 22:58:47 +0000 (18:58 -0400)
committerRichard Kenner <kenner@gcc.gnu.org>
Thu, 26 May 1994 22:58:47 +0000 (18:58 -0400)
(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

gcc/jump.c

index c2a18371b9bcb39b358a9527fecd3c5a79f5be5c..834bbce0f7692210637b9e7d68dcea5d21c12445 100644 (file)
@@ -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)