aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-03-23 20:10:41 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1994-03-23 20:10:41 -0500
commitee249c090f95217b6e922271b777c39244a22d49 (patch)
treef5a2804f7db7727fc0224123a4ffdac43e1193c0 /gcc
parentec7a1dd2f8bf033e0224298cab212e5ce5037d45 (diff)
downloadgcc-ee249c090f95217b6e922271b777c39244a22d49.zip
gcc-ee249c090f95217b6e922271b777c39244a22d49.tar.gz
gcc-ee249c090f95217b6e922271b777c39244a22d49.tar.bz2
(reload): Fix error in last change; compute MODE before it's used.
From-SVN: r6862
Diffstat (limited to 'gcc')
-rw-r--r--gcc/reload1.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index ec6ceda..4bbd43a 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -1142,11 +1142,17 @@ reload (first, global, dumpfile)
new_basic_block_needs = 1;
}
+
+ mode = reload_inmode[i];
+ if (GET_MODE_SIZE (reload_outmode[i]) > GET_MODE_SIZE (mode))
+ mode = reload_outmode[i];
+ size = CLASS_MAX_NREGS (class, mode);
+
/* If this class doesn't want a group determine if
we have a nongroup need or a regular need. */
nongroup_need = 0;
- if (CLASS_MAX_NREGS (class, mode) == 1)
+ if (size == 1)
for (j = i + 1; j < n_reloads; j++)
if (reloads_conflict (i, j)
&& reg_classes_intersect_p (class,
@@ -1234,10 +1240,6 @@ reload (first, global, dumpfile)
break;
}
- mode = reload_inmode[i];
- if (GET_MODE_SIZE (reload_outmode[i]) > GET_MODE_SIZE (mode))
- mode = reload_outmode[i];
- size = CLASS_MAX_NREGS (class, mode);
if (size > 1)
{
enum machine_mode other_mode, allocate_mode;