I guess the best solution is to change the place you modified, but to use a test that checks for autoinc codes. I'll come up with something.
Try this.
Bernd
* reload.c (find_reloads): Only set INC field if we know we have an autoinc reload. * reload.h (struct reload): Update comment to match.
Index: reload.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/reload.c,v
retrieving revision 1.268.6.2
diff -c -p -r1.268.6.2 reload.c
*** reload.c 7 Apr 2005 11:21:35 -0000 1.268.6.2
--- reload.c 11 Apr 2005 12:33:13 -0000
*************** find_reloads (struct insn_chain *chain,
*** 3203,3216 ****
&& goal_alternative_offmemok[i]
&& MEM_P (recog_data.operand[i]))
{
operand_reloadnum[i]
= push_reload (XEXP (recog_data.operand[i], 0), NULL_RTX,
&XEXP (recog_data.operand[i], 0), (rtx*) 0,
MODE_BASE_REG_CLASS (VOIDmode),
GET_MODE (XEXP (recog_data.operand[i], 0)),
VOIDmode, 0, 0, i, RELOAD_FOR_NONE);
! rld[operand_reloadnum[i]].inc
! = GET_MODE_SIZE (GET_MODE (recog_data.operand[i]));
}
else if (goal_alternative_matched[i] == -1)
{
--- 3203,3221 ----
&& goal_alternative_offmemok[i]
&& MEM_P (recog_data.operand[i]))
{
+ struct reload *rl;
operand_reloadnum[i]
= push_reload (XEXP (recog_data.operand[i], 0), NULL_RTX,
&XEXP (recog_data.operand[i], 0), (rtx*) 0,
MODE_BASE_REG_CLASS (VOIDmode),
GET_MODE (XEXP (recog_data.operand[i], 0)),
VOIDmode, 0, 0, i, RELOAD_FOR_NONE);
! rl = rld + operand_reloadnum[i];
! if (GET_CODE (rl->in_reg) == PRE_INC
! || GET_CODE (rl->in_reg) == PRE_DEC
! || GET_CODE (rl->in_reg) == POST_INC
! || GET_CODE (rl->in_reg) == POST_DEC)
! rl->inc = GET_MODE_SIZE (GET_MODE (recog_data.operand[i]));
}
else if (goal_alternative_matched[i] == -1)
{
