again when the probe cannot be generated if HAVE_check_stack.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@188004
138bc75d-0d04-0410-961f-
82ee72b054a4
+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
2012-05-30 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/53519
plus_constant (size, first)));
emit_library_call (stack_check_libfunc, LCT_NORMAL, VOIDmode, 1, addr,
Pmode);
plus_constant (size, first)));
emit_library_call (stack_check_libfunc, LCT_NORMAL, VOIDmode, 1, addr,
Pmode);
}
/* Next see if we have an insn to check the stack. */
#ifdef HAVE_check_stack
}
/* Next see if we have an insn to check the stack. */
#ifdef HAVE_check_stack
+ else if (HAVE_check_stack)
{
struct expand_operand ops[1];
rtx addr = memory_address (Pmode,
gen_rtx_fmt_ee (STACK_GROW_OP, Pmode,
stack_pointer_rtx,
plus_constant (size, first)));
{
struct expand_operand ops[1];
rtx addr = memory_address (Pmode,
gen_rtx_fmt_ee (STACK_GROW_OP, Pmode,
stack_pointer_rtx,
plus_constant (size, first)));
create_input_operand (&ops[0], addr, Pmode);
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);