From: Jan Hubicka Date: Thu, 13 Jun 2002 16:08:12 +0000 (+0200) Subject: * reload.c (find_valid_class): Fix thinko in my previous patch. X-Git-Tag: releases/gcc-3.1.1~157 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e45e704f91892e360090057265f4bd0be6903ede;p=thirdparty%2Fgcc.git * reload.c (find_valid_class): Fix thinko in my previous patch. From-SVN: r54587 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 49757db0df6d..934a86463afa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Thu Jun 13 18:02:11 CEST 2002 Jan Hubicka + + * reload.c (find_valid_class): Fix thinko in my previous patch. + 2002-06-13 Hans-Peter Nilsson PR target/6997 diff --git a/gcc/reload.c b/gcc/reload.c index 8c6aece279cb..5c00cce4f2f5 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -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];