Commit a0766cdb by H.J. Lu

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
parent 4e751772
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> 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
* unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG. * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
......
...@@ -79,7 +79,9 @@ extern int darwin_emit_branch_islands; ...@@ -79,7 +79,9 @@ extern int darwin_emit_branch_islands;
Failure to ensure this will lead to a crash in the system libraries Failure to ensure this will lead to a crash in the system libraries
or dynamic loader. */ or dynamic loader. */
#undef STACK_BOUNDARY #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 #undef MAIN_STACK_BOUNDARY
#define MAIN_STACK_BOUNDARY 128 #define MAIN_STACK_BOUNDARY 128
...@@ -91,7 +93,7 @@ extern int darwin_emit_branch_islands; ...@@ -91,7 +93,7 @@ extern int darwin_emit_branch_islands;
it's below the minimum. */ it's below the minimum. */
#undef PREFERRED_STACK_BOUNDARY #undef PREFERRED_STACK_BOUNDARY
#define 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 /* We want -fPIC by default, unless we're using -static to compile for
the kernel or some such. */ the kernel or some such. */
......
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> 2010-09-07 Mikael Morin <mikael@gcc.gnu.org>
* gfortran.dg/achar_4.f90: Enable bounds checking. * gfortran.dg/achar_4.f90: Enable bounds checking.
......
...@@ -8,11 +8,7 @@ ...@@ -8,11 +8,7 @@
Then check that this is the actual stack usage in the assembly file. */ Then check that this is the actual stack usage in the assembly file. */
#if defined(__i386__) #if defined(__i386__)
# if defined (__MACH__) # define SIZE 248
# define SIZE 232
# else
# define SIZE 248
# endif
#elif defined(__x86_64__) #elif defined(__x86_64__)
# define SIZE 356 # define SIZE 356
#elif defined (__sparc__) #elif defined (__sparc__)
......
...@@ -9,5 +9,5 @@ int h (char *p) ...@@ -9,5 +9,5 @@ int h (char *p)
__builtin_unreachable (); __builtin_unreachable ();
return p ? 1 : 0; 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" } } */ /* { dg-final { scan-assembler-not "\[\\t \]+j" } } */
/* 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" } } */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment