From b8f4c7380a78248e3a631c1e895e73700aa9eb78 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Fri, 25 Mar 1994 12:46:42 -0500 Subject: [PATCH] (reload): Fix error in last change; only check against group reloads and check all reloads. From-SVN: r6866 --- gcc/reload1.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/gcc/reload1.c b/gcc/reload1.c index 4bbd43a02aa..4e7a362ee4c 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -1149,12 +1149,21 @@ reload (first, global, dumpfile) 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. */ + we have a nongroup need or a regular need. We have + a nongroup need if this reload conflicts with a + group reload whose class intersects with this reload's + class. */ nongroup_need = 0; if (size == 1) - for (j = i + 1; j < n_reloads; j++) - if (reloads_conflict (i, j) + for (j = 0; j < n_reloads; j++) + if ((CLASS_MAX_NREGS (reload_reg_class[j], + (GET_MODE_SIZE (reload_outmode[i]) + > GET_MODE_SIZE (reload_inmode[i])) + ? reload_outmode[i] + : reload_inmode[i]) + > 1) + && reloads_conflict (i, j) && reg_classes_intersect_p (class, reload_reg_class[j])) { -- 2.30.2