aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r--gcc/reload1.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index d4141be5aee..2e7c33df4f9 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -5605,23 +5605,18 @@ choose_reload_regs (struct insn_chain *chain)
and of the desired class. */
if (equiv != 0)
{
- int regs_used = 0;
+ /* APPLE LOCAL begin don't reload unavailable hard regs. PR/16028 */
int bad_for_class = 0;
int max_regno = regno + rld[r].nregs;
for (i = regno; i < max_regno; i++)
- {
- regs_used |= TEST_HARD_REG_BIT (reload_reg_used_at_all,
- i);
bad_for_class |= ! TEST_HARD_REG_BIT (reg_class_contents[(int) rld[r].class],
i);
- }
-
- if ((regs_used
- && ! free_for_value_p (regno, rld[r].mode,
- rld[r].opnum, rld[r].when_needed,
- rld[r].in, rld[r].out, r, 1))
- || bad_for_class)
+ if (bad_for_class
+ || ! free_for_value_p (regno, rld[r].mode,
+ rld[r].opnum, rld[r].when_needed,
+ rld[r].in, rld[r].out, r, 1))
+ /* APPLE LOCAL end don't reload unavailable hard regs. PR/16028 */
equiv = 0;
}