OSDN Git Service

* config/i386/i386.c (override_options): Force
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 4 Mar 2008 12:46:56 +0000 (12:46 +0000)
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 4 Mar 2008 12:46:56 +0000 (12:46 +0000)
-maccumulate-outgoing-args on if TARGET_STACK_PROBE.

testsuite:
* gcc.target/i386/sse-10.c: Don't use
-mno-accumulate-outgoing-args on *-*-mingw* *-*-cygwin*.

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

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/sse-10.c

index 07adcb8..459f392 100644 (file)
@@ -1,3 +1,8 @@
+2008-03-04  Joseph Myers  <joseph@codesourcery.com>
+
+       * config/i386/i386.c (override_options): Force
+       -maccumulate-outgoing-args on if TARGET_STACK_PROBE.
+
 2008-03-04  Jan Hubicka  <jh@suse.cz>
 
        PR c++/35262
index 5a4456d..844bb75 100644 (file)
@@ -2700,6 +2700,18 @@ override_options (void)
       target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS;
     }
 
+  /* If stack probes are required, the space used for large function
+     arguments on the stack must also be probed, so enable
+     -maccumulate-outgoing-args so this happens in the prologue.  */
+  if (TARGET_STACK_PROBE
+      && !(target_flags & MASK_ACCUMULATE_OUTGOING_ARGS))
+    {
+      if (target_flags_explicit & MASK_ACCUMULATE_OUTGOING_ARGS)
+       warning (0, "stack probing requires -maccumulate-outgoing-args "
+                "for correctness");
+      target_flags |= MASK_ACCUMULATE_OUTGOING_ARGS;
+    }
+
   /* For sane SSE instruction set generation we need fcomi instruction.
      It is safe to enable all CMOVE instructions.  */
   if (TARGET_SSE)
index 6e45f82..7aeb040 100644 (file)
@@ -1,3 +1,8 @@
+2008-03-04  Joseph Myers  <joseph@codesourcery.com>
+
+       * gcc.target/i386/sse-10.c: Don't use
+       -mno-accumulate-outgoing-args on *-*-mingw* *-*-cygwin*.
+
 2008-03-04  Uros Bizjak  <ubizjak@gmail.com>
 
        * gfortran.dg/reassoc_1.f90: Cleanup dump files.
index 1c222df..b5bc8f6 100644 (file)
@@ -1,6 +1,7 @@
 /* PR 17930 */
 /* { dg-do run } */
 /* { dg-options "-O1 -msse2 -mfpmath=sse -mno-accumulate-outgoing-args -fno-omit-frame-pointer" } */
+/* { dg-options "-O1 -msse2 -mfpmath=sse -fno-omit-frame-pointer" { target *-*-mingw* *-*-cygwin* } } */
 
 #include "sse2-check.h"