X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gas%2Fdoc%2Finternals.texi;h=cb86b5b3629ec64a48b3b2d21bd464e49b73fa4f;hb=b65d68b8d60338a860e169aac3bac54e6bac60db;hp=f7ae8a407c0cdf44f902c40fa7dd2d2b741bf465;hpb=9406ee731d01bb34ee25280eec18167244ac6e2d;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/doc/internals.texi b/gas/doc/internals.texi index f7ae8a407c..cb86b5b362 100644 --- a/gas/doc/internals.texi +++ b/gas/doc/internals.texi @@ -1,5 +1,5 @@ \input texinfo -@c Copyright (C) 1991-2016 Free Software Foundation, Inc. +@c Copyright (C) 1991-2019 Free Software Foundation, Inc. @setfilename internals.info @node Top @top Assembler Internals @@ -41,11 +41,10 @@ This section describes some fundamental GAS data types. @cindex symbolS structure The definition for the symbol structure, @code{symbolS}, is located in -@file{struc-symbol.h}. +@file{symbols.c}. -In general, the fields of this structure may not be referred to directly. +The fields of this structure may not be referred to directly. Instead, you must use one of the accessor functions defined in @file{symbol.h}. -These accessor functions should work for any GAS version. Symbol structures contain the following fields: @@ -398,12 +397,6 @@ deal with local symbols. @code{struct local_symbol} is much smaller than @code{symbolS} (which also automatically creates a bfd @code{asymbol} structure), so this saves space when assembling large files. -The first field of @code{symbolS} is @code{bsym}, the pointer to the BFD -symbol. The first field of @code{struct local_symbol} is a pointer which is -always set to NULL. This is how the symbol accessor functions can distinguish -local symbols from ordinary symbols. The symbol accessor functions -automatically convert a local symbol into an ordinary symbol when necessary. - @node Expressions @subsection Expressions @cindex internals, expressions @@ -1096,11 +1089,6 @@ You may define this macro to parse an expression used in a data allocation pseudo-op such as @code{.word}. You can use this to recognize relocation directives that may appear in such directives. -@item BITFIELD_CONS_EXPRESSION -@cindex BITFIELD_CONS_EXPRESSION -If you define this macro, GAS will recognize bitfield instructions in data -allocation pseudo-ops, as used on the i960. - @item REPEAT_CONS_EXPRESSION @cindex REPEAT_CONS_EXPRESSION If you define this macro, GAS will recognize repeat counts in data allocation @@ -1130,10 +1118,11 @@ These fields are defined with the @code{TC_FIX_TYPE} macro. A C statement to output target specific debugging information for fixup @var{fixp} to @var{stream}. This macro is called by @code{print_fixup}. -@item TC_FRAG_INIT (@var{fragp}) +@item TC_FRAG_INIT (@var{fragp}, @var{max_bytes}) @cindex TC_FRAG_INIT -A C statement to initialize the target specific fields of frag @var{fragp}. -These fields are defined with the @code{TC_FRAG_TYPE} macro. +A C statement to initialize the target specific fields of frag @var{fragp} +with maximum number of bytes @var{max_bytes}. These fields are defined +with the @code{TC_FRAG_TYPE} macro. @item md_number_to_chars @cindex md_number_to_chars @@ -1221,6 +1210,11 @@ If you do not define @code{md_relax_frag}, you may define machine independent code knows how to use such a table to relax PC relative references. See @file{tc-m68k.c} for an example. @xref{Relaxation}. +@item md_generic_table_relax_frag +@cindex md_generic_table_relax_frag +If defined, it is a C statement that is invoked, instead of +the default implementation, to scan @code{TC_GENERIC_RELAX_TABLE}. + @item md_prepare_relax_scan @cindex md_prepare_relax_scan If defined, it is a C statement that is invoked prior to scanning @@ -1229,7 +1223,7 @@ the relax table. @item LINKER_RELAXING_SHRINKS_ONLY @cindex LINKER_RELAXING_SHRINKS_ONLY If you define this macro, and the global variable @samp{linkrelax} is set -(because of a command line option, or unconditionally in @code{md_begin}), a +(because of a command-line option, or unconditionally in @code{md_begin}), a @samp{.align} directive will cause extra space to be allocated. The linker can then discard this space when relaxing the section. @@ -1593,7 +1587,7 @@ if it is necessary to add object file format specific code to the CPU file. @item obj_begin If you define this macro, GAS will call it at the start of the assembly, after -the command line arguments have been parsed and all the machine independent +the command-line arguments have been parsed and all the machine independent initializations have been completed. @item obj_app_file @@ -1753,12 +1747,6 @@ no-op instructions, it must be able to expand or shrink the section contents while still preserving intra-section references and meeting alignment requirements. -For the i960 using b.out format, no expansion is done; instead, each -@samp{.align} directive causes extra space to be allocated, enough that when -the linker is relaxing a section and removing unneeded space, it can discard -some or all of this extra padding and cause the following data to be correctly -aligned. - For the H8/300, I think the linker expands calls that can't reach, and doesn't worry about alignment issues; the cpu probably never needs any significant alignment beyond the instruction size.