OSDN Git Service

Workaround for Itanium A/B step errata
[pf3gnuchains/gcc-fork.git] / gcc / tm.texi
index 41ce0ee..9f443b6 100644 (file)
@@ -222,8 +222,7 @@ linker command line.  This constant is placed both before and after
 the value of @code{LIB_SPEC}.
 
 If this macro is not defined, the GCC driver provides a default that
-passes the string @samp{-lgcc} to the linker unless the @samp{-shared}
-option is specified.
+passes the string @samp{-lgcc} to the linker.
 
 @findex STARTFILE_SPEC
 @item STARTFILE_SPEC
@@ -387,6 +386,32 @@ comes before @code{SYSTEM_INCLUDE_DIR} in the search order.
 Cross compilers do not use this macro and do not search either
 @file{/usr/local/include} or its replacement.
 
+@findex MODIFY_TARGET_NAME
+@item MODIFY_TARGET_NAME
+Define this macro if you with to define command-line switches that modify the
+default target name
+
+For each switch, you can include a string to be appended to the first
+part of the configuration name or a string to be deleted from the
+configuration name, if present.  The definition should be an initializer
+for an array of structures.  Each array element should have three
+elements: the switch name (a string constant, including the initial
+dash), one of the enumeration codes @code{ADD} or @code{DELETE} to
+indicate whether the string should be inserted or deleted, and the string
+to be inserted or deleted (a string constant).
+
+For example, on a machine where @samp{64} at the end of the
+configuration name denotes a 64-bit target and you want the @samp{-32}
+and @samp{-64} switches to select between 32- and 64-bit targets, you would
+code
+
+@smallexample
+#define MODIFY_TARGET_NAME \
+  @{ @{ "-32", DELETE, "64"@}, \
+     @{"-64", ADD, "64"@}@}
+@end smallexample
+
+
 @findex SYSTEM_INCLUDE_DIR
 @item SYSTEM_INCLUDE_DIR
 Define this macro as a C string constant if you wish to specify a
@@ -1188,7 +1213,7 @@ used in @code{cpp}.
 @item LONG_LONG_TYPE_SIZE
 A C expression for the size in bits of the type @code{long long} on the
 target machine.  If you don't define this, the default is two
-words.  If you want to support GNU Ada on your machine, the value of
+words.  If you want to support GNU Ada on your machine, the value of this
 macro must be at least 64.
 
 @findex CHAR_TYPE_SIZE
@@ -1305,6 +1330,29 @@ information.
 
 If you don't define this macro, the default is @code{"unsigned int"}.
 
+@findex INTMAX_TYPE
+@item INTMAX_TYPE
+A C expression for a string describing the name of the data type that
+can represent any value of any standard or extended signed integer type.
+The typedef name @code{intmax_t} is defined using the contents of the
+string.  See @code{SIZE_TYPE} above for more information.
+
+If you don't define this macro, the default is the first of
+@code{"int"}, @code{"long int"}, or @code{"long long int"} that has as
+much precision as @code{long long int}.
+
+@findex UINTMAX_TYPE
+@item UINTMAX_TYPE
+A C expression for a string describing the name of the data type that
+can represent any value of any standard or extended unsigned integer
+type.  The typedef name @code{uintmax_t} is defined using the contents
+of the string.  See @code{SIZE_TYPE} above for more information.
+
+If you don't define this macro, the default is the first of
+@code{"unsigned int"}, @code{"long unsigned int"}, or @code{"long long
+unsigned int"} that has as much precision as @code{long long unsigned
+int}.
+
 @findex OBJC_INT_SELECTORS
 @item OBJC_INT_SELECTORS
 Define this macro if the type of Objective C selectors should be
@@ -5038,50 +5086,52 @@ can also define additional sections.
 @table @code
 @findex TEXT_SECTION_ASM_OP
 @item TEXT_SECTION_ASM_OP
-A C expression whose value is a string containing the assembler
-operation that should precede instructions and read-only data.  Normally
-@code{".text"} is right.
+A C expression whose value is a string, including spacing, containing the
+assembler operation that should precede instructions and read-only data.
+Normally @code{"\t.text"} is right.
 
 @findex DATA_SECTION_ASM_OP
 @item DATA_SECTION_ASM_OP
-A C expression whose value is a string containing the assembler
-operation to identify the following data as writable initialized data.
-Normally @code{".data"} is right.
+A C expression whose value is a string, including spacing, containing the
+assembler operation to identify the following data as writable initialized
+data.  Normally @code{"\t.data"} is right.
 
 @findex SHARED_SECTION_ASM_OP
 @item SHARED_SECTION_ASM_OP
-If defined, a C expression whose value is a string containing the
-assembler operation to identify the following data as shared data.  If
-not defined, @code{DATA_SECTION_ASM_OP} will be used.
+If defined, a C expression whose value is a string, including spacing,
+containing the assembler operation to identify the following data as
+shared data.  If not defined, @code{DATA_SECTION_ASM_OP} will be used.
 
 @findex BSS_SECTION_ASM_OP
 @item BSS_SECTION_ASM_OP
-If defined, a C expression whose value is a string containing the
-assembler operation to identify the following data as uninitialized global
-data.  If not defined, and neither @code{ASM_OUTPUT_BSS} nor
-@code{ASM_OUTPUT_ALIGNED_BSS} are defined, uninitialized global data will be
-output in the data section if @samp{-fno-common} is passed, otherwise
-@code{ASM_OUTPUT_COMMON} will be used.
+If defined, a C expression whose value is a string, including spacing,
+containing the assembler operation to identify the following data as
+uninitialized global data.  If not defined, and neither
+@code{ASM_OUTPUT_BSS} nor @code{ASM_OUTPUT_ALIGNED_BSS} are defined,
+uninitialized global data will be output in the data section if
+@samp{-fno-common} is passed, otherwise @code{ASM_OUTPUT_COMMON} will be
+used.
 
 @findex SHARED_BSS_SECTION_ASM_OP
 @item SHARED_BSS_SECTION_ASM_OP
-If defined, a C expression whose value is a string containing the
-assembler operation to identify the following data as uninitialized global
-shared data.  If not defined, and @code{BSS_SECTION_ASM_OP} is, the latter
-will be used.
+If defined, a C expression whose value is a string, including spacing,
+containing the assembler operation to identify the following data as
+uninitialized global shared data.  If not defined, and
+@code{BSS_SECTION_ASM_OP} is, the latter will be used.
 
 @findex INIT_SECTION_ASM_OP
 @item INIT_SECTION_ASM_OP
-If defined, a C expression whose value is a string containing the
-assembler operation to identify the following data as initialization
-code.  If not defined, GCC will assume such a section does not
-exist.
+If defined, a C expression whose value is a string, including spacing,
+containing the assembler operation to identify the following data as
+initialization code.  If not defined, GCC will assume such a section does
+not exist.
 
 @findex FINI_SECTION_ASM_OP
 @item FINI_SECTION_ASM_OP
-If defined, a C expression whose value is a string containing the
-assembler opration to identify the following data as finalization
-code.  If not defined, GCC will assume such a section does not exist.
+If defined, a C expression whose value is a string, including spacing,
+containing the assembler operation to identify the following data as
+finalization code.  If not defined, GCC will assume such a section does
+not exist.
 
 @findex CRT_CALL_STATIC_FUNCTION
 @item CRT_CALL_STATIC_FUNCTION
@@ -5457,9 +5507,9 @@ instruction to assemble a single byte containing the number @var{value}.
 
 @findex ASM_BYTE_OP
 @item ASM_BYTE_OP
-A C string constant giving the pseudo-op to use for a sequence of
-single-byte constants.  If this macro is not defined, the default is
-@code{"byte"}.
+A C string constant, including spacing, giving the pseudo-op to use for a
+sequence of single-byte constants.  If this macro is not defined, the
+default is @code{"\t.byte\t"}.
 
 @findex ASM_OUTPUT_ASCII
 @item ASM_OUTPUT_ASCII (@var{stream}, @var{ptr}, @var{len})
@@ -5895,6 +5945,19 @@ The usual definition of this macro is as follows:
 fprintf (@var{stream}, "L%s%d:\n", @var{prefix}, @var{num})
 @end example
 
+@findex ASM_OUTPUT_DEBUG_LABEL
+@item ASM_OUTPUT_DEBUG_LABEL (@var{stream}, @var{prefix}, @var{num})
+A C statement to output to the stdio stream @var{stream} a debug info
+label whose name is made from the string @var{prefix} and the number
+@var{num}.  This is useful for VLIW targets, where debug info labels
+may need to be treated differently than branch target labels.  On some
+systems, branch target labels must be at the beginning of instruction
+bundles, but debug info labels can occur in the middle of instruction
+bundles.
+
+If this macro is not defined, then @code{ASM_OUTPUT_INTERNAL_LABEL} will be
+used.
+
 @findex ASM_OUTPUT_ALTERNATE_LABEL_NAME
 @item ASM_OUTPUT_ALTERNATE_LABEL_NAME (@var{stream}, @var{string})
 A C statement to output to the stdio stream @var{stream} the string
@@ -5954,7 +6017,7 @@ correct for most systems.
 @findex ASM_OUTPUT_DEF_FROM_DECLS
 @item ASM_OUTPUT_DEF_FROM_DECLS (@var{stream}, @var{decl_of_name}, @var{decl_of_value})
 A C statement to output to the stdio stream @var{stream} assembler code
-which defines (equates) the symbol whoes tree node is @var{decl_of_name}
+which defines (equates) the symbol whose tree node is @var{decl_of_name}
 to have the value of the tree node @var{decl_of_value}.  This macro will
 be used in preference to @samp{ASM_OUTPUT_DEF} if it is defined and if
 the tree nodes are available.
@@ -6157,12 +6220,12 @@ and termination functions:
 @table @code
 @findex INIT_SECTION_ASM_OP
 @item INIT_SECTION_ASM_OP
-If defined, a C string constant for the assembler operation to identify
-the following data as initialization code.  If not defined, GCC will
-assume such a section does not exist.  When you are using special
-sections for initialization and termination functions, this macro also
-controls how @file{crtstuff.c} and @file{libgcc2.c} arrange to run the
-initialization functions.
+If defined, a C string constant, including spacing, for the assembler
+operation to identify the following data as initialization code.  If not
+defined, GCC will assume such a section does not exist.  When you are
+using special sections for initialization and termination functions, this
+macro also controls how @file{crtstuff.c} and @file{libgcc2.c} arrange to
+run the initialization functions.
 
 @item HAS_INIT_SECTION
 @findex HAS_INIT_SECTION
@@ -6213,7 +6276,7 @@ This is like @code{ASM_OUTPUT_CONSTRUCTOR} but used for termination
 functions rather than initialization functions.
 
 When @code{ASM_OUTPUT_CONSTRUCTOR} and @code{ASM_OUTPUT_DESTRUCTOR} are
-defined, the initializaiton routine generated for the generated object
+defined, the initialization routine generated for the generated object
 file will have static linkage.
 @end table
 
@@ -6427,11 +6490,11 @@ files can define these macros differently.
 
 @item ASM_FPRINTF_EXTENSIONS(@var{file}, @var{argptr}, @var{format})
 @findex ASM_FPRINTF_EXTENSIONS
-If defiend this macro should expand to a series of @code{case}
+If defined this macro should expand to a series of @code{case}
 statements which will be parsed inside the @code{switch} statement of
 the @code{asm_fprintf} function.  This allows targets to define extra
 printf formats which may useful when generating their assembler
-statements.  Noet that upper case letters are reserved for future
+statements.  Note that upper case letters are reserved for future
 generic extensions to asm_fprintf, and so are not available to target
 specific code.  The output file is given by the parameter @var{file}.
 The varargs input pointer is @var{argptr} and the rest of the format
@@ -6581,11 +6644,11 @@ or @samp{-fPIC} is in effect, the @code{data_section}, otherwise the
 
 @findex EH_FRAME_SECTION_ASM_OP
 @item EH_FRAME_SECTION_ASM_OP
-If defined, a C string constant for the assembler operation to switch to
-the section for exception handling frame unwind information.  If not
-defined, GCC will provide a default definition if the target supports
-named sections.  @file{crtstuff.c} uses this macro to switch to the
-appropriate section.
+If defined, a C string constant, including spacing, for the assembler
+operation to switch to the section for exception handling frame unwind
+information.  If not defined, GCC will provide a default definition if the
+target supports named sections.  @file{crtstuff.c} uses this macro to
+switch to the appropriate section.
 
 You should define this symbol if your target supports DWARF 2 frame
 unwind information and the default definition does not work.
@@ -6631,6 +6694,15 @@ default.
 If this macro is defined to anything, the DWARF 2 unwinder will be used
 instead of inline unwinders and __unwind_function in the non-setjmp case.
 
+@findex DWARF_CIE_DATA_ALIGNMENT
+@item DWARF_CIE_DATA_ALIGNMENT
+This macro need only be defined if the target might save registers in the
+function prologue at an offset to the stack pointer that is not aligned to
+@code{UNITS_PER_WORD}.  The definition should be the negative minimum
+alignment if @code{STACK_GROWS_DOWNWARD} is defined, and the positive
+minimum alignment otherwise.  @xref{SDB and DWARF}.  Only applicable if
+the target supports DWARF 2 frame unwind information.
+
 @end table
 
 @node Alignment Output
@@ -6836,24 +6908,25 @@ in the text section.
 
 @findex ASM_STABS_OP
 @item ASM_STABS_OP
-A C string constant naming the assembler pseudo op to use instead of
-@code{.stabs} to define an ordinary debugging symbol.  If you don't
-define this macro, @code{.stabs} is used.  This macro applies only to
-DBX debugging information format.
+A C string constant, including spacing, naming the assembler pseudo op to
+use instead of @code{"\t.stabs\t"} to define an ordinary debugging symbol.
+If you don't define this macro, @code{"\t.stabs\t"} is used.  This macro
+applies only to DBX debugging information format.
 
 @findex ASM_STABD_OP
 @item ASM_STABD_OP
-A C string constant naming the assembler pseudo op to use instead of
-@code{.stabd} to define a debugging symbol whose value is the current
-location.  If you don't define this macro, @code{.stabd} is used.
-This macro applies only to DBX debugging information format.
+A C string constant, including spacing, naming the assembler pseudo op to
+use instead of @code{"\t.stabd\t"} to define a debugging symbol whose
+value is the current location.  If you don't define this macro,
+@code{"\t.stabd\t"} is used.  This macro applies only to DBX debugging
+information format.
 
 @findex ASM_STABN_OP
 @item ASM_STABN_OP
-A C string constant naming the assembler pseudo op to use instead of
-@code{.stabn} to define a debugging symbol with no name.  If you don't
-define this macro, @code{.stabn} is used.  This macro applies only to
-DBX debugging information format.
+A C string constant, including spacing, naming the assembler pseudo op to
+use instead of @code{"\t.stabn\t"} to define a debugging symbol with no
+name.  If you don't define this macro, @code{"\t.stabn\t"} is used.  This
+macro applies only to DBX debugging information format.
 
 @findex DBX_NO_XREFS
 @item DBX_NO_XREFS
@@ -7792,7 +7865,7 @@ The primary reason to define this macro is to provide compatibility with
 other compilers for the same target.  In general, we discourage
 definition of target-specific pragmas for GCC.
 
-If the pragma can be implemented by atttributes then the macro
+If the pragma can be implemented by attributes then the macro
 @samp{INSERT_ATTRIBUTES} might be a useful one to define as well.
 
 Preprocessor macros that appear on pragma lines are not expanded.  All