+2007-11-23 Hans-Peter Nilsson <hp@axis.com>
+
+ * reload.c (find_reloads_address_1) <autoincdec cases>:
+ Call REG_OK_FOR_CONTEXT with the autoincdec code, not
+ outer_code.
+
2007-11-23 Richard Guenther <rguenther@suse.de>
Michael Matz <matz@suse.de>
}
}
- /* If we have a hard register that is ok as an index,
- don't make a reload. If an autoincrement of a nice register
+ /* If we have a hard register that is ok in this incdec context,
+ don't make a reload. If the register isn't nice enough for
+ autoincdec, we can reload it. But, if an autoincrement of a
+ register that we here verified as playing nice, still outside
isn't "valid", it must be that no autoincrement is "valid".
If that is true and something made an autoincrement anyway,
this must be a special context where one is allowed.
if (reg_renumber[regno] >= 0)
regno = reg_renumber[regno];
if (regno >= FIRST_PSEUDO_REGISTER
- || !REG_OK_FOR_CONTEXT (context, regno, mode, outer_code,
+ || !REG_OK_FOR_CONTEXT (context, regno, mode, code,
index_code))
{
int reloadnum;