OSDN Git Service

Avoid passing things like NEG into expand_and/expand_binop
authorcrux <crux@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Nov 1999 12:26:29 +0000 (12:26 +0000)
committercrux <crux@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Nov 1999 12:26:29 +0000 (12:26 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@30487 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/jump.c

index 10f4716..1026226 100644 (file)
@@ -1,3 +1,8 @@
+Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
+
+       * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
+       operand as argument to expand_and or expand_binop.
+
 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
 
        * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
index 4c8e977..2020840 100644 (file)
@@ -1453,6 +1453,9 @@ jump_optimize_1 (f, cross_jump, noop_moves, after_regscan, mark_labels_only)
                 5) if (...) x = b; if jumps are even more expensive.  */
 
              if (GET_MODE_CLASS (GET_MODE (temp1)) == MODE_INT
+                 /* We will be passing this as operand into expand_and.  No
+                    good if it's not valid as an operand.  */
+                 && general_operand (temp2, GET_MODE (temp2))
                  && ((GET_CODE (temp3) == CONST_INT)
                      /* Make the latter case look like
                         x = x; if (...) x = 0;  */