Path: utzoo!telly!ddsw1!mcdchg!rutgers!mailrus!tut.cis.ohio-state.edu!WHEATIES.AI.MIT.EDU!rms From: rms@WHEATIES.AI.MIT.EDU (Richard Stallman) Newsgroups: gnu.gcc.bug Subject: correction Message-ID: <8810111920.AA01541@sugar-bombs.ai.mit.edu> Date: 11 Oct 88 19:20:38 GMT Sender: daemon@tut.cis.ohio-state.edu Distribution: gnu Organization: GNUs Not Usenet Lines: 35 Here is a corrected change for push_reload (reload.c): (out != 0 && MATCHES (reload_out[i], out) && (in == 0 || reload_in[i] == 0 || MATCHES (reload_in[i], in))))) break; /* Reloading a plain reg for input can match a reload to postincrement that reg, since the postincrement's value is the right value. Likewise, it can match a preincrement reload, since we regard the preincrementation as happening before any ref in this insn to that register. */ if (i == n_reloads) for (i = 0; i < n_reloads; i++) if (reload_reg_class[i] == class && reload_strict_low[i] == strict_low && out == 0 && reload_out[i] == 0 && ((GET_CODE (in) == REG && (GET_CODE (reload_in[i]) == POST_INC || GET_CODE (reload_in[i]) == POST_DEC || GET_CODE (reload_in[i]) == PRE_INC || GET_CODE (reload_in[i]) == PRE_DEC) && MATCHES (XEXP (reload_in[i], 0), in)) || (GET_CODE (reload_in[i]) == REG && (GET_CODE (in) == POST_INC || GET_CODE (in) == POST_DEC || GET_CODE (in) == PRE_INC || GET_CODE (in) == PRE_DEC) && MATCHES (XEXP (in, 0), reload_in[i])))) break; if (i == n_reloads) { /* We found no existing reload suitable for re-use. So add an additional reload. */