diff options
| author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-21 05:57:55 +0000 |
|---|---|---|
| committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-21 05:57:55 +0000 |
| commit | 8d2d4ec8e0be0f215cfc6d88546e55ca608ef367 (patch) | |
| tree | a2c3fb7f2b93b3b69ca5c7d0ec6c6e827461601e | |
| parent | 3771c712f266eafeedb3522cab42585878bb819d (diff) | |
| download | ppe42-gcc-8d2d4ec8e0be0f215cfc6d88546e55ca608ef367.tar.gz ppe42-gcc-8d2d4ec8e0be0f215cfc6d88546e55ca608ef367.zip | |
PR rtl-optimization/17266
* regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87793 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/regmove.c | 7 |
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a610a8ae07b..4e4d19ad394 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-09-21 Eric Botcazou <ebotcazou@libertysurf.fr> + + PR rtl-optimization/17266 + * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn. + 2004-09-21 Uros Bizjak <uros@kss-loka.si> PR rtl-optimization/14851 diff --git a/gcc/regmove.c b/gcc/regmove.c index 587b5767e3c..c08a72058b3 100644 --- a/gcc/regmove.c +++ b/gcc/regmove.c @@ -655,7 +655,7 @@ optimize_reg_copy_3 (rtx insn, rtx dest, rtx src) rtx src_reg = XEXP (src, 0); int src_no = REGNO (src_reg); int dst_no = REGNO (dest); - rtx p, set, subreg; + rtx p, set; enum machine_mode old_mode; if (src_no < FIRST_PSEUDO_REGISTER @@ -703,14 +703,15 @@ optimize_reg_copy_3 (rtx insn, rtx dest, rtx src) /* Now walk forward making additional replacements. We want to be able to undo all the changes if a later substitution fails. */ - subreg = gen_lowpart_SUBREG (old_mode, src_reg); while (p = NEXT_INSN (p), p != insn) { if (! INSN_P (p)) continue; /* Make a tentative change. */ - validate_replace_rtx_group (src_reg, subreg, p); + validate_replace_rtx_group (src_reg, + gen_lowpart_SUBREG (old_mode, src_reg), + p); } validate_replace_rtx_group (src, src_reg, insn); |

