From 11e185566b2122be2da3d71878286aeec0c71f10 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Tue, 6 Nov 2012 10:16:34 +0100 Subject: [PATCH] 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 From-SVN: r193210 --- gcc/ChangeLog | 7 +++++++ gcc/mode-switching.c | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fff511fcb15..5f9bb4461b7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2012-11-06 Uros Bizjak + Kaz Kojima + + 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 * 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 2f7455a033c..386f8d1abe9 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)]; -- 2.30.2