]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
resource.c (mark_target_live_regs): For unconditional branches...
authorDiego Novillo <dnovillo@cygnus.com>
Tue, 2 Nov 1999 14:41:16 +0000 (14:41 +0000)
committerDiego Novillo <dnovillo@gcc.gnu.org>
Tue, 2 Nov 1999 14:41:16 +0000 (09:41 -0500)
* resource.c (mark_target_live_regs): For unconditional branches,
the resources found at the branch target should be added to the
resources found so far, not intersected.

From-SVN: r30349

gcc/ChangeLog
gcc/resource.c

index d72f92b32c4cf4aa7c48952813070ed22fd09a79..66678f22036881479b35c01f62665ef4bac13f36 100644 (file)
@@ -70,6 +70,12 @@ Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
        * regclass.c (record_reg_classes): In matching case, recompute
        costs since the direction of movement is different.
 
+Sun Oct 31 21:59:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
+
+       * resource.c (mark_target_live_regs): For unconditional branches,
+       the resources found at the branch target should be added to the
+       resources found so far, not intersected.
+
 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
 
        * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
index 1dc830f933f4f8907fa91eb1bcef4b2bea7725a5..b857312d4d0f18a975057b7c7de56aca61cd979f 100644 (file)
@@ -1030,8 +1030,8 @@ mark_target_live_regs (insns, target, res)
 
   /* If we hit an unconditional branch, we have another way of finding out
      what is live: we can see what is live at the branch target and include
-     anything used but not set before the branch.  The only things that are
-     live are those that are live using the above test and the test below.  */
+     anything used but not set before the branch.  We add the live
+     resources found using the test below to those found until now. */
 
   if (jump_insn)
     {
@@ -1055,7 +1055,7 @@ mark_target_live_regs (insns, target, res)
          mark_set_resources (insn, &set, 0, 1);
        }
 
-      AND_HARD_REG_SET (res->regs, new_resources.regs);
+      IOR_HARD_REG_SET (res->regs, new_resources.regs);
     }
 
   if (tinfo != NULL)