diff options
author | Gavin Koch <gavin@cygnus.com> | 1997-12-18 17:31:01 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1997-12-18 10:31:01 -0700 |
commit | efb84aa5565ababb39166bb89e72f2412b1523af (patch) | |
tree | 7e795a3151fa12d4505b9a9345e3621baae1c3df | |
parent | 864b83b9bbc5145cde94d530f3e943301319f4f1 (diff) | |
download | gcc-efb84aa5565ababb39166bb89e72f2412b1523af.zip gcc-efb84aa5565ababb39166bb89e72f2412b1523af.tar.gz gcc-efb84aa5565ababb39166bb89e72f2412b1523af.tar.bz2 |
unroll.c (calculate_giv_inc): Handle constant increment found in a MEM with an appropriate REG_EQUAL note.
* unroll.c (calculate_giv_inc): Handle constant increment found in
a MEM with an appropriate REG_EQUAL note.
From-SVN: r17136
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/unroll.c | 10 |
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 473fb5c..9333c23 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -4,6 +4,9 @@ Thu Dec 18 14:51:12 1997 Jason Merrill <jason@yorick.cygnus.com> Thu Dec 18 14:57:29 1997 Gavin Koch <gavin@cygnus.com> + * unroll.c (calculate_giv_inc): Handle constant increment found in + a MEM with an appropriate REG_EQUAL note. + * calls.c (expand_call): Implement LOAD_ARGS_REVERSED. * dwarf2out.c (dwarf2out_frame_debug): Handle adjustments of the diff --git a/gcc/unroll.c b/gcc/unroll.c index b2879b3..6681ada 100644 --- a/gcc/unroll.c +++ b/gcc/unroll.c @@ -1490,6 +1490,16 @@ calculate_giv_inc (pattern, src_insn, regno) one of the LO_SUM rtx. */ if (GET_CODE (increment) == LO_SUM) increment = XEXP (increment, 1); + + /* Some ports store large constants in memory and add a REG_EQUAL + note to the store insn. */ + else if (GET_CODE (increment) == MEM) + { + rtx note = find_reg_note (src_insn, REG_EQUAL, 0); + if (note) + increment = XEXP (note, 0); + } + else if (GET_CODE (increment) == IOR || GET_CODE (increment) == ASHIFT || GET_CODE (increment) == PLUS) |