aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/i386/i386.c12
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/i386/sse-10.c1
4 files changed, 23 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 07adcb8..459f392 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 5a4456d..844bb75 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -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)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 6e45f82..7aeb040 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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.
diff --git a/gcc/testsuite/gcc.target/i386/sse-10.c b/gcc/testsuite/gcc.target/i386/sse-10.c
index 1c222df..b5bc8f6 100644
--- a/gcc/testsuite/gcc.target/i386/sse-10.c
+++ b/gcc/testsuite/gcc.target/i386/sse-10.c
@@ -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"