diff options
Diffstat (limited to 'gcc/doc/tm.texi.in')
-rw-r--r-- | gcc/doc/tm.texi.in | 67 |
1 files changed, 39 insertions, 28 deletions
diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in index 083d56ffd3b..b5c75d3ec90 100644 --- a/gcc/doc/tm.texi.in +++ b/gcc/doc/tm.texi.in @@ -842,6 +842,25 @@ pointer. If this macro is defined, GCC will turn on the @option{-fomit-frame-pointer} option whenever @option{-O} is specified. @end defmac +@defmac SWITCHABLE_TARGET +Some targets need to switch between substantially different subtargets +during compilation. For example, the MIPS target has one subtarget for +the traditional MIPS architecture and another for MIPS16. Source code +can switch between these two subarchitectures using the @code{mips16} +and @code{nomips16} attributes. + +Such subtargets can differ in things like the set of available +registers, the set of available instructions, the costs of various +operations, and so on. GCC caches a lot of this type of information +in global variables, and recomputing them for each subtarget takes a +significant amount of time. The compiler therefore provides a facility +for maintaining several versions of the global variables and quickly +switching between them; see @file{target-globals.h} for details. + +Define this macro to 1 if your target needs this facility. The default +is 0. +@end defmac + @node Per-Function Data @section Defining data structures for per-function information. @cindex per-function data @@ -4988,33 +5007,8 @@ to use them for its own purposes. @c 10feb93 @end defmac -@defmac __builtin_args_info (@var{category}) -Use this built-in function to find the first anonymous arguments in -registers. - -In general, a machine may have several categories of registers used for -arguments, each for a particular category of data types. (For example, -on some machines, floating-point registers are used for floating-point -arguments while other arguments are passed in the general registers.) -To make non-varargs functions use the proper calling convention, you -have defined the @code{CUMULATIVE_ARGS} data type to record how many -registers in each category have been used so far - -@code{__builtin_args_info} accesses the same data structure of type -@code{CUMULATIVE_ARGS} after the ordinary argument layout is finished -with it, with @var{category} specifying which word to access. Thus, the -value indicates the first unused register in a given category. - -Normally, you would use @code{__builtin_args_info} in the implementation -of @code{va_start}, accessing each category just once and storing the -value in the @code{va_list} object. This is because @code{va_list} will -have to update the values, and there is no way to alter the -values accessed by @code{__builtin_args_info}. -@end defmac - @defmac __builtin_next_arg (@var{lastarg}) -This is the equivalent of @code{__builtin_args_info}, for stack -arguments. It returns the address of the first anonymous stack +This builtin returns the address of the first anonymous stack argument, as type @code{void *}. If @code{ARGS_GROW_DOWNWARD}, it returns the address of the location above the first anonymous stack argument. Use it in @code{va_start} to initialize the pointer for @@ -5708,6 +5702,8 @@ preserved (e.g.@: used only by a reduction computation). Otherwise, the @hook TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST Returns cost of different scalar or vector statements for vectorization cost model. +For vector memory operations the cost may depend on type (@var{vectype}) and +misalignment value (@var{misalign}). @end deftypefn @hook TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE @@ -7658,6 +7654,19 @@ assembler syntax for defining the name, and a newline. A default definition of this macro is provided which is correct for most systems. @end defmac +@defmac ASM_OUTPUT_FUNCTION_LABEL (@var{stream}, @var{name}, @var{decl}) +A C statement (sans semicolon) to output to the stdio stream +@var{stream} the assembler definition of a label named @var{name} of +a function. +Use the expression @code{assemble_name (@var{stream}, @var{name})} to +output the name itself; before and after that, output the additional +assembler syntax for defining the name, and a newline. A default +definition of this macro is provided which is correct for most systems. + +If this macro is not defined, then the function name is defined in the +usual manner as a label (by means of @code{ASM_OUTPUT_LABEL}). +@end defmac + @findex assemble_name_raw @defmac ASM_OUTPUT_INTERNAL_LABEL (@var{stream}, @var{name}) Identical to @code{ASM_OUTPUT_LABEL}, except that @var{name} is known @@ -7741,11 +7750,11 @@ A C statement (sans semicolon) to output to the stdio stream @var{stream} any text necessary for declaring the name @var{name} of a function which is being defined. This macro is responsible for outputting the label definition (perhaps using -@code{ASM_OUTPUT_LABEL}). The argument @var{decl} is the +@code{ASM_OUTPUT_FUNCTION_LABEL}). The argument @var{decl} is the @code{FUNCTION_DECL} tree node representing the function. If this macro is not defined, then the function name is defined in the -usual manner as a label (by means of @code{ASM_OUTPUT_LABEL}). +usual manner as a label (by means of @code{ASM_OUTPUT_FUNCTION_LABEL}). You may wish to use @code{ASM_OUTPUT_TYPE_DIRECTIVE} in the definition of this macro. @@ -9275,6 +9284,8 @@ line debug info sections. This will result in much more compact line number tables, and hence is desirable if it works. @end defmac +@hook TARGET_WANT_DEBUG_PUB_SECTIONS + @defmac ASM_OUTPUT_DWARF_DELTA (@var{stream}, @var{size}, @var{label1}, @var{label2}) A C statement to issue assembly directives that create a difference @var{lab1} minus @var{lab2}, using an integer of the given @var{size}. |