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 function return regno instead of pseudo. Skip debug instructions in instruction scan loop. From-SVN: r193480
This commit is contained in:
parent
be22520dc2
commit
ffbbfaba10
@ -1,3 +1,10 @@
|
||||
2012-11-13 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/41993
|
||||
* mode-switching.c (create_pre_exit): Set return_copy to last_insn
|
||||
when copy_start is a function return regno instead of pseudo.
|
||||
Skip debug instructions in instruction scan loop.
|
||||
|
||||
2012-11-13 Andrew Stubbs <ams@codesourcery.com>
|
||||
Ulrich Weigand <ulrich.weigand@linaro.org>
|
||||
|
||||
|
@ -242,7 +242,8 @@ create_pre_exit (int n_entities, int *entity_map, const int *num_modes)
|
||||
int copy_start, copy_num;
|
||||
int j;
|
||||
|
||||
if (INSN_P (return_copy))
|
||||
if (INSN_P (return_copy)
|
||||
&& !DEBUG_INSN_P (return_copy))
|
||||
{
|
||||
/* When using SJLJ exceptions, the call to the
|
||||
unregister function is inserted between the
|
||||
@ -330,7 +331,7 @@ create_pre_exit (int n_entities, int *entity_map, const int *num_modes)
|
||||
short_block = 1;
|
||||
break;
|
||||
}
|
||||
if (copy_start >= FIRST_PSEUDO_REGISTER)
|
||||
if (!targetm.calls.function_value_regno_p (copy_start))
|
||||
{
|
||||
last_insn = return_copy;
|
||||
continue;
|
||||
|
Loading…
Reference in New Issue
Block a user