From: J"orn Rennecke Date: Fri, 5 Mar 1999 13:43:54 +0000 (+0000) Subject: reload1.c (emit_reload_insns): If pseudo that can't be replaced with its equivalent... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d62dab419ae48694fd0395486af7db60c9b2ac87;p=gcc.git reload1.c (emit_reload_insns): If pseudo that can't be replaced with its equivalent constant... * reload1.c (emit_reload_insns): If pseudo that can't be replaced with its equivalent constant, fall back to reload_in. From-SVN: r25604 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7058aba9f41..968ea5ec57a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Fri Mar 5 21:41:07 1999 J"orn Rennecke + + * reload1.c (emit_reload_insns): If pseudo that can't be replaced + with its equivalent constant, fall back to reload_in. + Fri Mar 5 13:20:39 1999 Richard Henderson * Makefile.in: Delete .flow2 debugging files. diff --git a/gcc/reload1.c b/gcc/reload1.c index a9bed7a9b02..97bc9988fa3 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -6815,13 +6815,16 @@ emit_reload_insns (chain) See comments in get_secondary_reload in reload.c. */ /* If it is a pseudo that cannot be replaced with its equivalent MEM, we must fall back to reload_in, which - will have all the necessary substitutions registered. */ + will have all the necessary substitutions registered. + Likewise for a pseudo that can't be replaced with its + equivalent constant. */ if (GET_CODE (oldequiv) == REG && REGNO (oldequiv) >= FIRST_PSEUDO_REGISTER - && reg_equiv_memory_loc[REGNO (oldequiv)] != 0) + && (reg_equiv_memory_loc[REGNO (oldequiv)] != 0 + || reg_equiv_constant[REGNO (oldequiv)] != 0)) { - if (reg_equiv_address[REGNO (oldequiv)] + if (! reg_equiv_mem[REGNO (oldequiv)] || num_not_at_initial_offset) real_oldequiv = reload_in[j]; else @@ -6830,9 +6833,10 @@ emit_reload_insns (chain) if (GET_CODE (old) == REG && REGNO (old) >= FIRST_PSEUDO_REGISTER - && reg_equiv_memory_loc[REGNO (old)] != 0) + && (reg_equiv_memory_loc[REGNO (old)] != 0 + || reg_equiv_constant[REGNO (old)] != 0)) { - if (reg_equiv_address[REGNO (old)] + if (! reg_equiv_mem[REGNO (old)] || num_not_at_initial_offset) real_old = reload_in[j]; else @@ -6938,13 +6942,16 @@ emit_reload_insns (chain) if ((GET_CODE (oldequiv) == REG && REGNO (oldequiv) >= FIRST_PSEUDO_REGISTER - && reg_equiv_memory_loc[REGNO (oldequiv)] != 0) + && (reg_equiv_memory_loc[REGNO (oldequiv)] != 0 + || reg_equiv_constant[REGNO (oldequiv)] != 0)) || (GET_CODE (oldequiv) == SUBREG && GET_CODE (SUBREG_REG (oldequiv)) == REG && (REGNO (SUBREG_REG (oldequiv)) >= FIRST_PSEUDO_REGISTER) - && (reg_equiv_memory_loc - [REGNO (SUBREG_REG (oldequiv))] != 0))) + && ((reg_equiv_memory_loc + [REGNO (SUBREG_REG (oldequiv))] != 0) + || (reg_equiv_constant + [REGNO (SUBREG_REG (oldequiv))] != 0)))) real_oldequiv = reload_in[j]; gen_reload (reloadreg, real_oldequiv, reload_opnum[j], reload_when_needed[j]);