Add support for AVR6 family
[deliverable/binutils-gdb.git] / gas / doc / as.texinfo
index f3195a3741d93ebb991bb37c89b273efbbb839c7..18e2417f4da58e33ce1242694d871fb9831da39e 100644 (file)
@@ -1,6 +1,6 @@
 \input texinfo @c                               -*-Texinfo-*-
 @c  Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-@c  2001, 2002
+@c  2001, 2002, 2003, 2004, 2005, 2006
 @c  Free Software Foundation, Inc.
 @c UPDATE!!  On future updates--
 @c   (1)   check for new machine-dep cmdline options in
 @c defaults, config file may override:
 @set have-stabs
 @c ---
+@c man begin NAME
+@c ---
 @include asconfig.texi
 @include gasver.texi
 @c ---
-@c man begin NAME
-@ifset man
-@c Configure for the generation of man pages
-@set AS as
-@set TARGET TARGET
-@set GENERIC
-@set A29K
-@set ALPHA
-@set ARC
-@set ARM
-@set CRIS
-@set D10V
-@set D30V
-@set H8/300
-@set H8/500
-@set HPPA
-@set I370
-@set I80386
-@set I860
-@set I960
-@set IA-64
-@set M32R
-@set M68HC11
-@set M680X0
-@set M880X0
-@set MCORE
-@set MIPS
-@set MMIX
-@set PDP11
-@set PJ
-@set PPC
-@set SH
-@set SPARC
-@set C54X
-@set V850
-@set VAX
-@end ifset
 @c man end
+@c ---
 @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
@@ -73,9 +45,6 @@
 @ifset H8/300
 @set H8
 @end ifset
-@ifset H8/500
-@set H8
-@end ifset
 @ifset SH
 @set H8
 @end ifset
@@ -131,14 +100,14 @@ END-INFO-DIR-ENTRY
 This file documents the GNU Assembler "@value{AS}".
 
 @c man begin COPYRIGHT
-Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.
+Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002, 2006 Free Software Foundation, Inc.
 
 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 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
 
@@ -184,14 +153,14 @@ done.
 @end tex
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Free Software Foundation, Inc.
+Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002, 2006 Free Software Foundation, Inc.
 
       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 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 +177,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
@@ -222,7 +191,7 @@ section entitled "GNU Free Documentation License".
 * Reporting Bugs::              Reporting Bugs
 * Acknowledgements::            Who Did What
 * GNU Free Documentation License::  GNU Free Documentation License
-* Index::                       Index
+* AS Index::                    AS Index
 @end menu
 @end ifnottex
 
@@ -240,7 +209,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.
 
@@ -254,21 +223,20 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
 @c to be limited to one line for the header.
 @smallexample
 @c man begin SYNOPSIS
-@value{AS} [@b{-a}[@b{cdhlns}][=@var{file}]] [@b{-D}] [@b{--defsym} @var{sym}=@var{val}]
- [@b{-f}] [@b{--gstabs}] [@b{--gdwarf2}] [@b{--help}] [@b{-I} @var{dir}] 
- [@b{-J}] [@b{-K}] [@b{-L}]
- [@b{--listing-lhs-width}=@var{NUM}] [@b{--listing-lhs-width2}=@var{NUM}]
- [@b{--listing-rhs-width}=@var{NUM}] [@b{--listing-cont-lines}=@var{NUM}]
- [@b{--keep-locals}] [@b{-o} @var{objfile}] [@b{-R}] [@b{--statistics}] [@b{-v}]
- [@b{-version}] [@b{--version}] [@b{-W}] [@b{--warn}] [@b{--fatal-warnings}] 
- [@b{-w}] [@b{-x}] [@b{-Z}] [@b{--target-help}] [@var{target-options}] 
+@value{AS} [@b{-a}[@b{cdhlns}][=@var{file}]] [@b{--alternate}] [@b{-D}]
+ [@b{--defsym} @var{sym}=@var{val}] [@b{-f}] [@b{-g}] [@b{--gstabs}]
+ [@b{--gstabs+}] [@b{--gdwarf-2}] [@b{--help}] [@b{-I} @var{dir}] [@b{-J}]
+ [@b{-K}] [@b{-L}] [@b{--listing-lhs-width}=@var{NUM}]
+ [@b{--listing-lhs-width2}=@var{NUM}] [@b{--listing-rhs-width}=@var{NUM}]
+ [@b{--listing-cont-lines}=@var{NUM}] [@b{--keep-locals}] [@b{-o}
+ @var{objfile}] [@b{-R}] [@b{--reduce-memory-overheads}] [@b{--statistics}]
+ [@b{-v}] [@b{-version}] [@b{--version}] [@b{-W}] [@b{--warn}]
+ [@b{--fatal-warnings}] [@b{-w}] [@b{-x}] [@b{-Z}] [@b{@@@var{FILE}}]
+ [@b{--target-help}] [@var{target-options}]
  [@b{--}|@var{files} @dots{}]
 @c
 @c Target dependent options are listed below.  Keep the list sorted.
 @c Add an empty line for separation. 
-@ifset A29K
-@c am29k has no machine-dependent assembler options
-@end ifset
 @ifset ALPHA
 
 @emph{Target Alpha options:}
@@ -289,12 +257,14 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
 @c Don't document the deprecated options
    [@b{-mcpu}=@var{processor}[+@var{extension}@dots{}]]
    [@b{-march}=@var{architecture}[+@var{extension}@dots{}]]
-   [@b{-mfpu}=@var{floating-point-fromat}]
+   [@b{-mfpu}=@var{floating-point-format}]
+   [@b{-mfloat-abi}=@var{abi}]
+   [@b{-meabi}=@var{ver}]
    [@b{-mthumb}]
    [@b{-EB}|@b{-EL}]
    [@b{-mapcs-32}|@b{-mapcs-26}|@b{-mapcs-float}|
     @b{-mapcs-reentrant}]
-   [@b{-mthumb-interwork}] [@b{-moabi}] [@b{-k}]
+   [@b{-mthumb-interwork}] [@b{-k}]
 @end ifset
 @ifset CRIS
 
@@ -302,6 +272,7 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
    [@b{--underscore} | @b{--no-underscore}]
    [@b{--pic}] [@b{-N}]
    [@b{--emulation=criself} | @b{--emulation=crisaout}]
+   [@b{--march=v0_v10} | @b{--march=v10} | @b{--march=v32} | @b{--march=common_v10_v32}]
 @c Deprecated -- deliberately not documented.
 @c [@b{-h}] [@b{-H}]
 @end ifset
@@ -316,7 +287,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).
@@ -324,7 +295,7 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
 @ifset I80386
 
 @emph{Target i386 options:}
-   [@b{--32}|@b{--64}]
+   [@b{--32}|@b{--64}] [@b{-n}]
 @end ifset
 @ifset I960
 
@@ -340,8 +311,21 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
    [@b{-mconstant-gp}|@b{-mauto-pic}]
    [@b{-milp32}|@b{-milp64}|@b{-mlp64}|@b{-mp64}]
    [@b{-mle}|@b{mbe}]
+   [@b{-mtune=itanium1}|@b{-mtune=itanium2}]
+   [@b{-munwind-check=warning}|@b{-munwind-check=error}]
+   [@b{-mhint.b=ok}|@b{-mhint.b=warning}|@b{-mhint.b=error}]
    [@b{-x}|@b{-xexplicit}] [@b{-xauto}] [@b{-xdebug}]
 @end ifset
+@ifset IP2K
+
+@emph{Target IP2K options:}
+   [@b{-mip2022}|@b{-mip2022ext}]
+@end ifset
+@ifset M32C
+
+@emph{Target M32C options:}
+   [@b{-m32c}|@b{-m16c}]
+@end ifset
 @ifset M32R
 
 @emph{Target M32R options:}
@@ -356,7 +340,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,19 +356,24 @@ 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{-n}] [@b{-O}[@var{optimization level}]]
+   [@b{-nocpp}] [@b{-EL}] [@b{-EB}] [@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{-non_shared}] [@b{-xgot}]
    [@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{-mips64}]
+   [@b{-mips3}] [@b{-mips4}] [@b{-mips5}] [@b{-mips32}] [@b{-mips32r2}]
+   [@b{-mips64}] [@b{-mips64r2}]
    [@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{-msmartmips}] [@b{-mno-smartmips}]
    [@b{-mips3d}] [@b{-no-mips3d}]
    [@b{-mdmx}] [@b{-no-mdmx}]
+   [@b{-mdsp}] [@b{-mno-dsp}]
+   [@b{-mmt}] [@b{-mno-mt}]
    [@b{-mdebug}] [@b{-no-mdebug}]
+   [@b{-mpdr}] [@b{-mno-pdr}]
 @end ifset
 @ifset MMIX
 
@@ -431,15 +422,38 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
  [@b{-mcpu=54[123589]}|@b{-mcpu=54[56]lp}] [@b{-mfar-mode}|@b{-mf}] 
  [@b{-merrors-to-file} @var{<filename>}|@b{-me} @var{<filename>}]
 @end ifset
+
+@ifset Z80
+
+@emph{Target Z80 options:}
+  [@b{-z80}] [@b{-r800}]
+  [@b{ -ignore-undocumented-instructions}] [@b{-Wnud}]
+  [@b{ -ignore-unportable-instructions}] [@b{-Wnup}]
+  [@b{ -warn-undocumented-instructions}] [@b{-Wud}]
+  [@b{ -warn-unportable-instructions}] [@b{-Wup}]
+  [@b{ -forbid-undocumented-instructions}] [@b{-Fud}]
+  [@b{ -forbid-unportable-instructions}] [@b{-Fup}]
+@end ifset
+
 @ifset Z8000
 @c Z8000 has no machine-dependent assembler options
 @end ifset
+@ifset XTENSA
+
+@emph{Target Xtensa options:}
+ [@b{--[no-]text-section-literals}] [@b{--[no-]absolute-literals}]
+ [@b{--[no-]target-align}] [@b{--[no-]longcalls}]
+ [@b{--[no-]transform}]
+ [@b{--rename-section} @var{oldname}=@var{newname}]
+@end ifset
 @c man end
 @end smallexample
 
 @c man begin OPTIONS
 
 @table @gcctabopt
+@include at-file.texi
+
 @item -a[cdhlmns]
 Turn on listings, in any of a variety of ways:
 
@@ -473,6 +487,9 @@ You may combine these options; for example, use @samp{-aln} for assembly
 listing without forms processing.  The @samp{=file} option, if used, must be
 the last one.  By itself, @samp{-a} defaults to @samp{-ahls}.
 
+@item --alternate
+Begin in alternate macro mode, see @ref{Altmacro,,@code{.altmacro}}.
+
 @item -D
 Ignored.  This option is accepted for script compatibility with calls to
 other assemblers.
@@ -486,13 +503,26 @@ indicates a hexadecimal value, and a leading @samp{0} indicates an octal value.
 ``fast''---skip whitespace and comment preprocessing (assume source is
 compiler output).
 
+@item -g
+@itemx --gen-debug
+Generate debugging information for each assembler source line using whichever
+debug format is preferred by the target.  This currently means either STABS,
+ECOFF or DWARF2.
+
 @item --gstabs
 Generate stabs debugging information for each assembler line.  This
 may help debugging assembler code, if the debugger can handle it.
 
-@item --gdwarf2
+@item --gstabs+
+Generate stabs debugging information for each assembler line, with GNU
+extensions that probably only gdb can handle, and that could make other
+debuggers crash or refuse to read your program.  This
+may help debugging assembler code.  Currently the only GNU extension is
+the location of the current working directory at assembling time.
+
+@item --gdwarf-2
 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
@@ -543,6 +573,18 @@ Name the object-file output from @command{@value{AS}} @var{objfile}.
 @item -R
 Fold the data section into the text section.
 
+@kindex --hash-size=@var{number}
+Set the default size of GAS's hash tables to a prime number close to
+@var{number}.  Increasing this value can reduce the length of time it takes the
+assembler to perform its tasks, at the expense of increasing the assembler's
+memory requirements.  Similarly reducing this value can reduce the memory
+requirements at the expense of speed.
+
+@item --reduce-memory-overheads
+This option reduces GAS's memory requirements, at the expense of making the
+assembly processes slower.  Currently this switch is a synonym for
+@samp{--hash-size=4051}, but in the future it may have other effects as well.
+
 @item --statistics
 Print the maximum space (in bytes) and total time (in seconds) used by
 assembly.
@@ -604,9 +646,11 @@ Specify which ARM processor variant is the target.
 Specify which ARM architecture variant is used by the target.
 @item -mfpu=@var{floating-point-format}
 Select which Floating Point architecture is the target.
+@item -mfloat-abi=@var{abi}
+Select which floating point ABI is in use.
 @item -mthumb
 Enable Thumb only instruction decoding.
-@item -mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant | -moabi
+@item -mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant
 Select which procedure calling convention is in use.
 @item -EB | -EL
 Select either big-endian (-EB) or little-endian (-EL) output.
@@ -670,9 +714,40 @@ 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 M32C
+The following options are available when @value{AS} is configured for the
+Renesas M32C and M16C processors.
+
+@table @gcctabopt
+
+@item -m32c
+Assemble M32C instructions.
+
+@item -m16c
+Assemble M16C instructions (the default).
+
+@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
 
@@ -776,10 +851,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
@@ -873,14 +960,19 @@ Generate ``little endian'' format output.
 @itemx -mips4
 @itemx -mips5
 @itemx -mips32
+@itemx -mips32r2
 @itemx -mips64
+@itemx -mips64r2
 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}, and @samp{-mips64} correspond to generic
-@samp{MIPS V}, @samp{MIPS32}, and @samp{MIPS64} ISA processors,
-respectively.
+@samp{-mips5}, @samp{-mips32}, @samp{-mips32r2}, @samp{-mips64}, and
+@samp{-mips64r2}
+correspond to generic
+@samp{MIPS V}, @samp{MIPS32}, @samp{MIPS32 Release 2}, @samp{MIPS64},
+and @samp{MIPS64 Release 2}
+ISA processors, respectively.
 
 @item -march=@var{CPU}
 Generate code for a particular @sc{mips} cpu.
@@ -898,6 +990,10 @@ of an mfhi or mflo instruction occurs in the following two instructions.
 Cause stabs-style debugging output to go into an ECOFF-style .mdebug
 section instead of the standard ELF .stabs sections.
 
+@item -mpdr
+@itemx -mno-pdr
+Control generation of @code{.pdr} sections.
+
 @item -mgp32
 @itemx -mfp32
 The register sizes are normally inferred from the ISA and ABI, but these
@@ -911,6 +1007,12 @@ 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 -msmartmips
+@itemx -mno-smartmips
+Enables the SmartMIPS extension to the MIPS32 instruction set. This is
+equivalent to putting @code{.set smartmips} at the start of the assembly file.
+@samp{-mno-smartmips} turns off this option.
+
 @item -mips3d
 @itemx -no-mips3d
 Generate code for the MIPS-3D Application Specific Extension.
@@ -923,6 +1025,18 @@ Generate code for the MDMX Application Specific Extension.
 This tells the assembler to accept MDMX instructions.
 @samp{-no-mdmx} turns off this option.
 
+@item -mdsp
+@itemx -mno-dsp
+Generate code for the DSP Application Specific Extension.
+This tells the assembler to accept DSP instructions.
+@samp{-mno-dsp} turns off this option.
+
+@item -mmt
+@itemx -mno-mt
+Generate code for the MT Application Specific Extension.
+This tells the assembler to accept MT instructions.
+@samp{-mno-mt} turns off this option.
+
 @item --construct-floats
 @itemx --no-construct-floats
 The @samp{--no-construct-floats} option disables the construction of
@@ -1011,6 +1125,71 @@ 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 --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.  These options only affect literals
+referenced via PC-relative @code{L32R} instructions; literals for
+absolute mode @code{L32R} instructions are handled separately.
+
+@item --absolute-literals | --no-absolute-literals
+Indicate to the assembler whether @code{L32R} instructions use absolute
+or PC-relative addressing.  The default is to assume absolute addressing
+if the Xtensa processor includes the absolute @code{L32R} addressing
+option.  Otherwise, only the PC-relative @code{L32R} mode can be used.
+
+@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}.
+
+@item --transform | --no-transform
+Enable or disable all assembler transformations of Xtensa instructions.
+The default is @option{--transform};
+@option{--no-transform} should be used only in the rare cases when the
+instructions must be exactly as specified in the assembly source.
+@end table
+@end ifset
+
+@ifset Z80
+The following options are available when @value{AS} is configured for
+a Z80 family processor.
+@table @gcctabopt
+@item -z80
+Assemble for Z80 processor.
+@item -r800
+Assemble for R800 processor.
+@item  -ignore-undocumented-instructions 
+@itemx -Wnud
+Assemble undocumented Z80 instructions that also work on R800 without warning.
+@item  -ignore-unportable-instructions 
+@itemx -Wnup
+Assemble all undocumented Z80 instructions without warning.
+@item  -warn-undocumented-instructions 
+@itemx -Wud
+Issue a warning for undocumented Z80 instructions that also work on R800.
+@item  -warn-unportable-instructions 
+@itemx -Wup
+Issue a warning for undocumented Z80 instructions that do notwork on R800.  
+@item  -forbid-undocumented-instructions 
+@itemx -Fud
+Treat all undocumented instructions as errors.
+@item  -forbid-unportable-instructions 
+@itemx -Fup
+Treat undocumented Z80 intructions that do notwork on R800 as errors.
+@end table
+@end ifset
+
 @c man end
 
 @menu
@@ -1055,16 +1234,14 @@ 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).
-@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}.  For the H8/300H, see @cite{H8/300H Series
+Programming Manual} (Renesas).
 @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}
@@ -1145,14 +1322,10 @@ 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
-@ifset A29K
-On the @value{TARGET}, @command{@value{AS}} can be configured to produce either
-@code{a.out} or COFF format object files.
-@end ifset
 @ifset I960
 On the @value{TARGET}, @command{@value{AS}} can be configured to produce either
 @code{b.out} or COFF format object files.
@@ -1319,14 +1492,6 @@ the current input file is used.  If a logical line number was given
 @ifset GENERIC
 (@pxref{Line,,@code{.line}})
 @end ifset
-@ifclear GENERIC
-@ifclear A29K
-(@pxref{Line,,@code{.line}})
-@end ifclear
-@ifset A29K
-(@pxref{Ln,,@code{.ln}})
-@end ifset
-@end ifclear
 then it is used to calculate the number printed,
 otherwise the actual line in the current source file is printed.  The
 message text is intended to be self explanatory (in the grand Unix
@@ -1348,7 +1513,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.
@@ -1356,7 +1521,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:
@@ -1367,7 +1532,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
@@ -1380,6 +1545,7 @@ assembler.)
 
 @menu
 * a::             -a[cdhlns] enable listings
+* alternate::     --alternate enable alternate macro syntax
 * D::             -D for compatibility
 * f::             -f to work faster
 * I::             -I for .include search path
@@ -1452,6 +1618,12 @@ directives.  This is because the listing code buffers input source lines from
 stdin only after they have been preprocessed by the assembler.  This reduces
 memory usage and makes the code more efficient.
 
+@node alternate
+@section @option{--alternate}
+
+@kindex --alternate
+Begin in alternate macro mode, see @ref{Altmacro,,@code{.altmacro}}.
+
 @node D
 @section @option{-D}
 
@@ -1479,7 +1651,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}
@@ -1558,7 +1730,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.
 
@@ -1708,7 +1880,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
@@ -1772,8 +1944,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
@@ -1796,7 +1968,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
@@ -1825,8 +1997,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.
@@ -1834,13 +2006,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.
@@ -1906,7 +2078,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}.
 
@@ -1959,9 +2131,6 @@ This means you may not nest these comments.
 @cindex line comment character
 Anything from the @dfn{line comment} character to the next newline
 is considered a comment and is ignored.  The line comment character is
-@ifset A29K
-@samp{;} for the AMD 29K family;
-@end ifset
 @ifset ARC
 @samp{;} on the ARC;
 @end ifset
@@ -1971,9 +2140,6 @@ is considered a comment and is ignored.  The line comment character is
 @ifset H8/300
 @samp{;} for the H8/300 family;
 @end ifset
-@ifset H8/500
-@samp{!} for the H8/500 family;
-@end ifset
 @ifset HPPA
 @samp{;} for the HPPA;
 @end ifset
@@ -1990,14 +2156,20 @@ is considered a comment and is ignored.  The line comment character is
 @samp{;} for picoJava;
 @end ifset
 @ifset PPC
-@samp{;} for Motorola PowerPC;
+@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 M32C
+@samp{#} on the m32c;
+@end ifset
 @ifset M32R
 @samp{#} on the m32r;
 @end ifset
@@ -2007,18 +2179,21 @@ is considered a comment and is ignored.  The line comment character is
 @ifset M68HC11
 @samp{#} on the 68HC11 and 68HC12;
 @end ifset
-@ifset M880X0
-@samp{;} on the M880x0;
-@end ifset
 @ifset VAX
 @samp{#} on the Vax;
 @end ifset
+@ifset Z80
+@samp{;} for the Z80;
+@end ifset
 @ifset Z8000
 @samp{!} for the Z8000;
 @end ifset
 @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?
 
@@ -2099,12 +2274,6 @@ the preceding statement.  Newlines and semicolons within character
 constants are an exception: they do not end statements.
 @end ifclear
 @ifset abnormal-separator
-@ifset A29K
-A @dfn{statement} ends at a newline character (@samp{\n}) or an ``at''
-sign (@samp{@@}).  The newline or at sign is considered part of the
-preceding statement.  Newlines and at signs within character constants
-are an exception: they do not end statements.
-@end ifset
 @ifset HPPA
 A @dfn{statement} ends at a newline character (@samp{\n}) or an exclamation 
 point (@samp{!}).  The newline or exclamation point is considered part of the
@@ -2113,9 +2282,7 @@ constants are an exception: they do not end statements.
 @end ifset
 @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
-H8/500) a semicolon
+H8/300) a dollar sign (@samp{$}); or (for the Renesas-SH) a semicolon
 (@samp{;}).  The newline or separator character is considered part of
 the preceding statement.  Newlines and separators within character
 constants are an exception: they do not end statements.
@@ -2334,13 +2501,9 @@ grave accent.  A newline
 (or semicolon @samp{;})
 @end ifclear
 @ifset abnormal-separator
-@ifset A29K
-(or at sign @samp{@@})
-@end ifset
 @ifset H8
 (or dollar sign @samp{$}, for the H8/300; or semicolon @samp{;} for the
-Hitachi SH or
-H8/500)
+Renesas SH)
 @end ifset
 @end ifset
 @end ifclear
@@ -2443,8 +2606,7 @@ A letter, to tell @command{@value{AS}} the rest of the number is a flonum.
 4.2 assembler seems to allow any of @samp{defghDEFGH}.)
 @end ignore
 
-On the H8/300, H8/500,
-Hitachi SH,
+On the H8/300, Renesas / SuperH SH,
 and AMD 29K architectures, the letter must be
 one of the letters @samp{DFPRSX} (in upper or lower case).
 
@@ -2457,9 +2619,6 @@ one of the letters @samp{DFT} (in upper or lower case).
 On the HPPA architecture, the letter must be @samp{E} (upper case only).
 @end ifset
 @ifclear GENERIC
-@ifset A29K
-One of the letters @samp{DFPRSX} (in upper or lower case).
-@end ifset
 @ifset ARC
 One of the letters @samp{DFRS} (in upper or lower case).
 @end ifset
@@ -2580,8 +2739,7 @@ run-time addresses to sections is called @dfn{relocation}.  It includes
 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,
+For the H8/300, 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
@@ -2591,9 +2749,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}}).
@@ -2699,7 +2857,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
@@ -2712,15 +2870,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
@@ -2747,13 +2905,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
                       +-----+----+--+
@@ -2774,10 +2932,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}
@@ -2835,7 +2993,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.
@@ -2873,9 +3031,9 @@ of @command{@value{AS}}.)
 @end ifset
 @ifclear GENERIC
 @ifset H8
-On the H8/300 and H8/500 platforms, each subsection is zero-padded to a word
+On the H8/300 platform, 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)?
@@ -2885,10 +3043,6 @@ The same is true on the Hitachi SH.
 @c these paragraphs might need to vanish from this manual, and be
 @c discussed in BFD chapter of binutils (or some such).
 @end ifset
-@ifset A29K
-On the AMD 29K family, no particular padding is added to section or
-subsection sizes; @value{AS} forces no alignment on this platform.
-@end ifset
 @end ifclear
 
 Subsections appear in your object file in numeric order, lowest numbered
@@ -2912,6 +3066,16 @@ can also use an extra subsection
 argument with arbitrary named sections: @samp{.section @var{name},
 @var{expression}}.
 @end ifset
+@ifset ELF
+@ifset GENERIC
+When generating ELF output, you
+@end ifset
+@ifclear GENERIC
+You
+@end ifclear
+can also use the @code{.subsection} directive (@pxref{SubSection})
+to specify a subsection: @samp{.subsection @var{expression}}.
+@end ifset
 @var{Expression} should be an absolute expression.
 (@xref{Expressions}.)  If you just say @samp{.text} then @samp{.text 0}
 is assumed.  Likewise @samp{.data} means @samp{.data 0}.  Assembly
@@ -3010,7 +3174,9 @@ provides a special directive @code{.label} for defining labels more flexibly.
 A symbol can be given an arbitrary value by writing a symbol, followed
 by an equals sign @samp{=}, followed by an expression
 (@pxref{Expressions}).  This is equivalent to using the @code{.set}
-directive.  @xref{Set,,@code{.set}}.
+directive.  @xref{Set,,@code{.set}}.  In the same way, using a double
+equals sign @samp{=}@samp{=} here represents an equivalent of the
+@code{.eqv} directive.  @xref{Eqv,,@code{.eqv}}.
 
 @node Symbol Names
 @section Symbol Names
@@ -3024,18 +3190,12 @@ noted in @ref{Machine Dependencies}.  That character may be followed by any
 string of digits, letters, dollar signs (unless otherwise noted in
 @ref{Machine Dependencies}), and underscores.
 @end ifclear
-@ifset A29K
-For the AMD 29K family, @samp{?} is also allowed in the
-body of a symbol name, though not at its beginning.
-@end ifset
-
 @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 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
 
@@ -3155,11 +3315,6 @@ directive.  Thus, the expression @samp{.=.+4} is the same as saying
 @ifclear no-space-dir
 @samp{.space 4}.
 @end ifclear
-@ifset no-space-dir
-@ifset A29K
-@samp{.block 4}.
-@end ifset
-@end ifset
 
 @node Symbol Attributes
 @section Symbol Attributes
@@ -3309,8 +3464,8 @@ respectively, with @code{.val} and @code{.type}.
 
 @cindex auxiliary attributes, COFF symbols
 The @command{@value{AS}} directives @code{.dim}, @code{.line}, @code{.scl},
-@code{.size}, and @code{.tag} can generate auxiliary symbol table
-information for COFF.
+@code{.size}, @code{.tag}, and @code{.weak} can generate auxiliary symbol
+table information for COFF.
 @end ifset
 
 @ifset SOM
@@ -3469,12 +3624,10 @@ Highest Precedence
 @item %
 @dfn{Remainder}.
 
-@item <
-@itemx <<
+@item <<
 @dfn{Shift Left}.  Same as the C operator @samp{<<}.
 
-@item >
-@itemx >>
+@item >>
 @dfn{Shift Right}.  Same as the C operator @samp{>>}.
 @end table
 
@@ -3523,14 +3676,15 @@ You may not subtract arguments from different sections.
 @item  ==
 @dfn{Is Equal To}
 @item <>
+@itemx !=
 @dfn{Is Not Equal To}
 @item <
 @dfn{Is Less Than}
-@itemx >
+@item >
 @dfn{Is Greater Than}
-@itemx >=
+@item >=
 @dfn{Is Greater Than Or Equal To}
-@itemx <=
+@item <=
 @dfn{Is Less Than Or Equal To}
 
 The comparison operators can be used as infix operators.  A true results has a
@@ -3582,15 +3736,19 @@ Some machine configurations provide additional directives.
 @menu
 * Abort::                       @code{.abort}
 @ifset COFF
-* ABORT::                       @code{.ABORT}
+* ABORT (COFF)::                       @code{.ABORT}
 @end ifset
 
 * Align::                       @code{.align @var{abs-expr} , @var{abs-expr}}
+* Altmacro::                    @code{.altmacro}
 * Ascii::                       @code{.ascii "@var{string}"}@dots{}
 * Asciz::                       @code{.asciz "@var{string}"}@dots{}
 * 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}, etc.
+
 * Data::                        @code{.data @var{subsection}}
 @ifset COFF
 * Def::                         @code{.def @var{name}}
@@ -3615,7 +3773,9 @@ Some machine configurations provide additional directives.
 * Endif::                       @code{.endif}
 * Equ::                         @code{.equ @var{symbol}, @var{expression}}
 * Equiv::                       @code{.equiv @var{symbol}, @var{expression}}
+* Eqv::                         @code{.eqv @var{symbol}, @var{expression}}
 * Err::                                @code{.err}
+* Error::                      @code{.error @var{string}}
 * Exitm::                      @code{.exitm}
 * Extern::                      @code{.extern}
 * Fail::                       @code{.fail}
@@ -3649,9 +3809,12 @@ Some machine configurations provide additional directives.
 * Line::                        @code{.line @var{line-number}}
 @end ifclear
 
-* Ln::                          @code{.ln @var{line-number}}
 * Linkonce::                   @code{.linkonce [@var{type}]}
 * List::                        @code{.list}
+* Ln::                          @code{.ln @var{line-number}}
+
+* LNS directives::              @code{.file}, @code{.loc}, etc.
+
 * Long::                        @code{.long @var{expressions}}
 @ignore
 * Lsym::                        @code{.lsym @var{symbol}, @var{expression}}
@@ -3659,6 +3822,7 @@ Some machine configurations provide additional directives.
 
 * Macro::                      @code{.macro @var{name} @var{args}}@dots{}
 * MRI::                                @code{.mri @var{val}}
+* Noaltmacro::                  @code{.noaltmacro}
 * Nolist::                      @code{.nolist}
 * Octa::                        @code{.octa @var{bignums}}
 * Org::                         @code{.org @var{new-lc} , @var{fill}}
@@ -3684,13 +3848,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}}
@@ -3711,7 +3880,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}}
@@ -3721,9 +3893,11 @@ Some machine configurations provide additional directives.
 * Version::                     @code{.version "@var{string}"}
 * VTableEntry::                 @code{.vtable_entry @var{table}, @var{offset}}
 * VTableInherit::               @code{.vtable_inherit @var{child}, @var{parent}}
-* Weak::                        @code{.weak @var{names}}
 @end ifset
 
+* Warning::                    @code{.warning @var{string}}
+* Weak::                        @code{.weak @var{names}}
+* Weakref::                     @code{.weakref @var{alias}, @var{symbol}}
 * Word::                        @code{.word @var{expressions}}
 * Deprecated::                  Deprecated Directives
 @end menu
@@ -3740,8 +3914,8 @@ of the source quit, it could use this directive tells @command{@value{AS}} to
 quit also.  One day @code{.abort} will not be supported.
 
 @ifset COFF
-@node ABORT
-@section @code{.ABORT}
+@node ABORT (COFF)
+@section @code{.ABORT} (COFF)
 
 @cindex @code{ABORT} directive
 When producing COFF output, @command{@value{AS}} accepts this directive as a
@@ -3777,12 +3951,12 @@ 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,
-the first expression is the
+For the arc, hppa, i386 using ELF, i860, iq2000, m68k, or32,
+s390, sparc, tic4x, tic80 and xtensa, 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
-is already a multiple of 8, no change is needed.
+is already a multiple of 8, no change is needed.  For the tic54x, the
+first expression is the alignment request in words.
 
 For other systems, including the i386 using a.out format, and the arm and
 strongarm, it is the
@@ -3890,6 +4064,117 @@ The syntax for @code{.comm} differs slightly on the HPPA.  The syntax is
 @samp{@var{symbol} .comm, @var{length}}; @var{symbol} is optional.
 @end ifset
 
+@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.
+
+@section @code{.cfi_signal_frame}
+Mark current function as signal trampoline.
+
+@section @code{.cfi_window_save}
+SPARC register window has been saved.
+
+@section @code{.cfi_escape} @var{expression}[, @dots{}]
+Allows the user to add arbitrary bytes to the unwind info.  One
+might use this to add OS-specific CFI opcodes, or generic CFI
+opcodes that GAS does not yet support.
+
+@node LNS directives
+@section @code{.file @var{fileno} @var{filename}}
+@cindex @code{file} directive
+When emitting dwarf2 line number information @code{.file} assigns filenames
+to the @code{.debug_line} file name table.  The @var{fileno} operand should
+be a unique positive integer to use as the index of the entry in the table.
+The @var{filename} operand is a C string literal.
+
+The detail of filename indicies is exposed to the user because the filename
+table is shared with the @code{.debug_info} section of the dwarf2 debugging
+information, and thus the user must know the exact indicies that table
+entries will have.
+
+@section @code{.loc @var{fileno} @var{lineno} [@var{column}] [@var{options}]}
+@cindex @code{loc} directive
+The @code{.loc} directive will add row to the @code{.debug_line} line
+number matrix corresponding to the immediately following assembly
+instruction.  The @var{fileno}, @var{lineno}, and optional @var{column}
+arguments will be applied to the @code{.debug_line} state machine before
+the row is added.
+
+The @var{options} are a sequence of the following tokens in any order:
+
+@table @code
+@item basic_block
+This option will set the @code{basic_block} register in the
+@code{.debug_line} state machine to @code{true}.
+
+@item prologue_end
+This option will set the @code{prologue_end} register in the
+@code{.debug_line} state machine to @code{true}.
+
+@item epilogue_begin
+This option will set the @code{epilogue_begin} register in the
+@code{.debug_line} state machine to @code{true}.
+
+@item is_stmt @var{value}
+This option will set the @code{is_stmt} register in the
+@code{.debug_line} state machine to @code{value}, which must be 
+either 0 or 1.
+
+@item isa @var{value}
+This directive will set the @code{isa} register in the @code{.debug_line}
+state machine to @var{value}, which must be an unsigned integer.
+
+@end table
+
+@section @code{.loc_mark_blocks @var{enable}}
+@cindex @code{loc_mark_blocks} directive
+The @code{.loc_mark_blocks} directive makes the assembler emit an entry
+to the @code{.debug_line} line number matrix with the @code{basic_block}
+register in the state machine set whenever a code label is seen.
+The @var{enable} argument should be either 1 or 0, to enable or disable
+this function respectively.
+
 @node Data
 @section @code{.data @var{subsection}}
 
@@ -4045,11 +4330,21 @@ The syntax for @code{equ} on the HPPA is
 @samp{@var{symbol} .equ @var{expression}}.
 @end ifset
 
+@ifset Z80
+The syntax for @code{equ} on the Z80 is 
+@samp{@var{symbol} equ @var{expression}}. 
+On the Z80 it is an eror if @var{symbol} is already defined,
+but the symbol is not protected from later redefinition, 
+compare @xref{Equiv}.
+@end ifset
+
 @node Equiv
 @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
@@ -4058,13 +4353,35 @@ Except for the contents of the error message, this is roughly equivalent to
 .endif
 .equ SYM,VAL
 @end smallexample
+plus it protects the symbol from later redefinition.
+
+@node Eqv
+@section @code{.eqv @var{symbol}, @var{expression}}
+@cindex @code{eqv} directive
+The @code{.eqv} directive is like @code{.equiv}, but no attempt is made to
+evaluate the expression or any part of it immediately.  Instead each time
+the resulting symbol is used in an expression, a snapshot of its current
+value is taken.
 
 @node Err
 @section @code{.err}
 @cindex @code{err} directive
 If @command{@value{AS}} assembles a @code{.err} directive, it will print an error
 message and, unless the @option{-Z} option was used, it will not generate an
-object file.  This can be used to signal error an conditionally compiled code.
+object file.  This can be used to signal an error in conditionally compiled code.
+
+@node Error
+@section @code{.error "@var{string}"}
+@cindex error directive
+
+Similarly to @code{.err}, this directive emits an error, but you can specify a
+string that will be emitted as the error message.  If you don't specify the
+message, it defaults to @code{".error directive invoked in source file"}.
+@xref{Errors, ,Error and Warning Messages}.
+
+@smallexample
+ .error "This code has not been assembled and tested."
+@end smallexample
 
 @node Exitm
 @section @code{.exitm}
@@ -4101,10 +4418,6 @@ recognized whether or not it is surrounded by quotes @samp{"}; but if you wish
 to specify an empty file name, you must give the quotes--@code{""}.  This
 statement may go away in future: it is only recognized to be compatible with
 old @command{@value{AS}} programs.
-@ifset A29K
-In some configurations of @command{@value{AS}}, @code{.file} has already been
-removed to avoid conflicts with other assemblers.  @xref{Machine Dependencies}.
-@end ifset
 @end ifclear
 
 @node Fill
@@ -4154,7 +4467,7 @@ in @sc{ieee} format.
 @cindex @code{func} directive
 @code{.func} emits debugging information to denote function @var{name}, and
 is ignored unless the file is assembled with debugging enabled.
-Only @samp{--gstabs} is currently supported.
+Only @samp{--gstabs[+]} is currently supported.
 @var{label} is the entry point of the function and if omitted @var{name}
 prepended with the @samp{leading char} is used.
 @samp{leading char} is usually @code{_} or nothing, depending on the target.
@@ -4185,9 +4498,9 @@ 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
-This one of the ELF visibility directives.  The other two are
+@cindex @code{hidden} directive
+@cindex visibility
+This is one of the ELF visibility directives.  The other two are
 @code{.internal} (@pxref{Internal,,@code{.internal}}) and 
 @code{.protected} (@pxref{Protected,,@code{.protected}}).
 
@@ -4224,10 +4537,14 @@ This directive is a synonym for both @samp{.short} and @samp{.word}.
 @section @code{.ident}
 
 @cindex @code{ident} directive
-This directive is used by some assemblers to place tags in object files.
-@command{@value{AS}} simply accepts the directive for source-file
-compatibility with such assemblers, but does not actually emit anything
-for it.
+
+This directive is used by some assemblers to place tags in object files.  The
+behavior of this directive varies depending on the target.  When using the
+a.out object file format, @command{@value{AS}} simply accepts the directive for
+source-file compatibility with existing assemblers, but does not emit anything
+for it.  When using COFF, comments are emitted to the @code{.comment} or
+@code{.rdata} section, depending on the target.  When using ELF, comments are
+emitted to the @code{.comment} section.
 
 @node If
 @section @code{.if @var{absolute expression}}
@@ -4248,7 +4565,12 @@ 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{ifb} directive
+@item .ifb @var{text}
+Assembles the following section of code if the operand is blank (empty).
 
 @cindex @code{ifc} directive
 @item .ifc @var{string1},@var{string2}
@@ -4284,6 +4606,11 @@ to zero.
 @item .iflt @var{absolute expression}
 Assembles the following section of code if the argument is less than zero.
 
+@cindex @code{ifnb} directive
+@item .ifnb @var{text}
+Like @code{.ifb}, but the sense of the test is reversed: this assembles the
+following section of code if the operand is non-blank (non-empty).
+
 @cindex @code{ifnc} directive
 @item .ifnc @var{string1},@var{string2}.
 Like @code{.ifc}, but the sense of the test is reversed: this assembles the
@@ -4294,7 +4621,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}
@@ -4349,8 +4677,8 @@ 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
+On most forms of the H8/300, @code{.int} emits 16-bit
+integers.  On the H8/300H and the Renesas SH, however, @code{.int} emits
 32-bit integers.
 @end ifset
 @end ifclear
@@ -4359,16 +4687,16 @@ 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
-This one of the ELF visibility directives.  The other two are
+@cindex @code{internal} directive
+@cindex visibility
+This is one of the ELF visibility directives.  The other two are
 @code{.hidden} (@pxref{Hidden,,@code{.hidden}}) and 
 @code{.protected} (@pxref{Protected,,@code{.protected}}).
 
 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
 
@@ -4400,6 +4728,9 @@ is equivalent to assembling
         move    d3,sp@@-
 @end example
 
+For some caveats with the spelling of @var{symbol}, see also the discussion
+at @xref{Macro}.
+
 @node Irpc
 @section @code{.irpc @var{symbol},@var{values}}@dots{}
 
@@ -4428,6 +4759,9 @@ is equivalent to assembling
         move    d3,sp@@-
 @end example
 
+For some caveats with the spelling of @var{symbol}, see also the discussion
+at @xref{Macro}.
+
 @node Lcomm
 @section @code{.lcomm @var{symbol} , @var{length}}
 
@@ -4479,12 +4813,6 @@ reported as on logical line number @var{line-number} @minus{} 1.  One day
 @command{@value{AS}} will no longer support this directive: it is recognized only
 for compatibility with existing assembler programs.
 
-@ifset GENERIC
-@ifset A29K
-@emph{Warning:} In the AMD29K configuration of @value{AS}, this command is
-not available; use the synonym @code{.ln} in that context.
-@end ifset
-@end ifset
 @end ifset
 
 @ifclear no-line-dir
@@ -4644,9 +4972,14 @@ With that definition, @samp{SUM 0,5} is equivalent to this assembly input:
 @cindex @code{macro} directive
 Begin the definition of a macro called @var{macname}.  If your macro
 definition requires arguments, specify their names after the macro name,
-separated by commas or spaces.  You can supply a default value for any
-macro argument by following the name with @samp{=@var{deflt}}.  For
-example, these are all valid @code{.macro} statements:
+separated by commas or spaces.  You can qualify the macro argument to
+indicate whether all invocations must specify a non-blank value (through
+@samp{:@code{req}}), or whether it takes all of the remaining arguments
+(through @samp{:@code{vararg}}).  You can supply a default value for any
+macro argument by following the name with @samp{=@var{deflt}}.  You
+cannot define two macros with the same @var{macname} unless it has been
+subject to the @code{.purgem} directive (@xref{Purgem}.) between the two
+definitions.  For example, these are all valid @code{.macro} statements:
 
 @table @code
 @item .macro comm
@@ -4669,10 +5002,42 @@ After the definition is complete, you can call the macro either as
 @samp{0}, and @samp{\p2} evaluating to @var{b}).
 @end table
 
+@item .macro m p1:req, p2=0, p3:vararg
+Begin the definition of a macro called @code{m}, with at least three
+arguments.  The first argument must always have a value specified, but
+not the second, which instead has a default value. The third formal
+will get assigned all remaining arguments specified at invocation time.
+
 When you call a macro, you can specify the argument values either by
 position, or by keyword.  For example, @samp{sum 9,17} is equivalent to
 @samp{sum to=17, from=9}.
 
+Note that since each of the @var{macargs} can be an identifier exactly
+as any other one permitted by the target architecture, there may be
+occasional problems if the target hand-crafts special meanings to certain
+characters when they occur in a special position.  For example, if colon
+(@code{:}) is generally permitted to be part of a symbol name, but the
+architecture specific code special-cases it when occuring as the final
+character of a symbol (to denote a label), then the macro parameter
+replacement code will have no way of knowing that and consider the whole
+construct (including the colon) an identifier, and check only this
+identifier for being the subject to parameter substitution.  In this
+example, besides the potential of just separating identifier and colon
+by white space, using alternate macro syntax (@xref{Altmacro}.) and
+ampersand (@code{&}) as the character to separate literal text from macro
+parameters (or macro parameters from one another) would provide a way to
+achieve the same effect:
+
+@example
+       .altmacro
+       .macro label l
+l&:
+       .endm
+@end example
+
+This applies identically to the identifiers used in @code{.irp} (@xref{Irp}.)
+and @code{.irpc} (@xref{Irpc}.).
+
 @item .endm
 @cindex @code{endm} directive
 Mark the end of a macro definition.
@@ -4688,20 +5053,52 @@ Exit early from the current macro definition.
 executed in this pseudo-variable; you can copy that number to your
 output with @samp{\@@}, but @emph{only within a macro definition}.
 
-@ignore
 @item LOCAL @var{name} [ , @dots{} ]
 @emph{Warning: @code{LOCAL} is only available if you select ``alternate
-macro syntax'' with @samp{-a} or @samp{--alternate}.}  @xref{Alternate,,
-Alternate macro syntax}.
+macro syntax'' with @samp{--alternate} or @code{.altmacro}.}
+@xref{Altmacro,,@code{.altmacro}}.
+@end ftable
+
+@node Altmacro
+@section @code{.altmacro}
+Enable alternate macro mode, enabling:
 
-Generate a string replacement for each of the @var{name} arguments, and
+@ftable @code
+@item LOCAL @var{name} [ , @dots{} ]
+One additional directive, @code{LOCAL}, is available.  It is used to
+generate a string replacement for each of the @var{name} arguments, and
 replace any instances of @var{name} in each macro expansion.  The
 replacement string is unique in the assembly, and different for each
 separate macro expansion.  @code{LOCAL} allows you to write macros that
 define symbols, without fear of conflict between separate macro expansions.
-@end ignore
+
+@item String delimiters
+You can write strings delimited in these other ways besides
+@code{"@var{string}"}:
+
+@table @code
+@item '@var{string}'
+You can delimit strings with single-quote charaters.
+
+@item <@var{string}>
+You can delimit strings with matching angle brackets.
+@end table
+
+@item single-character string escape
+To include any single character literally in a string (even if the
+character would otherwise have some special meaning), you can prefix the
+character with @samp{!} (an exclamation mark).  For example, you can
+write @samp{<4.3 !> 5.4!!>} to get the literal text @samp{4.3 > 5.4!}.
+
+@item Expression results as strings
+You can write @samp{%@var{expr}} to evaluate the expression @var{expr}
+and use the result as a string.  
 @end ftable
 
+@node Noaltmacro
+@section @code{.noaltmacro}
+Disable alternate macro mode.  @ref{Altmacro}
+
 @node Nolist
 @section @code{.nolist}
 
@@ -4803,7 +5200,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}),
@@ -4823,7 +5220,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}), 
@@ -4846,9 +5243,9 @@ assembly.  You must put @var{string} in double quotes.
 @node Protected
 @section @code{.protected @var{names}}
 
-@cindex @code{.protected} directive
-@cindex Visibility
-This one of the ELF visibility directives.  The other two are
+@cindex @code{protected} directive
+@cindex visibility
+This is one of the ELF visibility directives.  The other two are
 @code{.hidden} (@pxref{Hidden}) and @code{.internal} (@pxref{Internal}).
 
 This directive overrides the named symbols default visibility (which is set by
@@ -4890,16 +5287,16 @@ 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}), 
 @code{.popsection} (@pxref{PopSection}), and @code{.previous} 
 (@pxref{Previous}).
 
-This directive is a synonym for @code{.section}.  It pushes the current section
-(and subsection) onto the top of the section stack, and then replaces the
-current section and subsection with @code{name} and @code{subsection}.
+This directive pushes the current section (and subsection) onto the
+top of the section stack, and then replaces the current section and
+subsection with @code{name} and @code{subsection}.
 @end ifset
 
 @node Quad
@@ -4978,10 +5375,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}.
@@ -4990,6 +5387,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:
 
@@ -5027,24 +5431,25 @@ 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
-.section @var{name} [, "@var{flags}"[, @@@var{type}[, @@@var{entsize}]]]
+.section @var{name} [, "@var{flags}"[, @@@var{type}[,@var{flag_specific_arguments}]]]
 @end smallexample
 
 The optional @var{flags} argument is a quoted string which may contain any
@@ -5060,6 +5465,10 @@ section is executable
 section is mergeable
 @item S
 section contains zero terminated strings
+@item G
+section is a member of a section group
+@item T
+section is used for thread-local-storage
 @end table
 
 The optional @var{type} argument may contain one of the following constants:
@@ -5068,14 +5477,58 @@ The optional @var{type} argument may contain one of the following constants:
 section contains data
 @item @@nobits
 section does not contain data (i.e., section only occupies space)
+@item @@note
+section contains data which is used by things other than the program
+@item @@init_array
+section contains an array of pointers to init functions
+@item @@fini_array
+section contains an array of pointers to finish functions
+@item @@preinit_array
+section contains an array of pointers to pre-init functions
 @end table
 
-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
-long. Sections with both @code{M} and @code{S} must contain zero terminated
-strings where each character is @var{entsize} bytes long. The linker may remove
-duplicates within sections with the same name, same entity size and same flags. 
+Many targets only support the first three section types.
+
+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 the @code{M} symbol then the @var{type} argument must
+be specified as well as an extra argument - @var{entsize} - like this:
+
+@smallexample
+.section @var{name} , "@var{flags}"M, @@@var{type}, @var{entsize}
+@end smallexample
+
+Sections with the @code{M} flag but not @code{S} flag must contain fixed size
+constants, each @var{entsize} octets long. Sections with both @code{M} and
+@code{S} must contain zero terminated strings where each character is
+@var{entsize} bytes long. The linker may remove duplicates within sections with
+the same name, same entity size and same flags.  @var{entsize} must be an
+absolute expression.
+
+If @var{flags} contains the @code{G} symbol then the @var{type} argument must
+be present along with an additional field like this:
+
+@smallexample
+.section @var{name} , "@var{flags}"G, @@@var{type}, @var{GroupName}[, @var{linkage}]
+@end smallexample
+
+The @var{GroupName} field specifies the name of the section group to which this
+particular section belongs.  The optional linkage field can contain:
+@table @code
+@item comdat
+indicates that only one copy of this section should be retained
+@item .gnu.linkonce
+an alias for comdat
+@end table
+
+Note - if both the @var{M} and @var{G} flags are present then the fields for
+the Merge flag should come first, like this:
+
+@smallexample
+.section @var{name} , "@var{flags}"MG, @@@var{type}, @var{entsize}, @var{GroupName}[, @var{linkage}]
+@end smallexample
 
 If no flags are specified, the default flags depend upon the section name.  If
 the section name is not recognized, the default will be for the section to have
@@ -5098,12 +5551,16 @@ section is allocatable
 section is writable
 @item #execinstr
 section is executable
+@item #tls
+section is used for thread local storage
 @end table
 
-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.
+This directive replaces the current section and subsection.  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}}
@@ -5125,6 +5582,11 @@ The syntax for @code{set} on the HPPA is
 @samp{@var{symbol} .set @var{expression}}.
 @end ifset
 
+@ifset Z80
+On Z80 @code{set} is a real instruction, use
+@samp{@var{symbol} defl @var{expression}} instead.
+@end ifset
+
 @node Short
 @section @code{.short @var{expressions}}
 
@@ -5164,27 +5626,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}}
@@ -5226,21 +5713,6 @@ for a summary.
 @end ifset
 @end ifclear
 
-@ifset A29K
-@ifclear GENERIC
-@node Space
-@section @code{.space}
-@cindex @code{space} directive
-@end ifclear
-On the AMD 29K, this directive is ignored; it is accepted for
-compatibility with other AMD 29K assemblers.
-
-@quotation
-@emph{Warning:} In most versions of the @sc{gnu} assembler, the directive
-@code{.space} has the effect of @code{.block}  @xref{Machine Dependencies}.
-@end quotation
-@end ifset
-
 @ifset have-stabs
 @node Stab
 @section @code{.stabd, .stabn, .stabs}
@@ -5342,7 +5814,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}), 
@@ -5449,32 +5921,71 @@ 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:
+compatibility with various other assemblers.
+
+Because some of the characters used in these syntaxes (such as @samp{@@} and
+@samp{#}) are comment characters for some architectures, some of the syntaxes
+below do not work on all architectures.  The first variant will be accepted by
+the GNU assembler on all architectures so that variant should be used for
+maximum portability, if you do not need to assemble your code with other
+assemblers.
+
+The syntaxes supported are:
 
 @smallexample
+  .type <name> STT_FUNCTION
+  .type <name> STT_OBJECT
+
   .type <name>,#function
   .type <name>,#object
 
@@ -5486,10 +5997,9 @@ compatibility with various other assemblers.  The syntaxes supported are:
   
   .type <name>,"function"
   .type <name>,"object"
-  
-  .type <name> STT_FUNCTION
-  .type <name> STT_OBJECT
 @end smallexample
+@end ifset
+@end ifset
 
 @node Uleb128
 @section @code{.uleb128 @var{expressions}}
@@ -5520,7 +6030,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
@@ -5529,28 +6039,59 @@ 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} directive
 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} directive
 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
 parent name of @code{0} is treated as refering the @code{*ABS*} section.
 @end ifset
 
-@ifset ELF
+@node Warning
+@section @code{.warning "@var{string}"}
+@cindex warning directive
+Similar to the directive @code{.error}
+(@pxref{Error,,@code{.error "@var{string}"}}), but just emits a warning.
+
 @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
+
+On COFF targets other than PE, weak symbols are a GNU extension.  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.
+
+On the PE target, weak symbols are supported natively as weak aliases.
+When a weak symbol is created that is not an alias, GAS creates an 
+alternate symbol to hold the default value.
+
+@node Weakref
+@section @code{.weakref @var{alias}, @var{target}}
+
+@cindex @code{weakref} directive
+This directive creates an alias to the target symbol that enables the symbol to
+be referenced with weak-symbol semantics, but without actually making it weak.
+If direct references or definitions of the symbol are present, then the symbol
+will not be weak, but if all references to it are through weak references, the
+symbol will be marked as weak in the symbol table.
+
+The effect is equivalent to moving all references to the alias to a separate
+assembly source file, renaming the alias to the symbol in it, declaring the
+symbol as weak there, and running a reloadable link to merge the object files
+resulting from the assembly of the new source file and the old source file that
+had the references to the alias removed.
+
+The alias itself never makes to the symbol table, and is entirely handled
+within the assembler.
 
 @node Word
 @section @code{.word @var{expressions}}
@@ -5648,9 +6189,6 @@ include details on any machine's instruction set.  For details on that
 subject, see the hardware manufacturer's manual.
 
 @menu
-@ifset A29K
-* AMD29K-Dependent::            AMD 29K Dependent Features
-@end ifset
 @ifset ALPHA
 * Alpha-Dependent::            Alpha Dependent Features
 @end ifset
@@ -5660,6 +6198,9 @@ subject, see the hardware manufacturer's manual.
 @ifset ARM
 * ARM-Dependent::               ARM Dependent Features
 @end ifset
+@ifset BFIN
+* BFIN-Dependent::             BFIN Dependent Features
+@end ifset
 @ifset CRIS
 * CRIS-Dependent::              CRIS Dependent Features
 @end ifset
@@ -5670,10 +6211,7 @@ 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
-@end ifset
-@ifset H8/500
-* H8/500-Dependent::            Hitachi H8/500 Dependent Features
+* H8/300-Dependent::            Renesas H8/300 Dependent Features
 @end ifset
 @ifset HPPA
 * HPPA-Dependent::              HPPA Dependent Features
@@ -5690,6 +6228,15 @@ subject, see the hardware manufacturer's manual.
 @ifset I960
 * i960-Dependent::              Intel 80960 Dependent Features
 @end ifset
+@ifset IA64
+* IA-64-Dependent::             Intel IA-64 Dependent Features
+@end ifset
+@ifset IP2K
+* IP2K-Dependent::              IP2K Dependent Features
+@end ifset
+@ifset M32C
+* M32C-Dependent::              M32C Dependent Features
+@end ifset
 @ifset M32R
 * M32R-Dependent::              M32R Dependent Features
 @end ifset
@@ -5699,18 +6246,18 @@ subject, see the hardware manufacturer's manual.
 @ifset M68HC11
 * M68HC11-Dependent::           M68HC11 and 68HC12 Dependent Features
 @end ifset
-@ifset M880X0
-* M88K-Dependent::             M880x0 Dependent Features
-@end ifset
 @ifset MIPS
 * MIPS-Dependent::              MIPS Dependent Features
 @end ifset
 @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
@@ -5730,6 +6277,12 @@ 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 Z80
+* Z80-Dependent::               Z80 Dependent Features
+@end ifset
 @ifset Z8000
 * Z8000-Dependent::             Z8000 Dependent Features
 @end ifset
@@ -5749,10 +6302,6 @@ subject, see the hardware manufacturer's manual.
 @c node and sectioning commands; hence the repetition of @chapter BLAH
 @c in both conditional blocks.
 
-@ifset A29K
-@include c-a29k.texi
-@end ifset
-
 @ifset ALPHA
 @include c-alpha.texi
 @end ifset
@@ -5765,24 +6314,27 @@ subject, see the hardware manufacturer's manual.
 @include c-arm.texi
 @end ifset
 
+@ifset BFIN
+@include c-bfin.texi
+@end ifset
+
 @ifset CRIS
 @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
+* SH-Dependent::                Renesas SH Dependent Features
 @end menu
 @lowersections
 @end ifclear
@@ -5800,10 +6352,6 @@ family.
 @include c-h8300.texi
 @end ifset
 
-@ifset H8/500
-@include c-h8500.texi
-@end ifset
-
 @ifset HPPA
 @include c-hppa.texi
 @end ifset
@@ -5828,6 +6376,14 @@ family.
 @include c-ia64.texi
 @end ifset
 
+@ifset IP2K
+@include c-ip2k.texi
+@end ifset
+
+@ifset M32C
+@include c-m32c.texi
+@end ifset
+
 @ifset M32R
 @include c-m32r.texi
 @end ifset
@@ -5840,10 +6396,6 @@ family.
 @include c-m68hc11.texi
 @end ifset
 
-@ifset M880X0
-@include c-m88k.texi
-@end ifset
-
 @ifset MIPS
 @include c-mips.texi
 @end ifset
@@ -5852,6 +6404,10 @@ family.
 @include c-mmix.texi
 @end ifset
 
+@ifset MSP430
+@include c-msp430.texi
+@end ifset
+
 @ifset NS32K
 @include c-ns32k.texi
 @end ifset
@@ -5881,6 +6437,10 @@ family.
 @include c-tic54x.texi
 @end ifset
 
+@ifset Z80
+@include c-z80.texi
+@end ifset
+
 @ifset Z8000
 @include c-z8k.texi
 @end ifset
@@ -5893,6 +6453,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
@@ -5919,7 +6483,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:
@@ -5948,7 +6512,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
 
@@ -5982,9 +6546,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:
 
@@ -6103,7 +6667,7 @@ things without first using the debugger to find the facts.
 @node Acknowledgements
 @chapter Acknowledgements
 
-If you have contributed to @command{@value{AS}} and your name isn't listed here,
+If you have contributed to GAS and your name isn't listed here,
 it is not meant as a slight.  We just don't know about it.  Send mail to the
 maintainer, and we'll correct the situation.  Currently 
 @c (January 1994), 
@@ -6145,8 +6709,8 @@ 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,
-tc-h8300, tc-h8500), and IEEE 695 object file format (obj-ieee), was written by
+Support for the Zilog Z8k and Renesas H8/300 processors (tc-z8k,
+tc-h8300), 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
 targets.
@@ -6154,7 +6718,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.
@@ -6164,7 +6728,7 @@ Ian Lance Taylor of Cygnus Support merged the Motorola and MIT syntax for the
 added support for MIPS ECOFF and ELF targets, wrote the initial RS/6000 and
 PowerPC assembler, and made a few other minor patches.
 
-Steve Chamberlain made @command{@value{AS}} able to generate listings.
+Steve Chamberlain made GAS able to generate listings.
 
 Hewlett-Packard contributed support for the HP9000/300.
 
@@ -6179,7 +6743,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.
@@ -6187,6 +6751,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.
 
@@ -6195,371 +6762,10 @@ 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
+@node AS Index
+@unnumbered AS Index
 
 @printindex cp
 
This page took 0.058956 seconds and 4 git commands to generate.