rms@WHEATIES.AI.MIT.EDU (Richard Stallman) (10/12/88)
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. */