summaryrefslogtreecommitdiffstats
path: root/contrib/binutils/gas/doc/as.texinfo
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/binutils/gas/doc/as.texinfo')
-rw-r--r--contrib/binutils/gas/doc/as.texinfo935
1 files changed, 407 insertions, 528 deletions
diff --git a/contrib/binutils/gas/doc/as.texinfo b/contrib/binutils/gas/doc/as.texinfo
index f3195a3..d9d23df 100644
--- a/contrib/binutils/gas/doc/as.texinfo
+++ b/contrib/binutils/gas/doc/as.texinfo
@@ -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
@c Free Software Foundation, Inc.
@c UPDATE!! On future updates--
@c (1) check for new machine-dep cmdline options in
@@ -19,48 +19,20 @@
@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
@@ -138,7 +110,7 @@ under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
-section entitled "GNU Free Documentation License".
+section entitled ``GNU Free Documentation License''.
@c man end
@@ -191,7 +163,7 @@ Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002 Fr
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
- section entitled "GNU Free Documentation License".
+ section entitled ``GNU Free Documentation License''.
@end titlepage
@@ -208,7 +180,7 @@ code for @value{TARGET} architectures.
This document is distributed under the terms of the GNU Free
Documentation License. A copy of the license is included in the
-section entitled "GNU Free Documentation License".
+section entitled ``GNU Free Documentation License''.
@menu
* Overview:: Overview
@@ -240,7 +212,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.
@@ -255,8 +227,8 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
@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{-f}] [@b{--gstabs}] [@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}]
@@ -289,7 +261,8 @@ 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{-mthumb}]
[@b{-EB}|@b{-EL}]
[@b{-mapcs-32}|@b{-mapcs-26}|@b{-mapcs-float}|
@@ -316,7 +289,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 +297,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
@@ -342,6 +315,11 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
[@b{-mle}|@b{mbe}]
[@b{-x}|@b{-xexplicit}] [@b{-xauto}] [@b{-xdebug}]
@end ifset
+@ifset IP2K
+
+@emph{Target IP2K options:}
+ [@b{-mip2022}|@b{-mip2022ext}]
+@end ifset
@ifset M32R
@emph{Target M32R options:}
@@ -356,7 +334,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,12 +350,13 @@ 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{-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}]
@@ -383,6 +364,7 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
[@b{-mips3d}] [@b{-no-mips3d}]
[@b{-mdmx}] [@b{-no-mdmx}]
[@b{-mdebug}] [@b{-no-mdebug}]
+ [@b{-mpdr}] [@b{-mno-pdr}]
@end ifset
@ifset MMIX
@@ -434,6 +416,13 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
@ifset Z8000
@c Z8000 has no machine-dependent assembler options
@end ifset
+@ifset XTENSA
+
+@emph{Target Xtensa options:}
+ [@b{--[no-]density}] [@b{--[no-]relax}] [@b{--[no-]generics}]
+ [@b{--[no-]text-section-literals}]
+ [@b{--[no-]target-align}] [@b{--[no-]longcalls}]
+@end ifset
@c man end
@end smallexample
@@ -490,9 +479,16 @@ compiler output).
Generate stabs debugging information for each assembler line. This
may help debugging assembler code, if the debugger can handle it.
+@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 --gdwarf2
Generate DWARF2 debugging information for each assembler line. This
-may help debugging assembler code, if the debugger can handle it. Note - this
+may help debugging assembler code, if the debugger can handle it. Note---this
option is only supported by some targets, not all of them.
@item --help
@@ -604,6 +600,8 @@ 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
@@ -670,9 +668,25 @@ error if necessary.
@end table
@end ifset
+@ifset IP2K
+The following options are available when @value{AS} is configured for the
+Ubicom IP2K series.
+
+@table @gcctabopt
+
+@item -mip2022ext
+Specifies that the extended IP2022 instructions are allowed.
+
+@item -mip2022
+Restores the default behaviour, which restricts the permitted instructions to
+just the basic IP2022 ones.
+
+@end table
+@end ifset
+
@ifset M32R
The following options are available when @value{AS} is configured for the
-Mitsubishi M32R series.
+Renesas M32R (formerly Mitsubishi M32R) series.
@table @gcctabopt
@@ -776,10 +790,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 +899,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 +929,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
@@ -1011,6 +1046,45 @@ Assemble for a little endian target.
See the info pages for documentation of the MMIX-specific options.
@end ifset
+@ifset XTENSA
+The following options are available when @value{AS} is configured for
+an Xtensa processor.
+
+@table @gcctabopt
+@item --density | --no-density
+Enable or disable use of instructions from the Xtensa code density
+option. This is enabled by default when the Xtensa processor supports
+the code density option.
+
+@item --relax | --no-relax
+Enable or disable instruction relaxation. This is enabled by default.
+Note: In the current implementation, these options also control whether
+assembler optimizations are performed, making these options equivalent
+to @option{--generics} and @option{--no-generics}.
+
+@item --generics | --no-generics
+Enable or disable all assembler transformations of Xtensa instructions.
+The default is @option{--generics};
+@option{--no-generics} should be used only in the rare cases when the
+instructions must be exactly as specified in the assembly source.
+
+@item --text-section-literals | --no-text-section-literals
+With @option{--text-@-section-@-literals}, literal pools are interspersed
+in the text section. The default is
+@option{--no-@-text-@-section-@-literals}, which places literals in a
+separate section in the output file.
+
+@item --target-align | --no-target-align
+Enable or disable automatic alignment to reduce branch penalties at the
+expense of some code density. The default is @option{--target-@-align}.
+
+@item --longcalls | --no-longcalls
+Enable or disable transformation of call instructions to allow calls
+across a greater range of addresses. The default is
+@option{--no-@-longcalls}.
+@end table
+@end ifset
+
@c man end
@menu
@@ -1055,16 +1129,18 @@ machine architecture manual for this information.
@ifclear GENERIC
@ifset H8/300
For information on the H8/300 machine instruction set, see @cite{H8/300
-Series Programming Manual} (Hitachi ADE--602--025). For the H8/300H,
-see @cite{H8/300H Series Programming Manual} (Hitachi).
+Series Programming Manual}. For the H8/300H, see @cite{H8/300H Series
+Programming Manual} (Renesas).
@end ifset
@ifset H8/500
For information on the H8/500 machine instruction set, see @cite{H8/500
-Series Programming Manual} (Hitachi M21T001).
+Series Programming Manual} (Renesas M21T001).
@end ifset
@ifset SH
-For information on the Hitachi SH machine instruction set, see
-@cite{SH-Microcomputer User's Manual} (Hitachi Micro Systems, Inc.).
+For information on the Renesas (formerly Hitachi) / SuperH SH machine instruction set,
+see @cite{SH-Microcomputer User's Manual} (Renesas) or
+@cite{SH-4 32-bit CPU Core Architecture} (SuperH) and
+@cite{SuperH (SH) 64-Bit RISC Series} (SuperH).
@end ifset
@ifset Z8000
For information on the Z8000 machine instruction set, see @cite{Z8000 CPU Technical Manual}
@@ -1145,7 +1221,7 @@ are typically different in different file formats. @xref{Symbol
Attributes,,Symbol Attributes}.
@ifclear GENERIC
@ifclear MULTI-OBJ
-On the @value{TARGET}, @command{@value{AS}} is configured to produce
+For the @value{TARGET} target, @command{@value{AS}} is configured to produce
@value{OBJ-NAME} format object files.
@end ifclear
@c The following should exhaust all configs that set MULTI-OBJ, ideally
@@ -1348,7 +1424,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 +1432,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 +1443,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
@@ -1479,7 +1555,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 +1634,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 +1784,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 +1848,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 +1872,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 +1901,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 +1910,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 +1982,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}.
@@ -1990,14 +2066,17 @@ 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 M32R
@samp{#} on the m32r;
@end ifset
@@ -2019,6 +2098,9 @@ is considered a comment and is ignored. The line comment character is
@ifset V850
@samp{#} on the V850;
@end ifset
+@ifset XTENSA
+@samp{#} for Xtensa systems;
+@end ifset
see @ref{Machine Dependencies}. @refill
@c FIXME What about i860?
@@ -2114,7 +2196,7 @@ constants are an exception: they do not end statements.
@ifset H8
A @dfn{statement} ends at a newline character (@samp{\n}); or (for the
H8/300) a dollar sign (@samp{$}); or (for the
-Hitachi-SH or the
+Renesas-SH or the
H8/500) a semicolon
(@samp{;}). The newline or separator character is considered part of
the preceding statement. Newlines and separators within character
@@ -2339,8 +2421,7 @@ grave accent. A newline
@end ifset
@ifset H8
(or dollar sign @samp{$}, for the H8/300; or semicolon @samp{;} for the
-Hitachi SH or
-H8/500)
+Renesas SH or H8/500)
@end ifset
@end ifset
@end ifclear
@@ -2444,7 +2525,7 @@ A letter, to tell @command{@value{AS}} the rest of the number is a flonum.
@end ignore
On the H8/300, H8/500,
-Hitachi SH,
+Renesas / SuperH SH,
and AMD 29K architectures, the letter must be
one of the letters @samp{DFPRSX} (in upper or lower case).
@@ -2581,7 +2662,7 @@ the task of adjusting mentions of object-file addresses so they refer to
the proper run-time addresses.
@ifset H8
For the H8/300 and H8/500,
-and for the Hitachi SH,
+and for the Renesas / SuperH SH,
@command{@value{AS}} pads sections if needed to
ensure they end on a word (sixteen bit) boundary.
@end ifset
@@ -2591,9 +2672,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 +2780,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 +2793,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 +2828,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 +2855,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 +2916,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.
@@ -2875,7 +2956,7 @@ of @command{@value{AS}}.)
@ifset H8
On the H8/300 and H8/500 platforms, each subsection is zero-padded to a word
boundary (two bytes).
-The same is true on the Hitachi SH.
+The same is true on the Renesas SH.
@end ifset
@ifset I960
@c FIXME section padding (alignment)?
@@ -2901,9 +2982,9 @@ data subsections as a data section.
To specify which subsection you want subsequent statements assembled
into, use a numeric argument to specify it, in a @samp{.text
@var{expression}} or a @samp{.data @var{expression}} statement.
-@ifset COFF
+@ifset COFF-ELF
@ifset GENERIC
-When generating COFF output, you
+When generating COFF or ELF output, you
@end ifset
@ifclear GENERIC
You
@@ -3032,10 +3113,9 @@ body of a symbol name, though not at its beginning.
@ifset SPECIAL-SYMS
@ifset H8
Symbol names begin with a letter or with one of @samp{._}. On the
-Hitachi SH or the
-H8/500, you can also use @code{$} in symbol names. That character may
-be followed by any string of digits, letters, dollar signs (save on the
-H8/300), and underscores.
+Renesas SH or the H8/500, you can also use @code{$} in symbol names. That
+character may be followed by any string of digits, letters, dollar signs (save
+on the H8/300), and underscores.
@end ifset
@end ifset
@@ -3591,6 +3671,9 @@ Some machine configurations provide additional directives.
* Balign:: @code{.balign @var{abs-expr} , @var{abs-expr}}
* Byte:: @code{.byte @var{expressions}}
* Comm:: @code{.comm @var{symbol} , @var{length} }
+
+* CFI directives:: @code{.cfi_startproc}, @code{.cfi_endproc}, etc.
+
* Data:: @code{.data @var{subsection}}
@ifset COFF
* Def:: @code{.def @var{name}}
@@ -3684,13 +3767,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 +3799,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}}
@@ -3777,12 +3868,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 a29k, arc, hppa, i386 using ELF, i860, iq2000, m68k, m88k, 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 +3981,59 @@ 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_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 Data
@section @code{.data @var{subsection}}
@@ -4049,7 +4193,9 @@ The syntax for @code{equ} on the HPPA is
@section @code{.equiv @var{symbol}, @var{expression}}
@cindex @code{equiv} directive
The @code{.equiv} directive is like @code{.equ} and @code{.set}, except that
-the assembler will signal an error if @var{symbol} is already defined.
+the assembler will signal an error if @var{symbol} is already defined. Note a
+symbol which has been referenced but not actually defined is considered to be
+undefined.
Except for the contents of the error message, this is roughly equivalent to
@smallexample
@@ -4154,7 +4300,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,8 +4331,8 @@ partial programs. You may need the HPPA-only @code{.EXPORT} directive as well.
@node Hidden
@section @code{.hidden @var{names}}
-@cindex @code{.hidden} directive
-@cindex Visibility
+@cindex @code{hidden} directive
+@cindex visibility
This one of the ELF visibility directives. The other two are
@code{.internal} (@pxref{Internal,,@code{.internal}}) and
@code{.protected} (@pxref{Protected,,@code{.protected}}).
@@ -4248,7 +4394,8 @@ The following variants of @code{.if} are also supported:
@cindex @code{ifdef} directive
@item .ifdef @var{symbol}
Assembles the following section of code if the specified @var{symbol}
-has been defined.
+has been defined. Note a symbol which has been referenced but not yet defined
+is considered to be undefined.
@cindex @code{ifc} directive
@item .ifc @var{string1},@var{string2}
@@ -4294,7 +4441,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}
@@ -4350,7 +4498,7 @@ of target the assembly is for.
@ifclear GENERIC
@ifset H8
On the H8/500 and most forms of the H8/300, @code{.int} emits 16-bit
-integers. On the H8/300H and the Hitachi SH, however, @code{.int} emits
+integers. On the H8/300H and the Renesas SH, however, @code{.int} emits
32-bit integers.
@end ifset
@end ifclear
@@ -4359,8 +4507,8 @@ integers. On the H8/300H and the Hitachi SH, however, @code{.int} emits
@node Internal
@section @code{.internal @var{names}}
-@cindex @code{.internal} directive
-@cindex Visibility
+@cindex @code{internal} directive
+@cindex visibility
This one of the ELF visibility directives. The other two are
@code{.hidden} (@pxref{Hidden,,@code{.hidden}}) and
@code{.protected} (@pxref{Protected,,@code{.protected}}).
@@ -4368,7 +4516,7 @@ This one of the ELF visibility directives. The other two are
This directive overrides the named symbols default visibility (which is set by
their binding: local, global or weak). The directive sets the visibility to
@code{internal} which means that the symbols are considered to be @code{hidden}
-(ie not visible to other components), and that some extra, processor specific
+(i.e., not visible to other components), and that some extra, processor specific
processing must also be performed upon the symbols as well.
@end ifset
@@ -4803,7 +4951,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 +4971,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,8 +4994,8 @@ assembly. You must put @var{string} in double quotes.
@node Protected
@section @code{.protected @var{names}}
-@cindex @code{.protected} directive
-@cindex Visibility
+@cindex @code{protected} directive
+@cindex visibility
This one of the ELF visibility directives. The other two are
@code{.hidden} (@pxref{Hidden}) and @code{.internal} (@pxref{Internal}).
@@ -4890,7 +5038,7 @@ expanded. @xref{Macro}.
@node PushSection
@section @code{.pushsection @var{name} , @var{subsection}}
-@cindex @code{.pushsection} directive
+@cindex @code{pushsection} directive
@cindex Section Stack
This is one of the ELF section stack manipulation directives. The others are
@code{.section} (@pxref{Section}), @code{.subsection} (@pxref{SubSection}),
@@ -4978,10 +5126,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 +5138,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,20 +5182,21 @@ will be as if no flags had been specified at all.
If the optional argument to the @code{.section} directive is not quoted, it is
taken as a subsegment number (@pxref{Sub-Sections}).
+@end ifset
-
-@section @code{.section @var{name}} (ELF version)
-
-@cindex @code{section} directive
-@cindex named section
@ifset ELF
+@ifset COFF
+@c only print the extra heading if both COFF and ELF are set
+@subheading ELF Version
+@end ifset
+
@cindex Section Stack
This is one of the ELF section stack manipulation directives. The others are
@code{.subsection} (@pxref{SubSection}), @code{.pushsection}
(@pxref{PushSection}), @code{.popsection} (@pxref{PopSection}), and
@code{.previous} (@pxref{Previous}).
-@end ifset
+@cindex @code{section} directive (ELF version)
For ELF targets, the @code{.section} directive is used like this:
@smallexample
@@ -5070,6 +5226,10 @@ section contains data
section does not contain data (i.e., section only occupies space)
@end table
+Note on targets where the @code{@@} character is the start of a comment (eg
+ARM) then another character is used instead. For example the ARM port uses the
+@code{%} character.
+
If @var{flags} contains @code{M} flag, @var{type} argument must be specified
as well as @var{entsize} argument. Sections with @code{M} flag but not
@code{S} flag must contain fixed size constants, each @var{entsize} octets
@@ -5104,6 +5264,8 @@ This directive replaces the current section and subsection. The replaced
section and subsection are pushed onto the section stack. See the contents of
the gas testsuite directory @code{gas/testsuite/gas/elf} for some examples of
how this directive and the other section stack directives work.
+@end ifset
+@end ifset
@node Set
@section @code{.set @var{symbol}, @var{expression}}
@@ -5164,27 +5326,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
-@section @code{.size @var{name} , @var{expression}} (ELF version)
-@cindex @code{size} directive
+@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:
-This directive is used to set the size associated with a symbol @var{name}.
+@smallexample
+.size @var{name} , @var{expression}
+@end smallexample
+
+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}}
@@ -5342,7 +5529,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,27 +5636,54 @@ source file name and pagenumber) when generating assembly listings.
This directive affects subsequent pages, as well as the current page if
it appears within ten lines of the top of a page.
+@ifset COFF-ELF
@node Type
-@section @code{.type @var{int}} (COFF version)
+@section @code{.type}
+
+This directive is used to set the type of a symbol.
+
+@ifset COFF
+@ifset ELF
+@c only print the extra heading if both COFF and ELF are set
+@subheading COFF Version
+@end ifset
@cindex COFF symbol type
@cindex symbol type, COFF
-@cindex @code{type} directive
-This directive, permitted only within @code{.def}/@code{.endef} pairs,
-records the integer @var{int} as the type attribute of a symbol table entry.
+@cindex @code{type} directive (COFF version)
+For COFF targets, this directive is permitted only within
+@code{.def}/@code{.endef} pairs. It is used like this:
+
+@smallexample
+.type @var{int}
+@end smallexample
+
+This records the integer @var{int} as the type attribute of a symbol table
+entry.
@ifset BOUT
@samp{.type} is associated only with COFF format output; when
@command{@value{AS}} is configured for @code{b.out} output, it accepts this
directive but ignores it.
@end ifset
+@end ifset
-@section @code{.type @var{name} , @var{type description}} (ELF version)
+@ifset ELF
+@ifset COFF
+@c only print the extra heading if both COFF and ELF are set
+@subheading ELF Version
+@end ifset
@cindex ELF symbol type
@cindex symbol type, ELF
-@cindex @code{type} directive
-This directive is used to set the type of symbol @var{name} to be either a
+@cindex @code{type} directive (ELF version)
+For ELF targets, the @code{.type} directive is used like this:
+
+@smallexample
+.type @var{name} , @var{type description}
+@end smallexample
+
+This sets the type of symbol @var{name} to be either a
function symbol or an object symbol. There are five different syntaxes
supported for the @var{type description} field, in order to provide
compatibility with various other assemblers. The syntaxes supported are:
@@ -5490,6 +5704,8 @@ compatibility with various other assemblers. The syntaxes supported are:
.type <name> STT_FUNCTION
.type <name> STT_OBJECT
@end smallexample
+@end ifset
+@end ifset
@node Uleb128
@section @code{.uleb128 @var{expressions}}
@@ -5520,7 +5736,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,14 +5745,14 @@ formatted note of type NT_VERSION. The note's name is set to @code{string}.
@node VTableEntry
@section @code{.vtable_entry @var{table}, @var{offset}}
-@cindex @code{.vtable_entry}
+@cindex @code{vtable_entry}
This directive finds or creates a symbol @code{table} and creates a
@code{VTABLE_ENTRY} relocation for it with an addend of @code{offset}.
@node VTableInherit
@section @code{.vtable_inherit @var{child}, @var{parent}}
-@cindex @code{.vtable_inherit}
+@cindex @code{vtable_inherit}
This directive finds the symbol @code{child} and finds or creates the symbol
@code{parent} and then creates a @code{VTABLE_INHERIT} relocation for the
parent whose addend is the value of the child symbol. As a special case the
@@ -5547,7 +5763,7 @@ parent name of @code{0} is treated as refering the @code{*ABS*} section.
@node Weak
@section @code{.weak @var{names}}
-@cindex @code{.weak}
+@cindex @code{weak} directive
This directive sets the weak attribute on the comma separated list of symbol
@code{names}. If the symbols do not already exist, they will be created.
@end ifset
@@ -5670,10 +5886,10 @@ subject, see the hardware manufacturer's manual.
* D30V-Dependent:: D30V Dependent Features
@end ifset
@ifset H8/300
-* H8/300-Dependent:: Hitachi H8/300 Dependent Features
+* H8/300-Dependent:: Renesas H8/300 Dependent Features
@end ifset
@ifset H8/500
-* H8/500-Dependent:: Hitachi H8/500 Dependent Features
+* H8/500-Dependent:: Renesas H8/500 Dependent Features
@end ifset
@ifset HPPA
* HPPA-Dependent:: HPPA Dependent Features
@@ -5690,6 +5906,9 @@ subject, see the hardware manufacturer's manual.
@ifset I960
* i960-Dependent:: Intel 80960 Dependent Features
@end ifset
+@ifset IP2K
+* IP2K-Dependent:: IP2K Dependent Features
+@end ifset
@ifset M32R
* M32R-Dependent:: M32R Dependent Features
@end ifset
@@ -5708,9 +5927,12 @@ subject, see the hardware manufacturer's manual.
@ifset MMIX
* MMIX-Dependent:: MMIX Dependent Features
@end ifset
+@ifset MSP430
+* MSP430-Dependent:: MSP430 Dependent Features
+@end ifset
@ifset SH
-* SH-Dependent:: Hitachi SH Dependent Features
-* SH64-Dependent:: Hitachi SH64 Dependent Features
+* SH-Dependent:: Renesas / SuperH SH Dependent Features
+* SH64-Dependent:: SuperH SH64 Dependent Features
@end ifset
@ifset PDP11
* PDP-11-Dependent:: PDP-11 Dependent Features
@@ -5730,6 +5952,9 @@ subject, see the hardware manufacturer's manual.
@ifset V850
* V850-Dependent:: V850 Dependent Features
@end ifset
+@ifset XTENSA
+* Xtensa-Dependent:: Xtensa Dependent Features
+@end ifset
@ifset Z8000
* Z8000-Dependent:: Z8000 Dependent Features
@end ifset
@@ -5769,20 +5994,20 @@ subject, see the hardware manufacturer's manual.
@include c-cris.texi
@end ifset
-@ifset Hitachi-all
+@ifset Renesas-all
@ifclear GENERIC
@node Machine Dependencies
@chapter Machine Dependent Features
-The machine instruction sets are different on each Hitachi chip family,
+The machine instruction sets are different on each Renesas chip family,
and there are also some syntax differences among the families. This
chapter describes the specific @command{@value{AS}} features for each
family.
@menu
-* H8/300-Dependent:: Hitachi H8/300 Dependent Features
-* H8/500-Dependent:: Hitachi H8/500 Dependent Features
-* SH-Dependent:: Hitachi SH Dependent Features
+* H8/300-Dependent:: Renesas H8/300 Dependent Features
+* H8/500-Dependent:: Renesas H8/500 Dependent Features
+* SH-Dependent:: Renesas SH Dependent Features
@end menu
@lowersections
@end ifclear
@@ -5828,6 +6053,10 @@ family.
@include c-ia64.texi
@end ifset
+@ifset IP2K
+@include c-ip2k.texi
+@end ifset
+
@ifset M32R
@include c-m32r.texi
@end ifset
@@ -5852,6 +6081,10 @@ family.
@include c-mmix.texi
@end ifset
+@ifset MSP430
+@include c-msp430.texi
+@end ifset
+
@ifset NS32K
@include c-ns32k.texi
@end ifset
@@ -5893,6 +6126,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 +6156,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 +6185,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 +6219,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:
@@ -6145,7 +6382,7 @@ Keith Knowles at the Open Software Foundation wrote the original MIPS back end
(which hasn't been merged in yet). Ralph Campbell worked with the MIPS code to
support a.out format.
-Support for the Zilog Z8k and Hitachi H8/300 and H8/500 processors (tc-z8k,
+Support for the Zilog Z8k and Renesas H8/300 and H8/500 processors (tc-z8k,
tc-h8300, tc-h8500), and IEEE 695 object file format (obj-ieee), was written by
Steve Chamberlain of Cygnus Support. Steve also modified the COFF back end to
use BFD for some low-level operations, for use with the H8/300 and AMD 29k
@@ -6154,7 +6391,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.
@@ -6179,7 +6416,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 +6424,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,368 +6435,7 @@ you have contributed significant work and are not mentioned on this list, and
want to be, let us know. Some of the history has been lost; we are not
intentionally leaving anyone out.
-@node GNU Free Documentation License
-@chapter GNU Free Documentation License
-
- GNU Free Documentation License
-
- Version 1.1, March 2000
-
- Copyright (C) 2000 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-
-0. PREAMBLE
-
-The purpose of this License is to make a manual, textbook, or other
-written document "free" in the sense of freedom: to assure everyone
-the effective freedom to copy and redistribute it, with or without
-modifying it, either commercially or noncommercially. Secondarily,
-this License preserves for the author and publisher a way to get
-credit for their work, while not being considered responsible for
-modifications made by others.
-
-This License is a kind of "copyleft", which means that derivative
-works of the document must themselves be free in the same sense. It
-complements the GNU General Public License, which is a copyleft
-license designed for free software.
-
-We have designed this License in order to use it for manuals for free
-software, because free software needs free documentation: a free
-program should come with manuals providing the same freedoms that the
-software does. But this License is not limited to software manuals;
-it can be used for any textual work, regardless of subject matter or
-whether it is published as a printed book. We recommend this License
-principally for works whose purpose is instruction or reference.
-
-
-1. APPLICABILITY AND DEFINITIONS
-
-This License applies to any manual or other work that contains a
-notice placed by the copyright holder saying it can be distributed
-under the terms of this License. The "Document", below, refers to any
-such manual or work. Any member of the public is a licensee, and is
-addressed as "you".
-
-A "Modified Version" of the Document means any work containing the
-Document or a portion of it, either copied verbatim, or with
-modifications and/or translated into another language.
-
-A "Secondary Section" is a named appendix or a front-matter section of
-the Document that deals exclusively with the relationship of the
-publishers or authors of the Document to the Document's overall subject
-(or to related matters) and contains nothing that could fall directly
-within that overall subject. (For example, if the Document is in part a
-textbook of mathematics, a Secondary Section may not explain any
-mathematics.) The relationship could be a matter of historical
-connection with the subject or with related matters, or of legal,
-commercial, philosophical, ethical or political position regarding
-them.
-
-The "Invariant Sections" are certain Secondary Sections whose titles
-are designated, as being those of Invariant Sections, in the notice
-that says that the Document is released under this License.
-
-The "Cover Texts" are certain short passages of text that are listed,
-as Front-Cover Texts or Back-Cover Texts, in the notice that says that
-the Document is released under this License.
-
-A "Transparent" copy of the Document means a machine-readable copy,
-represented in a format whose specification is available to the
-general public, whose contents can be viewed and edited directly and
-straightforwardly with generic text editors or (for images composed of
-pixels) generic paint programs or (for drawings) some widely available
-drawing editor, and that is suitable for input to text formatters or
-for automatic translation to a variety of formats suitable for input
-to text formatters. A copy made in an otherwise Transparent file
-format whose markup has been designed to thwart or discourage
-subsequent modification by readers is not Transparent. A copy that is
-not "Transparent" is called "Opaque".
-
-Examples of suitable formats for Transparent copies include plain
-ASCII without markup, Texinfo input format, LaTeX input format, SGML
-or XML using a publicly available DTD, and standard-conforming simple
-HTML designed for human modification. Opaque formats include
-PostScript, PDF, proprietary formats that can be read and edited only
-by proprietary word processors, SGML or XML for which the DTD and/or
-processing tools are not generally available, and the
-machine-generated HTML produced by some word processors for output
-purposes only.
-
-The "Title Page" means, for a printed book, the title page itself,
-plus such following pages as are needed to hold, legibly, the material
-this License requires to appear in the title page. For works in
-formats which do not have any title page as such, "Title Page" means
-the text near the most prominent appearance of the work's title,
-preceding the beginning of the body of the text.
-
-
-2. VERBATIM COPYING
-
-You may copy and distribute the Document in any medium, either
-commercially or noncommercially, provided that this License, the
-copyright notices, and the license notice saying this License applies
-to the Document are reproduced in all copies, and that you add no other
-conditions whatsoever to those of this License. You may not use
-technical measures to obstruct or control the reading or further
-copying of the copies you make or distribute. However, you may accept
-compensation in exchange for copies. If you distribute a large enough
-number of copies you must also follow the conditions in section 3.
-
-You may also lend copies, under the same conditions stated above, and
-you may publicly display copies.
-
-
-3. COPYING IN QUANTITY
-
-If you publish printed copies of the Document numbering more than 100,
-and the Document's license notice requires Cover Texts, you must enclose
-the copies in covers that carry, clearly and legibly, all these Cover
-Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
-the back cover. Both covers must also clearly and legibly identify
-you as the publisher of these copies. The front cover must present
-the full title with all words of the title equally prominent and
-visible. You may add other material on the covers in addition.
-Copying with changes limited to the covers, as long as they preserve
-the title of the Document and satisfy these conditions, can be treated
-as verbatim copying in other respects.
-
-If the required texts for either cover are too voluminous to fit
-legibly, you should put the first ones listed (as many as fit
-reasonably) on the actual cover, and continue the rest onto adjacent
-pages.
-
-If you publish or distribute Opaque copies of the Document numbering
-more than 100, you must either include a machine-readable Transparent
-copy along with each Opaque copy, or state in or with each Opaque copy
-a publicly-accessible computer-network location containing a complete
-Transparent copy of the Document, free of added material, which the
-general network-using public has access to download anonymously at no
-charge using public-standard network protocols. If you use the latter
-option, you must take reasonably prudent steps, when you begin
-distribution of Opaque copies in quantity, to ensure that this
-Transparent copy will remain thus accessible at the stated location
-until at least one year after the last time you distribute an Opaque
-copy (directly or through your agents or retailers) of that edition to
-the public.
-
-It is requested, but not required, that you contact the authors of the
-Document well before redistributing any large number of copies, to give
-them a chance to provide you with an updated version of the Document.
-
-
-4. MODIFICATIONS
-
-You may copy and distribute a Modified Version of the Document under
-the conditions of sections 2 and 3 above, provided that you release
-the Modified Version under precisely this License, with the Modified
-Version filling the role of the Document, thus licensing distribution
-and modification of the Modified Version to whoever possesses a copy
-of it. In addition, you must do these things in the Modified Version:
-
-A. Use in the Title Page (and on the covers, if any) a title distinct
- from that of the Document, and from those of previous versions
- (which should, if there were any, be listed in the History section
- of the Document). You may use the same title as a previous version
- if the original publisher of that version gives permission.
-B. List on the Title Page, as authors, one or more persons or entities
- responsible for authorship of the modifications in the Modified
- Version, together with at least five of the principal authors of the
- Document (all of its principal authors, if it has less than five).
-C. State on the Title page the name of the publisher of the
- Modified Version, as the publisher.
-D. Preserve all the copyright notices of the Document.
-E. Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.
-F. Include, immediately after the copyright notices, a license notice
- giving the public permission to use the Modified Version under the
- terms of this License, in the form shown in the Addendum below.
-G. Preserve in that license notice the full lists of Invariant Sections
- and required Cover Texts given in the Document's license notice.
-H. Include an unaltered copy of this License.
-I. Preserve the section entitled "History", and its title, and add to
- it an item stating at least the title, year, new authors, and
- publisher of the Modified Version as given on the Title Page. If
- there is no section entitled "History" in the Document, create one
- stating the title, year, authors, and publisher of the Document as
- given on its Title Page, then add an item describing the Modified
- Version as stated in the previous sentence.
-J. Preserve the network location, if any, given in the Document for
- public access to a Transparent copy of the Document, and likewise
- the network locations given in the Document for previous versions
- it was based on. These may be placed in the "History" section.
- You may omit a network location for a work that was published at
- least four years before the Document itself, or if the original
- publisher of the version it refers to gives permission.
-K. In any section entitled "Acknowledgements" or "Dedications",
- preserve the section's title, and preserve in the section all the
- substance and tone of each of the contributor acknowledgements
- and/or dedications given therein.
-L. Preserve all the Invariant Sections of the Document,
- unaltered in their text and in their titles. Section numbers
- or the equivalent are not considered part of the section titles.
-M. Delete any section entitled "Endorsements". Such a section
- may not be included in the Modified Version.
-N. Do not retitle any existing section as "Endorsements"
- or to conflict in title with any Invariant Section.
-
-If the Modified Version includes new front-matter sections or
-appendices that qualify as Secondary Sections and contain no material
-copied from the Document, you may at your option designate some or all
-of these sections as invariant. To do this, add their titles to the
-list of Invariant Sections in the Modified Version's license notice.
-These titles must be distinct from any other section titles.
-
-You may add a section entitled "Endorsements", provided it contains
-nothing but endorsements of your Modified Version by various
-parties--for example, statements of peer review or that the text has
-been approved by an organization as the authoritative definition of a
-standard.
-
-You may add a passage of up to five words as a Front-Cover Text, and a
-passage of up to 25 words as a Back-Cover Text, to the end of the list
-of Cover Texts in the Modified Version. Only one passage of
-Front-Cover Text and one of Back-Cover Text may be added by (or
-through arrangements made by) any one entity. If the Document already
-includes a cover text for the same cover, previously added by you or
-by arrangement made by the same entity you are acting on behalf of,
-you may not add another; but you may replace the old one, on explicit
-permission from the previous publisher that added the old one.
-
-The author(s) and publisher(s) of the Document do not by this License
-give permission to use their names for publicity for or to assert or
-imply endorsement of any Modified Version.
-
-
-5. COMBINING DOCUMENTS
-
-You may combine the Document with other documents released under this
-License, under the terms defined in section 4 above for modified
-versions, provided that you include in the combination all of the
-Invariant Sections of all of the original documents, unmodified, and
-list them all as Invariant Sections of your combined work in its
-license notice.
-
-The combined work need only contain one copy of this License, and
-multiple identical Invariant Sections may be replaced with a single
-copy. If there are multiple Invariant Sections with the same name but
-different contents, make the title of each such section unique by
-adding at the end of it, in parentheses, the name of the original
-author or publisher of that section if known, or else a unique number.
-Make the same adjustment to the section titles in the list of
-Invariant Sections in the license notice of the combined work.
-
-In the combination, you must combine any sections entitled "History"
-in the various original documents, forming one section entitled
-"History"; likewise combine any sections entitled "Acknowledgements",
-and any sections entitled "Dedications". You must delete all sections
-entitled "Endorsements."
-
-
-6. COLLECTIONS OF DOCUMENTS
-
-You may make a collection consisting of the Document and other documents
-released under this License, and replace the individual copies of this
-License in the various documents with a single copy that is included in
-the collection, provided that you follow the rules of this License for
-verbatim copying of each of the documents in all other respects.
-
-You may extract a single document from such a collection, and distribute
-it individually under this License, provided you insert a copy of this
-License into the extracted document, and follow this License in all
-other respects regarding verbatim copying of that document.
-
-
-7. AGGREGATION WITH INDEPENDENT WORKS
-
-A compilation of the Document or its derivatives with other separate
-and independent documents or works, in or on a volume of a storage or
-distribution medium, does not as a whole count as a Modified Version
-of the Document, provided no compilation copyright is claimed for the
-compilation. Such a compilation is called an "aggregate", and this
-License does not apply to the other self-contained works thus compiled
-with the Document, on account of their being thus compiled, if they
-are not themselves derivative works of the Document.
-
-If the Cover Text requirement of section 3 is applicable to these
-copies of the Document, then if the Document is less than one quarter
-of the entire aggregate, the Document's Cover Texts may be placed on
-covers that surround only the Document within the aggregate.
-Otherwise they must appear on covers around the whole aggregate.
-
-
-8. TRANSLATION
-
-Translation is considered a kind of modification, so you may
-distribute translations of the Document under the terms of section 4.
-Replacing Invariant Sections with translations requires special
-permission from their copyright holders, but you may include
-translations of some or all Invariant Sections in addition to the
-original versions of these Invariant Sections. You may include a
-translation of this License provided that you also include the
-original English version of this License. In case of a disagreement
-between the translation and the original English version of this
-License, the original English version will prevail.
-
-
-9. TERMINATION
-
-You may not copy, modify, sublicense, or distribute the Document except
-as expressly provided for under this License. Any other attempt to
-copy, modify, sublicense or distribute the Document is void, and will
-automatically terminate your rights under this License. However,
-parties who have received copies, or rights, from you under this
-License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-
-10. FUTURE REVISIONS OF THIS LICENSE
-
-The Free Software Foundation may publish new, revised versions
-of the GNU Free Documentation License from time to time. Such new
-versions will be similar in spirit to the present version, but may
-differ in detail to address new problems or concerns. See
-http://www.gnu.org/copyleft/.
-
-Each version of the License is given a distinguishing version number.
-If the Document specifies that a particular numbered version of this
-License "or any later version" applies to it, you have the option of
-following the terms and conditions either of that specified version or
-of any later version that has been published (not as a draft) by the
-Free Software Foundation. If the Document does not specify a version
-number of this License, you may choose any version ever published (not
-as a draft) by the Free Software Foundation.
-
-
-ADDENDUM: How to use this License for your documents
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and
-license notices just after the title page:
-
-@smallexample
- Copyright (c) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.1
- or any later version published by the Free Software Foundation;
- with the Invariant Sections being LIST THEIR TITLES, with the
- Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
- A copy of the license is included in the section entitled "GNU
- Free Documentation License".
-@end smallexample
-
-If you have no Invariant Sections, write "with no Invariant Sections"
-instead of saying which ones are invariant. If you have no
-Front-Cover Texts, write "no Front-Cover Texts" instead of
-"Front-Cover Texts being LIST"; likewise for Back-Cover Texts.
-
-If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License,
-to permit their use in free software.
+@include fdl.texi
@node Index
@unnumbered Index
OpenPOWER on IntegriCloud