explow.c (probe_stack_range): Restore simple control flow and stop again when...
* explow.c (probe_stack_range): Restore simple control flow and stop again when the probe cannot be generated if HAVE_check_stack. From-SVN: r188003
This commit is contained in:
parent
667c517b37
commit
d6a6a07a68
|
@ -1,3 +1,8 @@
|
|||
2012-05-30 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* explow.c (probe_stack_range): Restore simple control flow and stop
|
||||
again when the probe cannot be generated if HAVE_check_stack.
|
||||
|
||||
2012-05-30 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR rtl-optimization/53519
|
||||
|
|
|
@ -1579,12 +1579,11 @@ probe_stack_range (HOST_WIDE_INT first, rtx size)
|
|||
size, first)));
|
||||
emit_library_call (stack_check_libfunc, LCT_NORMAL, VOIDmode, 1, addr,
|
||||
Pmode);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Next see if we have an insn to check the stack. */
|
||||
#ifdef HAVE_check_stack
|
||||
if (HAVE_check_stack)
|
||||
else if (HAVE_check_stack)
|
||||
{
|
||||
struct expand_operand ops[1];
|
||||
rtx addr = memory_address (Pmode,
|
||||
|
@ -1592,10 +1591,10 @@ probe_stack_range (HOST_WIDE_INT first, rtx size)
|
|||
stack_pointer_rtx,
|
||||
plus_constant (Pmode,
|
||||
size, first)));
|
||||
|
||||
bool success;
|
||||
create_input_operand (&ops[0], addr, Pmode);
|
||||
if (maybe_expand_insn (CODE_FOR_check_stack, 1, ops))
|
||||
return;
|
||||
success = maybe_expand_insn (CODE_FOR_check_stack, 1, ops);
|
||||
gcc_assert (success);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue