Patches for tm.texi: INCLUDE_DEFAULTS, STRUCT_FORCE_BLK, TARGET_...

Hans-Peter Nilsson hans-peter.nilsson@axis.com
Fri Mar 17 10:51:00 GMT 2000


A few (admittedly different) tweaks in tm.texi, that need
approval as a whole.

- STRUCT_FORCE_BLK was seemingly spuriously introduced in the
  middle of the description for the INCLUDE_DEFAULTS macro,
  which apart from that also seems the wrong section; the best
  place is IMHO in the Storage Layout section.

- Other tweaks, fixed typos in INCLUDE_DEFAULTS.

- Suggestion to use helper macros for bit-values in
  TARGET_... and TARGET_SWITCHES.  FWIW, I believe this was
  found to be a Good Thing(tm) some (long) time ago.

Ok to install?

Fri Mar 17 18:16:11 2000  Hans-Peter Nilsson  <hp@axis.se>

	* tm.texi (Driver): Fix typos and tweak entry for
	INCLUDE_DEFAULTS.
	Move misplaced STRUCT_FORCE_BLK entry ...
	(Storage Layout): ... to here.
	(Run-time Target): Recommend having TARGET_MASK_... helper macros.

Index: tm.texi
===================================================================
RCS file: /cvs/gcc/egcs/gcc/tm.texi,v
retrieving revision 1.116
diff -c -p -r1.116 tm.texi
*** tm.texi	2000/02/28 21:09:54	1.116
--- tm.texi	2000/03/17 18:33:01
*************** and specify private search areas for GCC
*** 415,440 ****
  
  The definition should be an initializer for an array of structures.
  Each array element should have four elements: the directory name (a
! string constant), the component name, and flag for C++-only directories,
  and a flag showing that the includes in the directory don't need to be
  wrapped in @code{extern @samp{C}} when compiling C++.  Mark the end of
  the array with a null element.
  
  The component name denotes what GNU package the include file is part of,
  if any, in all upper-case letters.  For example, it might be @samp{GCC}
! or @samp{BINUTILS}.  If the package is part of the a vendor-supplied
  operating system, code the component name as @samp{0}.
  
- @findex STRUCT_FORCE_BLK
- @item STRUCT_FORCE_BLK (@var{field})
- Return 1 if a structure containing @var{field} should be accessed using
- @code{BLKMODE}.
- 
- Normally, this is not needed.  See the file @file{c4x.h} for an example
- of how to use this macro to prevent a structure having a floating point
- field from being accessed in an integer mode.
- 
- 
  For example, here is the definition used for VAX/VMS:
  
  @example
--- 415,431 ----
  
  The definition should be an initializer for an array of structures.
  Each array element should have four elements: the directory name (a
! string constant), the component name (also a string constant), a flag
! for C++-only directories,
  and a flag showing that the includes in the directory don't need to be
  wrapped in @code{extern @samp{C}} when compiling C++.  Mark the end of
  the array with a null element.
  
  The component name denotes what GNU package the include file is part of,
  if any, in all upper-case letters.  For example, it might be @samp{GCC}
! or @samp{BINUTILS}.  If the package is part of a vendor-supplied
  operating system, code the component name as @samp{0}.
  
  For example, here is the definition used for VAX/VMS:
  
  @example
*************** by means of a macro @code{TARGET_68020} 
*** 554,563 ****
  @code{target_flags}.
  
  Define a macro @code{TARGET_@var{featurename}} for each such option.
! Its definition should test a bit in @code{target_flags}; for example:
  
  @smallexample
! #define TARGET_68020 (target_flags & 1)
  @end smallexample
  
  One place where these macros are used is in the condition-expressions
--- 545,559 ----
  @code{target_flags}.
  
  Define a macro @code{TARGET_@var{featurename}} for each such option.
! Its definition should test a bit in @code{target_flags}.  It is
! recommended that a helper macro @code{TARGET_MASK_@var{featurename}}
! is defined for each bit-value to test, and used in
! @code{TARGET_@var{featurename}} and @code{TARGET_SWITCHES}.  For
! example:
  
  @smallexample
! #define TARGET_MASK_68020 1
! #define TARGET_68020 (target_flags & TARGET_MASK_68020)
  @end smallexample
  
  One place where these macros are used is in the condition-expressions
*************** with opposite meanings, and picks the la
*** 590,598 ****
  
  @smallexample
  #define TARGET_SWITCHES \
!   @{ @{ "68020", 1, "" @},      \
!     @{ "68000", -1, "Compile for the 68000" @}, \
!     @{ "", 1, "" @}@}
  @end smallexample
  
  @findex TARGET_OPTIONS
--- 586,594 ----
  
  @smallexample
  #define TARGET_SWITCHES \
!   @{ @{ "68020", TARGET_MASK_68020, "" @},      \
!     @{ "68000", -TARGET_MASK_68020, "Compile for the 68000" @}, \
!     @{ "", TARGET_MASK_68020, "" @}@}
  @end smallexample
  
  @findex TARGET_OPTIONS
*************** get from @code{PCC_BITFIELD_TYPE_MATTERS
*** 1003,1008 ****
--- 999,1013 ----
  @item BITFIELD_NBYTES_LIMITED
  Like PCC_BITFIELD_TYPE_MATTERS except that its effect is limited to
  aligning a bitfield within the structure.
+ 
+ @findex STRUCT_FORCE_BLK
+ @item STRUCT_FORCE_BLK (@var{field})
+ Return 1 if a structure containing @var{field} should be accessed using
+ @code{BLKMODE}.
+ 
+ Normally, this is not needed.  See the file @file{c4x.h} for an example
+ of how to use this macro to prevent a structure having a floating point
+ field from being accessed in an integer mode.
  
  @findex ROUND_TYPE_SIZE
  @item ROUND_TYPE_SIZE (@var{type}, @var{computed}, @var{specified})

brgds, H-P


More information about the Gcc-patches mailing list