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