X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fdoc%2Ftm.texi;h=cd7ae6bdfae095c13215672ef9857cc3c9d205d2;hb=e174638ff04a9c48151382a725c55994a8a8d558;hp=4ebdcfb83b05d062338565a02db873be0b49eb3f;hpb=b9bbc2790bcf71d84ffad29ff2f8d044539a63ee;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 4ebdcfb83b0..cd7ae6bdfae 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -773,6 +773,19 @@ argument. Otherwise @var{value} is 1 if the positive form of the option was used and 0 if the ``no-'' form was. @end deftypefn +@deftypefn {Target Hook} bool TARGET_HANDLE_C_OPTION (size_t @var{code}, const char *@var{arg}, int @var{value}) +This target hook is called whenever the user specifies one of the +target-specific C language family options described by the @file{.opt} +definition files(@pxref{Options}). It has the opportunity to do some +option-specific processing and should return true if the option is +valid. The default definition does nothing but return false. + +In general, you should use @code{TARGET_HANDLE_OPTION} to handle +options. However, if processing an option requires routines that are +only available in the C (and related language) front ends, then you +should use @code{TARGET_HANDLE_C_OPTION} instead. +@end deftypefn + @defmac TARGET_VERSION This macro is a C statement to print on @code{stderr} a string describing the particular machine description choice. Every machine @@ -1327,9 +1340,6 @@ need to define @code{TARGET_FLOAT_FORMAT} when the format is IEEE@. This code indicates the ``F float'' (for @code{float}) and ``D float'' or ``G float'' formats (for @code{double}) used on the VAX and PDP-11@. -@item IBM_FLOAT_FORMAT -This code indicates the format used on the IBM System/370. - @item C4X_FLOAT_FORMAT This code indicates the format used on the TMS320C3x/C4x. @end ftable @@ -2496,7 +2506,7 @@ Don't define this macro unless the target machine has limitations which require the macro to do something nontrivial. @end defmac -@deftypefn {Target Hook} enum reg_class TARGET_SECONDARY_RELOAD (bool @var{in_p}, rtx @var{x}, enum reg_class @var{reload_class}, enum machine_mode @var{reload_mode}, secondary_reload_info *@var{sri}) +@deftypefn {Target Hook} {enum reg_class} TARGET_SECONDARY_RELOAD (bool @var{in_p}, rtx @var{x}, enum reg_class @var{reload_class}, enum machine_mode @var{reload_mode}, secondary_reload_info *@var{sri}) Many machines have some registers that cannot be copied directly to or from memory or even from other types of registers. An example is the @samp{MQ} register, which on most machines, can only be copied to or @@ -3717,8 +3727,8 @@ which. @c something, not sure if it looks good. --mew 10feb93 @defmac OUTGOING_REG_PARM_STACK_SPACE -Define this if it is the responsibility of the caller to allocate the area -reserved for arguments passed in registers. +Define this to a nonzero value if it is the responsibility of the caller +to allocate the area reserved for arguments passed in registers. If @code{ACCUMULATE_OUTGOING_ARGS} is defined, this macro controls whether the space for these arguments counts in the value of @@ -5335,6 +5345,15 @@ of @var{x}. The default version returns false for all constants. @end deftypefn +@deftypefn {Target Hook} tree TARGET_BUILTIN_RECIPROCAL (enum tree_code @var{code}, bool @var{sqrt}) +This hook should return the DECL of a function that implements reciprocal of +the builtin function with builtin function code @var{code}, or +@code{NULL_TREE} if such a function is not available. When @var{sqrt} is +true, additional optimizations that apply only to the reciprocal of a square +root function are performed, and only reciprocals of @code{sqrt} function +are valid. +@end deftypefn + @deftypefn {Target Hook} tree TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD (void) This hook should return the DECL of a function @var{f} that given an address @var{addr} as an argument returns a mask @var{m} that can be @@ -6384,6 +6403,18 @@ any assembly code, and before calling any of the section-returning hooks described below. @end deftypefn +@deftypefn {Target Hook} TARGET_ASM_RELOC_RW_MASK (void) +Return a mask describing how relocations should be treated when +selecting sections. Bit 1 should be set if global relocations +should be placed in a read-write section; bit 0 should be set if +local relocations should be placed in a read-write section. + +The default version of this function returns 3 when @option{-fpic} +is in effect, and 0 otherwise. The hook is typically redefined +when the target cannot support (some kinds of) dynamic relocations +in read-only sections even in executables. +@end deftypefn + @deftypefn {Target Hook} {section *} TARGET_ASM_SELECT_SECTION (tree @var{exp}, int @var{reloc}, unsigned HOST_WIDE_INT @var{align}) Return the section into which @var{exp} should be placed. You can assume that @var{exp} is either a @code{VAR_DECL} node or a constant of @@ -6440,6 +6471,16 @@ constants in @code{flag_pic} mode in @code{data_section} and everything else in @code{readonly_data_section}. @end deftypefn +@deftypefn {Target Hook} void TARGET_MANGLE_DECL_ASSEMBLER_NAME (tree @var{decl}, tree @var{id}) +Define this hook if you need to postprocess the assembler name generated +by target-independent code. The @var{id} provided to this hook will be +the computed name (e.g., the macro @code{DECL_NAME} of the @var{decl} in C, +or the mangled name of the @var{decl} in C++). The return value of the +hook is an @code{IDENTIFIER_NODE} for the appropriate mangled name on +your target system. The default implementation of this hook just +returns the @var{id} provided. +@end deftypefn + @deftypefn {Target Hook} void TARGET_ENCODE_SECTION_INFO (tree @var{decl}, rtx @var{rtl}, int @var{new_decl_p}) Define this hook if references to a symbol or a constant must be treated differently depending on something about the variable or @@ -8168,6 +8209,15 @@ register in Dwarf. Otherwise, this hook should return @code{NULL_RTX}. If not defined, the default is to return @code{NULL_RTX}. @end deftypefn +@deftypefn {Target Hook} void TARGET_INIT_DWARF_REG_SIZES_EXTRA (tree @var{address}) +If some registers are represented in Dwarf-2 unwind information in +multiple pieces, define this hook to fill in information about the +sizes of those pieces in the table used by the unwinder at runtime. +It will be called by @code{expand_builtin_init_dwarf_reg_sizes} after +filling in a single size corresponding to each hard register; +@var{address} is the address of the table. +@end deftypefn + @deftypefn {Target Hook} bool TARGET_ASM_TTYPE (rtx @var{sym}) This hook is used to output a reference from a frame unwinding table to the type_info object identified by @var{sym}. It should return @code{true} @@ -9543,8 +9593,11 @@ to @code{Pmode}. @defmac FUNCTION_MODE An alias for the machine mode used for memory references to functions -being called, in @code{call} RTL expressions. On most machines this -should be @code{QImode}. +being called, in @code{call} RTL expressions. On most CISC machines, +where an instruction can begin at any byte address, this should be +@code{QImode}. On most RISC machines, where all instructions have fixed +size and alignment, this should be a mode with the same size and alignment +as the machine instruction words - typically @code{SImode} or @code{HImode}. @end defmac @defmac STDC_0_IN_SYSTEM_HEADERS @@ -9685,6 +9738,18 @@ This must be a value that would also be valid to use with @samp{#pragma pack()} (that is, a small power of two). @end defmac +@findex #pragma +@findex pragma +@defmac HANDLE_PRAGMA_PUSH_POP_MACRO +Define this macro if you want to support the Win32 style pragmas +@samp{#pragma push_macro(macro-name-as-string)} and @samp{#pragma +pop_macro(macro-name-as-string)}. The @samp{#pragma push_macro( +macro-name-as-string)} pragma saves the named macro and via +@samp{#pragma pop_macro(macro-name-as-string)} it will return to the +previous value. +@end defmac + + @defmac DOLLARS_IN_IDENTIFIERS Define this macro to control use of the character @samp{$} in identifier names for the C family of languages. 0 means @samp{$} is