Commit d6a6a07a by Eric Botcazou Committed by Eric Botcazou

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
parent 667c517b
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> 2012-05-30 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/53519 PR rtl-optimization/53519
......
...@@ -1579,12 +1579,11 @@ probe_stack_range (HOST_WIDE_INT first, rtx size) ...@@ -1579,12 +1579,11 @@ probe_stack_range (HOST_WIDE_INT first, rtx size)
size, first))); size, first)));
emit_library_call (stack_check_libfunc, LCT_NORMAL, VOIDmode, 1, addr, emit_library_call (stack_check_libfunc, LCT_NORMAL, VOIDmode, 1, addr,
Pmode); Pmode);
return;
} }
/* Next see if we have an insn to check the stack. */ /* Next see if we have an insn to check the stack. */
#ifdef HAVE_check_stack #ifdef HAVE_check_stack
if (HAVE_check_stack) else if (HAVE_check_stack)
{ {
struct expand_operand ops[1]; struct expand_operand ops[1];
rtx addr = memory_address (Pmode, rtx addr = memory_address (Pmode,
...@@ -1592,10 +1591,10 @@ probe_stack_range (HOST_WIDE_INT first, rtx size) ...@@ -1592,10 +1591,10 @@ probe_stack_range (HOST_WIDE_INT first, rtx size)
stack_pointer_rtx, stack_pointer_rtx,
plus_constant (Pmode, plus_constant (Pmode,
size, first))); size, first)));
bool success;
create_input_operand (&ops[0], addr, Pmode); create_input_operand (&ops[0], addr, Pmode);
if (maybe_expand_insn (CODE_FOR_check_stack, 1, ops)) success = maybe_expand_insn (CODE_FOR_check_stack, 1, ops);
return; gcc_assert (success);
} }
#endif #endif
......
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