diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 12 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/sse-10.c | 1 |
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" |