Add .incbin pseudo op
[deliverable/binutils-gdb.git] / gas / doc / as.texinfo
index a45a561f7ed1379775b6871ae40b0ce34967d431..cef74c732e289e9f1c8a5e6a0794aaa15e8d0451 100644 (file)
@@ -1,5 +1,6 @@
 \input texinfo @c                               -*-Texinfo-*-
-@c  Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 2000
+@c  Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+@c  2001
 @c  Free Software Foundation, Inc.
 @c UPDATE!!  On future updates--
 @c   (1)   check for new machine-dep cmdline options in
 @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 ARC
+@set ARM
+@set D10V
+@set D30V
+@set H8/300
+@set H8/500
+@set HPPA
+@set I370
+@set I80386
+@set I860
+@set I960
+@set M32R
+@set M68HC11
+@set M680X0
+@set M880X0
+@set MCORE
+@set MIPS
+@set PDP11
+@set PJ
+@set SH
+@set SPARC
+@set C54X
+@set V850
+@set VAX
+@end ifset
+@c man end
 @c common OR combinations of conditions
 @ifset AOUT
 @set aout-bout
@@ -87,14 +121,17 @@ END-INFO-DIR-ENTRY
 @ifinfo
 This file documents the GNU Assembler "@value{AS}".
 
-Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
+@c man begin COPYRIGHT
+Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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".
+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".
+
+@c man end
 
 @ignore
 Permission is granted to process this file through Tex and print the
@@ -138,7 +175,7 @@ done.
 @end tex
 
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
+Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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
@@ -196,11 +233,21 @@ code for @value{TARGET} architectures.
 Here is a brief summary of how to invoke @code{@value{AS}}.  For details,
 @pxref{Invoking,,Comand-Line Options}.
 
+@c man title AS the portable GNU assembler.
+
+@c man begin SEEALSO
+gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
+@c man end
+
 @c We don't use deffn and friends for the following because they seem
 @c to be limited to one line for the header.
 @smallexample
+@c man begin SYNOPSIS
 @value{AS} [ -a[cdhlns][=file] ] [ -D ]  [ --defsym @var{sym}=@var{val} ]
- [ -f ] [ --gstabs ] [ --gdwarf2 ] [ --help ] [ -I @var{dir} ] [ -J ] [ -K ] [ -L ]
+ [ -f ] [ --gstabs ] [ --gdwarf2 ] [ --help ] [ -I @var{dir} ] 
+ [ -J ] [ -K ] [ -L ]
+ [ --listing--lhs-width=NUM ][ --listing-lhs-width2=NUM ]
+ [ --listing-rhs-width=NUM ][ --listing-cont-lines=NUM ]
  [ --keep-locals ] [ -o @var{objfile} ] [ -R ] [ --statistics ] [ -v ]
  [ -version ] [ --version ] [ -W ] [ --warn ] [ --fatal-warnings ] 
  [ -w ] [ -x ] [ -Z ] [ --target-help ]
@@ -208,23 +255,26 @@ Here is a brief summary of how to invoke @code{@value{AS}}.  For details,
 @c am29k has no machine-dependent assembler options
 @end ifset
 @ifset ARC
- [ -mbig-endian | -mlittle-endian ]
+ [ -marc[5|6|7|8] ]
+ [ -EB | -EL ]
 @end ifset
 @ifset ARM
- [ -m[arm]1 | -m[arm]2 | -m[arm]250 | -m[arm]3 | -m[arm]6 | -m[arm]60 |
-   -m[arm]600 | -m[arm]610 | -m[arm]620 | -m[arm]7[t][[d]m[i]][fe] | -m[arm]70 |
-   -m[arm]700 | -m[arm]710[c] | -m[arm]7100 | -m[arm]7500 | -m[arm]8 |
-   -m[arm]810 | -m[arm]9 | -m[arm]920 | -m[arm]920t | -m[arm]9tdmi |
+ [ -m[arm]1 | -m[arm]2 | -m[arm]250 | -m[arm]3 |
+   -m[arm]6 | -m[arm]60 | -m[arm]600 | -m[arm]610 |
+   -m[arm]620 | -m[arm]7[t][[d]m[i]][fe] | -m[arm]70 |
+   -m[arm]700 | -m[arm]710[c] | -m[arm]7100 |
+   -m[arm]7500 | -m[arm]8 | -m[arm]810 | -m[arm]9 |
+   -m[arm]920 | -m[arm]920t | -m[arm]9tdmi |
    -mstrongarm | -mstrongarm110 | -mstrongarm1100 ]
- [ -m[arm]v2 | -m[arm]v2a | -m[arm]v3 | -m[arm]v3m | -m[arm]v4 | -m[arm]v4t |
-   -m[arm]v5 | -[arm]v5t ]
+ [ -m[arm]v2 | -m[arm]v2a | -m[arm]v3 | -m[arm]v3m |
+   -m[arm]v4 | -m[arm]v4t | -m[arm]v5 | -[arm]v5t |
+   -[arm]v5te ]
  [ -mthumb | -mall ]
  [ -mfpa10 | -mfpa11 | -mfpe-old | -mno-fpu ]
  [ -EB | -EL ]
- [ -mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant ]
- [ -mthumb-interwork ]
- [ -moabi ]
- [ -k ]
+ [ -mapcs-32 | -mapcs-26 | -mapcs-float |
+   -mapcs-reentrant ]
+ [ -mthumb-interwork ] [ -moabi ] [ -k ]
 @end ifset
 @ifset D10V
  [ -O ]
@@ -245,7 +295,8 @@ Here is a brief summary of how to invoke @code{@value{AS}}.  For details,
 @c The order here is important.  See c-sparc.texi.
  [ -Av6 | -Av7 | -Av8 | -Asparclet | -Asparclite
    -Av8plus | -Av8plusa | -Av9 | -Av9a ]
- [ -xarch=v8plus | -xarch=v8plusa ] [ -bump ] [ -32 | -64 ]
+ [ -xarch=v8plus | -xarch=v8plusa ] [ -bump ]
+ [ -32 | -64 ]
 @end ifset
 @ifset TIC54X
  [ -mcpu=54[123589] | -mcpu=54[56]lp ] [ -mfar-mode | -mf ] 
@@ -256,11 +307,13 @@ Here is a brief summary of how to invoke @code{@value{AS}}.  For details,
 @end ifset
 @ifset I960
 @c see md_parse_option in tc-i960.c
- [ -ACA | -ACA_A | -ACB | -ACC | -AKA | -AKB | -AKC | -AMC ]
+ [ -ACA | -ACA_A | -ACB | -ACC | -AKA | -AKB |
+   -AKC | -AMC ]
  [ -b ] [ -no-relax ]
 @end ifset
 @ifset M32R
- [ --m32rx | --[no-]warn-explicit-parallel-conflicts | --W[n]p ]
+ [ --m32rx | --[no-]warn-explicit-parallel-conflicts |
+   --W[n]p ]
 @end ifset
 @ifset M680X0
  [ -l ] [ -m68000 | -m68010 | -m68020 | ... ]
@@ -271,18 +324,24 @@ Here is a brief summary of how to invoke @code{@value{AS}}.  For details,
 @end ifset
 @ifset M68HC11
  [ -m68hc11 | -m68hc12 ]
- [ --force-long-branchs ] [ --short-branchs ] [ --strict-direct-mode ]
- [ --print-insn-syntax ] [ --print-opcodes ] [ --generate-example ]
+ [ --force-long-branchs ] [ --short-branchs ]
+ [ --strict-direct-mode ] [ --print-insn-syntax ]
+ [ --print-opcodes ] [ --generate-example ]
 @end ifset
 @ifset MIPS
  [ -nocpp ] [ -EL ] [ -EB ] [ -G @var{num} ] [ -mcpu=@var{CPU} ]
- [ -mips1 ] [ -mips2 ] [ -mips3 ] [ -m4650 ] [ -no-m4650 ] [ -mips32 ] [ -no-mips32 ]
- [ --trap ] [ --break ]
+ [ -mips1 ] [ -mips2 ] [ -mips3 ] [ -mips4 ] [ -mips5 ]
+ [ -mips32 ] [ -mips64 ]
+ [ -m4650 ] [ -no-m4650 ]
+ [ --trap ] [ --break ] [ -n ]
  [ --emulation=@var{name} ]
 @end ifset
  [ -- | @var{files} @dots{} ]
+@c man end
 @end smallexample
 
+@c man begin OPTIONS
+
 @table @code
 @item -a[cdhlmns]
 Turn on listings, in any of a variety of ways:
@@ -365,6 +424,22 @@ Keep (in the symbol table) local symbols.  On traditional a.out systems
 these start with @samp{L}, but different systems have different local
 label prefixes.
 
+@item --listing-lhs-width=@var{number}
+Set the maximum width, in words, of the output data column for an assembler
+listing to @var{number}.
+
+@item --listing-lhs-width2=@var{number}
+Set the maximum width, in words, of the output data column for continuation
+lines in an assembler listing to @var{number}.
+
+@item --listing-rhs-width=@var{number}
+Set the maximum width of an input source line, as displayed in a listing, to
+@var{number} bytes.
+
+@item --listing-cont-lines=@var{number}
+Set the maximum number of lines printed in a listing for a single line of input
+to @var{number} + 1.
+
 @item -o @var{objfile}
 Name the object-file output from @code{@value{AS}} @var{objfile}.
 
@@ -414,17 +489,10 @@ The following options are available when @value{AS} is configured for
 an ARC processor.
 
 @table @code
-
-@cindex ARC endianness
-@cindex endianness, ARC
-@cindex big endian output, ARC
-@item -mbig-endian
-Generate ``big endian'' format output.
-
-@cindex little endian output, ARC
-@item -mlittle-endian
-Generate ``little endian'' format output.
-
+@item -marc[5|6|7|8]
+This option selects the core processor variant.
+@item -EB | -EL
+Select either big-endian (-EB) or little-endian (-EL) output.
 @end table
 @end ifset
 
@@ -440,7 +508,7 @@ Specify which ARM architecture variant is used by the target.
 @item -mthumb | -mall
 Enable or disable Thumb only instruction decoding.
 @item -mfpa10 | -mfpa11 | -mfpe-old | -mno-fpu
-Select which Floating Point architcture is the target.
+Select which Floating Point architecture is the target.
 @item -mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant | -moabi
 Select which procedure calling convention is in use.
 @item -EB | -EL
@@ -531,8 +599,9 @@ Motorola 68000 series.
 @item -l
 Shorten references to undefined symbols, to one word instead of two.
 
-@item -m68000 | -m68008 | -m68010 | -m68020 | -m68030 | -m68040 | -m68060
-@itemx | -m68302 | -m68331 | -m68332 | -m68333 | -m68340 | -mcpu32 | -m5200
+@item -m68000 | -m68008 | -m68010 | -m68020 | -m68030
+@itemx | -m68040 | -m68060 | -m68302 | -m68331 | -m68332
+@itemx | -m68333 | -m68340 | -mcpu32 | -m5200
 Specify what processor in the 68000 family is the target.  The default
 is normally the 68020, but this can be changed at configuration time.
 
@@ -550,6 +619,37 @@ unit coprocessor.  The default is to assume an MMU for 68020 and up.
 @end table
 @end ifset
 
+@ifset PDP11
+
+For details about the PDP-11 machine dependent features options,
+see @ref{PDP-11-Options}.
+
+@table @code
+@item -mpic | -mno-pic
+Generate position-independent (or position-dependent) code.  The
+default is @code{-mpic}.
+
+@item -mall
+@itemx -mall-extensions
+Enable all instruction set extensions.  This is the default.
+
+@item -mno-extensions
+Disable all instruction set extensions.
+
+@item -m@var{extension} | -mno-@var{extension}
+Enable (or disable) a particular instruction set extension.
+
+@item -m@var{cpu}
+Enable the instruction set extensions supported by a particular CPU, and
+disable all other extensions.
+
+@item -m@var{machine}
+Enable the instruction set extensions supported by a particular machine
+model, and disable all other extensions.
+@end table
+
+@end ifset
+
 @ifset PJ
 The following options are available when @value{AS} is configured for
 a picoJava processor.
@@ -669,10 +769,15 @@ Generate ``little endian'' format output.
 @item -mips1
 @itemx -mips2
 @itemx -mips3
+@itemx -mips4
+@itemx -mips32
 Generate code for a particular MIPS Instruction Set Architecture level.
 @samp{-mips1} corresponds to the @sc{r2000} and @sc{r3000} processors,
 @samp{-mips2} to the @sc{r6000} processor, and @samp{-mips3} to the @sc{r4000}
 processor.
+@samp{-mips5}, @samp{-mips32}, and @samp{-mips64} correspond
+to generic @sc{MIPS V}, @sc{MIPS32}, and @sc{MIPS64} ISA
+processors, respectively.
 
 @item -m4650
 @itemx -no-m4650
@@ -681,15 +786,10 @@ the @samp{mad} and @samp{madu} instruction, and to not schedule @samp{nop}
 instructions around accesses to the @samp{HI} and @samp{LO} registers.
 @samp{-no-m4650} turns off this option.
 
-@item -mips32
-@itemx -no-mips32
-Generate code for the @sc{MIPS32} architecture. This tells the assembler to
-accept ISA level 2 instructions and MIPS32 extensions including some @sc{r4000}
-instructions.
-
 @item -mcpu=@var{CPU}
-Generate code for a particular MIPS cpu.  This has little effect on the
-assembler, but it is passed by @code{@value{GCC}}.
+Generate code for a particular MIPS cpu.  It is exactly equivalent to
+@samp{-m@var{cpu}}, except that there are more value of @var{cpu}
+understood.
 
 @cindex emulation
 @item --emulation=@var{name}
@@ -730,6 +830,10 @@ Control how to deal with multiplication overflow and division by zero.
 (and only work for Instruction Set Architecture level 2 and higher);
 @samp{--break} or @samp{--no-trap} (also synonyms, and the default) take a
 break exception.
+
+@item -n
+When this option is used, @code{@value{AS}} will issue a warning every
+time it generates a nop instruction from a macro.
 @end table
 @end ifset
 
@@ -746,7 +850,7 @@ The command line option @samp{-nojsri2bsr} can be used to disable it.
 @item -sifilter
 @itemx -nosifilter
 Enable or disable the silicon filter behaviour.  By default this is disabled.
-The default can be overidden by the @samp{-sifilter} command line option.
+The default can be overridden by the @samp{-sifilter} command line option.
 
 @item -relax
 Alter jump instructions for long displacements.
@@ -764,6 +868,8 @@ Assemble for a little endian target.
 @end table
 @end ifset
 
+@c man end
+
 @menu
 * Manual::                      Structure of this Manual
 * GNU Assembler::               The GNU Assembler
@@ -849,6 +955,8 @@ computer-readable series of instructions.  Different versions of
 @node GNU Assembler
 @section The GNU Assembler
 
+@c man begin DESCRIPTION
+
 @sc{gnu} @code{as} is really a family of assemblers.
 @ifclear GENERIC
 This manual describes @code{@value{AS}}, a member of that family which is
@@ -877,6 +985,8 @@ assembler for the same architecture; for example, we know of several
 incompatible versions of 680x0 assembly language syntax.
 @end ifset
 
+@c man end
+
 Unlike older assemblers, @code{@value{AS}} is designed to assemble a source
 program in one pass of the source file.  This has a subtle impact on the
 @kbd{.org} directive (@pxref{Org,,@code{.org}}).
@@ -914,6 +1024,7 @@ SOM or ELF format object files.
 @section Command Line
 
 @cindex command line conventions
+
 After the program name @code{@value{AS}}, the command line may contain
 options and file names.  Options may appear in any order, and may be
 before, after, or between file names.  The order of file names is
@@ -957,6 +1068,7 @@ doesn't change the meaning of the source.
 The source program is a concatenation of the text in all the files, in the
 order specified.
 
+@c man begin DESCRIPTION
 Each time you run @code{@value{AS}} it assembles exactly one source
 program.  The source program is made up of one or more files.
 (The standard input is also a file.)
@@ -977,6 +1089,8 @@ in your command line.
 If the source is empty, @code{@value{AS}} produces a small, empty object
 file.
 
+@c man end
+
 @subheading Filenames and Line-numbers
 
 @cindex input file linenumbers
@@ -1034,7 +1148,9 @@ information for the debugger.
 @node Errors
 @section Error and Warning Messages
 
-@cindex error messsages
+@c man begin DESCRIPTION
+
+@cindex error messages
 @cindex warning messages
 @cindex messages from assembler
 @code{@value{AS}} may write warnings and error messages to the standard error
@@ -1043,6 +1159,8 @@ runs @code{@value{AS}} automatically.  Warnings report an assumption made so
 that @code{@value{AS}} could keep assembling a flawed program; errors report a
 grave problem that stops the assembly.
 
+@c man end
+
 @cindex format of warning messages
 Warning messages have the format
 
@@ -1093,6 +1211,8 @@ to the @value{TARGET}.
 to particular machine architectures.
 @end ifset
 
+@c man begin DESCRIPTION
+
 If you are invoking @code{@value{AS}} via the @sc{gnu} C compiler (version 2),
 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})
@@ -1113,6 +1233,8 @@ command-line options are automatically passed to the assembler by the compiler.
 precisely what options it passes to each compilation pass, including the
 assembler.)
 
+@c man end
+
 @menu
 * a::             -a[cdhlns] enable listings
 * D::             -D for compatibility
@@ -1126,6 +1248,7 @@ assembler.)
 @end ifset
 
 * L::             -L to retain local labels
+* listing::       --listing-XXX to configure listing output
 * M::            -M or --mri to assemble in MRI compatibility mode
 * MD::            --MD for dependency tracking
 * o::             -o to name the object file
@@ -1179,6 +1302,13 @@ listing-control directives have no effect.
 The letters after @samp{-a} may be combined into one option,
 @emph{e.g.}, @samp{-aln}.
 
+Note if the assembler source is coming from the standard input (eg because it
+is being created by @code{@value{GCC}} and the @samp{-pipe} command line switch
+is being used) then the listing will not contain any comments or preprocessor
+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 D
 @section @code{-D}
 
@@ -1264,6 +1394,45 @@ target is allowed to redefine the local label prefix.
 On the HPPA local labels begin with @samp{L$}.
 @end ifset
 
+@node listing
+@section Configuringh listing output: @code{--listing}
+
+The listing feature of the assembler can be enabled via the command line switch
+@samp{-a} (@pxref{a}).  This feature combines the input source file(s) with a
+hex dump of the corresponding locations in the output object file, and displays
+them as a listing file.  The format of this listing can be controlled by pseudo
+ops inside the assembler source (@pxref{List} @pxref{Title} @pxref{Sbttl}
+@pxref{Psize} @pxref{Eject}) and also by the following switches:
+
+@table @code
+@item --listing-lhs-width=@samp{number}
+@kindex --listing-lhs-width
+@cindex Width of first line disassembly output
+Sets the maximum width, in words, of the first line of the hex byte dump.  This
+dump appears on the left hand side of the listing output.
+
+@item --listing-lhs-width2=@samp{number}
+@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
+the same as the value specified for @samp{--listing-lhs-width}.  If neither
+switch is used the default is to one.
+
+@item --listing-rhs-width=@samp{number}
+@kindex --listing-rhs-width
+@cindex Width of source line output
+Sets the maximum width, in characters, of the source line that is displayed
+alongside the hex dump.  The default value for this parameter is 100.  The
+source line is displayed on the right hand side of the listing output.
+
+@item --listing-cont-lines=@samp{number}
+@kindex --listing-cont-lines
+@cindex Maximum number of continuation lines
+Sets the maximum number of continuation lines of hex dump that will be
+displayed for a given single line of source input.  The default value is 4.
+@end table
+
 @node M
 @section Assemble in MRI Compatibility Mode: @code{-M}
 
@@ -1665,9 +1834,15 @@ is considered a comment and is ignored.  The line comment character is
 @ifset HPPA
 @samp{;} for the HPPA;
 @end ifset
+@ifset I80386
+@samp{#} on the i386 and x86-64;
+@end ifset
 @ifset I960
 @samp{#} on the i960;
 @end ifset
+@ifset PDP11
+@samp{;} for the PDP-11;
+@end ifset
 @ifset PJ
 @samp{;} for picoJava;
 @end ifset
@@ -1686,6 +1861,9 @@ 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
@@ -1696,7 +1874,7 @@ is considered a comment and is ignored.  The line comment character is
 @samp{#} on the V850;
 @end ifset
 see @ref{Machine Dependencies}.  @refill
-@c FIXME What about i386, m88k, i860?
+@c FIXME What about i860?
 
 @ifset GENERIC
 On some machines there are two different line comment characters.  One
@@ -2401,7 +2579,7 @@ in the data section.
 @cindex bss section
 @item bss section
 This section contains zeroed bytes when your program begins running.  It
-is used to hold unitialized variables or common storage.  The length of
+is used to hold uninitialized variables or common storage.  The length of
 each partial program's bss section is important, but because it starts
 out containing zeroed bytes there is no need to store explicit zero
 bytes in the object file.  The bss section was invented to eliminate
@@ -3137,7 +3315,7 @@ Intermediate precedence
 @end table
 
 @item
-Lowest Precedence
+Low Precedence
 
 @table @code
 @cindex addition, permitted arguments
@@ -3157,6 +3335,41 @@ result has the section of the left argument.
 If both arguments are in the same section, the result is absolute.
 You may not subtract arguments from different sections.
 @c FIXME is there still something useful to say about undefined - undefined ?
+
+@cindex comparison expressions
+@cindex expressions, comparison
+@item  ==
+@dfn{Is Equal To}
+@item <>
+@dfn{Is Not Equal To}
+@item <
+@dfn{Is Less Than}
+@itemx >
+@dfn{Is Greater Than}
+@itemx >=
+@dfn{Is Greater Than Or Equal To}
+@itemx <=
+@dfn{Is Less Than Or Equal To}
+
+The comparison operators can be used as infix operators.  A true results has a
+value of -1 whereas a false result has a value of 0.   Note, these operators
+perform signed comparisons.
+@end table
+
+@item Lowest Precedence
+
+@table @code
+@item &&
+@dfn{Logical And}.
+
+@item ||
+@dfn{Logical Or}.
+
+These two logical operations can be used to combine the results of sub
+expressions.  Note, unlike the comparison operators a true result returns a
+value of 1 but a false results does still return 0.  Also note that the logical
+or operator has a slightly lower precedence than logical and.
+
 @end table
 @end enumerate
 
@@ -3239,6 +3452,7 @@ Some machine configurations provide additional directives.
 * hword::                       @code{.hword @var{expressions}}
 * Ident::                       @code{.ident}
 * If::                          @code{.if @var{absolute expression}}
+* Incbin::                      @code{.incbin "@var{file}"[,@var{skip}[,@var{count}]]}
 * Include::                     @code{.include "@var{file}"}
 * Int::                         @code{.int @var{expressions}}
 @ifset ELF
@@ -3717,7 +3931,7 @@ removed to avoid conflicts with other assemblers.  @xref{Machine Dependencies}.
 @cindex @code{fill} directive
 @cindex writing patterns in memory
 @cindex patterns, writing in memory
-@var{result}, @var{size} and @var{value} are absolute expressions.
+@var{repeat}, @var{size} and @var{value} are absolute expressions.
 This emits @var{repeat} copies of @var{size} bytes.  @var{Repeat}
 may be zero or more.  @var{Size} may be zero or more, but if it is
 more than 8, then it is deemed to have the value 8, compatible with
@@ -3792,7 +4006,8 @@ partial programs.  You may need the HPPA-only @code{.EXPORT} directive as well.
 @cindex @code{.hidden} directive
 @cindex Visibility
 This one of the ELF visibility directives.  The other two are
-@pxref{Internal,,@code{.internal}} and @pxref{Protected,,@code{.protected}}
+@code{.internal} (@pxref{Internal,,@code{.internal}}) 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
@@ -3910,6 +4125,21 @@ Like @code{.ifeqs}, but the sense of the test is reversed: this assembles the
 following section of code if the two strings are not the same.
 @end table
 
+@node Incbin
+@section @code{.incbin "@var{file}"[,@var{skip}[,@var{count}]]}
+
+@cindex @code{incbin} directive
+@cindex binary files, including
+The @code{incbin} directive includes @var{file} verbatim at the current
+location. You can control the search paths used with the @samp{-I} command-line
+option (@pxref{Invoking,,Command-Line Options}).  Quotation marks are required
+around @var{file}.
+
+The @var{skip} argument skips a number of bytes from the start of the
+@var{file}.  The @var{count} argument indicates the maximum number of bytes to
+read. Note that the data from is not aligned in any way, make sure to proper
+alignment is provided before and after the @code{incbin} directive.
+
 @node Include
 @section @code{.include "@var{file}"}
 
@@ -3949,7 +4179,8 @@ integers.  On the H8/300H and the Hitachi SH, however, @code{.int} emits
 @cindex @code{.internal} directive
 @cindex Visibility
 This one of the ELF visibility directives.  The other two are
-@pxref{Hidden,,@code{.hidden}} and @pxref{Protected,,@code{.protected}}
+@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
@@ -4392,8 +4623,9 @@ undefined.
 @cindex @code{.previous} directive
 @cindex Section Stack
 This is one of the ELF section stack manipulation directives.  The others are
-@pxref{Section}, @xref{SubSection}, @pxref{PushSection}, and
-@pxref{PopSection}.
+@code{.section} (@pxref{Section}), @code{.subsection} (@pxref{SubSection}),
+@code{.pushsection} (@pxref{PushSection}), and @code{.popsection}
+(@pxref{PopSection}).
 
 This directive swaps the current section (and subsection) with most recently
 referenced section (and subsection) prior to this one.  Multiple
@@ -4411,8 +4643,9 @@ the top section on the section stack.
 @cindex @code{.popsection} directive
 @cindex Section Stack
 This is one of the ELF section stack manipulation directives.  The others are
-@pxref{Section}, @xref{SubSection}, @pxref{PushSection}, and
-@pxref{Previous}.
+@code{.section} (@pxref{Section}), @code{.subsection} (@pxref{SubSection}), 
+@code{.pushsection} (@pxref{PushSection}), and @code{.previous} 
+(@pxref{Previous}).
 
 This directive replaces the current section (and subsection) with the top
 section (and subsection) on the section stack.  This section is popped off the
@@ -4433,7 +4666,7 @@ assembly.  You must put @var{string} in double quotes.
 @cindex @code{.protected} directive
 @cindex Visibility
 This one of the ELF visibility directives.  The other two are
-@pxref{Hidden} and @pxref{Internal}
+@code{.hidden} (@pxref{Hidden}) and @code{.internal} (@pxref{Internal}).
 
 This directive overrides the named symbols default visibility (which is set by
 their binding: local, global or weak).  The directive sets the visibility to
@@ -4477,10 +4710,11 @@ expanded.  @xref{Macro}.
 @cindex @code{.pushsection} directive
 @cindex Section Stack
 This is one of the ELF section stack manipulation directives.  The others are
-@pxref{Section}, @xref{SubSection}, @pxref{PopSection}, and
-@pxref{Previous}.
+@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 psuhes the current section
+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}.
 @end ifset
@@ -4602,7 +4836,9 @@ shared section (meaningful for PE targets)
 
 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 be
-loaded and writable.
+loaded and writable.  Note the @code{n} and @code{w} flags remove attributes
+from the section, rather than adding them, so if they are used on their own it
+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}).
@@ -4615,8 +4851,9 @@ taken as a subsegment number (@pxref{Sub-Sections}).
 @ifset ELF
 @cindex Section Stack
 This is one of the ELF section stack manipulation directives.  The others are
-@xref{SubSection}, @pxref{PushSection}@pxref{PopSection}, and
-@pxref{Previous}.
+@code{.subsection} (@pxref{SubSection}), @code{.pushsection} 
+(@pxref{PushSection}), @code{.popsection} (@pxref{PopSection}), and
+@code{.previous} (@pxref{Previous}).
 @end ifset
 
 For ELF targets, the @code{.section} directive is used like this:
@@ -4626,7 +4863,7 @@ For ELF targets, the @code{.section} directive is used like this:
 @end smallexample
 
 The optional @var{flags} argument is a quoted string which may contain any
-combintion of the following characters:
+combination of the following characters:
 @table @code
 @item a
 section is allocatable
@@ -4912,8 +5149,9 @@ before further assembly.
 @cindex @code{.subsection} directive
 @cindex Section Stack
 This is one of the ELF section stack manipulation directives.  The others are
-@pxref{Section}, @xref{PushSection}, @pxref{PopSection}, and
-@pxref{Previous}.
+@code{.section} (@pxref{Section}), @code{.pushsection} (@pxref{PushSection}), 
+@code{.popsection} (@pxref{PopSection}), and @code{.previous} 
+(@pxref{Previous}).
 
 This directive replaces the current subsection with @code{name}.  The current
 section is not changed.  The replaced subsection is put onto the section stack
@@ -4962,7 +5200,7 @@ Another usage of the @code{.symver} directive is:
 .symver @var{name}, @var{name2@@@@nodename}
 @end smallexample
 In this case, the symbol @var{name} must exist and be defined within
-the file being assembled. It is similiar to @var{name2@@nodename}. The
+the file being assembled. It is similar to @var{name2@@nodename}. The
 difference is @var{name2@@@@nodename} will also be used to resolve
 references to @var{name2} by the linker.
 
@@ -5036,9 +5274,9 @@ directive but ignores it.
 @cindex symbol type, ELF
 @cindex @code{type} directive
 This directive is used to set the type of symbol @var{name} to be either a
-function symbol or an ojbect symbol.  There are five different syntaxes
+function symbol or an object symbol.  There are five different syntaxes
 supported for the @var{type description} field, in order to provide
-comptability with various other assemblers.  The syntaxes supported are:
+compatibility with various other assemblers.  The syntaxes supported are:
 
 @smallexample
   .type <name>,#function
@@ -5105,7 +5343,7 @@ This directive finds or creates a symbol @code{table} and creates a
 @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 whoes addend is the value of the child symbol.  As a special case 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
 
@@ -5114,7 +5352,7 @@ parent name of @code{0} is treated as refering the @code{*ABS*} section.
 @section @code{.weak @var{names}}
 
 @cindex @code{.weak}
-This directive sets the weak attribute on the comma seperated list of symbol
+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
 
@@ -5155,7 +5393,7 @@ interest to you does 32-bit addressing (or doesn't require it;
 
 @end ifset
 In order to assemble compiler output into something that works,
-@code{@value{AS}} occasionlly does strange things to @samp{.word} directives.
+@code{@value{AS}} occasionally does strange things to @samp{.word} directives.
 Directives of the form @samp{.word sym1-sym2} are often emitted by
 compilers as part of jump tables.  Therefore, when @code{@value{AS}} assembles a
 directive of the form @samp{.word sym1-sym2}, and the difference between
@@ -5242,7 +5480,7 @@ subject, see the hardware manufacturer's manual.
 * ESA/390-Dependent::           IBM ESA/390 Dependent Features
 @end ifset
 @ifset I80386
-* i386-Dependent::              Intel 80386 Dependent Features
+* i386-Dependent::              Intel 80386 and AMD x86-64 Dependent Features
 @end ifset
 @ifset I860
 * i860-Dependent::              Intel 80860 Dependent Features
@@ -5259,12 +5497,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 SH
 * SH-Dependent::                Hitachi SH Dependent Features
 @end ifset
+@ifset PDP11
+* PDP-11-Dependent::            PDP-11 Dependent Features
+@end ifset
 @ifset PJ
 * PJ-Dependent::                picoJava Dependent Features
 @end ifset
@@ -5297,80 +5541,7 @@ subject, see the hardware manufacturer's manual.
 @c in both conditional blocks.
 
 @ifset ARC
-@ifset GENERIC
-@page
-@node ARC-Dependent
-@chapter ARC Dependent Features
-@end ifset
-@ifclear GENERIC
-@node Machine Dependencies
-@chapter ARC Dependent Features
-@end ifclear
-
-@cindex ARC support
-@menu
-* ARC-Opts::                    Options
-* ARC-Float::                   Floating Point
-* ARC-Directives::              Sparc Machine Directives
-@end menu
-
-@node ARC-Opts
-@section Options
-
-@cindex options for ARC
-@cindex ARC options
-@cindex architectures, ARC
-@cindex ARC architectures
-The ARC chip family includes several successive levels (or other
-variants) of chip, using the same core instruction set, but including
-a few additional instructions at each level.
-
-By default, @code{@value{AS}} assumes the core instruction set (ARC
-base).  The @code{.cpu} pseudo-op is intended to be used to select
-the variant.
-
-@table @code
-@cindex @code{-mbig-endian} option (ARC)
-@cindex @code{-mlittle-endian} option (ARC)
-@cindex ARC big-endian output
-@cindex ARC little-endian output
-@cindex big-endian output, ARC
-@cindex little-endian output, ARC
-@item -mbig-endian
-@itemx -mlittle-endian
-Any @sc{arc} configuration of @code{@value{AS}} can select big-endian or
-little-endian output at run time (unlike most other @sc{gnu} development
-tools, which must be configured for one or the other).  Use
-@samp{-mbig-endian} to select big-endian output, and @samp{-mlittle-endian}
-for little-endian.
-@end table
-
-@node ARC-Float
-@section Floating Point
-
-@cindex floating point, ARC (@sc{ieee})
-@cindex ARC floating point (@sc{ieee})
-The ARC cpu family currently does not have hardware floating point
-support.  Software floating point support is provided by @code{GCC}
-and uses @sc{ieee} floating-point numbers.
-
-@node ARC-Directives
-@section ARC Machine Directives
-
-@cindex ARC machine directives
-@cindex machine directives, ARC
-The ARC version of @code{@value{AS}} supports the following additional
-machine directives:
-
-@table @code
-@item .cpu
-@cindex @code{cpu} directive, SPARC
-This must be followed by the desired cpu.
-The ARC is intended to be customizable, @code{.cpu} is used to
-select the desired variant [though currently there are none].
-
-@end table
-
+@include c-arc.texi
 @end ifset
 
 @ifset A29K
@@ -5448,6 +5619,10 @@ family.
 @include c-m68hc11.texi
 @end ifset
 
+@ifset M880X0
+@include c-m88k.texi
+@end ifset
+
 @ifset MIPS
 @include c-mips.texi
 @end ifset
@@ -5456,6 +5631,10 @@ family.
 @include c-ns32k.texi
 @end ifset
 
+@ifset PDP11
+@include c-pdp11.texi
+@end ifset
+
 @ifset PJ
 @include c-pj.texi
 @end ifset
@@ -5552,7 +5731,7 @@ individuals in the file @file{etc/SERVICE} in the @sc{gnu} Emacs
 distribution.
 
 In any event, we also recommend that you send bug reports for @code{@value{AS}}
-to @samp{bug-gnu-utils@@gnu.org}.
+to @samp{bug-binutils@@gnu.org}.
 
 The fundamental principle of reporting bugs usefully is this:
 @strong{report all the facts}.  If you are not sure whether to state a
This page took 0.037969 seconds and 4 git commands to generate.