Redefine STACK_BOUNDARY/PREFERRED_STACK_BOUNDARY for Darwin/x86.

gcc/

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.

gcc/testsuite/

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.
	* gcc/testsuite/gcc.dg/stack-usage-1.c: Use default on i386/Darwin.

From-SVN: r163971
This commit is contained in:
H.J. Lu 2010-09-07 14:18:55 -07:00
parent 4e75177267
commit a0766cdbb9
6 changed files with 34 additions and 8 deletions

View file

@ -1,3 +1,14 @@
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-07 H.J. Lu <hongjiu.lu@intel.com>
* unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.

View file

@ -79,7 +79,9 @@ extern int darwin_emit_branch_islands;
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
@ -91,7 +93,7 @@ extern int darwin_emit_branch_islands;
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. */

View file

@ -1,3 +1,13 @@
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.
* gcc/testsuite/gcc.dg/stack-usage-1.c: Use default on i386/Darwin.
2010-09-07 Mikael Morin <mikael@gcc.gnu.org>
* gfortran.dg/achar_4.f90: Enable bounds checking.

View file

@ -8,11 +8,7 @@
Then check that this is the actual stack usage in the assembly file. */
#if defined(__i386__)
# if defined (__MACH__)
# define SIZE 232
# else
# define SIZE 248
# endif
# define SIZE 248
#elif defined(__x86_64__)
# define SIZE 356
#elif defined (__sparc__)

View file

@ -9,5 +9,5 @@ int h (char *p)
__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" } } */

View file

@ -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" } } */