(propagate_block): CALL_INSNs don't kill fixed regs.
authorRichard Kenner <kenner@gcc.gnu.org>
Sun, 31 Mar 1996 10:10:01 +0000 (05:10 -0500)
committerRichard Kenner <kenner@gcc.gnu.org>
Sun, 31 Mar 1996 10:10:01 +0000 (05:10 -0500)
From-SVN: r11646

gcc/flow.c

index 7811178fdc9026d3e725e24913210a7a9ac4c3e0..a792e7fbd1d128c57ed6ca3c9626850f60ef5e52 100644 (file)
@@ -1622,12 +1622,13 @@ propagate_block (old, first, last, final, significant, bnum)
                                      final, insn);
 
                  /* Each call clobbers all call-clobbered regs that are not
-                    global.  Note that the function-value reg is a
+                    global or fixed.  Note that the function-value reg is a
                     call-clobbered reg, and mark_set_regs has already had
                     a chance to handle it.  */
 
                  for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
-                   if (call_used_regs[i] && ! global_regs[i])
+                   if (call_used_regs[i] && ! global_regs[i]
+                       && ! fixed_regs[i])
                      dead[i / REGSET_ELT_BITS]
                        |= ((REGSET_ELT_TYPE) 1 << (i % REGSET_ELT_BITS));