Comments
Patch
===================================================================
@@ -9,5 +9,5 @@
__builtin_unreachable ();
return p ? 1 : 0;
}
-/* { dg-final { scan-assembler-not "%e\[bs\]p" { target { ! *-*-darwin* } } } } */
+/* { dg-final { scan-assembler-not "%e\[bs\]p" } } */
/* { dg-final { scan-assembler-not "\[\\t \]+j" } } */
===================================================================
@@ -73,7 +73,9 @@
Failure to ensure this will lead to a crash in the system libraries
or dynamic loader. */
#undef STACK_BOUNDARY
-#define STACK_BOUNDARY 128
+#define STACK_BOUNDARY \
+ ((profile_flag || (TARGET_64BIT && ix86_abi == MS_ABI)) \
+ ? 128 : BITS_PER_WORD)
#undef MAIN_STACK_BOUNDARY
#define MAIN_STACK_BOUNDARY 128
@@ -85,7 +87,7 @@
it's below the minimum. */
#undef PREFERRED_STACK_BOUNDARY
#define PREFERRED_STACK_BOUNDARY \
- MAX (STACK_BOUNDARY, ix86_preferred_stack_boundary)
+ MAX (128, ix86_preferred_stack_boundary)
/* We want -fPIC by default, unless we're using -static to compile for
the kernel or some such. */
@@ -0,0 +1,7 @@
+/* PR target/36502 */
+/* { dg-do compile { target { *-*-darwin* && ilp32 } } } */
+/* { dg-options "-O -fomit-frame-pointer -fno-pic -S" } */
+int a;
+void f() {a++;}
+/* { dg-final { scan-assembler-not "esp" } } */
+
The attached patch is a backport of the fixes for PR36502, PR42313 and PR44651 for gcc 4.5.2. Bootstrap and regression tested on both i386-apple-darwin10 and x86_64-apple.darwin10. The testresults, showing no regressions, can be found at... http://gcc.gnu.org/ml/gcc-testresults/2010-09/msg00859.html http://gcc.gnu.org/ml/gcc-testresults/2010-09/msg00761.html Okay for gcc-4_5-branch? Jack 2010-09-09 Jack Howarth <howarth@bromo.med.uc.edu> Backport from mainline 2010-09-07 H.J. Lu <hjl.tools@gmail.com> Jack Howarth <howarth@bromo.med.uc.edu> PR target/36502 PR target/42313 PR target/44651 * gcc/config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise. (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in MAX macro. 2010-09-09 Jack Howarth <howarth@bromo.med.uc.edu> Backport from mainline 2010-09-07 Jack Howarth <howarth@bromo.med.uc.edu> PR target/36502 * gcc.target/i386/pr36502.c: New test. PR target/42313 PR target/44651 * gcc.target/i386/builtin-unreachable.c: Don't skip on darwin.