diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2012-11-06 10:16:34 +0100 |
---|---|---|
committer | Kaz Kojima <kkojima@gcc.gnu.org> | 2012-11-06 09:16:34 +0000 |
commit | 11e185566b2122be2da3d71878286aeec0c71f10 (patch) | |
tree | ae46f24c4d0df5da48dc73221e22aee42706373c /gcc | |
parent | 3020bfd1c22e6fcfbb06327d4d72b04cefa75164 (diff) | |
download | gcc-11e185566b2122be2da3d71878286aeec0c71f10.zip gcc-11e185566b2122be2da3d71878286aeec0c71f10.tar.gz gcc-11e185566b2122be2da3d71878286aeec0c71f10.tar.bz2 |
re PR target/41993 ([sh] ICE in create_pre_exit, at mode-switching.c:399)
PR target/41993
* mode-switching.c (create_pre_exit): Set return_copy to
last_insn when copy_start is a pseudo reg.
Co-Authored-By: Kaz Kojima <kkojima@gcc.gnu.org>
From-SVN: r193210
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/mode-switching.c | 5 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fff511f..5f9bb44 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2012-11-06 Uros Bizjak <ubizjak@gmail.com> + Kaz Kojima <kkojima@gcc.gnu.org> + + PR target/41993 + * mode-switching.c (create_pre_exit): Set return_copy to + last_insn when copy_start is a pseudo reg. + 2012-11-06 Andrey Turetskiy <andrey.turetskiy@gmail.com> * config/i386/i386.c (bdesc_args): Rename CODE_FOR_avx2_umulhrswv16hi3 to diff --git a/gcc/mode-switching.c b/gcc/mode-switching.c index 2f7455a..386f8d1 100644 --- a/gcc/mode-switching.c +++ b/gcc/mode-switching.c @@ -324,7 +324,10 @@ create_pre_exit (int n_entities, int *entity_map, const int *num_modes) else break; if (copy_start >= FIRST_PSEUDO_REGISTER) - break; + { + last_insn = return_copy; + continue; + } copy_num = hard_regno_nregs[copy_start][GET_MODE (copy_reg)]; |