OSDN Git Service

(distribute_notes, REG_DEAD case): Handle hard
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 4 May 1993 23:54:16 +0000 (23:54 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 4 May 1993 23:54:16 +0000 (23:54 +0000)
registers which partially overlap the destination of the insn.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4327 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/combine.c

index 6293bbc..9e14ea6 100644 (file)
@@ -9773,6 +9773,16 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1)
                        all_used = 0;
                      }
 
+                 /* Check for the case where the register dying partially
+                    overlaps the register set by this insn.  */
+                 if (all_used)
+                   for (i = regno; i < endregno; i++)
+                     if (dead_or_set_regno_p (place, i))
+                         {
+                           all_used = 0;
+                           break;
+                         }
+
                  if (! all_used)
                    {
                      /* Put only REG_DEAD notes for pieces that are