This is the mail archive of the gcc-patches@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]

PATCH: Rename the gcc_target global


The original choice of "target" as the global for machine-specific
functions has the unfortunate property of being shadowed by the
many local variables also named "target".  This just changes to use
Neil's suggested "targetm" everywhere.  The change is obvious I
suppose, but out of paranoia I bootstrapped powerpc-apple-darwin1.3
and built some random crosses too.  Since this touches every config,
I would like to get approval before committing too.

Stan

2001-07-06  Stan Shebs  <shebs@apple.com>

	* target.h (targetm): Rename global from "target", so as not to
	conflict with local variables.
	* c-decl.c: Ditto.
	* c-typeck.c: Ditto.
	* final.c: Ditto.
	* tree.c: Ditto.
	* cp/decl.c: Ditto.
	* cp/decl2.c: Ditto.
	* cp/typeck.c: Ditto.
	* 1750a/1750a.c: Ditto.
	* a29k/a29k.c: Ditto.
	* arc/arc.c: Ditto.
	* arm/arm.c: Ditto.
	* avr/avr.c: Ditto.
	* clipper/clipper.c: Ditto.
	* convex/convex.c: Ditto.
	* d30v/d30v.c: Ditto.
	* dsp16xx/dsp16xx.c: Ditto.
	* elxsi/elxsi.c: Ditto.
	* fr30/fr30.c: Ditto.
	* h8300/h8300.c: Ditto.
	* i370/i370.c: Ditto.
	* i386/i386.c: Ditto.
	* i860/i860.c: Ditto.
	* i960/i960.c: Ditto.
	* ia64/ia64.c: Ditto.
	* m32r/m32r.c: Ditto.
	* m68hc11/m68hc11.c: Ditto.
	* m68k/m68k.c: Ditto.
	* m88k/m88k.c: Ditto.
	* mips/mips.c: Ditto.
	* ns32k/ns32k.c: Ditto.
	* pa/pa.c: Ditto.
	* pdp11/pdp11.c: Ditto.
	* romp/romp.c: Ditto.
	* rs6000/rs6000.c: Ditto.
	* sh/sh.c: Ditto.
	* sparc/sparc.c: Ditto.
	* vax/vax.c: Ditto.
	* we32k/we32k.c: Ditto.
	* doc/tm.texi: Update the manual to match.

Index: c-decl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-decl.c,v
retrieving revision 1.233
diff -c -3 -p -r1.233 c-decl.c
*** c-decl.c	2001/06/26 18:08:24	1.233
--- c-decl.c	2001/07/06 23:58:09
*************** duplicate_decls (newdecl, olddecl, diffe
*** 1404,1410 ****
  
    if (DECL_P (olddecl))
      DECL_MACHINE_ATTRIBUTES (newdecl)
!       = (*target.merge_decl_attributes) (olddecl, newdecl);
  
    if (TREE_CODE (newtype) == ERROR_MARK
        || TREE_CODE (oldtype) == ERROR_MARK)
--- 1404,1410 ----
  
    if (DECL_P (olddecl))
      DECL_MACHINE_ATTRIBUTES (newdecl)
!       = (*targetm.merge_decl_attributes) (olddecl, newdecl);
  
    if (TREE_CODE (newtype) == ERROR_MARK
        || TREE_CODE (oldtype) == ERROR_MARK)
Index: c-typeck.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-typeck.c,v
retrieving revision 1.127
diff -c -3 -p -r1.127 c-typeck.c
*** c-typeck.c	2001/06/29 17:21:12	1.127
--- c-typeck.c	2001/07/06 23:58:11
*************** common_type (t1, t2)
*** 206,212 ****
      return t1;
  
    /* Merge the attributes.  */
!   attributes = (*target.merge_type_attributes) (t1, t2);
  
    /* Treat an enum type as the unsigned integer type of the same width.  */
  
--- 206,212 ----
      return t1;
  
    /* Merge the attributes.  */
!   attributes = (*targetm.merge_type_attributes) (t1, t2);
  
    /* Treat an enum type as the unsigned integer type of the same width.  */
  
*************** comptypes (type1, type2)
*** 484,490 ****
      return 1;
  
    /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
!   if (! (attrval = (*target.comp_type_attributes) (t1, t2)))
       return 0;
  
    /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
--- 484,490 ----
      return 1;
  
    /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
!   if (! (attrval = (*targetm.comp_type_attributes) (t1, t2)))
       return 0;
  
    /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
Index: final.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/final.c,v
retrieving revision 1.178
diff -c -3 -p -r1.178 final.c
*** final.c	2001/07/06 18:39:56	1.178
--- final.c	2001/07/06 23:58:12
*************** final_start_function (first, file, optim
*** 1630,1636 ****
      }
  
    /* First output the function prologue: code to set up the stack frame.  */
!   (*target.asm_out.function_prologue) (file, get_frame_size ());
  
    /* If the machine represents the prologue as RTL, the profiling code must
       be emitted when NOTE_INSN_PROLOGUE_END is scanned.  */
--- 1630,1636 ----
      }
  
    /* First output the function prologue: code to set up the stack frame.  */
!   (*targetm.asm_out.function_prologue) (file, get_frame_size ());
  
    /* If the machine represents the prologue as RTL, the profiling code must
       be emitted when NOTE_INSN_PROLOGUE_END is scanned.  */
*************** final_end_function (first, file, optimiz
*** 1773,1779 ****
  
    /* Finally, output the function epilogue:
       code to restore the stack frame and return to the caller.  */
!   (*target.asm_out.function_epilogue) (file, get_frame_size ());
  
  #ifdef SDB_DEBUGGING_INFO
    if (write_symbols == SDB_DEBUG)
--- 1773,1779 ----
  
    /* Finally, output the function epilogue:
       code to restore the stack frame and return to the caller.  */
!   (*targetm.asm_out.function_epilogue) (file, get_frame_size ());
  
  #ifdef SDB_DEBUGGING_INFO
    if (write_symbols == SDB_DEBUG)
Index: target.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/target.h,v
retrieving revision 1.4
diff -c -3 -p -r1.4 target.h
*** target.h	2001/07/06 18:40:00	1.4
--- target.h	2001/07/06 23:58:12
*************** Foundation, 59 Temple Place - Suite 330,
*** 33,41 ****
     includes target.h and target-def.h, and overrides any inappropriate
     defaults by undefining the relevant macro and defining a suitable
     replacement.  That file should then contain the definition of
!    "target" like so:
  
!    struct gcc_target target = TARGET_INITIALIZER;
  
     Doing things this way allows us to bring together everything that
     defines a target to GCC.  By supplying a default that is
--- 33,41 ----
     includes target.h and target-def.h, and overrides any inappropriate
     defaults by undefining the relevant macro and defining a suitable
     replacement.  That file should then contain the definition of
!    "targetm" like so:
  
!    struct gcc_target targetm = TARGET_INITIALIZER;
  
     Doing things this way allows us to bring together everything that
     defines a target to GCC.  By supplying a default that is
*************** struct gcc_target
*** 83,86 ****
    void (* set_default_type_attributes) PARAMS ((tree type));
  };
  
! extern struct gcc_target target;
--- 83,86 ----
    void (* set_default_type_attributes) PARAMS ((tree type));
  };
  
! extern struct gcc_target targetm;
Index: tree.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree.c,v
retrieving revision 1.200
diff -c -3 -p -r1.200 tree.c
*** tree.c	2001/07/01 16:50:11	1.200
--- tree.c	2001/07/06 23:58:13
*************** make_node (code)
*** 435,441 ****
  
        /* Default to no attributes for type, but let target change that.  */
        TYPE_ATTRIBUTES (t) = NULL_TREE;
!       (*target.set_default_type_attributes) (t);
  
        /* We have not yet computed the alias set for this type.  */
        TYPE_ALIAS_SET (t) = -1;
--- 435,441 ----
  
        /* Default to no attributes for type, but let target change that.  */
        TYPE_ATTRIBUTES (t) = NULL_TREE;
!       (*targetm.set_default_type_attributes) (t);
  
        /* We have not yet computed the alias set for this type.  */
        TYPE_ALIAS_SET (t) = -1;
*************** valid_machine_attribute (attr_name, attr
*** 2759,2766 ****
      {
        tree decl_attrs = DECL_MACHINE_ATTRIBUTES (decl);
  
!       if ((*target.valid_decl_attribute) (decl, decl_attrs, attr_name,
! 					  attr_args))
  	{
  	  tree attr = lookup_attribute (IDENTIFIER_POINTER (attr_name),
  					decl_attrs);
--- 2759,2766 ----
      {
        tree decl_attrs = DECL_MACHINE_ATTRIBUTES (decl);
  
!       if ((*targetm.valid_decl_attribute) (decl, decl_attrs, attr_name,
! 					   attr_args))
  	{
  	  tree attr = lookup_attribute (IDENTIFIER_POINTER (attr_name),
  					decl_attrs);
*************** valid_machine_attribute (attr_name, attr
*** 2783,2790 ****
      }
  
    type_attrs = TYPE_ATTRIBUTES (type);
!   if ((*target.valid_type_attribute) (type, type_attrs, attr_name,
! 				      attr_args))
      {
        tree attr = lookup_attribute (IDENTIFIER_POINTER (attr_name),
  				    type_attrs);
--- 2783,2790 ----
      }
  
    type_attrs = TYPE_ATTRIBUTES (type);
!   if ((*targetm.valid_type_attribute) (type, type_attrs, attr_name,
! 				       attr_args))
      {
        tree attr = lookup_attribute (IDENTIFIER_POINTER (attr_name),
  				    type_attrs);
*************** valid_machine_attribute (attr_name, attr
*** 2818,2825 ****
       by putting the attribute on the function type.  */
    else if (POINTER_TYPE_P (type)
  	   && TREE_CODE (TREE_TYPE (type)) == FUNCTION_TYPE
! 	   && (*target.valid_type_attribute) (TREE_TYPE (type), type_attrs,
! 					      attr_name, attr_args))
      {
        tree inner_type = TREE_TYPE (type);
        tree inner_attrs = TYPE_ATTRIBUTES (inner_type);
--- 2818,2825 ----
       by putting the attribute on the function type.  */
    else if (POINTER_TYPE_P (type)
  	   && TREE_CODE (TREE_TYPE (type)) == FUNCTION_TYPE
! 	   && (*targetm.valid_type_attribute) (TREE_TYPE (type), type_attrs,
! 					       attr_name, attr_args))
      {
        tree inner_type = TREE_TYPE (type);
        tree inner_attrs = TYPE_ATTRIBUTES (inner_type);
Index: config/1750a/1750a.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/1750a/1750a.c,v
retrieving revision 1.10
diff -c -3 -p -r1.10 1750a.c
*** 1750a.c	2001/07/06 18:40:00	1.10
--- 1750a.c	2001/07/06 23:58:13
*************** static void output_function_epilogue PAR
*** 56,62 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Generate the assembly code for function entry.  FILE is a stdio
     stream to output the code to.  SIZE is an int: how many units of
--- 56,62 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Generate the assembly code for function entry.  FILE is a stdio
     stream to output the code to.  SIZE is an int: how many units of
Index: config/a29k/a29k.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/a29k/a29k.c,v
retrieving revision 1.17
diff -c -3 -p -r1.17 a29k.c
*** a29k.c	2001/07/06 18:40:01	1.17
--- a29k.c	2001/07/06 23:58:13
*************** int a29k_compare_fp_p;
*** 100,106 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Returns 1 if OP is a 8-bit constant. */
  
--- 100,106 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Returns 1 if OP is a 8-bit constant. */
  
Index: config/alpha/alpha.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/alpha/alpha.c,v
retrieving revision 1.167
diff -c -3 -p -r1.167 alpha.c
*** alpha.c	2001/07/04 17:43:14	1.167
--- alpha.c	2001/07/06 23:58:14
*************** static rtx alpha_emit_xfloating_compare
*** 148,154 ****
  
  /* Initialize the GCC target structure.  */
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Parse target option strings. */
  
--- 148,154 ----
  
  /* Initialize the GCC target structure.  */
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Parse target option strings. */
  
Index: config/arc/arc.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/arc/arc.c,v
retrieving revision 1.18
diff -c -3 -p -r1.18 arc.c
*** arc.c	2001/07/06 18:40:01	1.18
--- arc.c	2001/07/06 23:58:15
*************** static void arc_output_function_epilogue
*** 99,105 ****
  #undef TARGET_VALID_DECL_ATTRIBUTE
  #define TARGET_VALID_DECL_ATTRIBUTE arc_valid_decl_attribute
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Called by OVERRIDE_OPTIONS to initialize various things.  */
  
--- 99,105 ----
  #undef TARGET_VALID_DECL_ATTRIBUTE
  #define TARGET_VALID_DECL_ATTRIBUTE arc_valid_decl_attribute
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Called by OVERRIDE_OPTIONS to initialize various things.  */
  
Index: config/arm/arm.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/arm/arm.c,v
retrieving revision 1.153
diff -c -3 -p -r1.153 arm.c
*** arm.c	2001/07/06 18:40:01	1.153
--- arm.c	2001/07/06 23:58:17
*************** static void	 arm_set_default_type_attrib
*** 148,154 ****
  #undef TARGET_SET_DEFAULT_TYPE_ATTRIBUTES
  #define TARGET_SET_DEFAULT_TYPE_ATTRIBUTES arm_set_default_type_attributes
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Obstack for minipool constant handling.  */
  static struct obstack minipool_obstack;
--- 148,154 ----
  #undef TARGET_SET_DEFAULT_TYPE_ATTRIBUTES
  #define TARGET_SET_DEFAULT_TYPE_ATTRIBUTES arm_set_default_type_attributes
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Obstack for minipool constant handling.  */
  static struct obstack minipool_obstack;
Index: config/avr/avr.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/avr/avr.c,v
retrieving revision 1.41
diff -c -3 -p -r1.41 avr.c
*** avr.c	2001/07/06 18:40:03	1.41
--- avr.c	2001/07/06 23:58:18
*************** int avr_case_values_threshold = 30000;
*** 183,189 ****
  #undef TARGET_VALID_TYPE_ATTRIBUTE
  #define TARGET_VALID_TYPE_ATTRIBUTE avr_valid_type_attribute
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  void
  avr_override_options ()
--- 183,189 ----
  #undef TARGET_VALID_TYPE_ATTRIBUTE
  #define TARGET_VALID_TYPE_ATTRIBUTE avr_valid_type_attribute
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  void
  avr_override_options ()
Index: config/c4x/c4x.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/c4x/c4x.c,v
retrieving revision 1.84
diff -c -3 -p -r1.84 c4x.c
*** c4x.c	2001/07/03 19:44:07	1.84
--- c4x.c	2001/07/06 23:58:19
*************** static int c4x_valid_type_attribute_p PA
*** 195,201 ****
  #undef TARGET_VALID_TYPE_ATTRIBUTE
  #define TARGET_VALID_TYPE_ATTRIBUTE c4x_valid_type_attribute_p
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Called to register all of our global variables with the garbage
     collector.  */
--- 195,201 ----
  #undef TARGET_VALID_TYPE_ATTRIBUTE
  #define TARGET_VALID_TYPE_ATTRIBUTE c4x_valid_type_attribute_p
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Called to register all of our global variables with the garbage
     collector.  */
Index: config/clipper/clipper.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/clipper/clipper.c,v
retrieving revision 1.14
diff -c -3 -p -r1.14 clipper.c
*** clipper.c	2001/07/06 18:40:03	1.14
--- clipper.c	2001/07/06 23:58:19
*************** static int frame_size;
*** 55,61 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE clipper_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Compute size of a clipper stack frame where 'lsize' is the required
     space for local variables.  */
--- 55,61 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE clipper_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Compute size of a clipper stack frame where 'lsize' is the required
     space for local variables.  */
Index: config/convex/convex.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/convex/convex.c,v
retrieving revision 1.12
diff -c -3 -p -r1.12 convex.c
*** convex.c	2001/07/06 18:40:04	1.12
--- convex.c	2001/07/06 23:58:19
*************** static void convex_output_function_epilo
*** 73,79 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE convex_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Generate the assembly code for function entry.  FILE is a stdio
     stream to output the code to.  SIZE is an int: how many units of
--- 73,79 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE convex_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Generate the assembly code for function entry.  FILE is a stdio
     stream to output the code to.  SIZE is an int: how many units of
Index: config/d30v/d30v.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/d30v/d30v.c,v
retrieving revision 1.10
diff -c -3 -p -r1.10 d30v.c
*** d30v.c	2001/07/06 18:40:04	1.10
--- d30v.c	2001/07/06 23:58:20
*************** enum reg_class reg_class_from_letter[256
*** 87,93 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE d30v_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Sometimes certain combinations of command options do not make
     sense on a particular target machine.  You can define a macro
--- 87,93 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE d30v_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Sometimes certain combinations of command options do not make
     sense on a particular target machine.  You can define a macro
Index: config/dsp16xx/dsp16xx.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/dsp16xx/dsp16xx.c,v
retrieving revision 1.15
diff -c -3 -p -r1.15 dsp16xx.c
*** dsp16xx.c	2001/07/06 18:40:08	1.15
--- dsp16xx.c	2001/07/06 23:58:20
*************** static void dsp16xx_output_function_epil
*** 155,161 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE dsp16xx_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  int 
  hard_regno_mode_ok (regno, mode)
--- 155,161 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE dsp16xx_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  int 
  hard_regno_mode_ok (regno, mode)
Index: config/elxsi/elxsi.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/elxsi/elxsi.c,v
retrieving revision 1.9
diff -c -3 -p -r1.9 elxsi.c
*** elxsi.c	2001/07/06 18:40:09	1.9
--- elxsi.c	2001/07/06 23:58:20
*************** static void elxsi_output_function_epilog
*** 47,53 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE elxsi_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Generate the assembly code for function entry.  FILE is a stdio
     stream to output the code to.  SIZE is an int: how many units of
--- 47,53 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE elxsi_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Generate the assembly code for function entry.  FILE is a stdio
     stream to output the code to.  SIZE is an int: how many units of
Index: config/fr30/fr30.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/fr30/fr30.c,v
retrieving revision 1.13
diff -c -3 -p -r1.13 fr30.c
*** fr30.c	2001/07/06 18:40:09	1.13
--- fr30.c	2001/07/06 23:58:20
*************** static struct fr30_frame_info 	zero_fram
*** 139,145 ****
  
  /* Initialize the GCC target structure.  */
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Returns the number of bytes offset between FROM_REG and TO_REG
     for the current function.  As a side effect it fills in the 
--- 139,145 ----
  
  /* Initialize the GCC target structure.  */
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Returns the number of bytes offset between FROM_REG and TO_REG
     for the current function.  As a side effect it fills in the 
Index: config/h8300/h8300.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/h8300/h8300.c,v
retrieving revision 1.60
diff -c -3 -p -r1.60 h8300.c
*** h8300.c	2001/07/06 18:40:09	1.60
--- h8300.c	2001/07/06 23:58:21
*************** const char *h8_push_op, *h8_pop_op, *h8_
*** 105,111 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE h8300_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Initialize various cpu specific globals at start up.  */
  
--- 105,111 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE h8300_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Initialize various cpu specific globals at start up.  */
  
Index: config/i370/i370.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i370/i370.c,v
retrieving revision 1.18
diff -c -3 -p -r1.18 i370.c
*** i370.c	2001/07/06 18:40:10	1.18
--- i370.c	2001/07/06 23:58:21
*************** static const unsigned char ebcasc[256] =
*** 294,300 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE i370_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Map characters from one character set to another.
     C is the character to be translated.  */
--- 294,300 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE i370_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Map characters from one character set to another.
     C is the character to be translated.  */
Index: config/i386/i386.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.c,v
retrieving revision 1.278
diff -c -3 -p -r1.278 i386.c
*** i386.c	2001/07/06 18:40:10	1.278
--- i386.c	2001/07/06 23:58:23
*************** static int ix86_comp_type_attributes PAR
*** 631,637 ****
  #  define TARGET_ASM_FUNCTION_PROLOGUE ix86_osf_output_function_prologue
  #endif
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Sometimes certain combinations of command options do not make
     sense on a particular target machine.  You can define a macro
--- 631,637 ----
  #  define TARGET_ASM_FUNCTION_PROLOGUE ix86_osf_output_function_prologue
  #endif
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Sometimes certain combinations of command options do not make
     sense on a particular target machine.  You can define a macro
Index: config/i860/i860.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i860/i860.c,v
retrieving revision 1.22
diff -c -3 -p -r1.22 i860.c
*** i860.c	2001/07/06 18:40:11	1.22
--- i860.c	2001/07/06 23:58:24
*************** rtx i860_compare_op0, i860_compare_op1;
*** 70,76 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE i860_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Return non-zero if this pattern, can be evaluated safely, even if it
     was not asked for.  */
--- 70,76 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE i860_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Return non-zero if this pattern, can be evaluated safely, even if it
     was not asked for.  */
Index: config/i960/i960.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i960/i960.c,v
retrieving revision 1.26
diff -c -3 -p -r1.26 i960.c
*** i960.c	2001/07/06 18:40:11	1.26
--- i960.c	2001/07/06 23:58:25
*************** static int ret_label = 0;
*** 98,104 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE i960_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Initialize variables before compiling any files.  */
  
--- 98,104 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE i960_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Initialize variables before compiling any files.  */
  
Index: config/ia64/ia64.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/ia64/ia64.c,v
retrieving revision 1.99
diff -c -3 -p -r1.99 ia64.c
*** ia64.c	2001/07/06 18:40:12	1.99
--- ia64.c	2001/07/06 23:58:26
*************** static void ia64_function_epilogue PARAM
*** 149,155 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE ia64_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Return 1 if OP is a valid operand for the MEM of a CALL insn.  */
  
--- 149,155 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE ia64_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Return 1 if OP is a valid operand for the MEM of a CALL insn.  */
  
Index: config/m32r/m32r.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m32r/m32r.c,v
retrieving revision 1.30
diff -c -3 -p -r1.30 m32r.c
*** m32r.c	2001/07/06 18:40:12	1.30
--- m32r.c	2001/07/06 23:58:27
*************** static void  m32r_output_function_epilog
*** 76,82 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE m32r_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Called by OVERRIDE_OPTIONS to initialize various things.  */
  
--- 76,82 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE m32r_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Called by OVERRIDE_OPTIONS to initialize various things.  */
  
Index: config/m68hc11/m68hc11.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m68hc11/m68hc11.c,v
retrieving revision 1.15
diff -c -3 -p -r1.15 m68hc11.c
*** m68hc11.c	2001/07/06 18:40:13	1.15
--- m68hc11.c	2001/07/06 23:58:28
*************** static int nb_soft_regs;
*** 213,219 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE m68hc11_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  int
  m68hc11_override_options ()
--- 213,219 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE m68hc11_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  int
  m68hc11_override_options ()
Index: config/m68k/m68k.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m68k/m68k.c,v
retrieving revision 1.46
diff -c -3 -p -r1.46 m68k.c
*** m68k.c	2001/07/06 18:40:13	1.46
--- m68k.c	2001/07/06 23:58:29
*************** int m68k_last_compare_had_fp_operands;
*** 86,92 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE m68k_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Sometimes certain combinations of command options do not make
     sense on a particular target machine.  You can define a macro
--- 86,92 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE m68k_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Sometimes certain combinations of command options do not make
     sense on a particular target machine.  You can define a macro
Index: config/m88k/m88k.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m88k/m88k.c,v
retrieving revision 1.34
diff -c -3 -p -r1.34 m88k.c
*** m88k.c	2001/07/06 18:40:13	1.34
--- m88k.c	2001/07/06 23:58:29
*************** static void m88k_output_function_epilogu
*** 72,78 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE m88k_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Determine what instructions are needed to manufacture the integer VALUE
     in the given MODE.  */
--- 72,78 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE m88k_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Determine what instructions are needed to manufacture the integer VALUE
     in the given MODE.  */
Index: config/mcore/mcore.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mcore/mcore.c,v
retrieving revision 1.14
diff -c -3 -p -r1.14 mcore.c
*** mcore.c	2001/07/03 19:44:13	1.14
--- mcore.c	2001/07/06 23:58:30
*************** static int        mcore_valid_decl_attri
*** 142,148 ****
  #undef TARGET_VALID_DECL_ATTRIBUTE
  #define TARGET_VALID_DECL_ATTRIBUTE mcore_valid_decl_attribute
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Adjust the stack and return the number of bytes taken to do it.  */
  static void
--- 142,148 ----
  #undef TARGET_VALID_DECL_ATTRIBUTE
  #define TARGET_VALID_DECL_ATTRIBUTE mcore_valid_decl_attribute
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Adjust the stack and return the number of bytes taken to do it.  */
  static void
Index: config/mips/mips.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mips/mips.c,v
retrieving revision 1.123
diff -c -3 -p -r1.123 mips.c
*** mips.c	2001/07/06 18:40:14	1.123
--- mips.c	2001/07/06 23:58:32
*************** enum reg_class mips_char_to_class[256] =
*** 446,452 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE mips_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Return truth value of whether OP can be used as an operands
     where a register or 16 bit unsigned integer is needed.  */
--- 446,452 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE mips_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Return truth value of whether OP can be used as an operands
     where a register or 16 bit unsigned integer is needed.  */
Index: config/mn10200/mn10200.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mn10200/mn10200.c,v
retrieving revision 1.19
diff -c -3 -p -r1.19 mn10200.c
*** mn10200.c	2001/07/03 19:44:15	1.19
--- mn10200.c	2001/07/06 23:58:32
*************** static int out_of_line_epilogue;
*** 68,74 ****
  
  /* Initialize the GCC target structure.  */
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Indicate this file was compiled by gcc and what optimization
     level was used.  */
--- 68,74 ----
  
  /* Initialize the GCC target structure.  */
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Indicate this file was compiled by gcc and what optimization
     level was used.  */
Index: config/mn10300/mn10300.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mn10300/mn10300.c,v
retrieving revision 1.37
diff -c -3 -p -r1.37 mn10300.c
*** mn10300.c	2001/07/03 19:44:16	1.37
--- mn10300.c	2001/07/06 23:58:32
*************** Boston, MA 02111-1307, USA.  */
*** 53,59 ****
  
  /* Initialize the GCC target structure.  */
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  void
  asm_file_start (file)
--- 53,59 ----
  
  /* Initialize the GCC target structure.  */
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  void
  asm_file_start (file)
Index: config/ns32k/ns32k.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/ns32k/ns32k.c,v
retrieving revision 1.17
diff -c -3 -p -r1.17 ns32k.c
*** ns32k.c	2001/07/06 18:40:14	1.17
--- ns32k.c	2001/07/06 23:58:33
*************** static void ns32k_output_function_epilog
*** 77,83 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE ns32k_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Generate the assembly code for function entry.  FILE is a stdio
     stream to output the code to.  SIZE is an int: how many units of
--- 77,83 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE ns32k_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Generate the assembly code for function entry.  FILE is a stdio
     stream to output the code to.  SIZE is an int: how many units of
Index: config/pa/pa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pa/pa.c,v
retrieving revision 1.116
diff -c -3 -p -r1.116 pa.c
*** pa.c	2001/07/06 18:40:15	1.116
--- pa.c	2001/07/06 23:58:34
*************** int n_deferred_plabels = 0;
*** 116,122 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE pa_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  void
  override_options ()
--- 116,122 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE pa_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  void
  override_options ()
Index: config/pdp11/pdp11.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pdp11/pdp11.c,v
retrieving revision 1.19
diff -c -3 -p -r1.19 pdp11.c
*** pdp11.c	2001/07/06 18:40:15	1.19
--- pdp11.c	2001/07/06 23:58:34
*************** static void pdp11_output_function_epilog
*** 61,67 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE pdp11_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Nonzero if OP is a valid second operand for an arithmetic insn.  */
  
--- 61,67 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE pdp11_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Nonzero if OP is a valid second operand for an arithmetic insn.  */
  
Index: config/pj/pj.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pj/pj.c,v
retrieving revision 1.5
diff -c -3 -p -r1.5 pj.c
*** pj.c	2001/06/26 18:09:13	1.5
--- pj.c	2001/07/06 23:58:34
*************** int pj_stuff_on_line;
*** 127,133 ****
  
  /* Initialize the GCC target structure.  */
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* printf to the asm_out_file, with special format control characters
     for decoding operands.  
--- 127,133 ----
  
  /* Initialize the GCC target structure.  */
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* printf to the asm_out_file, with special format control characters
     for decoding operands.  
Index: config/romp/romp.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/romp/romp.c,v
retrieving revision 1.15
diff -c -3 -p -r1.15 romp.c
*** romp.c	2001/07/06 18:40:15	1.15
--- romp.c	2001/07/06 23:58:35
*************** static void romp_output_function_epilogu
*** 59,65 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE romp_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Return 1 if the insn using CC0 set by INSN does not contain
     any unsigned tests applied to the condition codes.
--- 59,65 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE romp_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Return 1 if the insn using CC0 set by INSN does not contain
     any unsigned tests applied to the condition codes.
Index: config/rs6000/rs6000.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.c,v
retrieving revision 1.190
diff -c -3 -p -r1.190 rs6000.c
*** rs6000.c	2001/07/06 18:40:15	1.190
--- rs6000.c	2001/07/06 23:58:37
*************** static char alt_reg_names[][8] =
*** 175,181 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE rs6000_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Override command line options.  Mostly we process the processor
     type and sometimes adjust other TARGET_ options.  */
--- 175,181 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE rs6000_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Override command line options.  Mostly we process the processor
     type and sometimes adjust other TARGET_ options.  */
Index: config/sh/sh.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/sh/sh.c,v
retrieving revision 1.105
diff -c -3 -p -r1.105 sh.c
*** sh.c	2001/07/06 18:40:16	1.105
--- sh.c	2001/07/06 23:58:38
*************** static void sh_output_function_epilogue 
*** 163,169 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE sh_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Print the operand address in x to the stream.  */
  
--- 163,169 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE sh_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Print the operand address in x to the stream.  */
  
Index: config/sparc/sparc.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/sparc/sparc.c,v
retrieving revision 1.144
diff -c -3 -p -r1.144 sparc.c
*** sparc.c	2001/07/06 18:40:16	1.144
--- sparc.c	2001/07/06 23:58:40
*************** enum processor_type sparc_cpu;
*** 192,198 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE sparc_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Validate and override various options, and do some machine dependent
     initialization.  */
--- 192,198 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE sparc_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Validate and override various options, and do some machine dependent
     initialization.  */
Index: config/v850/v850.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/v850/v850.c,v
retrieving revision 1.43
diff -c -3 -p -r1.43 v850.c
*** v850.c	2001/07/03 19:44:19	1.43
--- v850.c	2001/07/06 23:58:40
*************** static int v850_interrupt_p = FALSE;
*** 86,92 ****
  #undef TARGET_VALID_DECL_ATTRIBUTE
  #define TARGET_VALID_DECL_ATTRIBUTE v850_valid_decl_attribute
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Sometimes certain combinations of command options do not make
     sense on a particular target machine.  You can define a macro
--- 86,92 ----
  #undef TARGET_VALID_DECL_ATTRIBUTE
  #define TARGET_VALID_DECL_ATTRIBUTE v850_valid_decl_attribute
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Sometimes certain combinations of command options do not make
     sense on a particular target machine.  You can define a macro
Index: config/vax/vax.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/vax/vax.c,v
retrieving revision 1.12
diff -c -3 -p -r1.12 vax.c
*** vax.c	2001/07/06 18:40:17	1.12
--- vax.c	2001/07/06 23:58:40
*************** static void vax_output_function_prologue
*** 42,48 ****
  #undef TARGET_ASM_FUNCTION_PROLOGUE
  #define TARGET_ASM_FUNCTION_PROLOGUE vax_output_function_prologue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Generate the assembly code for function entry.  FILE is a stdio
     stream to output the code to.  SIZE is an int: how many units of
--- 42,48 ----
  #undef TARGET_ASM_FUNCTION_PROLOGUE
  #define TARGET_ASM_FUNCTION_PROLOGUE vax_output_function_prologue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Generate the assembly code for function entry.  FILE is a stdio
     stream to output the code to.  SIZE is an int: how many units of
Index: config/we32k/we32k.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/we32k/we32k.c,v
retrieving revision 1.12
diff -c -3 -p -r1.12 we32k.c
*** we32k.c	2001/07/06 18:40:17	1.12
--- we32k.c	2001/07/06 23:58:40
*************** static void we32k_output_function_epilog
*** 44,50 ****
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE we32k_output_function_epilogue
  
! struct gcc_target target = TARGET_INITIALIZER;
  
  /* Generate the assembly code for function entry.  FILE is a stdio
     stream to output the code to.  SIZE is an int: how many units of
--- 44,50 ----
  #undef TARGET_ASM_FUNCTION_EPILOGUE
  #define TARGET_ASM_FUNCTION_EPILOGUE we32k_output_function_epilogue
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  
  /* Generate the assembly code for function entry.  FILE is a stdio
     stream to output the code to.  SIZE is an int: how many units of
Index: cp/decl.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/decl.c,v
retrieving revision 1.795
diff -c -3 -p -r1.795 decl.c
*** decl.c	2001/06/26 18:09:24	1.795
--- decl.c	2001/07/06 23:58:43
*************** duplicate_decls (newdecl, olddecl)
*** 3484,3490 ****
    /* Copy all the DECL_... slots specified in the new decl
       except for any that we copy here from the old type.  */
    DECL_MACHINE_ATTRIBUTES (newdecl)
!     = (*target.merge_decl_attributes) (olddecl, newdecl);
  
    if (TREE_CODE (newdecl) == TEMPLATE_DECL)
      {
--- 3484,3490 ----
    /* Copy all the DECL_... slots specified in the new decl
       except for any that we copy here from the old type.  */
    DECL_MACHINE_ATTRIBUTES (newdecl)
!     = (*targetm.merge_decl_attributes) (olddecl, newdecl);
  
    if (TREE_CODE (newdecl) == TEMPLATE_DECL)
      {
Index: cp/decl2.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/decl2.c,v
retrieving revision 1.472
diff -c -3 -p -r1.472 decl2.c
*** decl2.c	2001/06/27 06:55:29	1.472
--- decl2.c	2001/07/06 23:58:44
*************** import_export_class (ctype)
*** 2456,2471 ****
    if (CLASSTYPE_INTERFACE_ONLY (ctype))
      return;
  
!   if ((*target.valid_type_attribute) (ctype,
! 				      TYPE_ATTRIBUTES (ctype),
! 				      get_identifier ("dllimport"),
! 				      NULL_TREE)
        && lookup_attribute ("dllimport", TYPE_ATTRIBUTES (ctype)))
      import_export = -1;
!   else if ((*target.valid_type_attribute) (ctype,
! 					   TYPE_ATTRIBUTES (ctype),
! 					   get_identifier ("dllexport"),
! 					   NULL_TREE)
  	   && lookup_attribute ("dllexport", TYPE_ATTRIBUTES (ctype)))
      import_export = 1;
  
--- 2456,2471 ----
    if (CLASSTYPE_INTERFACE_ONLY (ctype))
      return;
  
!   if ((*targetm.valid_type_attribute) (ctype,
! 				       TYPE_ATTRIBUTES (ctype),
! 				       get_identifier ("dllimport"),
! 				       NULL_TREE)
        && lookup_attribute ("dllimport", TYPE_ATTRIBUTES (ctype)))
      import_export = -1;
!   else if ((*targetm.valid_type_attribute) (ctype,
! 					    TYPE_ATTRIBUTES (ctype),
! 					    get_identifier ("dllexport"),
! 					    NULL_TREE)
  	   && lookup_attribute ("dllexport", TYPE_ATTRIBUTES (ctype)))
      import_export = 1;
  
Index: cp/typeck.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/cp/typeck.c,v
retrieving revision 1.355
diff -c -3 -p -r1.355 typeck.c
*** typeck.c	2001/07/05 15:39:36	1.355
--- typeck.c	2001/07/06 23:58:46
*************** qualify_type_recursive (t1, t2)
*** 212,218 ****
        tree b1;
        int type_quals;
        tree tgt;
!       tree attributes = (*target.merge_type_attributes) (t1, t2);
  
        if (TREE_CODE (tt1) == OFFSET_TYPE)
  	{
--- 212,218 ----
        tree b1;
        int type_quals;
        tree tgt;
!       tree attributes = (*targetm.merge_type_attributes) (t1, t2);
  
        if (TREE_CODE (tt1) == OFFSET_TYPE)
  	{
*************** type_after_usual_arithmetic_conversions 
*** 343,349 ****
  
    /* In what follows, we slightly generalize the rules given in [expr]
       so as to deal with `long long'.  First, merge the attributes.  */
!   attributes = (*target.merge_type_attributes) (t1, t2);
  
    /* If only one is real, use it as the result.  */
    if (code1 == REAL_TYPE && code2 != REAL_TYPE)
--- 343,349 ----
  
    /* In what follows, we slightly generalize the rules given in [expr]
       so as to deal with `long long'.  First, merge the attributes.  */
!   attributes = (*targetm.merge_type_attributes) (t1, t2);
  
    /* If only one is real, use it as the result.  */
    if (code1 == REAL_TYPE && code2 != REAL_TYPE)
*************** common_type (t1, t2)
*** 549,555 ****
      return type_after_usual_arithmetic_conversions (t1, t2);
  
    /* Merge the attributes.  */
!   attributes = (*target.merge_type_attributes) (t1, t2);
  
    /* Treat an enum type as the unsigned integer type of the same width.  */
  
--- 549,555 ----
      return type_after_usual_arithmetic_conversions (t1, t2);
  
    /* Merge the attributes.  */
!   attributes = (*targetm.merge_type_attributes) (t1, t2);
  
    /* Treat an enum type as the unsigned integer type of the same width.  */
  
*************** comptypes (t1, t2, strict)
*** 999,1005 ****
    if (strict & COMPARE_NO_ATTRIBUTES)
      attrval = 1;
    /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
!   else if (! (attrval = (*target.comp_type_attributes) (t1, t2)))
       return 0;
  
    /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
--- 999,1005 ----
    if (strict & COMPARE_NO_ATTRIBUTES)
      attrval = 1;
    /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
!   else if (! (attrval = (*targetm.comp_type_attributes) (t1, t2)))
       return 0;
  
    /* 1 if no need for warning yet, 2 if warning cause has been seen.  */
Index: doc/tm.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/tm.texi,v
retrieving revision 1.24
diff -c -3 -p -r1.24 tm.texi
*** tm.texi	2001/07/06 18:40:17	1.24
--- tm.texi	2001/07/06 23:58:50
*************** through the macros defined in the @file{
*** 55,62 ****
  @cindex target hooks
  @cindex target functions
  
! @deftypevar {struct gcc_target} target
! The target @file{.c} file must define the global @code{target} variable
  which contains pointers to functions and data relating to the target
  machine.  The variable is declared in @file{target.h};
  @file{target-def.h} defines the macro @code{TARGET_INITIALIZER} which is
--- 55,62 ----
  @cindex target hooks
  @cindex target functions
  
! @deftypevar {struct gcc_target} targetm
! The target @file{.c} file must define the global @code{targetm} variable
  which contains pointers to functions and data relating to the target
  machine.  The variable is declared in @file{target.h};
  @file{target-def.h} defines the macro @code{TARGET_INITIALIZER} which is
*************** macros for which the default definition 
*** 72,78 ****
  #undef TARGET_VALID_TYPE_ATTRIBUTE
  #define TARGET_VALID_TYPE_ATTRIBUTE @var{machine}_valid_type_attribute_p
  
! struct gcc_target target = TARGET_INITIALIZER;
  @end smallexample
  @end deftypevar
  
--- 72,78 ----
  #undef TARGET_VALID_TYPE_ATTRIBUTE
  #define TARGET_VALID_TYPE_ATTRIBUTE @var{machine}_valid_type_attribute_p
  
! struct gcc_target targetm = TARGET_INITIALIZER;
  @end smallexample
  @end deftypevar


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