This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: target_flags


> DJ Delorie <dj at redhat dot com> writes:
> >> Ok, so I am working on a port (rs6000) that is out of target_flags by 
> >> about 4 flags (in my tree).  :-(  What do I do now?
> >
> > I proposed a solution a year ago:
> >
> > http://gcc.gnu.org/ml/gcc-patches/2002-03/msg00833.html
> 
> That looks like, at least, a way forward.  I am willing to approve a
> complete version of that patch, if Mike agrees it solves his problem.

Here is a complete and current version of that patch.  Bootstraped on
Linux.

2003-04-17  DJ Delorie  <dj at redhat dot com>

	* toplev.c (target_options): Add value field.
	(set_target_switch): Handle target options with default
	values.
	* doc/tm.texi: Document how default vs non-default target
	options work.
	* config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
	config/c4x/c4x.h, config/cris/aout.h, config/cris/cris.h,
	config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
	config/frv/frv.h, config/i386/i386.h, config/ia64/ia64.h,
	config/m32r/m32r.h, config/m68hc11/m68hc11.h,
	config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
	config/mips/mips.h, config/mmix/mmix.h, config/pa/pa.h,
	config/rs6000/rs6000.h, config/rs6000/sysv4.h,
	config/s390/s390.h, config/sparc/sparc.h, config/v850/v850.h:
	Add default value initializer to target options.

Index: toplev.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/toplev.c,v
retrieving revision 1.741
diff -p -2 -r1.741 toplev.c
*** toplev.c	12 Apr 2003 02:16:45 -0000	1.741
--- toplev.c	17 Apr 2003 20:08:59 -0000
*************** static const struct
*** 1438,1441 ****
--- 1438,1442 ----
    const char **const variable;
    const char *const description;
+   const char *const value;
  }
  target_options[] = TARGET_OPTIONS;
*************** set_target_switch (name)
*** 4686,4693 ****
        {
  	int len = strlen (target_options[j].prefix);
! 	if (!strncmp (target_options[j].prefix, name, len))
  	  {
! 	    *target_options[j].variable = name + len;
! 	    valid_target_option = 1;
  	  }
        }
--- 4687,4705 ----
        {
  	int len = strlen (target_options[j].prefix);
! 	if (target_options[j].value)
  	  {
! 	    if (!strcmp (target_options[j].prefix, name))
! 	      {
! 		*target_options[j].variable = target_options[j].value;
! 		valid_target_option = 1;
! 	      }
! 	  }
! 	else
! 	  {
! 	    if (!strncmp (target_options[j].prefix, name, len))
! 	      {
! 		*target_options[j].variable = name + len;
! 		valid_target_option = 1;
! 	      }
  	  }
        }
Index: config/alpha/alpha.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/alpha/alpha.h,v
retrieving revision 1.194
diff -p -2 -r1.194 alpha.h
*** config/alpha/alpha.h	14 Mar 2003 17:58:48 -0000	1.194
--- config/alpha/alpha.h	17 Apr 2003 20:08:59 -0000
*************** extern const char *alpha_tls_size_string
*** 351,367 ****
  {							\
    {"cpu=",		&alpha_cpu_string,		\
!    N_("Use features of and schedule given CPU")},	\
    {"tune=",		&alpha_tune_string,		\
!    N_("Schedule given CPU")},				\
    {"fp-rounding-mode=",	&alpha_fprm_string,		\
!    N_("Control the generated fp rounding mode")},	\
    {"fp-trap-mode=",	&alpha_fptm_string,		\
!    N_("Control the IEEE trap mode")},			\
    {"trap-precision=",	&alpha_tp_string,		\
!    N_("Control the precision given to fp exceptions")},	\
    {"memory-latency=",	&alpha_mlat_string,		\
!    N_("Tune expected memory latency")},			\
    {"tls-size=",		&alpha_tls_size_string,		\
!    N_("Specify bit size of immediate TLS offsets")},	\
  }
  
--- 351,367 ----
  {							\
    {"cpu=",		&alpha_cpu_string,		\
!    N_("Use features of and schedule given CPU"), 0},	\
    {"tune=",		&alpha_tune_string,		\
!    N_("Schedule given CPU"), 0},			\
    {"fp-rounding-mode=",	&alpha_fprm_string,		\
!    N_("Control the generated fp rounding mode"), 0},	\
    {"fp-trap-mode=",	&alpha_fptm_string,		\
!    N_("Control the IEEE trap mode"), 0},		\
    {"trap-precision=",	&alpha_tp_string,		\
!    N_("Control the precision given to fp exceptions"), 0},	\
    {"memory-latency=",	&alpha_mlat_string,		\
!    N_("Tune expected memory latency"), 0},		\
    {"tls-size=",		&alpha_tls_size_string,		\
!    N_("Specify bit size of immediate TLS offsets"), 0},	\
  }
  
Index: config/arc/arc.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/arc/arc.h,v
retrieving revision 1.62
diff -p -2 -r1.62 arc.h
*** config/arc/arc.h	17 Apr 2003 01:38:28 -0000	1.62
--- config/arc/arc.h	17 Apr 2003 20:08:59 -0000
*************** extern const char *arc_text_string,*arc_
*** 139,147 ****
  
  #define TARGET_OPTIONS \
! {						\
!   { "cpu=",	&arc_cpu_string		},	\
!   { "text=",	&arc_text_string	},	\
!   { "data=",	&arc_data_string	},	\
!   { "rodata=",	&arc_rodata_string	},	\
  }
  
--- 139,147 ----
  
  #define TARGET_OPTIONS \
! {					\
!   { "cpu=",	&arc_cpu_string, 0},	\
!   { "text=",	&arc_text_string, 0},	\
!   { "data=",	&arc_data_string, 0},	\
!   { "rodata=",	&arc_rodata_string, 0},	\
  }
  
Index: config/avr/avr.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/avr/avr.h,v
retrieving revision 1.76
diff -p -2 -r1.76 avr.h
*** config/avr/avr.h	19 Feb 2003 18:03:09 -0000	1.76
--- config/avr/avr.h	17 Apr 2003 20:08:59 -0000
*************** extern int avr_asm_only_p;
*** 106,111 ****
  
  #define TARGET_OPTIONS {						      \
!  { "init-stack=", &avr_init_stack, N_("Specify the initial stack address") }, \
!  { "mcu=", &avr_mcu_name, N_("Specify the MCU name") } }
  
  #define TARGET_VERSION fprintf (stderr, " (GNU assembler syntax)");
--- 106,111 ----
  
  #define TARGET_OPTIONS {						      \
!  { "init-stack=", &avr_init_stack, N_("Specify the initial stack address"), 0}, \
!  { "mcu=", &avr_mcu_name, N_("Specify the MCU name"), 0} }
  
  #define TARGET_VERSION fprintf (stderr, " (GNU assembler syntax)");
Index: config/c4x/c4x.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/c4x/c4x.h,v
retrieving revision 1.125
diff -p -2 -r1.125 c4x.h
*** config/c4x/c4x.h	17 Apr 2003 05:07:35 -0000	1.125
--- config/c4x/c4x.h	17 Apr 2003 20:08:59 -0000
*************** extern const char *c4x_rpts_cycles_strin
*** 329,335 ****
  #define TARGET_OPTIONS						\
  { {"rpts=", &c4x_rpts_cycles_string,				\
!    N_("Specify maximum number of iterations for RPTS") },	\
    {"cpu=", &c4x_cpu_version_string,				\
!    N_("Select CPU to generate code for") } }
  
  /* Sometimes certain combinations of command options do not make sense
--- 329,335 ----
  #define TARGET_OPTIONS						\
  { {"rpts=", &c4x_rpts_cycles_string,				\
!    N_("Specify maximum number of iterations for RPTS"), 0},	\
    {"cpu=", &c4x_cpu_version_string,				\
!    N_("Select CPU to generate code for"), 0} }
  
  /* Sometimes certain combinations of command options do not make sense
Index: config/cris/aout.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/cris/aout.h,v
retrieving revision 1.10
diff -p -2 -r1.10 aout.h
*** config/cris/aout.h	9 Mar 2003 01:46:26 -0000	1.10
--- config/cris/aout.h	17 Apr 2003 20:08:59 -0000
*************** Boston, MA 02111-1307, USA.  */
*** 113,117 ****
  #define CRIS_SUBTARGET_LONG_OPTIONS \
    {"elinux-stacksize=", &cris_elinux_stacksize_str,			\
!    N_("For elinux, request a specified stack-size for this program")},	\
  
  #undef CRIS_SUBTARGET_VERSION
--- 113,117 ----
  #define CRIS_SUBTARGET_LONG_OPTIONS \
    {"elinux-stacksize=", &cris_elinux_stacksize_str,			\
!    N_("For elinux, request a specified stack-size for this program"), 0},	\
  
  #undef CRIS_SUBTARGET_VERSION
Index: config/cris/cris.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/cris/cris.h,v
retrieving revision 1.49
diff -p -2 -r1.49 cris.h
*** config/cris/cris.h	11 Mar 2003 15:43:25 -0000	1.49
--- config/cris/cris.h	17 Apr 2003 20:09:00 -0000
*************** extern int target_flags;
*** 428,440 ****
  
  #define TARGET_OPTIONS							\
!  {{"cpu=", &cris_cpu_str, ""},						\
    {"arch=", &cris_cpu_str,						\
!    N_("Generate code for the specified chip or CPU version")},		\
    {"tune=", &cris_tune_str,						\
!    N_("Tune alignment for the specified chip or CPU version")},		\
    {"max-stackframe=", &cris_max_stackframe_str,				\
!    N_("Warn when a stackframe is larger than the specified size")},	\
    CRIS_SUBTARGET_LONG_OPTIONS						\
!   {"ax-stackframe=", &cris_max_stackframe_str, ""}}
  
  #define CRIS_SUBTARGET_LONG_OPTIONS
--- 428,440 ----
  
  #define TARGET_OPTIONS							\
!  {{"cpu=", &cris_cpu_str, "", 0},					\
    {"arch=", &cris_cpu_str,						\
!    N_("Generate code for the specified chip or CPU version"), 0},	\
    {"tune=", &cris_tune_str,						\
!    N_("Tune alignment for the specified chip or CPU version"), 0},	\
    {"max-stackframe=", &cris_max_stackframe_str,				\
!    N_("Warn when a stackframe is larger than the specified size"), 0},	\
    CRIS_SUBTARGET_LONG_OPTIONS						\
!   {"ax-stackframe=", &cris_max_stackframe_str, "", 0} }
  
  #define CRIS_SUBTARGET_LONG_OPTIONS
Index: config/d30v/d30v.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/d30v/d30v.h,v
retrieving revision 1.79
diff -p -2 -r1.79 d30v.h
*** config/d30v/d30v.h	15 Apr 2003 20:57:08 -0000	1.79
--- config/d30v/d30v.h	17 Apr 2003 20:09:00 -0000
*************** extern int target_flags;
*** 147,154 ****
  {									\
    {"branch-cost=",  &d30v_branch_cost_string,				\
!      N_("Change the branch costs within the compiler") },		\
  									\
    {"cond-exec=",    &d30v_cond_exec_string,				\
!      N_("Change the threshold for conversion to conditional execution") }, \
  }
  
--- 147,154 ----
  {									\
    {"branch-cost=",  &d30v_branch_cost_string,				\
!      N_("Change the branch costs within the compiler"), 0},		\
  									\
    {"cond-exec=",    &d30v_cond_exec_string,				\
!      N_("Change the threshold for conversion to conditional execution"), 0}, \
  }
  
Index: config/dsp16xx/dsp16xx.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/dsp16xx/dsp16xx.h,v
retrieving revision 1.56
diff -p -2 -r1.56 dsp16xx.h
*** config/dsp16xx/dsp16xx.h	13 Mar 2003 04:13:13 -0000	1.56
--- config/dsp16xx/dsp16xx.h	17 Apr 2003 20:09:00 -0000
*************** extern int target_flags;
*** 270,282 ****
  {								\
    { "text=",	&text_seg_name,				        \
!     N_("Specify alternate name for text section") },            \
    { "data=",	&data_seg_name,				        \
!     N_("Specify alternate name for data section") },            \
    { "bss=",	&bss_seg_name,				        \
!     N_("Specify alternate name for bss section") },             \
    { "const=",   &const_seg_name,                                \
!     N_("Specify alternate name for constant section") },        \
    { "chip=",    &chip_name,                                     \
!     N_("Specify alternate name for dsp16xx chip") },            \
  }
  
--- 270,282 ----
  {								\
    { "text=",	&text_seg_name,				        \
!     N_("Specify alternate name for text section"), 0},          \
    { "data=",	&data_seg_name,				        \
!     N_("Specify alternate name for data section"), 0},          \
    { "bss=",	&bss_seg_name,				        \
!     N_("Specify alternate name for bss section"), 0},           \
    { "const=",   &const_seg_name,                                \
!     N_("Specify alternate name for constant section"), 0},      \
    { "chip=",    &chip_name,                                     \
!     N_("Specify alternate name for dsp16xx chip"), 0},          \
  }
  
Index: config/frv/frv.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/frv/frv.h,v
retrieving revision 1.20
diff -p -2 -r1.20 frv.h
*** config/frv/frv.h	17 Apr 2003 06:50:02 -0000	1.20
--- config/frv/frv.h	17 Apr 2003 20:09:01 -0000
*************** extern int target_flags;
*** 487,497 ****
  
     This declaration is optional.  */
! #define TARGET_OPTIONS							    \
! {									    \
!   { "cpu=",		&frv_cpu_string,	 "Set cpu type" },	    \
!   { "branch-cost=",	&frv_branch_cost_string, "Internal debug switch" }, \
!   { "cond-exec-insns=", &frv_condexec_insns_str, "Internal debug switch" }, \
!   { "cond-exec-temps=", &frv_condexec_temps_str, "Internal debug switch" }, \
!   { "sched-lookahead=", &frv_sched_lookahead_str,"Internal debug switch" }, \
  }
  
--- 487,497 ----
  
     This declaration is optional.  */
! #define TARGET_OPTIONS							      \
! {									      \
!   { "cpu=",		&frv_cpu_string,	 "Set cpu type", 0},	      \
!   { "branch-cost=",	&frv_branch_cost_string, "Internal debug switch", 0}, \
!   { "cond-exec-insns=", &frv_condexec_insns_str, "Internal debug switch", 0}, \
!   { "cond-exec-temps=", &frv_condexec_temps_str, "Internal debug switch", 0}, \
!   { "sched-lookahead=", &frv_sched_lookahead_str,"Internal debug switch", 0}, \
  }
  
Index: config/i386/i386.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.h,v
retrieving revision 1.332
diff -p -2 -r1.332 i386.h
*** config/i386/i386.h	11 Apr 2003 21:27:14 -0000	1.332
--- config/i386/i386.h	17 Apr 2003 20:09:01 -0000
*************** extern int x86_prefetch_sse;
*** 434,465 ****
  #define TARGET_OPTIONS						\
  { { "tune=",		&ix86_tune_string,			\
!     N_("Schedule code for given CPU")},				\
    { "fpmath=",		&ix86_fpmath_string,			\
!     N_("Generate floating point mathematics using given instruction set")},\
    { "arch=",		&ix86_arch_string,			\
!     N_("Generate code for given CPU")},				\
    { "regparm=",		&ix86_regparm_string,			\
!     N_("Number of registers used to pass integer arguments") },	\
    { "align-loops=",	&ix86_align_loops_string,		\
!     N_("Loop code aligned to this power of 2") },		\
    { "align-jumps=",	&ix86_align_jumps_string,		\
!     N_("Jump targets are aligned to this power of 2") },	\
    { "align-functions=",	&ix86_align_funcs_string,		\
!     N_("Function starts are aligned to this power of 2") },	\
    { "preferred-stack-boundary=",				\
      &ix86_preferred_stack_boundary_string,			\
!     N_("Attempt to keep stack aligned to this power of 2") },	\
    { "branch-cost=",	&ix86_branch_cost_string,		\
!     N_("Branches are this expensive (1-5, arbitrary units)") },	\
    { "cmodel=", &ix86_cmodel_string,				\
!     N_("Use given x86-64 code model") },			\
    { "debug-arg", &ix86_debug_arg_string,			\
!     "" /* Undocumented. */ },					\
    { "debug-addr", &ix86_debug_addr_string,			\
!     "" /* Undocumented. */ },					\
    { "asm=", &ix86_asm_string,					\
!     N_("Use given assembler dialect") },			\
    { "tls-dialect=", &ix86_tls_dialect_string,			\
!     N_("Use given thread-local storage dialect") },		\
    SUBTARGET_OPTIONS						\
  }
--- 434,465 ----
  #define TARGET_OPTIONS						\
  { { "tune=",		&ix86_tune_string,			\
!     N_("Schedule code for given CPU"), 0},			\
    { "fpmath=",		&ix86_fpmath_string,			\
!     N_("Generate floating point mathematics using given instruction set"), 0},\
    { "arch=",		&ix86_arch_string,			\
!     N_("Generate code for given CPU"), 0},			\
    { "regparm=",		&ix86_regparm_string,			\
!     N_("Number of registers used to pass integer arguments"), 0},\
    { "align-loops=",	&ix86_align_loops_string,		\
!     N_("Loop code aligned to this power of 2"), 0},		\
    { "align-jumps=",	&ix86_align_jumps_string,		\
!     N_("Jump targets are aligned to this power of 2"), 0},	\
    { "align-functions=",	&ix86_align_funcs_string,		\
!     N_("Function starts are aligned to this power of 2"), 0},	\
    { "preferred-stack-boundary=",				\
      &ix86_preferred_stack_boundary_string,			\
!     N_("Attempt to keep stack aligned to this power of 2"), 0},	\
    { "branch-cost=",	&ix86_branch_cost_string,		\
!     N_("Branches are this expensive (1-5, arbitrary units)"), 0},\
    { "cmodel=", &ix86_cmodel_string,				\
!     N_("Use given x86-64 code model"), 0},			\
    { "debug-arg", &ix86_debug_arg_string,			\
!     "" /* Undocumented. */, 0},					\
    { "debug-addr", &ix86_debug_addr_string,			\
!     "" /* Undocumented. */, 0},					\
    { "asm=", &ix86_asm_string,					\
!     N_("Use given assembler dialect"), 0},			\
    { "tls-dialect=", &ix86_tls_dialect_string,			\
!     N_("Use given thread-local storage dialect"), 0},		\
    SUBTARGET_OPTIONS						\
  }
Index: config/ia64/ia64.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/ia64/ia64.h,v
retrieving revision 1.148
diff -p -2 -r1.148 ia64.h
*** config/ia64/ia64.h	16 Apr 2003 19:53:13 -0000	1.148
--- config/ia64/ia64.h	17 Apr 2003 20:09:01 -0000
*************** extern const char *ia64_tune_string;
*** 239,247 ****
  {									\
    { "fixed-range=", 	&ia64_fixed_range_string,			\
!       N_("Specify range of registers to make fixed")},			\
    { "tls-size=",	&ia64_tls_size_string,				\
!       N_("Specify bit size of immediate TLS offsets")},			\
    { "tune=",		&ia64_tune_string,				\
!       N_("Schedule code for given CPU")},				\
  }
  
--- 239,247 ----
  {									\
    { "fixed-range=", 	&ia64_fixed_range_string,			\
!       N_("Specify range of registers to make fixed"), 0},		\
    { "tls-size=",	&ia64_tls_size_string,				\
!       N_("Specify bit size of immediate TLS offsets"), 0},		\
    { "tune=",		&ia64_tune_string,				\
!       N_("Schedule code for given CPU"), 0},				\
  }
  
Index: config/m32r/m32r.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m32r/m32r.h,v
retrieving revision 1.80
diff -p -2 -r1.80 m32r.h
*** config/m32r/m32r.h	17 Apr 2003 08:49:53 -0000	1.80
--- config/m32r/m32r.h	17 Apr 2003 20:09:02 -0000
*************** extern const char * m32r_sdata_string;
*** 270,276 ****
  {									\
    { "model=", & m32r_model_string,					\
!     N_("Code size: small, medium or large") },				\
    { "sdata=", & m32r_sdata_string,					\
!     N_("Small data area: none, sdata, use") }				\
    SUBTARGET_OPTIONS							\
  }
--- 270,276 ----
  {									\
    { "model=", & m32r_model_string,					\
!     N_("Code size: small, medium or large"), 0},			\
    { "sdata=", & m32r_sdata_string,					\
!     N_("Small data area: none, sdata, use"), 0}				\
    SUBTARGET_OPTIONS							\
  }
Index: config/m68hc11/m68hc11.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m68hc11/m68hc11.h,v
retrieving revision 1.71
diff -p -2 -r1.71 m68hc11.h
*** config/m68hc11/m68hc11.h	12 Apr 2003 21:52:33 -0000	1.71
--- config/m68hc11/m68hc11.h	17 Apr 2003 20:09:02 -0000
*************** extern short *reg_renumber;	/* def in lo
*** 219,225 ****
  #define TARGET_OPTIONS							\
  { { "reg-alloc=",	&m68hc11_reg_alloc_order,                       \
!     N_("Specify the register allocation order")},			\
    { "soft-reg-count=",	&m68hc11_soft_reg_count,                        \
!     N_("Indicate the number of soft registers available") },		\
    SUBTARGET_OPTIONS							\
  }
--- 219,225 ----
  #define TARGET_OPTIONS							\
  { { "reg-alloc=",	&m68hc11_reg_alloc_order,                       \
!     N_("Specify the register allocation order"), 0},			\
    { "soft-reg-count=",	&m68hc11_soft_reg_count,                        \
!     N_("Indicate the number of soft registers available"), 0},		\
    SUBTARGET_OPTIONS							\
  }
Index: config/m68k/m68k.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m68k/m68k.h,v
retrieving revision 1.83
diff -p -2 -r1.83 m68k.h
*** config/m68k/m68k.h	28 Jan 2003 04:46:29 -0000	1.83
--- config/m68k/m68k.h	17 Apr 2003 20:09:02 -0000
*************** extern int target_flags;
*** 261,269 ****
  #define TARGET_OPTIONS							\
  { { "align-loops=",	&m68k_align_loops_string,			\
!     N_("Loop code aligned to this power of 2") },			\
    { "align-jumps=",	&m68k_align_jumps_string,			\
!     N_("Jump targets are aligned to this power of 2") },		\
    { "align-functions=",	&m68k_align_funcs_string,			\
!     N_("Function starts are aligned to this power of 2") },		\
    SUBTARGET_OPTIONS							\
  }
--- 261,269 ----
  #define TARGET_OPTIONS							\
  { { "align-loops=",	&m68k_align_loops_string,			\
!     N_("Loop code aligned to this power of 2"), 0},			\
    { "align-jumps=",	&m68k_align_jumps_string,			\
!     N_("Jump targets are aligned to this power of 2"), 0},		\
    { "align-functions=",	&m68k_align_funcs_string,			\
!     N_("Function starts are aligned to this power of 2"), 0},		\
    SUBTARGET_OPTIONS							\
  }
Index: config/m88k/m88k.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m88k/m88k.h,v
retrieving revision 1.76
diff -p -2 -r1.76 m88k.h
*** config/m88k/m88k.h	28 Jan 2003 18:08:51 -0000	1.76
--- config/m88k/m88k.h	17 Apr 2003 20:09:03 -0000
*************** extern int flag_pic;				/* -fpic */
*** 250,255 ****
  /* Macro to define table for command options with values.  */
  
! #define TARGET_OPTIONS { { "short-data-", &m88k_short_data }, \
! 			 { "version-", &m88k_version } }
  
  /* Do any checking or such that is needed after processing the -m switches.  */
--- 250,255 ----
  /* Macro to define table for command options with values.  */
  
! #define TARGET_OPTIONS { { "short-data-", &m88k_short_data, 0}, \
! 			 { "version-", &m88k_version, 0} }
  
  /* Do any checking or such that is needed after processing the -m switches.  */
Index: config/mcore/mcore.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mcore/mcore.h,v
retrieving revision 1.46
diff -p -2 -r1.46 mcore.h
*** config/mcore/mcore.h	19 Mar 2003 10:32:46 -0000	1.46
--- config/mcore/mcore.h	17 Apr 2003 20:09:03 -0000
*************** extern const char * mcore_stack_incremen
*** 177,181 ****
  {									\
    {"stack-increment=", & mcore_stack_increment_string,			\
!      N_("Maximum amount for a single stack increment operation")}	\
  }
  
--- 177,181 ----
  {									\
    {"stack-increment=", & mcore_stack_increment_string,			\
!      N_("Maximum amount for a single stack increment operation"), 0}	\
  }
  
Index: config/mips/mips.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mips/mips.h,v
retrieving revision 1.243
diff -p -2 -r1.243 mips.h
*** config/mips/mips.h	15 Apr 2003 20:57:11 -0000	1.243
--- config/mips/mips.h	17 Apr 2003 20:09:03 -0000
*************** extern void		sbss_section PARAMS ((void)
*** 757,775 ****
    SUBTARGET_TARGET_OPTIONS						\
    { "tune=",    &mips_tune_string,			                \
!       N_("Specify CPU for scheduling purposes")},                       \
    { "arch=",    &mips_arch_string,                                      \
!       N_("Specify CPU for code generation purposes")},                  \
    { "abi=", &mips_abi_string,						\
!       N_("Specify an ABI")},						\
    { "ips",	&mips_isa_string,					\
!       N_("Specify a Standard MIPS ISA")},				\
    { "entry",	&mips_entry_string,					\
!       N_("Use mips16 entry/exit psuedo ops")},				\
    { "no-mips16", &mips_no_mips16_string,				\
!       N_("Don't use MIPS16 instructions")},				\
    { "no-flush-func", &mips_cache_flush_func,				\
!       N_("Don't call any cache flush functions")},			\
    { "flush-func=", &mips_cache_flush_func,				\
!       N_("Specify cache flush function")},				\
  }
  
--- 757,775 ----
    SUBTARGET_TARGET_OPTIONS						\
    { "tune=",    &mips_tune_string,			                \
!       N_("Specify CPU for scheduling purposes"), 0},                    \
    { "arch=",    &mips_arch_string,                                      \
!       N_("Specify CPU for code generation purposes"), 0},               \
    { "abi=", &mips_abi_string,						\
!       N_("Specify an ABI"), 0},						\
    { "ips",	&mips_isa_string,					\
!       N_("Specify a Standard MIPS ISA"), 0},				\
    { "entry",	&mips_entry_string,					\
!       N_("Use mips16 entry/exit psuedo ops"), 0},			\
    { "no-mips16", &mips_no_mips16_string,				\
!       N_("Don't use MIPS16 instructions"), 0},				\
    { "no-flush-func", &mips_cache_flush_func,				\
!       N_("Don't call any cache flush functions"), 0},			\
    { "flush-func=", &mips_cache_flush_func,				\
!       N_("Specify cache flush function"), 0},				\
  }
  
Index: config/mmix/mmix.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mmix/mmix.h,v
retrieving revision 1.50
diff -p -2 -r1.50 mmix.h
*** config/mmix/mmix.h	28 Jan 2003 18:08:53 -0000	1.50
--- config/mmix/mmix.h	17 Apr 2003 20:09:03 -0000
*************** extern const char *mmix_cc1_ignored_opti
*** 130,136 ****
  #define TARGET_OPTIONS					\
     {{"set-program-start=", &mmix_cc1_ignored_option,	\
!   N_("Set start-address of the program") },		\
      {"set-data-start=", &mmix_cc1_ignored_option,	\
!   N_("Set start-address of data")}}
  
  /* FIXME: There's no provision for profiling here.  */
--- 130,136 ----
  #define TARGET_OPTIONS					\
     {{"set-program-start=", &mmix_cc1_ignored_option,	\
!   N_("Set start-address of the program"), 0},		\
      {"set-data-start=", &mmix_cc1_ignored_option,	\
!   N_("Set start-address of data"), 0} }
  
  /* FIXME: There's no provision for profiling here.  */
Index: config/pa/pa.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pa/pa.h,v
retrieving revision 1.188
diff -p -2 -r1.188 pa.h
*** config/pa/pa.h	16 Apr 2003 17:06:50 -0000	1.188
--- config/pa/pa.h	17 Apr 2003 20:09:03 -0000
*************** extern int target_flags;
*** 308,314 ****
  {									\
    { "schedule=",		&pa_cpu_string,				\
!     N_("Specify CPU for scheduling purposes") },			\
    { "arch=",			&pa_arch_string,			\
!     N_("Specify architecture for code generation.  Values are 1.0, 1.1, and 2.0.  2.0 requires gas snapshot 19990413 or later.") }\
  }
  
--- 308,314 ----
  {									\
    { "schedule=",		&pa_cpu_string,				\
!     N_("Specify CPU for scheduling purposes"), 0},			\
    { "arch=",			&pa_arch_string,			\
!     N_("Specify architecture for code generation.  Values are 1.0, 1.1, and 2.0.  2.0 requires gas snapshot 19990413 or later."), 0}\
  }
  
Index: config/rs6000/rs6000.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.h,v
retrieving revision 1.266
diff -p -2 -r1.266 rs6000.h
*** config/rs6000/rs6000.h	15 Apr 2003 09:56:52 -0000	1.266
--- config/rs6000/rs6000.h	17 Apr 2003 20:09:04 -0000
*************** extern enum processor_type rs6000_cpu;
*** 377,400 ****
  {									\
     {"cpu=",  &rs6000_select[1].string,					\
!     N_("Use features of and schedule code for given CPU") },		\
     {"tune=", &rs6000_select[2].string,					\
!     N_("Schedule code for given CPU") },				\
!    {"debug=", &rs6000_debug_name, N_("Enable debug output") },		\
     {"traceback=", &rs6000_traceback_name,				\
!     N_("Select full, part, or no traceback table") },			\
!    {"abi=", &rs6000_abi_string, N_("Specify ABI to use") },		\
     {"long-double-", &rs6000_long_double_size_string,			\
!     N_("Specify size of long double (64 or 128 bits)") },		\
     {"isel=", &rs6000_isel_string,                                       \
!     N_("Specify yes/no if isel instructions should be generated") },    \
     {"spe=", &rs6000_spe_string,                                         \
!     N_("Specify yes/no if SPE SIMD instructions should be generated") },\
     {"float-gprs=", &rs6000_float_gprs_string,                           \
!     N_("Specify yes/no if using floating point in the GPRs") },         \
!    {"vrsave=", &rs6000_altivec_vrsave_string,                         \
!     N_("Specify yes/no if VRSAVE instructions should be generated for AltiVec") }, \
     {"longcall", &rs6000_longcall_switch,				\
!     N_("Avoid all range limits on call instructions") },		\
!    {"no-longcall", &rs6000_longcall_switch, "" },			\
     SUBTARGET_OPTIONS							\
  }
--- 377,400 ----
  {									\
     {"cpu=",  &rs6000_select[1].string,					\
!     N_("Use features of and schedule code for given CPU"), 0},		\
     {"tune=", &rs6000_select[2].string,					\
!     N_("Schedule code for given CPU"), 0},				\
!    {"debug=", &rs6000_debug_name, N_("Enable debug output"), 0},	\
     {"traceback=", &rs6000_traceback_name,				\
!     N_("Select full, part, or no traceback table"), 0},			\
!    {"abi=", &rs6000_abi_string, N_("Specify ABI to use"), 0},		\
     {"long-double-", &rs6000_long_double_size_string,			\
!     N_("Specify size of long double (64 or 128 bits)"), 0},		\
     {"isel=", &rs6000_isel_string,                                       \
!     N_("Specify yes/no if isel instructions should be generated"), 0},  \
     {"spe=", &rs6000_spe_string,                                         \
!     N_("Specify yes/no if SPE SIMD instructions should be generated"), 0},\
     {"float-gprs=", &rs6000_float_gprs_string,                           \
!     N_("Specify yes/no if using floating point in the GPRs"), 0},       \
!    {"vrsave=", &rs6000_altivec_vrsave_string,                           \
!     N_("Specify yes/no if VRSAVE instructions should be generated for AltiVec"), 0}, \
     {"longcall", &rs6000_longcall_switch,				\
!     N_("Avoid all range limits on call instructions"), 0},		\
!    {"no-longcall", &rs6000_longcall_switch, "", 0},			\
     SUBTARGET_OPTIONS							\
  }
Index: config/rs6000/sysv4.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/sysv4.h,v
retrieving revision 1.120
diff -p -2 -r1.120 sysv4.h
*** config/rs6000/sysv4.h	13 Apr 2003 17:51:08 -0000	1.120
--- config/rs6000/sysv4.h	17 Apr 2003 20:09:04 -0000
*************** extern const char *rs6000_sdata_name;
*** 83,89 ****
  /* Override rs6000.h definition.  */
  #undef	SUBTARGET_OPTIONS
! #define	SUBTARGET_OPTIONS						\
!   { "call-",  &rs6000_abi_name, N_("Select ABI calling convention") },	\
!   { "sdata=", &rs6000_sdata_name, N_("Select method for sdata handling") }
  
  /* Max # of bytes for variables to automatically be put into the .sdata
--- 83,89 ----
  /* Override rs6000.h definition.  */
  #undef	SUBTARGET_OPTIONS
! #define	SUBTARGET_OPTIONS							\
!   { "call-",  &rs6000_abi_name, N_("Select ABI calling convention"), 0},	\
!   { "sdata=", &rs6000_sdata_name, N_("Select method for sdata handling"), 0}
  
  /* Max # of bytes for variables to automatically be put into the .sdata
Index: config/s390/s390.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/s390/s390.h,v
retrieving revision 1.68
diff -p -2 -r1.68 s390.h
*** config/s390/s390.h	17 Apr 2003 09:59:31 -0000	1.68
--- config/s390/s390.h	17 Apr 2003 20:09:04 -0000
*************** extern int target_flags;
*** 115,121 ****
  #define TARGET_OPTIONS                                          \
  { { "tune=",            &s390_tune_string,                      \
!     N_("Schedule code for given CPU")},                         \
    { "arch=",            &s390_arch_string,                      \
!     N_("Generate code for given CPU")},                         \
  }
  
--- 115,121 ----
  #define TARGET_OPTIONS                                          \
  { { "tune=",            &s390_tune_string,                      \
!     N_("Schedule code for given CPU"), 0},                      \
    { "arch=",            &s390_arch_string,                      \
!     N_("Generate code for given CPU"), 0},                      \
  }
  
Index: config/sparc/sparc.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/sparc/sparc.h,v
retrieving revision 1.221
diff -p -2 -r1.221 sparc.h
*** config/sparc/sparc.h	28 Mar 2003 08:07:03 -0000	1.221
--- config/sparc/sparc.h	17 Apr 2003 20:09:04 -0000
*************** extern enum processor_type sparc_cpu;
*** 633,641 ****
  {								\
    { "cpu=",  &sparc_select[1].string,				\
!     N_("Use features of and schedule code for given CPU") },	\
    { "tune=", &sparc_select[2].string,				\
!     N_("Schedule code for given CPU") },			\
    { "cmodel=", &sparc_cmodel_string,				\
!     N_("Use given SPARC code model") },				\
    SUBTARGET_OPTIONS 						\
  }
--- 633,641 ----
  {								\
    { "cpu=",  &sparc_select[1].string,				\
!     N_("Use features of and schedule code for given CPU"), 0},	\
    { "tune=", &sparc_select[2].string,				\
!     N_("Schedule code for given CPU"), 0},			\
    { "cmodel=", &sparc_cmodel_string,				\
!     N_("Use given SPARC code model"), 0},			\
    SUBTARGET_OPTIONS 						\
  }
Index: config/v850/v850.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/v850/v850.h,v
retrieving revision 1.82
diff -p -2 -r1.82 v850.h
*** config/v850/v850.h	17 Apr 2003 11:16:30 -0000	1.82
--- config/v850/v850.h	17 Apr 2003 20:09:04 -0000
*************** extern struct small_memory_info small_me
*** 221,232 ****
  {									\
    { "tda=",	&small_memory[ (int)SMALL_MEMORY_TDA ].value,		\
!       N_("Set the max size of data eligible for the TDA area")  },	\
!   { "tda-",	&small_memory[ (int)SMALL_MEMORY_TDA ].value, "" },	\
    { "sda=",	&small_memory[ (int)SMALL_MEMORY_SDA ].value, 		\
!       N_("Set the max size of data eligible for the SDA area")  },	\
!   { "sda-",	&small_memory[ (int)SMALL_MEMORY_SDA ].value, "" },	\
    { "zda=",	&small_memory[ (int)SMALL_MEMORY_ZDA ].value, 		\
!       N_("Set the max size of data eligible for the ZDA area")  },	\
!   { "zda-",	&small_memory[ (int)SMALL_MEMORY_ZDA ].value, "" },	\
  }
  
--- 221,232 ----
  {									\
    { "tda=",	&small_memory[ (int)SMALL_MEMORY_TDA ].value,		\
!       N_("Set the max size of data eligible for the TDA area"), 0},	\
!   { "tda-",	&small_memory[ (int)SMALL_MEMORY_TDA ].value, "", 0},	\
    { "sda=",	&small_memory[ (int)SMALL_MEMORY_SDA ].value, 		\
!       N_("Set the max size of data eligible for the SDA area"), 0},	\
!   { "sda-",	&small_memory[ (int)SMALL_MEMORY_SDA ].value, "", 0},	\
    { "zda=",	&small_memory[ (int)SMALL_MEMORY_ZDA ].value, 		\
!       N_("Set the max size of data eligible for the ZDA area"), 0},	\
!   { "zda-",	&small_memory[ (int)SMALL_MEMORY_ZDA ].value, "", 0},	\
  }
  
Index: doc/tm.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/tm.texi,v
retrieving revision 1.212
diff -p -2 -r1.212 tm.texi
*** doc/tm.texi	15 Apr 2003 20:57:12 -0000	1.212
--- doc/tm.texi	17 Apr 2003 20:09:05 -0000
*************** subgrouping for each command option.
*** 763,776 ****
  
  Each subgrouping contains a string constant, that defines the fixed part
! of the option name, the address of a variable, and a description string.
! Non-empty description strings should be marked with @code{N_(@dots{})} for
! @command{xgettext}.  Please do not mark empty strings because the empty
! string is reserved by GNU gettext. @code{gettext("")} returns the header entry
! of the message catalog with meta information, not the empty string.
! 
! The variable, type @code{char *}, is set to the variable part of the
! given option if the fixed part matches.  The actual option name is made
! by appending @samp{-m} to the specified name.  Again, each option should
! also be documented in @file{invoke.texi}.
  
  Here is an example which defines @option{-mshort-data- at var{number}} dot   If the
--- 763,782 ----
  
  Each subgrouping contains a string constant, that defines the fixed part
! of the option name, the address of a variable, a description string, and
! a default value.  Non-empty description strings should be marked with
! @code{N_(@dots{})} for @command{xgettext}.  Please do not mark empty
! strings because the empty string is reserved by GNU
! gettext. @code{gettext("")} returns the header entry of the message
! catalog with meta information, not the empty string.
! 
! If the default value is @code{NULL}, then the variable, type @code{char
! *}, is set to the variable part of the given option if the fixed part
! matches.  The actual option name is made by appending @samp{-m} to the
! specified name.  Again, each option should also be documented in
! @file{invoke.texi}.
! 
! If the default value is non- at code{NULL}, then the variable is instead
! set to the default value part of the given option if the entire option
! matches.
  
  Here is an example which defines @option{-mshort-data- at var{number}} dot   If the
*************** extern char *m88k_short_data;
*** 782,786 ****
  #define TARGET_OPTIONS \
   @{ @{ "short-data-", &m88k_short_data, \
!      N_("Specify the size of the short data section") @} @}
  @end smallexample
  
--- 788,823 ----
  #define TARGET_OPTIONS \
   @{ @{ "short-data-", &m88k_short_data, \
!      N_("Specify the size of the short data section"), 0 @} @}
! @end smallexample
! 
! Here is an variant of the above that allows you to also specify just
! @option{-mshort-data} where a default of @code{64} is used.
! 
! @smallexample
! extern char *m88k_short_data;
! #define TARGET_OPTIONS \
!  @{ @{ "short-data-", &m88k_short_data, \
!      N_("Specify the size of the short data section"), 0 @} \
!     @{ "short-data", &m88k_short_data, "", "64" @},
!     @}
! @end smallexample
! 
! Here is an example which defines @option{-mno-alu}, @option{-malu1}, and
! @option{-malu2} as a three-state switch, along with suitable macros for
! checking the state of the option (documentation is elided for brevity).
! 
! @smallexample
! [chip.c]
! char *chip_alu = ""; /* Specify default here.  */
! 
! [chip.h]
! extern char *chip_alu;
! #define TARGET_OPTIONS \
!   @{ @{ "no-alu", &chip_alu, "", "" @}, \
!      @{ "alu1", &chip_alu, "", "1" @}, \
!      @{ "alu2", &chip_alu, "", "2" @}, @}
! #define TARGET_ALU (chip_alu[0] != '\0')
! #define TARGET_ALU1 (chip_alu[0] == '1')
! #define TARGET_ALU2 (chip_alu[0] == '2')
  @end smallexample
  


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]