Bug found, in df_mark_reg I need to iterate until regno + n, not n. The error is at the following hunk:

--- gcc/df-scan.c       2011-02-02 20:08:06 +0000
+++ gcc/df-scan.c       2011-07-24 17:16:46 +0000
@@ -3713,35 +3717,40 @@ df_mark_reg (rtx reg, void *vset)
   if (regno < FIRST_PSEUDO_REGISTER)
     {
       int n = hard_regno_nregs[regno][GET_MODE (reg)];
-      bitmap_set_range (set, regno, n);
+      int i;
+      for (i=regno; i<n; i++)
+       SET_HARD_REG_BIT (*set, i);
     }
   else


Many thanks to monoid from IRC for spotting it! I'll post an updated patch soon.

Thanks, Dimitris

Reply via email to