diff options
Diffstat (limited to 'gcc/reload.c')
-rw-r--r-- | gcc/reload.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index 59852ba..06bb3fb 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -3264,17 +3264,18 @@ find_reloads (rtx insn, int replace, int ind_levels, int live_known, win = 1; /* If the address was already reloaded, we win as well. */ - if (GET_CODE (operand) == MEM && address_reloaded[i]) + else if (GET_CODE (operand) == MEM + && address_reloaded[i]) win = 1; /* Likewise if the address will be reloaded because reg_equiv_address is nonzero. For reg_equiv_mem we have to check. */ - if (GET_CODE (operand) == REG - && REGNO (operand) >= FIRST_PSEUDO_REGISTER - && reg_renumber[REGNO (operand)] < 0 - && ((reg_equiv_mem[REGNO (operand)] != 0 - && EXTRA_CONSTRAINT_STR (reg_equiv_mem[REGNO (operand)], c, p)) - || (reg_equiv_address[REGNO (operand)] != 0))) + else if (GET_CODE (operand) == REG + && REGNO (operand) >= FIRST_PSEUDO_REGISTER + && reg_renumber[REGNO (operand)] < 0 + && ((reg_equiv_mem[REGNO (operand)] != 0 + && EXTRA_CONSTRAINT_STR (reg_equiv_mem[REGNO (operand)], c, p)) + || (reg_equiv_address[REGNO (operand)] != 0))) win = 1; /* If we didn't already win, we can reload |