]> gcc.gnu.org Git - gcc.git/commitdiff
(simplify_plus_minus): When seeing if we have reduced the number of operands...
authorRichard Kenner <kenner@gcc.gnu.org>
Sun, 14 Mar 1993 01:45:44 +0000 (20:45 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Sun, 14 Mar 1993 01:45:44 +0000 (20:45 -0500)
(simplify_plus_minus): When seeing if we have reduced the number of
operands, ensure we count a CONST result as two operands.

From-SVN: r3729

gcc/cse.c

index 6371998d424c58890d630670a476b221afe89b73..aeb7be50da81ab3dc63d0979310abcb94529fe5f 100644 (file)
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -3929,7 +3929,7 @@ simplify_plus_minus (code, mode, op0, op1)
   int negs[8];
   rtx result, tem;
   int n_ops = 2;
-  int i, j;
+  int i, j, k;
   int first = 1, negate = 0, changed;
 
   bzero (ops, sizeof ops);
@@ -4032,12 +4032,18 @@ simplify_plus_minus (code, mode, op0, op1)
     }
 
   /* Pack all the operands to the lower-numbered entries and give up if
-     we didn't reduce the number of operands we had.  */
-  for (i = 0, j = 0; j < n_ops; j++)
+     we didn't reduce the number of operands we had.  Make sure we
+     count a CONST as two operands.  */
+
+  for (i = 0, j = 0, k = 0; j < n_ops; j++)
     if (ops[j] != 0)
-      ops[i] = ops[j], negs[i++] = negs[j];
+      {
+       ops[i] = ops[j], negs[i++] = negs[j];
+       if (GET_CODE (ops[j]) == CONST)
+         k++;
+      }
 
-  if (i >= n_ops)
+  if (i + k >= n_ops)
     return 0;
 
   n_ops = i;
This page took 0.072169 seconds and 5 git commands to generate.