Commit 2bde7ae9 by Richard Sandiford Committed by Richard Sandiford

mode-switching.c (create_pre_exit): Don't search past calls.

gcc/
	* mode-switching.c (create_pre_exit): Don't search past calls.

From-SVN: r127092
parent 58d4783b
2007-07-31 Richard Sandiford <richard@codesourcery.com>
* mode-switching.c (create_pre_exit): Don't search past calls.
2007-07-31 Sandra Loosemore <sandra@codesourcery.com> 2007-07-31 Sandra Loosemore <sandra@codesourcery.com>
* config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test. * config/mips/mips.h (ISA_HAS_SYNCI): Add !TARGET_MIPS16 test.
......
...@@ -245,6 +245,17 @@ create_pre_exit (int n_entities, int *entity_map, const int *num_modes) ...@@ -245,6 +245,17 @@ create_pre_exit (int n_entities, int *entity_map, const int *num_modes)
if (INSN_P (return_copy)) if (INSN_P (return_copy))
{ {
/* When using SJLJ exceptions, the call to the
unregister function is inserted between the
clobber of the return value and the copy.
We do not want to split the block before this
or any other call; if we have not found the
copy yet, the copy must have been deleted. */
if (CALL_P (return_copy))
{
short_block = 1;
break;
}
return_copy_pat = PATTERN (return_copy); return_copy_pat = PATTERN (return_copy);
switch (GET_CODE (return_copy_pat)) switch (GET_CODE (return_copy_pat))
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment