diff options
| -rw-r--r-- | gcc/ChangeLog | 17 | ||||
| -rw-r--r-- | gcc/config/i386/i386.c | 68 | ||||
| -rw-r--r-- | gcc/config/i386/i386.h | 22 | ||||
| -rw-r--r-- | gcc/invoke.texi | 23 | 
4 files changed, 59 insertions, 71 deletions
| diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bb502a4..9c23068 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,20 @@ +2001-05-03  Geoff Keating  <geoffk@redhat.com> + +	* invoke.texi (i386 Options): Delete references to -malign-jumps, +	-malign-loops, -malign-functions. +	* i386.c (ix86_align_funcs): Delete. +	(ix86_align_loops): Delete. +	(ix86_align_jumps): Delete. +	(override_options): Mark -malign-* as obsolete.  Emulate their +	behaviour with the -falign-* options.  Default -falign-* from +	the processor table. +	* i386.h (FUNCTION_BOUNDARY): Define to 16; revert Richard Kenner's +	patch of Wed May 2 13:09:36 2001. +	(LOOP_ALIGN): Delete. +	(LOOP_ALIGN_MAX_SKIP): Delete. +	(LABEL_ALIGN_AFTER_BARRIER): Delete. +	(LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Delete. +  2001-05-04  Andreas Jaeger  <aj@suse.de>  	* except.h: Add prototype declaration for diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 9831811..689b3af5 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -532,14 +532,7 @@ int ix86_branch_cost;  const char *ix86_branch_cost_string;  /* Power of two alignment for functions.  */ -int ix86_align_funcs;  const char *ix86_align_funcs_string; - -/* Power of two alignment for loops.  */ -int ix86_align_loops; - -/* Power of two alignment for non-loop jumps.  */ -int ix86_align_jumps;  static void output_pic_addr_const PARAMS ((FILE *, rtx, int));  static void put_condition_code PARAMS ((enum rtx_code, enum machine_mode, @@ -751,40 +744,57 @@ override_options ()     if (TARGET_64BIT)       ix86_regparm = REGPARM_MAX; -  /* Validate -malign-loops= value, or provide default.  */ -  ix86_align_loops = processor_target_table[ix86_cpu].align_loop; +  /* If the user has provided any of the -malign-* options, +     warn and use that value only if -falign-* is not set.   +     Remove this code in GCC 3.2 or later.  */    if (ix86_align_loops_string)      { -      i = atoi (ix86_align_loops_string); -      if (i < 0 || i > MAX_CODE_ALIGN) -	error ("-malign-loops=%d is not between 0 and %d", i, MAX_CODE_ALIGN); -      else -	ix86_align_loops = i; +      warning ("-malign-loops is obsolete, use -falign-loops"); +      if (align_loops == 0) +	{ +	  i = atoi (ix86_align_loops_string); +	  if (i < 0 || i > MAX_CODE_ALIGN) +	    error ("-malign-loops=%d is not between 0 and %d", i, MAX_CODE_ALIGN); +	  else +	    align_loops = 1 << i; +	}      } -  /* Validate -malign-jumps= value, or provide default.  */ -  ix86_align_jumps = processor_target_table[ix86_cpu].align_jump;    if (ix86_align_jumps_string)      { -      i = atoi (ix86_align_jumps_string); -      if (i < 0 || i > MAX_CODE_ALIGN) -	error ("-malign-jumps=%d is not between 0 and %d", i, MAX_CODE_ALIGN); -      else -	ix86_align_jumps = i; +      warning ("-malign-jumps is obsolete, use -falign-jumps"); +      if (align_jumps == 0) +	{ +	  i = atoi (ix86_align_jumps_string); +	  if (i < 0 || i > MAX_CODE_ALIGN) +	    error ("-malign-loops=%d is not between 0 and %d", i, MAX_CODE_ALIGN); +	  else +	    align_jumps = 1 << i; +	}      } -  /* Validate -malign-functions= value, or provide default.  */ -  ix86_align_funcs = processor_target_table[ix86_cpu].align_func;    if (ix86_align_funcs_string)      { -      i = atoi (ix86_align_funcs_string); -      if (i < 0 || i > MAX_CODE_ALIGN) -	error ("-malign-functions=%d is not between 0 and %d", -	       i, MAX_CODE_ALIGN); -      else -	ix86_align_funcs = i; +      warning ("-malign-functions is obsolete, use -falign-functions"); +      if (align_functions == 0) +	{ +	  i = atoi (ix86_align_funcs_string); +	  if (i < 0 || i > MAX_CODE_ALIGN) +	    error ("-malign-loops=%d is not between 0 and %d", i, MAX_CODE_ALIGN); +	  else +	    align_functions = 1 << i; +	}      } +  /* Default align_* from the processor table.  */ +#define abs(n) (n < 0 ? -n : n) +  if (align_loops == 0) +    align_loops = 1 << abs (processor_target_table[ix86_cpu].align_loop); +  if (align_jumps == 0) +    align_jumps = 1 << abs (processor_target_table[ix86_cpu].align_jump); +  if (align_functions == 0) +    align_functions = 1 << abs (processor_target_table[ix86_cpu].align_func); +    /* Validate -mpreferred-stack-boundary= value, or provide default.       The default of 128 bits is for Pentium III's SSE __m128.  */    ix86_preferred_stack_boundary = 128; diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index b6dc9c4..0c0a7cd 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -587,10 +587,7 @@ extern int ix86_arch;  #define PREFERRED_STACK_BOUNDARY ix86_preferred_stack_boundary  /* Allocation boundary for the code of a function. */ -#define FUNCTION_BOUNDARY \ -   ((unsigned int) 1 << ((ix86_align_funcs >= 0				\ -			  ? ix86_align_funcs : -ix86_align_funcs)	\ -			 + 3)) +#define FUNCTION_BOUNDARY 16  /* Alignment of field after `int : 0' in a structure. */ @@ -601,7 +598,7 @@ extern int ix86_arch;     might need to be aligned. No data type wants to be aligned     rounder than this. -   Pentium+ preferrs DFmode values to be alignmed to 64 bit boundary +   Pentium+ preferrs DFmode values to be aligned to 64 bit boundary     and Pentium Pro XFmode values at 128 bit boundaries.  */  #define BIGGEST_ALIGNMENT 128 @@ -670,18 +667,6 @@ extern int ix86_arch;     and give entire struct the alignment of an int.  */  /* Required on the 386 since it doesn't have bitfield insns.  */  #define PCC_BITFIELD_TYPE_MATTERS 1 - -/* Align loop starts for optimal branching.  */ -#define LOOP_ALIGN(LABEL) \ -	(ix86_align_loops < 0 ? -ix86_align_loops : ix86_align_loops) -#define LOOP_ALIGN_MAX_SKIP \ -	(ix86_align_loops < -3 ? (1<<(-ix86_align_loops-1))-1 : 0) - -/* This is how to align an instruction for optimal branching.  */ -#define LABEL_ALIGN_AFTER_BARRIER(LABEL) \ -	(ix86_align_jumps < 0 ? -ix86_align_jumps : ix86_align_jumps) -#define LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP \ -	(ix86_align_jumps < -3 ? (1<<(-ix86_align_jumps-1))-1 : 0)  /* Standard register usage.  */ @@ -3138,9 +3123,6 @@ extern const char *ix86_align_funcs_string;	/* power of two alignment for functi  extern const char *ix86_preferred_stack_boundary_string;/* power of two alignment for stack boundary */  extern const char *ix86_branch_cost_string;	/* values 1-5: see jump.c */  extern int ix86_regparm;			/* ix86_regparm_string as a number */ -extern int ix86_align_loops;			/* power of two alignment for loops */ -extern int ix86_align_jumps;			/* power of two alignment for non-loop jumps */ -extern int ix86_align_funcs;			/* power of two alignment for functions */  extern int ix86_preferred_stack_boundary;	/* preferred stack boundary alignment in bits */  extern int ix86_branch_cost;			/* values 1-5: see jump.c */  extern const char * const hi_reg_name[];	/* names for 16 bit regs */ diff --git a/gcc/invoke.texi b/gcc/invoke.texi index b006ef9..307b03b 100644 --- a/gcc/invoke.texi +++ b/gcc/invoke.texi @@ -470,8 +470,7 @@ in the following sections.  -mintel-syntax -mieee-fp  -mno-fancy-math-387 @gol  -mno-fp-ret-in-387  -msoft-float  -msvr3-shlib @gol  -mno-wide-multiply  -mrtd  -malign-double @gol --malign-jumps=@var{num}  -malign-loops=@var{num} @gol --malign-functions=@var{num} -mpreferred-stack-boundary=@var{num} @gol +-mpreferred-stack-boundary=@var{num} @gol  -mthreads -mno-align-stringops -minline-all-stringops @gol  -mpush-args -maccumulate-outgoing-args -m128bit-long-double @gol  -m96bit-long-double -mregparm=@var{num}} @@ -6865,26 +6864,6 @@ function by using the function attribute @samp{regparm}.  value, including any libraries.  This includes the system libraries and  startup modules. -@item -malign-loops=@var{num} -Align loops to a 2 raised to a @var{num} byte boundary.  If -@samp{-malign-loops} is not specified, the default is 2 unless -gas 2.8 (or later) is being used in which case the default is -to align the loop on a 16 byte boundary if it is less than 8 -bytes away. - -@item -malign-jumps=@var{num} -Align instructions that are only jumped to to a 2 raised to a @var{num} -byte boundary.  If @samp{-malign-jumps} is not specified, the default is -2 if optimizing for a 386, and 4 if optimizing for a 486 unless -gas 2.8 (or later) is being used in which case the default is -to align the instruction on a 16 byte boundary if it is less -than 8 bytes away. - -@item -malign-functions=@var{num} -Align the start of functions to a 2 raised to @var{num} byte boundary. -If @samp{-malign-functions} is not specified, the default is 2 if optimizing -for a 386, and 4 if optimizing for a 486. -  @item -mpreferred-stack-boundary=@var{num}  Attempt to keep the stack boundary aligned to a 2 raised to @var{num}  byte boundary.  If @samp{-mpreferred-stack-boundary} is not specified, | 
