This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Autoincrement patches
- To: Michael Hayes <m dot hayes at elec dot canterbury dot ac dot nz>
- Subject: Re: Autoincrement patches
- From: Joern Rennecke <amylaar at cygnus dot co dot uk>
- Date: Sat, 18 Dec 1999 04:40:41 +0000 (GMT)
- CC: Joern Rennecke <amylaar at pasanda dot cygnus dot co dot uk>, gcc-patches at gcc dot gnu dot org
> Joern Rennecke writes:
> > Hmm, I forgot six stars and two ands...
>
> I'm still getting a segfault at line 630 since match = 0xd.
Oops, that last fix was not quite right. Please try this one on top.
*** regmove.c-199912172143 Fri Dec 17 21:40:26 1999
--- regmove.c Sat Dec 18 04:34:23 1999
*************** lookup_pre_modify (regno, class, offset,
*** 624,632 ****
struct rel_use *match;
PUT_CODE (test_addr, PRE_MODIFY);
! for (; *match_first < match_limit; match_first++)
{
! for (match = match_first; match; match = match->next_hash)
{
if (match->next_chain)
continue;
--- 624,632 ----
struct rel_use *match;
PUT_CODE (test_addr, PRE_MODIFY);
! for (; match_first < match_limit; match_first++)
{
! for (match = *match_first; match; match = match->next_hash)
{
if (match->next_chain)
continue;
*************** optimize_related_values_1 (rel_base, lui
*** 1910,1916 ****
if ((! use->next_chain || use->next_chain->insn != use->insn)
&& ! apply_change_group ())
abort ();
! if (addr != reg)
REG_NOTES (use->insn)
= gen_rtx_EXPR_LIST (REG_INC, reg, REG_NOTES (use->insn));
last_use = use;
--- 1910,1916 ----
if ((! use->next_chain || use->next_chain->insn != use->insn)
&& ! apply_change_group ())
abort ();
! if (addr != reg && GET_CODE (addr) != PLUS)
REG_NOTES (use->insn)
= gen_rtx_EXPR_LIST (REG_INC, reg, REG_NOTES (use->insn));
last_use = use;
*************** regmove_optimize (f, nregs, regmove_dump
*** 2995,3001 ****
else if (GET_CODE (src) == SUBREG
&& (GET_MODE_SIZE (GET_MODE (src))
>= GET_MODE_SIZE (GET_MODE (SUBREG_REG (src)))))
! src = SUBREG_REG (src);
if (GET_CODE (src) != REG
|| GET_CODE (dst) != REG
--- 2995,3006 ----
else if (GET_CODE (src) == SUBREG
&& (GET_MODE_SIZE (GET_MODE (src))
>= GET_MODE_SIZE (GET_MODE (SUBREG_REG (src)))))
! {
! src = SUBREG_REG (src);
! /* Unshare the SUBREG. */
! src_subreg = gen_rtx_SUBREG (GET_MODE (src_subreg), src,
! SUBREG_WORD (src_subreg));
! }
if (GET_CODE (src) != REG
|| GET_CODE (dst) != REG