OSDN Git Service

PR target/48723
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 May 2011 07:20:01 +0000 (07:20 +0000)
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 May 2011 07:20:01 +0000 (07:20 +0000)
* config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
for -fstack-check if the size to allocate is negative.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173288 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.c

index 026a90b..043f73a 100644 (file)
@@ -1,3 +1,9 @@
+2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/48723
+       * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
+       for -fstack-check if the size to allocate is negative.
+
 2011-05-02  Lawrence Crowl  <crowl@google.com>
 
        * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
        * system.h (ENUM_BITFIELD): Remove.
 
 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
-           Eric Botcazou <ebotcazou@adacore.com>
+           Eric Botcazou  <ebotcazou@adacore.com>
 
        * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
        for STORE_FLAG_VALUE==-1 case.
index 558eff1..c164c70 100644 (file)
@@ -10619,8 +10619,8 @@ ix86_expand_prologue (void)
     }
 
   /* The stack has already been decremented by the instruction calling us
-     so we need to probe unconditionally to preserve the protection area.  */
-  if (flag_stack_check == STATIC_BUILTIN_STACK_CHECK)
+     so probe if the size is non-negative to preserve the protection area.  */
+  if (allocate >= 0 && flag_stack_check == STATIC_BUILTIN_STACK_CHECK)
     {
       /* We expect the registers to be saved when probes are used.  */
       gcc_assert (int_registers_saved);