]> gcc.gnu.org Git - gcc.git/commitdiff
reload.c (push_reload): When merging reloads...
authorBernd Schmidt <crux@pool.informatik.rwth-aachen.de>
Sun, 25 Oct 1998 12:13:14 +0000 (05:13 -0700)
committerJeff Law <law@gcc.gnu.org>
Sun, 25 Oct 1998 12:13:14 +0000 (05:13 -0700)

        * reload.c (push_reload): When merging reloads, make sure
        that reload_in_reg and reload_in are from the same reload in
        all cases.

From-SVN: r23303

gcc/reload.c

index a7dba557070d82efd51a06e2d6caa4492ad093f5..b6a2ff95916ceee9ecc8e87890dce90a5ad80894 100644 (file)
@@ -1320,6 +1320,7 @@ push_reload (in, out, inloc, outloc, class,
        reload_outmode[i] = outmode;
       if (in != 0)
        {
+         rtx in_reg = inloc ? *inloc : 0;
          /* If we merge reloads for two distinct rtl expressions that
             are identical in content, there might be duplicate address
             reloads.  Remove the extra set now, so that if we later find
@@ -1333,12 +1334,13 @@ push_reload (in, out, inloc, outloc, class,
                {
                  remove_address_replacements (in);
                  in = reload_in[i];
+                 in_reg = reload_in_reg[i];
                }
              else
                remove_address_replacements (reload_in[i]);
            }
          reload_in[i] = in;
-         reload_in_reg[i] = inloc ? *inloc : 0;
+         reload_in_reg[i] = in_reg;
        }
       if (out != 0)
        {
This page took 0.093292 seconds and 5 git commands to generate.