* doc/as.texinfo: Document .cfi_rel_offset.
[binutils-gdb.git] / gas / doc / as.texinfo
index 7bd85d71730d7c83bf687ff3a24092a7e8aaf74c..9270da8e408c90d4aa484cb85961d656fc095a04 100644 (file)
@@ -43,6 +43,7 @@
 @set I860
 @set I960
 @set IA-64
+@set IP2K
 @set M32R
 @set M68HC11
 @set M680X0
 @set PPC
 @set SH
 @set SPARC
-@set C54X
+@set TIC54X
 @set V850
 @set VAX
+@set XTENSA
 @end ifset
 @c man end
 @c common OR combinations of conditions
+@ifset COFF
+@set COFF-ELF
+@end ifset
+@ifset ELF
+@set COFF-ELF
+@end ifset
 @ifset AOUT
 @set aout-bout
 @end ifset
@@ -138,7 +146,7 @@ under the terms of the GNU Free Documentation License, Version 1.1
 or any later version published by the Free Software Foundation;
 with no Invariant Sections, with no Front-Cover Texts, and with no
 Back-Cover Texts.  A copy of the license is included in the
-section entitled "GNU Free Documentation License".
+section entitled ``GNU Free Documentation License''.
 
 @c man end
 
@@ -191,7 +199,7 @@ Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Fr
       or any later version published by the Free Software Foundation;
       with no Invariant Sections, with no Front-Cover Texts, and with no
       Back-Cover Texts.  A copy of the license is included in the
-      section entitled "GNU Free Documentation License".
+      section entitled ``GNU Free Documentation License''.
 
 @end titlepage
 
@@ -208,7 +216,7 @@ code for @value{TARGET} architectures.
 
 This document is distributed under the terms of the GNU Free
 Documentation License.  A copy of the license is included in the
-section entitled "GNU Free Documentation License".
+section entitled ``GNU Free Documentation License''.
 
 @menu
 * Overview::                    Overview
@@ -240,7 +248,7 @@ code for @value{TARGET} architectures.
 @cindex option summary
 @cindex summary of options
 Here is a brief summary of how to invoke @command{@value{AS}}.  For details,
-@pxref{Invoking,,Comand-Line Options}.
+@pxref{Invoking,,Command-Line Options}.
 
 @c man title AS the portable GNU assembler.
 
@@ -316,7 +324,7 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
    [@b{-O}|@b{-n}|@b{-N}]
 @end ifset
 @ifset H8
-@c Hitachi family chips have no machine-dependent assembler options
+@c Renesas family chips have no machine-dependent assembler options
 @end ifset
 @ifset HPPA
 @c HPPA has no machine-dependent assembler options (yet).
@@ -342,6 +350,11 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
    [@b{-mle}|@b{mbe}]
    [@b{-x}|@b{-xexplicit}] [@b{-xauto}] [@b{-xdebug}]
 @end ifset
+@ifset IP2K
+
+@emph{Target IP2K options:}
+   [@b{-mip2022}|@b{-mip2022ext}]
+@end ifset
 @ifset M32R
 
 @emph{Target M32R options:}
@@ -356,7 +369,9 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
 @ifset M68HC11
 
 @emph{Target M68HC11 options:}
-   [@b{-m68hc11}|@b{-m68hc12}]
+   [@b{-m68hc11}|@b{-m68hc12}|@b{-m68hcs12}]
+   [@b{-mshort}|@b{-mlong}]
+   [@b{-mshort-double}|@b{-mlong-double}]
    [@b{--force-long-branchs}] [@b{--short-branchs}]
    [@b{--strict-direct-mode}] [@b{--print-insn-syntax}]
    [@b{--print-opcodes}] [@b{--generate-example}]
@@ -370,13 +385,20 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
 @ifset MIPS
 
 @emph{Target MIPS options:}
-   [@b{-nocpp}] [@b{-EL}] [@b{-EB}] [@b{-G} @var{num}] [@b{-mcpu}=@var{CPU} ]
-   [@b{-mips1}] [@b{-mips2}] [@b{-mips3}] [@b{-mips4}] [@b{-mips5}]
-   [@b{-mips32}] [@b{-mips64}]
-   [@b{-m4650}] [@b{-no-m4650}]
+   [@b{-nocpp}] [@b{-EL}] [@b{-EB}] [@b{-n}] [@b{-O}[@var{optimization level}]]
+   [@b{-g}[@var{debug level}]] [@b{-G} @var{num}] [@b{-KPIC}] [@b{-call_shared}]
+   [@b{-non_shared}] [@b{-xgot}] [@b{--membedded-pic}]
+   [@b{-mabi}=@var{ABI}] [@b{-32}] [@b{-n32}] [@b{-64}] [@b{-mfp32}] [@b{-mgp32}]
+   [@b{-march}=@var{CPU}] [@b{-mtune}=@var{CPU}] [@b{-mips1}] [@b{-mips2}]
+   [@b{-mips3}] [@b{-mips4}] [@b{-mips5}] [@b{-mips32}] [@b{-mips32r2}]
+   [@b{-mips64}]
+   [@b{-construct-floats}] [@b{-no-construct-floats}]
+   [@b{-trap}] [@b{-no-break}] [@b{-break}] [@b{-no-trap}]
+   [@b{-mfix7000}] [@b{-mno-fix7000}]
+   [@b{-mips16}] [@b{-no-mips16}]
    [@b{-mips3d}] [@b{-no-mips3d}]
-   [@b{--trap}] [@b{--break}] [@b{-n}]
-   [@b{--emulation}=@var{name} ]
+   [@b{-mdmx}] [@b{-no-mdmx}]
+   [@b{-mdebug}] [@b{-no-mdebug}]
 @end ifset
 @ifset MMIX
 
@@ -428,6 +450,13 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
 @ifset Z8000
 @c Z8000 has no machine-dependent assembler options
 @end ifset
+@ifset XTENSA
+
+@emph{Target Xtensa options:}
+ [@b{--[no-]density}] [@b{--[no-]relax}] [@b{--[no-]generics}]
+ [@b{--[no-]text-section-literals}]
+ [@b{--[no-]target-align}] [@b{--[no-]longcalls}]
+@end ifset
 @c man end
 @end smallexample
 
@@ -486,7 +515,7 @@ may help debugging assembler code, if the debugger can handle it.
 
 @item --gdwarf2
 Generate DWARF2 debugging information for each assembler line.  This
-may help debugging assembler code, if the debugger can handle it.  Note - this
+may help debugging assembler code, if the debugger can handle it.  Note---this
 option is only supported by some targets, not all of them.
 
 @item --help
@@ -664,9 +693,25 @@ error if necessary.
 @end table
 @end ifset
 
+@ifset IP2K
+The following options are available when @value{AS} is configured for the
+Ubicom IP2K series.
+
+@table @gcctabopt
+
+@item -mip2022ext
+Specifies that the extended IP2022 instructions are allowed.
+
+@item -mip2022
+Restores the default behaviour, which restricts the permitted instructions to
+just the basic IP2022 ones.
+
+@end table
+@end ifset
+
 @ifset M32R
 The following options are available when @value{AS} is configured for the
-Mitsubishi M32R series.
+Renesas M32R (formerly Mitsubishi M32R) series.
 
 @table @gcctabopt
 
@@ -770,10 +815,22 @@ Motorola 68HC11 or 68HC12 series.
 
 @table @gcctabopt
 
-@item -m68hc11 | -m68hc12
+@item -m68hc11 | -m68hc12 | -m68hcs12
 Specify what processor is the target.  The default is
 defined by the configuration option when building the assembler.
 
+@item -mshort
+Specify to use the 16-bit integer ABI.
+
+@item -mlong
+Specify to use the 32-bit integer ABI.  
+
+@item -mshort-double
+Specify to use the 32-bit double ABI.  
+
+@item -mlong-double
+Specify to use the 64-bit double ABI.  
+
 @item --force-long-branchs
 Relative branches are turned into absolute ones. This concerns
 conditional branches, unconditional branches and branches to a
@@ -842,7 +899,7 @@ behaviour in the shell.
 
 @ifset MIPS
 The following options are available when @value{AS} is configured for
-a MIPS processor.
+a @sc{mips} processor.
 
 @table @gcctabopt
 @item -G @var{num}
@@ -865,22 +922,48 @@ Generate ``little endian'' format output.
 @itemx -mips2
 @itemx -mips3
 @itemx -mips4
+@itemx -mips5
 @itemx -mips32
+@itemx -mips32r2
 @itemx -mips64
-Generate code for a particular MIPS Instruction Set Architecture level.
-@samp{-mips1} corresponds to the @sc{r2000} and @sc{r3000} processors,
-@samp{-mips2} to the @sc{r6000} processor, and @samp{-mips3} to the @sc{r4000}
-processor.
-@samp{-mips5}, @samp{-mips32}, and @samp{-mips64} correspond
-to generic @sc{MIPS V}, @sc{MIPS32}, and @sc{MIPS64} ISA
-processors, respectively.
-
-@item -m4650
-@itemx -no-m4650
-Generate code for the MIPS @sc{r4650} chip.  This tells the assembler to accept
-the @samp{mad} and @samp{madu} instruction, and to not schedule @samp{nop}
-instructions around accesses to the @samp{HI} and @samp{LO} registers.
-@samp{-no-m4650} turns off this option.
+Generate code for a particular @sc{mips} Instruction Set Architecture level.
+@samp{-mips1} is an alias for @samp{-march=r3000}, @samp{-mips2} is an
+alias for @samp{-march=r6000}, @samp{-mips3} is an alias for
+@samp{-march=r4000} and @samp{-mips4} is an alias for @samp{-march=r8000}.
+@samp{-mips5}, @samp{-mips32}, @samp{-mips32r2}, and @samp{-mips64}
+correspond to generic
+@samp{MIPS V}, @samp{MIPS32}, @samp{MIPS32 Release 2}, and
+@samp{MIPS64} ISA processors,
+respectively.
+
+@item -march=@var{CPU}
+Generate code for a particular @sc{mips} cpu.
+
+@item -mtune=@var{cpu}
+Schedule and tune for a particular @sc{mips} cpu.
+
+@item -mfix7000
+@itemx -mno-fix7000
+Cause nops to be inserted if the read of the destination register
+of an mfhi or mflo instruction occurs in the following two instructions.
+
+@item -mdebug
+@itemx -no-mdebug
+Cause stabs-style debugging output to go into an ECOFF-style .mdebug
+section instead of the standard ELF .stabs sections.
+
+@item -mgp32
+@itemx -mfp32
+The register sizes are normally inferred from the ISA and ABI, but these
+flags force a certain group of registers to be treated as 32 bits wide at
+all times.  @samp{-mgp32} controls the size of general-purpose registers
+and @samp{-mfp32} controls the size of floating-point registers.
+
+@item -mips16
+@itemx -no-mips16
+Generate code for the MIPS 16 processor.  This is equivalent to putting
+@code{.set mips16} at the start of the assembly file.  @samp{-no-mips16}
+turns off this option.
 
 @item -mips3d
 @itemx -no-mips3d
@@ -888,10 +971,19 @@ Generate code for the MIPS-3D Application Specific Extension.
 This tells the assembler to accept MIPS-3D instructions.
 @samp{-no-mips3d} turns off this option.
 
-@item -mcpu=@var{CPU}
-Generate code for a particular MIPS cpu.  It is exactly equivalent to
-@samp{-m@var{cpu}}, except that there are more value of @var{cpu}
-understood.
+@item -mdmx
+@itemx -no-mdmx
+Generate code for the MDMX Application Specific Extension.
+This tells the assembler to accept MDMX instructions.
+@samp{-no-mdmx} turns off this option.
+
+@item --construct-floats
+@itemx --no-construct-floats
+The @samp{--no-construct-floats} option disables the construction of
+double width floating point constants by loading the two halves of the
+value into the two single width floating point registers that make up
+the double width register.  By default @samp{--construct-floats} is
+selected, allowing construction of these floating point constants.
 
 @cindex emulation
 @item --emulation=@var{name}
@@ -908,7 +1000,7 @@ in the name.  Using @samp{-EB} or @samp{-EL} will override the endianness
 selection in any case.
 
 This option is currently supported only when the primary target
-@command{@value{AS}} is configured for is a MIPS ELF or ECOFF target.
+@command{@value{AS}} is configured for is a @sc{mips} ELF or ECOFF target.
 Furthermore, the primary target or others specified with
 @samp{--enable-targets=@dots{}} at configuration time must include support for
 the other format, if both are to be available.  For example, the Irix 5
@@ -922,7 +1014,6 @@ more processors.
 @command{@value{AS}} ignores this option.  It is accepted for compatibility with
 the native tools.
 
-@need 900
 @item --trap
 @itemx --no-trap
 @itemx --break
@@ -974,6 +1065,45 @@ Assemble for a little endian target.
 See the info pages for documentation of the MMIX-specific options.
 @end ifset
 
+@ifset XTENSA
+The following options are available when @value{AS} is configured for
+an Xtensa processor.
+
+@table @gcctabopt
+@item --density | --no-density
+Enable or disable use of instructions from the Xtensa code density
+option.  This is enabled by default when the Xtensa processor supports
+the code density option.
+
+@item --relax | --no-relax
+Enable or disable instruction relaxation.  This is enabled by default.
+Note: In the current implementation, these options also control whether
+assembler optimizations are performed, making these options equivalent
+to @option{--generics} and @option{--no-generics}.
+
+@item --generics | --no-generics
+Enable or disable all assembler transformations of Xtensa instructions.
+The default is @option{--generics};
+@option{--no-generics} should be used only in the rare cases when the
+instructions must be exactly as specified in the assembly source.
+
+@item --text-section-literals | --no-text-section-literals
+With @option{--text-@-section-@-literals}, literal pools are interspersed
+in the text section.  The default is
+@option{--no-@-text-@-section-@-literals}, which places literals in a
+separate section in the output file.
+
+@item --target-align | --no-target-align
+Enable or disable automatic alignment to reduce branch penalties at the
+expense of some code density.  The default is @option{--target-@-align}.
+
+@item --longcalls | --no-longcalls
+Enable or disable transformation of call instructions to allow calls
+across a greater range of addresses.  The default is
+@option{--no-@-longcalls}.
+@end table
+@end ifset
+
 @c man end
 
 @menu
@@ -1018,16 +1148,18 @@ machine architecture manual for this information.
 @ifclear GENERIC
 @ifset H8/300
 For information on the H8/300 machine instruction set, see @cite{H8/300
-Series Programming Manual} (Hitachi ADE--602--025).  For the H8/300H,
-see @cite{H8/300H Series Programming Manual} (Hitachi).
+Series Programming Manual}.  For the H8/300H, see @cite{H8/300H Series
+Programming Manual} (Renesas).
 @end ifset
 @ifset H8/500
 For information on the H8/500 machine instruction set, see @cite{H8/500
-Series Programming Manual} (Hitachi M21T001).
+Series Programming Manual} (Renesas M21T001).
 @end ifset
 @ifset SH
-For information on the Hitachi SH machine instruction set, see
-@cite{SH-Microcomputer User's Manual} (Hitachi Micro Systems, Inc.).
+For information on the Renesas (formerly Hitachi) / SuperH SH machine instruction set,
+see @cite{SH-Microcomputer User's Manual} (Renesas) or
+@cite{SH-4 32-bit CPU Core Architecture} (SuperH) and
+@cite{SuperH (SH) 64-Bit RISC Series} (SuperH).
 @end ifset
 @ifset Z8000
 For information on the Z8000 machine instruction set, see @cite{Z8000 CPU Technical Manual}
@@ -1108,7 +1240,7 @@ are typically different in different file formats.  @xref{Symbol
 Attributes,,Symbol Attributes}.
 @ifclear GENERIC
 @ifclear MULTI-OBJ
-On the @value{TARGET}, @command{@value{AS}} is configured to produce
+For the @value{TARGET} target, @command{@value{AS}} is configured to produce
 @value{OBJ-NAME} format object files.
 @end ifclear
 @c The following should exhaust all configs that set MULTI-OBJ, ideally
@@ -1311,7 +1443,7 @@ because many of them aren't supposed to happen.
 This chapter describes command-line options available in @emph{all}
 versions of the @sc{gnu} assembler; @pxref{Machine Dependencies}, for options specific
 @ifclear GENERIC
-to the @value{TARGET}.
+to the @value{TARGET} target.
 @end ifclear
 @ifset GENERIC
 to particular machine architectures.
@@ -1319,7 +1451,7 @@ to particular machine architectures.
 
 @c man begin DESCRIPTION
 
-If you are invoking @command{@value{AS}} via the @sc{gnu} C compiler (version 2),
+If you are invoking @command{@value{AS}} via the @sc{gnu} C compiler,
 you can use the @samp{-Wa} option to pass arguments through to the assembler.
 The assembler arguments must be separated from each other (and the @samp{-Wa})
 by commas.  For example:
@@ -1330,7 +1462,7 @@ gcc -c -g -O -Wa,-alh,-L file.c
 
 @noindent
 This passes two options to the assembler: @samp{-alh} (emit a listing to
-standard output with with high-level and assembly source) and @samp{-L} (retain
+standard output with high-level and assembly source) and @samp{-L} (retain
 local symbols in the symbol table).
 
 Usually you do not need to use this @samp{-Wa} mechanism, since many compiler
@@ -1442,7 +1574,7 @@ not work correctly.
 @end quotation
 
 @node I
-@section @code{.include} search path: @option{-I} @var{path}
+@section @code{.include} Search Path: @option{-I} @var{path}
 
 @kindex -I @var{path}
 @cindex paths for @code{.include}
@@ -1521,7 +1653,7 @@ dump appears on the left hand side of the listing output.
 @kindex --listing-lhs-width2
 @cindex Width of continuation lines of disassembly output
 Sets the maximum width, in words, of any further lines of the hex byte dump for
-a given inut source line.  If this value is not specified, it defaults to being
+a given input source line.  If this value is not specified, it defaults to being
 the same as the value specified for @samp{--listing-lhs-width}.  If neither
 switch is used the default is to one.
 
@@ -1671,7 +1803,7 @@ The i960 @code{.setreal} pseudo-op is not supported.
 @end itemize
 
 @node MD
-@section Dependency tracking: @option{--MD}
+@section Dependency Tracking: @option{--MD}
 
 @kindex --MD
 @cindex dependency tracking
@@ -1735,8 +1867,8 @@ address displacements (because we do not have to cross between text and
 data section).  We refrain from doing this simply for compatibility with
 older versions of @command{@value{AS}}.  In future, @option{-R} may work this way.
 
-@ifset COFF
-When @command{@value{AS}} is configured for COFF output,
+@ifset COFF-ELF
+When @command{@value{AS}} is configured for COFF or ELF output,
 this option is only useful if you use sections named @samp{.text} and
 @samp{.data}.
 @end ifset
@@ -1759,7 +1891,7 @@ Use @samp{--statistics} to display two statistics about the resources used by
 seconds).
 
 @node traditional-format
-@section Compatible output: @option{--traditional-format}
+@section Compatible Output: @option{--traditional-format}
 
 @kindex --traditional-format
 For some targets, the output of @command{@value{AS}} is different in some ways
@@ -1788,8 +1920,8 @@ assembling compiler output.  But programs written by people often
 cause @command{@value{AS}} to give a warning that a particular assumption was
 made.  All such warnings are directed to the standard error file.
 
-@kindex @samp{-W}
-@kindex @samp{--no-warn}
+@kindex -W
+@kindex --no-warn
 @cindex suppressing warnings
 @cindex warnings, suppressing
 If you use the @option{-W} and @option{--no-warn} options, no warnings are issued.
@@ -1797,13 +1929,13 @@ This only affects the warning messages: it does not change any particular of
 how @command{@value{AS}} assembles your file.  Errors, which stop the assembly,
 are still reported.
 
-@kindex @samp{--fatal-warnings}
+@kindex --fatal-warnings
 @cindex errors, caused by warnings
 @cindex warnings, causing error
 If you use the @option{--fatal-warnings} option, @command{@value{AS}} considers
 files that generate warnings to be in error.
 
-@kindex @samp{--warn}
+@kindex --warn
 @cindex warnings, switching on
 You can switch these options off again by specifying @option{--warn}, which
 causes warnings to be output as usual.
@@ -1869,7 +2001,7 @@ It does not do macro processing, include file handling, or
 anything else you may get from your C compiler's preprocessor.  You can
 do include file processing with the @code{.include} directive
 (@pxref{Include,,@code{.include}}).  You can use the @sc{gnu} C compiler driver
-to get other ``CPP'' style preprocessing, by giving the input file a
+to get other ``CPP'' style preprocessing by giving the input file a
 @samp{.S} suffix.  @xref{Overall Options,, Options Controlling the Kind of
 Output, gcc.info, Using GNU CC}.
 
@@ -1956,11 +2088,14 @@ is considered a comment and is ignored.  The line comment character is
 @samp{;} for Motorola PowerPC;
 @end ifset
 @ifset SH
-@samp{!} for the Hitachi SH;
+@samp{!} for the Renesas / SuperH SH;
 @end ifset
 @ifset SPARC
 @samp{!} on the SPARC;
 @end ifset
+@ifset IP2K
+@samp{#} on the ip2k;
+@end ifset
 @ifset M32R
 @samp{#} on the m32r;
 @end ifset
@@ -1982,6 +2117,9 @@ is considered a comment and is ignored.  The line comment character is
 @ifset V850
 @samp{#} on the V850;
 @end ifset
+@ifset XTENSA
+@samp{#} for Xtensa systems;
+@end ifset
 see @ref{Machine Dependencies}.  @refill
 @c FIXME What about i860?
 
@@ -2077,7 +2215,7 @@ constants are an exception: they do not end statements.
 @ifset H8
 A @dfn{statement} ends at a newline character (@samp{\n}); or (for the
 H8/300) a dollar sign (@samp{$}); or (for the
-Hitachi-SH or the
+Renesas-SH or the
 H8/500) a semicolon
 (@samp{;}).  The newline or separator character is considered part of
 the preceding statement.  Newlines and separators within character
@@ -2302,8 +2440,7 @@ grave accent.  A newline
 @end ifset
 @ifset H8
 (or dollar sign @samp{$}, for the H8/300; or semicolon @samp{;} for the
-Hitachi SH or
-H8/500)
+Renesas SH or H8/500)
 @end ifset
 @end ifset
 @end ifclear
@@ -2407,7 +2544,7 @@ A letter, to tell @command{@value{AS}} the rest of the number is a flonum.
 @end ignore
 
 On the H8/300, H8/500,
-Hitachi SH,
+Renesas / SuperH SH,
 and AMD 29K architectures, the letter must be
 one of the letters @samp{DFPRSX} (in upper or lower case).
 
@@ -2544,7 +2681,7 @@ the task of adjusting mentions of object-file addresses so they refer to
 the proper run-time addresses.
 @ifset H8
 For the H8/300 and H8/500,
-and for the Hitachi SH,
+and for the Renesas / SuperH SH,
 @command{@value{AS}} pads sections if needed to
 ensure they end on a word (sixteen bit) boundary.
 @end ifset
@@ -2554,9 +2691,9 @@ An object file written by @command{@value{AS}} has at least three sections, any
 of which may be empty.  These are named @dfn{text}, @dfn{data} and
 @dfn{bss} sections.
 
-@ifset COFF
+@ifset COFF-ELF
 @ifset GENERIC
-When it generates COFF output,
+When it generates COFF or ELF output,
 @end ifset
 @command{@value{AS}} can also generate whatever other named sections you specify
 using the @samp{.section} directive (@pxref{Section,,@code{.section}}).
@@ -2662,7 +2799,7 @@ use of @command{@value{AS}} and have no meaning except during assembly.
 
 @table @strong
 
-@ifset COFF
+@ifset COFF-ELF
 @cindex named sections
 @cindex sections, named
 @item named sections
@@ -2675,15 +2812,15 @@ use of @command{@value{AS}} and have no meaning except during assembly.
 @end ifset
 These sections hold your program.  @command{@value{AS}} and @code{@value{LD}} treat them as
 separate but equal sections.  Anything you can say of one section is
-true another.
-@ifset aout-bout
+true of another.
+@c @ifset aout-bout
 When the program is running, however, it is
 customary for the text section to be unalterable.  The
 text section is often shared among processes: it contains
 instructions, constants and the like.  The data section of a running
 program is usually alterable: for example, C variables would be stored
 in the data section.
-@end ifset
+@c @end ifset
 
 @cindex bss section
 @item bss section
@@ -2710,13 +2847,13 @@ the preceding sections.
 
 @cindex relocation example
 An idealized example of three relocatable sections follows.
-@ifset COFF
+@ifset COFF-ELF
 The example uses the traditional section names @samp{.text} and @samp{.data}.
 @end ifset
 Memory addresses are on the horizontal axis.
 
 @c TEXI2ROFF-KILL
-@ifinfo
+@ifnottex
 @c END TEXI2ROFF-KILL
 @smallexample
                       +-----+----+--+
@@ -2737,10 +2874,10 @@ linked program:       |  |TTT|ttttt|  |dddd|DDD|00000|
     addresses:        0 @dots{}
 @end smallexample
 @c TEXI2ROFF-KILL
-@end ifinfo
+@end ifnottex
 @need 5000
 @tex
-
+\bigskip
 \line{\it Partial program \#1: \hfil}
 \line{\ibox{2.5cm}{\tt text}\ibox{2cm}{\tt data}\ibox{1cm}{\tt bss}\hfil}
 \line{\boxit{2.5cm}{\tt ttttt}\boxit{2cm}{\tt dddd}\boxit{1cm}{\tt 00}\hfil}
@@ -2798,7 +2935,7 @@ it in the expr section.
 @cindex grouping data
 @ifset aout-bout
 Assembled bytes
-@ifset COFF
+@ifset COFF-ELF
 conventionally
 @end ifset
 fall into two sections: text and data.
@@ -2838,7 +2975,7 @@ of @command{@value{AS}}.)
 @ifset H8
 On the H8/300 and H8/500 platforms, each subsection is zero-padded to a word
 boundary (two bytes).
-The same is true on the Hitachi SH.
+The same is true on the Renesas SH.
 @end ifset
 @ifset I960
 @c FIXME section padding (alignment)?
@@ -2864,9 +3001,9 @@ data subsections as a data section.
 To specify which subsection you want subsequent statements assembled
 into, use a numeric argument to specify it, in a @samp{.text
 @var{expression}} or a @samp{.data @var{expression}} statement.
-@ifset COFF
+@ifset COFF-ELF
 @ifset GENERIC
-When generating COFF output, you
+When generating COFF or ELF output, you
 @end ifset
 @ifclear GENERIC
 You
@@ -2995,10 +3132,9 @@ body of a symbol name, though not at its beginning.
 @ifset SPECIAL-SYMS
 @ifset H8
 Symbol names begin with a letter or with one of @samp{._}.  On the
-Hitachi SH or the
-H8/500, you can also use @code{$} in symbol names.  That character may
-be followed by any string of digits, letters, dollar signs (save on the
-H8/300), and underscores.
+Renesas SH or the H8/500, you can also use @code{$} in symbol names.  That
+character may be followed by any string of digits, letters, dollar signs (save
+on the H8/300), and underscores.
 @end ifset
 @end ifset
 
@@ -3554,6 +3690,15 @@ Some machine configurations provide additional directives.
 * Balign::                      @code{.balign @var{abs-expr} , @var{abs-expr}}
 * Byte::                        @code{.byte @var{expressions}}
 * Comm::                        @code{.comm @var{symbol} , @var{length} }
+
+* CFI directives::             @code{.cfi_startproc}
+                               @code{.cfi_endproc}
+                               @code{.cfi_def_cfa @var{register}, @var{offset}}
+                               @code{.cfi_def_cfa_register @var{register}}
+                               @code{.cfi_def_cfa_offset @var{offset}}
+                               @code{.cfi_adjust_cfa_offset @var{offset}}
+                               @code{.cfi_offset @var{register}, @var{offset}}
+
 * Data::                        @code{.data @var{subsection}}
 @ifset COFF
 * Def::                         @code{.def @var{name}}
@@ -3647,13 +3792,18 @@ Some machine configurations provide additional directives.
 * Sbttl::                       @code{.sbttl "@var{subheading}"}
 @ifset COFF
 * Scl::                         @code{.scl @var{class}}
-* Section::                     @code{.section @var{name}, @var{subsection}}
+@end ifset
+@ifset COFF-ELF
+* Section::                     @code{.section @var{name}}
 @end ifset
 
 * Set::                         @code{.set @var{symbol}, @var{expression}}
 * Short::                       @code{.short @var{expressions}}
 * Single::                      @code{.single @var{flonums}}
+@ifset COFF-ELF
 * Size::                        @code{.size [@var{name} , @var{expression}]}
+@end ifset
+
 * Skip::                        @code{.skip @var{size} , @var{fill}}
 * Sleb128::                    @code{.sleb128 @var{expressions}}
 * Space::                       @code{.space @var{size} , @var{fill}}
@@ -3674,7 +3824,10 @@ Some machine configurations provide additional directives.
 
 * Text::                        @code{.text @var{subsection}}
 * Title::                       @code{.title "@var{heading}"}
+@ifset COFF-ELF
 * Type::                        @code{.type <@var{int} | @var{name} , @var{type description}>}
+@end ifset
+
 * Uleb128::                     @code{.uleb128 @var{expressions}}
 @ifset COFF
 * Val::                         @code{.val @var{addr}}
@@ -3740,8 +3893,8 @@ required alignment; this can be useful if you want the alignment to be filled
 with no-op instructions when appropriate.
 
 The way the required alignment is specified varies from system to system.
-For the a29k, hppa, m68k, m88k, w65, sparc, and Hitachi SH, and i386 using ELF
-format,
+For the a29k, hppa, m68k, m88k, w65, sparc, Xtensa, and Renesas / SuperH SH,
+and i386 using ELF format,
 the first expression is the
 alignment request in bytes.  For example @samp{.align 8} advances
 the location counter until it is a multiple of 8.  If the location counter
@@ -3822,6 +3975,51 @@ undefined.
 @code{.byte} expects zero or more expressions, separated by commas.
 Each expression is assembled into the next byte.
 
+@node CFI directives
+@section @code{.cfi_startproc}
+@cindex @code{cfi_startproc} directive
+@code{.cfi_startproc} is used at the beginning of each function that
+should have an entry in @code{.eh_frame}. It initializes some internal
+data structures and emits architecture dependent initial CFI instructions.
+Don't forget to close the function by 
+@code{.cfi_endproc}.
+
+@section @code{.cfi_endproc}
+@cindex @code{cfi_endproc} directive
+@code{.cfi_endproc} is used at the end of a function where it closes its
+unwind entry previously opened by
+@code{.cfi_startproc}. and emits it to @code{.eh_frame}.
+
+@section @code{.cfi_def_cfa @var{register}, @var{offset}}
+@code{.cfi_def_cfa} defines a rule for computing CFA as: @i{take 
+address from @var{register} and add @var{offset} to it}.
+
+@section @code{.cfi_def_cfa_register @var{register}}
+@code{.cfi_def_cfa_register} modifies a rule for computing CFA. From
+now on @var{register} will be used instead of the old one. Offset
+remains the same.
+
+@section @code{.cfi_def_cfa_offset @var{offset}}
+@code{.cfi_def_cfa_offset} modifies a rule for computing CFA. Register
+remains the same, but @var{offset} is new. Note that it is the
+absolute offset that will be added to a defined register to compute
+CFA address.
+
+@section @code{.cfi_adjust_cfa_offset @var{offset}}
+Same as @code{.cfi_def_cfa_offset} but @var{offset} is a relative
+value that is added/substracted from the previous offset.
+
+@section @code{.cfi_offset @var{register}, @var{offset}}
+Previous value of @var{register} is saved at offset @var{offset} from
+CFA. 
+
+@section @code{.cfi_rel_offset @var{register}, @var{offset}}
+Previous value of @var{register} is saved at offset @var{offset} from
+the current CFA register.  This is transformed to @code{.cfi_offset}
+using the known displacement of the CFA register from the CFA.
+This is often easier to use, because the number will match the
+code it's annotating.
+
 @node Comm
 @section @code{.comm @var{symbol} , @var{length} }
 
@@ -4012,7 +4210,9 @@ The syntax for @code{equ} on the HPPA is
 @section @code{.equiv @var{symbol}, @var{expression}}
 @cindex @code{equiv} directive
 The @code{.equiv} directive is like @code{.equ} and @code{.set}, except that
-the assembler will signal an error if @var{symbol} is already defined.
+the assembler will signal an error if @var{symbol} is already defined.  Note a
+symbol which has been referenced but not actually defined is considered to be
+undefined.
 
 Except for the contents of the error message, this is roughly equivalent to 
 @smallexample
@@ -4148,8 +4348,8 @@ partial programs.  You may need the HPPA-only @code{.EXPORT} directive as well.
 @node Hidden
 @section @code{.hidden @var{names}}
 
-@cindex @code{.hidden} directive
-@cindex Visibility
+@cindex @code{hidden} directive
+@cindex visibility
 This one of the ELF visibility directives.  The other two are
 @code{.internal} (@pxref{Internal,,@code{.internal}}) and 
 @code{.protected} (@pxref{Protected,,@code{.protected}}).
@@ -4211,7 +4411,8 @@ The following variants of @code{.if} are also supported:
 @cindex @code{ifdef} directive
 @item .ifdef @var{symbol}
 Assembles the following section of code if the specified @var{symbol}
-has been defined.
+has been defined.  Note a symbol which has been referenced but not yet defined
+is considered to be undefined.
 
 @cindex @code{ifc} directive
 @item .ifc @var{string1},@var{string2}
@@ -4257,7 +4458,8 @@ following section of code if the two strings are not the same.
 @item .ifndef @var{symbol}
 @itemx .ifnotdef @var{symbol}
 Assembles the following section of code if the specified @var{symbol}
-has not been defined.  Both spelling variants are equivalent.
+has not been defined.  Both spelling variants are equivalent.  Note a symbol
+which has been referenced but not yet defined is considered to be undefined.
 
 @cindex @code{ifne} directive
 @item .ifne @var{absolute expression}
@@ -4313,7 +4515,7 @@ of target the assembly is for.
 @ifclear GENERIC
 @ifset H8
 On the H8/500 and most forms of the H8/300, @code{.int} emits 16-bit
-integers.  On the H8/300H and the Hitachi SH, however, @code{.int} emits
+integers.  On the H8/300H and the Renesas SH, however, @code{.int} emits
 32-bit integers.
 @end ifset
 @end ifclear
@@ -4322,8 +4524,8 @@ integers.  On the H8/300H and the Hitachi SH, however, @code{.int} emits
 @node Internal
 @section @code{.internal @var{names}}
 
-@cindex @code{.internal} directive
-@cindex Visibility
+@cindex @code{internal} directive
+@cindex visibility
 This one of the ELF visibility directives.  The other two are
 @code{.hidden} (@pxref{Hidden,,@code{.hidden}}) and 
 @code{.protected} (@pxref{Protected,,@code{.protected}}).
@@ -4331,7 +4533,7 @@ This one of the ELF visibility directives.  The other two are
 This directive overrides the named symbols default visibility (which is set by
 their binding: local, global or weak).  The directive sets the visibility to
 @code{internal} which means that the symbols are considered to be @code{hidden}
-(ie not visible to other components), and that some extra, processor specific
+(i.e., not visible to other components), and that some extra, processor specific
 processing must also be performed upon the  symbols as well.
 @end ifset
 
@@ -4766,7 +4968,7 @@ undefined.
 @node Previous
 @section @code{.previous}
 
-@cindex @code{.previous} directive
+@cindex @code{previous} directive
 @cindex Section Stack
 This is one of the ELF section stack manipulation directives.  The others are
 @code{.section} (@pxref{Section}), @code{.subsection} (@pxref{SubSection}),
@@ -4786,7 +4988,7 @@ the top section on the section stack.
 @node PopSection
 @section @code{.popsection}
 
-@cindex @code{.popsection} directive
+@cindex @code{popsection} directive
 @cindex Section Stack
 This is one of the ELF section stack manipulation directives.  The others are
 @code{.section} (@pxref{Section}), @code{.subsection} (@pxref{SubSection}), 
@@ -4809,8 +5011,8 @@ assembly.  You must put @var{string} in double quotes.
 @node Protected
 @section @code{.protected @var{names}}
 
-@cindex @code{.protected} directive
-@cindex Visibility
+@cindex @code{protected} directive
+@cindex visibility
 This one of the ELF visibility directives.  The other two are
 @code{.hidden} (@pxref{Hidden}) and @code{.internal} (@pxref{Internal}).
 
@@ -4853,7 +5055,7 @@ expanded.  @xref{Macro}.
 @node PushSection
 @section @code{.pushsection @var{name} , @var{subsection}}
 
-@cindex @code{.pushsection} directive
+@cindex @code{pushsection} directive
 @cindex Section Stack
 This is one of the ELF section stack manipulation directives.  The others are
 @code{.section} (@pxref{Section}), @code{.subsection} (@pxref{SubSection}), 
@@ -4941,10 +5143,10 @@ accepts this directive but ignores it.
 @end ifset
 @end ifset
 
+@ifset COFF-ELF
 @node Section
-@section @code{.section @var{name}} (COFF version)
+@section @code{.section @var{name}}
 
-@cindex @code{section} directive
 @cindex named section
 Use the @code{.section} directive to assemble the following code into a section
 named @var{name}.
@@ -4953,6 +5155,13 @@ This directive is only supported for targets that actually support arbitrarily
 named sections; on @code{a.out} targets, for example, it is not accepted, even
 with a standard @code{a.out} section name.
 
+@ifset COFF
+@ifset ELF
+@c only print the extra heading if both COFF and ELF are set
+@subheading COFF Version
+@end ifset
+
+@cindex @code{section} directive (COFF version)
 For COFF targets, the @code{.section} directive is used in one of the following
 ways:
 
@@ -4990,20 +5199,21 @@ will be as if no flags had been specified at all.
 
 If the optional argument to the @code{.section} directive is not quoted, it is
 taken as a subsegment number (@pxref{Sub-Sections}).
+@end ifset
 
-
-@section @code{.section @var{name}} (ELF version)
-
-@cindex @code{section} directive
-@cindex named section
 @ifset ELF
+@ifset COFF
+@c only print the extra heading if both COFF and ELF are set
+@subheading ELF Version
+@end ifset
+
 @cindex Section Stack
 This is one of the ELF section stack manipulation directives.  The others are
 @code{.subsection} (@pxref{SubSection}), @code{.pushsection} 
 (@pxref{PushSection}), @code{.popsection} (@pxref{PopSection}), and
 @code{.previous} (@pxref{Previous}).
-@end ifset
 
+@cindex @code{section} directive (ELF version)
 For ELF targets, the @code{.section} directive is used like this:
 
 @smallexample
@@ -5033,6 +5243,10 @@ section contains data
 section does not contain data (i.e., section only occupies space)
 @end table
 
+Note on targets where the @code{@@} character is the start of a comment (eg
+ARM) then another character is used instead.  For example the ARM port uses the
+@code{%} character.
+
 If @var{flags} contains @code{M} flag, @var{type} argument must be specified
 as well as @var{entsize} argument. Sections with @code{M} flag but not
 @code{S} flag must contain fixed size constants, each @var{entsize} octets
@@ -5067,6 +5281,8 @@ This directive replaces the current section and subsection.  The replaced
 section and subsection are pushed onto the section stack.  See the contents of
 the gas testsuite directory @code{gas/testsuite/gas/elf} for some examples of
 how this directive and the other section stack directives work.
+@end ifset
+@end ifset
 
 @node Set
 @section @code{.set @var{symbol}, @var{expression}}
@@ -5127,27 +5343,52 @@ numbers in @sc{ieee} format.
 @end ifset
 @end ifclear
 
+@ifset COFF-ELF
 @node Size
-@section @code{.size} (COFF version)
+@section @code{.size}
 
-@cindex @code{size} directive
-This directive is generated by compilers to include auxiliary debugging
-information in the symbol table.  It is only permitted inside
-@code{.def}/@code{.endef} pairs.
+This directive is used to set the size associated with a symbol.
+
+@ifset COFF
+@ifset ELF
+@c only print the extra heading if both COFF and ELF are set
+@subheading COFF Version
+@end ifset
+
+@cindex @code{size} directive (COFF version)
+For COFF targets, the @code{.size} directive is only permitted inside
+@code{.def}/@code{.endef} pairs.  It is used like this:
+
+@smallexample
+.size @var{expression}
+@end smallexample
 
 @ifset BOUT
 @samp{.size} is only meaningful when generating COFF format output; when
 @command{@value{AS}} is generating @code{b.out}, it accepts this directive but
 ignores it.
 @end ifset
+@end ifset
+
+@ifset ELF
+@ifset COFF
+@c only print the extra heading if both COFF and ELF are set
+@subheading ELF Version
+@end ifset
+
+@cindex @code{size} directive (ELF version)
+For ELF targets, the @code{.size} directive is used like this:
 
-@section @code{.size @var{name} , @var{expression}} (ELF version)
-@cindex @code{size} directive
+@smallexample
+.size @var{name} , @var{expression}
+@end smallexample
 
-This directive is used to set the size associated with a symbol @var{name}.
+This directive sets the size associated with a symbol @var{name}.
 The size in bytes is computed from @var{expression} which can make use of label
 arithmetic.  This directive is typically used to set the size of function
 symbols.
+@end ifset
+@end ifset
 
 @node Sleb128
 @section @code{.sleb128 @var{expressions}}
@@ -5305,7 +5546,7 @@ before further assembly.
 @node SubSection
 @section @code{.subsection @var{name}}
 
-@cindex @code{.subsection} directive
+@cindex @code{subsection} directive
 @cindex Section Stack
 This is one of the ELF section stack manipulation directives.  The others are
 @code{.section} (@pxref{Section}), @code{.pushsection} (@pxref{PushSection}), 
@@ -5412,27 +5653,54 @@ source file name and pagenumber) when generating assembly listings.
 This directive affects subsequent pages, as well as the current page if
 it appears within ten lines of the top of a page.
 
+@ifset COFF-ELF
 @node Type
-@section @code{.type @var{int}} (COFF version)
+@section @code{.type}
+
+This directive is used to set the type of a symbol.
+
+@ifset COFF
+@ifset ELF
+@c only print the extra heading if both COFF and ELF are set
+@subheading COFF Version
+@end ifset
 
 @cindex COFF symbol type
 @cindex symbol type, COFF
-@cindex @code{type} directive
-This directive, permitted only within @code{.def}/@code{.endef} pairs,
-records the integer @var{int} as the type attribute of a symbol table entry.
+@cindex @code{type} directive (COFF version)
+For COFF targets, this directive is permitted only within
+@code{.def}/@code{.endef} pairs.  It is used like this:
+
+@smallexample
+.type @var{int}
+@end smallexample
+
+This records the integer @var{int} as the type attribute of a symbol table
+entry.
 
 @ifset BOUT
 @samp{.type} is associated only with COFF format output; when
 @command{@value{AS}} is configured for @code{b.out} output, it accepts this
 directive but ignores it.
 @end ifset
+@end ifset
 
-@section @code{.type @var{name} , @var{type description}} (ELF version)
+@ifset ELF
+@ifset COFF
+@c only print the extra heading if both COFF and ELF are set
+@subheading ELF Version
+@end ifset
 
 @cindex ELF symbol type
 @cindex symbol type, ELF
-@cindex @code{type} directive
-This directive is used to set the type of symbol @var{name} to be either a
+@cindex @code{type} directive (ELF version)
+For ELF targets, the @code{.type} directive is used like this:
+
+@smallexample
+.type @var{name} , @var{type description}
+@end smallexample
+
+This sets the type of symbol @var{name} to be either a
 function symbol or an object symbol.  There are five different syntaxes
 supported for the @var{type description} field, in order to provide
 compatibility with various other assemblers.  The syntaxes supported are:
@@ -5453,6 +5721,8 @@ compatibility with various other assemblers.  The syntaxes supported are:
   .type <name> STT_FUNCTION
   .type <name> STT_OBJECT
 @end smallexample
+@end ifset
+@end ifset
 
 @node Uleb128
 @section @code{.uleb128 @var{expressions}}
@@ -5483,7 +5753,7 @@ configured for @code{b.out}, it accepts this directive but ignores it.
 @node Version
 @section @code{.version "@var{string}"}
 
-@cindex @code{.version}
+@cindex @code{version} directive
 This directive creates a @code{.note} section and places into it an ELF
 formatted note of type NT_VERSION.  The note's name is set to @code{string}.
 @end ifset
@@ -5492,14 +5762,14 @@ formatted note of type NT_VERSION.  The note's name is set to @code{string}.
 @node VTableEntry
 @section @code{.vtable_entry @var{table}, @var{offset}}
 
-@cindex @code{.vtable_entry}
+@cindex @code{vtable_entry}
 This directive finds or creates a symbol @code{table} and creates a
 @code{VTABLE_ENTRY} relocation for it with an addend of @code{offset}.
 
 @node VTableInherit
 @section @code{.vtable_inherit @var{child}, @var{parent}}
 
-@cindex @code{.vtable_inherit}
+@cindex @code{vtable_inherit}
 This directive finds the symbol @code{child} and finds or creates the symbol
 @code{parent} and then creates a @code{VTABLE_INHERIT} relocation for the
 parent whose addend is the value of the child symbol.  As a special case the
@@ -5510,7 +5780,7 @@ parent name of @code{0} is treated as refering the @code{*ABS*} section.
 @node Weak
 @section @code{.weak @var{names}}
 
-@cindex @code{.weak}
+@cindex @code{weak} directive
 This directive sets the weak attribute on the comma separated list of symbol
 @code{names}.  If the symbols do not already exist, they will be created.
 @end ifset
@@ -5633,10 +5903,10 @@ subject, see the hardware manufacturer's manual.
 * D30V-Dependent::              D30V Dependent Features
 @end ifset
 @ifset H8/300
-* H8/300-Dependent::            Hitachi H8/300 Dependent Features
+* H8/300-Dependent::            Renesas H8/300 Dependent Features
 @end ifset
 @ifset H8/500
-* H8/500-Dependent::            Hitachi H8/500 Dependent Features
+* H8/500-Dependent::            Renesas H8/500 Dependent Features
 @end ifset
 @ifset HPPA
 * HPPA-Dependent::              HPPA Dependent Features
@@ -5653,6 +5923,9 @@ subject, see the hardware manufacturer's manual.
 @ifset I960
 * i960-Dependent::              Intel 80960 Dependent Features
 @end ifset
+@ifset IP2K
+* IP2K-Dependent::              IP2K Dependent Features
+@end ifset
 @ifset M32R
 * M32R-Dependent::              M32R Dependent Features
 @end ifset
@@ -5671,9 +5944,12 @@ subject, see the hardware manufacturer's manual.
 @ifset MMIX
 * MMIX-Dependent::              MMIX Dependent Features
 @end ifset
+@ifset MSP430
+* MSP430-Dependent::           MSP430 Dependent Features
+@end ifset
 @ifset SH
-* SH-Dependent::                Hitachi SH Dependent Features
-* SH64-Dependent::              Hitachi SH64 Dependent Features
+* SH-Dependent::                Renesas / SuperH SH Dependent Features
+* SH64-Dependent::              SuperH SH64 Dependent Features
 @end ifset
 @ifset PDP11
 * PDP-11-Dependent::            PDP-11 Dependent Features
@@ -5693,6 +5969,9 @@ subject, see the hardware manufacturer's manual.
 @ifset V850
 * V850-Dependent::              V850 Dependent Features
 @end ifset
+@ifset XTENSA
+* Xtensa-Dependent::            Xtensa Dependent Features
+@end ifset
 @ifset Z8000
 * Z8000-Dependent::             Z8000 Dependent Features
 @end ifset
@@ -5732,20 +6011,20 @@ subject, see the hardware manufacturer's manual.
 @include c-cris.texi
 @end ifset
 
-@ifset Hitachi-all
+@ifset Renesas-all
 @ifclear GENERIC
 @node Machine Dependencies
 @chapter Machine Dependent Features
 
-The machine instruction sets are different on each Hitachi chip family,
+The machine instruction sets are different on each Renesas chip family,
 and there are also some syntax differences among the families.  This
 chapter describes the specific @command{@value{AS}} features for each
 family.
 
 @menu
-* H8/300-Dependent::            Hitachi H8/300 Dependent Features
-* H8/500-Dependent::            Hitachi H8/500 Dependent Features
-* SH-Dependent::                Hitachi SH Dependent Features
+* H8/300-Dependent::            Renesas H8/300 Dependent Features
+* H8/500-Dependent::            Renesas H8/500 Dependent Features
+* SH-Dependent::                Renesas SH Dependent Features
 @end menu
 @lowersections
 @end ifclear
@@ -5791,6 +6070,10 @@ family.
 @include c-ia64.texi
 @end ifset
 
+@ifset IP2K
+@include c-ip2k.texi
+@end ifset
+
 @ifset M32R
 @include c-m32r.texi
 @end ifset
@@ -5815,6 +6098,10 @@ family.
 @include c-mmix.texi
 @end ifset
 
+@ifset MSP430
+@include c-msp430.texi
+@end ifset
+
 @ifset NS32K
 @include c-ns32k.texi
 @end ifset
@@ -5856,6 +6143,10 @@ family.
 @include c-v850.texi
 @end ifset
 
+@ifset XTENSA
+@include c-xtensa.texi
+@end ifset
+
 @ifset GENERIC
 @c reverse effect of @down at top of generic Machine-Dep chapter
 @raisesections
@@ -5882,7 +6173,7 @@ information that enables us to fix the bug.
 @end menu
 
 @node Bug Criteria
-@section Have you found a bug?
+@section Have You Found a Bug?
 @cindex bug criteria
 
 If you are not sure whether you have found a bug, here are some guidelines:
@@ -5911,7 +6202,7 @@ of @command{@value{AS}} are welcome in any case.
 @end itemize
 
 @node Bug Reporting
-@section How to report bugs
+@section How to Report Bugs
 @cindex bug reports
 @cindex assembler bugs, reporting
 
@@ -5945,9 +6236,9 @@ it is new to us.  Therefore, always write your bug reports on the assumption
 that the bug has not been reported previously.
 
 Sometimes people give a few sketchy facts and ask, ``Does this ring a
-bell?''  Those bug reports are useless, and we urge everyone to
-@emph{refuse to respond to them} except to chide the sender to report
-bugs properly.
+bell?''  This cannot help us fix a bug, so it is basically useless.  We
+respond by asking for enough details to enable us to investigate.
+You might as well expedite matters by sending them to begin with.
 
 To enable us to fix the bug, you should include all these things:
 
@@ -6108,7 +6399,7 @@ Keith Knowles at the Open Software Foundation wrote the original MIPS back end
 (which hasn't been merged in yet).  Ralph Campbell worked with the MIPS code to
 support a.out format.
 
-Support for the Zilog Z8k and Hitachi H8/300 and H8/500 processors (tc-z8k,
+Support for the Zilog Z8k and Renesas H8/300 and H8/500 processors (tc-z8k,
 tc-h8300, tc-h8500), and IEEE 695 object file format (obj-ieee), was written by
 Steve Chamberlain of Cygnus Support.  Steve also modified the COFF back end to
 use BFD for some low-level operations, for use with the H8/300 and AMD 29k
@@ -6117,7 +6408,7 @@ targets.
 John Gilmore built the AMD 29000 support, added @code{.include} support, and
 simplified the configuration of which versions accept which directives.  He
 updated the 68k machine description so that Motorola's opcodes always produced
-fixed-size instructions (e.g. @code{jsr}), while synthetic instructions
+fixed-size instructions (e.g., @code{jsr}), while synthetic instructions
 remained shrinkable (@code{jbsr}).  John fixed many bugs, including true tested
 cross-compilation support, and one bug in relaxation that took a week and
 required the proverbial one-bit fix.
@@ -6142,7 +6433,7 @@ Jeff Law at the University of Utah (HPPA mainly), Michael Meissner of the Open
 Software Foundation (i386 mainly), and Ken Raeburn of Cygnus Support (sparc,
 and some initial 64-bit support).
 
-Linas Vepstas added GAS support for the ESA/390 "IBM 370" architecture.
+Linas Vepstas added GAS support for the ESA/390 ``IBM 370'' architecture.
 
 Richard Henderson rewrote the Alpha assembler. Klaus Kaempf wrote GAS and BFD
 support for openVMS/Alpha.
@@ -6150,6 +6441,9 @@ support for openVMS/Alpha.
 Timothy Wall, Michael Hayes, and Greg Smart contributed to the various tic*
 flavors.
 
+David Heine, Sterling Augustine, Bob Wilson and John Ruttenberg from Tensilica,
+Inc. added support for Xtensa processors.
+
 Several engineers at Cygnus Support have also provided many small bug fixes and
 configuration enhancements.
 
@@ -6158,368 +6452,7 @@ you have contributed significant work and are not mentioned on this list, and
 want to be, let us know.  Some of the history has been lost; we are not
 intentionally leaving anyone out.
 
-@node GNU Free Documentation License
-@chapter GNU Free Documentation License
-
-                GNU Free Documentation License
-                
-                   Version 1.1, March 2000
-
- Copyright (C) 2000  Free Software Foundation, Inc.
-  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-     
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
-0. PREAMBLE
-
-The purpose of this License is to make a manual, textbook, or other
-written document "free" in the sense of freedom: to assure everyone
-the effective freedom to copy and redistribute it, with or without
-modifying it, either commercially or noncommercially.  Secondarily,
-this License preserves for the author and publisher a way to get
-credit for their work, while not being considered responsible for
-modifications made by others.
-
-This License is a kind of "copyleft", which means that derivative
-works of the document must themselves be free in the same sense.  It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.
-
-We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does.  But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book.  We recommend this License
-principally for works whose purpose is instruction or reference.
-
-
-1. APPLICABILITY AND DEFINITIONS
-
-This License applies to any manual or other work that contains a
-notice placed by the copyright holder saying it can be distributed
-under the terms of this License.  The "Document", below, refers to any
-such manual or work.  Any member of the public is a licensee, and is
-addressed as "you".
-
-A "Modified Version" of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-
-A "Secondary Section" is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall subject
-(or to related matters) and contains nothing that could fall directly
-within that overall subject.  (For example, if the Document is in part a
-textbook of mathematics, a Secondary Section may not explain any
-mathematics.)  The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.
-
-The "Invariant Sections" are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License.
-
-The "Cover Texts" are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License.
-
-A "Transparent" copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, whose contents can be viewed and edited directly and
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters.  A copy made in an otherwise Transparent file
-format whose markup has been designed to thwart or discourage
-subsequent modification by readers is not Transparent.  A copy that is
-not "Transparent" is called "Opaque".
-
-Examples of suitable formats for Transparent copies include plain
-ASCII without markup, Texinfo input format, LaTeX input format, SGML
-or XML using a publicly available DTD, and standard-conforming simple
-HTML designed for human modification.  Opaque formats include
-PostScript, PDF, proprietary formats that can be read and edited only
-by proprietary word processors, SGML or XML for which the DTD and/or
-processing tools are not generally available, and the
-machine-generated HTML produced by some word processors for output
-purposes only.
-
-The "Title Page" means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page.  For works in
-formats which do not have any title page as such, "Title Page" means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.
-
-
-2. VERBATIM COPYING
-
-You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no other
-conditions whatsoever to those of this License.  You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute.  However, you may accept
-compensation in exchange for copies.  If you distribute a large enough
-number of copies you must also follow the conditions in section 3.
-
-You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.
-
-
-3. COPYING IN QUANTITY
-
-If you publish printed copies of the Document numbering more than 100,
-and the Document's license notice requires Cover Texts, you must enclose
-the copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover.  Both covers must also clearly and legibly identify
-you as the publisher of these copies.  The front cover must present
-the full title with all words of the title equally prominent and
-visible.  You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.
-
-If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a publicly-accessible computer-network location containing a complete
-Transparent copy of the Document, free of added material, which the
-general network-using public has access to download anonymously at no
-charge using public-standard network protocols.  If you use the latter
-option, you must take reasonably prudent steps, when you begin
-distribution of Opaque copies in quantity, to ensure that this
-Transparent copy will remain thus accessible at the stated location
-until at least one year after the last time you distribute an Opaque
-copy (directly or through your agents or retailers) of that edition to
-the public.
-
-It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to give
-them a chance to provide you with an updated version of the Document.
-
-
-4. MODIFICATIONS
-
-You may copy and distribute a Modified Version of the Document under
-the conditions of sections 2 and 3 above, provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it.  In addition, you must do these things in the Modified Version:
-
-A. Use in the Title Page (and on the covers, if any) a title distinct
-   from that of the Document, and from those of previous versions
-   (which should, if there were any, be listed in the History section
-   of the Document).  You may use the same title as a previous version
-   if the original publisher of that version gives permission.
-B. List on the Title Page, as authors, one or more persons or entities
-   responsible for authorship of the modifications in the Modified
-   Version, together with at least five of the principal authors of the
-   Document (all of its principal authors, if it has less than five).
-C. State on the Title page the name of the publisher of the
-   Modified Version, as the publisher.
-D. Preserve all the copyright notices of the Document.
-E. Add an appropriate copyright notice for your modifications
-   adjacent to the other copyright notices.
-F. Include, immediately after the copyright notices, a license notice
-   giving the public permission to use the Modified Version under the
-   terms of this License, in the form shown in the Addendum below.
-G. Preserve in that license notice the full lists of Invariant Sections
-   and required Cover Texts given in the Document's license notice.
-H. Include an unaltered copy of this License.
-I. Preserve the section entitled "History", and its title, and add to
-   it an item stating at least the title, year, new authors, and
-   publisher of the Modified Version as given on the Title Page.  If
-   there is no section entitled "History" in the Document, create one
-   stating the title, year, authors, and publisher of the Document as
-   given on its Title Page, then add an item describing the Modified
-   Version as stated in the previous sentence.
-J. Preserve the network location, if any, given in the Document for
-   public access to a Transparent copy of the Document, and likewise
-   the network locations given in the Document for previous versions
-   it was based on.  These may be placed in the "History" section.
-   You may omit a network location for a work that was published at
-   least four years before the Document itself, or if the original
-   publisher of the version it refers to gives permission.
-K. In any section entitled "Acknowledgements" or "Dedications",
-   preserve the section's title, and preserve in the section all the
-   substance and tone of each of the contributor acknowledgements
-   and/or dedications given therein.
-L. Preserve all the Invariant Sections of the Document,
-   unaltered in their text and in their titles.  Section numbers
-   or the equivalent are not considered part of the section titles.
-M. Delete any section entitled "Endorsements".  Such a section
-   may not be included in the Modified Version.
-N. Do not retitle any existing section as "Endorsements"
-   or to conflict in title with any Invariant Section.
-
-If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant.  To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.
-
-You may add a section entitled "Endorsements", provided it contains
-nothing but endorsements of your Modified Version by various
-parties--for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.
-
-You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version.  Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity.  If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.
-
-
-5. COMBINING DOCUMENTS
-
-You may combine the Document with other documents released under this
-License, under the terms defined in section 4 above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice.
-
-The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy.  If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.
-
-In the combination, you must combine any sections entitled "History"
-in the various original documents, forming one section entitled
-"History"; likewise combine any sections entitled "Acknowledgements",
-and any sections entitled "Dedications".  You must delete all sections
-entitled "Endorsements."
-
-
-6. COLLECTIONS OF DOCUMENTS
-
-You may make a collection consisting of the Document and other documents
-released under this License, and replace the individual copies of this
-License in the various documents with a single copy that is included in
-the collection, provided that you follow the rules of this License for
-verbatim copying of each of the documents in all other respects.
-
-You may extract a single document from such a collection, and distribute
-it individually under this License, provided you insert a copy of this
-License into the extracted document, and follow this License in all
-other respects regarding verbatim copying of that document.
-
-
-7. AGGREGATION WITH INDEPENDENT WORKS
-
-A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, does not as a whole count as a Modified Version
-of the Document, provided no compilation copyright is claimed for the
-compilation.  Such a compilation is called an "aggregate", and this
-License does not apply to the other self-contained works thus compiled
-with the Document, on account of their being thus compiled, if they
-are not themselves derivative works of the Document.
-
-If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one quarter
-of the entire aggregate, the Document's Cover Texts may be placed on
-covers that surround only the Document within the aggregate.
-Otherwise they must appear on covers around the whole aggregate.
-
-
-8. TRANSLATION
-
-Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of section 4.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections.  You may include a
-translation of this License provided that you also include the
-original English version of this License.  In case of a disagreement
-between the translation and the original English version of this
-License, the original English version will prevail.
-
-
-9. TERMINATION
-
-You may not copy, modify, sublicense, or distribute the Document except
-as expressly provided for under this License.  Any other attempt to
-copy, modify, sublicense or distribute the Document is void, and will
-automatically terminate your rights under this License.  However,
-parties who have received copies, or rights, from you under this
-License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-
-10. FUTURE REVISIONS OF THIS LICENSE
-
-The Free Software Foundation may publish new, revised versions
-of the GNU Free Documentation License from time to time.  Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns.  See
-http://www.gnu.org/copyleft/.
-
-Each version of the License is given a distinguishing version number.
-If the Document specifies that a particular numbered version of this
-License "or any later version" applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation.  If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation.
-
-
-ADDENDUM: How to use this License for your documents
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and
-license notices just after the title page:
-
-@smallexample
-    Copyright (c)  YEAR  YOUR NAME.
-    Permission is granted to copy, distribute and/or modify this document
-    under the terms of the GNU Free Documentation License, Version 1.1
-    or any later version published by the Free Software Foundation;
-    with the Invariant Sections being LIST THEIR TITLES, with the
-    Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
-    A copy of the license is included in the section entitled "GNU
-    Free Documentation License".
-@end smallexample
-
-If you have no Invariant Sections, write "with no Invariant Sections"
-instead of saying which ones are invariant.  If you have no
-Front-Cover Texts, write "no Front-Cover Texts" instead of
-"Front-Cover Texts being LIST"; likewise for Back-Cover Texts.
-
-If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
+@include fdl.texi
 
 @node Index
 @unnumbered Index