]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* reload.c (find_valid_class): Fix thinko in my previous patch.
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Jun 2002 16:20:02 +0000 (16:20 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Jun 2002 16:20:02 +0000 (16:20 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54589 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/reload.c

index 11368090da739852715fd19aa626e9979fcbef29..8262378b3af5281e42d5c7b5b609438034ae79aa 100644 (file)
@@ -1,3 +1,7 @@
+Thu Jun 13 18:18:17 CEST 2002  Jan Hubicka   <jh@suse.cz>
+
+       * reload.c (find_valid_class):  Fix thinko in my previous patch.
+
 2002-06-13  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): New macro.
index 6560fb3b72a5221ca5fad93af2279fe3bf3951fa..6a18245f941e54e559afdbda442cbb6adc8e28c9 100644 (file)
@@ -677,6 +677,7 @@ find_valid_class (m1, n, dest_regno)
   enum reg_class best_class = NO_REGS;
   enum reg_class dest_class = REGNO_REG_CLASS (dest_regno);
   unsigned int best_size = 0;
+  int cost;
 
   for (class = 1; class < N_REG_CLASSES; class++)
     {
@@ -687,9 +688,13 @@ find_valid_class (m1, n, dest_regno)
            && ! HARD_REGNO_MODE_OK (regno + n, m1))
          bad = 1;
 
-      if (! bad && reg_class_size[class] > best_size
-         && (best_cost < 0
-             || best_cost >= REGISTER_MOVE_COST (m1, class, dest_class)))
+      if (bad)
+       continue;
+      cost = REGISTER_MOVE_COST (m1, class, dest_class);
+
+      if ((reg_class_size[class] > best_size
+          && (best_cost < 0 || best_cost >= cost))
+         || best_cost > cost)
        {
          best_class = class;
          best_size = reg_class_size[class];