diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2012-05-30 08:52:36 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2012-05-30 08:52:36 +0000 |
commit | d6a6a07a680458b416d891f264996369dfd2fc12 (patch) | |
tree | 53d15625dc76c77fcaca046c5f6f60de15ec7657 /gcc | |
parent | 667c517b378a6e09c4790aa2111492c9609996ba (diff) | |
download | gcc-d6a6a07a680458b416d891f264996369dfd2fc12.zip gcc-d6a6a07a680458b416d891f264996369dfd2fc12.tar.gz gcc-d6a6a07a680458b416d891f264996369dfd2fc12.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/explow.c | 9 |
2 files changed, 9 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b915e68..0df8c16 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/explow.c b/gcc/explow.c index 5513a12..be8bf3e 100644 --- a/gcc/explow.c +++ b/gcc/explow.c @@ -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 |