summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2012-12-28 11:34:04 +0000
committerSam Thursfield <sam.thursfield@codethink.co.uk>2012-12-28 11:34:04 +0000
commit8d0c6a09358c99e78efac24ae7037dd15e6139ce (patch)
tree1cd9f85e9f4d55c8a1ba04e929f9339fecab97e4
parent9d3af03cd5383605fa4d49fe4d098186576b69b8 (diff)
downloadbinutils-redhat-8d0c6a09358c99e78efac24ae7037dd15e6139ce.tar.gz
Add files from tarball that were previously ignored
-rw-r--r--bfd/doc/bfd.info12145
-rw-r--r--bfd/po/da.gmobin0 -> 134131 bytes
-rw-r--r--bfd/po/es.gmobin0 -> 141061 bytes
-rw-r--r--bfd/po/fi.gmobin0 -> 142032 bytes
-rw-r--r--bfd/po/fr.gmobin0 -> 142671 bytes
-rw-r--r--bfd/po/id.gmobin0 -> 105891 bytes
-rw-r--r--bfd/po/ja.gmobin0 -> 52923 bytes
-rw-r--r--bfd/po/ro.gmobin0 -> 69038 bytes
-rw-r--r--bfd/po/ru.gmobin0 -> 175235 bytes
-rw-r--r--bfd/po/rw.gmobin0 -> 429 bytes
-rw-r--r--bfd/po/sv.gmobin0 -> 67266 bytes
-rw-r--r--bfd/po/tr.gmobin0 -> 69529 bytes
-rw-r--r--bfd/po/vi.gmobin0 -> 118337 bytes
-rw-r--r--bfd/po/zh_CN.gmobin0 -> 28121 bytes
-rw-r--r--binutils/doc/binutils.info4726
-rw-r--r--binutils/po/bg.gmobin0 -> 45189 bytes
-rw-r--r--binutils/po/da.gmobin0 -> 69960 bytes
-rw-r--r--binutils/po/es.gmobin0 -> 181430 bytes
-rw-r--r--binutils/po/fi.gmobin0 -> 173759 bytes
-rw-r--r--binutils/po/fr.gmobin0 -> 178907 bytes
-rw-r--r--binutils/po/id.gmobin0 -> 153153 bytes
-rw-r--r--binutils/po/ja.gmobin0 -> 184894 bytes
-rw-r--r--binutils/po/ro.gmobin0 -> 20265 bytes
-rw-r--r--binutils/po/ru.gmobin0 -> 216900 bytes
-rw-r--r--binutils/po/rw.gmobin0 -> 615 bytes
-rw-r--r--binutils/po/sk.gmobin0 -> 149635 bytes
-rw-r--r--binutils/po/sv.gmobin0 -> 113208 bytes
-rw-r--r--binutils/po/tr.gmobin0 -> 129842 bytes
-rw-r--r--binutils/po/uk.gmobin0 -> 172392 bytes
-rw-r--r--binutils/po/vi.gmobin0 -> 172896 bytes
-rw-r--r--binutils/po/zh_CN.gmobin0 -> 75892 bytes
-rw-r--r--binutils/po/zh_TW.gmobin0 -> 121475 bytes
-rw-r--r--etc/configure.info2773
-rw-r--r--etc/standards.info5744
-rw-r--r--gas/doc/as.info24303
-rw-r--r--gas/po/es.gmobin0 -> 422517 bytes
-rw-r--r--gas/po/fi.gmobin0 -> 425967 bytes
-rw-r--r--gas/po/fr.gmobin0 -> 426216 bytes
-rw-r--r--gas/po/id.gmobin0 -> 389863 bytes
-rw-r--r--gas/po/ru.gmobin0 -> 23024 bytes
-rw-r--r--gas/po/rw.gmobin0 -> 396 bytes
-rw-r--r--gas/po/tr.gmobin0 -> 220920 bytes
-rw-r--r--gold/po/es.gmobin0 -> 51373 bytes
-rw-r--r--gold/po/fi.gmobin0 -> 39817 bytes
-rw-r--r--gold/po/id.gmobin0 -> 38664 bytes
-rw-r--r--gold/po/vi.gmobin0 -> 56321 bytes
-rw-r--r--gprof/gprof.info2474
-rw-r--r--gprof/po/bg.gmobin0 -> 12677 bytes
-rw-r--r--gprof/po/da.gmobin0 -> 10329 bytes
-rw-r--r--gprof/po/de.gmobin0 -> 10545 bytes
-rw-r--r--gprof/po/eo.gmobin0 -> 10469 bytes
-rw-r--r--gprof/po/es.gmobin0 -> 10865 bytes
-rw-r--r--gprof/po/fi.gmobin0 -> 11021 bytes
-rw-r--r--gprof/po/fr.gmobin0 -> 11206 bytes
-rw-r--r--gprof/po/ga.gmobin0 -> 10440 bytes
-rw-r--r--gprof/po/id.gmobin0 -> 10448 bytes
-rw-r--r--gprof/po/ms.gmobin0 -> 10360 bytes
-rw-r--r--gprof/po/nl.gmobin0 -> 10712 bytes
-rw-r--r--gprof/po/pt_BR.gmobin0 -> 9984 bytes
-rw-r--r--gprof/po/ro.gmobin0 -> 9898 bytes
-rw-r--r--gprof/po/ru.gmobin0 -> 12808 bytes
-rw-r--r--gprof/po/rw.gmobin0 -> 486 bytes
-rw-r--r--gprof/po/sv.gmobin0 -> 10367 bytes
-rw-r--r--gprof/po/tr.gmobin0 -> 11331 bytes
-rw-r--r--gprof/po/vi.gmobin0 -> 12434 bytes
-rw-r--r--ld/ld.info7964
-rw-r--r--ld/po/bg.gmobin0 -> 71843 bytes
-rw-r--r--ld/po/da.gmobin0 -> 34929 bytes
-rw-r--r--ld/po/es.gmobin0 -> 58083 bytes
-rw-r--r--ld/po/fi.gmobin0 -> 57441 bytes
-rw-r--r--ld/po/fr.gmobin0 -> 51807 bytes
-rw-r--r--ld/po/ga.gmobin0 -> 48922 bytes
-rw-r--r--ld/po/id.gmobin0 -> 53562 bytes
-rw-r--r--ld/po/ja.gmobin0 -> 32271 bytes
-rw-r--r--ld/po/sv.gmobin0 -> 43131 bytes
-rw-r--r--ld/po/tr.gmobin0 -> 41339 bytes
-rw-r--r--ld/po/vi.gmobin0 -> 59341 bytes
-rw-r--r--ld/po/zh_CN.gmobin0 -> 24785 bytes
-rw-r--r--ld/po/zh_TW.gmobin0 -> 44839 bytes
-rw-r--r--md5.sum12857
-rw-r--r--opcodes/po/da.gmobin0 -> 17528 bytes
-rw-r--r--opcodes/po/de.gmobin0 -> 16919 bytes
-rw-r--r--opcodes/po/es.gmobin0 -> 25994 bytes
-rw-r--r--opcodes/po/fi.gmobin0 -> 26403 bytes
-rw-r--r--opcodes/po/fr.gmobin0 -> 25313 bytes
-rw-r--r--opcodes/po/ga.gmobin0 -> 24028 bytes
-rw-r--r--opcodes/po/id.gmobin0 -> 25350 bytes
-rw-r--r--opcodes/po/nl.gmobin0 -> 25236 bytes
-rw-r--r--opcodes/po/pt_BR.gmobin0 -> 8467 bytes
-rw-r--r--opcodes/po/ro.gmobin0 -> 15986 bytes
-rw-r--r--opcodes/po/sv.gmobin0 -> 16004 bytes
-rw-r--r--opcodes/po/tr.gmobin0 -> 16094 bytes
-rw-r--r--opcodes/po/vi.gmobin0 -> 27675 bytes
-rw-r--r--opcodes/po/zh_CN.gmobin0 -> 9039 bytes
94 files changed, 72986 insertions, 0 deletions
diff --git a/bfd/doc/bfd.info b/bfd/doc/bfd.info
new file mode 100644
index 0000000000..bffd41a564
--- /dev/null
+++ b/bfd/doc/bfd.info
@@ -0,0 +1,12145 @@
+This is bfd.info, produced by makeinfo version 4.8 from bfd.texinfo.
+
+INFO-DIR-SECTION Software development
+START-INFO-DIR-ENTRY
+* Bfd: (bfd). The Binary File Descriptor library.
+END-INFO-DIR-ENTRY
+
+ This file documents the BFD library.
+
+ Copyright (C) 1991, 2000, 2001, 2003, 2006, 2007, 2008 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.3 or
+any later version published by the Free Software Foundation; with the
+Invariant Sections being "GNU General Public License" and "Funding Free
+Software", the Front-Cover texts being (a) (see below), and with the
+Back-Cover Texts being (b) (see below). A copy of the license is
+included in the section entitled "GNU Free Documentation License".
+
+ (a) The FSF's Front-Cover Text is:
+
+ A GNU Manual
+
+ (b) The FSF's Back-Cover Text is:
+
+ You have freedom to copy and modify this GNU Manual, like GNU
+software. Copies published by the Free Software Foundation raise
+funds for GNU development.
+
+
+File: bfd.info, Node: Top, Next: Overview, Prev: (dir), Up: (dir)
+
+ This file documents the binary file descriptor library libbfd.
+
+* Menu:
+
+* Overview:: Overview of BFD
+* BFD front end:: BFD front end
+* BFD back ends:: BFD back ends
+* GNU Free Documentation License:: GNU Free Documentation License
+* BFD Index:: BFD Index
+
+
+File: bfd.info, Node: Overview, Next: BFD front end, Prev: Top, Up: Top
+
+1 Introduction
+**************
+
+BFD is a package which allows applications to use the same routines to
+operate on object files whatever the object file format. A new object
+file format can be supported simply by creating a new BFD back end and
+adding it to the library.
+
+ BFD is split into two parts: the front end, and the back ends (one
+for each object file format).
+ * The front end of BFD provides the interface to the user. It manages
+ memory and various canonical data structures. The front end also
+ decides which back end to use and when to call back end routines.
+
+ * The back ends provide BFD its view of the real world. Each back
+ end provides a set of calls which the BFD front end can use to
+ maintain its canonical form. The back ends also may keep around
+ information for their own use, for greater efficiency.
+
+* Menu:
+
+* History:: History
+* How It Works:: How It Works
+* What BFD Version 2 Can Do:: What BFD Version 2 Can Do
+
+
+File: bfd.info, Node: History, Next: How It Works, Prev: Overview, Up: Overview
+
+1.1 History
+===========
+
+One spur behind BFD was the desire, on the part of the GNU 960 team at
+Intel Oregon, for interoperability of applications on their COFF and
+b.out file formats. Cygnus was providing GNU support for the team, and
+was contracted to provide the required functionality.
+
+ The name came from a conversation David Wallace was having with
+Richard Stallman about the library: RMS said that it would be quite
+hard--David said "BFD". Stallman was right, but the name stuck.
+
+ At the same time, Ready Systems wanted much the same thing, but for
+different object file formats: IEEE-695, Oasys, Srecords, a.out and 68k
+coff.
+
+ BFD was first implemented by members of Cygnus Support; Steve
+Chamberlain (`sac@cygnus.com'), John Gilmore (`gnu@cygnus.com'), K.
+Richard Pixley (`rich@cygnus.com') and David Henkel-Wallace
+(`gumby@cygnus.com').
+
+
+File: bfd.info, Node: How It Works, Next: What BFD Version 2 Can Do, Prev: History, Up: Overview
+
+1.2 How To Use BFD
+==================
+
+To use the library, include `bfd.h' and link with `libbfd.a'.
+
+ BFD provides a common interface to the parts of an object file for a
+calling application.
+
+ When an application successfully opens a target file (object,
+archive, or whatever), a pointer to an internal structure is returned.
+This pointer points to a structure called `bfd', described in `bfd.h'.
+Our convention is to call this pointer a BFD, and instances of it
+within code `abfd'. All operations on the target object file are
+applied as methods to the BFD. The mapping is defined within `bfd.h'
+in a set of macros, all beginning with `bfd_' to reduce namespace
+pollution.
+
+ For example, this sequence does what you would probably expect:
+return the number of sections in an object file attached to a BFD
+`abfd'.
+
+ #include "bfd.h"
+
+ unsigned int number_of_sections (abfd)
+ bfd *abfd;
+ {
+ return bfd_count_sections (abfd);
+ }
+
+ The abstraction used within BFD is that an object file has:
+
+ * a header,
+
+ * a number of sections containing raw data (*note Sections::),
+
+ * a set of relocations (*note Relocations::), and
+
+ * some symbol information (*note Symbols::).
+ Also, BFDs opened for archives have the additional attribute of an
+index and contain subordinate BFDs. This approach is fine for a.out and
+coff, but loses efficiency when applied to formats such as S-records and
+IEEE-695.
+
+
+File: bfd.info, Node: What BFD Version 2 Can Do, Prev: How It Works, Up: Overview
+
+1.3 What BFD Version 2 Can Do
+=============================
+
+When an object file is opened, BFD subroutines automatically determine
+the format of the input object file. They then build a descriptor in
+memory with pointers to routines that will be used to access elements of
+the object file's data structures.
+
+ As different information from the object files is required, BFD
+reads from different sections of the file and processes them. For
+example, a very common operation for the linker is processing symbol
+tables. Each BFD back end provides a routine for converting between
+the object file's representation of symbols and an internal canonical
+format. When the linker asks for the symbol table of an object file, it
+calls through a memory pointer to the routine from the relevant BFD
+back end which reads and converts the table into a canonical form. The
+linker then operates upon the canonical form. When the link is finished
+and the linker writes the output file's symbol table, another BFD back
+end routine is called to take the newly created symbol table and
+convert it into the chosen output format.
+
+* Menu:
+
+* BFD information loss:: Information Loss
+* Canonical format:: The BFD canonical object-file format
+
+
+File: bfd.info, Node: BFD information loss, Next: Canonical format, Up: What BFD Version 2 Can Do
+
+1.3.1 Information Loss
+----------------------
+
+_Information can be lost during output._ The output formats supported
+by BFD do not provide identical facilities, and information which can
+be described in one form has nowhere to go in another format. One
+example of this is alignment information in `b.out'. There is nowhere
+in an `a.out' format file to store alignment information on the
+contained data, so when a file is linked from `b.out' and an `a.out'
+image is produced, alignment information will not propagate to the
+output file. (The linker will still use the alignment information
+internally, so the link is performed correctly).
+
+ Another example is COFF section names. COFF files may contain an
+unlimited number of sections, each one with a textual section name. If
+the target of the link is a format which does not have many sections
+(e.g., `a.out') or has sections without names (e.g., the Oasys format),
+the link cannot be done simply. You can circumvent this problem by
+describing the desired input-to-output section mapping with the linker
+command language.
+
+ _Information can be lost during canonicalization._ The BFD internal
+canonical form of the external formats is not exhaustive; there are
+structures in input formats for which there is no direct representation
+internally. This means that the BFD back ends cannot maintain all
+possible data richness through the transformation between external to
+internal and back to external formats.
+
+ This limitation is only a problem when an application reads one
+format and writes another. Each BFD back end is responsible for
+maintaining as much data as possible, and the internal BFD canonical
+form has structures which are opaque to the BFD core, and exported only
+to the back ends. When a file is read in one format, the canonical form
+is generated for BFD and the application. At the same time, the back
+end saves away any information which may otherwise be lost. If the data
+is then written back in the same format, the back end routine will be
+able to use the canonical form provided by the BFD core as well as the
+information it prepared earlier. Since there is a great deal of
+commonality between back ends, there is no information lost when
+linking or copying big endian COFF to little endian COFF, or `a.out' to
+`b.out'. When a mixture of formats is linked, the information is only
+lost from the files whose format differs from the destination.
+
+
+File: bfd.info, Node: Canonical format, Prev: BFD information loss, Up: What BFD Version 2 Can Do
+
+1.3.2 The BFD canonical object-file format
+------------------------------------------
+
+The greatest potential for loss of information occurs when there is the
+least overlap between the information provided by the source format,
+that stored by the canonical format, and that needed by the destination
+format. A brief description of the canonical form may help you
+understand which kinds of data you can count on preserving across
+conversions.
+
+_files_
+ Information stored on a per-file basis includes target machine
+ architecture, particular implementation format type, a demand
+ pageable bit, and a write protected bit. Information like Unix
+ magic numbers is not stored here--only the magic numbers' meaning,
+ so a `ZMAGIC' file would have both the demand pageable bit and the
+ write protected text bit set. The byte order of the target is
+ stored on a per-file basis, so that big- and little-endian object
+ files may be used with one another.
+
+_sections_
+ Each section in the input file contains the name of the section,
+ the section's original address in the object file, size and
+ alignment information, various flags, and pointers into other BFD
+ data structures.
+
+_symbols_
+ Each symbol contains a pointer to the information for the object
+ file which originally defined it, its name, its value, and various
+ flag bits. When a BFD back end reads in a symbol table, it
+ relocates all symbols to make them relative to the base of the
+ section where they were defined. Doing this ensures that each
+ symbol points to its containing section. Each symbol also has a
+ varying amount of hidden private data for the BFD back end. Since
+ the symbol points to the original file, the private data format
+ for that symbol is accessible. `ld' can operate on a collection
+ of symbols of wildly different formats without problems.
+
+ Normal global and simple local symbols are maintained on output,
+ so an output file (no matter its format) will retain symbols
+ pointing to functions and to global, static, and common variables.
+ Some symbol information is not worth retaining; in `a.out', type
+ information is stored in the symbol table as long symbol names.
+ This information would be useless to most COFF debuggers; the
+ linker has command line switches to allow users to throw it away.
+
+ There is one word of type information within the symbol, so if the
+ format supports symbol type information within symbols (for
+ example, COFF, IEEE, Oasys) and the type is simple enough to fit
+ within one word (nearly everything but aggregates), the
+ information will be preserved.
+
+_relocation level_
+ Each canonical BFD relocation record contains a pointer to the
+ symbol to relocate to, the offset of the data to relocate, the
+ section the data is in, and a pointer to a relocation type
+ descriptor. Relocation is performed by passing messages through
+ the relocation type descriptor and the symbol pointer. Therefore,
+ relocations can be performed on output data using a relocation
+ method that is only available in one of the input formats. For
+ instance, Oasys provides a byte relocation format. A relocation
+ record requesting this relocation type would point indirectly to a
+ routine to perform this, so the relocation may be performed on a
+ byte being written to a 68k COFF file, even though 68k COFF has no
+ such relocation type.
+
+_line numbers_
+ Object formats can contain, for debugging purposes, some form of
+ mapping between symbols, source line numbers, and addresses in the
+ output file. These addresses have to be relocated along with the
+ symbol information. Each symbol with an associated list of line
+ number records points to the first record of the list. The head
+ of a line number list consists of a pointer to the symbol, which
+ allows finding out the address of the function whose line number
+ is being described. The rest of the list is made up of pairs:
+ offsets into the section and line numbers. Any format which can
+ simply derive this information can pass it successfully between
+ formats (COFF, IEEE and Oasys).
+
+
+File: bfd.info, Node: BFD front end, Next: BFD back ends, Prev: Overview, Up: Top
+
+2 BFD Front End
+***************
+
+2.1 `typedef bfd'
+=================
+
+A BFD has type `bfd'; objects of this type are the cornerstone of any
+application using BFD. Using BFD consists of making references though
+the BFD and to data in the BFD.
+
+ Here is the structure that defines the type `bfd'. It contains the
+major data about the file and pointers to the rest of the data.
+
+
+ enum bfd_direction
+ {
+ no_direction = 0,
+ read_direction = 1,
+ write_direction = 2,
+ both_direction = 3
+ };
+
+ struct bfd
+ {
+ /* A unique identifier of the BFD */
+ unsigned int id;
+
+ /* The filename the application opened the BFD with. */
+ const char *filename;
+
+ /* A pointer to the target jump table. */
+ const struct bfd_target *xvec;
+
+ /* The IOSTREAM, and corresponding IO vector that provide access
+ to the file backing the BFD. */
+ void *iostream;
+ const struct bfd_iovec *iovec;
+
+ /* The caching routines use these to maintain a
+ least-recently-used list of BFDs. */
+ struct bfd *lru_prev, *lru_next;
+
+ /* When a file is closed by the caching routines, BFD retains
+ state information on the file here... */
+ ufile_ptr where;
+
+ /* File modified time, if mtime_set is TRUE. */
+ long mtime;
+
+ /* Reserved for an unimplemented file locking extension. */
+ int ifd;
+
+ /* The format which belongs to the BFD. (object, core, etc.) */
+ bfd_format format;
+
+ /* The direction with which the BFD was opened. */
+ enum bfd_direction direction;
+
+ /* Format_specific flags. */
+ flagword flags;
+
+ /* Values that may appear in the flags field of a BFD. These also
+ appear in the object_flags field of the bfd_target structure, where
+ they indicate the set of flags used by that backend (not all flags
+ are meaningful for all object file formats) (FIXME: at the moment,
+ the object_flags values have mostly just been copied from backend
+ to another, and are not necessarily correct). */
+
+ #define BFD_NO_FLAGS 0x00
+
+ /* BFD contains relocation entries. */
+ #define HAS_RELOC 0x01
+
+ /* BFD is directly executable. */
+ #define EXEC_P 0x02
+
+ /* BFD has line number information (basically used for F_LNNO in a
+ COFF header). */
+ #define HAS_LINENO 0x04
+
+ /* BFD has debugging information. */
+ #define HAS_DEBUG 0x08
+
+ /* BFD has symbols. */
+ #define HAS_SYMS 0x10
+
+ /* BFD has local symbols (basically used for F_LSYMS in a COFF
+ header). */
+ #define HAS_LOCALS 0x20
+
+ /* BFD is a dynamic object. */
+ #define DYNAMIC 0x40
+
+ /* Text section is write protected (if D_PAGED is not set, this is
+ like an a.out NMAGIC file) (the linker sets this by default, but
+ clears it for -r or -N). */
+ #define WP_TEXT 0x80
+
+ /* BFD is dynamically paged (this is like an a.out ZMAGIC file) (the
+ linker sets this by default, but clears it for -r or -n or -N). */
+ #define D_PAGED 0x100
+
+ /* BFD is relaxable (this means that bfd_relax_section may be able to
+ do something) (sometimes bfd_relax_section can do something even if
+ this is not set). */
+ #define BFD_IS_RELAXABLE 0x200
+
+ /* This may be set before writing out a BFD to request using a
+ traditional format. For example, this is used to request that when
+ writing out an a.out object the symbols not be hashed to eliminate
+ duplicates. */
+ #define BFD_TRADITIONAL_FORMAT 0x400
+
+ /* This flag indicates that the BFD contents are actually cached
+ in memory. If this is set, iostream points to a bfd_in_memory
+ struct. */
+ #define BFD_IN_MEMORY 0x800
+
+ /* The sections in this BFD specify a memory page. */
+ #define HAS_LOAD_PAGE 0x1000
+
+ /* This BFD has been created by the linker and doesn't correspond
+ to any input file. */
+ #define BFD_LINKER_CREATED 0x2000
+
+ /* This may be set before writing out a BFD to request that it
+ be written using values for UIDs, GIDs, timestamps, etc. that
+ will be consistent from run to run. */
+ #define BFD_DETERMINISTIC_OUTPUT 0x4000
+
+ /* Compress sections in this BFD. */
+ #define BFD_COMPRESS 0x8000
+
+ /* Decompress sections in this BFD. */
+ #define BFD_DECOMPRESS 0x10000
+
+ /* BFD is a dummy, for plugins. */
+ #define BFD_PLUGIN 0x20000
+
+ /* Flags bits to be saved in bfd_preserve_save. */
+ #define BFD_FLAGS_SAVED \
+ (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_PLUGIN)
+
+ /* Flags bits which are for BFD use only. */
+ #define BFD_FLAGS_FOR_BFD_USE_MASK \
+ (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \
+ | BFD_PLUGIN | BFD_TRADITIONAL_FORMAT | BFD_DETERMINISTIC_OUTPUT)
+
+ /* Currently my_archive is tested before adding origin to
+ anything. I believe that this can become always an add of
+ origin, with origin set to 0 for non archive files. */
+ ufile_ptr origin;
+
+ /* The origin in the archive of the proxy entry. This will
+ normally be the same as origin, except for thin archives,
+ when it will contain the current offset of the proxy in the
+ thin archive rather than the offset of the bfd in its actual
+ container. */
+ ufile_ptr proxy_origin;
+
+ /* A hash table for section names. */
+ struct bfd_hash_table section_htab;
+
+ /* Pointer to linked list of sections. */
+ struct bfd_section *sections;
+
+ /* The last section on the section list. */
+ struct bfd_section *section_last;
+
+ /* The number of sections. */
+ unsigned int section_count;
+
+ /* Stuff only useful for object files:
+ The start address. */
+ bfd_vma start_address;
+
+ /* Used for input and output. */
+ unsigned int symcount;
+
+ /* Symbol table for output BFD (with symcount entries).
+ Also used by the linker to cache input BFD symbols. */
+ struct bfd_symbol **outsymbols;
+
+ /* Used for slurped dynamic symbol tables. */
+ unsigned int dynsymcount;
+
+ /* Pointer to structure which contains architecture information. */
+ const struct bfd_arch_info *arch_info;
+
+ /* Stuff only useful for archives. */
+ void *arelt_data;
+ struct bfd *my_archive; /* The containing archive BFD. */
+ struct bfd *archive_next; /* The next BFD in the archive. */
+ struct bfd *archive_head; /* The first BFD in the archive. */
+ struct bfd *nested_archives; /* List of nested archive in a flattened
+ thin archive. */
+
+ /* A chain of BFD structures involved in a link. */
+ struct bfd *link_next;
+
+ /* A field used by _bfd_generic_link_add_archive_symbols. This will
+ be used only for archive elements. */
+ int archive_pass;
+
+ /* Used by the back end to hold private data. */
+ union
+ {
+ struct aout_data_struct *aout_data;
+ struct artdata *aout_ar_data;
+ struct _oasys_data *oasys_obj_data;
+ struct _oasys_ar_data *oasys_ar_data;
+ struct coff_tdata *coff_obj_data;
+ struct pe_tdata *pe_obj_data;
+ struct xcoff_tdata *xcoff_obj_data;
+ struct ecoff_tdata *ecoff_obj_data;
+ struct ieee_data_struct *ieee_data;
+ struct ieee_ar_data_struct *ieee_ar_data;
+ struct srec_data_struct *srec_data;
+ struct verilog_data_struct *verilog_data;
+ struct ihex_data_struct *ihex_data;
+ struct tekhex_data_struct *tekhex_data;
+ struct elf_obj_tdata *elf_obj_data;
+ struct nlm_obj_tdata *nlm_obj_data;
+ struct bout_data_struct *bout_data;
+ struct mmo_data_struct *mmo_data;
+ struct sun_core_struct *sun_core_data;
+ struct sco5_core_struct *sco5_core_data;
+ struct trad_core_struct *trad_core_data;
+ struct som_data_struct *som_data;
+ struct hpux_core_struct *hpux_core_data;
+ struct hppabsd_core_struct *hppabsd_core_data;
+ struct sgi_core_struct *sgi_core_data;
+ struct lynx_core_struct *lynx_core_data;
+ struct osf_core_struct *osf_core_data;
+ struct cisco_core_struct *cisco_core_data;
+ struct versados_data_struct *versados_data;
+ struct netbsd_core_struct *netbsd_core_data;
+ struct mach_o_data_struct *mach_o_data;
+ struct mach_o_fat_data_struct *mach_o_fat_data;
+ struct plugin_data_struct *plugin_data;
+ struct bfd_pef_data_struct *pef_data;
+ struct bfd_pef_xlib_data_struct *pef_xlib_data;
+ struct bfd_sym_data_struct *sym_data;
+ void *any;
+ }
+ tdata;
+
+ /* Used by the application to hold private data. */
+ void *usrdata;
+
+ /* Where all the allocated stuff under this BFD goes. This is a
+ struct objalloc *, but we use void * to avoid requiring the inclusion
+ of objalloc.h. */
+ void *memory;
+
+ /* Is the file descriptor being cached? That is, can it be closed as
+ needed, and re-opened when accessed later? */
+ unsigned int cacheable : 1;
+
+ /* Marks whether there was a default target specified when the
+ BFD was opened. This is used to select which matching algorithm
+ to use to choose the back end. */
+ unsigned int target_defaulted : 1;
+
+ /* ... and here: (``once'' means at least once). */
+ unsigned int opened_once : 1;
+
+ /* Set if we have a locally maintained mtime value, rather than
+ getting it from the file each time. */
+ unsigned int mtime_set : 1;
+
+ /* Flag set if symbols from this BFD should not be exported. */
+ unsigned int no_export : 1;
+
+ /* Remember when output has begun, to stop strange things
+ from happening. */
+ unsigned int output_has_begun : 1;
+
+ /* Have archive map. */
+ unsigned int has_armap : 1;
+
+ /* Set if this is a thin archive. */
+ unsigned int is_thin_archive : 1;
+
+ /* Set if only required symbols should be added in the link hash table for
+ this object. Used by VMS linkers. */
+ unsigned int selective_search : 1;
+ };
+
+2.2 Error reporting
+===================
+
+Most BFD functions return nonzero on success (check their individual
+documentation for precise semantics). On an error, they call
+`bfd_set_error' to set an error condition that callers can check by
+calling `bfd_get_error'. If that returns `bfd_error_system_call', then
+check `errno'.
+
+ The easiest way to report a BFD error to the user is to use
+`bfd_perror'.
+
+2.2.1 Type `bfd_error_type'
+---------------------------
+
+The values returned by `bfd_get_error' are defined by the enumerated
+type `bfd_error_type'.
+
+
+ typedef enum bfd_error
+ {
+ bfd_error_no_error = 0,
+ bfd_error_system_call,
+ bfd_error_invalid_target,
+ bfd_error_wrong_format,
+ bfd_error_wrong_object_format,
+ bfd_error_invalid_operation,
+ bfd_error_no_memory,
+ bfd_error_no_symbols,
+ bfd_error_no_armap,
+ bfd_error_no_more_archived_files,
+ bfd_error_malformed_archive,
+ bfd_error_file_not_recognized,
+ bfd_error_file_ambiguously_recognized,
+ bfd_error_no_contents,
+ bfd_error_nonrepresentable_section,
+ bfd_error_no_debug_section,
+ bfd_error_bad_value,
+ bfd_error_file_truncated,
+ bfd_error_file_too_big,
+ bfd_error_on_input,
+ bfd_error_invalid_error_code
+ }
+ bfd_error_type;
+
+2.2.1.1 `bfd_get_error'
+.......................
+
+*Synopsis*
+ bfd_error_type bfd_get_error (void);
+ *Description*
+Return the current BFD error condition.
+
+2.2.1.2 `bfd_set_error'
+.......................
+
+*Synopsis*
+ void bfd_set_error (bfd_error_type error_tag, ...);
+ *Description*
+Set the BFD error condition to be ERROR_TAG. If ERROR_TAG is
+bfd_error_on_input, then this function takes two more parameters, the
+input bfd where the error occurred, and the bfd_error_type error.
+
+2.2.1.3 `bfd_errmsg'
+....................
+
+*Synopsis*
+ const char *bfd_errmsg (bfd_error_type error_tag);
+ *Description*
+Return a string describing the error ERROR_TAG, or the system error if
+ERROR_TAG is `bfd_error_system_call'.
+
+2.2.1.4 `bfd_perror'
+....................
+
+*Synopsis*
+ void bfd_perror (const char *message);
+ *Description*
+Print to the standard error stream a string describing the last BFD
+error that occurred, or the last system error if the last BFD error was
+a system call failure. If MESSAGE is non-NULL and non-empty, the error
+string printed is preceded by MESSAGE, a colon, and a space. It is
+followed by a newline.
+
+2.2.2 BFD error handler
+-----------------------
+
+Some BFD functions want to print messages describing the problem. They
+call a BFD error handler function. This function may be overridden by
+the program.
+
+ The BFD error handler acts like printf.
+
+
+ typedef void (*bfd_error_handler_type) (const char *, ...);
+
+2.2.2.1 `bfd_set_error_handler'
+...............................
+
+*Synopsis*
+ bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
+ *Description*
+Set the BFD error handler function. Returns the previous function.
+
+2.2.2.2 `bfd_set_error_program_name'
+....................................
+
+*Synopsis*
+ void bfd_set_error_program_name (const char *);
+ *Description*
+Set the program name to use when printing a BFD error. This is printed
+before the error message followed by a colon and space. The string
+must not be changed after it is passed to this function.
+
+2.2.2.3 `bfd_get_error_handler'
+...............................
+
+*Synopsis*
+ bfd_error_handler_type bfd_get_error_handler (void);
+ *Description*
+Return the BFD error handler function.
+
+2.3 Miscellaneous
+=================
+
+2.3.1 Miscellaneous functions
+-----------------------------
+
+2.3.1.1 `bfd_get_reloc_upper_bound'
+...................................
+
+*Synopsis*
+ long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
+ *Description*
+Return the number of bytes required to store the relocation information
+associated with section SECT attached to bfd ABFD. If an error occurs,
+return -1.
+
+2.3.1.2 `bfd_canonicalize_reloc'
+................................
+
+*Synopsis*
+ long bfd_canonicalize_reloc
+ (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
+ *Description*
+Call the back end associated with the open BFD ABFD and translate the
+external form of the relocation information attached to SEC into the
+internal canonical form. Place the table into memory at LOC, which has
+been preallocated, usually by a call to `bfd_get_reloc_upper_bound'.
+Returns the number of relocs, or -1 on error.
+
+ The SYMS table is also needed for horrible internal magic reasons.
+
+2.3.1.3 `bfd_set_reloc'
+.......................
+
+*Synopsis*
+ void bfd_set_reloc
+ (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
+ *Description*
+Set the relocation pointer and count within section SEC to the values
+REL and COUNT. The argument ABFD is ignored.
+
+2.3.1.4 `bfd_set_file_flags'
+............................
+
+*Synopsis*
+ bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
+ *Description*
+Set the flag word in the BFD ABFD to the value FLAGS.
+
+ Possible errors are:
+ * `bfd_error_wrong_format' - The target bfd was not of object format.
+
+ * `bfd_error_invalid_operation' - The target bfd was open for
+ reading.
+
+ * `bfd_error_invalid_operation' - The flag word contained a bit
+ which was not applicable to the type of file. E.g., an attempt
+ was made to set the `D_PAGED' bit on a BFD format which does not
+ support demand paging.
+
+2.3.1.5 `bfd_get_arch_size'
+...........................
+
+*Synopsis*
+ int bfd_get_arch_size (bfd *abfd);
+ *Description*
+Returns the architecture address size, in bits, as determined by the
+object file's format. For ELF, this information is included in the
+header.
+
+ *Returns*
+Returns the arch size in bits if known, `-1' otherwise.
+
+2.3.1.6 `bfd_get_sign_extend_vma'
+.................................
+
+*Synopsis*
+ int bfd_get_sign_extend_vma (bfd *abfd);
+ *Description*
+Indicates if the target architecture "naturally" sign extends an
+address. Some architectures implicitly sign extend address values when
+they are converted to types larger than the size of an address. For
+instance, bfd_get_start_address() will return an address sign extended
+to fill a bfd_vma when this is the case.
+
+ *Returns*
+Returns `1' if the target architecture is known to sign extend
+addresses, `0' if the target architecture is known to not sign extend
+addresses, and `-1' otherwise.
+
+2.3.1.7 `bfd_set_start_address'
+...............................
+
+*Synopsis*
+ bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
+ *Description*
+Make VMA the entry point of output BFD ABFD.
+
+ *Returns*
+Returns `TRUE' on success, `FALSE' otherwise.
+
+2.3.1.8 `bfd_get_gp_size'
+.........................
+
+*Synopsis*
+ unsigned int bfd_get_gp_size (bfd *abfd);
+ *Description*
+Return the maximum size of objects to be optimized using the GP
+register under MIPS ECOFF. This is typically set by the `-G' argument
+to the compiler, assembler or linker.
+
+2.3.1.9 `bfd_set_gp_size'
+.........................
+
+*Synopsis*
+ void bfd_set_gp_size (bfd *abfd, unsigned int i);
+ *Description*
+Set the maximum size of objects to be optimized using the GP register
+under ECOFF or MIPS ELF. This is typically set by the `-G' argument to
+the compiler, assembler or linker.
+
+2.3.1.10 `bfd_scan_vma'
+.......................
+
+*Synopsis*
+ bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
+ *Description*
+Convert, like `strtoul', a numerical expression STRING into a `bfd_vma'
+integer, and return that integer. (Though without as many bells and
+whistles as `strtoul'.) The expression is assumed to be unsigned
+(i.e., positive). If given a BASE, it is used as the base for
+conversion. A base of 0 causes the function to interpret the string in
+hex if a leading "0x" or "0X" is found, otherwise in octal if a leading
+zero is found, otherwise in decimal.
+
+ If the value would overflow, the maximum `bfd_vma' value is returned.
+
+2.3.1.11 `bfd_copy_private_header_data'
+.......................................
+
+*Synopsis*
+ bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
+ *Description*
+Copy private BFD header information from the BFD IBFD to the the BFD
+OBFD. This copies information that may require sections to exist, but
+does not require symbol tables. Return `true' on success, `false' on
+error. Possible error returns are:
+
+ * `bfd_error_no_memory' - Not enough memory exists to create private
+ data for OBFD.
+
+ #define bfd_copy_private_header_data(ibfd, obfd) \
+ BFD_SEND (obfd, _bfd_copy_private_header_data, \
+ (ibfd, obfd))
+
+2.3.1.12 `bfd_copy_private_bfd_data'
+....................................
+
+*Synopsis*
+ bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
+ *Description*
+Copy private BFD information from the BFD IBFD to the the BFD OBFD.
+Return `TRUE' on success, `FALSE' on error. Possible error returns are:
+
+ * `bfd_error_no_memory' - Not enough memory exists to create private
+ data for OBFD.
+
+ #define bfd_copy_private_bfd_data(ibfd, obfd) \
+ BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
+ (ibfd, obfd))
+
+2.3.1.13 `bfd_merge_private_bfd_data'
+.....................................
+
+*Synopsis*
+ bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);
+ *Description*
+Merge private BFD information from the BFD IBFD to the the output file
+BFD OBFD when linking. Return `TRUE' on success, `FALSE' on error.
+Possible error returns are:
+
+ * `bfd_error_no_memory' - Not enough memory exists to create private
+ data for OBFD.
+
+ #define bfd_merge_private_bfd_data(ibfd, obfd) \
+ BFD_SEND (obfd, _bfd_merge_private_bfd_data, \
+ (ibfd, obfd))
+
+2.3.1.14 `bfd_set_private_flags'
+................................
+
+*Synopsis*
+ bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
+ *Description*
+Set private BFD flag information in the BFD ABFD. Return `TRUE' on
+success, `FALSE' on error. Possible error returns are:
+
+ * `bfd_error_no_memory' - Not enough memory exists to create private
+ data for OBFD.
+
+ #define bfd_set_private_flags(abfd, flags) \
+ BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
+
+2.3.1.15 `Other functions'
+..........................
+
+*Description*
+The following functions exist but have not yet been documented.
+ #define bfd_sizeof_headers(abfd, info) \
+ BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info))
+
+ #define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
+ BFD_SEND (abfd, _bfd_find_nearest_line, \
+ (abfd, sec, syms, off, file, func, line))
+
+ #define bfd_find_line(abfd, syms, sym, file, line) \
+ BFD_SEND (abfd, _bfd_find_line, \
+ (abfd, syms, sym, file, line))
+
+ #define bfd_find_inliner_info(abfd, file, func, line) \
+ BFD_SEND (abfd, _bfd_find_inliner_info, \
+ (abfd, file, func, line))
+
+ #define bfd_debug_info_start(abfd) \
+ BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
+
+ #define bfd_debug_info_end(abfd) \
+ BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
+
+ #define bfd_debug_info_accumulate(abfd, section) \
+ BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
+
+ #define bfd_stat_arch_elt(abfd, stat) \
+ BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
+
+ #define bfd_update_armap_timestamp(abfd) \
+ BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
+
+ #define bfd_set_arch_mach(abfd, arch, mach)\
+ BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
+
+ #define bfd_relax_section(abfd, section, link_info, again) \
+ BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
+
+ #define bfd_gc_sections(abfd, link_info) \
+ BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
+
+ #define bfd_lookup_section_flags(link_info, flag_info) \
+ BFD_SEND (abfd, _bfd_lookup_section_flags, (link_info, flag_info))
+
+ #define bfd_merge_sections(abfd, link_info) \
+ BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
+
+ #define bfd_is_group_section(abfd, sec) \
+ BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
+
+ #define bfd_discard_group(abfd, sec) \
+ BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
+
+ #define bfd_link_hash_table_create(abfd) \
+ BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
+
+ #define bfd_link_hash_table_free(abfd, hash) \
+ BFD_SEND (abfd, _bfd_link_hash_table_free, (hash))
+
+ #define bfd_link_add_symbols(abfd, info) \
+ BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
+
+ #define bfd_link_just_syms(abfd, sec, info) \
+ BFD_SEND (abfd, _bfd_link_just_syms, (sec, info))
+
+ #define bfd_final_link(abfd, info) \
+ BFD_SEND (abfd, _bfd_final_link, (abfd, info))
+
+ #define bfd_free_cached_info(abfd) \
+ BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
+
+ #define bfd_get_dynamic_symtab_upper_bound(abfd) \
+ BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))
+
+ #define bfd_print_private_bfd_data(abfd, file)\
+ BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file))
+
+ #define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \
+ BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols))
+
+ #define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \
+ BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \
+ dyncount, dynsyms, ret))
+
+ #define bfd_get_dynamic_reloc_upper_bound(abfd) \
+ BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd))
+
+ #define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \
+ BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
+
+ extern bfd_byte *bfd_get_relocated_section_contents
+ (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
+ bfd_boolean, asymbol **);
+
+2.3.1.16 `bfd_alt_mach_code'
+............................
+
+*Synopsis*
+ bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
+ *Description*
+When more than one machine code number is available for the same
+machine type, this function can be used to switch between the preferred
+one (alternative == 0) and any others. Currently, only ELF supports
+this feature, with up to two alternate machine codes.
+
+ struct bfd_preserve
+ {
+ void *marker;
+ void *tdata;
+ flagword flags;
+ const struct bfd_arch_info *arch_info;
+ struct bfd_section *sections;
+ struct bfd_section *section_last;
+ unsigned int section_count;
+ struct bfd_hash_table section_htab;
+ };
+
+2.3.1.17 `bfd_preserve_save'
+............................
+
+*Synopsis*
+ bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *);
+ *Description*
+When testing an object for compatibility with a particular target
+back-end, the back-end object_p function needs to set up certain fields
+in the bfd on successfully recognizing the object. This typically
+happens in a piecemeal fashion, with failures possible at many points.
+On failure, the bfd is supposed to be restored to its initial state,
+which is virtually impossible. However, restoring a subset of the bfd
+state works in practice. This function stores the subset and
+reinitializes the bfd.
+
+2.3.1.18 `bfd_preserve_restore'
+...............................
+
+*Synopsis*
+ void bfd_preserve_restore (bfd *, struct bfd_preserve *);
+ *Description*
+This function restores bfd state saved by bfd_preserve_save. If MARKER
+is non-NULL in struct bfd_preserve then that block and all subsequently
+bfd_alloc'd memory is freed.
+
+2.3.1.19 `bfd_preserve_finish'
+..............................
+
+*Synopsis*
+ void bfd_preserve_finish (bfd *, struct bfd_preserve *);
+ *Description*
+This function should be called when the bfd state saved by
+bfd_preserve_save is no longer needed. ie. when the back-end object_p
+function returns with success.
+
+2.3.1.20 `bfd_emul_get_maxpagesize'
+...................................
+
+*Synopsis*
+ bfd_vma bfd_emul_get_maxpagesize (const char *);
+ *Description*
+Returns the maximum page size, in bytes, as determined by emulation.
+
+ *Returns*
+Returns the maximum page size in bytes for ELF, 0 otherwise.
+
+2.3.1.21 `bfd_emul_set_maxpagesize'
+...................................
+
+*Synopsis*
+ void bfd_emul_set_maxpagesize (const char *, bfd_vma);
+ *Description*
+For ELF, set the maximum page size for the emulation. It is a no-op
+for other formats.
+
+2.3.1.22 `bfd_emul_get_commonpagesize'
+......................................
+
+*Synopsis*
+ bfd_vma bfd_emul_get_commonpagesize (const char *);
+ *Description*
+Returns the common page size, in bytes, as determined by emulation.
+
+ *Returns*
+Returns the common page size in bytes for ELF, 0 otherwise.
+
+2.3.1.23 `bfd_emul_set_commonpagesize'
+......................................
+
+*Synopsis*
+ void bfd_emul_set_commonpagesize (const char *, bfd_vma);
+ *Description*
+For ELF, set the common page size for the emulation. It is a no-op for
+other formats.
+
+2.3.1.24 `bfd_demangle'
+.......................
+
+*Synopsis*
+ char *bfd_demangle (bfd *, const char *, int);
+ *Description*
+Wrapper around cplus_demangle. Strips leading underscores and other
+such chars that would otherwise confuse the demangler. If passed a g++
+v3 ABI mangled name, returns a buffer allocated with malloc holding the
+demangled name. Returns NULL otherwise and on memory alloc failure.
+
+2.3.1.25 `struct bfd_iovec'
+...........................
+
+*Description*
+The `struct bfd_iovec' contains the internal file I/O class. Each
+`BFD' has an instance of this class and all file I/O is routed through
+it (it is assumed that the instance implements all methods listed
+below).
+ struct bfd_iovec
+ {
+ /* To avoid problems with macros, a "b" rather than "f"
+ prefix is prepended to each method name. */
+ /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching
+ bytes starting at PTR. Return the number of bytes actually
+ transfered (a read past end-of-file returns less than NBYTES),
+ or -1 (setting `bfd_error') if an error occurs. */
+ file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes);
+ file_ptr (*bwrite) (struct bfd *abfd, const void *ptr,
+ file_ptr nbytes);
+ /* Return the current IOSTREAM file offset, or -1 (setting `bfd_error'
+ if an error occurs. */
+ file_ptr (*btell) (struct bfd *abfd);
+ /* For the following, on successful completion a value of 0 is returned.
+ Otherwise, a value of -1 is returned (and `bfd_error' is set). */
+ int (*bseek) (struct bfd *abfd, file_ptr offset, int whence);
+ int (*bclose) (struct bfd *abfd);
+ int (*bflush) (struct bfd *abfd);
+ int (*bstat) (struct bfd *abfd, struct stat *sb);
+ /* Mmap a part of the files. ADDR, LEN, PROT, FLAGS and OFFSET are the usual
+ mmap parameter, except that LEN and OFFSET do not need to be page
+ aligned. Returns (void *)-1 on failure, mmapped address on success.
+ Also write in MAP_ADDR the address of the page aligned buffer and in
+ MAP_LEN the size mapped (a page multiple). Use unmap with MAP_ADDR and
+ MAP_LEN to unmap. */
+ void *(*bmmap) (struct bfd *abfd, void *addr, bfd_size_type len,
+ int prot, int flags, file_ptr offset,
+ void **map_addr, bfd_size_type *map_len);
+ };
+ extern const struct bfd_iovec _bfd_memory_iovec;
+
+2.3.1.26 `bfd_get_mtime'
+........................
+
+*Synopsis*
+ long bfd_get_mtime (bfd *abfd);
+ *Description*
+Return the file modification time (as read from the file system, or
+from the archive header for archive members).
+
+2.3.1.27 `bfd_get_size'
+.......................
+
+*Synopsis*
+ file_ptr bfd_get_size (bfd *abfd);
+ *Description*
+Return the file size (as read from file system) for the file associated
+with BFD ABFD.
+
+ The initial motivation for, and use of, this routine is not so we
+can get the exact size of the object the BFD applies to, since that
+might not be generally possible (archive members for example). It
+would be ideal if someone could eventually modify it so that such
+results were guaranteed.
+
+ Instead, we want to ask questions like "is this NNN byte sized
+object I'm about to try read from file offset YYY reasonable?" As as
+example of where we might do this, some object formats use string
+tables for which the first `sizeof (long)' bytes of the table contain
+the size of the table itself, including the size bytes. If an
+application tries to read what it thinks is one of these string tables,
+without some way to validate the size, and for some reason the size is
+wrong (byte swapping error, wrong location for the string table, etc.),
+the only clue is likely to be a read error when it tries to read the
+table, or a "virtual memory exhausted" error when it tries to allocate
+15 bazillon bytes of space for the 15 bazillon byte table it is about
+to read. This function at least allows us to answer the question, "is
+the size reasonable?".
+
+2.3.1.28 `bfd_mmap'
+...................
+
+*Synopsis*
+ void *bfd_mmap (bfd *abfd, void *addr, bfd_size_type len,
+ int prot, int flags, file_ptr offset,
+ void **map_addr, bfd_size_type *map_len);
+ *Description*
+Return mmap()ed region of the file, if possible and implemented. LEN
+and OFFSET do not need to be page aligned. The page aligned address
+and length are written to MAP_ADDR and MAP_LEN.
+
+* Menu:
+
+* Memory Usage::
+* Initialization::
+* Sections::
+* Symbols::
+* Archives::
+* Formats::
+* Relocations::
+* Core Files::
+* Targets::
+* Architectures::
+* Opening and Closing::
+* Internal::
+* File Caching::
+* Linker Functions::
+* Hash Tables::
+
+
+File: bfd.info, Node: Memory Usage, Next: Initialization, Prev: BFD front end, Up: BFD front end
+
+2.4 Memory Usage
+================
+
+BFD keeps all of its internal structures in obstacks. There is one
+obstack per open BFD file, into which the current state is stored. When
+a BFD is closed, the obstack is deleted, and so everything which has
+been allocated by BFD for the closing file is thrown away.
+
+ BFD does not free anything created by an application, but pointers
+into `bfd' structures become invalid on a `bfd_close'; for example,
+after a `bfd_close' the vector passed to `bfd_canonicalize_symtab' is
+still around, since it has been allocated by the application, but the
+data that it pointed to are lost.
+
+ The general rule is to not close a BFD until all operations dependent
+upon data from the BFD have been completed, or all the data from within
+the file has been copied. To help with the management of memory, there
+is a function (`bfd_alloc_size') which returns the number of bytes in
+obstacks associated with the supplied BFD. This could be used to select
+the greediest open BFD, close it to reclaim the memory, perform some
+operation and reopen the BFD again, to get a fresh copy of the data
+structures.
+
+
+File: bfd.info, Node: Initialization, Next: Sections, Prev: Memory Usage, Up: BFD front end
+
+2.5 Initialization
+==================
+
+2.5.1 Initialization functions
+------------------------------
+
+These are the functions that handle initializing a BFD.
+
+2.5.1.1 `bfd_init'
+..................
+
+*Synopsis*
+ void bfd_init (void);
+ *Description*
+This routine must be called before any other BFD function to initialize
+magical internal data structures.
+
+
+File: bfd.info, Node: Sections, Next: Symbols, Prev: Initialization, Up: BFD front end
+
+2.6 Sections
+============
+
+The raw data contained within a BFD is maintained through the section
+abstraction. A single BFD may have any number of sections. It keeps
+hold of them by pointing to the first; each one points to the next in
+the list.
+
+ Sections are supported in BFD in `section.c'.
+
+* Menu:
+
+* Section Input::
+* Section Output::
+* typedef asection::
+* section prototypes::
+
+
+File: bfd.info, Node: Section Input, Next: Section Output, Prev: Sections, Up: Sections
+
+2.6.1 Section input
+-------------------
+
+When a BFD is opened for reading, the section structures are created
+and attached to the BFD.
+
+ Each section has a name which describes the section in the outside
+world--for example, `a.out' would contain at least three sections,
+called `.text', `.data' and `.bss'.
+
+ Names need not be unique; for example a COFF file may have several
+sections named `.data'.
+
+ Sometimes a BFD will contain more than the "natural" number of
+sections. A back end may attach other sections containing constructor
+data, or an application may add a section (using `bfd_make_section') to
+the sections attached to an already open BFD. For example, the linker
+creates an extra section `COMMON' for each input file's BFD to hold
+information about common storage.
+
+ The raw data is not necessarily read in when the section descriptor
+is created. Some targets may leave the data in place until a
+`bfd_get_section_contents' call is made. Other back ends may read in
+all the data at once. For example, an S-record file has to be read
+once to determine the size of the data. An IEEE-695 file doesn't
+contain raw data in sections, but data and relocation expressions
+intermixed, so the data area has to be parsed to get out the data and
+relocations.
+
+
+File: bfd.info, Node: Section Output, Next: typedef asection, Prev: Section Input, Up: Sections
+
+2.6.2 Section output
+--------------------
+
+To write a new object style BFD, the various sections to be written
+have to be created. They are attached to the BFD in the same way as
+input sections; data is written to the sections using
+`bfd_set_section_contents'.
+
+ Any program that creates or combines sections (e.g., the assembler
+and linker) must use the `asection' fields `output_section' and
+`output_offset' to indicate the file sections to which each section
+must be written. (If the section is being created from scratch,
+`output_section' should probably point to the section itself and
+`output_offset' should probably be zero.)
+
+ The data to be written comes from input sections attached (via
+`output_section' pointers) to the output sections. The output section
+structure can be considered a filter for the input section: the output
+section determines the vma of the output data and the name, but the
+input section determines the offset into the output section of the data
+to be written.
+
+ E.g., to create a section "O", starting at 0x100, 0x123 long,
+containing two subsections, "A" at offset 0x0 (i.e., at vma 0x100) and
+"B" at offset 0x20 (i.e., at vma 0x120) the `asection' structures would
+look like:
+
+ section name "A"
+ output_offset 0x00
+ size 0x20
+ output_section -----------> section name "O"
+ | vma 0x100
+ section name "B" | size 0x123
+ output_offset 0x20 |
+ size 0x103 |
+ output_section --------|
+
+2.6.3 Link orders
+-----------------
+
+The data within a section is stored in a "link_order". These are much
+like the fixups in `gas'. The link_order abstraction allows a section
+to grow and shrink within itself.
+
+ A link_order knows how big it is, and which is the next link_order
+and where the raw data for it is; it also points to a list of
+relocations which apply to it.
+
+ The link_order is used by the linker to perform relaxing on final
+code. The compiler creates code which is as big as necessary to make
+it work without relaxing, and the user can select whether to relax.
+Sometimes relaxing takes a lot of time. The linker runs around the
+relocations to see if any are attached to data which can be shrunk, if
+so it does it on a link_order by link_order basis.
+
+
+File: bfd.info, Node: typedef asection, Next: section prototypes, Prev: Section Output, Up: Sections
+
+2.6.4 typedef asection
+----------------------
+
+Here is the section structure:
+
+
+ typedef struct bfd_section
+ {
+ /* The name of the section; the name isn't a copy, the pointer is
+ the same as that passed to bfd_make_section. */
+ const char *name;
+
+ /* A unique sequence number. */
+ int id;
+
+ /* Which section in the bfd; 0..n-1 as sections are created in a bfd. */
+ int index;
+
+ /* The next section in the list belonging to the BFD, or NULL. */
+ struct bfd_section *next;
+
+ /* The previous section in the list belonging to the BFD, or NULL. */
+ struct bfd_section *prev;
+
+ /* The field flags contains attributes of the section. Some
+ flags are read in from the object file, and some are
+ synthesized from other information. */
+ flagword flags;
+
+ #define SEC_NO_FLAGS 0x000
+
+ /* Tells the OS to allocate space for this section when loading.
+ This is clear for a section containing debug information only. */
+ #define SEC_ALLOC 0x001
+
+ /* Tells the OS to load the section from the file when loading.
+ This is clear for a .bss section. */
+ #define SEC_LOAD 0x002
+
+ /* The section contains data still to be relocated, so there is
+ some relocation information too. */
+ #define SEC_RELOC 0x004
+
+ /* A signal to the OS that the section contains read only data. */
+ #define SEC_READONLY 0x008
+
+ /* The section contains code only. */
+ #define SEC_CODE 0x010
+
+ /* The section contains data only. */
+ #define SEC_DATA 0x020
+
+ /* The section will reside in ROM. */
+ #define SEC_ROM 0x040
+
+ /* The section contains constructor information. This section
+ type is used by the linker to create lists of constructors and
+ destructors used by `g++'. When a back end sees a symbol
+ which should be used in a constructor list, it creates a new
+ section for the type of name (e.g., `__CTOR_LIST__'), attaches
+ the symbol to it, and builds a relocation. To build the lists
+ of constructors, all the linker has to do is catenate all the
+ sections called `__CTOR_LIST__' and relocate the data
+ contained within - exactly the operations it would peform on
+ standard data. */
+ #define SEC_CONSTRUCTOR 0x080
+
+ /* The section has contents - a data section could be
+ `SEC_ALLOC' | `SEC_HAS_CONTENTS'; a debug section could be
+ `SEC_HAS_CONTENTS' */
+ #define SEC_HAS_CONTENTS 0x100
+
+ /* An instruction to the linker to not output the section
+ even if it has information which would normally be written. */
+ #define SEC_NEVER_LOAD 0x200
+
+ /* The section contains thread local data. */
+ #define SEC_THREAD_LOCAL 0x400
+
+ /* The section has GOT references. This flag is only for the
+ linker, and is currently only used by the elf32-hppa back end.
+ It will be set if global offset table references were detected
+ in this section, which indicate to the linker that the section
+ contains PIC code, and must be handled specially when doing a
+ static link. */
+ #define SEC_HAS_GOT_REF 0x800
+
+ /* The section contains common symbols (symbols may be defined
+ multiple times, the value of a symbol is the amount of
+ space it requires, and the largest symbol value is the one
+ used). Most targets have exactly one of these (which we
+ translate to bfd_com_section_ptr), but ECOFF has two. */
+ #define SEC_IS_COMMON 0x1000
+
+ /* The section contains only debugging information. For
+ example, this is set for ELF .debug and .stab sections.
+ strip tests this flag to see if a section can be
+ discarded. */
+ #define SEC_DEBUGGING 0x2000
+
+ /* The contents of this section are held in memory pointed to
+ by the contents field. This is checked by bfd_get_section_contents,
+ and the data is retrieved from memory if appropriate. */
+ #define SEC_IN_MEMORY 0x4000
+
+ /* The contents of this section are to be excluded by the
+ linker for executable and shared objects unless those
+ objects are to be further relocated. */
+ #define SEC_EXCLUDE 0x8000
+
+ /* The contents of this section are to be sorted based on the sum of
+ the symbol and addend values specified by the associated relocation
+ entries. Entries without associated relocation entries will be
+ appended to the end of the section in an unspecified order. */
+ #define SEC_SORT_ENTRIES 0x10000
+
+ /* When linking, duplicate sections of the same name should be
+ discarded, rather than being combined into a single section as
+ is usually done. This is similar to how common symbols are
+ handled. See SEC_LINK_DUPLICATES below. */
+ #define SEC_LINK_ONCE 0x20000
+
+ /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
+ should handle duplicate sections. */
+ #define SEC_LINK_DUPLICATES 0xc0000
+
+ /* This value for SEC_LINK_DUPLICATES means that duplicate
+ sections with the same name should simply be discarded. */
+ #define SEC_LINK_DUPLICATES_DISCARD 0x0
+
+ /* This value for SEC_LINK_DUPLICATES means that the linker
+ should warn if there are any duplicate sections, although
+ it should still only link one copy. */
+ #define SEC_LINK_DUPLICATES_ONE_ONLY 0x40000
+
+ /* This value for SEC_LINK_DUPLICATES means that the linker
+ should warn if any duplicate sections are a different size. */
+ #define SEC_LINK_DUPLICATES_SAME_SIZE 0x80000
+
+ /* This value for SEC_LINK_DUPLICATES means that the linker
+ should warn if any duplicate sections contain different
+ contents. */
+ #define SEC_LINK_DUPLICATES_SAME_CONTENTS \
+ (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE)
+
+ /* This section was created by the linker as part of dynamic
+ relocation or other arcane processing. It is skipped when
+ going through the first-pass output, trusting that someone
+ else up the line will take care of it later. */
+ #define SEC_LINKER_CREATED 0x100000
+
+ /* This section should not be subject to garbage collection.
+ Also set to inform the linker that this section should not be
+ listed in the link map as discarded. */
+ #define SEC_KEEP 0x200000
+
+ /* This section contains "short" data, and should be placed
+ "near" the GP. */
+ #define SEC_SMALL_DATA 0x400000
+
+ /* Attempt to merge identical entities in the section.
+ Entity size is given in the entsize field. */
+ #define SEC_MERGE 0x800000
+
+ /* If given with SEC_MERGE, entities to merge are zero terminated
+ strings where entsize specifies character size instead of fixed
+ size entries. */
+ #define SEC_STRINGS 0x1000000
+
+ /* This section contains data about section groups. */
+ #define SEC_GROUP 0x2000000
+
+ /* The section is a COFF shared library section. This flag is
+ only for the linker. If this type of section appears in
+ the input file, the linker must copy it to the output file
+ without changing the vma or size. FIXME: Although this
+ was originally intended to be general, it really is COFF
+ specific (and the flag was renamed to indicate this). It
+ might be cleaner to have some more general mechanism to
+ allow the back end to control what the linker does with
+ sections. */
+ #define SEC_COFF_SHARED_LIBRARY 0x4000000
+
+ /* This input section should be copied to output in reverse order
+ as an array of pointers. This is for ELF linker internal use
+ only. */
+ #define SEC_ELF_REVERSE_COPY 0x4000000
+
+ /* This section contains data which may be shared with other
+ executables or shared objects. This is for COFF only. */
+ #define SEC_COFF_SHARED 0x8000000
+
+ /* When a section with this flag is being linked, then if the size of
+ the input section is less than a page, it should not cross a page
+ boundary. If the size of the input section is one page or more,
+ it should be aligned on a page boundary. This is for TI
+ TMS320C54X only. */
+ #define SEC_TIC54X_BLOCK 0x10000000
+
+ /* Conditionally link this section; do not link if there are no
+ references found to any symbol in the section. This is for TI
+ TMS320C54X only. */
+ #define SEC_TIC54X_CLINK 0x20000000
+
+ /* Indicate that section has the no read flag set. This happens
+ when memory read flag isn't set. */
+ #define SEC_COFF_NOREAD 0x40000000
+
+ /* End of section flags. */
+
+ /* Some internal packed boolean fields. */
+
+ /* See the vma field. */
+ unsigned int user_set_vma : 1;
+
+ /* A mark flag used by some of the linker backends. */
+ unsigned int linker_mark : 1;
+
+ /* Another mark flag used by some of the linker backends. Set for
+ output sections that have an input section. */
+ unsigned int linker_has_input : 1;
+
+ /* Mark flag used by some linker backends for garbage collection. */
+ unsigned int gc_mark : 1;
+
+ /* Section compression status. */
+ unsigned int compress_status : 2;
+ #define COMPRESS_SECTION_NONE 0
+ #define COMPRESS_SECTION_DONE 1
+ #define DECOMPRESS_SECTION_SIZED 2
+
+ /* The following flags are used by the ELF linker. */
+
+ /* Mark sections which have been allocated to segments. */
+ unsigned int segment_mark : 1;
+
+ /* Type of sec_info information. */
+ unsigned int sec_info_type:3;
+ #define ELF_INFO_TYPE_NONE 0
+ #define ELF_INFO_TYPE_STABS 1
+ #define ELF_INFO_TYPE_MERGE 2
+ #define ELF_INFO_TYPE_EH_FRAME 3
+ #define ELF_INFO_TYPE_JUST_SYMS 4
+
+ /* Nonzero if this section uses RELA relocations, rather than REL. */
+ unsigned int use_rela_p:1;
+
+ /* Bits used by various backends. The generic code doesn't touch
+ these fields. */
+
+ unsigned int sec_flg0:1;
+ unsigned int sec_flg1:1;
+ unsigned int sec_flg2:1;
+ unsigned int sec_flg3:1;
+ unsigned int sec_flg4:1;
+ unsigned int sec_flg5:1;
+
+ /* End of internal packed boolean fields. */
+
+ /* The virtual memory address of the section - where it will be
+ at run time. The symbols are relocated against this. The
+ user_set_vma flag is maintained by bfd; if it's not set, the
+ backend can assign addresses (for example, in `a.out', where
+ the default address for `.data' is dependent on the specific
+ target and various flags). */
+ bfd_vma vma;
+
+ /* The load address of the section - where it would be in a
+ rom image; really only used for writing section header
+ information. */
+ bfd_vma lma;
+
+ /* The size of the section in octets, as it will be output.
+ Contains a value even if the section has no contents (e.g., the
+ size of `.bss'). */
+ bfd_size_type size;
+
+ /* For input sections, the original size on disk of the section, in
+ octets. This field should be set for any section whose size is
+ changed by linker relaxation. It is required for sections where
+ the linker relaxation scheme doesn't cache altered section and
+ reloc contents (stabs, eh_frame, SEC_MERGE, some coff relaxing
+ targets), and thus the original size needs to be kept to read the
+ section multiple times. For output sections, rawsize holds the
+ section size calculated on a previous linker relaxation pass. */
+ bfd_size_type rawsize;
+
+ /* The compressed size of the section in octets. */
+ bfd_size_type compressed_size;
+
+ /* Relaxation table. */
+ struct relax_table *relax;
+
+ /* Count of used relaxation table entries. */
+ int relax_count;
+
+
+ /* If this section is going to be output, then this value is the
+ offset in *bytes* into the output section of the first byte in the
+ input section (byte ==> smallest addressable unit on the
+ target). In most cases, if this was going to start at the
+ 100th octet (8-bit quantity) in the output section, this value
+ would be 100. However, if the target byte size is 16 bits
+ (bfd_octets_per_byte is "2"), this value would be 50. */
+ bfd_vma output_offset;
+
+ /* The output section through which to map on output. */
+ struct bfd_section *output_section;
+
+ /* The alignment requirement of the section, as an exponent of 2 -
+ e.g., 3 aligns to 2^3 (or 8). */
+ unsigned int alignment_power;
+
+ /* If an input section, a pointer to a vector of relocation
+ records for the data in this section. */
+ struct reloc_cache_entry *relocation;
+
+ /* If an output section, a pointer to a vector of pointers to
+ relocation records for the data in this section. */
+ struct reloc_cache_entry **orelocation;
+
+ /* The number of relocation records in one of the above. */
+ unsigned reloc_count;
+
+ /* Information below is back end specific - and not always used
+ or updated. */
+
+ /* File position of section data. */
+ file_ptr filepos;
+
+ /* File position of relocation info. */
+ file_ptr rel_filepos;
+
+ /* File position of line data. */
+ file_ptr line_filepos;
+
+ /* Pointer to data for applications. */
+ void *userdata;
+
+ /* If the SEC_IN_MEMORY flag is set, this points to the actual
+ contents. */
+ unsigned char *contents;
+
+ /* Attached line number information. */
+ alent *lineno;
+
+ /* Number of line number records. */
+ unsigned int lineno_count;
+
+ /* Entity size for merging purposes. */
+ unsigned int entsize;
+
+ /* Points to the kept section if this section is a link-once section,
+ and is discarded. */
+ struct bfd_section *kept_section;
+
+ /* When a section is being output, this value changes as more
+ linenumbers are written out. */
+ file_ptr moving_line_filepos;
+
+ /* What the section number is in the target world. */
+ int target_index;
+
+ void *used_by_bfd;
+
+ /* If this is a constructor section then here is a list of the
+ relocations created to relocate items within it. */
+ struct relent_chain *constructor_chain;
+
+ /* The BFD which owns the section. */
+ bfd *owner;
+
+ /* INPUT_SECTION_FLAGS if specified in the linker script. */
+ struct flag_info *section_flag_info;
+
+ /* A symbol which points at this section only. */
+ struct bfd_symbol *symbol;
+ struct bfd_symbol **symbol_ptr_ptr;
+
+ /* Early in the link process, map_head and map_tail are used to build
+ a list of input sections attached to an output section. Later,
+ output sections use these fields for a list of bfd_link_order
+ structs. */
+ union {
+ struct bfd_link_order *link_order;
+ struct bfd_section *s;
+ } map_head, map_tail;
+ } asection;
+
+ /* Relax table contains information about instructions which can
+ be removed by relaxation -- replacing a long address with a
+ short address. */
+ struct relax_table {
+ /* Address where bytes may be deleted. */
+ bfd_vma addr;
+
+ /* Number of bytes to be deleted. */
+ int size;
+ };
+
+ /* These sections are global, and are managed by BFD. The application
+ and target back end are not permitted to change the values in
+ these sections. New code should use the section_ptr macros rather
+ than referring directly to the const sections. The const sections
+ may eventually vanish. */
+ #define BFD_ABS_SECTION_NAME "*ABS*"
+ #define BFD_UND_SECTION_NAME "*UND*"
+ #define BFD_COM_SECTION_NAME "*COM*"
+ #define BFD_IND_SECTION_NAME "*IND*"
+
+ /* The absolute section. */
+ extern asection bfd_abs_section;
+ #define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
+ #define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
+ /* Pointer to the undefined section. */
+ extern asection bfd_und_section;
+ #define bfd_und_section_ptr ((asection *) &bfd_und_section)
+ #define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
+ /* Pointer to the common section. */
+ extern asection bfd_com_section;
+ #define bfd_com_section_ptr ((asection *) &bfd_com_section)
+ /* Pointer to the indirect section. */
+ extern asection bfd_ind_section;
+ #define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
+ #define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
+
+ #define bfd_is_const_section(SEC) \
+ ( ((SEC) == bfd_abs_section_ptr) \
+ || ((SEC) == bfd_und_section_ptr) \
+ || ((SEC) == bfd_com_section_ptr) \
+ || ((SEC) == bfd_ind_section_ptr))
+
+ /* Macros to handle insertion and deletion of a bfd's sections. These
+ only handle the list pointers, ie. do not adjust section_count,
+ target_index etc. */
+ #define bfd_section_list_remove(ABFD, S) \
+ do \
+ { \
+ asection *_s = S; \
+ asection *_next = _s->next; \
+ asection *_prev = _s->prev; \
+ if (_prev) \
+ _prev->next = _next; \
+ else \
+ (ABFD)->sections = _next; \
+ if (_next) \
+ _next->prev = _prev; \
+ else \
+ (ABFD)->section_last = _prev; \
+ } \
+ while (0)
+ #define bfd_section_list_append(ABFD, S) \
+ do \
+ { \
+ asection *_s = S; \
+ bfd *_abfd = ABFD; \
+ _s->next = NULL; \
+ if (_abfd->section_last) \
+ { \
+ _s->prev = _abfd->section_last; \
+ _abfd->section_last->next = _s; \
+ } \
+ else \
+ { \
+ _s->prev = NULL; \
+ _abfd->sections = _s; \
+ } \
+ _abfd->section_last = _s; \
+ } \
+ while (0)
+ #define bfd_section_list_prepend(ABFD, S) \
+ do \
+ { \
+ asection *_s = S; \
+ bfd *_abfd = ABFD; \
+ _s->prev = NULL; \
+ if (_abfd->sections) \
+ { \
+ _s->next = _abfd->sections; \
+ _abfd->sections->prev = _s; \
+ } \
+ else \
+ { \
+ _s->next = NULL; \
+ _abfd->section_last = _s; \
+ } \
+ _abfd->sections = _s; \
+ } \
+ while (0)
+ #define bfd_section_list_insert_after(ABFD, A, S) \
+ do \
+ { \
+ asection *_a = A; \
+ asection *_s = S; \
+ asection *_next = _a->next; \
+ _s->next = _next; \
+ _s->prev = _a; \
+ _a->next = _s; \
+ if (_next) \
+ _next->prev = _s; \
+ else \
+ (ABFD)->section_last = _s; \
+ } \
+ while (0)
+ #define bfd_section_list_insert_before(ABFD, B, S) \
+ do \
+ { \
+ asection *_b = B; \
+ asection *_s = S; \
+ asection *_prev = _b->prev; \
+ _s->prev = _prev; \
+ _s->next = _b; \
+ _b->prev = _s; \
+ if (_prev) \
+ _prev->next = _s; \
+ else \
+ (ABFD)->sections = _s; \
+ } \
+ while (0)
+ #define bfd_section_removed_from_list(ABFD, S) \
+ ((S)->next == NULL ? (ABFD)->section_last != (S) : (S)->next->prev != (S))
+
+ #define BFD_FAKE_SECTION(SEC, FLAGS, SYM, NAME, IDX) \
+ /* name, id, index, next, prev, flags, user_set_vma, */ \
+ { NAME, IDX, 0, NULL, NULL, FLAGS, 0, \
+ \
+ /* linker_mark, linker_has_input, gc_mark, decompress_status, */ \
+ 0, 0, 1, 0, \
+ \
+ /* segment_mark, sec_info_type, use_rela_p, */ \
+ 0, 0, 0, \
+ \
+ /* sec_flg0, sec_flg1, sec_flg2, sec_flg3, sec_flg4, sec_flg5, */ \
+ 0, 0, 0, 0, 0, 0, \
+ \
+ /* vma, lma, size, rawsize, compressed_size, relax, relax_count, */ \
+ 0, 0, 0, 0, 0, 0, 0, \
+ \
+ /* output_offset, output_section, alignment_power, */ \
+ 0, (struct bfd_section *) &SEC, 0, \
+ \
+ /* relocation, orelocation, reloc_count, filepos, rel_filepos, */ \
+ NULL, NULL, 0, 0, 0, \
+ \
+ /* line_filepos, userdata, contents, lineno, lineno_count, */ \
+ 0, NULL, NULL, NULL, 0, \
+ \
+ /* entsize, kept_section, moving_line_filepos, */ \
+ 0, NULL, 0, \
+ \
+ /* target_index, used_by_bfd, constructor_chain, owner, */ \
+ 0, NULL, NULL, NULL, \
+ \
+ /* flag_info, */ \
+ NULL, \
+ \
+ /* symbol, symbol_ptr_ptr, */ \
+ (struct bfd_symbol *) SYM, &SEC.symbol, \
+ \
+ /* map_head, map_tail */ \
+ { NULL }, { NULL } \
+ }
+
+
+File: bfd.info, Node: section prototypes, Prev: typedef asection, Up: Sections
+
+2.6.5 Section prototypes
+------------------------
+
+These are the functions exported by the section handling part of BFD.
+
+2.6.5.1 `bfd_section_list_clear'
+................................
+
+*Synopsis*
+ void bfd_section_list_clear (bfd *);
+ *Description*
+Clears the section list, and also resets the section count and hash
+table entries.
+
+2.6.5.2 `bfd_get_section_by_name'
+.................................
+
+*Synopsis*
+ asection *bfd_get_section_by_name (bfd *abfd, const char *name);
+ *Description*
+Run through ABFD and return the one of the `asection's whose name
+matches NAME, otherwise `NULL'. *Note Sections::, for more information.
+
+ This should only be used in special cases; the normal way to process
+all sections of a given name is to use `bfd_map_over_sections' and
+`strcmp' on the name (or better yet, base it on the section flags or
+something else) for each section.
+
+2.6.5.3 `bfd_get_section_by_name_if'
+....................................
+
+*Synopsis*
+ asection *bfd_get_section_by_name_if
+ (bfd *abfd,
+ const char *name,
+ bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj),
+ void *obj);
+ *Description*
+Call the provided function FUNC for each section attached to the BFD
+ABFD whose name matches NAME, passing OBJ as an argument. The function
+will be called as if by
+
+ func (abfd, the_section, obj);
+
+ It returns the first section for which FUNC returns true, otherwise
+`NULL'.
+
+2.6.5.4 `bfd_get_unique_section_name'
+.....................................
+
+*Synopsis*
+ char *bfd_get_unique_section_name
+ (bfd *abfd, const char *templat, int *count);
+ *Description*
+Invent a section name that is unique in ABFD by tacking a dot and a
+digit suffix onto the original TEMPLAT. If COUNT is non-NULL, then it
+specifies the first number tried as a suffix to generate a unique name.
+The value pointed to by COUNT will be incremented in this case.
+
+2.6.5.5 `bfd_make_section_old_way'
+..................................
+
+*Synopsis*
+ asection *bfd_make_section_old_way (bfd *abfd, const char *name);
+ *Description*
+Create a new empty section called NAME and attach it to the end of the
+chain of sections for the BFD ABFD. An attempt to create a section with
+a name which is already in use returns its pointer without changing the
+section chain.
+
+ It has the funny name since this is the way it used to be before it
+was rewritten....
+
+ Possible errors are:
+ * `bfd_error_invalid_operation' - If output has already started for
+ this BFD.
+
+ * `bfd_error_no_memory' - If memory allocation fails.
+
+2.6.5.6 `bfd_make_section_anyway_with_flags'
+............................................
+
+*Synopsis*
+ asection *bfd_make_section_anyway_with_flags
+ (bfd *abfd, const char *name, flagword flags);
+ *Description*
+Create a new empty section called NAME and attach it to the end of the
+chain of sections for ABFD. Create a new section even if there is
+already a section with that name. Also set the attributes of the new
+section to the value FLAGS.
+
+ Return `NULL' and set `bfd_error' on error; possible errors are:
+ * `bfd_error_invalid_operation' - If output has already started for
+ ABFD.
+
+ * `bfd_error_no_memory' - If memory allocation fails.
+
+2.6.5.7 `bfd_make_section_anyway'
+.................................
+
+*Synopsis*
+ asection *bfd_make_section_anyway (bfd *abfd, const char *name);
+ *Description*
+Create a new empty section called NAME and attach it to the end of the
+chain of sections for ABFD. Create a new section even if there is
+already a section with that name.
+
+ Return `NULL' and set `bfd_error' on error; possible errors are:
+ * `bfd_error_invalid_operation' - If output has already started for
+ ABFD.
+
+ * `bfd_error_no_memory' - If memory allocation fails.
+
+2.6.5.8 `bfd_make_section_with_flags'
+.....................................
+
+*Synopsis*
+ asection *bfd_make_section_with_flags
+ (bfd *, const char *name, flagword flags);
+ *Description*
+Like `bfd_make_section_anyway', but return `NULL' (without calling
+bfd_set_error ()) without changing the section chain if there is
+already a section named NAME. Also set the attributes of the new
+section to the value FLAGS. If there is an error, return `NULL' and set
+`bfd_error'.
+
+2.6.5.9 `bfd_make_section'
+..........................
+
+*Synopsis*
+ asection *bfd_make_section (bfd *, const char *name);
+ *Description*
+Like `bfd_make_section_anyway', but return `NULL' (without calling
+bfd_set_error ()) without changing the section chain if there is
+already a section named NAME. If there is an error, return `NULL' and
+set `bfd_error'.
+
+2.6.5.10 `bfd_set_section_flags'
+................................
+
+*Synopsis*
+ bfd_boolean bfd_set_section_flags
+ (bfd *abfd, asection *sec, flagword flags);
+ *Description*
+Set the attributes of the section SEC in the BFD ABFD to the value
+FLAGS. Return `TRUE' on success, `FALSE' on error. Possible error
+returns are:
+
+ * `bfd_error_invalid_operation' - The section cannot have one or
+ more of the attributes requested. For example, a .bss section in
+ `a.out' may not have the `SEC_HAS_CONTENTS' field set.
+
+2.6.5.11 `bfd_rename_section'
+.............................
+
+*Synopsis*
+ void bfd_rename_section
+ (bfd *abfd, asection *sec, const char *newname);
+ *Description*
+Rename section SEC in ABFD to NEWNAME.
+
+2.6.5.12 `bfd_map_over_sections'
+................................
+
+*Synopsis*
+ void bfd_map_over_sections
+ (bfd *abfd,
+ void (*func) (bfd *abfd, asection *sect, void *obj),
+ void *obj);
+ *Description*
+Call the provided function FUNC for each section attached to the BFD
+ABFD, passing OBJ as an argument. The function will be called as if by
+
+ func (abfd, the_section, obj);
+
+ This is the preferred method for iterating over sections; an
+alternative would be to use a loop:
+
+ section *p;
+ for (p = abfd->sections; p != NULL; p = p->next)
+ func (abfd, p, ...)
+
+2.6.5.13 `bfd_sections_find_if'
+...............................
+
+*Synopsis*
+ asection *bfd_sections_find_if
+ (bfd *abfd,
+ bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
+ void *obj);
+ *Description*
+Call the provided function OPERATION for each section attached to the
+BFD ABFD, passing OBJ as an argument. The function will be called as if
+by
+
+ operation (abfd, the_section, obj);
+
+ It returns the first section for which OPERATION returns true.
+
+2.6.5.14 `bfd_set_section_size'
+...............................
+
+*Synopsis*
+ bfd_boolean bfd_set_section_size
+ (bfd *abfd, asection *sec, bfd_size_type val);
+ *Description*
+Set SEC to the size VAL. If the operation is ok, then `TRUE' is
+returned, else `FALSE'.
+
+ Possible error returns:
+ * `bfd_error_invalid_operation' - Writing has started to the BFD, so
+ setting the size is invalid.
+
+2.6.5.15 `bfd_set_section_contents'
+...................................
+
+*Synopsis*
+ bfd_boolean bfd_set_section_contents
+ (bfd *abfd, asection *section, const void *data,
+ file_ptr offset, bfd_size_type count);
+ *Description*
+Sets the contents of the section SECTION in BFD ABFD to the data
+starting in memory at DATA. The data is written to the output section
+starting at offset OFFSET for COUNT octets.
+
+ Normally `TRUE' is returned, else `FALSE'. Possible error returns
+are:
+ * `bfd_error_no_contents' - The output section does not have the
+ `SEC_HAS_CONTENTS' attribute, so nothing can be written to it.
+
+ * and some more too
+ This routine is front end to the back end function
+`_bfd_set_section_contents'.
+
+2.6.5.16 `bfd_get_section_contents'
+...................................
+
+*Synopsis*
+ bfd_boolean bfd_get_section_contents
+ (bfd *abfd, asection *section, void *location, file_ptr offset,
+ bfd_size_type count);
+ *Description*
+Read data from SECTION in BFD ABFD into memory starting at LOCATION.
+The data is read at an offset of OFFSET from the start of the input
+section, and is read for COUNT bytes.
+
+ If the contents of a constructor with the `SEC_CONSTRUCTOR' flag set
+are requested or if the section does not have the `SEC_HAS_CONTENTS'
+flag set, then the LOCATION is filled with zeroes. If no errors occur,
+`TRUE' is returned, else `FALSE'.
+
+2.6.5.17 `bfd_malloc_and_get_section'
+.....................................
+
+*Synopsis*
+ bfd_boolean bfd_malloc_and_get_section
+ (bfd *abfd, asection *section, bfd_byte **buf);
+ *Description*
+Read all data from SECTION in BFD ABFD into a buffer, *BUF, malloc'd by
+this function.
+
+2.6.5.18 `bfd_copy_private_section_data'
+........................................
+
+*Synopsis*
+ bfd_boolean bfd_copy_private_section_data
+ (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
+ *Description*
+Copy private section information from ISEC in the BFD IBFD to the
+section OSEC in the BFD OBFD. Return `TRUE' on success, `FALSE' on
+error. Possible error returns are:
+
+ * `bfd_error_no_memory' - Not enough memory exists to create private
+ data for OSEC.
+
+ #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
+ BFD_SEND (obfd, _bfd_copy_private_section_data, \
+ (ibfd, isection, obfd, osection))
+
+2.6.5.19 `bfd_generic_is_group_section'
+.......................................
+
+*Synopsis*
+ bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
+ *Description*
+Returns TRUE if SEC is a member of a group.
+
+2.6.5.20 `bfd_generic_discard_group'
+....................................
+
+*Synopsis*
+ bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
+ *Description*
+Remove all members of GROUP from the output.
+
+
+File: bfd.info, Node: Symbols, Next: Archives, Prev: Sections, Up: BFD front end
+
+2.7 Symbols
+===========
+
+BFD tries to maintain as much symbol information as it can when it
+moves information from file to file. BFD passes information to
+applications though the `asymbol' structure. When the application
+requests the symbol table, BFD reads the table in the native form and
+translates parts of it into the internal format. To maintain more than
+the information passed to applications, some targets keep some
+information "behind the scenes" in a structure only the particular back
+end knows about. For example, the coff back end keeps the original
+symbol table structure as well as the canonical structure when a BFD is
+read in. On output, the coff back end can reconstruct the output symbol
+table so that no information is lost, even information unique to coff
+which BFD doesn't know or understand. If a coff symbol table were read,
+but were written through an a.out back end, all the coff specific
+information would be lost. The symbol table of a BFD is not necessarily
+read in until a canonicalize request is made. Then the BFD back end
+fills in a table provided by the application with pointers to the
+canonical information. To output symbols, the application provides BFD
+with a table of pointers to pointers to `asymbol's. This allows
+applications like the linker to output a symbol as it was read, since
+the "behind the scenes" information will be still available.
+
+* Menu:
+
+* Reading Symbols::
+* Writing Symbols::
+* Mini Symbols::
+* typedef asymbol::
+* symbol handling functions::
+
+
+File: bfd.info, Node: Reading Symbols, Next: Writing Symbols, Prev: Symbols, Up: Symbols
+
+2.7.1 Reading symbols
+---------------------
+
+There are two stages to reading a symbol table from a BFD: allocating
+storage, and the actual reading process. This is an excerpt from an
+application which reads the symbol table:
+
+ long storage_needed;
+ asymbol **symbol_table;
+ long number_of_symbols;
+ long i;
+
+ storage_needed = bfd_get_symtab_upper_bound (abfd);
+
+ if (storage_needed < 0)
+ FAIL
+
+ if (storage_needed == 0)
+ return;
+
+ symbol_table = xmalloc (storage_needed);
+ ...
+ number_of_symbols =
+ bfd_canonicalize_symtab (abfd, symbol_table);
+
+ if (number_of_symbols < 0)
+ FAIL
+
+ for (i = 0; i < number_of_symbols; i++)
+ process_symbol (symbol_table[i]);
+
+ All storage for the symbols themselves is in an objalloc connected
+to the BFD; it is freed when the BFD is closed.
+
+
+File: bfd.info, Node: Writing Symbols, Next: Mini Symbols, Prev: Reading Symbols, Up: Symbols
+
+2.7.2 Writing symbols
+---------------------
+
+Writing of a symbol table is automatic when a BFD open for writing is
+closed. The application attaches a vector of pointers to pointers to
+symbols to the BFD being written, and fills in the symbol count. The
+close and cleanup code reads through the table provided and performs
+all the necessary operations. The BFD output code must always be
+provided with an "owned" symbol: one which has come from another BFD,
+or one which has been created using `bfd_make_empty_symbol'. Here is an
+example showing the creation of a symbol table with only one element:
+
+ #include "bfd.h"
+ int main (void)
+ {
+ bfd *abfd;
+ asymbol *ptrs[2];
+ asymbol *new;
+
+ abfd = bfd_openw ("foo","a.out-sunos-big");
+ bfd_set_format (abfd, bfd_object);
+ new = bfd_make_empty_symbol (abfd);
+ new->name = "dummy_symbol";
+ new->section = bfd_make_section_old_way (abfd, ".text");
+ new->flags = BSF_GLOBAL;
+ new->value = 0x12345;
+
+ ptrs[0] = new;
+ ptrs[1] = 0;
+
+ bfd_set_symtab (abfd, ptrs, 1);
+ bfd_close (abfd);
+ return 0;
+ }
+
+ ./makesym
+ nm foo
+ 00012345 A dummy_symbol
+
+ Many formats cannot represent arbitrary symbol information; for
+instance, the `a.out' object format does not allow an arbitrary number
+of sections. A symbol pointing to a section which is not one of
+`.text', `.data' or `.bss' cannot be described.
+
+
+File: bfd.info, Node: Mini Symbols, Next: typedef asymbol, Prev: Writing Symbols, Up: Symbols
+
+2.7.3 Mini Symbols
+------------------
+
+Mini symbols provide read-only access to the symbol table. They use
+less memory space, but require more time to access. They can be useful
+for tools like nm or objdump, which may have to handle symbol tables of
+extremely large executables.
+
+ The `bfd_read_minisymbols' function will read the symbols into
+memory in an internal form. It will return a `void *' pointer to a
+block of memory, a symbol count, and the size of each symbol. The
+pointer is allocated using `malloc', and should be freed by the caller
+when it is no longer needed.
+
+ The function `bfd_minisymbol_to_symbol' will take a pointer to a
+minisymbol, and a pointer to a structure returned by
+`bfd_make_empty_symbol', and return a `asymbol' structure. The return
+value may or may not be the same as the value from
+`bfd_make_empty_symbol' which was passed in.
+
+
+File: bfd.info, Node: typedef asymbol, Next: symbol handling functions, Prev: Mini Symbols, Up: Symbols
+
+2.7.4 typedef asymbol
+---------------------
+
+An `asymbol' has the form:
+
+
+ typedef struct bfd_symbol
+ {
+ /* A pointer to the BFD which owns the symbol. This information
+ is necessary so that a back end can work out what additional
+ information (invisible to the application writer) is carried
+ with the symbol.
+
+ This field is *almost* redundant, since you can use section->owner
+ instead, except that some symbols point to the global sections
+ bfd_{abs,com,und}_section. This could be fixed by making
+ these globals be per-bfd (or per-target-flavor). FIXME. */
+ struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field. */
+
+ /* The text of the symbol. The name is left alone, and not copied; the
+ application may not alter it. */
+ const char *name;
+
+ /* The value of the symbol. This really should be a union of a
+ numeric value with a pointer, since some flags indicate that
+ a pointer to another symbol is stored here. */
+ symvalue value;
+
+ /* Attributes of a symbol. */
+ #define BSF_NO_FLAGS 0x00
+
+ /* The symbol has local scope; `static' in `C'. The value
+ is the offset into the section of the data. */
+ #define BSF_LOCAL (1 << 0)
+
+ /* The symbol has global scope; initialized data in `C'. The
+ value is the offset into the section of the data. */
+ #define BSF_GLOBAL (1 << 1)
+
+ /* The symbol has global scope and is exported. The value is
+ the offset into the section of the data. */
+ #define BSF_EXPORT BSF_GLOBAL /* No real difference. */
+
+ /* A normal C symbol would be one of:
+ `BSF_LOCAL', `BSF_COMMON', `BSF_UNDEFINED' or
+ `BSF_GLOBAL'. */
+
+ /* The symbol is a debugging record. The value has an arbitrary
+ meaning, unless BSF_DEBUGGING_RELOC is also set. */
+ #define BSF_DEBUGGING (1 << 2)
+
+ /* The symbol denotes a function entry point. Used in ELF,
+ perhaps others someday. */
+ #define BSF_FUNCTION (1 << 3)
+
+ /* Used by the linker. */
+ #define BSF_KEEP (1 << 5)
+ #define BSF_KEEP_G (1 << 6)
+
+ /* A weak global symbol, overridable without warnings by
+ a regular global symbol of the same name. */
+ #define BSF_WEAK (1 << 7)
+
+ /* This symbol was created to point to a section, e.g. ELF's
+ STT_SECTION symbols. */
+ #define BSF_SECTION_SYM (1 << 8)
+
+ /* The symbol used to be a common symbol, but now it is
+ allocated. */
+ #define BSF_OLD_COMMON (1 << 9)
+
+ /* In some files the type of a symbol sometimes alters its
+ location in an output file - ie in coff a `ISFCN' symbol
+ which is also `C_EXT' symbol appears where it was
+ declared and not at the end of a section. This bit is set
+ by the target BFD part to convey this information. */
+ #define BSF_NOT_AT_END (1 << 10)
+
+ /* Signal that the symbol is the label of constructor section. */
+ #define BSF_CONSTRUCTOR (1 << 11)
+
+ /* Signal that the symbol is a warning symbol. The name is a
+ warning. The name of the next symbol is the one to warn about;
+ if a reference is made to a symbol with the same name as the next
+ symbol, a warning is issued by the linker. */
+ #define BSF_WARNING (1 << 12)
+
+ /* Signal that the symbol is indirect. This symbol is an indirect
+ pointer to the symbol with the same name as the next symbol. */
+ #define BSF_INDIRECT (1 << 13)
+
+ /* BSF_FILE marks symbols that contain a file name. This is used
+ for ELF STT_FILE symbols. */
+ #define BSF_FILE (1 << 14)
+
+ /* Symbol is from dynamic linking information. */
+ #define BSF_DYNAMIC (1 << 15)
+
+ /* The symbol denotes a data object. Used in ELF, and perhaps
+ others someday. */
+ #define BSF_OBJECT (1 << 16)
+
+ /* This symbol is a debugging symbol. The value is the offset
+ into the section of the data. BSF_DEBUGGING should be set
+ as well. */
+ #define BSF_DEBUGGING_RELOC (1 << 17)
+
+ /* This symbol is thread local. Used in ELF. */
+ #define BSF_THREAD_LOCAL (1 << 18)
+
+ /* This symbol represents a complex relocation expression,
+ with the expression tree serialized in the symbol name. */
+ #define BSF_RELC (1 << 19)
+
+ /* This symbol represents a signed complex relocation expression,
+ with the expression tree serialized in the symbol name. */
+ #define BSF_SRELC (1 << 20)
+
+ /* This symbol was created by bfd_get_synthetic_symtab. */
+ #define BSF_SYNTHETIC (1 << 21)
+
+ /* This symbol is an indirect code object. Unrelated to BSF_INDIRECT.
+ The dynamic linker will compute the value of this symbol by
+ calling the function that it points to. BSF_FUNCTION must
+ also be also set. */
+ #define BSF_GNU_INDIRECT_FUNCTION (1 << 22)
+ /* This symbol is a globally unique data object. The dynamic linker
+ will make sure that in the entire process there is just one symbol
+ with this name and type in use. BSF_OBJECT must also be set. */
+ #define BSF_GNU_UNIQUE (1 << 23)
+
+ flagword flags;
+
+ /* A pointer to the section to which this symbol is
+ relative. This will always be non NULL, there are special
+ sections for undefined and absolute symbols. */
+ struct bfd_section *section;
+
+ /* Back end special data. */
+ union
+ {
+ void *p;
+ bfd_vma i;
+ }
+ udata;
+ }
+ asymbol;
+
+
+File: bfd.info, Node: symbol handling functions, Prev: typedef asymbol, Up: Symbols
+
+2.7.5 Symbol handling functions
+-------------------------------
+
+2.7.5.1 `bfd_get_symtab_upper_bound'
+....................................
+
+*Description*
+Return the number of bytes required to store a vector of pointers to
+`asymbols' for all the symbols in the BFD ABFD, including a terminal
+NULL pointer. If there are no symbols in the BFD, then return 0. If an
+error occurs, return -1.
+ #define bfd_get_symtab_upper_bound(abfd) \
+ BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
+
+2.7.5.2 `bfd_is_local_label'
+............................
+
+*Synopsis*
+ bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
+ *Description*
+Return TRUE if the given symbol SYM in the BFD ABFD is a compiler
+generated local label, else return FALSE.
+
+2.7.5.3 `bfd_is_local_label_name'
+.................................
+
+*Synopsis*
+ bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
+ *Description*
+Return TRUE if a symbol with the name NAME in the BFD ABFD is a
+compiler generated local label, else return FALSE. This just checks
+whether the name has the form of a local label.
+ #define bfd_is_local_label_name(abfd, name) \
+ BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
+
+2.7.5.4 `bfd_is_target_special_symbol'
+......................................
+
+*Synopsis*
+ bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
+ *Description*
+Return TRUE iff a symbol SYM in the BFD ABFD is something special to
+the particular target represented by the BFD. Such symbols should
+normally not be mentioned to the user.
+ #define bfd_is_target_special_symbol(abfd, sym) \
+ BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
+
+2.7.5.5 `bfd_canonicalize_symtab'
+.................................
+
+*Description*
+Read the symbols from the BFD ABFD, and fills in the vector LOCATION
+with pointers to the symbols and a trailing NULL. Return the actual
+number of symbol pointers, not including the NULL.
+ #define bfd_canonicalize_symtab(abfd, location) \
+ BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
+
+2.7.5.6 `bfd_set_symtab'
+........................
+
+*Synopsis*
+ bfd_boolean bfd_set_symtab
+ (bfd *abfd, asymbol **location, unsigned int count);
+ *Description*
+Arrange that when the output BFD ABFD is closed, the table LOCATION of
+COUNT pointers to symbols will be written.
+
+2.7.5.7 `bfd_print_symbol_vandf'
+................................
+
+*Synopsis*
+ void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
+ *Description*
+Print the value and flags of the SYMBOL supplied to the stream FILE.
+
+2.7.5.8 `bfd_make_empty_symbol'
+...............................
+
+*Description*
+Create a new `asymbol' structure for the BFD ABFD and return a pointer
+to it.
+
+ This routine is necessary because each back end has private
+information surrounding the `asymbol'. Building your own `asymbol' and
+pointing to it will not create the private information, and will cause
+problems later on.
+ #define bfd_make_empty_symbol(abfd) \
+ BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
+
+2.7.5.9 `_bfd_generic_make_empty_symbol'
+........................................
+
+*Synopsis*
+ asymbol *_bfd_generic_make_empty_symbol (bfd *);
+ *Description*
+Create a new `asymbol' structure for the BFD ABFD and return a pointer
+to it. Used by core file routines, binary back-end and anywhere else
+where no private info is needed.
+
+2.7.5.10 `bfd_make_debug_symbol'
+................................
+
+*Description*
+Create a new `asymbol' structure for the BFD ABFD, to be used as a
+debugging symbol. Further details of its use have yet to be worked out.
+ #define bfd_make_debug_symbol(abfd,ptr,size) \
+ BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
+
+2.7.5.11 `bfd_decode_symclass'
+..............................
+
+*Description*
+Return a character corresponding to the symbol class of SYMBOL, or '?'
+for an unknown class.
+
+ *Synopsis*
+ int bfd_decode_symclass (asymbol *symbol);
+
+2.7.5.12 `bfd_is_undefined_symclass'
+....................................
+
+*Description*
+Returns non-zero if the class symbol returned by bfd_decode_symclass
+represents an undefined symbol. Returns zero otherwise.
+
+ *Synopsis*
+ bfd_boolean bfd_is_undefined_symclass (int symclass);
+
+2.7.5.13 `bfd_symbol_info'
+..........................
+
+*Description*
+Fill in the basic info about symbol that nm needs. Additional info may
+be added by the back-ends after calling this function.
+
+ *Synopsis*
+ void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
+
+2.7.5.14 `bfd_copy_private_symbol_data'
+.......................................
+
+*Synopsis*
+ bfd_boolean bfd_copy_private_symbol_data
+ (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
+ *Description*
+Copy private symbol information from ISYM in the BFD IBFD to the symbol
+OSYM in the BFD OBFD. Return `TRUE' on success, `FALSE' on error.
+Possible error returns are:
+
+ * `bfd_error_no_memory' - Not enough memory exists to create private
+ data for OSEC.
+
+ #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
+ BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
+ (ibfd, isymbol, obfd, osymbol))
+
+
+File: bfd.info, Node: Archives, Next: Formats, Prev: Symbols, Up: BFD front end
+
+2.8 Archives
+============
+
+*Description*
+An archive (or library) is just another BFD. It has a symbol table,
+although there's not much a user program will do with it.
+
+ The big difference between an archive BFD and an ordinary BFD is
+that the archive doesn't have sections. Instead it has a chain of BFDs
+that are considered its contents. These BFDs can be manipulated like
+any other. The BFDs contained in an archive opened for reading will
+all be opened for reading. You may put either input or output BFDs
+into an archive opened for output; they will be handled correctly when
+the archive is closed.
+
+ Use `bfd_openr_next_archived_file' to step through the contents of
+an archive opened for input. You don't have to read the entire archive
+if you don't want to! Read it until you find what you want.
+
+ Archive contents of output BFDs are chained through the `next'
+pointer in a BFD. The first one is findable through the `archive_head'
+slot of the archive. Set it with `bfd_set_archive_head' (q.v.). A
+given BFD may be in only one open output archive at a time.
+
+ As expected, the BFD archive code is more general than the archive
+code of any given environment. BFD archives may contain files of
+different formats (e.g., a.out and coff) and even different
+architectures. You may even place archives recursively into archives!
+
+ This can cause unexpected confusion, since some archive formats are
+more expressive than others. For instance, Intel COFF archives can
+preserve long filenames; SunOS a.out archives cannot. If you move a
+file from the first to the second format and back again, the filename
+may be truncated. Likewise, different a.out environments have different
+conventions as to how they truncate filenames, whether they preserve
+directory names in filenames, etc. When interoperating with native
+tools, be sure your files are homogeneous.
+
+ Beware: most of these formats do not react well to the presence of
+spaces in filenames. We do the best we can, but can't always handle
+this case due to restrictions in the format of archives. Many Unix
+utilities are braindead in regards to spaces and such in filenames
+anyway, so this shouldn't be much of a restriction.
+
+ Archives are supported in BFD in `archive.c'.
+
+2.8.1 Archive functions
+-----------------------
+
+2.8.1.1 `bfd_get_next_mapent'
+.............................
+
+*Synopsis*
+ symindex bfd_get_next_mapent
+ (bfd *abfd, symindex previous, carsym **sym);
+ *Description*
+Step through archive ABFD's symbol table (if it has one). Successively
+update SYM with the next symbol's information, returning that symbol's
+(internal) index into the symbol table.
+
+ Supply `BFD_NO_MORE_SYMBOLS' as the PREVIOUS entry to get the first
+one; returns `BFD_NO_MORE_SYMBOLS' when you've already got the last one.
+
+ A `carsym' is a canonical archive symbol. The only user-visible
+element is its name, a null-terminated string.
+
+2.8.1.2 `bfd_set_archive_head'
+..............................
+
+*Synopsis*
+ bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
+ *Description*
+Set the head of the chain of BFDs contained in the archive OUTPUT to
+NEW_HEAD.
+
+2.8.1.3 `bfd_openr_next_archived_file'
+......................................
+
+*Synopsis*
+ bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
+ *Description*
+Provided a BFD, ARCHIVE, containing an archive and NULL, open an input
+BFD on the first contained element and returns that. Subsequent calls
+should pass the archive and the previous return value to return a
+created BFD to the next contained element. NULL is returned when there
+are no more.
+
+
+File: bfd.info, Node: Formats, Next: Relocations, Prev: Archives, Up: BFD front end
+
+2.9 File formats
+================
+
+A format is a BFD concept of high level file contents type. The formats
+supported by BFD are:
+
+ * `bfd_object'
+ The BFD may contain data, symbols, relocations and debug info.
+
+ * `bfd_archive'
+ The BFD contains other BFDs and an optional index.
+
+ * `bfd_core'
+ The BFD contains the result of an executable core dump.
+
+2.9.1 File format functions
+---------------------------
+
+2.9.1.1 `bfd_check_format'
+..........................
+
+*Synopsis*
+ bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
+ *Description*
+Verify if the file attached to the BFD ABFD is compatible with the
+format FORMAT (i.e., one of `bfd_object', `bfd_archive' or `bfd_core').
+
+ If the BFD has been set to a specific target before the call, only
+the named target and format combination is checked. If the target has
+not been set, or has been set to `default', then all the known target
+backends is interrogated to determine a match. If the default target
+matches, it is used. If not, exactly one target must recognize the
+file, or an error results.
+
+ The function returns `TRUE' on success, otherwise `FALSE' with one
+of the following error codes:
+
+ * `bfd_error_invalid_operation' - if `format' is not one of
+ `bfd_object', `bfd_archive' or `bfd_core'.
+
+ * `bfd_error_system_call' - if an error occured during a read - even
+ some file mismatches can cause bfd_error_system_calls.
+
+ * `file_not_recognised' - none of the backends recognised the file
+ format.
+
+ * `bfd_error_file_ambiguously_recognized' - more than one backend
+ recognised the file format.
+
+2.9.1.2 `bfd_check_format_matches'
+..................................
+
+*Synopsis*
+ bfd_boolean bfd_check_format_matches
+ (bfd *abfd, bfd_format format, char ***matching);
+ *Description*
+Like `bfd_check_format', except when it returns FALSE with `bfd_errno'
+set to `bfd_error_file_ambiguously_recognized'. In that case, if
+MATCHING is not NULL, it will be filled in with a NULL-terminated list
+of the names of the formats that matched, allocated with `malloc'.
+Then the user may choose a format and try again.
+
+ When done with the list that MATCHING points to, the caller should
+free it.
+
+2.9.1.3 `bfd_set_format'
+........................
+
+*Synopsis*
+ bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
+ *Description*
+This function sets the file format of the BFD ABFD to the format
+FORMAT. If the target set in the BFD does not support the format
+requested, the format is invalid, or the BFD is not open for writing,
+then an error occurs.
+
+2.9.1.4 `bfd_format_string'
+...........................
+
+*Synopsis*
+ const char *bfd_format_string (bfd_format format);
+ *Description*
+Return a pointer to a const string `invalid', `object', `archive',
+`core', or `unknown', depending upon the value of FORMAT.
+
+
+File: bfd.info, Node: Relocations, Next: Core Files, Prev: Formats, Up: BFD front end
+
+2.10 Relocations
+================
+
+BFD maintains relocations in much the same way it maintains symbols:
+they are left alone until required, then read in en-masse and
+translated into an internal form. A common routine
+`bfd_perform_relocation' acts upon the canonical form to do the fixup.
+
+ Relocations are maintained on a per section basis, while symbols are
+maintained on a per BFD basis.
+
+ All that a back end has to do to fit the BFD interface is to create
+a `struct reloc_cache_entry' for each relocation in a particular
+section, and fill in the right bits of the structures.
+
+* Menu:
+
+* typedef arelent::
+* howto manager::
+
+
+File: bfd.info, Node: typedef arelent, Next: howto manager, Prev: Relocations, Up: Relocations
+
+2.10.1 typedef arelent
+----------------------
+
+This is the structure of a relocation entry:
+
+
+ typedef enum bfd_reloc_status
+ {
+ /* No errors detected. */
+ bfd_reloc_ok,
+
+ /* The relocation was performed, but there was an overflow. */
+ bfd_reloc_overflow,
+
+ /* The address to relocate was not within the section supplied. */
+ bfd_reloc_outofrange,
+
+ /* Used by special functions. */
+ bfd_reloc_continue,
+
+ /* Unsupported relocation size requested. */
+ bfd_reloc_notsupported,
+
+ /* Unused. */
+ bfd_reloc_other,
+
+ /* The symbol to relocate against was undefined. */
+ bfd_reloc_undefined,
+
+ /* The relocation was performed, but may not be ok - presently
+ generated only when linking i960 coff files with i960 b.out
+ symbols. If this type is returned, the error_message argument
+ to bfd_perform_relocation will be set. */
+ bfd_reloc_dangerous
+ }
+ bfd_reloc_status_type;
+
+
+ typedef struct reloc_cache_entry
+ {
+ /* A pointer into the canonical table of pointers. */
+ struct bfd_symbol **sym_ptr_ptr;
+
+ /* offset in section. */
+ bfd_size_type address;
+
+ /* addend for relocation value. */
+ bfd_vma addend;
+
+ /* Pointer to how to perform the required relocation. */
+ reloc_howto_type *howto;
+
+ }
+ arelent;
+ *Description*
+Here is a description of each of the fields within an `arelent':
+
+ * `sym_ptr_ptr'
+ The symbol table pointer points to a pointer to the symbol
+associated with the relocation request. It is the pointer into the
+table returned by the back end's `canonicalize_symtab' action. *Note
+Symbols::. The symbol is referenced through a pointer to a pointer so
+that tools like the linker can fix up all the symbols of the same name
+by modifying only one pointer. The relocation routine looks in the
+symbol and uses the base of the section the symbol is attached to and
+the value of the symbol as the initial relocation offset. If the symbol
+pointer is zero, then the section provided is looked up.
+
+ * `address'
+ The `address' field gives the offset in bytes from the base of the
+section data which owns the relocation record to the first byte of
+relocatable information. The actual data relocated will be relative to
+this point; for example, a relocation type which modifies the bottom
+two bytes of a four byte word would not touch the first byte pointed to
+in a big endian world.
+
+ * `addend'
+ The `addend' is a value provided by the back end to be added (!) to
+the relocation offset. Its interpretation is dependent upon the howto.
+For example, on the 68k the code:
+
+ char foo[];
+ main()
+ {
+ return foo[0x12345678];
+ }
+
+ Could be compiled into:
+
+ linkw fp,#-4
+ moveb @#12345678,d0
+ extbl d0
+ unlk fp
+ rts
+
+ This could create a reloc pointing to `foo', but leave the offset in
+the data, something like:
+
+ RELOCATION RECORDS FOR [.text]:
+ offset type value
+ 00000006 32 _foo
+
+ 00000000 4e56 fffc ; linkw fp,#-4
+ 00000004 1039 1234 5678 ; moveb @#12345678,d0
+ 0000000a 49c0 ; extbl d0
+ 0000000c 4e5e ; unlk fp
+ 0000000e 4e75 ; rts
+
+ Using coff and an 88k, some instructions don't have enough space in
+them to represent the full address range, and pointers have to be
+loaded in two parts. So you'd get something like:
+
+ or.u r13,r0,hi16(_foo+0x12345678)
+ ld.b r2,r13,lo16(_foo+0x12345678)
+ jmp r1
+
+ This should create two relocs, both pointing to `_foo', and with
+0x12340000 in their addend field. The data would consist of:
+
+ RELOCATION RECORDS FOR [.text]:
+ offset type value
+ 00000002 HVRT16 _foo+0x12340000
+ 00000006 LVRT16 _foo+0x12340000
+
+ 00000000 5da05678 ; or.u r13,r0,0x5678
+ 00000004 1c4d5678 ; ld.b r2,r13,0x5678
+ 00000008 f400c001 ; jmp r1
+
+ The relocation routine digs out the value from the data, adds it to
+the addend to get the original offset, and then adds the value of
+`_foo'. Note that all 32 bits have to be kept around somewhere, to cope
+with carry from bit 15 to bit 16.
+
+ One further example is the sparc and the a.out format. The sparc has
+a similar problem to the 88k, in that some instructions don't have room
+for an entire offset, but on the sparc the parts are created in odd
+sized lumps. The designers of the a.out format chose to not use the
+data within the section for storing part of the offset; all the offset
+is kept within the reloc. Anything in the data should be ignored.
+
+ save %sp,-112,%sp
+ sethi %hi(_foo+0x12345678),%g2
+ ldsb [%g2+%lo(_foo+0x12345678)],%i0
+ ret
+ restore
+
+ Both relocs contain a pointer to `foo', and the offsets contain junk.
+
+ RELOCATION RECORDS FOR [.text]:
+ offset type value
+ 00000004 HI22 _foo+0x12345678
+ 00000008 LO10 _foo+0x12345678
+
+ 00000000 9de3bf90 ; save %sp,-112,%sp
+ 00000004 05000000 ; sethi %hi(_foo+0),%g2
+ 00000008 f048a000 ; ldsb [%g2+%lo(_foo+0)],%i0
+ 0000000c 81c7e008 ; ret
+ 00000010 81e80000 ; restore
+
+ * `howto'
+ The `howto' field can be imagined as a relocation instruction. It is
+a pointer to a structure which contains information on what to do with
+all of the other information in the reloc record and data section. A
+back end would normally have a relocation instruction set and turn
+relocations into pointers to the correct structure on input - but it
+would be possible to create each howto field on demand.
+
+2.10.1.1 `enum complain_overflow'
+.................................
+
+Indicates what sort of overflow checking should be done when performing
+a relocation.
+
+
+ enum complain_overflow
+ {
+ /* Do not complain on overflow. */
+ complain_overflow_dont,
+
+ /* Complain if the value overflows when considered as a signed
+ number one bit larger than the field. ie. A bitfield of N bits
+ is allowed to represent -2**n to 2**n-1. */
+ complain_overflow_bitfield,
+
+ /* Complain if the value overflows when considered as a signed
+ number. */
+ complain_overflow_signed,
+
+ /* Complain if the value overflows when considered as an
+ unsigned number. */
+ complain_overflow_unsigned
+ };
+
+2.10.1.2 `reloc_howto_type'
+...........................
+
+The `reloc_howto_type' is a structure which contains all the
+information that libbfd needs to know to tie up a back end's data.
+
+ struct bfd_symbol; /* Forward declaration. */
+
+ struct reloc_howto_struct
+ {
+ /* The type field has mainly a documentary use - the back end can
+ do what it wants with it, though normally the back end's
+ external idea of what a reloc number is stored
+ in this field. For example, a PC relative word relocation
+ in a coff environment has the type 023 - because that's
+ what the outside world calls a R_PCRWORD reloc. */
+ unsigned int type;
+
+ /* The value the final relocation is shifted right by. This drops
+ unwanted data from the relocation. */
+ unsigned int rightshift;
+
+ /* The size of the item to be relocated. This is *not* a
+ power-of-two measure. To get the number of bytes operated
+ on by a type of relocation, use bfd_get_reloc_size. */
+ int size;
+
+ /* The number of bits in the item to be relocated. This is used
+ when doing overflow checking. */
+ unsigned int bitsize;
+
+ /* The relocation is relative to the field being relocated. */
+ bfd_boolean pc_relative;
+
+ /* The bit position of the reloc value in the destination.
+ The relocated value is left shifted by this amount. */
+ unsigned int bitpos;
+
+ /* What type of overflow error should be checked for when
+ relocating. */
+ enum complain_overflow complain_on_overflow;
+
+ /* If this field is non null, then the supplied function is
+ called rather than the normal function. This allows really
+ strange relocation methods to be accommodated (e.g., i960 callj
+ instructions). */
+ bfd_reloc_status_type (*special_function)
+ (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
+ bfd *, char **);
+
+ /* The textual name of the relocation type. */
+ char *name;
+
+ /* Some formats record a relocation addend in the section contents
+ rather than with the relocation. For ELF formats this is the
+ distinction between USE_REL and USE_RELA (though the code checks
+ for USE_REL == 1/0). The value of this field is TRUE if the
+ addend is recorded with the section contents; when performing a
+ partial link (ld -r) the section contents (the data) will be
+ modified. The value of this field is FALSE if addends are
+ recorded with the relocation (in arelent.addend); when performing
+ a partial link the relocation will be modified.
+ All relocations for all ELF USE_RELA targets should set this field
+ to FALSE (values of TRUE should be looked on with suspicion).
+ However, the converse is not true: not all relocations of all ELF
+ USE_REL targets set this field to TRUE. Why this is so is peculiar
+ to each particular target. For relocs that aren't used in partial
+ links (e.g. GOT stuff) it doesn't matter what this is set to. */
+ bfd_boolean partial_inplace;
+
+ /* src_mask selects the part of the instruction (or data) to be used
+ in the relocation sum. If the target relocations don't have an
+ addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
+ dst_mask to extract the addend from the section contents. If
+ relocations do have an addend in the reloc, eg. ELF USE_RELA, this
+ field should be zero. Non-zero values for ELF USE_RELA targets are
+ bogus as in those cases the value in the dst_mask part of the
+ section contents should be treated as garbage. */
+ bfd_vma src_mask;
+
+ /* dst_mask selects which parts of the instruction (or data) are
+ replaced with a relocated value. */
+ bfd_vma dst_mask;
+
+ /* When some formats create PC relative instructions, they leave
+ the value of the pc of the place being relocated in the offset
+ slot of the instruction, so that a PC relative relocation can
+ be made just by adding in an ordinary offset (e.g., sun3 a.out).
+ Some formats leave the displacement part of an instruction
+ empty (e.g., m88k bcs); this flag signals the fact. */
+ bfd_boolean pcrel_offset;
+ };
+
+2.10.1.3 `The HOWTO Macro'
+..........................
+
+*Description*
+The HOWTO define is horrible and will go away.
+ #define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
+ { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC }
+
+ *Description*
+And will be replaced with the totally magic way. But for the moment, we
+are compatible, so do it this way.
+ #define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
+ HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
+ NAME, FALSE, 0, 0, IN)
+
+ *Description*
+This is used to fill in an empty howto entry in an array.
+ #define EMPTY_HOWTO(C) \
+ HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
+ NULL, FALSE, 0, 0, FALSE)
+
+ *Description*
+Helper routine to turn a symbol into a relocation value.
+ #define HOWTO_PREPARE(relocation, symbol) \
+ { \
+ if (symbol != NULL) \
+ { \
+ if (bfd_is_com_section (symbol->section)) \
+ { \
+ relocation = 0; \
+ } \
+ else \
+ { \
+ relocation = symbol->value; \
+ } \
+ } \
+ }
+
+2.10.1.4 `bfd_get_reloc_size'
+.............................
+
+*Synopsis*
+ unsigned int bfd_get_reloc_size (reloc_howto_type *);
+ *Description*
+For a reloc_howto_type that operates on a fixed number of bytes, this
+returns the number of bytes operated on.
+
+2.10.1.5 `arelent_chain'
+........................
+
+*Description*
+How relocs are tied together in an `asection':
+ typedef struct relent_chain
+ {
+ arelent relent;
+ struct relent_chain *next;
+ }
+ arelent_chain;
+
+2.10.1.6 `bfd_check_overflow'
+.............................
+
+*Synopsis*
+ bfd_reloc_status_type bfd_check_overflow
+ (enum complain_overflow how,
+ unsigned int bitsize,
+ unsigned int rightshift,
+ unsigned int addrsize,
+ bfd_vma relocation);
+ *Description*
+Perform overflow checking on RELOCATION which has BITSIZE significant
+bits and will be shifted right by RIGHTSHIFT bits, on a machine with
+addresses containing ADDRSIZE significant bits. The result is either of
+`bfd_reloc_ok' or `bfd_reloc_overflow'.
+
+2.10.1.7 `bfd_perform_relocation'
+.................................
+
+*Synopsis*
+ bfd_reloc_status_type bfd_perform_relocation
+ (bfd *abfd,
+ arelent *reloc_entry,
+ void *data,
+ asection *input_section,
+ bfd *output_bfd,
+ char **error_message);
+ *Description*
+If OUTPUT_BFD is supplied to this function, the generated image will be
+relocatable; the relocations are copied to the output file after they
+have been changed to reflect the new state of the world. There are two
+ways of reflecting the results of partial linkage in an output file: by
+modifying the output data in place, and by modifying the relocation
+record. Some native formats (e.g., basic a.out and basic coff) have no
+way of specifying an addend in the relocation type, so the addend has
+to go in the output data. This is no big deal since in these formats
+the output data slot will always be big enough for the addend. Complex
+reloc types with addends were invented to solve just this problem. The
+ERROR_MESSAGE argument is set to an error message if this return
+`bfd_reloc_dangerous'.
+
+2.10.1.8 `bfd_install_relocation'
+.................................
+
+*Synopsis*
+ bfd_reloc_status_type bfd_install_relocation
+ (bfd *abfd,
+ arelent *reloc_entry,
+ void *data, bfd_vma data_start,
+ asection *input_section,
+ char **error_message);
+ *Description*
+This looks remarkably like `bfd_perform_relocation', except it does not
+expect that the section contents have been filled in. I.e., it's
+suitable for use when creating, rather than applying a relocation.
+
+ For now, this function should be considered reserved for the
+assembler.
+
+
+File: bfd.info, Node: howto manager, Prev: typedef arelent, Up: Relocations
+
+2.10.2 The howto manager
+------------------------
+
+When an application wants to create a relocation, but doesn't know what
+the target machine might call it, it can find out by using this bit of
+code.
+
+2.10.2.1 `bfd_reloc_code_type'
+..............................
+
+*Description*
+The insides of a reloc code. The idea is that, eventually, there will
+be one enumerator for every type of relocation we ever do. Pass one of
+these values to `bfd_reloc_type_lookup', and it'll return a howto
+pointer.
+
+ This does mean that the application must determine the correct
+enumerator value; you can't get a howto pointer from a random set of
+attributes.
+
+ Here are the possible values for `enum bfd_reloc_code_real':
+
+ -- : BFD_RELOC_64
+ -- : BFD_RELOC_32
+ -- : BFD_RELOC_26
+ -- : BFD_RELOC_24
+ -- : BFD_RELOC_16
+ -- : BFD_RELOC_14
+ -- : BFD_RELOC_8
+ Basic absolute relocations of N bits.
+
+ -- : BFD_RELOC_64_PCREL
+ -- : BFD_RELOC_32_PCREL
+ -- : BFD_RELOC_24_PCREL
+ -- : BFD_RELOC_16_PCREL
+ -- : BFD_RELOC_12_PCREL
+ -- : BFD_RELOC_8_PCREL
+ PC-relative relocations. Sometimes these are relative to the
+ address of the relocation itself; sometimes they are relative to
+ the start of the section containing the relocation. It depends on
+ the specific target.
+
+ The 24-bit relocation is used in some Intel 960 configurations.
+
+ -- : BFD_RELOC_32_SECREL
+ Section relative relocations. Some targets need this for DWARF2.
+
+ -- : BFD_RELOC_32_GOT_PCREL
+ -- : BFD_RELOC_16_GOT_PCREL
+ -- : BFD_RELOC_8_GOT_PCREL
+ -- : BFD_RELOC_32_GOTOFF
+ -- : BFD_RELOC_16_GOTOFF
+ -- : BFD_RELOC_LO16_GOTOFF
+ -- : BFD_RELOC_HI16_GOTOFF
+ -- : BFD_RELOC_HI16_S_GOTOFF
+ -- : BFD_RELOC_8_GOTOFF
+ -- : BFD_RELOC_64_PLT_PCREL
+ -- : BFD_RELOC_32_PLT_PCREL
+ -- : BFD_RELOC_24_PLT_PCREL
+ -- : BFD_RELOC_16_PLT_PCREL
+ -- : BFD_RELOC_8_PLT_PCREL
+ -- : BFD_RELOC_64_PLTOFF
+ -- : BFD_RELOC_32_PLTOFF
+ -- : BFD_RELOC_16_PLTOFF
+ -- : BFD_RELOC_LO16_PLTOFF
+ -- : BFD_RELOC_HI16_PLTOFF
+ -- : BFD_RELOC_HI16_S_PLTOFF
+ -- : BFD_RELOC_8_PLTOFF
+ For ELF.
+
+ -- : BFD_RELOC_68K_GLOB_DAT
+ -- : BFD_RELOC_68K_JMP_SLOT
+ -- : BFD_RELOC_68K_RELATIVE
+ -- : BFD_RELOC_68K_TLS_GD32
+ -- : BFD_RELOC_68K_TLS_GD16
+ -- : BFD_RELOC_68K_TLS_GD8
+ -- : BFD_RELOC_68K_TLS_LDM32
+ -- : BFD_RELOC_68K_TLS_LDM16
+ -- : BFD_RELOC_68K_TLS_LDM8
+ -- : BFD_RELOC_68K_TLS_LDO32
+ -- : BFD_RELOC_68K_TLS_LDO16
+ -- : BFD_RELOC_68K_TLS_LDO8
+ -- : BFD_RELOC_68K_TLS_IE32
+ -- : BFD_RELOC_68K_TLS_IE16
+ -- : BFD_RELOC_68K_TLS_IE8
+ -- : BFD_RELOC_68K_TLS_LE32
+ -- : BFD_RELOC_68K_TLS_LE16
+ -- : BFD_RELOC_68K_TLS_LE8
+ Relocations used by 68K ELF.
+
+ -- : BFD_RELOC_32_BASEREL
+ -- : BFD_RELOC_16_BASEREL
+ -- : BFD_RELOC_LO16_BASEREL
+ -- : BFD_RELOC_HI16_BASEREL
+ -- : BFD_RELOC_HI16_S_BASEREL
+ -- : BFD_RELOC_8_BASEREL
+ -- : BFD_RELOC_RVA
+ Linkage-table relative.
+
+ -- : BFD_RELOC_8_FFnn
+ Absolute 8-bit relocation, but used to form an address like 0xFFnn.
+
+ -- : BFD_RELOC_32_PCREL_S2
+ -- : BFD_RELOC_16_PCREL_S2
+ -- : BFD_RELOC_23_PCREL_S2
+ These PC-relative relocations are stored as word displacements -
+ i.e., byte displacements shifted right two bits. The 30-bit word
+ displacement (<<32_PCREL_S2>> - 32 bits, shifted 2) is used on the
+ SPARC. (SPARC tools generally refer to this as <<WDISP30>>.) The
+ signed 16-bit displacement is used on the MIPS, and the 23-bit
+ displacement is used on the Alpha.
+
+ -- : BFD_RELOC_HI22
+ -- : BFD_RELOC_LO10
+ High 22 bits and low 10 bits of 32-bit value, placed into lower
+ bits of the target word. These are used on the SPARC.
+
+ -- : BFD_RELOC_GPREL16
+ -- : BFD_RELOC_GPREL32
+ For systems that allocate a Global Pointer register, these are
+ displacements off that register. These relocation types are
+ handled specially, because the value the register will have is
+ decided relatively late.
+
+ -- : BFD_RELOC_I960_CALLJ
+ Reloc types used for i960/b.out.
+
+ -- : BFD_RELOC_NONE
+ -- : BFD_RELOC_SPARC_WDISP22
+ -- : BFD_RELOC_SPARC22
+ -- : BFD_RELOC_SPARC13
+ -- : BFD_RELOC_SPARC_GOT10
+ -- : BFD_RELOC_SPARC_GOT13
+ -- : BFD_RELOC_SPARC_GOT22
+ -- : BFD_RELOC_SPARC_PC10
+ -- : BFD_RELOC_SPARC_PC22
+ -- : BFD_RELOC_SPARC_WPLT30
+ -- : BFD_RELOC_SPARC_COPY
+ -- : BFD_RELOC_SPARC_GLOB_DAT
+ -- : BFD_RELOC_SPARC_JMP_SLOT
+ -- : BFD_RELOC_SPARC_RELATIVE
+ -- : BFD_RELOC_SPARC_UA16
+ -- : BFD_RELOC_SPARC_UA32
+ -- : BFD_RELOC_SPARC_UA64
+ -- : BFD_RELOC_SPARC_GOTDATA_HIX22
+ -- : BFD_RELOC_SPARC_GOTDATA_LOX10
+ -- : BFD_RELOC_SPARC_GOTDATA_OP_HIX22
+ -- : BFD_RELOC_SPARC_GOTDATA_OP_LOX10
+ -- : BFD_RELOC_SPARC_GOTDATA_OP
+ -- : BFD_RELOC_SPARC_JMP_IREL
+ -- : BFD_RELOC_SPARC_IRELATIVE
+ SPARC ELF relocations. There is probably some overlap with other
+ relocation types already defined.
+
+ -- : BFD_RELOC_SPARC_BASE13
+ -- : BFD_RELOC_SPARC_BASE22
+ I think these are specific to SPARC a.out (e.g., Sun 4).
+
+ -- : BFD_RELOC_SPARC_64
+ -- : BFD_RELOC_SPARC_10
+ -- : BFD_RELOC_SPARC_11
+ -- : BFD_RELOC_SPARC_OLO10
+ -- : BFD_RELOC_SPARC_HH22
+ -- : BFD_RELOC_SPARC_HM10
+ -- : BFD_RELOC_SPARC_LM22
+ -- : BFD_RELOC_SPARC_PC_HH22
+ -- : BFD_RELOC_SPARC_PC_HM10
+ -- : BFD_RELOC_SPARC_PC_LM22
+ -- : BFD_RELOC_SPARC_WDISP16
+ -- : BFD_RELOC_SPARC_WDISP19
+ -- : BFD_RELOC_SPARC_7
+ -- : BFD_RELOC_SPARC_6
+ -- : BFD_RELOC_SPARC_5
+ -- : BFD_RELOC_SPARC_DISP64
+ -- : BFD_RELOC_SPARC_PLT32
+ -- : BFD_RELOC_SPARC_PLT64
+ -- : BFD_RELOC_SPARC_HIX22
+ -- : BFD_RELOC_SPARC_LOX10
+ -- : BFD_RELOC_SPARC_H44
+ -- : BFD_RELOC_SPARC_M44
+ -- : BFD_RELOC_SPARC_L44
+ -- : BFD_RELOC_SPARC_REGISTER
+ SPARC64 relocations
+
+ -- : BFD_RELOC_SPARC_REV32
+ SPARC little endian relocation
+
+ -- : BFD_RELOC_SPARC_TLS_GD_HI22
+ -- : BFD_RELOC_SPARC_TLS_GD_LO10
+ -- : BFD_RELOC_SPARC_TLS_GD_ADD
+ -- : BFD_RELOC_SPARC_TLS_GD_CALL
+ -- : BFD_RELOC_SPARC_TLS_LDM_HI22
+ -- : BFD_RELOC_SPARC_TLS_LDM_LO10
+ -- : BFD_RELOC_SPARC_TLS_LDM_ADD
+ -- : BFD_RELOC_SPARC_TLS_LDM_CALL
+ -- : BFD_RELOC_SPARC_TLS_LDO_HIX22
+ -- : BFD_RELOC_SPARC_TLS_LDO_LOX10
+ -- : BFD_RELOC_SPARC_TLS_LDO_ADD
+ -- : BFD_RELOC_SPARC_TLS_IE_HI22
+ -- : BFD_RELOC_SPARC_TLS_IE_LO10
+ -- : BFD_RELOC_SPARC_TLS_IE_LD
+ -- : BFD_RELOC_SPARC_TLS_IE_LDX
+ -- : BFD_RELOC_SPARC_TLS_IE_ADD
+ -- : BFD_RELOC_SPARC_TLS_LE_HIX22
+ -- : BFD_RELOC_SPARC_TLS_LE_LOX10
+ -- : BFD_RELOC_SPARC_TLS_DTPMOD32
+ -- : BFD_RELOC_SPARC_TLS_DTPMOD64
+ -- : BFD_RELOC_SPARC_TLS_DTPOFF32
+ -- : BFD_RELOC_SPARC_TLS_DTPOFF64
+ -- : BFD_RELOC_SPARC_TLS_TPOFF32
+ -- : BFD_RELOC_SPARC_TLS_TPOFF64
+ SPARC TLS relocations
+
+ -- : BFD_RELOC_SPU_IMM7
+ -- : BFD_RELOC_SPU_IMM8
+ -- : BFD_RELOC_SPU_IMM10
+ -- : BFD_RELOC_SPU_IMM10W
+ -- : BFD_RELOC_SPU_IMM16
+ -- : BFD_RELOC_SPU_IMM16W
+ -- : BFD_RELOC_SPU_IMM18
+ -- : BFD_RELOC_SPU_PCREL9a
+ -- : BFD_RELOC_SPU_PCREL9b
+ -- : BFD_RELOC_SPU_PCREL16
+ -- : BFD_RELOC_SPU_LO16
+ -- : BFD_RELOC_SPU_HI16
+ -- : BFD_RELOC_SPU_PPU32
+ -- : BFD_RELOC_SPU_PPU64
+ -- : BFD_RELOC_SPU_ADD_PIC
+ SPU Relocations.
+
+ -- : BFD_RELOC_ALPHA_GPDISP_HI16
+ Alpha ECOFF and ELF relocations. Some of these treat the symbol or
+ "addend" in some special way. For GPDISP_HI16 ("gpdisp")
+ relocations, the symbol is ignored when writing; when reading, it
+ will be the absolute section symbol. The addend is the
+ displacement in bytes of the "lda" instruction from the "ldah"
+ instruction (which is at the address of this reloc).
+
+ -- : BFD_RELOC_ALPHA_GPDISP_LO16
+ For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
+ with GPDISP_HI16 relocs. The addend is ignored when writing the
+ relocations out, and is filled in with the file's GP value on
+ reading, for convenience.
+
+ -- : BFD_RELOC_ALPHA_GPDISP
+ The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
+ relocation except that there is no accompanying GPDISP_LO16
+ relocation.
+
+ -- : BFD_RELOC_ALPHA_LITERAL
+ -- : BFD_RELOC_ALPHA_ELF_LITERAL
+ -- : BFD_RELOC_ALPHA_LITUSE
+ The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
+ the assembler turns it into a LDQ instruction to load the address
+ of the symbol, and then fills in a register in the real
+ instruction.
+
+ The LITERAL reloc, at the LDQ instruction, refers to the .lita
+ section symbol. The addend is ignored when writing, but is filled
+ in with the file's GP value on reading, for convenience, as with
+ the GPDISP_LO16 reloc.
+
+ The ELF_LITERAL reloc is somewhere between 16_GOTOFF and
+ GPDISP_LO16. It should refer to the symbol to be referenced, as
+ with 16_GOTOFF, but it generates output not based on the position
+ within the .got section, but relative to the GP value chosen for
+ the file during the final link stage.
+
+ The LITUSE reloc, on the instruction using the loaded address,
+ gives information to the linker that it might be able to use to
+ optimize away some literal section references. The symbol is
+ ignored (read as the absolute section symbol), and the "addend"
+ indicates the type of instruction using the register: 1 - "memory"
+ fmt insn 2 - byte-manipulation (byte offset reg) 3 - jsr (target
+ of branch)
+
+ -- : BFD_RELOC_ALPHA_HINT
+ The HINT relocation indicates a value that should be filled into
+ the "hint" field of a jmp/jsr/ret instruction, for possible branch-
+ prediction logic which may be provided on some processors.
+
+ -- : BFD_RELOC_ALPHA_LINKAGE
+ The LINKAGE relocation outputs a linkage pair in the object file,
+ which is filled by the linker.
+
+ -- : BFD_RELOC_ALPHA_CODEADDR
+ The CODEADDR relocation outputs a STO_CA in the object file, which
+ is filled by the linker.
+
+ -- : BFD_RELOC_ALPHA_GPREL_HI16
+ -- : BFD_RELOC_ALPHA_GPREL_LO16
+ The GPREL_HI/LO relocations together form a 32-bit offset from the
+ GP register.
+
+ -- : BFD_RELOC_ALPHA_BRSGP
+ Like BFD_RELOC_23_PCREL_S2, except that the source and target must
+ share a common GP, and the target address is adjusted for
+ STO_ALPHA_STD_GPLOAD.
+
+ -- : BFD_RELOC_ALPHA_NOP
+ The NOP relocation outputs a NOP if the longword displacement
+ between two procedure entry points is < 2^21.
+
+ -- : BFD_RELOC_ALPHA_BSR
+ The BSR relocation outputs a BSR if the longword displacement
+ between two procedure entry points is < 2^21.
+
+ -- : BFD_RELOC_ALPHA_LDA
+ The LDA relocation outputs a LDA if the longword displacement
+ between two procedure entry points is < 2^16.
+
+ -- : BFD_RELOC_ALPHA_BOH
+ The BOH relocation outputs a BSR if the longword displacement
+ between two procedure entry points is < 2^21, or else a hint.
+
+ -- : BFD_RELOC_ALPHA_TLSGD
+ -- : BFD_RELOC_ALPHA_TLSLDM
+ -- : BFD_RELOC_ALPHA_DTPMOD64
+ -- : BFD_RELOC_ALPHA_GOTDTPREL16
+ -- : BFD_RELOC_ALPHA_DTPREL64
+ -- : BFD_RELOC_ALPHA_DTPREL_HI16
+ -- : BFD_RELOC_ALPHA_DTPREL_LO16
+ -- : BFD_RELOC_ALPHA_DTPREL16
+ -- : BFD_RELOC_ALPHA_GOTTPREL16
+ -- : BFD_RELOC_ALPHA_TPREL64
+ -- : BFD_RELOC_ALPHA_TPREL_HI16
+ -- : BFD_RELOC_ALPHA_TPREL_LO16
+ -- : BFD_RELOC_ALPHA_TPREL16
+ Alpha thread-local storage relocations.
+
+ -- : BFD_RELOC_MIPS_JMP
+ -- : BFD_RELOC_MICROMIPS_JMP
+ The MIPS jump instruction.
+
+ -- : BFD_RELOC_MIPS16_JMP
+ The MIPS16 jump instruction.
+
+ -- : BFD_RELOC_MIPS16_GPREL
+ MIPS16 GP relative reloc.
+
+ -- : BFD_RELOC_HI16
+ High 16 bits of 32-bit value; simple reloc.
+
+ -- : BFD_RELOC_HI16_S
+ High 16 bits of 32-bit value but the low 16 bits will be sign
+ extended and added to form the final result. If the low 16 bits
+ form a negative number, we need to add one to the high value to
+ compensate for the borrow when the low bits are added.
+
+ -- : BFD_RELOC_LO16
+ Low 16 bits.
+
+ -- : BFD_RELOC_HI16_PCREL
+ High 16 bits of 32-bit pc-relative value
+
+ -- : BFD_RELOC_HI16_S_PCREL
+ High 16 bits of 32-bit pc-relative value, adjusted
+
+ -- : BFD_RELOC_LO16_PCREL
+ Low 16 bits of pc-relative value
+
+ -- : BFD_RELOC_MIPS16_GOT16
+ -- : BFD_RELOC_MIPS16_CALL16
+ Equivalent of BFD_RELOC_MIPS_*, but with the MIPS16 layout of
+ 16-bit immediate fields
+
+ -- : BFD_RELOC_MIPS16_HI16
+ MIPS16 high 16 bits of 32-bit value.
+
+ -- : BFD_RELOC_MIPS16_HI16_S
+ MIPS16 high 16 bits of 32-bit value but the low 16 bits will be
+ sign extended and added to form the final result. If the low 16
+ bits form a negative number, we need to add one to the high value
+ to compensate for the borrow when the low bits are added.
+
+ -- : BFD_RELOC_MIPS16_LO16
+ MIPS16 low 16 bits.
+
+ -- : BFD_RELOC_MIPS_LITERAL
+ -- : BFD_RELOC_MICROMIPS_LITERAL
+ Relocation against a MIPS literal section.
+
+ -- : BFD_RELOC_MICROMIPS_7_PCREL_S1
+ -- : BFD_RELOC_MICROMIPS_10_PCREL_S1
+ -- : BFD_RELOC_MICROMIPS_16_PCREL_S1
+ microMIPS PC-relative relocations.
+
+ -- : BFD_RELOC_MICROMIPS_GPREL16
+ -- : BFD_RELOC_MICROMIPS_HI16
+ -- : BFD_RELOC_MICROMIPS_HI16_S
+ -- : BFD_RELOC_MICROMIPS_LO16
+ microMIPS versions of generic BFD relocs.
+
+ -- : BFD_RELOC_MIPS_GOT16
+ -- : BFD_RELOC_MICROMIPS_GOT16
+ -- : BFD_RELOC_MIPS_CALL16
+ -- : BFD_RELOC_MICROMIPS_CALL16
+ -- : BFD_RELOC_MIPS_GOT_HI16
+ -- : BFD_RELOC_MICROMIPS_GOT_HI16
+ -- : BFD_RELOC_MIPS_GOT_LO16
+ -- : BFD_RELOC_MICROMIPS_GOT_LO16
+ -- : BFD_RELOC_MIPS_CALL_HI16
+ -- : BFD_RELOC_MICROMIPS_CALL_HI16
+ -- : BFD_RELOC_MIPS_CALL_LO16
+ -- : BFD_RELOC_MICROMIPS_CALL_LO16
+ -- : BFD_RELOC_MIPS_SUB
+ -- : BFD_RELOC_MICROMIPS_SUB
+ -- : BFD_RELOC_MIPS_GOT_PAGE
+ -- : BFD_RELOC_MICROMIPS_GOT_PAGE
+ -- : BFD_RELOC_MIPS_GOT_OFST
+ -- : BFD_RELOC_MICROMIPS_GOT_OFST
+ -- : BFD_RELOC_MIPS_GOT_DISP
+ -- : BFD_RELOC_MICROMIPS_GOT_DISP
+ -- : BFD_RELOC_MIPS_SHIFT5
+ -- : BFD_RELOC_MIPS_SHIFT6
+ -- : BFD_RELOC_MIPS_INSERT_A
+ -- : BFD_RELOC_MIPS_INSERT_B
+ -- : BFD_RELOC_MIPS_DELETE
+ -- : BFD_RELOC_MIPS_HIGHEST
+ -- : BFD_RELOC_MICROMIPS_HIGHEST
+ -- : BFD_RELOC_MIPS_HIGHER
+ -- : BFD_RELOC_MICROMIPS_HIGHER
+ -- : BFD_RELOC_MIPS_SCN_DISP
+ -- : BFD_RELOC_MICROMIPS_SCN_DISP
+ -- : BFD_RELOC_MIPS_REL16
+ -- : BFD_RELOC_MIPS_RELGOT
+ -- : BFD_RELOC_MIPS_JALR
+ -- : BFD_RELOC_MICROMIPS_JALR
+ -- : BFD_RELOC_MIPS_TLS_DTPMOD32
+ -- : BFD_RELOC_MIPS_TLS_DTPREL32
+ -- : BFD_RELOC_MIPS_TLS_DTPMOD64
+ -- : BFD_RELOC_MIPS_TLS_DTPREL64
+ -- : BFD_RELOC_MIPS_TLS_GD
+ -- : BFD_RELOC_MICROMIPS_TLS_GD
+ -- : BFD_RELOC_MIPS_TLS_LDM
+ -- : BFD_RELOC_MICROMIPS_TLS_LDM
+ -- : BFD_RELOC_MIPS_TLS_DTPREL_HI16
+ -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16
+ -- : BFD_RELOC_MIPS_TLS_DTPREL_LO16
+ -- : BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16
+ -- : BFD_RELOC_MIPS_TLS_GOTTPREL
+ -- : BFD_RELOC_MICROMIPS_TLS_GOTTPREL
+ -- : BFD_RELOC_MIPS_TLS_TPREL32
+ -- : BFD_RELOC_MIPS_TLS_TPREL64
+ -- : BFD_RELOC_MIPS_TLS_TPREL_HI16
+ -- : BFD_RELOC_MICROMIPS_TLS_TPREL_HI16
+ -- : BFD_RELOC_MIPS_TLS_TPREL_LO16
+ -- : BFD_RELOC_MICROMIPS_TLS_TPREL_LO16
+ MIPS ELF relocations.
+
+ -- : BFD_RELOC_MIPS_COPY
+ -- : BFD_RELOC_MIPS_JUMP_SLOT
+ MIPS ELF relocations (VxWorks and PLT extensions).
+
+ -- : BFD_RELOC_MOXIE_10_PCREL
+ Moxie ELF relocations.
+
+ -- : BFD_RELOC_FRV_LABEL16
+ -- : BFD_RELOC_FRV_LABEL24
+ -- : BFD_RELOC_FRV_LO16
+ -- : BFD_RELOC_FRV_HI16
+ -- : BFD_RELOC_FRV_GPREL12
+ -- : BFD_RELOC_FRV_GPRELU12
+ -- : BFD_RELOC_FRV_GPREL32
+ -- : BFD_RELOC_FRV_GPRELHI
+ -- : BFD_RELOC_FRV_GPRELLO
+ -- : BFD_RELOC_FRV_GOT12
+ -- : BFD_RELOC_FRV_GOTHI
+ -- : BFD_RELOC_FRV_GOTLO
+ -- : BFD_RELOC_FRV_FUNCDESC
+ -- : BFD_RELOC_FRV_FUNCDESC_GOT12
+ -- : BFD_RELOC_FRV_FUNCDESC_GOTHI
+ -- : BFD_RELOC_FRV_FUNCDESC_GOTLO
+ -- : BFD_RELOC_FRV_FUNCDESC_VALUE
+ -- : BFD_RELOC_FRV_FUNCDESC_GOTOFF12
+ -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFHI
+ -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFLO
+ -- : BFD_RELOC_FRV_GOTOFF12
+ -- : BFD_RELOC_FRV_GOTOFFHI
+ -- : BFD_RELOC_FRV_GOTOFFLO
+ -- : BFD_RELOC_FRV_GETTLSOFF
+ -- : BFD_RELOC_FRV_TLSDESC_VALUE
+ -- : BFD_RELOC_FRV_GOTTLSDESC12
+ -- : BFD_RELOC_FRV_GOTTLSDESCHI
+ -- : BFD_RELOC_FRV_GOTTLSDESCLO
+ -- : BFD_RELOC_FRV_TLSMOFF12
+ -- : BFD_RELOC_FRV_TLSMOFFHI
+ -- : BFD_RELOC_FRV_TLSMOFFLO
+ -- : BFD_RELOC_FRV_GOTTLSOFF12
+ -- : BFD_RELOC_FRV_GOTTLSOFFHI
+ -- : BFD_RELOC_FRV_GOTTLSOFFLO
+ -- : BFD_RELOC_FRV_TLSOFF
+ -- : BFD_RELOC_FRV_TLSDESC_RELAX
+ -- : BFD_RELOC_FRV_GETTLSOFF_RELAX
+ -- : BFD_RELOC_FRV_TLSOFF_RELAX
+ -- : BFD_RELOC_FRV_TLSMOFF
+ Fujitsu Frv Relocations.
+
+ -- : BFD_RELOC_MN10300_GOTOFF24
+ This is a 24bit GOT-relative reloc for the mn10300.
+
+ -- : BFD_RELOC_MN10300_GOT32
+ This is a 32bit GOT-relative reloc for the mn10300, offset by two
+ bytes in the instruction.
+
+ -- : BFD_RELOC_MN10300_GOT24
+ This is a 24bit GOT-relative reloc for the mn10300, offset by two
+ bytes in the instruction.
+
+ -- : BFD_RELOC_MN10300_GOT16
+ This is a 16bit GOT-relative reloc for the mn10300, offset by two
+ bytes in the instruction.
+
+ -- : BFD_RELOC_MN10300_COPY
+ Copy symbol at runtime.
+
+ -- : BFD_RELOC_MN10300_GLOB_DAT
+ Create GOT entry.
+
+ -- : BFD_RELOC_MN10300_JMP_SLOT
+ Create PLT entry.
+
+ -- : BFD_RELOC_MN10300_RELATIVE
+ Adjust by program base.
+
+ -- : BFD_RELOC_MN10300_SYM_DIFF
+ Together with another reloc targeted at the same location, allows
+ for a value that is the difference of two symbols in the same
+ section.
+
+ -- : BFD_RELOC_MN10300_ALIGN
+ The addend of this reloc is an alignment power that must be
+ honoured at the offset's location, regardless of linker relaxation.
+
+ -- : BFD_RELOC_386_GOT32
+ -- : BFD_RELOC_386_PLT32
+ -- : BFD_RELOC_386_COPY
+ -- : BFD_RELOC_386_GLOB_DAT
+ -- : BFD_RELOC_386_JUMP_SLOT
+ -- : BFD_RELOC_386_RELATIVE
+ -- : BFD_RELOC_386_GOTOFF
+ -- : BFD_RELOC_386_GOTPC
+ -- : BFD_RELOC_386_TLS_TPOFF
+ -- : BFD_RELOC_386_TLS_IE
+ -- : BFD_RELOC_386_TLS_GOTIE
+ -- : BFD_RELOC_386_TLS_LE
+ -- : BFD_RELOC_386_TLS_GD
+ -- : BFD_RELOC_386_TLS_LDM
+ -- : BFD_RELOC_386_TLS_LDO_32
+ -- : BFD_RELOC_386_TLS_IE_32
+ -- : BFD_RELOC_386_TLS_LE_32
+ -- : BFD_RELOC_386_TLS_DTPMOD32
+ -- : BFD_RELOC_386_TLS_DTPOFF32
+ -- : BFD_RELOC_386_TLS_TPOFF32
+ -- : BFD_RELOC_386_TLS_GOTDESC
+ -- : BFD_RELOC_386_TLS_DESC_CALL
+ -- : BFD_RELOC_386_TLS_DESC
+ -- : BFD_RELOC_386_IRELATIVE
+ i386/elf relocations
+
+ -- : BFD_RELOC_X86_64_GOT32
+ -- : BFD_RELOC_X86_64_PLT32
+ -- : BFD_RELOC_X86_64_COPY
+ -- : BFD_RELOC_X86_64_GLOB_DAT
+ -- : BFD_RELOC_X86_64_JUMP_SLOT
+ -- : BFD_RELOC_X86_64_RELATIVE
+ -- : BFD_RELOC_X86_64_GOTPCREL
+ -- : BFD_RELOC_X86_64_32S
+ -- : BFD_RELOC_X86_64_DTPMOD64
+ -- : BFD_RELOC_X86_64_DTPOFF64
+ -- : BFD_RELOC_X86_64_TPOFF64
+ -- : BFD_RELOC_X86_64_TLSGD
+ -- : BFD_RELOC_X86_64_TLSLD
+ -- : BFD_RELOC_X86_64_DTPOFF32
+ -- : BFD_RELOC_X86_64_GOTTPOFF
+ -- : BFD_RELOC_X86_64_TPOFF32
+ -- : BFD_RELOC_X86_64_GOTOFF64
+ -- : BFD_RELOC_X86_64_GOTPC32
+ -- : BFD_RELOC_X86_64_GOT64
+ -- : BFD_RELOC_X86_64_GOTPCREL64
+ -- : BFD_RELOC_X86_64_GOTPC64
+ -- : BFD_RELOC_X86_64_GOTPLT64
+ -- : BFD_RELOC_X86_64_PLTOFF64
+ -- : BFD_RELOC_X86_64_GOTPC32_TLSDESC
+ -- : BFD_RELOC_X86_64_TLSDESC_CALL
+ -- : BFD_RELOC_X86_64_TLSDESC
+ -- : BFD_RELOC_X86_64_IRELATIVE
+ x86-64/elf relocations
+
+ -- : BFD_RELOC_NS32K_IMM_8
+ -- : BFD_RELOC_NS32K_IMM_16
+ -- : BFD_RELOC_NS32K_IMM_32
+ -- : BFD_RELOC_NS32K_IMM_8_PCREL
+ -- : BFD_RELOC_NS32K_IMM_16_PCREL
+ -- : BFD_RELOC_NS32K_IMM_32_PCREL
+ -- : BFD_RELOC_NS32K_DISP_8
+ -- : BFD_RELOC_NS32K_DISP_16
+ -- : BFD_RELOC_NS32K_DISP_32
+ -- : BFD_RELOC_NS32K_DISP_8_PCREL
+ -- : BFD_RELOC_NS32K_DISP_16_PCREL
+ -- : BFD_RELOC_NS32K_DISP_32_PCREL
+ ns32k relocations
+
+ -- : BFD_RELOC_PDP11_DISP_8_PCREL
+ -- : BFD_RELOC_PDP11_DISP_6_PCREL
+ PDP11 relocations
+
+ -- : BFD_RELOC_PJ_CODE_HI16
+ -- : BFD_RELOC_PJ_CODE_LO16
+ -- : BFD_RELOC_PJ_CODE_DIR16
+ -- : BFD_RELOC_PJ_CODE_DIR32
+ -- : BFD_RELOC_PJ_CODE_REL16
+ -- : BFD_RELOC_PJ_CODE_REL32
+ Picojava relocs. Not all of these appear in object files.
+
+ -- : BFD_RELOC_PPC_B26
+ -- : BFD_RELOC_PPC_BA26
+ -- : BFD_RELOC_PPC_TOC16
+ -- : BFD_RELOC_PPC_B16
+ -- : BFD_RELOC_PPC_B16_BRTAKEN
+ -- : BFD_RELOC_PPC_B16_BRNTAKEN
+ -- : BFD_RELOC_PPC_BA16
+ -- : BFD_RELOC_PPC_BA16_BRTAKEN
+ -- : BFD_RELOC_PPC_BA16_BRNTAKEN
+ -- : BFD_RELOC_PPC_COPY
+ -- : BFD_RELOC_PPC_GLOB_DAT
+ -- : BFD_RELOC_PPC_JMP_SLOT
+ -- : BFD_RELOC_PPC_RELATIVE
+ -- : BFD_RELOC_PPC_LOCAL24PC
+ -- : BFD_RELOC_PPC_EMB_NADDR32
+ -- : BFD_RELOC_PPC_EMB_NADDR16
+ -- : BFD_RELOC_PPC_EMB_NADDR16_LO
+ -- : BFD_RELOC_PPC_EMB_NADDR16_HI
+ -- : BFD_RELOC_PPC_EMB_NADDR16_HA
+ -- : BFD_RELOC_PPC_EMB_SDAI16
+ -- : BFD_RELOC_PPC_EMB_SDA2I16
+ -- : BFD_RELOC_PPC_EMB_SDA2REL
+ -- : BFD_RELOC_PPC_EMB_SDA21
+ -- : BFD_RELOC_PPC_EMB_MRKREF
+ -- : BFD_RELOC_PPC_EMB_RELSEC16
+ -- : BFD_RELOC_PPC_EMB_RELST_LO
+ -- : BFD_RELOC_PPC_EMB_RELST_HI
+ -- : BFD_RELOC_PPC_EMB_RELST_HA
+ -- : BFD_RELOC_PPC_EMB_BIT_FLD
+ -- : BFD_RELOC_PPC_EMB_RELSDA
+ -- : BFD_RELOC_PPC64_HIGHER
+ -- : BFD_RELOC_PPC64_HIGHER_S
+ -- : BFD_RELOC_PPC64_HIGHEST
+ -- : BFD_RELOC_PPC64_HIGHEST_S
+ -- : BFD_RELOC_PPC64_TOC16_LO
+ -- : BFD_RELOC_PPC64_TOC16_HI
+ -- : BFD_RELOC_PPC64_TOC16_HA
+ -- : BFD_RELOC_PPC64_TOC
+ -- : BFD_RELOC_PPC64_PLTGOT16
+ -- : BFD_RELOC_PPC64_PLTGOT16_LO
+ -- : BFD_RELOC_PPC64_PLTGOT16_HI
+ -- : BFD_RELOC_PPC64_PLTGOT16_HA
+ -- : BFD_RELOC_PPC64_ADDR16_DS
+ -- : BFD_RELOC_PPC64_ADDR16_LO_DS
+ -- : BFD_RELOC_PPC64_GOT16_DS
+ -- : BFD_RELOC_PPC64_GOT16_LO_DS
+ -- : BFD_RELOC_PPC64_PLT16_LO_DS
+ -- : BFD_RELOC_PPC64_SECTOFF_DS
+ -- : BFD_RELOC_PPC64_SECTOFF_LO_DS
+ -- : BFD_RELOC_PPC64_TOC16_DS
+ -- : BFD_RELOC_PPC64_TOC16_LO_DS
+ -- : BFD_RELOC_PPC64_PLTGOT16_DS
+ -- : BFD_RELOC_PPC64_PLTGOT16_LO_DS
+ Power(rs6000) and PowerPC relocations.
+
+ -- : BFD_RELOC_PPC_TLS
+ -- : BFD_RELOC_PPC_TLSGD
+ -- : BFD_RELOC_PPC_TLSLD
+ -- : BFD_RELOC_PPC_DTPMOD
+ -- : BFD_RELOC_PPC_TPREL16
+ -- : BFD_RELOC_PPC_TPREL16_LO
+ -- : BFD_RELOC_PPC_TPREL16_HI
+ -- : BFD_RELOC_PPC_TPREL16_HA
+ -- : BFD_RELOC_PPC_TPREL
+ -- : BFD_RELOC_PPC_DTPREL16
+ -- : BFD_RELOC_PPC_DTPREL16_LO
+ -- : BFD_RELOC_PPC_DTPREL16_HI
+ -- : BFD_RELOC_PPC_DTPREL16_HA
+ -- : BFD_RELOC_PPC_DTPREL
+ -- : BFD_RELOC_PPC_GOT_TLSGD16
+ -- : BFD_RELOC_PPC_GOT_TLSGD16_LO
+ -- : BFD_RELOC_PPC_GOT_TLSGD16_HI
+ -- : BFD_RELOC_PPC_GOT_TLSGD16_HA
+ -- : BFD_RELOC_PPC_GOT_TLSLD16
+ -- : BFD_RELOC_PPC_GOT_TLSLD16_LO
+ -- : BFD_RELOC_PPC_GOT_TLSLD16_HI
+ -- : BFD_RELOC_PPC_GOT_TLSLD16_HA
+ -- : BFD_RELOC_PPC_GOT_TPREL16
+ -- : BFD_RELOC_PPC_GOT_TPREL16_LO
+ -- : BFD_RELOC_PPC_GOT_TPREL16_HI
+ -- : BFD_RELOC_PPC_GOT_TPREL16_HA
+ -- : BFD_RELOC_PPC_GOT_DTPREL16
+ -- : BFD_RELOC_PPC_GOT_DTPREL16_LO
+ -- : BFD_RELOC_PPC_GOT_DTPREL16_HI
+ -- : BFD_RELOC_PPC_GOT_DTPREL16_HA
+ -- : BFD_RELOC_PPC64_TPREL16_DS
+ -- : BFD_RELOC_PPC64_TPREL16_LO_DS
+ -- : BFD_RELOC_PPC64_TPREL16_HIGHER
+ -- : BFD_RELOC_PPC64_TPREL16_HIGHERA
+ -- : BFD_RELOC_PPC64_TPREL16_HIGHEST
+ -- : BFD_RELOC_PPC64_TPREL16_HIGHESTA
+ -- : BFD_RELOC_PPC64_DTPREL16_DS
+ -- : BFD_RELOC_PPC64_DTPREL16_LO_DS
+ -- : BFD_RELOC_PPC64_DTPREL16_HIGHER
+ -- : BFD_RELOC_PPC64_DTPREL16_HIGHERA
+ -- : BFD_RELOC_PPC64_DTPREL16_HIGHEST
+ -- : BFD_RELOC_PPC64_DTPREL16_HIGHESTA
+ PowerPC and PowerPC64 thread-local storage relocations.
+
+ -- : BFD_RELOC_I370_D12
+ IBM 370/390 relocations
+
+ -- : BFD_RELOC_CTOR
+ The type of reloc used to build a constructor table - at the moment
+ probably a 32 bit wide absolute relocation, but the target can
+ choose. It generally does map to one of the other relocation
+ types.
+
+ -- : BFD_RELOC_ARM_PCREL_BRANCH
+ ARM 26 bit pc-relative branch. The lowest two bits must be zero
+ and are not stored in the instruction.
+
+ -- : BFD_RELOC_ARM_PCREL_BLX
+ ARM 26 bit pc-relative branch. The lowest bit must be zero and is
+ not stored in the instruction. The 2nd lowest bit comes from a 1
+ bit field in the instruction.
+
+ -- : BFD_RELOC_THUMB_PCREL_BLX
+ Thumb 22 bit pc-relative branch. The lowest bit must be zero and
+ is not stored in the instruction. The 2nd lowest bit comes from a
+ 1 bit field in the instruction.
+
+ -- : BFD_RELOC_ARM_PCREL_CALL
+ ARM 26-bit pc-relative branch for an unconditional BL or BLX
+ instruction.
+
+ -- : BFD_RELOC_ARM_PCREL_JUMP
+ ARM 26-bit pc-relative branch for B or conditional BL instruction.
+
+ -- : BFD_RELOC_THUMB_PCREL_BRANCH7
+ -- : BFD_RELOC_THUMB_PCREL_BRANCH9
+ -- : BFD_RELOC_THUMB_PCREL_BRANCH12
+ -- : BFD_RELOC_THUMB_PCREL_BRANCH20
+ -- : BFD_RELOC_THUMB_PCREL_BRANCH23
+ -- : BFD_RELOC_THUMB_PCREL_BRANCH25
+ Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches. The
+ lowest bit must be zero and is not stored in the instruction.
+ Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
+ "nn" one smaller in all cases. Note further that BRANCH23
+ corresponds to R_ARM_THM_CALL.
+
+ -- : BFD_RELOC_ARM_OFFSET_IMM
+ 12-bit immediate offset, used in ARM-format ldr and str
+ instructions.
+
+ -- : BFD_RELOC_ARM_THUMB_OFFSET
+ 5-bit immediate offset, used in Thumb-format ldr and str
+ instructions.
+
+ -- : BFD_RELOC_ARM_TARGET1
+ Pc-relative or absolute relocation depending on target. Used for
+ entries in .init_array sections.
+
+ -- : BFD_RELOC_ARM_ROSEGREL32
+ Read-only segment base relative address.
+
+ -- : BFD_RELOC_ARM_SBREL32
+ Data segment base relative address.
+
+ -- : BFD_RELOC_ARM_TARGET2
+ This reloc is used for references to RTTI data from exception
+ handling tables. The actual definition depends on the target. It
+ may be a pc-relative or some form of GOT-indirect relocation.
+
+ -- : BFD_RELOC_ARM_PREL31
+ 31-bit PC relative address.
+
+ -- : BFD_RELOC_ARM_MOVW
+ -- : BFD_RELOC_ARM_MOVT
+ -- : BFD_RELOC_ARM_MOVW_PCREL
+ -- : BFD_RELOC_ARM_MOVT_PCREL
+ -- : BFD_RELOC_ARM_THUMB_MOVW
+ -- : BFD_RELOC_ARM_THUMB_MOVT
+ -- : BFD_RELOC_ARM_THUMB_MOVW_PCREL
+ -- : BFD_RELOC_ARM_THUMB_MOVT_PCREL
+ Low and High halfword relocations for MOVW and MOVT instructions.
+
+ -- : BFD_RELOC_ARM_JUMP_SLOT
+ -- : BFD_RELOC_ARM_GLOB_DAT
+ -- : BFD_RELOC_ARM_GOT32
+ -- : BFD_RELOC_ARM_PLT32
+ -- : BFD_RELOC_ARM_RELATIVE
+ -- : BFD_RELOC_ARM_GOTOFF
+ -- : BFD_RELOC_ARM_GOTPC
+ -- : BFD_RELOC_ARM_GOT_PREL
+ Relocations for setting up GOTs and PLTs for shared libraries.
+
+ -- : BFD_RELOC_ARM_TLS_GD32
+ -- : BFD_RELOC_ARM_TLS_LDO32
+ -- : BFD_RELOC_ARM_TLS_LDM32
+ -- : BFD_RELOC_ARM_TLS_DTPOFF32
+ -- : BFD_RELOC_ARM_TLS_DTPMOD32
+ -- : BFD_RELOC_ARM_TLS_TPOFF32
+ -- : BFD_RELOC_ARM_TLS_IE32
+ -- : BFD_RELOC_ARM_TLS_LE32
+ -- : BFD_RELOC_ARM_TLS_GOTDESC
+ -- : BFD_RELOC_ARM_TLS_CALL
+ -- : BFD_RELOC_ARM_THM_TLS_CALL
+ -- : BFD_RELOC_ARM_TLS_DESCSEQ
+ -- : BFD_RELOC_ARM_THM_TLS_DESCSEQ
+ -- : BFD_RELOC_ARM_TLS_DESC
+ ARM thread-local storage relocations.
+
+ -- : BFD_RELOC_ARM_ALU_PC_G0_NC
+ -- : BFD_RELOC_ARM_ALU_PC_G0
+ -- : BFD_RELOC_ARM_ALU_PC_G1_NC
+ -- : BFD_RELOC_ARM_ALU_PC_G1
+ -- : BFD_RELOC_ARM_ALU_PC_G2
+ -- : BFD_RELOC_ARM_LDR_PC_G0
+ -- : BFD_RELOC_ARM_LDR_PC_G1
+ -- : BFD_RELOC_ARM_LDR_PC_G2
+ -- : BFD_RELOC_ARM_LDRS_PC_G0
+ -- : BFD_RELOC_ARM_LDRS_PC_G1
+ -- : BFD_RELOC_ARM_LDRS_PC_G2
+ -- : BFD_RELOC_ARM_LDC_PC_G0
+ -- : BFD_RELOC_ARM_LDC_PC_G1
+ -- : BFD_RELOC_ARM_LDC_PC_G2
+ -- : BFD_RELOC_ARM_ALU_SB_G0_NC
+ -- : BFD_RELOC_ARM_ALU_SB_G0
+ -- : BFD_RELOC_ARM_ALU_SB_G1_NC
+ -- : BFD_RELOC_ARM_ALU_SB_G1
+ -- : BFD_RELOC_ARM_ALU_SB_G2
+ -- : BFD_RELOC_ARM_LDR_SB_G0
+ -- : BFD_RELOC_ARM_LDR_SB_G1
+ -- : BFD_RELOC_ARM_LDR_SB_G2
+ -- : BFD_RELOC_ARM_LDRS_SB_G0
+ -- : BFD_RELOC_ARM_LDRS_SB_G1
+ -- : BFD_RELOC_ARM_LDRS_SB_G2
+ -- : BFD_RELOC_ARM_LDC_SB_G0
+ -- : BFD_RELOC_ARM_LDC_SB_G1
+ -- : BFD_RELOC_ARM_LDC_SB_G2
+ ARM group relocations.
+
+ -- : BFD_RELOC_ARM_V4BX
+ Annotation of BX instructions.
+
+ -- : BFD_RELOC_ARM_IRELATIVE
+ ARM support for STT_GNU_IFUNC.
+
+ -- : BFD_RELOC_ARM_IMMEDIATE
+ -- : BFD_RELOC_ARM_ADRL_IMMEDIATE
+ -- : BFD_RELOC_ARM_T32_IMMEDIATE
+ -- : BFD_RELOC_ARM_T32_ADD_IMM
+ -- : BFD_RELOC_ARM_T32_IMM12
+ -- : BFD_RELOC_ARM_T32_ADD_PC12
+ -- : BFD_RELOC_ARM_SHIFT_IMM
+ -- : BFD_RELOC_ARM_SMC
+ -- : BFD_RELOC_ARM_HVC
+ -- : BFD_RELOC_ARM_SWI
+ -- : BFD_RELOC_ARM_MULTI
+ -- : BFD_RELOC_ARM_CP_OFF_IMM
+ -- : BFD_RELOC_ARM_CP_OFF_IMM_S2
+ -- : BFD_RELOC_ARM_T32_CP_OFF_IMM
+ -- : BFD_RELOC_ARM_T32_CP_OFF_IMM_S2
+ -- : BFD_RELOC_ARM_ADR_IMM
+ -- : BFD_RELOC_ARM_LDR_IMM
+ -- : BFD_RELOC_ARM_LITERAL
+ -- : BFD_RELOC_ARM_IN_POOL
+ -- : BFD_RELOC_ARM_OFFSET_IMM8
+ -- : BFD_RELOC_ARM_T32_OFFSET_U8
+ -- : BFD_RELOC_ARM_T32_OFFSET_IMM
+ -- : BFD_RELOC_ARM_HWLITERAL
+ -- : BFD_RELOC_ARM_THUMB_ADD
+ -- : BFD_RELOC_ARM_THUMB_IMM
+ -- : BFD_RELOC_ARM_THUMB_SHIFT
+ These relocs are only used within the ARM assembler. They are not
+ (at present) written to any object files.
+
+ -- : BFD_RELOC_SH_PCDISP8BY2
+ -- : BFD_RELOC_SH_PCDISP12BY2
+ -- : BFD_RELOC_SH_IMM3
+ -- : BFD_RELOC_SH_IMM3U
+ -- : BFD_RELOC_SH_DISP12
+ -- : BFD_RELOC_SH_DISP12BY2
+ -- : BFD_RELOC_SH_DISP12BY4
+ -- : BFD_RELOC_SH_DISP12BY8
+ -- : BFD_RELOC_SH_DISP20
+ -- : BFD_RELOC_SH_DISP20BY8
+ -- : BFD_RELOC_SH_IMM4
+ -- : BFD_RELOC_SH_IMM4BY2
+ -- : BFD_RELOC_SH_IMM4BY4
+ -- : BFD_RELOC_SH_IMM8
+ -- : BFD_RELOC_SH_IMM8BY2
+ -- : BFD_RELOC_SH_IMM8BY4
+ -- : BFD_RELOC_SH_PCRELIMM8BY2
+ -- : BFD_RELOC_SH_PCRELIMM8BY4
+ -- : BFD_RELOC_SH_SWITCH16
+ -- : BFD_RELOC_SH_SWITCH32
+ -- : BFD_RELOC_SH_USES
+ -- : BFD_RELOC_SH_COUNT
+ -- : BFD_RELOC_SH_ALIGN
+ -- : BFD_RELOC_SH_CODE
+ -- : BFD_RELOC_SH_DATA
+ -- : BFD_RELOC_SH_LABEL
+ -- : BFD_RELOC_SH_LOOP_START
+ -- : BFD_RELOC_SH_LOOP_END
+ -- : BFD_RELOC_SH_COPY
+ -- : BFD_RELOC_SH_GLOB_DAT
+ -- : BFD_RELOC_SH_JMP_SLOT
+ -- : BFD_RELOC_SH_RELATIVE
+ -- : BFD_RELOC_SH_GOTPC
+ -- : BFD_RELOC_SH_GOT_LOW16
+ -- : BFD_RELOC_SH_GOT_MEDLOW16
+ -- : BFD_RELOC_SH_GOT_MEDHI16
+ -- : BFD_RELOC_SH_GOT_HI16
+ -- : BFD_RELOC_SH_GOTPLT_LOW16
+ -- : BFD_RELOC_SH_GOTPLT_MEDLOW16
+ -- : BFD_RELOC_SH_GOTPLT_MEDHI16
+ -- : BFD_RELOC_SH_GOTPLT_HI16
+ -- : BFD_RELOC_SH_PLT_LOW16
+ -- : BFD_RELOC_SH_PLT_MEDLOW16
+ -- : BFD_RELOC_SH_PLT_MEDHI16
+ -- : BFD_RELOC_SH_PLT_HI16
+ -- : BFD_RELOC_SH_GOTOFF_LOW16
+ -- : BFD_RELOC_SH_GOTOFF_MEDLOW16
+ -- : BFD_RELOC_SH_GOTOFF_MEDHI16
+ -- : BFD_RELOC_SH_GOTOFF_HI16
+ -- : BFD_RELOC_SH_GOTPC_LOW16
+ -- : BFD_RELOC_SH_GOTPC_MEDLOW16
+ -- : BFD_RELOC_SH_GOTPC_MEDHI16
+ -- : BFD_RELOC_SH_GOTPC_HI16
+ -- : BFD_RELOC_SH_COPY64
+ -- : BFD_RELOC_SH_GLOB_DAT64
+ -- : BFD_RELOC_SH_JMP_SLOT64
+ -- : BFD_RELOC_SH_RELATIVE64
+ -- : BFD_RELOC_SH_GOT10BY4
+ -- : BFD_RELOC_SH_GOT10BY8
+ -- : BFD_RELOC_SH_GOTPLT10BY4
+ -- : BFD_RELOC_SH_GOTPLT10BY8
+ -- : BFD_RELOC_SH_GOTPLT32
+ -- : BFD_RELOC_SH_SHMEDIA_CODE
+ -- : BFD_RELOC_SH_IMMU5
+ -- : BFD_RELOC_SH_IMMS6
+ -- : BFD_RELOC_SH_IMMS6BY32
+ -- : BFD_RELOC_SH_IMMU6
+ -- : BFD_RELOC_SH_IMMS10
+ -- : BFD_RELOC_SH_IMMS10BY2
+ -- : BFD_RELOC_SH_IMMS10BY4
+ -- : BFD_RELOC_SH_IMMS10BY8
+ -- : BFD_RELOC_SH_IMMS16
+ -- : BFD_RELOC_SH_IMMU16
+ -- : BFD_RELOC_SH_IMM_LOW16
+ -- : BFD_RELOC_SH_IMM_LOW16_PCREL
+ -- : BFD_RELOC_SH_IMM_MEDLOW16
+ -- : BFD_RELOC_SH_IMM_MEDLOW16_PCREL
+ -- : BFD_RELOC_SH_IMM_MEDHI16
+ -- : BFD_RELOC_SH_IMM_MEDHI16_PCREL
+ -- : BFD_RELOC_SH_IMM_HI16
+ -- : BFD_RELOC_SH_IMM_HI16_PCREL
+ -- : BFD_RELOC_SH_PT_16
+ -- : BFD_RELOC_SH_TLS_GD_32
+ -- : BFD_RELOC_SH_TLS_LD_32
+ -- : BFD_RELOC_SH_TLS_LDO_32
+ -- : BFD_RELOC_SH_TLS_IE_32
+ -- : BFD_RELOC_SH_TLS_LE_32
+ -- : BFD_RELOC_SH_TLS_DTPMOD32
+ -- : BFD_RELOC_SH_TLS_DTPOFF32
+ -- : BFD_RELOC_SH_TLS_TPOFF32
+ -- : BFD_RELOC_SH_GOT20
+ -- : BFD_RELOC_SH_GOTOFF20
+ -- : BFD_RELOC_SH_GOTFUNCDESC
+ -- : BFD_RELOC_SH_GOTFUNCDESC20
+ -- : BFD_RELOC_SH_GOTOFFFUNCDESC
+ -- : BFD_RELOC_SH_GOTOFFFUNCDESC20
+ -- : BFD_RELOC_SH_FUNCDESC
+ Renesas / SuperH SH relocs. Not all of these appear in object
+ files.
+
+ -- : BFD_RELOC_ARC_B22_PCREL
+ ARC Cores relocs. ARC 22 bit pc-relative branch. The lowest two
+ bits must be zero and are not stored in the instruction. The high
+ 20 bits are installed in bits 26 through 7 of the instruction.
+
+ -- : BFD_RELOC_ARC_B26
+ ARC 26 bit absolute branch. The lowest two bits must be zero and
+ are not stored in the instruction. The high 24 bits are installed
+ in bits 23 through 0.
+
+ -- : BFD_RELOC_BFIN_16_IMM
+ ADI Blackfin 16 bit immediate absolute reloc.
+
+ -- : BFD_RELOC_BFIN_16_HIGH
+ ADI Blackfin 16 bit immediate absolute reloc higher 16 bits.
+
+ -- : BFD_RELOC_BFIN_4_PCREL
+ ADI Blackfin 'a' part of LSETUP.
+
+ -- : BFD_RELOC_BFIN_5_PCREL
+ ADI Blackfin.
+
+ -- : BFD_RELOC_BFIN_16_LOW
+ ADI Blackfin 16 bit immediate absolute reloc lower 16 bits.
+
+ -- : BFD_RELOC_BFIN_10_PCREL
+ ADI Blackfin.
+
+ -- : BFD_RELOC_BFIN_11_PCREL
+ ADI Blackfin 'b' part of LSETUP.
+
+ -- : BFD_RELOC_BFIN_12_PCREL_JUMP
+ ADI Blackfin.
+
+ -- : BFD_RELOC_BFIN_12_PCREL_JUMP_S
+ ADI Blackfin Short jump, pcrel.
+
+ -- : BFD_RELOC_BFIN_24_PCREL_CALL_X
+ ADI Blackfin Call.x not implemented.
+
+ -- : BFD_RELOC_BFIN_24_PCREL_JUMP_L
+ ADI Blackfin Long Jump pcrel.
+
+ -- : BFD_RELOC_BFIN_GOT17M4
+ -- : BFD_RELOC_BFIN_GOTHI
+ -- : BFD_RELOC_BFIN_GOTLO
+ -- : BFD_RELOC_BFIN_FUNCDESC
+ -- : BFD_RELOC_BFIN_FUNCDESC_GOT17M4
+ -- : BFD_RELOC_BFIN_FUNCDESC_GOTHI
+ -- : BFD_RELOC_BFIN_FUNCDESC_GOTLO
+ -- : BFD_RELOC_BFIN_FUNCDESC_VALUE
+ -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4
+ -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI
+ -- : BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO
+ -- : BFD_RELOC_BFIN_GOTOFF17M4
+ -- : BFD_RELOC_BFIN_GOTOFFHI
+ -- : BFD_RELOC_BFIN_GOTOFFLO
+ ADI Blackfin FD-PIC relocations.
+
+ -- : BFD_RELOC_BFIN_GOT
+ ADI Blackfin GOT relocation.
+
+ -- : BFD_RELOC_BFIN_PLTPC
+ ADI Blackfin PLTPC relocation.
+
+ -- : BFD_ARELOC_BFIN_PUSH
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_CONST
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_ADD
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_SUB
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_MULT
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_DIV
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_MOD
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_LSHIFT
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_RSHIFT
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_AND
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_OR
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_XOR
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_LAND
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_LOR
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_LEN
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_NEG
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_COMP
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_PAGE
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_HWPAGE
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_ARELOC_BFIN_ADDR
+ ADI Blackfin arithmetic relocation.
+
+ -- : BFD_RELOC_D10V_10_PCREL_R
+ Mitsubishi D10V relocs. This is a 10-bit reloc with the right 2
+ bits assumed to be 0.
+
+ -- : BFD_RELOC_D10V_10_PCREL_L
+ Mitsubishi D10V relocs. This is a 10-bit reloc with the right 2
+ bits assumed to be 0. This is the same as the previous reloc
+ except it is in the left container, i.e., shifted left 15 bits.
+
+ -- : BFD_RELOC_D10V_18
+ This is an 18-bit reloc with the right 2 bits assumed to be 0.
+
+ -- : BFD_RELOC_D10V_18_PCREL
+ This is an 18-bit reloc with the right 2 bits assumed to be 0.
+
+ -- : BFD_RELOC_D30V_6
+ Mitsubishi D30V relocs. This is a 6-bit absolute reloc.
+
+ -- : BFD_RELOC_D30V_9_PCREL
+ This is a 6-bit pc-relative reloc with the right 3 bits assumed to
+ be 0.
+
+ -- : BFD_RELOC_D30V_9_PCREL_R
+ This is a 6-bit pc-relative reloc with the right 3 bits assumed to
+ be 0. Same as the previous reloc but on the right side of the
+ container.
+
+ -- : BFD_RELOC_D30V_15
+ This is a 12-bit absolute reloc with the right 3 bitsassumed to be
+ 0.
+
+ -- : BFD_RELOC_D30V_15_PCREL
+ This is a 12-bit pc-relative reloc with the right 3 bits assumed
+ to be 0.
+
+ -- : BFD_RELOC_D30V_15_PCREL_R
+ This is a 12-bit pc-relative reloc with the right 3 bits assumed
+ to be 0. Same as the previous reloc but on the right side of the
+ container.
+
+ -- : BFD_RELOC_D30V_21
+ This is an 18-bit absolute reloc with the right 3 bits assumed to
+ be 0.
+
+ -- : BFD_RELOC_D30V_21_PCREL
+ This is an 18-bit pc-relative reloc with the right 3 bits assumed
+ to be 0.
+
+ -- : BFD_RELOC_D30V_21_PCREL_R
+ This is an 18-bit pc-relative reloc with the right 3 bits assumed
+ to be 0. Same as the previous reloc but on the right side of the
+ container.
+
+ -- : BFD_RELOC_D30V_32
+ This is a 32-bit absolute reloc.
+
+ -- : BFD_RELOC_D30V_32_PCREL
+ This is a 32-bit pc-relative reloc.
+
+ -- : BFD_RELOC_DLX_HI16_S
+ DLX relocs
+
+ -- : BFD_RELOC_DLX_LO16
+ DLX relocs
+
+ -- : BFD_RELOC_DLX_JMP26
+ DLX relocs
+
+ -- : BFD_RELOC_M32C_HI8
+ -- : BFD_RELOC_M32C_RL_JUMP
+ -- : BFD_RELOC_M32C_RL_1ADDR
+ -- : BFD_RELOC_M32C_RL_2ADDR
+ Renesas M16C/M32C Relocations.
+
+ -- : BFD_RELOC_M32R_24
+ Renesas M32R (formerly Mitsubishi M32R) relocs. This is a 24 bit
+ absolute address.
+
+ -- : BFD_RELOC_M32R_10_PCREL
+ This is a 10-bit pc-relative reloc with the right 2 bits assumed
+ to be 0.
+
+ -- : BFD_RELOC_M32R_18_PCREL
+ This is an 18-bit reloc with the right 2 bits assumed to be 0.
+
+ -- : BFD_RELOC_M32R_26_PCREL
+ This is a 26-bit reloc with the right 2 bits assumed to be 0.
+
+ -- : BFD_RELOC_M32R_HI16_ULO
+ This is a 16-bit reloc containing the high 16 bits of an address
+ used when the lower 16 bits are treated as unsigned.
+
+ -- : BFD_RELOC_M32R_HI16_SLO
+ This is a 16-bit reloc containing the high 16 bits of an address
+ used when the lower 16 bits are treated as signed.
+
+ -- : BFD_RELOC_M32R_LO16
+ This is a 16-bit reloc containing the lower 16 bits of an address.
+
+ -- : BFD_RELOC_M32R_SDA16
+ This is a 16-bit reloc containing the small data area offset for
+ use in add3, load, and store instructions.
+
+ -- : BFD_RELOC_M32R_GOT24
+ -- : BFD_RELOC_M32R_26_PLTREL
+ -- : BFD_RELOC_M32R_COPY
+ -- : BFD_RELOC_M32R_GLOB_DAT
+ -- : BFD_RELOC_M32R_JMP_SLOT
+ -- : BFD_RELOC_M32R_RELATIVE
+ -- : BFD_RELOC_M32R_GOTOFF
+ -- : BFD_RELOC_M32R_GOTOFF_HI_ULO
+ -- : BFD_RELOC_M32R_GOTOFF_HI_SLO
+ -- : BFD_RELOC_M32R_GOTOFF_LO
+ -- : BFD_RELOC_M32R_GOTPC24
+ -- : BFD_RELOC_M32R_GOT16_HI_ULO
+ -- : BFD_RELOC_M32R_GOT16_HI_SLO
+ -- : BFD_RELOC_M32R_GOT16_LO
+ -- : BFD_RELOC_M32R_GOTPC_HI_ULO
+ -- : BFD_RELOC_M32R_GOTPC_HI_SLO
+ -- : BFD_RELOC_M32R_GOTPC_LO
+ For PIC.
+
+ -- : BFD_RELOC_V850_9_PCREL
+ This is a 9-bit reloc
+
+ -- : BFD_RELOC_V850_22_PCREL
+ This is a 22-bit reloc
+
+ -- : BFD_RELOC_V850_SDA_16_16_OFFSET
+ This is a 16 bit offset from the short data area pointer.
+
+ -- : BFD_RELOC_V850_SDA_15_16_OFFSET
+ This is a 16 bit offset (of which only 15 bits are used) from the
+ short data area pointer.
+
+ -- : BFD_RELOC_V850_ZDA_16_16_OFFSET
+ This is a 16 bit offset from the zero data area pointer.
+
+ -- : BFD_RELOC_V850_ZDA_15_16_OFFSET
+ This is a 16 bit offset (of which only 15 bits are used) from the
+ zero data area pointer.
+
+ -- : BFD_RELOC_V850_TDA_6_8_OFFSET
+ This is an 8 bit offset (of which only 6 bits are used) from the
+ tiny data area pointer.
+
+ -- : BFD_RELOC_V850_TDA_7_8_OFFSET
+ This is an 8bit offset (of which only 7 bits are used) from the
+ tiny data area pointer.
+
+ -- : BFD_RELOC_V850_TDA_7_7_OFFSET
+ This is a 7 bit offset from the tiny data area pointer.
+
+ -- : BFD_RELOC_V850_TDA_16_16_OFFSET
+ This is a 16 bit offset from the tiny data area pointer.
+
+ -- : BFD_RELOC_V850_TDA_4_5_OFFSET
+ This is a 5 bit offset (of which only 4 bits are used) from the
+ tiny data area pointer.
+
+ -- : BFD_RELOC_V850_TDA_4_4_OFFSET
+ This is a 4 bit offset from the tiny data area pointer.
+
+ -- : BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET
+ This is a 16 bit offset from the short data area pointer, with the
+ bits placed non-contiguously in the instruction.
+
+ -- : BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET
+ This is a 16 bit offset from the zero data area pointer, with the
+ bits placed non-contiguously in the instruction.
+
+ -- : BFD_RELOC_V850_CALLT_6_7_OFFSET
+ This is a 6 bit offset from the call table base pointer.
+
+ -- : BFD_RELOC_V850_CALLT_16_16_OFFSET
+ This is a 16 bit offset from the call table base pointer.
+
+ -- : BFD_RELOC_V850_LONGCALL
+ Used for relaxing indirect function calls.
+
+ -- : BFD_RELOC_V850_LONGJUMP
+ Used for relaxing indirect jumps.
+
+ -- : BFD_RELOC_V850_ALIGN
+ Used to maintain alignment whilst relaxing.
+
+ -- : BFD_RELOC_V850_LO16_SPLIT_OFFSET
+ This is a variation of BFD_RELOC_LO16 that can be used in v850e
+ ld.bu instructions.
+
+ -- : BFD_RELOC_V850_16_PCREL
+ This is a 16-bit reloc.
+
+ -- : BFD_RELOC_V850_17_PCREL
+ This is a 17-bit reloc.
+
+ -- : BFD_RELOC_V850_23
+ This is a 23-bit reloc.
+
+ -- : BFD_RELOC_V850_32_PCREL
+ This is a 32-bit reloc.
+
+ -- : BFD_RELOC_V850_32_ABS
+ This is a 32-bit reloc.
+
+ -- : BFD_RELOC_V850_16_SPLIT_OFFSET
+ This is a 16-bit reloc.
+
+ -- : BFD_RELOC_V850_16_S1
+ This is a 16-bit reloc.
+
+ -- : BFD_RELOC_V850_LO16_S1
+ Low 16 bits. 16 bit shifted by 1.
+
+ -- : BFD_RELOC_V850_CALLT_15_16_OFFSET
+ This is a 16 bit offset from the call table base pointer.
+
+ -- : BFD_RELOC_V850_32_GOTPCREL
+ DSO relocations.
+
+ -- : BFD_RELOC_V850_16_GOT
+ DSO relocations.
+
+ -- : BFD_RELOC_V850_32_GOT
+ DSO relocations.
+
+ -- : BFD_RELOC_V850_22_PLT_PCREL
+ DSO relocations.
+
+ -- : BFD_RELOC_V850_32_PLT_PCREL
+ DSO relocations.
+
+ -- : BFD_RELOC_V850_COPY
+ DSO relocations.
+
+ -- : BFD_RELOC_V850_GLOB_DAT
+ DSO relocations.
+
+ -- : BFD_RELOC_V850_JMP_SLOT
+ DSO relocations.
+
+ -- : BFD_RELOC_V850_RELATIVE
+ DSO relocations.
+
+ -- : BFD_RELOC_V850_16_GOTOFF
+ DSO relocations.
+
+ -- : BFD_RELOC_V850_32_GOTOFF
+ DSO relocations.
+
+ -- : BFD_RELOC_V850_CODE
+ start code.
+
+ -- : BFD_RELOC_V850_DATA
+ start data in text.
+
+ -- : BFD_RELOC_MN10300_32_PCREL
+ This is a 32bit pcrel reloc for the mn10300, offset by two bytes
+ in the instruction.
+
+ -- : BFD_RELOC_MN10300_16_PCREL
+ This is a 16bit pcrel reloc for the mn10300, offset by two bytes
+ in the instruction.
+
+ -- : BFD_RELOC_TIC30_LDP
+ This is a 8bit DP reloc for the tms320c30, where the most
+ significant 8 bits of a 24 bit word are placed into the least
+ significant 8 bits of the opcode.
+
+ -- : BFD_RELOC_TIC54X_PARTLS7
+ This is a 7bit reloc for the tms320c54x, where the least
+ significant 7 bits of a 16 bit word are placed into the least
+ significant 7 bits of the opcode.
+
+ -- : BFD_RELOC_TIC54X_PARTMS9
+ This is a 9bit DP reloc for the tms320c54x, where the most
+ significant 9 bits of a 16 bit word are placed into the least
+ significant 9 bits of the opcode.
+
+ -- : BFD_RELOC_TIC54X_23
+ This is an extended address 23-bit reloc for the tms320c54x.
+
+ -- : BFD_RELOC_TIC54X_16_OF_23
+ This is a 16-bit reloc for the tms320c54x, where the least
+ significant 16 bits of a 23-bit extended address are placed into
+ the opcode.
+
+ -- : BFD_RELOC_TIC54X_MS7_OF_23
+ This is a reloc for the tms320c54x, where the most significant 7
+ bits of a 23-bit extended address are placed into the opcode.
+
+ -- : BFD_RELOC_C6000_PCR_S21
+ -- : BFD_RELOC_C6000_PCR_S12
+ -- : BFD_RELOC_C6000_PCR_S10
+ -- : BFD_RELOC_C6000_PCR_S7
+ -- : BFD_RELOC_C6000_ABS_S16
+ -- : BFD_RELOC_C6000_ABS_L16
+ -- : BFD_RELOC_C6000_ABS_H16
+ -- : BFD_RELOC_C6000_SBR_U15_B
+ -- : BFD_RELOC_C6000_SBR_U15_H
+ -- : BFD_RELOC_C6000_SBR_U15_W
+ -- : BFD_RELOC_C6000_SBR_S16
+ -- : BFD_RELOC_C6000_SBR_L16_B
+ -- : BFD_RELOC_C6000_SBR_L16_H
+ -- : BFD_RELOC_C6000_SBR_L16_W
+ -- : BFD_RELOC_C6000_SBR_H16_B
+ -- : BFD_RELOC_C6000_SBR_H16_H
+ -- : BFD_RELOC_C6000_SBR_H16_W
+ -- : BFD_RELOC_C6000_SBR_GOT_U15_W
+ -- : BFD_RELOC_C6000_SBR_GOT_L16_W
+ -- : BFD_RELOC_C6000_SBR_GOT_H16_W
+ -- : BFD_RELOC_C6000_DSBT_INDEX
+ -- : BFD_RELOC_C6000_PREL31
+ -- : BFD_RELOC_C6000_COPY
+ -- : BFD_RELOC_C6000_JUMP_SLOT
+ -- : BFD_RELOC_C6000_EHTYPE
+ -- : BFD_RELOC_C6000_PCR_H16
+ -- : BFD_RELOC_C6000_PCR_L16
+ -- : BFD_RELOC_C6000_ALIGN
+ -- : BFD_RELOC_C6000_FPHEAD
+ -- : BFD_RELOC_C6000_NOCMP
+ TMS320C6000 relocations.
+
+ -- : BFD_RELOC_FR30_48
+ This is a 48 bit reloc for the FR30 that stores 32 bits.
+
+ -- : BFD_RELOC_FR30_20
+ This is a 32 bit reloc for the FR30 that stores 20 bits split up
+ into two sections.
+
+ -- : BFD_RELOC_FR30_6_IN_4
+ This is a 16 bit reloc for the FR30 that stores a 6 bit word
+ offset in 4 bits.
+
+ -- : BFD_RELOC_FR30_8_IN_8
+ This is a 16 bit reloc for the FR30 that stores an 8 bit byte
+ offset into 8 bits.
+
+ -- : BFD_RELOC_FR30_9_IN_8
+ This is a 16 bit reloc for the FR30 that stores a 9 bit short
+ offset into 8 bits.
+
+ -- : BFD_RELOC_FR30_10_IN_8
+ This is a 16 bit reloc for the FR30 that stores a 10 bit word
+ offset into 8 bits.
+
+ -- : BFD_RELOC_FR30_9_PCREL
+ This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
+ short offset into 8 bits.
+
+ -- : BFD_RELOC_FR30_12_PCREL
+ This is a 16 bit reloc for the FR30 that stores a 12 bit pc
+ relative short offset into 11 bits.
+
+ -- : BFD_RELOC_MCORE_PCREL_IMM8BY4
+ -- : BFD_RELOC_MCORE_PCREL_IMM11BY2
+ -- : BFD_RELOC_MCORE_PCREL_IMM4BY2
+ -- : BFD_RELOC_MCORE_PCREL_32
+ -- : BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2
+ -- : BFD_RELOC_MCORE_RVA
+ Motorola Mcore relocations.
+
+ -- : BFD_RELOC_MEP_8
+ -- : BFD_RELOC_MEP_16
+ -- : BFD_RELOC_MEP_32
+ -- : BFD_RELOC_MEP_PCREL8A2
+ -- : BFD_RELOC_MEP_PCREL12A2
+ -- : BFD_RELOC_MEP_PCREL17A2
+ -- : BFD_RELOC_MEP_PCREL24A2
+ -- : BFD_RELOC_MEP_PCABS24A2
+ -- : BFD_RELOC_MEP_LOW16
+ -- : BFD_RELOC_MEP_HI16U
+ -- : BFD_RELOC_MEP_HI16S
+ -- : BFD_RELOC_MEP_GPREL
+ -- : BFD_RELOC_MEP_TPREL
+ -- : BFD_RELOC_MEP_TPREL7
+ -- : BFD_RELOC_MEP_TPREL7A2
+ -- : BFD_RELOC_MEP_TPREL7A4
+ -- : BFD_RELOC_MEP_UIMM24
+ -- : BFD_RELOC_MEP_ADDR24A4
+ -- : BFD_RELOC_MEP_GNU_VTINHERIT
+ -- : BFD_RELOC_MEP_GNU_VTENTRY
+ Toshiba Media Processor Relocations.
+
+ -- : BFD_RELOC_MMIX_GETA
+ -- : BFD_RELOC_MMIX_GETA_1
+ -- : BFD_RELOC_MMIX_GETA_2
+ -- : BFD_RELOC_MMIX_GETA_3
+ These are relocations for the GETA instruction.
+
+ -- : BFD_RELOC_MMIX_CBRANCH
+ -- : BFD_RELOC_MMIX_CBRANCH_J
+ -- : BFD_RELOC_MMIX_CBRANCH_1
+ -- : BFD_RELOC_MMIX_CBRANCH_2
+ -- : BFD_RELOC_MMIX_CBRANCH_3
+ These are relocations for a conditional branch instruction.
+
+ -- : BFD_RELOC_MMIX_PUSHJ
+ -- : BFD_RELOC_MMIX_PUSHJ_1
+ -- : BFD_RELOC_MMIX_PUSHJ_2
+ -- : BFD_RELOC_MMIX_PUSHJ_3
+ -- : BFD_RELOC_MMIX_PUSHJ_STUBBABLE
+ These are relocations for the PUSHJ instruction.
+
+ -- : BFD_RELOC_MMIX_JMP
+ -- : BFD_RELOC_MMIX_JMP_1
+ -- : BFD_RELOC_MMIX_JMP_2
+ -- : BFD_RELOC_MMIX_JMP_3
+ These are relocations for the JMP instruction.
+
+ -- : BFD_RELOC_MMIX_ADDR19
+ This is a relocation for a relative address as in a GETA
+ instruction or a branch.
+
+ -- : BFD_RELOC_MMIX_ADDR27
+ This is a relocation for a relative address as in a JMP
+ instruction.
+
+ -- : BFD_RELOC_MMIX_REG_OR_BYTE
+ This is a relocation for an instruction field that may be a general
+ register or a value 0..255.
+
+ -- : BFD_RELOC_MMIX_REG
+ This is a relocation for an instruction field that may be a general
+ register.
+
+ -- : BFD_RELOC_MMIX_BASE_PLUS_OFFSET
+ This is a relocation for two instruction fields holding a register
+ and an offset, the equivalent of the relocation.
+
+ -- : BFD_RELOC_MMIX_LOCAL
+ This relocation is an assertion that the expression is not
+ allocated as a global register. It does not modify contents.
+
+ -- : BFD_RELOC_AVR_7_PCREL
+ This is a 16 bit reloc for the AVR that stores 8 bit pc relative
+ short offset into 7 bits.
+
+ -- : BFD_RELOC_AVR_13_PCREL
+ This is a 16 bit reloc for the AVR that stores 13 bit pc relative
+ short offset into 12 bits.
+
+ -- : BFD_RELOC_AVR_16_PM
+ This is a 16 bit reloc for the AVR that stores 17 bit value
+ (usually program memory address) into 16 bits.
+
+ -- : BFD_RELOC_AVR_LO8_LDI
+ This is a 16 bit reloc for the AVR that stores 8 bit value (usually
+ data memory address) into 8 bit immediate value of LDI insn.
+
+ -- : BFD_RELOC_AVR_HI8_LDI
+ This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
+ bit of data memory address) into 8 bit immediate value of LDI insn.
+
+ -- : BFD_RELOC_AVR_HH8_LDI
+ This is a 16 bit reloc for the AVR that stores 8 bit value (most
+ high 8 bit of program memory address) into 8 bit immediate value
+ of LDI insn.
+
+ -- : BFD_RELOC_AVR_MS8_LDI
+ This is a 16 bit reloc for the AVR that stores 8 bit value (most
+ high 8 bit of 32 bit value) into 8 bit immediate value of LDI insn.
+
+ -- : BFD_RELOC_AVR_LO8_LDI_NEG
+ This is a 16 bit reloc for the AVR that stores negated 8 bit value
+ (usually data memory address) into 8 bit immediate value of SUBI
+ insn.
+
+ -- : BFD_RELOC_AVR_HI8_LDI_NEG
+ This is a 16 bit reloc for the AVR that stores negated 8 bit value
+ (high 8 bit of data memory address) into 8 bit immediate value of
+ SUBI insn.
+
+ -- : BFD_RELOC_AVR_HH8_LDI_NEG
+ This is a 16 bit reloc for the AVR that stores negated 8 bit value
+ (most high 8 bit of program memory address) into 8 bit immediate
+ value of LDI or SUBI insn.
+
+ -- : BFD_RELOC_AVR_MS8_LDI_NEG
+ This is a 16 bit reloc for the AVR that stores negated 8 bit value
+ (msb of 32 bit value) into 8 bit immediate value of LDI insn.
+
+ -- : BFD_RELOC_AVR_LO8_LDI_PM
+ This is a 16 bit reloc for the AVR that stores 8 bit value (usually
+ command address) into 8 bit immediate value of LDI insn.
+
+ -- : BFD_RELOC_AVR_LO8_LDI_GS
+ This is a 16 bit reloc for the AVR that stores 8 bit value
+ (command address) into 8 bit immediate value of LDI insn. If the
+ address is beyond the 128k boundary, the linker inserts a jump
+ stub for this reloc in the lower 128k.
+
+ -- : BFD_RELOC_AVR_HI8_LDI_PM
+ This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
+ bit of command address) into 8 bit immediate value of LDI insn.
+
+ -- : BFD_RELOC_AVR_HI8_LDI_GS
+ This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
+ bit of command address) into 8 bit immediate value of LDI insn.
+ If the address is beyond the 128k boundary, the linker inserts a
+ jump stub for this reloc below 128k.
+
+ -- : BFD_RELOC_AVR_HH8_LDI_PM
+ This is a 16 bit reloc for the AVR that stores 8 bit value (most
+ high 8 bit of command address) into 8 bit immediate value of LDI
+ insn.
+
+ -- : BFD_RELOC_AVR_LO8_LDI_PM_NEG
+ This is a 16 bit reloc for the AVR that stores negated 8 bit value
+ (usually command address) into 8 bit immediate value of SUBI insn.
+
+ -- : BFD_RELOC_AVR_HI8_LDI_PM_NEG
+ This is a 16 bit reloc for the AVR that stores negated 8 bit value
+ (high 8 bit of 16 bit command address) into 8 bit immediate value
+ of SUBI insn.
+
+ -- : BFD_RELOC_AVR_HH8_LDI_PM_NEG
+ This is a 16 bit reloc for the AVR that stores negated 8 bit value
+ (high 6 bit of 22 bit command address) into 8 bit immediate value
+ of SUBI insn.
+
+ -- : BFD_RELOC_AVR_CALL
+ This is a 32 bit reloc for the AVR that stores 23 bit value into
+ 22 bits.
+
+ -- : BFD_RELOC_AVR_LDI
+ This is a 16 bit reloc for the AVR that stores all needed bits for
+ absolute addressing with ldi with overflow check to linktime
+
+ -- : BFD_RELOC_AVR_6
+ This is a 6 bit reloc for the AVR that stores offset for ldd/std
+ instructions
+
+ -- : BFD_RELOC_AVR_6_ADIW
+ This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
+ instructions
+
+ -- : BFD_RELOC_RX_NEG8
+ -- : BFD_RELOC_RX_NEG16
+ -- : BFD_RELOC_RX_NEG24
+ -- : BFD_RELOC_RX_NEG32
+ -- : BFD_RELOC_RX_16_OP
+ -- : BFD_RELOC_RX_24_OP
+ -- : BFD_RELOC_RX_32_OP
+ -- : BFD_RELOC_RX_8U
+ -- : BFD_RELOC_RX_16U
+ -- : BFD_RELOC_RX_24U
+ -- : BFD_RELOC_RX_DIR3U_PCREL
+ -- : BFD_RELOC_RX_DIFF
+ -- : BFD_RELOC_RX_GPRELB
+ -- : BFD_RELOC_RX_GPRELW
+ -- : BFD_RELOC_RX_GPRELL
+ -- : BFD_RELOC_RX_SYM
+ -- : BFD_RELOC_RX_OP_SUBTRACT
+ -- : BFD_RELOC_RX_OP_NEG
+ -- : BFD_RELOC_RX_ABS8
+ -- : BFD_RELOC_RX_ABS16
+ -- : BFD_RELOC_RX_ABS16_REV
+ -- : BFD_RELOC_RX_ABS32
+ -- : BFD_RELOC_RX_ABS32_REV
+ -- : BFD_RELOC_RX_ABS16U
+ -- : BFD_RELOC_RX_ABS16UW
+ -- : BFD_RELOC_RX_ABS16UL
+ -- : BFD_RELOC_RX_RELAX
+ Renesas RX Relocations.
+
+ -- : BFD_RELOC_390_12
+ Direct 12 bit.
+
+ -- : BFD_RELOC_390_GOT12
+ 12 bit GOT offset.
+
+ -- : BFD_RELOC_390_PLT32
+ 32 bit PC relative PLT address.
+
+ -- : BFD_RELOC_390_COPY
+ Copy symbol at runtime.
+
+ -- : BFD_RELOC_390_GLOB_DAT
+ Create GOT entry.
+
+ -- : BFD_RELOC_390_JMP_SLOT
+ Create PLT entry.
+
+ -- : BFD_RELOC_390_RELATIVE
+ Adjust by program base.
+
+ -- : BFD_RELOC_390_GOTPC
+ 32 bit PC relative offset to GOT.
+
+ -- : BFD_RELOC_390_GOT16
+ 16 bit GOT offset.
+
+ -- : BFD_RELOC_390_PC16DBL
+ PC relative 16 bit shifted by 1.
+
+ -- : BFD_RELOC_390_PLT16DBL
+ 16 bit PC rel. PLT shifted by 1.
+
+ -- : BFD_RELOC_390_PC32DBL
+ PC relative 32 bit shifted by 1.
+
+ -- : BFD_RELOC_390_PLT32DBL
+ 32 bit PC rel. PLT shifted by 1.
+
+ -- : BFD_RELOC_390_GOTPCDBL
+ 32 bit PC rel. GOT shifted by 1.
+
+ -- : BFD_RELOC_390_GOT64
+ 64 bit GOT offset.
+
+ -- : BFD_RELOC_390_PLT64
+ 64 bit PC relative PLT address.
+
+ -- : BFD_RELOC_390_GOTENT
+ 32 bit rel. offset to GOT entry.
+
+ -- : BFD_RELOC_390_GOTOFF64
+ 64 bit offset to GOT.
+
+ -- : BFD_RELOC_390_GOTPLT12
+ 12-bit offset to symbol-entry within GOT, with PLT handling.
+
+ -- : BFD_RELOC_390_GOTPLT16
+ 16-bit offset to symbol-entry within GOT, with PLT handling.
+
+ -- : BFD_RELOC_390_GOTPLT32
+ 32-bit offset to symbol-entry within GOT, with PLT handling.
+
+ -- : BFD_RELOC_390_GOTPLT64
+ 64-bit offset to symbol-entry within GOT, with PLT handling.
+
+ -- : BFD_RELOC_390_GOTPLTENT
+ 32-bit rel. offset to symbol-entry within GOT, with PLT handling.
+
+ -- : BFD_RELOC_390_PLTOFF16
+ 16-bit rel. offset from the GOT to a PLT entry.
+
+ -- : BFD_RELOC_390_PLTOFF32
+ 32-bit rel. offset from the GOT to a PLT entry.
+
+ -- : BFD_RELOC_390_PLTOFF64
+ 64-bit rel. offset from the GOT to a PLT entry.
+
+ -- : BFD_RELOC_390_TLS_LOAD
+ -- : BFD_RELOC_390_TLS_GDCALL
+ -- : BFD_RELOC_390_TLS_LDCALL
+ -- : BFD_RELOC_390_TLS_GD32
+ -- : BFD_RELOC_390_TLS_GD64
+ -- : BFD_RELOC_390_TLS_GOTIE12
+ -- : BFD_RELOC_390_TLS_GOTIE32
+ -- : BFD_RELOC_390_TLS_GOTIE64
+ -- : BFD_RELOC_390_TLS_LDM32
+ -- : BFD_RELOC_390_TLS_LDM64
+ -- : BFD_RELOC_390_TLS_IE32
+ -- : BFD_RELOC_390_TLS_IE64
+ -- : BFD_RELOC_390_TLS_IEENT
+ -- : BFD_RELOC_390_TLS_LE32
+ -- : BFD_RELOC_390_TLS_LE64
+ -- : BFD_RELOC_390_TLS_LDO32
+ -- : BFD_RELOC_390_TLS_LDO64
+ -- : BFD_RELOC_390_TLS_DTPMOD
+ -- : BFD_RELOC_390_TLS_DTPOFF
+ -- : BFD_RELOC_390_TLS_TPOFF
+ s390 tls relocations.
+
+ -- : BFD_RELOC_390_20
+ -- : BFD_RELOC_390_GOT20
+ -- : BFD_RELOC_390_GOTPLT20
+ -- : BFD_RELOC_390_TLS_GOTIE20
+ Long displacement extension.
+
+ -- : BFD_RELOC_SCORE_GPREL15
+ Score relocations Low 16 bit for load/store
+
+ -- : BFD_RELOC_SCORE_DUMMY2
+ -- : BFD_RELOC_SCORE_JMP
+ This is a 24-bit reloc with the right 1 bit assumed to be 0
+
+ -- : BFD_RELOC_SCORE_BRANCH
+ This is a 19-bit reloc with the right 1 bit assumed to be 0
+
+ -- : BFD_RELOC_SCORE_IMM30
+ This is a 32-bit reloc for 48-bit instructions.
+
+ -- : BFD_RELOC_SCORE_IMM32
+ This is a 32-bit reloc for 48-bit instructions.
+
+ -- : BFD_RELOC_SCORE16_JMP
+ This is a 11-bit reloc with the right 1 bit assumed to be 0
+
+ -- : BFD_RELOC_SCORE16_BRANCH
+ This is a 8-bit reloc with the right 1 bit assumed to be 0
+
+ -- : BFD_RELOC_SCORE_BCMP
+ This is a 9-bit reloc with the right 1 bit assumed to be 0
+
+ -- : BFD_RELOC_SCORE_GOT15
+ -- : BFD_RELOC_SCORE_GOT_LO16
+ -- : BFD_RELOC_SCORE_CALL15
+ -- : BFD_RELOC_SCORE_DUMMY_HI16
+ Undocumented Score relocs
+
+ -- : BFD_RELOC_IP2K_FR9
+ Scenix IP2K - 9-bit register number / data address
+
+ -- : BFD_RELOC_IP2K_BANK
+ Scenix IP2K - 4-bit register/data bank number
+
+ -- : BFD_RELOC_IP2K_ADDR16CJP
+ Scenix IP2K - low 13 bits of instruction word address
+
+ -- : BFD_RELOC_IP2K_PAGE3
+ Scenix IP2K - high 3 bits of instruction word address
+
+ -- : BFD_RELOC_IP2K_LO8DATA
+ -- : BFD_RELOC_IP2K_HI8DATA
+ -- : BFD_RELOC_IP2K_EX8DATA
+ Scenix IP2K - ext/low/high 8 bits of data address
+
+ -- : BFD_RELOC_IP2K_LO8INSN
+ -- : BFD_RELOC_IP2K_HI8INSN
+ Scenix IP2K - low/high 8 bits of instruction word address
+
+ -- : BFD_RELOC_IP2K_PC_SKIP
+ Scenix IP2K - even/odd PC modifier to modify snb pcl.0
+
+ -- : BFD_RELOC_IP2K_TEXT
+ Scenix IP2K - 16 bit word address in text section.
+
+ -- : BFD_RELOC_IP2K_FR_OFFSET
+ Scenix IP2K - 7-bit sp or dp offset
+
+ -- : BFD_RELOC_VPE4KMATH_DATA
+ -- : BFD_RELOC_VPE4KMATH_INSN
+ Scenix VPE4K coprocessor - data/insn-space addressing
+
+ -- : BFD_RELOC_VTABLE_INHERIT
+ -- : BFD_RELOC_VTABLE_ENTRY
+ These two relocations are used by the linker to determine which of
+ the entries in a C++ virtual function table are actually used.
+ When the -gc-sections option is given, the linker will zero out
+ the entries that are not used, so that the code for those
+ functions need not be included in the output.
+
+ VTABLE_INHERIT is a zero-space relocation used to describe to the
+ linker the inheritance tree of a C++ virtual function table. The
+ relocation's symbol should be the parent class' vtable, and the
+ relocation should be located at the child vtable.
+
+ VTABLE_ENTRY is a zero-space relocation that describes the use of a
+ virtual function table entry. The reloc's symbol should refer to
+ the table of the class mentioned in the code. Off of that base,
+ an offset describes the entry that is being used. For Rela hosts,
+ this offset is stored in the reloc's addend. For Rel hosts, we
+ are forced to put this offset in the reloc's section offset.
+
+ -- : BFD_RELOC_IA64_IMM14
+ -- : BFD_RELOC_IA64_IMM22
+ -- : BFD_RELOC_IA64_IMM64
+ -- : BFD_RELOC_IA64_DIR32MSB
+ -- : BFD_RELOC_IA64_DIR32LSB
+ -- : BFD_RELOC_IA64_DIR64MSB
+ -- : BFD_RELOC_IA64_DIR64LSB
+ -- : BFD_RELOC_IA64_GPREL22
+ -- : BFD_RELOC_IA64_GPREL64I
+ -- : BFD_RELOC_IA64_GPREL32MSB
+ -- : BFD_RELOC_IA64_GPREL32LSB
+ -- : BFD_RELOC_IA64_GPREL64MSB
+ -- : BFD_RELOC_IA64_GPREL64LSB
+ -- : BFD_RELOC_IA64_LTOFF22
+ -- : BFD_RELOC_IA64_LTOFF64I
+ -- : BFD_RELOC_IA64_PLTOFF22
+ -- : BFD_RELOC_IA64_PLTOFF64I
+ -- : BFD_RELOC_IA64_PLTOFF64MSB
+ -- : BFD_RELOC_IA64_PLTOFF64LSB
+ -- : BFD_RELOC_IA64_FPTR64I
+ -- : BFD_RELOC_IA64_FPTR32MSB
+ -- : BFD_RELOC_IA64_FPTR32LSB
+ -- : BFD_RELOC_IA64_FPTR64MSB
+ -- : BFD_RELOC_IA64_FPTR64LSB
+ -- : BFD_RELOC_IA64_PCREL21B
+ -- : BFD_RELOC_IA64_PCREL21BI
+ -- : BFD_RELOC_IA64_PCREL21M
+ -- : BFD_RELOC_IA64_PCREL21F
+ -- : BFD_RELOC_IA64_PCREL22
+ -- : BFD_RELOC_IA64_PCREL60B
+ -- : BFD_RELOC_IA64_PCREL64I
+ -- : BFD_RELOC_IA64_PCREL32MSB
+ -- : BFD_RELOC_IA64_PCREL32LSB
+ -- : BFD_RELOC_IA64_PCREL64MSB
+ -- : BFD_RELOC_IA64_PCREL64LSB
+ -- : BFD_RELOC_IA64_LTOFF_FPTR22
+ -- : BFD_RELOC_IA64_LTOFF_FPTR64I
+ -- : BFD_RELOC_IA64_LTOFF_FPTR32MSB
+ -- : BFD_RELOC_IA64_LTOFF_FPTR32LSB
+ -- : BFD_RELOC_IA64_LTOFF_FPTR64MSB
+ -- : BFD_RELOC_IA64_LTOFF_FPTR64LSB
+ -- : BFD_RELOC_IA64_SEGREL32MSB
+ -- : BFD_RELOC_IA64_SEGREL32LSB
+ -- : BFD_RELOC_IA64_SEGREL64MSB
+ -- : BFD_RELOC_IA64_SEGREL64LSB
+ -- : BFD_RELOC_IA64_SECREL32MSB
+ -- : BFD_RELOC_IA64_SECREL32LSB
+ -- : BFD_RELOC_IA64_SECREL64MSB
+ -- : BFD_RELOC_IA64_SECREL64LSB
+ -- : BFD_RELOC_IA64_REL32MSB
+ -- : BFD_RELOC_IA64_REL32LSB
+ -- : BFD_RELOC_IA64_REL64MSB
+ -- : BFD_RELOC_IA64_REL64LSB
+ -- : BFD_RELOC_IA64_LTV32MSB
+ -- : BFD_RELOC_IA64_LTV32LSB
+ -- : BFD_RELOC_IA64_LTV64MSB
+ -- : BFD_RELOC_IA64_LTV64LSB
+ -- : BFD_RELOC_IA64_IPLTMSB
+ -- : BFD_RELOC_IA64_IPLTLSB
+ -- : BFD_RELOC_IA64_COPY
+ -- : BFD_RELOC_IA64_LTOFF22X
+ -- : BFD_RELOC_IA64_LDXMOV
+ -- : BFD_RELOC_IA64_TPREL14
+ -- : BFD_RELOC_IA64_TPREL22
+ -- : BFD_RELOC_IA64_TPREL64I
+ -- : BFD_RELOC_IA64_TPREL64MSB
+ -- : BFD_RELOC_IA64_TPREL64LSB
+ -- : BFD_RELOC_IA64_LTOFF_TPREL22
+ -- : BFD_RELOC_IA64_DTPMOD64MSB
+ -- : BFD_RELOC_IA64_DTPMOD64LSB
+ -- : BFD_RELOC_IA64_LTOFF_DTPMOD22
+ -- : BFD_RELOC_IA64_DTPREL14
+ -- : BFD_RELOC_IA64_DTPREL22
+ -- : BFD_RELOC_IA64_DTPREL64I
+ -- : BFD_RELOC_IA64_DTPREL32MSB
+ -- : BFD_RELOC_IA64_DTPREL32LSB
+ -- : BFD_RELOC_IA64_DTPREL64MSB
+ -- : BFD_RELOC_IA64_DTPREL64LSB
+ -- : BFD_RELOC_IA64_LTOFF_DTPREL22
+ Intel IA64 Relocations.
+
+ -- : BFD_RELOC_M68HC11_HI8
+ Motorola 68HC11 reloc. This is the 8 bit high part of an absolute
+ address.
+
+ -- : BFD_RELOC_M68HC11_LO8
+ Motorola 68HC11 reloc. This is the 8 bit low part of an absolute
+ address.
+
+ -- : BFD_RELOC_M68HC11_3B
+ Motorola 68HC11 reloc. This is the 3 bit of a value.
+
+ -- : BFD_RELOC_M68HC11_RL_JUMP
+ Motorola 68HC11 reloc. This reloc marks the beginning of a
+ jump/call instruction. It is used for linker relaxation to
+ correctly identify beginning of instruction and change some
+ branches to use PC-relative addressing mode.
+
+ -- : BFD_RELOC_M68HC11_RL_GROUP
+ Motorola 68HC11 reloc. This reloc marks a group of several
+ instructions that gcc generates and for which the linker
+ relaxation pass can modify and/or remove some of them.
+
+ -- : BFD_RELOC_M68HC11_LO16
+ Motorola 68HC11 reloc. This is the 16-bit lower part of an
+ address. It is used for 'call' instruction to specify the symbol
+ address without any special transformation (due to memory bank
+ window).
+
+ -- : BFD_RELOC_M68HC11_PAGE
+ Motorola 68HC11 reloc. This is a 8-bit reloc that specifies the
+ page number of an address. It is used by 'call' instruction to
+ specify the page number of the symbol.
+
+ -- : BFD_RELOC_M68HC11_24
+ Motorola 68HC11 reloc. This is a 24-bit reloc that represents the
+ address with a 16-bit value and a 8-bit page number. The symbol
+ address is transformed to follow the 16K memory bank of 68HC12
+ (seen as mapped in the window).
+
+ -- : BFD_RELOC_M68HC12_5B
+ Motorola 68HC12 reloc. This is the 5 bits of a value.
+
+ -- : BFD_RELOC_16C_NUM08
+ -- : BFD_RELOC_16C_NUM08_C
+ -- : BFD_RELOC_16C_NUM16
+ -- : BFD_RELOC_16C_NUM16_C
+ -- : BFD_RELOC_16C_NUM32
+ -- : BFD_RELOC_16C_NUM32_C
+ -- : BFD_RELOC_16C_DISP04
+ -- : BFD_RELOC_16C_DISP04_C
+ -- : BFD_RELOC_16C_DISP08
+ -- : BFD_RELOC_16C_DISP08_C
+ -- : BFD_RELOC_16C_DISP16
+ -- : BFD_RELOC_16C_DISP16_C
+ -- : BFD_RELOC_16C_DISP24
+ -- : BFD_RELOC_16C_DISP24_C
+ -- : BFD_RELOC_16C_DISP24a
+ -- : BFD_RELOC_16C_DISP24a_C
+ -- : BFD_RELOC_16C_REG04
+ -- : BFD_RELOC_16C_REG04_C
+ -- : BFD_RELOC_16C_REG04a
+ -- : BFD_RELOC_16C_REG04a_C
+ -- : BFD_RELOC_16C_REG14
+ -- : BFD_RELOC_16C_REG14_C
+ -- : BFD_RELOC_16C_REG16
+ -- : BFD_RELOC_16C_REG16_C
+ -- : BFD_RELOC_16C_REG20
+ -- : BFD_RELOC_16C_REG20_C
+ -- : BFD_RELOC_16C_ABS20
+ -- : BFD_RELOC_16C_ABS20_C
+ -- : BFD_RELOC_16C_ABS24
+ -- : BFD_RELOC_16C_ABS24_C
+ -- : BFD_RELOC_16C_IMM04
+ -- : BFD_RELOC_16C_IMM04_C
+ -- : BFD_RELOC_16C_IMM16
+ -- : BFD_RELOC_16C_IMM16_C
+ -- : BFD_RELOC_16C_IMM20
+ -- : BFD_RELOC_16C_IMM20_C
+ -- : BFD_RELOC_16C_IMM24
+ -- : BFD_RELOC_16C_IMM24_C
+ -- : BFD_RELOC_16C_IMM32
+ -- : BFD_RELOC_16C_IMM32_C
+ NS CR16C Relocations.
+
+ -- : BFD_RELOC_CR16_NUM8
+ -- : BFD_RELOC_CR16_NUM16
+ -- : BFD_RELOC_CR16_NUM32
+ -- : BFD_RELOC_CR16_NUM32a
+ -- : BFD_RELOC_CR16_REGREL0
+ -- : BFD_RELOC_CR16_REGREL4
+ -- : BFD_RELOC_CR16_REGREL4a
+ -- : BFD_RELOC_CR16_REGREL14
+ -- : BFD_RELOC_CR16_REGREL14a
+ -- : BFD_RELOC_CR16_REGREL16
+ -- : BFD_RELOC_CR16_REGREL20
+ -- : BFD_RELOC_CR16_REGREL20a
+ -- : BFD_RELOC_CR16_ABS20
+ -- : BFD_RELOC_CR16_ABS24
+ -- : BFD_RELOC_CR16_IMM4
+ -- : BFD_RELOC_CR16_IMM8
+ -- : BFD_RELOC_CR16_IMM16
+ -- : BFD_RELOC_CR16_IMM20
+ -- : BFD_RELOC_CR16_IMM24
+ -- : BFD_RELOC_CR16_IMM32
+ -- : BFD_RELOC_CR16_IMM32a
+ -- : BFD_RELOC_CR16_DISP4
+ -- : BFD_RELOC_CR16_DISP8
+ -- : BFD_RELOC_CR16_DISP16
+ -- : BFD_RELOC_CR16_DISP20
+ -- : BFD_RELOC_CR16_DISP24
+ -- : BFD_RELOC_CR16_DISP24a
+ -- : BFD_RELOC_CR16_SWITCH8
+ -- : BFD_RELOC_CR16_SWITCH16
+ -- : BFD_RELOC_CR16_SWITCH32
+ -- : BFD_RELOC_CR16_GOT_REGREL20
+ -- : BFD_RELOC_CR16_GOTC_REGREL20
+ -- : BFD_RELOC_CR16_GLOB_DAT
+ NS CR16 Relocations.
+
+ -- : BFD_RELOC_CRX_REL4
+ -- : BFD_RELOC_CRX_REL8
+ -- : BFD_RELOC_CRX_REL8_CMP
+ -- : BFD_RELOC_CRX_REL16
+ -- : BFD_RELOC_CRX_REL24
+ -- : BFD_RELOC_CRX_REL32
+ -- : BFD_RELOC_CRX_REGREL12
+ -- : BFD_RELOC_CRX_REGREL22
+ -- : BFD_RELOC_CRX_REGREL28
+ -- : BFD_RELOC_CRX_REGREL32
+ -- : BFD_RELOC_CRX_ABS16
+ -- : BFD_RELOC_CRX_ABS32
+ -- : BFD_RELOC_CRX_NUM8
+ -- : BFD_RELOC_CRX_NUM16
+ -- : BFD_RELOC_CRX_NUM32
+ -- : BFD_RELOC_CRX_IMM16
+ -- : BFD_RELOC_CRX_IMM32
+ -- : BFD_RELOC_CRX_SWITCH8
+ -- : BFD_RELOC_CRX_SWITCH16
+ -- : BFD_RELOC_CRX_SWITCH32
+ NS CRX Relocations.
+
+ -- : BFD_RELOC_CRIS_BDISP8
+ -- : BFD_RELOC_CRIS_UNSIGNED_5
+ -- : BFD_RELOC_CRIS_SIGNED_6
+ -- : BFD_RELOC_CRIS_UNSIGNED_6
+ -- : BFD_RELOC_CRIS_SIGNED_8
+ -- : BFD_RELOC_CRIS_UNSIGNED_8
+ -- : BFD_RELOC_CRIS_SIGNED_16
+ -- : BFD_RELOC_CRIS_UNSIGNED_16
+ -- : BFD_RELOC_CRIS_LAPCQ_OFFSET
+ -- : BFD_RELOC_CRIS_UNSIGNED_4
+ These relocs are only used within the CRIS assembler. They are not
+ (at present) written to any object files.
+
+ -- : BFD_RELOC_CRIS_COPY
+ -- : BFD_RELOC_CRIS_GLOB_DAT
+ -- : BFD_RELOC_CRIS_JUMP_SLOT
+ -- : BFD_RELOC_CRIS_RELATIVE
+ Relocs used in ELF shared libraries for CRIS.
+
+ -- : BFD_RELOC_CRIS_32_GOT
+ 32-bit offset to symbol-entry within GOT.
+
+ -- : BFD_RELOC_CRIS_16_GOT
+ 16-bit offset to symbol-entry within GOT.
+
+ -- : BFD_RELOC_CRIS_32_GOTPLT
+ 32-bit offset to symbol-entry within GOT, with PLT handling.
+
+ -- : BFD_RELOC_CRIS_16_GOTPLT
+ 16-bit offset to symbol-entry within GOT, with PLT handling.
+
+ -- : BFD_RELOC_CRIS_32_GOTREL
+ 32-bit offset to symbol, relative to GOT.
+
+ -- : BFD_RELOC_CRIS_32_PLT_GOTREL
+ 32-bit offset to symbol with PLT entry, relative to GOT.
+
+ -- : BFD_RELOC_CRIS_32_PLT_PCREL
+ 32-bit offset to symbol with PLT entry, relative to this
+ relocation.
+
+ -- : BFD_RELOC_CRIS_32_GOT_GD
+ -- : BFD_RELOC_CRIS_16_GOT_GD
+ -- : BFD_RELOC_CRIS_32_GD
+ -- : BFD_RELOC_CRIS_DTP
+ -- : BFD_RELOC_CRIS_32_DTPREL
+ -- : BFD_RELOC_CRIS_16_DTPREL
+ -- : BFD_RELOC_CRIS_32_GOT_TPREL
+ -- : BFD_RELOC_CRIS_16_GOT_TPREL
+ -- : BFD_RELOC_CRIS_32_TPREL
+ -- : BFD_RELOC_CRIS_16_TPREL
+ -- : BFD_RELOC_CRIS_DTPMOD
+ -- : BFD_RELOC_CRIS_32_IE
+ Relocs used in TLS code for CRIS.
+
+ -- : BFD_RELOC_860_COPY
+ -- : BFD_RELOC_860_GLOB_DAT
+ -- : BFD_RELOC_860_JUMP_SLOT
+ -- : BFD_RELOC_860_RELATIVE
+ -- : BFD_RELOC_860_PC26
+ -- : BFD_RELOC_860_PLT26
+ -- : BFD_RELOC_860_PC16
+ -- : BFD_RELOC_860_LOW0
+ -- : BFD_RELOC_860_SPLIT0
+ -- : BFD_RELOC_860_LOW1
+ -- : BFD_RELOC_860_SPLIT1
+ -- : BFD_RELOC_860_LOW2
+ -- : BFD_RELOC_860_SPLIT2
+ -- : BFD_RELOC_860_LOW3
+ -- : BFD_RELOC_860_LOGOT0
+ -- : BFD_RELOC_860_SPGOT0
+ -- : BFD_RELOC_860_LOGOT1
+ -- : BFD_RELOC_860_SPGOT1
+ -- : BFD_RELOC_860_LOGOTOFF0
+ -- : BFD_RELOC_860_SPGOTOFF0
+ -- : BFD_RELOC_860_LOGOTOFF1
+ -- : BFD_RELOC_860_SPGOTOFF1
+ -- : BFD_RELOC_860_LOGOTOFF2
+ -- : BFD_RELOC_860_LOGOTOFF3
+ -- : BFD_RELOC_860_LOPC
+ -- : BFD_RELOC_860_HIGHADJ
+ -- : BFD_RELOC_860_HAGOT
+ -- : BFD_RELOC_860_HAGOTOFF
+ -- : BFD_RELOC_860_HAPC
+ -- : BFD_RELOC_860_HIGH
+ -- : BFD_RELOC_860_HIGOT
+ -- : BFD_RELOC_860_HIGOTOFF
+ Intel i860 Relocations.
+
+ -- : BFD_RELOC_OPENRISC_ABS_26
+ -- : BFD_RELOC_OPENRISC_REL_26
+ OpenRISC Relocations.
+
+ -- : BFD_RELOC_H8_DIR16A8
+ -- : BFD_RELOC_H8_DIR16R8
+ -- : BFD_RELOC_H8_DIR24A8
+ -- : BFD_RELOC_H8_DIR24R8
+ -- : BFD_RELOC_H8_DIR32A16
+ H8 elf Relocations.
+
+ -- : BFD_RELOC_XSTORMY16_REL_12
+ -- : BFD_RELOC_XSTORMY16_12
+ -- : BFD_RELOC_XSTORMY16_24
+ -- : BFD_RELOC_XSTORMY16_FPTR16
+ Sony Xstormy16 Relocations.
+
+ -- : BFD_RELOC_RELC
+ Self-describing complex relocations.
+
+ -- : BFD_RELOC_XC16X_PAG
+ -- : BFD_RELOC_XC16X_POF
+ -- : BFD_RELOC_XC16X_SEG
+ -- : BFD_RELOC_XC16X_SOF
+ Infineon Relocations.
+
+ -- : BFD_RELOC_VAX_GLOB_DAT
+ -- : BFD_RELOC_VAX_JMP_SLOT
+ -- : BFD_RELOC_VAX_RELATIVE
+ Relocations used by VAX ELF.
+
+ -- : BFD_RELOC_MT_PC16
+ Morpho MT - 16 bit immediate relocation.
+
+ -- : BFD_RELOC_MT_HI16
+ Morpho MT - Hi 16 bits of an address.
+
+ -- : BFD_RELOC_MT_LO16
+ Morpho MT - Low 16 bits of an address.
+
+ -- : BFD_RELOC_MT_GNU_VTINHERIT
+ Morpho MT - Used to tell the linker which vtable entries are used.
+
+ -- : BFD_RELOC_MT_GNU_VTENTRY
+ Morpho MT - Used to tell the linker which vtable entries are used.
+
+ -- : BFD_RELOC_MT_PCINSN8
+ Morpho MT - 8 bit immediate relocation.
+
+ -- : BFD_RELOC_MSP430_10_PCREL
+ -- : BFD_RELOC_MSP430_16_PCREL
+ -- : BFD_RELOC_MSP430_16
+ -- : BFD_RELOC_MSP430_16_PCREL_BYTE
+ -- : BFD_RELOC_MSP430_16_BYTE
+ -- : BFD_RELOC_MSP430_2X_PCREL
+ -- : BFD_RELOC_MSP430_RL_PCREL
+ msp430 specific relocation codes
+
+ -- : BFD_RELOC_IQ2000_OFFSET_16
+ -- : BFD_RELOC_IQ2000_OFFSET_21
+ -- : BFD_RELOC_IQ2000_UHI16
+ IQ2000 Relocations.
+
+ -- : BFD_RELOC_XTENSA_RTLD
+ Special Xtensa relocation used only by PLT entries in ELF shared
+ objects to indicate that the runtime linker should set the value
+ to one of its own internal functions or data structures.
+
+ -- : BFD_RELOC_XTENSA_GLOB_DAT
+ -- : BFD_RELOC_XTENSA_JMP_SLOT
+ -- : BFD_RELOC_XTENSA_RELATIVE
+ Xtensa relocations for ELF shared objects.
+
+ -- : BFD_RELOC_XTENSA_PLT
+ Xtensa relocation used in ELF object files for symbols that may
+ require PLT entries. Otherwise, this is just a generic 32-bit
+ relocation.
+
+ -- : BFD_RELOC_XTENSA_DIFF8
+ -- : BFD_RELOC_XTENSA_DIFF16
+ -- : BFD_RELOC_XTENSA_DIFF32
+ Xtensa relocations to mark the difference of two local symbols.
+ These are only needed to support linker relaxation and can be
+ ignored when not relaxing. The field is set to the value of the
+ difference assuming no relaxation. The relocation encodes the
+ position of the first symbol so the linker can determine whether
+ to adjust the field value.
+
+ -- : BFD_RELOC_XTENSA_SLOT0_OP
+ -- : BFD_RELOC_XTENSA_SLOT1_OP
+ -- : BFD_RELOC_XTENSA_SLOT2_OP
+ -- : BFD_RELOC_XTENSA_SLOT3_OP
+ -- : BFD_RELOC_XTENSA_SLOT4_OP
+ -- : BFD_RELOC_XTENSA_SLOT5_OP
+ -- : BFD_RELOC_XTENSA_SLOT6_OP
+ -- : BFD_RELOC_XTENSA_SLOT7_OP
+ -- : BFD_RELOC_XTENSA_SLOT8_OP
+ -- : BFD_RELOC_XTENSA_SLOT9_OP
+ -- : BFD_RELOC_XTENSA_SLOT10_OP
+ -- : BFD_RELOC_XTENSA_SLOT11_OP
+ -- : BFD_RELOC_XTENSA_SLOT12_OP
+ -- : BFD_RELOC_XTENSA_SLOT13_OP
+ -- : BFD_RELOC_XTENSA_SLOT14_OP
+ Generic Xtensa relocations for instruction operands. Only the slot
+ number is encoded in the relocation. The relocation applies to the
+ last PC-relative immediate operand, or if there are no PC-relative
+ immediates, to the last immediate operand.
+
+ -- : BFD_RELOC_XTENSA_SLOT0_ALT
+ -- : BFD_RELOC_XTENSA_SLOT1_ALT
+ -- : BFD_RELOC_XTENSA_SLOT2_ALT
+ -- : BFD_RELOC_XTENSA_SLOT3_ALT
+ -- : BFD_RELOC_XTENSA_SLOT4_ALT
+ -- : BFD_RELOC_XTENSA_SLOT5_ALT
+ -- : BFD_RELOC_XTENSA_SLOT6_ALT
+ -- : BFD_RELOC_XTENSA_SLOT7_ALT
+ -- : BFD_RELOC_XTENSA_SLOT8_ALT
+ -- : BFD_RELOC_XTENSA_SLOT9_ALT
+ -- : BFD_RELOC_XTENSA_SLOT10_ALT
+ -- : BFD_RELOC_XTENSA_SLOT11_ALT
+ -- : BFD_RELOC_XTENSA_SLOT12_ALT
+ -- : BFD_RELOC_XTENSA_SLOT13_ALT
+ -- : BFD_RELOC_XTENSA_SLOT14_ALT
+ Alternate Xtensa relocations. Only the slot is encoded in the
+ relocation. The meaning of these relocations is opcode-specific.
+
+ -- : BFD_RELOC_XTENSA_OP0
+ -- : BFD_RELOC_XTENSA_OP1
+ -- : BFD_RELOC_XTENSA_OP2
+ Xtensa relocations for backward compatibility. These have all been
+ replaced by BFD_RELOC_XTENSA_SLOT0_OP.
+
+ -- : BFD_RELOC_XTENSA_ASM_EXPAND
+ Xtensa relocation to mark that the assembler expanded the
+ instructions from an original target. The expansion size is
+ encoded in the reloc size.
+
+ -- : BFD_RELOC_XTENSA_ASM_SIMPLIFY
+ Xtensa relocation to mark that the linker should simplify
+ assembler-expanded instructions. This is commonly used internally
+ by the linker after analysis of a BFD_RELOC_XTENSA_ASM_EXPAND.
+
+ -- : BFD_RELOC_XTENSA_TLSDESC_FN
+ -- : BFD_RELOC_XTENSA_TLSDESC_ARG
+ -- : BFD_RELOC_XTENSA_TLS_DTPOFF
+ -- : BFD_RELOC_XTENSA_TLS_TPOFF
+ -- : BFD_RELOC_XTENSA_TLS_FUNC
+ -- : BFD_RELOC_XTENSA_TLS_ARG
+ -- : BFD_RELOC_XTENSA_TLS_CALL
+ Xtensa TLS relocations.
+
+ -- : BFD_RELOC_Z80_DISP8
+ 8 bit signed offset in (ix+d) or (iy+d).
+
+ -- : BFD_RELOC_Z8K_DISP7
+ DJNZ offset.
+
+ -- : BFD_RELOC_Z8K_CALLR
+ CALR offset.
+
+ -- : BFD_RELOC_Z8K_IMM4L
+ 4 bit value.
+
+ -- : BFD_RELOC_LM32_CALL
+ -- : BFD_RELOC_LM32_BRANCH
+ -- : BFD_RELOC_LM32_16_GOT
+ -- : BFD_RELOC_LM32_GOTOFF_HI16
+ -- : BFD_RELOC_LM32_GOTOFF_LO16
+ -- : BFD_RELOC_LM32_COPY
+ -- : BFD_RELOC_LM32_GLOB_DAT
+ -- : BFD_RELOC_LM32_JMP_SLOT
+ -- : BFD_RELOC_LM32_RELATIVE
+ Lattice Mico32 relocations.
+
+ -- : BFD_RELOC_MACH_O_SECTDIFF
+ Difference between two section addreses. Must be followed by a
+ BFD_RELOC_MACH_O_PAIR.
+
+ -- : BFD_RELOC_MACH_O_PAIR
+ Pair of relocation. Contains the first symbol.
+
+ -- : BFD_RELOC_MACH_O_X86_64_BRANCH32
+ -- : BFD_RELOC_MACH_O_X86_64_BRANCH8
+ PCREL relocations. They are marked as branch to create PLT entry
+ if required.
+
+ -- : BFD_RELOC_MACH_O_X86_64_GOT
+ Used when referencing a GOT entry.
+
+ -- : BFD_RELOC_MACH_O_X86_64_GOT_LOAD
+ Used when loading a GOT entry with movq. It is specially marked
+ so that the linker could optimize the movq to a leaq if possible.
+
+ -- : BFD_RELOC_MACH_O_X86_64_SUBTRACTOR32
+ Symbol will be substracted. Must be followed by a BFD_RELOC_64.
+
+ -- : BFD_RELOC_MACH_O_X86_64_SUBTRACTOR64
+ Symbol will be substracted. Must be followed by a BFD_RELOC_64.
+
+ -- : BFD_RELOC_MACH_O_X86_64_PCREL32_1
+ Same as BFD_RELOC_32_PCREL but with an implicit -1 addend.
+
+ -- : BFD_RELOC_MACH_O_X86_64_PCREL32_2
+ Same as BFD_RELOC_32_PCREL but with an implicit -2 addend.
+
+ -- : BFD_RELOC_MACH_O_X86_64_PCREL32_4
+ Same as BFD_RELOC_32_PCREL but with an implicit -4 addend.
+
+ -- : BFD_RELOC_MICROBLAZE_32_LO
+ This is a 32 bit reloc for the microblaze that stores the low 16
+ bits of a value
+
+ -- : BFD_RELOC_MICROBLAZE_32_LO_PCREL
+ This is a 32 bit pc-relative reloc for the microblaze that stores
+ the low 16 bits of a value
+
+ -- : BFD_RELOC_MICROBLAZE_32_ROSDA
+ This is a 32 bit reloc for the microblaze that stores a value
+ relative to the read-only small data area anchor
+
+ -- : BFD_RELOC_MICROBLAZE_32_RWSDA
+ This is a 32 bit reloc for the microblaze that stores a value
+ relative to the read-write small data area anchor
+
+ -- : BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM
+ This is a 32 bit reloc for the microblaze to handle expressions of
+ the form "Symbol Op Symbol"
+
+ -- : BFD_RELOC_MICROBLAZE_64_NONE
+ This is a 64 bit reloc that stores the 32 bit pc relative value in
+ two words (with an imm instruction). No relocation is done here -
+ only used for relaxing
+
+ -- : BFD_RELOC_MICROBLAZE_64_GOTPC
+ This is a 64 bit reloc that stores the 32 bit pc relative value in
+ two words (with an imm instruction). The relocation is
+ PC-relative GOT offset
+
+ -- : BFD_RELOC_MICROBLAZE_64_GOT
+ This is a 64 bit reloc that stores the 32 bit pc relative value in
+ two words (with an imm instruction). The relocation is GOT offset
+
+ -- : BFD_RELOC_MICROBLAZE_64_PLT
+ This is a 64 bit reloc that stores the 32 bit pc relative value in
+ two words (with an imm instruction). The relocation is
+ PC-relative offset into PLT
+
+ -- : BFD_RELOC_MICROBLAZE_64_GOTOFF
+ This is a 64 bit reloc that stores the 32 bit GOT relative value
+ in two words (with an imm instruction). The relocation is
+ relative offset from _GLOBAL_OFFSET_TABLE_
+
+ -- : BFD_RELOC_MICROBLAZE_32_GOTOFF
+ This is a 32 bit reloc that stores the 32 bit GOT relative value
+ in a word. The relocation is relative offset from
+
+ -- : BFD_RELOC_MICROBLAZE_COPY
+ This is used to tell the dynamic linker to copy the value out of
+ the dynamic object into the runtime process image.
+
+ -- : BFD_RELOC_TILEPRO_COPY
+ -- : BFD_RELOC_TILEPRO_GLOB_DAT
+ -- : BFD_RELOC_TILEPRO_JMP_SLOT
+ -- : BFD_RELOC_TILEPRO_RELATIVE
+ -- : BFD_RELOC_TILEPRO_BROFF_X1
+ -- : BFD_RELOC_TILEPRO_JOFFLONG_X1
+ -- : BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT
+ -- : BFD_RELOC_TILEPRO_IMM8_X0
+ -- : BFD_RELOC_TILEPRO_IMM8_Y0
+ -- : BFD_RELOC_TILEPRO_IMM8_X1
+ -- : BFD_RELOC_TILEPRO_IMM8_Y1
+ -- : BFD_RELOC_TILEPRO_DEST_IMM8_X1
+ -- : BFD_RELOC_TILEPRO_MT_IMM15_X1
+ -- : BFD_RELOC_TILEPRO_MF_IMM15_X1
+ -- : BFD_RELOC_TILEPRO_IMM16_X0
+ -- : BFD_RELOC_TILEPRO_IMM16_X1
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_LO
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_LO
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_HI
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_HI
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_HA
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_HA
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_PCREL
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_PCREL
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA
+ -- : BFD_RELOC_TILEPRO_MMSTART_X0
+ -- : BFD_RELOC_TILEPRO_MMEND_X0
+ -- : BFD_RELOC_TILEPRO_MMSTART_X1
+ -- : BFD_RELOC_TILEPRO_MMEND_X1
+ -- : BFD_RELOC_TILEPRO_SHAMT_X0
+ -- : BFD_RELOC_TILEPRO_SHAMT_X1
+ -- : BFD_RELOC_TILEPRO_SHAMT_Y0
+ -- : BFD_RELOC_TILEPRO_SHAMT_Y1
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI
+ -- : BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA
+ -- : BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA
+ -- : BFD_RELOC_TILEPRO_TLS_DTPMOD32
+ -- : BFD_RELOC_TILEPRO_TLS_DTPOFF32
+ -- : BFD_RELOC_TILEPRO_TLS_TPOFF32
+ Tilera TILEPro Relocations.
+
+ -- : BFD_RELOC_TILEGX_HW0
+ -- : BFD_RELOC_TILEGX_HW1
+ -- : BFD_RELOC_TILEGX_HW2
+ -- : BFD_RELOC_TILEGX_HW3
+ -- : BFD_RELOC_TILEGX_HW0_LAST
+ -- : BFD_RELOC_TILEGX_HW1_LAST
+ -- : BFD_RELOC_TILEGX_HW2_LAST
+ -- : BFD_RELOC_TILEGX_COPY
+ -- : BFD_RELOC_TILEGX_GLOB_DAT
+ -- : BFD_RELOC_TILEGX_JMP_SLOT
+ -- : BFD_RELOC_TILEGX_RELATIVE
+ -- : BFD_RELOC_TILEGX_BROFF_X1
+ -- : BFD_RELOC_TILEGX_JUMPOFF_X1
+ -- : BFD_RELOC_TILEGX_JUMPOFF_X1_PLT
+ -- : BFD_RELOC_TILEGX_IMM8_X0
+ -- : BFD_RELOC_TILEGX_IMM8_Y0
+ -- : BFD_RELOC_TILEGX_IMM8_X1
+ -- : BFD_RELOC_TILEGX_IMM8_Y1
+ -- : BFD_RELOC_TILEGX_DEST_IMM8_X1
+ -- : BFD_RELOC_TILEGX_MT_IMM14_X1
+ -- : BFD_RELOC_TILEGX_MF_IMM14_X1
+ -- : BFD_RELOC_TILEGX_MMSTART_X0
+ -- : BFD_RELOC_TILEGX_MMEND_X0
+ -- : BFD_RELOC_TILEGX_SHAMT_X0
+ -- : BFD_RELOC_TILEGX_SHAMT_X1
+ -- : BFD_RELOC_TILEGX_SHAMT_Y0
+ -- : BFD_RELOC_TILEGX_SHAMT_Y1
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW0
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW0
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW1
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW1
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW2
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW2
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW3
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW3
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_GOT
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_GOT
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_GOT
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_GOT
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_GOT
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_GOT
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_GOT
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_GOT
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE
+ -- : BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE
+ -- : BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE
+ -- : BFD_RELOC_TILEGX_TLS_DTPMOD64
+ -- : BFD_RELOC_TILEGX_TLS_DTPOFF64
+ -- : BFD_RELOC_TILEGX_TLS_TPOFF64
+ -- : BFD_RELOC_TILEGX_TLS_DTPMOD32
+ -- : BFD_RELOC_TILEGX_TLS_DTPOFF32
+ -- : BFD_RELOC_TILEGX_TLS_TPOFF32
+ Tilera TILE-Gx Relocations.
+
+
+ typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
+
+2.10.2.2 `bfd_reloc_type_lookup'
+................................
+
+*Synopsis*
+ reloc_howto_type *bfd_reloc_type_lookup
+ (bfd *abfd, bfd_reloc_code_real_type code);
+ reloc_howto_type *bfd_reloc_name_lookup
+ (bfd *abfd, const char *reloc_name);
+ *Description*
+Return a pointer to a howto structure which, when invoked, will perform
+the relocation CODE on data from the architecture noted.
+
+2.10.2.3 `bfd_default_reloc_type_lookup'
+........................................
+
+*Synopsis*
+ reloc_howto_type *bfd_default_reloc_type_lookup
+ (bfd *abfd, bfd_reloc_code_real_type code);
+ *Description*
+Provides a default relocation lookup routine for any architecture.
+
+2.10.2.4 `bfd_get_reloc_code_name'
+..................................
+
+*Synopsis*
+ const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
+ *Description*
+Provides a printable name for the supplied relocation code. Useful
+mainly for printing error messages.
+
+2.10.2.5 `bfd_generic_relax_section'
+....................................
+
+*Synopsis*
+ bfd_boolean bfd_generic_relax_section
+ (bfd *abfd,
+ asection *section,
+ struct bfd_link_info *,
+ bfd_boolean *);
+ *Description*
+Provides default handling for relaxing for back ends which don't do
+relaxing.
+
+2.10.2.6 `bfd_generic_gc_sections'
+..................................
+
+*Synopsis*
+ bfd_boolean bfd_generic_gc_sections
+ (bfd *, struct bfd_link_info *);
+ *Description*
+Provides default handling for relaxing for back ends which don't do
+section gc - i.e., does nothing.
+
+2.10.2.7 `bfd_generic_lookup_section_flags'
+...........................................
+
+*Synopsis*
+ void bfd_generic_lookup_section_flags
+ (struct bfd_link_info *, struct flag_info *);
+ *Description*
+Provides default handling for section flags lookup - i.e., does nothing.
+
+2.10.2.8 `bfd_generic_merge_sections'
+.....................................
+
+*Synopsis*
+ bfd_boolean bfd_generic_merge_sections
+ (bfd *, struct bfd_link_info *);
+ *Description*
+Provides default handling for SEC_MERGE section merging for back ends
+which don't have SEC_MERGE support - i.e., does nothing.
+
+2.10.2.9 `bfd_generic_get_relocated_section_contents'
+.....................................................
+
+*Synopsis*
+ bfd_byte *bfd_generic_get_relocated_section_contents
+ (bfd *abfd,
+ struct bfd_link_info *link_info,
+ struct bfd_link_order *link_order,
+ bfd_byte *data,
+ bfd_boolean relocatable,
+ asymbol **symbols);
+ *Description*
+Provides default handling of relocation effort for back ends which
+can't be bothered to do it efficiently.
+
+
+File: bfd.info, Node: Core Files, Next: Targets, Prev: Relocations, Up: BFD front end
+
+2.11 Core files
+===============
+
+2.11.1 Core file functions
+--------------------------
+
+*Description*
+These are functions pertaining to core files.
+
+2.11.1.1 `bfd_core_file_failing_command'
+........................................
+
+*Synopsis*
+ const char *bfd_core_file_failing_command (bfd *abfd);
+ *Description*
+Return a read-only string explaining which program was running when it
+failed and produced the core file ABFD.
+
+2.11.1.2 `bfd_core_file_failing_signal'
+.......................................
+
+*Synopsis*
+ int bfd_core_file_failing_signal (bfd *abfd);
+ *Description*
+Returns the signal number which caused the core dump which generated
+the file the BFD ABFD is attached to.
+
+2.11.1.3 `bfd_core_file_pid'
+............................
+
+*Synopsis*
+ int bfd_core_file_pid (bfd *abfd);
+ *Description*
+Returns the PID of the process the core dump the BFD ABFD is attached
+to was generated from.
+
+2.11.1.4 `core_file_matches_executable_p'
+.........................................
+
+*Synopsis*
+ bfd_boolean core_file_matches_executable_p
+ (bfd *core_bfd, bfd *exec_bfd);
+ *Description*
+Return `TRUE' if the core file attached to CORE_BFD was generated by a
+run of the executable file attached to EXEC_BFD, `FALSE' otherwise.
+
+2.11.1.5 `generic_core_file_matches_executable_p'
+.................................................
+
+*Synopsis*
+ bfd_boolean generic_core_file_matches_executable_p
+ (bfd *core_bfd, bfd *exec_bfd);
+ *Description*
+Return TRUE if the core file attached to CORE_BFD was generated by a
+run of the executable file attached to EXEC_BFD. The match is based on
+executable basenames only.
+
+ Note: When not able to determine the core file failing command or
+the executable name, we still return TRUE even though we're not sure
+that core file and executable match. This is to avoid generating a
+false warning in situations where we really don't know whether they
+match or not.
+
+
+File: bfd.info, Node: Targets, Next: Architectures, Prev: Core Files, Up: BFD front end
+
+2.12 Targets
+============
+
+*Description*
+Each port of BFD to a different machine requires the creation of a
+target back end. All the back end provides to the root part of BFD is a
+structure containing pointers to functions which perform certain low
+level operations on files. BFD translates the applications's requests
+through a pointer into calls to the back end routines.
+
+ When a file is opened with `bfd_openr', its format and target are
+unknown. BFD uses various mechanisms to determine how to interpret the
+file. The operations performed are:
+
+ * Create a BFD by calling the internal routine `_bfd_new_bfd', then
+ call `bfd_find_target' with the target string supplied to
+ `bfd_openr' and the new BFD pointer.
+
+ * If a null target string was provided to `bfd_find_target', look up
+ the environment variable `GNUTARGET' and use that as the target
+ string.
+
+ * If the target string is still `NULL', or the target string is
+ `default', then use the first item in the target vector as the
+ target type, and set `target_defaulted' in the BFD to cause
+ `bfd_check_format' to loop through all the targets. *Note
+ bfd_target::. *Note Formats::.
+
+ * Otherwise, inspect the elements in the target vector one by one,
+ until a match on target name is found. When found, use it.
+
+ * Otherwise return the error `bfd_error_invalid_target' to
+ `bfd_openr'.
+
+ * `bfd_openr' attempts to open the file using `bfd_open_file', and
+ returns the BFD.
+ Once the BFD has been opened and the target selected, the file
+format may be determined. This is done by calling `bfd_check_format' on
+the BFD with a suggested format. If `target_defaulted' has been set,
+each possible target type is tried to see if it recognizes the
+specified format. `bfd_check_format' returns `TRUE' when the caller
+guesses right.
+
+* Menu:
+
+* bfd_target::
+
+
+File: bfd.info, Node: bfd_target, Prev: Targets, Up: Targets
+
+2.12.1 bfd_target
+-----------------
+
+*Description*
+This structure contains everything that BFD knows about a target. It
+includes things like its byte order, name, and which routines to call
+to do various operations.
+
+ Every BFD points to a target structure with its `xvec' member.
+
+ The macros below are used to dispatch to functions through the
+`bfd_target' vector. They are used in a number of macros further down
+in `bfd.h', and are also used when calling various routines by hand
+inside the BFD implementation. The ARGLIST argument must be
+parenthesized; it contains all the arguments to the called function.
+
+ They make the documentation (more) unpleasant to read, so if someone
+wants to fix this and not break the above, please do.
+ #define BFD_SEND(bfd, message, arglist) \
+ ((*((bfd)->xvec->message)) arglist)
+
+ #ifdef DEBUG_BFD_SEND
+ #undef BFD_SEND
+ #define BFD_SEND(bfd, message, arglist) \
+ (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
+ ((*((bfd)->xvec->message)) arglist) : \
+ (bfd_assert (__FILE__,__LINE__), NULL))
+ #endif
+ For operations which index on the BFD format:
+ #define BFD_SEND_FMT(bfd, message, arglist) \
+ (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
+
+ #ifdef DEBUG_BFD_SEND
+ #undef BFD_SEND_FMT
+ #define BFD_SEND_FMT(bfd, message, arglist) \
+ (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
+ (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
+ (bfd_assert (__FILE__,__LINE__), NULL))
+ #endif
+ This is the structure which defines the type of BFD this is. The
+`xvec' member of the struct `bfd' itself points here. Each module that
+implements access to a different target under BFD, defines one of these.
+
+ FIXME, these names should be rationalised with the names of the
+entry points which call them. Too bad we can't have one macro to define
+them both!
+ enum bfd_flavour
+ {
+ bfd_target_unknown_flavour,
+ bfd_target_aout_flavour,
+ bfd_target_coff_flavour,
+ bfd_target_ecoff_flavour,
+ bfd_target_xcoff_flavour,
+ bfd_target_elf_flavour,
+ bfd_target_ieee_flavour,
+ bfd_target_nlm_flavour,
+ bfd_target_oasys_flavour,
+ bfd_target_tekhex_flavour,
+ bfd_target_srec_flavour,
+ bfd_target_verilog_flavour,
+ bfd_target_ihex_flavour,
+ bfd_target_som_flavour,
+ bfd_target_os9k_flavour,
+ bfd_target_versados_flavour,
+ bfd_target_msdos_flavour,
+ bfd_target_ovax_flavour,
+ bfd_target_evax_flavour,
+ bfd_target_mmo_flavour,
+ bfd_target_mach_o_flavour,
+ bfd_target_pef_flavour,
+ bfd_target_pef_xlib_flavour,
+ bfd_target_sym_flavour
+ };
+
+ enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN };
+
+ /* Forward declaration. */
+ typedef struct bfd_link_info _bfd_link_info;
+
+ /* Forward declaration. */
+ typedef struct flag_info flag_info;
+
+ typedef struct bfd_target
+ {
+ /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc. */
+ char *name;
+
+ /* The "flavour" of a back end is a general indication about
+ the contents of a file. */
+ enum bfd_flavour flavour;
+
+ /* The order of bytes within the data area of a file. */
+ enum bfd_endian byteorder;
+
+ /* The order of bytes within the header parts of a file. */
+ enum bfd_endian header_byteorder;
+
+ /* A mask of all the flags which an executable may have set -
+ from the set `BFD_NO_FLAGS', `HAS_RELOC', ...`D_PAGED'. */
+ flagword object_flags;
+
+ /* A mask of all the flags which a section may have set - from
+ the set `SEC_NO_FLAGS', `SEC_ALLOC', ...`SET_NEVER_LOAD'. */
+ flagword section_flags;
+
+ /* The character normally found at the front of a symbol.
+ (if any), perhaps `_'. */
+ char symbol_leading_char;
+
+ /* The pad character for file names within an archive header. */
+ char ar_pad_char;
+
+ /* The maximum number of characters in an archive header. */
+ unsigned char ar_max_namelen;
+
+ /* How well this target matches, used to select between various
+ possible targets when more than one target matches. */
+ unsigned char match_priority;
+
+ /* Entries for byte swapping for data. These are different from the
+ other entry points, since they don't take a BFD as the first argument.
+ Certain other handlers could do the same. */
+ bfd_uint64_t (*bfd_getx64) (const void *);
+ bfd_int64_t (*bfd_getx_signed_64) (const void *);
+ void (*bfd_putx64) (bfd_uint64_t, void *);
+ bfd_vma (*bfd_getx32) (const void *);
+ bfd_signed_vma (*bfd_getx_signed_32) (const void *);
+ void (*bfd_putx32) (bfd_vma, void *);
+ bfd_vma (*bfd_getx16) (const void *);
+ bfd_signed_vma (*bfd_getx_signed_16) (const void *);
+ void (*bfd_putx16) (bfd_vma, void *);
+
+ /* Byte swapping for the headers. */
+ bfd_uint64_t (*bfd_h_getx64) (const void *);
+ bfd_int64_t (*bfd_h_getx_signed_64) (const void *);
+ void (*bfd_h_putx64) (bfd_uint64_t, void *);
+ bfd_vma (*bfd_h_getx32) (const void *);
+ bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
+ void (*bfd_h_putx32) (bfd_vma, void *);
+ bfd_vma (*bfd_h_getx16) (const void *);
+ bfd_signed_vma (*bfd_h_getx_signed_16) (const void *);
+ void (*bfd_h_putx16) (bfd_vma, void *);
+
+ /* Format dependent routines: these are vectors of entry points
+ within the target vector structure, one for each format to check. */
+
+ /* Check the format of a file being read. Return a `bfd_target *' or zero. */
+ const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
+
+ /* Set the format of a file being written. */
+ bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
+
+ /* Write cached information into a file being written, at `bfd_close'. */
+ bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
+ The general target vector. These vectors are initialized using the
+BFD_JUMP_TABLE macros.
+
+ /* Generic entry points. */
+ #define BFD_JUMP_TABLE_GENERIC(NAME) \
+ NAME##_close_and_cleanup, \
+ NAME##_bfd_free_cached_info, \
+ NAME##_new_section_hook, \
+ NAME##_get_section_contents, \
+ NAME##_get_section_contents_in_window
+
+ /* Called when the BFD is being closed to do any necessary cleanup. */
+ bfd_boolean (*_close_and_cleanup) (bfd *);
+ /* Ask the BFD to free all cached information. */
+ bfd_boolean (*_bfd_free_cached_info) (bfd *);
+ /* Called when a new section is created. */
+ bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
+ /* Read the contents of a section. */
+ bfd_boolean (*_bfd_get_section_contents)
+ (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
+ bfd_boolean (*_bfd_get_section_contents_in_window)
+ (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
+
+ /* Entry points to copy private data. */
+ #define BFD_JUMP_TABLE_COPY(NAME) \
+ NAME##_bfd_copy_private_bfd_data, \
+ NAME##_bfd_merge_private_bfd_data, \
+ _bfd_generic_init_private_section_data, \
+ NAME##_bfd_copy_private_section_data, \
+ NAME##_bfd_copy_private_symbol_data, \
+ NAME##_bfd_copy_private_header_data, \
+ NAME##_bfd_set_private_flags, \
+ NAME##_bfd_print_private_bfd_data
+
+ /* Called to copy BFD general private data from one object file
+ to another. */
+ bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
+ /* Called to merge BFD general private data from one object file
+ to a common output file when linking. */
+ bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *);
+ /* Called to initialize BFD private section data from one object file
+ to another. */
+ #define bfd_init_private_section_data(ibfd, isec, obfd, osec, link_info) \
+ BFD_SEND (obfd, _bfd_init_private_section_data, (ibfd, isec, obfd, osec, link_info))
+ bfd_boolean (*_bfd_init_private_section_data)
+ (bfd *, sec_ptr, bfd *, sec_ptr, struct bfd_link_info *);
+ /* Called to copy BFD private section data from one object file
+ to another. */
+ bfd_boolean (*_bfd_copy_private_section_data)
+ (bfd *, sec_ptr, bfd *, sec_ptr);
+ /* Called to copy BFD private symbol data from one symbol
+ to another. */
+ bfd_boolean (*_bfd_copy_private_symbol_data)
+ (bfd *, asymbol *, bfd *, asymbol *);
+ /* Called to copy BFD private header data from one object file
+ to another. */
+ bfd_boolean (*_bfd_copy_private_header_data)
+ (bfd *, bfd *);
+ /* Called to set private backend flags. */
+ bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
+
+ /* Called to print private BFD data. */
+ bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
+
+ /* Core file entry points. */
+ #define BFD_JUMP_TABLE_CORE(NAME) \
+ NAME##_core_file_failing_command, \
+ NAME##_core_file_failing_signal, \
+ NAME##_core_file_matches_executable_p, \
+ NAME##_core_file_pid
+
+ char * (*_core_file_failing_command) (bfd *);
+ int (*_core_file_failing_signal) (bfd *);
+ bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
+ int (*_core_file_pid) (bfd *);
+
+ /* Archive entry points. */
+ #define BFD_JUMP_TABLE_ARCHIVE(NAME) \
+ NAME##_slurp_armap, \
+ NAME##_slurp_extended_name_table, \
+ NAME##_construct_extended_name_table, \
+ NAME##_truncate_arname, \
+ NAME##_write_armap, \
+ NAME##_read_ar_hdr, \
+ NAME##_write_ar_hdr, \
+ NAME##_openr_next_archived_file, \
+ NAME##_get_elt_at_index, \
+ NAME##_generic_stat_arch_elt, \
+ NAME##_update_armap_timestamp
+
+ bfd_boolean (*_bfd_slurp_armap) (bfd *);
+ bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
+ bfd_boolean (*_bfd_construct_extended_name_table)
+ (bfd *, char **, bfd_size_type *, const char **);
+ void (*_bfd_truncate_arname) (bfd *, const char *, char *);
+ bfd_boolean (*write_armap)
+ (bfd *, unsigned int, struct orl *, unsigned int, int);
+ void * (*_bfd_read_ar_hdr_fn) (bfd *);
+ bfd_boolean (*_bfd_write_ar_hdr_fn) (bfd *, bfd *);
+ bfd * (*openr_next_archived_file) (bfd *, bfd *);
+ #define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
+ bfd * (*_bfd_get_elt_at_index) (bfd *, symindex);
+ int (*_bfd_stat_arch_elt) (bfd *, struct stat *);
+ bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
+
+ /* Entry points used for symbols. */
+ #define BFD_JUMP_TABLE_SYMBOLS(NAME) \
+ NAME##_get_symtab_upper_bound, \
+ NAME##_canonicalize_symtab, \
+ NAME##_make_empty_symbol, \
+ NAME##_print_symbol, \
+ NAME##_get_symbol_info, \
+ NAME##_bfd_is_local_label_name, \
+ NAME##_bfd_is_target_special_symbol, \
+ NAME##_get_lineno, \
+ NAME##_find_nearest_line, \
+ _bfd_generic_find_line, \
+ NAME##_find_inliner_info, \
+ NAME##_bfd_make_debug_symbol, \
+ NAME##_read_minisymbols, \
+ NAME##_minisymbol_to_symbol
+
+ long (*_bfd_get_symtab_upper_bound) (bfd *);
+ long (*_bfd_canonicalize_symtab)
+ (bfd *, struct bfd_symbol **);
+ struct bfd_symbol *
+ (*_bfd_make_empty_symbol) (bfd *);
+ void (*_bfd_print_symbol)
+ (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
+ #define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
+ void (*_bfd_get_symbol_info)
+ (bfd *, struct bfd_symbol *, symbol_info *);
+ #define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
+ bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
+ bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
+ alent * (*_get_lineno) (bfd *, struct bfd_symbol *);
+ bfd_boolean (*_bfd_find_nearest_line)
+ (bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma,
+ const char **, const char **, unsigned int *);
+ bfd_boolean (*_bfd_find_line)
+ (bfd *, struct bfd_symbol **, struct bfd_symbol *,
+ const char **, unsigned int *);
+ bfd_boolean (*_bfd_find_inliner_info)
+ (bfd *, const char **, const char **, unsigned int *);
+ /* Back-door to allow format-aware applications to create debug symbols
+ while using BFD for everything else. Currently used by the assembler
+ when creating COFF files. */
+ asymbol * (*_bfd_make_debug_symbol)
+ (bfd *, void *, unsigned long size);
+ #define bfd_read_minisymbols(b, d, m, s) \
+ BFD_SEND (b, _read_minisymbols, (b, d, m, s))
+ long (*_read_minisymbols)
+ (bfd *, bfd_boolean, void **, unsigned int *);
+ #define bfd_minisymbol_to_symbol(b, d, m, f) \
+ BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
+ asymbol * (*_minisymbol_to_symbol)
+ (bfd *, bfd_boolean, const void *, asymbol *);
+
+ /* Routines for relocs. */
+ #define BFD_JUMP_TABLE_RELOCS(NAME) \
+ NAME##_get_reloc_upper_bound, \
+ NAME##_canonicalize_reloc, \
+ NAME##_bfd_reloc_type_lookup, \
+ NAME##_bfd_reloc_name_lookup
+
+ long (*_get_reloc_upper_bound) (bfd *, sec_ptr);
+ long (*_bfd_canonicalize_reloc)
+ (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
+ /* See documentation on reloc types. */
+ reloc_howto_type *
+ (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
+ reloc_howto_type *
+ (*reloc_name_lookup) (bfd *, const char *);
+
+
+ /* Routines used when writing an object file. */
+ #define BFD_JUMP_TABLE_WRITE(NAME) \
+ NAME##_set_arch_mach, \
+ NAME##_set_section_contents
+
+ bfd_boolean (*_bfd_set_arch_mach)
+ (bfd *, enum bfd_architecture, unsigned long);
+ bfd_boolean (*_bfd_set_section_contents)
+ (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
+
+ /* Routines used by the linker. */
+ #define BFD_JUMP_TABLE_LINK(NAME) \
+ NAME##_sizeof_headers, \
+ NAME##_bfd_get_relocated_section_contents, \
+ NAME##_bfd_relax_section, \
+ NAME##_bfd_link_hash_table_create, \
+ NAME##_bfd_link_hash_table_free, \
+ NAME##_bfd_link_add_symbols, \
+ NAME##_bfd_link_just_syms, \
+ NAME##_bfd_copy_link_hash_symbol_type, \
+ NAME##_bfd_final_link, \
+ NAME##_bfd_link_split_section, \
+ NAME##_bfd_gc_sections, \
+ NAME##_bfd_lookup_section_flags, \
+ NAME##_bfd_merge_sections, \
+ NAME##_bfd_is_group_section, \
+ NAME##_bfd_discard_group, \
+ NAME##_section_already_linked, \
+ NAME##_bfd_define_common_symbol
+
+ int (*_bfd_sizeof_headers) (bfd *, struct bfd_link_info *);
+ bfd_byte * (*_bfd_get_relocated_section_contents)
+ (bfd *, struct bfd_link_info *, struct bfd_link_order *,
+ bfd_byte *, bfd_boolean, struct bfd_symbol **);
+
+ bfd_boolean (*_bfd_relax_section)
+ (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
+
+ /* Create a hash table for the linker. Different backends store
+ different information in this table. */
+ struct bfd_link_hash_table *
+ (*_bfd_link_hash_table_create) (bfd *);
+
+ /* Release the memory associated with the linker hash table. */
+ void (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *);
+
+ /* Add symbols from this object file into the hash table. */
+ bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
+
+ /* Indicate that we are only retrieving symbol values from this section. */
+ void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
+
+ /* Copy the symbol type of a linker hash table entry. */
+ #define bfd_copy_link_hash_symbol_type(b, t, f) \
+ BFD_SEND (b, _bfd_copy_link_hash_symbol_type, (b, t, f))
+ void (*_bfd_copy_link_hash_symbol_type)
+ (bfd *, struct bfd_link_hash_entry *, struct bfd_link_hash_entry *);
+
+ /* Do a link based on the link_order structures attached to each
+ section of the BFD. */
+ bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
+
+ /* Should this section be split up into smaller pieces during linking. */
+ bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
+
+ /* Remove sections that are not referenced from the output. */
+ bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
+
+ /* Sets the bitmask of allowed and disallowed section flags. */
+ void (*_bfd_lookup_section_flags) (struct bfd_link_info *,
+ struct flag_info *);
+
+ /* Attempt to merge SEC_MERGE sections. */
+ bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
+
+ /* Is this section a member of a group? */
+ bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
+
+ /* Discard members of a group. */
+ bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
+
+ /* Check if SEC has been already linked during a reloceatable or
+ final link. */
+ bfd_boolean (*_section_already_linked) (bfd *, asection *,
+ struct bfd_link_info *);
+
+ /* Define a common symbol. */
+ bfd_boolean (*_bfd_define_common_symbol) (bfd *, struct bfd_link_info *,
+ struct bfd_link_hash_entry *);
+
+ /* Routines to handle dynamic symbols and relocs. */
+ #define BFD_JUMP_TABLE_DYNAMIC(NAME) \
+ NAME##_get_dynamic_symtab_upper_bound, \
+ NAME##_canonicalize_dynamic_symtab, \
+ NAME##_get_synthetic_symtab, \
+ NAME##_get_dynamic_reloc_upper_bound, \
+ NAME##_canonicalize_dynamic_reloc
+
+ /* Get the amount of memory required to hold the dynamic symbols. */
+ long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
+ /* Read in the dynamic symbols. */
+ long (*_bfd_canonicalize_dynamic_symtab)
+ (bfd *, struct bfd_symbol **);
+ /* Create synthetized symbols. */
+ long (*_bfd_get_synthetic_symtab)
+ (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
+ struct bfd_symbol **);
+ /* Get the amount of memory required to hold the dynamic relocs. */
+ long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
+ /* Read in the dynamic relocs. */
+ long (*_bfd_canonicalize_dynamic_reloc)
+ (bfd *, arelent **, struct bfd_symbol **);
+ A pointer to an alternative bfd_target in case the current one is not
+satisfactory. This can happen when the target cpu supports both big
+and little endian code, and target chosen by the linker has the wrong
+endianness. The function open_output() in ld/ldlang.c uses this field
+to find an alternative output format that is suitable.
+ /* Opposite endian version of this target. */
+ const struct bfd_target * alternative_target;
+
+ /* Data for use by back-end routines, which isn't
+ generic enough to belong in this structure. */
+ const void *backend_data;
+
+ } bfd_target;
+
+2.12.1.1 `bfd_set_default_target'
+.................................
+
+*Synopsis*
+ bfd_boolean bfd_set_default_target (const char *name);
+ *Description*
+Set the default target vector to use when recognizing a BFD. This
+takes the name of the target, which may be a BFD target name or a
+configuration triplet.
+
+2.12.1.2 `bfd_find_target'
+..........................
+
+*Synopsis*
+ const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
+ *Description*
+Return a pointer to the transfer vector for the object target named
+TARGET_NAME. If TARGET_NAME is `NULL', choose the one in the
+environment variable `GNUTARGET'; if that is null or not defined, then
+choose the first entry in the target list. Passing in the string
+"default" or setting the environment variable to "default" will cause
+the first entry in the target list to be returned, and
+"target_defaulted" will be set in the BFD if ABFD isn't `NULL'. This
+causes `bfd_check_format' to loop over all the targets to find the one
+that matches the file being read.
+
+2.12.1.3 `bfd_get_target_info'
+..............................
+
+*Synopsis*
+ const bfd_target *bfd_get_target_info (const char *target_name,
+ bfd *abfd,
+ bfd_boolean *is_bigendian,
+ int *underscoring,
+ const char **def_target_arch);
+ *Description*
+Return a pointer to the transfer vector for the object target named
+TARGET_NAME. If TARGET_NAME is `NULL', choose the one in the
+environment variable `GNUTARGET'; if that is null or not defined, then
+choose the first entry in the target list. Passing in the string
+"default" or setting the environment variable to "default" will cause
+the first entry in the target list to be returned, and
+"target_defaulted" will be set in the BFD if ABFD isn't `NULL'. This
+causes `bfd_check_format' to loop over all the targets to find the one
+that matches the file being read. If IS_BIGENDIAN is not `NULL', then
+set this value to target's endian mode. True for big-endian, FALSE for
+little-endian or for invalid target. If UNDERSCORING is not `NULL',
+then set this value to target's underscoring mode. Zero for
+none-underscoring, -1 for invalid target, else the value of target
+vector's symbol underscoring. If DEF_TARGET_ARCH is not `NULL', then
+set it to the architecture string specified by the target_name.
+
+2.12.1.4 `bfd_target_list'
+..........................
+
+*Synopsis*
+ const char ** bfd_target_list (void);
+ *Description*
+Return a freshly malloced NULL-terminated vector of the names of all
+the valid BFD targets. Do not modify the names.
+
+2.12.1.5 `bfd_seach_for_target'
+...............................
+
+*Synopsis*
+ const bfd_target *bfd_search_for_target
+ (int (*search_func) (const bfd_target *, void *),
+ void *);
+ *Description*
+Return a pointer to the first transfer vector in the list of transfer
+vectors maintained by BFD that produces a non-zero result when passed
+to the function SEARCH_FUNC. The parameter DATA is passed, unexamined,
+to the search function.
+
+
+File: bfd.info, Node: Architectures, Next: Opening and Closing, Prev: Targets, Up: BFD front end
+
+2.13 Architectures
+==================
+
+BFD keeps one atom in a BFD describing the architecture of the data
+attached to the BFD: a pointer to a `bfd_arch_info_type'.
+
+ Pointers to structures can be requested independently of a BFD so
+that an architecture's information can be interrogated without access
+to an open BFD.
+
+ The architecture information is provided by each architecture
+package. The set of default architectures is selected by the macro
+`SELECT_ARCHITECTURES'. This is normally set up in the
+`config/TARGET.mt' file of your choice. If the name is not defined,
+then all the architectures supported are included.
+
+ When BFD starts up, all the architectures are called with an
+initialize method. It is up to the architecture back end to insert as
+many items into the list of architectures as it wants to; generally
+this would be one for each machine and one for the default case (an
+item with a machine field of 0).
+
+ BFD's idea of an architecture is implemented in `archures.c'.
+
+2.13.1 bfd_architecture
+-----------------------
+
+*Description*
+This enum gives the object file's CPU architecture, in a global
+sense--i.e., what processor family does it belong to? Another field
+indicates which processor within the family is in use. The machine
+gives a number which distinguishes different versions of the
+architecture, containing, for example, 2 and 3 for Intel i960 KA and
+i960 KB, and 68020 and 68030 for Motorola 68020 and 68030.
+ enum bfd_architecture
+ {
+ bfd_arch_unknown, /* File arch not known. */
+ bfd_arch_obscure, /* Arch known, not one of these. */
+ bfd_arch_m68k, /* Motorola 68xxx */
+ #define bfd_mach_m68000 1
+ #define bfd_mach_m68008 2
+ #define bfd_mach_m68010 3
+ #define bfd_mach_m68020 4
+ #define bfd_mach_m68030 5
+ #define bfd_mach_m68040 6
+ #define bfd_mach_m68060 7
+ #define bfd_mach_cpu32 8
+ #define bfd_mach_fido 9
+ #define bfd_mach_mcf_isa_a_nodiv 10
+ #define bfd_mach_mcf_isa_a 11
+ #define bfd_mach_mcf_isa_a_mac 12
+ #define bfd_mach_mcf_isa_a_emac 13
+ #define bfd_mach_mcf_isa_aplus 14
+ #define bfd_mach_mcf_isa_aplus_mac 15
+ #define bfd_mach_mcf_isa_aplus_emac 16
+ #define bfd_mach_mcf_isa_b_nousp 17
+ #define bfd_mach_mcf_isa_b_nousp_mac 18
+ #define bfd_mach_mcf_isa_b_nousp_emac 19
+ #define bfd_mach_mcf_isa_b 20
+ #define bfd_mach_mcf_isa_b_mac 21
+ #define bfd_mach_mcf_isa_b_emac 22
+ #define bfd_mach_mcf_isa_b_float 23
+ #define bfd_mach_mcf_isa_b_float_mac 24
+ #define bfd_mach_mcf_isa_b_float_emac 25
+ #define bfd_mach_mcf_isa_c 26
+ #define bfd_mach_mcf_isa_c_mac 27
+ #define bfd_mach_mcf_isa_c_emac 28
+ #define bfd_mach_mcf_isa_c_nodiv 29
+ #define bfd_mach_mcf_isa_c_nodiv_mac 30
+ #define bfd_mach_mcf_isa_c_nodiv_emac 31
+ bfd_arch_vax, /* DEC Vax */
+ bfd_arch_i960, /* Intel 960 */
+ /* The order of the following is important.
+ lower number indicates a machine type that
+ only accepts a subset of the instructions
+ available to machines with higher numbers.
+ The exception is the "ca", which is
+ incompatible with all other machines except
+ "core". */
+
+ #define bfd_mach_i960_core 1
+ #define bfd_mach_i960_ka_sa 2
+ #define bfd_mach_i960_kb_sb 3
+ #define bfd_mach_i960_mc 4
+ #define bfd_mach_i960_xa 5
+ #define bfd_mach_i960_ca 6
+ #define bfd_mach_i960_jx 7
+ #define bfd_mach_i960_hx 8
+
+ bfd_arch_or32, /* OpenRISC 32 */
+
+ bfd_arch_sparc, /* SPARC */
+ #define bfd_mach_sparc 1
+ /* The difference between v8plus and v9 is that v9 is a true 64 bit env. */
+ #define bfd_mach_sparc_sparclet 2
+ #define bfd_mach_sparc_sparclite 3
+ #define bfd_mach_sparc_v8plus 4
+ #define bfd_mach_sparc_v8plusa 5 /* with ultrasparc add'ns. */
+ #define bfd_mach_sparc_sparclite_le 6
+ #define bfd_mach_sparc_v9 7
+ #define bfd_mach_sparc_v9a 8 /* with ultrasparc add'ns. */
+ #define bfd_mach_sparc_v8plusb 9 /* with cheetah add'ns. */
+ #define bfd_mach_sparc_v9b 10 /* with cheetah add'ns. */
+ /* Nonzero if MACH has the v9 instruction set. */
+ #define bfd_mach_sparc_v9_p(mach) \
+ ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
+ && (mach) != bfd_mach_sparc_sparclite_le)
+ /* Nonzero if MACH is a 64 bit sparc architecture. */
+ #define bfd_mach_sparc_64bit_p(mach) \
+ ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
+ bfd_arch_spu, /* PowerPC SPU */
+ #define bfd_mach_spu 256
+ bfd_arch_mips, /* MIPS Rxxxx */
+ #define bfd_mach_mips3000 3000
+ #define bfd_mach_mips3900 3900
+ #define bfd_mach_mips4000 4000
+ #define bfd_mach_mips4010 4010
+ #define bfd_mach_mips4100 4100
+ #define bfd_mach_mips4111 4111
+ #define bfd_mach_mips4120 4120
+ #define bfd_mach_mips4300 4300
+ #define bfd_mach_mips4400 4400
+ #define bfd_mach_mips4600 4600
+ #define bfd_mach_mips4650 4650
+ #define bfd_mach_mips5000 5000
+ #define bfd_mach_mips5400 5400
+ #define bfd_mach_mips5500 5500
+ #define bfd_mach_mips6000 6000
+ #define bfd_mach_mips7000 7000
+ #define bfd_mach_mips8000 8000
+ #define bfd_mach_mips9000 9000
+ #define bfd_mach_mips10000 10000
+ #define bfd_mach_mips12000 12000
+ #define bfd_mach_mips14000 14000
+ #define bfd_mach_mips16000 16000
+ #define bfd_mach_mips16 16
+ #define bfd_mach_mips5 5
+ #define bfd_mach_mips_loongson_2e 3001
+ #define bfd_mach_mips_loongson_2f 3002
+ #define bfd_mach_mips_loongson_3a 3003
+ #define bfd_mach_mips_sb1 12310201 /* octal 'SB', 01 */
+ #define bfd_mach_mips_octeon 6501
+ #define bfd_mach_mips_xlr 887682 /* decimal 'XLR' */
+ #define bfd_mach_mipsisa32 32
+ #define bfd_mach_mipsisa32r2 33
+ #define bfd_mach_mipsisa64 64
+ #define bfd_mach_mipsisa64r2 65
+ #define bfd_mach_mips_micromips 96
+ bfd_arch_i386, /* Intel 386 */
+ #define bfd_mach_i386_intel_syntax (1 << 0)
+ #define bfd_mach_i386_i8086 (1 << 1)
+ #define bfd_mach_i386_i386 (1 << 2)
+ #define bfd_mach_x86_64 (1 << 3)
+ #define bfd_mach_x64_32 (1 << 4)
+ #define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax)
+ #define bfd_mach_x86_64_intel_syntax (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax)
+ #define bfd_mach_x64_32_intel_syntax (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax)
+ bfd_arch_l1om, /* Intel L1OM */
+ #define bfd_mach_l1om (1 << 5)
+ #define bfd_mach_l1om_intel_syntax (bfd_mach_l1om | bfd_mach_i386_intel_syntax)
+ bfd_arch_k1om, /* Intel K1OM */
+ #define bfd_mach_k1om (1 << 6)
+ #define bfd_mach_k1om_intel_syntax (bfd_mach_k1om | bfd_mach_i386_intel_syntax)
+ bfd_arch_we32k, /* AT&T WE32xxx */
+ bfd_arch_tahoe, /* CCI/Harris Tahoe */
+ bfd_arch_i860, /* Intel 860 */
+ bfd_arch_i370, /* IBM 360/370 Mainframes */
+ bfd_arch_romp, /* IBM ROMP PC/RT */
+ bfd_arch_convex, /* Convex */
+ bfd_arch_m88k, /* Motorola 88xxx */
+ bfd_arch_m98k, /* Motorola 98xxx */
+ bfd_arch_pyramid, /* Pyramid Technology */
+ bfd_arch_h8300, /* Renesas H8/300 (formerly Hitachi H8/300) */
+ #define bfd_mach_h8300 1
+ #define bfd_mach_h8300h 2
+ #define bfd_mach_h8300s 3
+ #define bfd_mach_h8300hn 4
+ #define bfd_mach_h8300sn 5
+ #define bfd_mach_h8300sx 6
+ #define bfd_mach_h8300sxn 7
+ bfd_arch_pdp11, /* DEC PDP-11 */
+ bfd_arch_plugin,
+ bfd_arch_powerpc, /* PowerPC */
+ #define bfd_mach_ppc 32
+ #define bfd_mach_ppc64 64
+ #define bfd_mach_ppc_403 403
+ #define bfd_mach_ppc_403gc 4030
+ #define bfd_mach_ppc_405 405
+ #define bfd_mach_ppc_505 505
+ #define bfd_mach_ppc_601 601
+ #define bfd_mach_ppc_602 602
+ #define bfd_mach_ppc_603 603
+ #define bfd_mach_ppc_ec603e 6031
+ #define bfd_mach_ppc_604 604
+ #define bfd_mach_ppc_620 620
+ #define bfd_mach_ppc_630 630
+ #define bfd_mach_ppc_750 750
+ #define bfd_mach_ppc_860 860
+ #define bfd_mach_ppc_a35 35
+ #define bfd_mach_ppc_rs64ii 642
+ #define bfd_mach_ppc_rs64iii 643
+ #define bfd_mach_ppc_7400 7400
+ #define bfd_mach_ppc_e500 500
+ #define bfd_mach_ppc_e500mc 5001
+ #define bfd_mach_ppc_e500mc64 5005
+ #define bfd_mach_ppc_titan 83
+ bfd_arch_rs6000, /* IBM RS/6000 */
+ #define bfd_mach_rs6k 6000
+ #define bfd_mach_rs6k_rs1 6001
+ #define bfd_mach_rs6k_rsc 6003
+ #define bfd_mach_rs6k_rs2 6002
+ bfd_arch_hppa, /* HP PA RISC */
+ #define bfd_mach_hppa10 10
+ #define bfd_mach_hppa11 11
+ #define bfd_mach_hppa20 20
+ #define bfd_mach_hppa20w 25
+ bfd_arch_d10v, /* Mitsubishi D10V */
+ #define bfd_mach_d10v 1
+ #define bfd_mach_d10v_ts2 2
+ #define bfd_mach_d10v_ts3 3
+ bfd_arch_d30v, /* Mitsubishi D30V */
+ bfd_arch_dlx, /* DLX */
+ bfd_arch_m68hc11, /* Motorola 68HC11 */
+ bfd_arch_m68hc12, /* Motorola 68HC12 */
+ #define bfd_mach_m6812_default 0
+ #define bfd_mach_m6812 1
+ #define bfd_mach_m6812s 2
+ bfd_arch_z8k, /* Zilog Z8000 */
+ #define bfd_mach_z8001 1
+ #define bfd_mach_z8002 2
+ bfd_arch_h8500, /* Renesas H8/500 (formerly Hitachi H8/500) */
+ bfd_arch_sh, /* Renesas / SuperH SH (formerly Hitachi SH) */
+ #define bfd_mach_sh 1
+ #define bfd_mach_sh2 0x20
+ #define bfd_mach_sh_dsp 0x2d
+ #define bfd_mach_sh2a 0x2a
+ #define bfd_mach_sh2a_nofpu 0x2b
+ #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
+ #define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
+ #define bfd_mach_sh2a_or_sh4 0x2a3
+ #define bfd_mach_sh2a_or_sh3e 0x2a4
+ #define bfd_mach_sh2e 0x2e
+ #define bfd_mach_sh3 0x30
+ #define bfd_mach_sh3_nommu 0x31
+ #define bfd_mach_sh3_dsp 0x3d
+ #define bfd_mach_sh3e 0x3e
+ #define bfd_mach_sh4 0x40
+ #define bfd_mach_sh4_nofpu 0x41
+ #define bfd_mach_sh4_nommu_nofpu 0x42
+ #define bfd_mach_sh4a 0x4a
+ #define bfd_mach_sh4a_nofpu 0x4b
+ #define bfd_mach_sh4al_dsp 0x4d
+ #define bfd_mach_sh5 0x50
+ bfd_arch_alpha, /* Dec Alpha */
+ #define bfd_mach_alpha_ev4 0x10
+ #define bfd_mach_alpha_ev5 0x20
+ #define bfd_mach_alpha_ev6 0x30
+ bfd_arch_arm, /* Advanced Risc Machines ARM. */
+ #define bfd_mach_arm_unknown 0
+ #define bfd_mach_arm_2 1
+ #define bfd_mach_arm_2a 2
+ #define bfd_mach_arm_3 3
+ #define bfd_mach_arm_3M 4
+ #define bfd_mach_arm_4 5
+ #define bfd_mach_arm_4T 6
+ #define bfd_mach_arm_5 7
+ #define bfd_mach_arm_5T 8
+ #define bfd_mach_arm_5TE 9
+ #define bfd_mach_arm_XScale 10
+ #define bfd_mach_arm_ep9312 11
+ #define bfd_mach_arm_iWMMXt 12
+ #define bfd_mach_arm_iWMMXt2 13
+ bfd_arch_ns32k, /* National Semiconductors ns32000 */
+ bfd_arch_w65, /* WDC 65816 */
+ bfd_arch_tic30, /* Texas Instruments TMS320C30 */
+ bfd_arch_tic4x, /* Texas Instruments TMS320C3X/4X */
+ #define bfd_mach_tic3x 30
+ #define bfd_mach_tic4x 40
+ bfd_arch_tic54x, /* Texas Instruments TMS320C54X */
+ bfd_arch_tic6x, /* Texas Instruments TMS320C6X */
+ bfd_arch_tic80, /* TI TMS320c80 (MVP) */
+ bfd_arch_v850, /* NEC V850 */
+ #define bfd_mach_v850 1
+ #define bfd_mach_v850e 'E'
+ #define bfd_mach_v850e1 '1'
+ #define bfd_mach_v850e2 0x4532
+ #define bfd_mach_v850e2v3 0x45325633
+ bfd_arch_arc, /* ARC Cores */
+ #define bfd_mach_arc_5 5
+ #define bfd_mach_arc_6 6
+ #define bfd_mach_arc_7 7
+ #define bfd_mach_arc_8 8
+ bfd_arch_m32c, /* Renesas M16C/M32C. */
+ #define bfd_mach_m16c 0x75
+ #define bfd_mach_m32c 0x78
+ bfd_arch_m32r, /* Renesas M32R (formerly Mitsubishi M32R/D) */
+ #define bfd_mach_m32r 1 /* For backwards compatibility. */
+ #define bfd_mach_m32rx 'x'
+ #define bfd_mach_m32r2 '2'
+ bfd_arch_mn10200, /* Matsushita MN10200 */
+ bfd_arch_mn10300, /* Matsushita MN10300 */
+ #define bfd_mach_mn10300 300
+ #define bfd_mach_am33 330
+ #define bfd_mach_am33_2 332
+ bfd_arch_fr30,
+ #define bfd_mach_fr30 0x46523330
+ bfd_arch_frv,
+ #define bfd_mach_frv 1
+ #define bfd_mach_frvsimple 2
+ #define bfd_mach_fr300 300
+ #define bfd_mach_fr400 400
+ #define bfd_mach_fr450 450
+ #define bfd_mach_frvtomcat 499 /* fr500 prototype */
+ #define bfd_mach_fr500 500
+ #define bfd_mach_fr550 550
+ bfd_arch_moxie, /* The moxie processor */
+ #define bfd_mach_moxie 1
+ bfd_arch_mcore,
+ bfd_arch_mep,
+ #define bfd_mach_mep 1
+ #define bfd_mach_mep_h1 0x6831
+ #define bfd_mach_mep_c5 0x6335
+ bfd_arch_ia64, /* HP/Intel ia64 */
+ #define bfd_mach_ia64_elf64 64
+ #define bfd_mach_ia64_elf32 32
+ bfd_arch_ip2k, /* Ubicom IP2K microcontrollers. */
+ #define bfd_mach_ip2022 1
+ #define bfd_mach_ip2022ext 2
+ bfd_arch_iq2000, /* Vitesse IQ2000. */
+ #define bfd_mach_iq2000 1
+ #define bfd_mach_iq10 2
+ bfd_arch_mt,
+ #define bfd_mach_ms1 1
+ #define bfd_mach_mrisc2 2
+ #define bfd_mach_ms2 3
+ bfd_arch_pj,
+ bfd_arch_avr, /* Atmel AVR microcontrollers. */
+ #define bfd_mach_avr1 1
+ #define bfd_mach_avr2 2
+ #define bfd_mach_avr25 25
+ #define bfd_mach_avr3 3
+ #define bfd_mach_avr31 31
+ #define bfd_mach_avr35 35
+ #define bfd_mach_avr4 4
+ #define bfd_mach_avr5 5
+ #define bfd_mach_avr51 51
+ #define bfd_mach_avr6 6
+ #define bfd_mach_avrxmega1 101
+ #define bfd_mach_avrxmega2 102
+ #define bfd_mach_avrxmega3 103
+ #define bfd_mach_avrxmega4 104
+ #define bfd_mach_avrxmega5 105
+ #define bfd_mach_avrxmega6 106
+ #define bfd_mach_avrxmega7 107
+ bfd_arch_bfin, /* ADI Blackfin */
+ #define bfd_mach_bfin 1
+ bfd_arch_cr16, /* National Semiconductor CompactRISC (ie CR16). */
+ #define bfd_mach_cr16 1
+ bfd_arch_cr16c, /* National Semiconductor CompactRISC. */
+ #define bfd_mach_cr16c 1
+ bfd_arch_crx, /* National Semiconductor CRX. */
+ #define bfd_mach_crx 1
+ bfd_arch_cris, /* Axis CRIS */
+ #define bfd_mach_cris_v0_v10 255
+ #define bfd_mach_cris_v32 32
+ #define bfd_mach_cris_v10_v32 1032
+ bfd_arch_rx, /* Renesas RX. */
+ #define bfd_mach_rx 0x75
+ bfd_arch_s390, /* IBM s390 */
+ #define bfd_mach_s390_31 31
+ #define bfd_mach_s390_64 64
+ bfd_arch_score, /* Sunplus score */
+ #define bfd_mach_score3 3
+ #define bfd_mach_score7 7
+ bfd_arch_openrisc, /* OpenRISC */
+ bfd_arch_mmix, /* Donald Knuth's educational processor. */
+ bfd_arch_xstormy16,
+ #define bfd_mach_xstormy16 1
+ bfd_arch_msp430, /* Texas Instruments MSP430 architecture. */
+ #define bfd_mach_msp11 11
+ #define bfd_mach_msp110 110
+ #define bfd_mach_msp12 12
+ #define bfd_mach_msp13 13
+ #define bfd_mach_msp14 14
+ #define bfd_mach_msp15 15
+ #define bfd_mach_msp16 16
+ #define bfd_mach_msp21 21
+ #define bfd_mach_msp31 31
+ #define bfd_mach_msp32 32
+ #define bfd_mach_msp33 33
+ #define bfd_mach_msp41 41
+ #define bfd_mach_msp42 42
+ #define bfd_mach_msp43 43
+ #define bfd_mach_msp44 44
+ bfd_arch_xc16x, /* Infineon's XC16X Series. */
+ #define bfd_mach_xc16x 1
+ #define bfd_mach_xc16xl 2
+ #define bfd_mach_xc16xs 3
+ bfd_arch_xtensa, /* Tensilica's Xtensa cores. */
+ #define bfd_mach_xtensa 1
+ bfd_arch_z80,
+ #define bfd_mach_z80strict 1 /* No undocumented opcodes. */
+ #define bfd_mach_z80 3 /* With ixl, ixh, iyl, and iyh. */
+ #define bfd_mach_z80full 7 /* All undocumented instructions. */
+ #define bfd_mach_r800 11 /* R800: successor with multiplication. */
+ bfd_arch_lm32, /* Lattice Mico32 */
+ #define bfd_mach_lm32 1
+ bfd_arch_microblaze,/* Xilinx MicroBlaze. */
+ bfd_arch_tilepro, /* Tilera TILEPro */
+ bfd_arch_tilegx, /* Tilera TILE-Gx */
+ #define bfd_mach_tilepro 1
+ #define bfd_mach_tilegx 1
+ bfd_arch_last
+ };
+
+2.13.2 bfd_arch_info
+--------------------
+
+*Description*
+This structure contains information on architectures for use within BFD.
+
+ typedef struct bfd_arch_info
+ {
+ int bits_per_word;
+ int bits_per_address;
+ int bits_per_byte;
+ enum bfd_architecture arch;
+ unsigned long mach;
+ const char *arch_name;
+ const char *printable_name;
+ unsigned int section_align_power;
+ /* TRUE if this is the default machine for the architecture.
+ The default arch should be the first entry for an arch so that
+ all the entries for that arch can be accessed via `next'. */
+ bfd_boolean the_default;
+ const struct bfd_arch_info * (*compatible)
+ (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
+
+ bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
+
+ const struct bfd_arch_info *next;
+ }
+ bfd_arch_info_type;
+
+2.13.2.1 `bfd_printable_name'
+.............................
+
+*Synopsis*
+ const char *bfd_printable_name (bfd *abfd);
+ *Description*
+Return a printable string representing the architecture and machine
+from the pointer to the architecture info structure.
+
+2.13.2.2 `bfd_scan_arch'
+........................
+
+*Synopsis*
+ const bfd_arch_info_type *bfd_scan_arch (const char *string);
+ *Description*
+Figure out if BFD supports any cpu which could be described with the
+name STRING. Return a pointer to an `arch_info' structure if a machine
+is found, otherwise NULL.
+
+2.13.2.3 `bfd_arch_list'
+........................
+
+*Synopsis*
+ const char **bfd_arch_list (void);
+ *Description*
+Return a freshly malloced NULL-terminated vector of the names of all
+the valid BFD architectures. Do not modify the names.
+
+2.13.2.4 `bfd_arch_get_compatible'
+..................................
+
+*Synopsis*
+ const bfd_arch_info_type *bfd_arch_get_compatible
+ (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
+ *Description*
+Determine whether two BFDs' architectures and machine types are
+compatible. Calculates the lowest common denominator between the two
+architectures and machine types implied by the BFDs and returns a
+pointer to an `arch_info' structure describing the compatible machine.
+
+2.13.2.5 `bfd_default_arch_struct'
+..................................
+
+*Description*
+The `bfd_default_arch_struct' is an item of `bfd_arch_info_type' which
+has been initialized to a fairly generic state. A BFD starts life by
+pointing to this structure, until the correct back end has determined
+the real architecture of the file.
+ extern const bfd_arch_info_type bfd_default_arch_struct;
+
+2.13.2.6 `bfd_set_arch_info'
+............................
+
+*Synopsis*
+ void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
+ *Description*
+Set the architecture info of ABFD to ARG.
+
+2.13.2.7 `bfd_default_set_arch_mach'
+....................................
+
+*Synopsis*
+ bfd_boolean bfd_default_set_arch_mach
+ (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
+ *Description*
+Set the architecture and machine type in BFD ABFD to ARCH and MACH.
+Find the correct pointer to a structure and insert it into the
+`arch_info' pointer.
+
+2.13.2.8 `bfd_get_arch'
+.......................
+
+*Synopsis*
+ enum bfd_architecture bfd_get_arch (bfd *abfd);
+ *Description*
+Return the enumerated type which describes the BFD ABFD's architecture.
+
+2.13.2.9 `bfd_get_mach'
+.......................
+
+*Synopsis*
+ unsigned long bfd_get_mach (bfd *abfd);
+ *Description*
+Return the long type which describes the BFD ABFD's machine.
+
+2.13.2.10 `bfd_arch_bits_per_byte'
+..................................
+
+*Synopsis*
+ unsigned int bfd_arch_bits_per_byte (bfd *abfd);
+ *Description*
+Return the number of bits in one of the BFD ABFD's architecture's bytes.
+
+2.13.2.11 `bfd_arch_bits_per_address'
+.....................................
+
+*Synopsis*
+ unsigned int bfd_arch_bits_per_address (bfd *abfd);
+ *Description*
+Return the number of bits in one of the BFD ABFD's architecture's
+addresses.
+
+2.13.2.12 `bfd_default_compatible'
+..................................
+
+*Synopsis*
+ const bfd_arch_info_type *bfd_default_compatible
+ (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
+ *Description*
+The default function for testing for compatibility.
+
+2.13.2.13 `bfd_default_scan'
+............................
+
+*Synopsis*
+ bfd_boolean bfd_default_scan
+ (const struct bfd_arch_info *info, const char *string);
+ *Description*
+The default function for working out whether this is an architecture
+hit and a machine hit.
+
+2.13.2.14 `bfd_get_arch_info'
+.............................
+
+*Synopsis*
+ const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
+ *Description*
+Return the architecture info struct in ABFD.
+
+2.13.2.15 `bfd_lookup_arch'
+...........................
+
+*Synopsis*
+ const bfd_arch_info_type *bfd_lookup_arch
+ (enum bfd_architecture arch, unsigned long machine);
+ *Description*
+Look for the architecture info structure which matches the arguments
+ARCH and MACHINE. A machine of 0 matches the machine/architecture
+structure which marks itself as the default.
+
+2.13.2.16 `bfd_printable_arch_mach'
+...................................
+
+*Synopsis*
+ const char *bfd_printable_arch_mach
+ (enum bfd_architecture arch, unsigned long machine);
+ *Description*
+Return a printable string representing the architecture and machine
+type.
+
+ This routine is depreciated.
+
+2.13.2.17 `bfd_octets_per_byte'
+...............................
+
+*Synopsis*
+ unsigned int bfd_octets_per_byte (bfd *abfd);
+ *Description*
+Return the number of octets (8-bit quantities) per target byte (minimum
+addressable unit). In most cases, this will be one, but some DSP
+targets have 16, 32, or even 48 bits per byte.
+
+2.13.2.18 `bfd_arch_mach_octets_per_byte'
+.........................................
+
+*Synopsis*
+ unsigned int bfd_arch_mach_octets_per_byte
+ (enum bfd_architecture arch, unsigned long machine);
+ *Description*
+See bfd_octets_per_byte.
+
+ This routine is provided for those cases where a bfd * is not
+available
+
+
+File: bfd.info, Node: Opening and Closing, Next: Internal, Prev: Architectures, Up: BFD front end
+
+ /* Set to N to open the next N BFDs using an alternate id space. */
+ extern unsigned int bfd_use_reserved_id;
+
+2.14 Opening and closing BFDs
+=============================
+
+2.14.1 Functions for opening and closing
+----------------------------------------
+
+2.14.1.1 `bfd_fopen'
+....................
+
+*Synopsis*
+ bfd *bfd_fopen (const char *filename, const char *target,
+ const char *mode, int fd);
+ *Description*
+Open the file FILENAME with the target TARGET. Return a pointer to the
+created BFD. If FD is not -1, then `fdopen' is used to open the file;
+otherwise, `fopen' is used. MODE is passed directly to `fopen' or
+`fdopen'.
+
+ Calls `bfd_find_target', so TARGET is interpreted as by that
+function.
+
+ The new BFD is marked as cacheable iff FD is -1.
+
+ If `NULL' is returned then an error has occured. Possible errors
+are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call'
+error.
+
+2.14.1.2 `bfd_openr'
+....................
+
+*Synopsis*
+ bfd *bfd_openr (const char *filename, const char *target);
+ *Description*
+Open the file FILENAME (using `fopen') with the target TARGET. Return
+a pointer to the created BFD.
+
+ Calls `bfd_find_target', so TARGET is interpreted as by that
+function.
+
+ If `NULL' is returned then an error has occured. Possible errors
+are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call'
+error.
+
+2.14.1.3 `bfd_fdopenr'
+......................
+
+*Synopsis*
+ bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
+ *Description*
+`bfd_fdopenr' is to `bfd_fopenr' much like `fdopen' is to `fopen'. It
+opens a BFD on a file already described by the FD supplied.
+
+ When the file is later `bfd_close'd, the file descriptor will be
+closed. If the caller desires that this file descriptor be cached by
+BFD (opened as needed, closed as needed to free descriptors for other
+opens), with the supplied FD used as an initial file descriptor (but
+subject to closure at any time), call bfd_set_cacheable(bfd, 1) on the
+returned BFD. The default is to assume no caching; the file descriptor
+will remain open until `bfd_close', and will not be affected by BFD
+operations on other files.
+
+ Possible errors are `bfd_error_no_memory',
+`bfd_error_invalid_target' and `bfd_error_system_call'.
+
+2.14.1.4 `bfd_openstreamr'
+..........................
+
+*Synopsis*
+ bfd *bfd_openstreamr (const char *, const char *, void *);
+ *Description*
+Open a BFD for read access on an existing stdio stream. When the BFD
+is passed to `bfd_close', the stream will be closed.
+
+2.14.1.5 `bfd_openr_iovec'
+..........................
+
+*Synopsis*
+ bfd *bfd_openr_iovec (const char *filename, const char *target,
+ void *(*open_func) (struct bfd *nbfd,
+ void *open_closure),
+ void *open_closure,
+ file_ptr (*pread_func) (struct bfd *nbfd,
+ void *stream,
+ void *buf,
+ file_ptr nbytes,
+ file_ptr offset),
+ int (*close_func) (struct bfd *nbfd,
+ void *stream),
+ int (*stat_func) (struct bfd *abfd,
+ void *stream,
+ struct stat *sb));
+ *Description*
+Create and return a BFD backed by a read-only STREAM. The STREAM is
+created using OPEN_FUNC, accessed using PREAD_FUNC and destroyed using
+CLOSE_FUNC.
+
+ Calls `bfd_find_target', so TARGET is interpreted as by that
+function.
+
+ Calls OPEN_FUNC (which can call `bfd_zalloc' and `bfd_get_filename')
+to obtain the read-only stream backing the BFD. OPEN_FUNC either
+succeeds returning the non-`NULL' STREAM, or fails returning `NULL'
+(setting `bfd_error').
+
+ Calls PREAD_FUNC to request NBYTES of data from STREAM starting at
+OFFSET (e.g., via a call to `bfd_read'). PREAD_FUNC either succeeds
+returning the number of bytes read (which can be less than NBYTES when
+end-of-file), or fails returning -1 (setting `bfd_error').
+
+ Calls CLOSE_FUNC when the BFD is later closed using `bfd_close'.
+CLOSE_FUNC either succeeds returning 0, or fails returning -1 (setting
+`bfd_error').
+
+ Calls STAT_FUNC to fill in a stat structure for bfd_stat,
+bfd_get_size, and bfd_get_mtime calls. STAT_FUNC returns 0 on success,
+or returns -1 on failure (setting `bfd_error').
+
+ If `bfd_openr_iovec' returns `NULL' then an error has occurred.
+Possible errors are `bfd_error_no_memory', `bfd_error_invalid_target'
+and `bfd_error_system_call'.
+
+2.14.1.6 `bfd_openw'
+....................
+
+*Synopsis*
+ bfd *bfd_openw (const char *filename, const char *target);
+ *Description*
+Create a BFD, associated with file FILENAME, using the file format
+TARGET, and return a pointer to it.
+
+ Possible errors are `bfd_error_system_call', `bfd_error_no_memory',
+`bfd_error_invalid_target'.
+
+2.14.1.7 `bfd_close'
+....................
+
+*Synopsis*
+ bfd_boolean bfd_close (bfd *abfd);
+ *Description*
+Close a BFD. If the BFD was open for writing, then pending operations
+are completed and the file written out and closed. If the created file
+is executable, then `chmod' is called to mark it as such.
+
+ All memory attached to the BFD is released.
+
+ The file descriptor associated with the BFD is closed (even if it
+was passed in to BFD by `bfd_fdopenr').
+
+ *Returns*
+`TRUE' is returned if all is ok, otherwise `FALSE'.
+
+2.14.1.8 `bfd_close_all_done'
+.............................
+
+*Synopsis*
+ bfd_boolean bfd_close_all_done (bfd *);
+ *Description*
+Close a BFD. Differs from `bfd_close' since it does not complete any
+pending operations. This routine would be used if the application had
+just used BFD for swapping and didn't want to use any of the writing
+code.
+
+ If the created file is executable, then `chmod' is called to mark it
+as such.
+
+ All memory attached to the BFD is released.
+
+ *Returns*
+`TRUE' is returned if all is ok, otherwise `FALSE'.
+
+2.14.1.9 `bfd_create'
+.....................
+
+*Synopsis*
+ bfd *bfd_create (const char *filename, bfd *templ);
+ *Description*
+Create a new BFD in the manner of `bfd_openw', but without opening a
+file. The new BFD takes the target from the target used by TEMPL. The
+format is always set to `bfd_object'.
+
+2.14.1.10 `bfd_make_writable'
+.............................
+
+*Synopsis*
+ bfd_boolean bfd_make_writable (bfd *abfd);
+ *Description*
+Takes a BFD as created by `bfd_create' and converts it into one like as
+returned by `bfd_openw'. It does this by converting the BFD to
+BFD_IN_MEMORY. It's assumed that you will call `bfd_make_readable' on
+this bfd later.
+
+ *Returns*
+`TRUE' is returned if all is ok, otherwise `FALSE'.
+
+2.14.1.11 `bfd_make_readable'
+.............................
+
+*Synopsis*
+ bfd_boolean bfd_make_readable (bfd *abfd);
+ *Description*
+Takes a BFD as created by `bfd_create' and `bfd_make_writable' and
+converts it into one like as returned by `bfd_openr'. It does this by
+writing the contents out to the memory buffer, then reversing the
+direction.
+
+ *Returns*
+`TRUE' is returned if all is ok, otherwise `FALSE'.
+
+2.14.1.12 `bfd_alloc'
+.....................
+
+*Synopsis*
+ void *bfd_alloc (bfd *abfd, bfd_size_type wanted);
+ *Description*
+Allocate a block of WANTED bytes of memory attached to `abfd' and
+return a pointer to it.
+
+2.14.1.13 `bfd_alloc2'
+......................
+
+*Synopsis*
+ void *bfd_alloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size);
+ *Description*
+Allocate a block of NMEMB elements of SIZE bytes each of memory
+attached to `abfd' and return a pointer to it.
+
+2.14.1.14 `bfd_zalloc'
+......................
+
+*Synopsis*
+ void *bfd_zalloc (bfd *abfd, bfd_size_type wanted);
+ *Description*
+Allocate a block of WANTED bytes of zeroed memory attached to `abfd'
+and return a pointer to it.
+
+2.14.1.15 `bfd_zalloc2'
+.......................
+
+*Synopsis*
+ void *bfd_zalloc2 (bfd *abfd, bfd_size_type nmemb, bfd_size_type size);
+ *Description*
+Allocate a block of NMEMB elements of SIZE bytes each of zeroed memory
+attached to `abfd' and return a pointer to it.
+
+2.14.1.16 `bfd_calc_gnu_debuglink_crc32'
+........................................
+
+*Synopsis*
+ unsigned long bfd_calc_gnu_debuglink_crc32
+ (unsigned long crc, const unsigned char *buf, bfd_size_type len);
+ *Description*
+Computes a CRC value as used in the .gnu_debuglink section. Advances
+the previously computed CRC value by computing and adding in the crc32
+for LEN bytes of BUF.
+
+ *Returns*
+Return the updated CRC32 value.
+
+2.14.1.17 `get_debug_link_info'
+...............................
+
+*Synopsis*
+ char *get_debug_link_info (bfd *abfd, unsigned long *crc32_out);
+ *Description*
+fetch the filename and CRC32 value for any separate debuginfo
+associated with ABFD. Return NULL if no such info found, otherwise
+return filename and update CRC32_OUT.
+
+2.14.1.18 `separate_debug_file_exists'
+......................................
+
+*Synopsis*
+ bfd_boolean separate_debug_file_exists
+ (char *name, unsigned long crc32);
+ *Description*
+Checks to see if NAME is a file and if its contents match CRC32.
+
+2.14.1.19 `find_separate_debug_file'
+....................................
+
+*Synopsis*
+ char *find_separate_debug_file (bfd *abfd);
+ *Description*
+Searches ABFD for a reference to separate debugging information, scans
+various locations in the filesystem, including the file tree rooted at
+DEBUG_FILE_DIRECTORY, and returns a filename of such debugging
+information if the file is found and has matching CRC32. Returns NULL
+if no reference to debugging file exists, or file cannot be found.
+
+2.14.1.20 `bfd_follow_gnu_debuglink'
+....................................
+
+*Synopsis*
+ char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
+ *Description*
+Takes a BFD and searches it for a .gnu_debuglink section. If this
+section is found, it examines the section for the name and checksum of
+a '.debug' file containing auxiliary debugging information. It then
+searches the filesystem for this .debug file in some standard
+locations, including the directory tree rooted at DIR, and if found
+returns the full filename.
+
+ If DIR is NULL, it will search a default path configured into libbfd
+at build time. [XXX this feature is not currently implemented].
+
+ *Returns*
+`NULL' on any errors or failure to locate the .debug file, otherwise a
+pointer to a heap-allocated string containing the filename. The caller
+is responsible for freeing this string.
+
+2.14.1.21 `bfd_create_gnu_debuglink_section'
+............................................
+
+*Synopsis*
+ struct bfd_section *bfd_create_gnu_debuglink_section
+ (bfd *abfd, const char *filename);
+ *Description*
+Takes a BFD and adds a .gnu_debuglink section to it. The section is
+sized to be big enough to contain a link to the specified FILENAME.
+
+ *Returns*
+A pointer to the new section is returned if all is ok. Otherwise
+`NULL' is returned and bfd_error is set.
+
+2.14.1.22 `bfd_fill_in_gnu_debuglink_section'
+.............................................
+
+*Synopsis*
+ bfd_boolean bfd_fill_in_gnu_debuglink_section
+ (bfd *abfd, struct bfd_section *sect, const char *filename);
+ *Description*
+Takes a BFD and containing a .gnu_debuglink section SECT and fills in
+the contents of the section to contain a link to the specified
+FILENAME. The filename should be relative to the current directory.
+
+ *Returns*
+`TRUE' is returned if all is ok. Otherwise `FALSE' is returned and
+bfd_error is set.
+
+
+File: bfd.info, Node: Internal, Next: File Caching, Prev: Opening and Closing, Up: BFD front end
+
+2.15 Implementation details
+===========================
+
+2.15.1 Internal functions
+-------------------------
+
+*Description*
+These routines are used within BFD. They are not intended for export,
+but are documented here for completeness.
+
+2.15.1.1 `bfd_write_bigendian_4byte_int'
+........................................
+
+*Synopsis*
+ bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int);
+ *Description*
+Write a 4 byte integer I to the output BFD ABFD, in big endian order
+regardless of what else is going on. This is useful in archives.
+
+2.15.1.2 `bfd_put_size'
+.......................
+
+2.15.1.3 `bfd_get_size'
+.......................
+
+*Description*
+These macros as used for reading and writing raw data in sections; each
+access (except for bytes) is vectored through the target format of the
+BFD and mangled accordingly. The mangling performs any necessary endian
+translations and removes alignment restrictions. Note that types
+accepted and returned by these macros are identical so they can be
+swapped around in macros--for example, `libaout.h' defines `GET_WORD'
+to either `bfd_get_32' or `bfd_get_64'.
+
+ In the put routines, VAL must be a `bfd_vma'. If we are on a system
+without prototypes, the caller is responsible for making sure that is
+true, with a cast if necessary. We don't cast them in the macro
+definitions because that would prevent `lint' or `gcc -Wall' from
+detecting sins such as passing a pointer. To detect calling these with
+less than a `bfd_vma', use `gcc -Wconversion' on a host with 64 bit
+`bfd_vma''s.
+
+ /* Byte swapping macros for user section data. */
+
+ #define bfd_put_8(abfd, val, ptr) \
+ ((void) (*((unsigned char *) (ptr)) = (val) & 0xff))
+ #define bfd_put_signed_8 \
+ bfd_put_8
+ #define bfd_get_8(abfd, ptr) \
+ (*(const unsigned char *) (ptr) & 0xff)
+ #define bfd_get_signed_8(abfd, ptr) \
+ (((*(const unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
+
+ #define bfd_put_16(abfd, val, ptr) \
+ BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
+ #define bfd_put_signed_16 \
+ bfd_put_16
+ #define bfd_get_16(abfd, ptr) \
+ BFD_SEND (abfd, bfd_getx16, (ptr))
+ #define bfd_get_signed_16(abfd, ptr) \
+ BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
+
+ #define bfd_put_32(abfd, val, ptr) \
+ BFD_SEND (abfd, bfd_putx32, ((val),(ptr)))
+ #define bfd_put_signed_32 \
+ bfd_put_32
+ #define bfd_get_32(abfd, ptr) \
+ BFD_SEND (abfd, bfd_getx32, (ptr))
+ #define bfd_get_signed_32(abfd, ptr) \
+ BFD_SEND (abfd, bfd_getx_signed_32, (ptr))
+
+ #define bfd_put_64(abfd, val, ptr) \
+ BFD_SEND (abfd, bfd_putx64, ((val), (ptr)))
+ #define bfd_put_signed_64 \
+ bfd_put_64
+ #define bfd_get_64(abfd, ptr) \
+ BFD_SEND (abfd, bfd_getx64, (ptr))
+ #define bfd_get_signed_64(abfd, ptr) \
+ BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
+
+ #define bfd_get(bits, abfd, ptr) \
+ ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr) \
+ : (bits) == 16 ? bfd_get_16 (abfd, ptr) \
+ : (bits) == 32 ? bfd_get_32 (abfd, ptr) \
+ : (bits) == 64 ? bfd_get_64 (abfd, ptr) \
+ : (abort (), (bfd_vma) - 1))
+
+ #define bfd_put(bits, abfd, val, ptr) \
+ ((bits) == 8 ? bfd_put_8 (abfd, val, ptr) \
+ : (bits) == 16 ? bfd_put_16 (abfd, val, ptr) \
+ : (bits) == 32 ? bfd_put_32 (abfd, val, ptr) \
+ : (bits) == 64 ? bfd_put_64 (abfd, val, ptr) \
+ : (abort (), (void) 0))
+
+2.15.1.4 `bfd_h_put_size'
+.........................
+
+*Description*
+These macros have the same function as their `bfd_get_x' brethren,
+except that they are used for removing information for the header
+records of object files. Believe it or not, some object files keep
+their header records in big endian order and their data in little
+endian order.
+
+ /* Byte swapping macros for file header data. */
+
+ #define bfd_h_put_8(abfd, val, ptr) \
+ bfd_put_8 (abfd, val, ptr)
+ #define bfd_h_put_signed_8(abfd, val, ptr) \
+ bfd_put_8 (abfd, val, ptr)
+ #define bfd_h_get_8(abfd, ptr) \
+ bfd_get_8 (abfd, ptr)
+ #define bfd_h_get_signed_8(abfd, ptr) \
+ bfd_get_signed_8 (abfd, ptr)
+
+ #define bfd_h_put_16(abfd, val, ptr) \
+ BFD_SEND (abfd, bfd_h_putx16, (val, ptr))
+ #define bfd_h_put_signed_16 \
+ bfd_h_put_16
+ #define bfd_h_get_16(abfd, ptr) \
+ BFD_SEND (abfd, bfd_h_getx16, (ptr))
+ #define bfd_h_get_signed_16(abfd, ptr) \
+ BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr))
+
+ #define bfd_h_put_32(abfd, val, ptr) \
+ BFD_SEND (abfd, bfd_h_putx32, (val, ptr))
+ #define bfd_h_put_signed_32 \
+ bfd_h_put_32
+ #define bfd_h_get_32(abfd, ptr) \
+ BFD_SEND (abfd, bfd_h_getx32, (ptr))
+ #define bfd_h_get_signed_32(abfd, ptr) \
+ BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr))
+
+ #define bfd_h_put_64(abfd, val, ptr) \
+ BFD_SEND (abfd, bfd_h_putx64, (val, ptr))
+ #define bfd_h_put_signed_64 \
+ bfd_h_put_64
+ #define bfd_h_get_64(abfd, ptr) \
+ BFD_SEND (abfd, bfd_h_getx64, (ptr))
+ #define bfd_h_get_signed_64(abfd, ptr) \
+ BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr))
+
+ /* Aliases for the above, which should eventually go away. */
+
+ #define H_PUT_64 bfd_h_put_64
+ #define H_PUT_32 bfd_h_put_32
+ #define H_PUT_16 bfd_h_put_16
+ #define H_PUT_8 bfd_h_put_8
+ #define H_PUT_S64 bfd_h_put_signed_64
+ #define H_PUT_S32 bfd_h_put_signed_32
+ #define H_PUT_S16 bfd_h_put_signed_16
+ #define H_PUT_S8 bfd_h_put_signed_8
+ #define H_GET_64 bfd_h_get_64
+ #define H_GET_32 bfd_h_get_32
+ #define H_GET_16 bfd_h_get_16
+ #define H_GET_8 bfd_h_get_8
+ #define H_GET_S64 bfd_h_get_signed_64
+ #define H_GET_S32 bfd_h_get_signed_32
+ #define H_GET_S16 bfd_h_get_signed_16
+ #define H_GET_S8 bfd_h_get_signed_8
+
+2.15.1.5 `bfd_log2'
+...................
+
+*Synopsis*
+ unsigned int bfd_log2 (bfd_vma x);
+ *Description*
+Return the log base 2 of the value supplied, rounded up. E.g., an X of
+1025 returns 11. A X of 0 returns 0.
+
+
+File: bfd.info, Node: File Caching, Next: Linker Functions, Prev: Internal, Up: BFD front end
+
+2.16 File caching
+=================
+
+The file caching mechanism is embedded within BFD and allows the
+application to open as many BFDs as it wants without regard to the
+underlying operating system's file descriptor limit (often as low as 20
+open files). The module in `cache.c' maintains a least recently used
+list of `BFD_CACHE_MAX_OPEN' files, and exports the name
+`bfd_cache_lookup', which runs around and makes sure that the required
+BFD is open. If not, then it chooses a file to close, closes it and
+opens the one wanted, returning its file handle.
+
+2.16.1 Caching functions
+------------------------
+
+2.16.1.1 `bfd_cache_init'
+.........................
+
+*Synopsis*
+ bfd_boolean bfd_cache_init (bfd *abfd);
+ *Description*
+Add a newly opened BFD to the cache.
+
+2.16.1.2 `bfd_cache_close'
+..........................
+
+*Synopsis*
+ bfd_boolean bfd_cache_close (bfd *abfd);
+ *Description*
+Remove the BFD ABFD from the cache. If the attached file is open, then
+close it too.
+
+ *Returns*
+`FALSE' is returned if closing the file fails, `TRUE' is returned if
+all is well.
+
+2.16.1.3 `bfd_cache_close_all'
+..............................
+
+*Synopsis*
+ bfd_boolean bfd_cache_close_all (void);
+ *Description*
+Remove all BFDs from the cache. If the attached file is open, then
+close it too.
+
+ *Returns*
+`FALSE' is returned if closing one of the file fails, `TRUE' is
+returned if all is well.
+
+2.16.1.4 `bfd_open_file'
+........................
+
+*Synopsis*
+ FILE* bfd_open_file (bfd *abfd);
+ *Description*
+Call the OS to open a file for ABFD. Return the `FILE *' (possibly
+`NULL') that results from this operation. Set up the BFD so that
+future accesses know the file is open. If the `FILE *' returned is
+`NULL', then it won't have been put in the cache, so it won't have to
+be removed from it.
+
+
+File: bfd.info, Node: Linker Functions, Next: Hash Tables, Prev: File Caching, Up: BFD front end
+
+2.17 Linker Functions
+=====================
+
+The linker uses three special entry points in the BFD target vector.
+It is not necessary to write special routines for these entry points
+when creating a new BFD back end, since generic versions are provided.
+However, writing them can speed up linking and make it use
+significantly less runtime memory.
+
+ The first routine creates a hash table used by the other routines.
+The second routine adds the symbols from an object file to the hash
+table. The third routine takes all the object files and links them
+together to create the output file. These routines are designed so
+that the linker proper does not need to know anything about the symbols
+in the object files that it is linking. The linker merely arranges the
+sections as directed by the linker script and lets BFD handle the
+details of symbols and relocs.
+
+ The second routine and third routines are passed a pointer to a
+`struct bfd_link_info' structure (defined in `bfdlink.h') which holds
+information relevant to the link, including the linker hash table
+(which was created by the first routine) and a set of callback
+functions to the linker proper.
+
+ The generic linker routines are in `linker.c', and use the header
+file `genlink.h'. As of this writing, the only back ends which have
+implemented versions of these routines are a.out (in `aoutx.h') and
+ECOFF (in `ecoff.c'). The a.out routines are used as examples
+throughout this section.
+
+* Menu:
+
+* Creating a Linker Hash Table::
+* Adding Symbols to the Hash Table::
+* Performing the Final Link::
+
+
+File: bfd.info, Node: Creating a Linker Hash Table, Next: Adding Symbols to the Hash Table, Prev: Linker Functions, Up: Linker Functions
+
+2.17.1 Creating a linker hash table
+-----------------------------------
+
+The linker routines must create a hash table, which must be derived
+from `struct bfd_link_hash_table' described in `bfdlink.c'. *Note Hash
+Tables::, for information on how to create a derived hash table. This
+entry point is called using the target vector of the linker output file.
+
+ The `_bfd_link_hash_table_create' entry point must allocate and
+initialize an instance of the desired hash table. If the back end does
+not require any additional information to be stored with the entries in
+the hash table, the entry point may simply create a `struct
+bfd_link_hash_table'. Most likely, however, some additional
+information will be needed.
+
+ For example, with each entry in the hash table the a.out linker
+keeps the index the symbol has in the final output file (this index
+number is used so that when doing a relocatable link the symbol index
+used in the output file can be quickly filled in when copying over a
+reloc). The a.out linker code defines the required structures and
+functions for a hash table derived from `struct bfd_link_hash_table'.
+The a.out linker hash table is created by the function
+`NAME(aout,link_hash_table_create)'; it simply allocates space for the
+hash table, initializes it, and returns a pointer to it.
+
+ When writing the linker routines for a new back end, you will
+generally not know exactly which fields will be required until you have
+finished. You should simply create a new hash table which defines no
+additional fields, and then simply add fields as they become necessary.
+
+
+File: bfd.info, Node: Adding Symbols to the Hash Table, Next: Performing the Final Link, Prev: Creating a Linker Hash Table, Up: Linker Functions
+
+2.17.2 Adding symbols to the hash table
+---------------------------------------
+
+The linker proper will call the `_bfd_link_add_symbols' entry point for
+each object file or archive which is to be linked (typically these are
+the files named on the command line, but some may also come from the
+linker script). The entry point is responsible for examining the file.
+For an object file, BFD must add any relevant symbol information to
+the hash table. For an archive, BFD must determine which elements of
+the archive should be used and adding them to the link.
+
+ The a.out version of this entry point is
+`NAME(aout,link_add_symbols)'.
+
+* Menu:
+
+* Differing file formats::
+* Adding symbols from an object file::
+* Adding symbols from an archive::
+
+
+File: bfd.info, Node: Differing file formats, Next: Adding symbols from an object file, Prev: Adding Symbols to the Hash Table, Up: Adding Symbols to the Hash Table
+
+2.17.2.1 Differing file formats
+...............................
+
+Normally all the files involved in a link will be of the same format,
+but it is also possible to link together different format object files,
+and the back end must support that. The `_bfd_link_add_symbols' entry
+point is called via the target vector of the file to be added. This
+has an important consequence: the function may not assume that the hash
+table is the type created by the corresponding
+`_bfd_link_hash_table_create' vector. All the `_bfd_link_add_symbols'
+function can assume about the hash table is that it is derived from
+`struct bfd_link_hash_table'.
+
+ Sometimes the `_bfd_link_add_symbols' function must store some
+information in the hash table entry to be used by the `_bfd_final_link'
+function. In such a case the output bfd xvec must be checked to make
+sure that the hash table was created by an object file of the same
+format.
+
+ The `_bfd_final_link' routine must be prepared to handle a hash
+entry without any extra information added by the
+`_bfd_link_add_symbols' function. A hash entry without extra
+information will also occur when the linker script directs the linker
+to create a symbol. Note that, regardless of how a hash table entry is
+added, all the fields will be initialized to some sort of null value by
+the hash table entry initialization function.
+
+ See `ecoff_link_add_externals' for an example of how to check the
+output bfd before saving information (in this case, the ECOFF external
+symbol debugging information) in a hash table entry.
+
+
+File: bfd.info, Node: Adding symbols from an object file, Next: Adding symbols from an archive, Prev: Differing file formats, Up: Adding Symbols to the Hash Table
+
+2.17.2.2 Adding symbols from an object file
+...........................................
+
+When the `_bfd_link_add_symbols' routine is passed an object file, it
+must add all externally visible symbols in that object file to the hash
+table. The actual work of adding the symbol to the hash table is
+normally handled by the function `_bfd_generic_link_add_one_symbol'.
+The `_bfd_link_add_symbols' routine is responsible for reading all the
+symbols from the object file and passing the correct information to
+`_bfd_generic_link_add_one_symbol'.
+
+ The `_bfd_link_add_symbols' routine should not use
+`bfd_canonicalize_symtab' to read the symbols. The point of providing
+this routine is to avoid the overhead of converting the symbols into
+generic `asymbol' structures.
+
+ `_bfd_generic_link_add_one_symbol' handles the details of combining
+common symbols, warning about multiple definitions, and so forth. It
+takes arguments which describe the symbol to add, notably symbol flags,
+a section, and an offset. The symbol flags include such things as
+`BSF_WEAK' or `BSF_INDIRECT'. The section is a section in the object
+file, or something like `bfd_und_section_ptr' for an undefined symbol
+or `bfd_com_section_ptr' for a common symbol.
+
+ If the `_bfd_final_link' routine is also going to need to read the
+symbol information, the `_bfd_link_add_symbols' routine should save it
+somewhere attached to the object file BFD. However, the information
+should only be saved if the `keep_memory' field of the `info' argument
+is TRUE, so that the `-no-keep-memory' linker switch is effective.
+
+ The a.out function which adds symbols from an object file is
+`aout_link_add_object_symbols', and most of the interesting work is in
+`aout_link_add_symbols'. The latter saves pointers to the hash tables
+entries created by `_bfd_generic_link_add_one_symbol' indexed by symbol
+number, so that the `_bfd_final_link' routine does not have to call the
+hash table lookup routine to locate the entry.
+
+
+File: bfd.info, Node: Adding symbols from an archive, Prev: Adding symbols from an object file, Up: Adding Symbols to the Hash Table
+
+2.17.2.3 Adding symbols from an archive
+.......................................
+
+When the `_bfd_link_add_symbols' routine is passed an archive, it must
+look through the symbols defined by the archive and decide which
+elements of the archive should be included in the link. For each such
+element it must call the `add_archive_element' linker callback, and it
+must add the symbols from the object file to the linker hash table.
+(The callback may in fact indicate that a replacement BFD should be
+used, in which case the symbols from that BFD should be added to the
+linker hash table instead.)
+
+ In most cases the work of looking through the symbols in the archive
+should be done by the `_bfd_generic_link_add_archive_symbols' function.
+This function builds a hash table from the archive symbol table and
+looks through the list of undefined symbols to see which elements
+should be included. `_bfd_generic_link_add_archive_symbols' is passed
+a function to call to make the final decision about adding an archive
+element to the link and to do the actual work of adding the symbols to
+the linker hash table.
+
+ The function passed to `_bfd_generic_link_add_archive_symbols' must
+read the symbols of the archive element and decide whether the archive
+element should be included in the link. If the element is to be
+included, the `add_archive_element' linker callback routine must be
+called with the element as an argument, and the element's symbols must
+be added to the linker hash table just as though the element had itself
+been passed to the `_bfd_link_add_symbols' function. The
+`add_archive_element' callback has the option to indicate that it would
+like to replace the element archive with a substitute BFD, in which
+case it is the symbols of that substitute BFD that must be added to the
+linker hash table instead.
+
+ When the a.out `_bfd_link_add_symbols' function receives an archive,
+it calls `_bfd_generic_link_add_archive_symbols' passing
+`aout_link_check_archive_element' as the function argument.
+`aout_link_check_archive_element' calls `aout_link_check_ar_symbols'.
+If the latter decides to add the element (an element is only added if
+it provides a real, non-common, definition for a previously undefined
+or common symbol) it calls the `add_archive_element' callback and then
+`aout_link_check_archive_element' calls `aout_link_add_symbols' to
+actually add the symbols to the linker hash table - possibly those of a
+substitute BFD, if the `add_archive_element' callback avails itself of
+that option.
+
+ The ECOFF back end is unusual in that it does not normally call
+`_bfd_generic_link_add_archive_symbols', because ECOFF archives already
+contain a hash table of symbols. The ECOFF back end searches the
+archive itself to avoid the overhead of creating a new hash table.
+
+
+File: bfd.info, Node: Performing the Final Link, Prev: Adding Symbols to the Hash Table, Up: Linker Functions
+
+2.17.3 Performing the final link
+--------------------------------
+
+When all the input files have been processed, the linker calls the
+`_bfd_final_link' entry point of the output BFD. This routine is
+responsible for producing the final output file, which has several
+aspects. It must relocate the contents of the input sections and copy
+the data into the output sections. It must build an output symbol
+table including any local symbols from the input files and the global
+symbols from the hash table. When producing relocatable output, it must
+modify the input relocs and write them into the output file. There may
+also be object format dependent work to be done.
+
+ The linker will also call the `write_object_contents' entry point
+when the BFD is closed. The two entry points must work together in
+order to produce the correct output file.
+
+ The details of how this works are inevitably dependent upon the
+specific object file format. The a.out `_bfd_final_link' routine is
+`NAME(aout,final_link)'.
+
+* Menu:
+
+* Information provided by the linker::
+* Relocating the section contents::
+* Writing the symbol table::
+
+
+File: bfd.info, Node: Information provided by the linker, Next: Relocating the section contents, Prev: Performing the Final Link, Up: Performing the Final Link
+
+2.17.3.1 Information provided by the linker
+...........................................
+
+Before the linker calls the `_bfd_final_link' entry point, it sets up
+some data structures for the function to use.
+
+ The `input_bfds' field of the `bfd_link_info' structure will point
+to a list of all the input files included in the link. These files are
+linked through the `link_next' field of the `bfd' structure.
+
+ Each section in the output file will have a list of `link_order'
+structures attached to the `map_head.link_order' field (the
+`link_order' structure is defined in `bfdlink.h'). These structures
+describe how to create the contents of the output section in terms of
+the contents of various input sections, fill constants, and,
+eventually, other types of information. They also describe relocs that
+must be created by the BFD backend, but do not correspond to any input
+file; this is used to support -Ur, which builds constructors while
+generating a relocatable object file.
+
+
+File: bfd.info, Node: Relocating the section contents, Next: Writing the symbol table, Prev: Information provided by the linker, Up: Performing the Final Link
+
+2.17.3.2 Relocating the section contents
+........................................
+
+The `_bfd_final_link' function should look through the `link_order'
+structures attached to each section of the output file. Each
+`link_order' structure should either be handled specially, or it should
+be passed to the function `_bfd_default_link_order' which will do the
+right thing (`_bfd_default_link_order' is defined in `linker.c').
+
+ For efficiency, a `link_order' of type `bfd_indirect_link_order'
+whose associated section belongs to a BFD of the same format as the
+output BFD must be handled specially. This type of `link_order'
+describes part of an output section in terms of a section belonging to
+one of the input files. The `_bfd_final_link' function should read the
+contents of the section and any associated relocs, apply the relocs to
+the section contents, and write out the modified section contents. If
+performing a relocatable link, the relocs themselves must also be
+modified and written out.
+
+ The functions `_bfd_relocate_contents' and
+`_bfd_final_link_relocate' provide some general support for performing
+the actual relocations, notably overflow checking. Their arguments
+include information about the symbol the relocation is against and a
+`reloc_howto_type' argument which describes the relocation to perform.
+These functions are defined in `reloc.c'.
+
+ The a.out function which handles reading, relocating, and writing
+section contents is `aout_link_input_section'. The actual relocation
+is done in `aout_link_input_section_std' and
+`aout_link_input_section_ext'.
+
+
+File: bfd.info, Node: Writing the symbol table, Prev: Relocating the section contents, Up: Performing the Final Link
+
+2.17.3.3 Writing the symbol table
+.................................
+
+The `_bfd_final_link' function must gather all the symbols in the input
+files and write them out. It must also write out all the symbols in
+the global hash table. This must be controlled by the `strip' and
+`discard' fields of the `bfd_link_info' structure.
+
+ The local symbols of the input files will not have been entered into
+the linker hash table. The `_bfd_final_link' routine must consider
+each input file and include the symbols in the output file. It may be
+convenient to do this when looking through the `link_order' structures,
+or it may be done by stepping through the `input_bfds' list.
+
+ The `_bfd_final_link' routine must also traverse the global hash
+table to gather all the externally visible symbols. It is possible
+that most of the externally visible symbols may be written out when
+considering the symbols of each input file, but it is still necessary
+to traverse the hash table since the linker script may have defined
+some symbols that are not in any of the input files.
+
+ The `strip' field of the `bfd_link_info' structure controls which
+symbols are written out. The possible values are listed in
+`bfdlink.h'. If the value is `strip_some', then the `keep_hash' field
+of the `bfd_link_info' structure is a hash table of symbols to keep;
+each symbol should be looked up in this hash table, and only symbols
+which are present should be included in the output file.
+
+ If the `strip' field of the `bfd_link_info' structure permits local
+symbols to be written out, the `discard' field is used to further
+controls which local symbols are included in the output file. If the
+value is `discard_l', then all local symbols which begin with a certain
+prefix are discarded; this is controlled by the
+`bfd_is_local_label_name' entry point.
+
+ The a.out backend handles symbols by calling
+`aout_link_write_symbols' on each input BFD and then traversing the
+global hash table with the function `aout_link_write_other_symbol'. It
+builds a string table while writing out the symbols, which is written
+to the output file at the end of `NAME(aout,final_link)'.
+
+2.17.3.4 `bfd_link_split_section'
+.................................
+
+*Synopsis*
+ bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
+ *Description*
+Return nonzero if SEC should be split during a reloceatable or final
+link.
+ #define bfd_link_split_section(abfd, sec) \
+ BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
+
+2.17.3.5 `bfd_section_already_linked'
+.....................................
+
+*Synopsis*
+ bfd_boolean bfd_section_already_linked (bfd *abfd,
+ asection *sec,
+ struct bfd_link_info *info);
+ *Description*
+Check if DATA has been already linked during a reloceatable or final
+link. Return TRUE if it has.
+ #define bfd_section_already_linked(abfd, sec, info) \
+ BFD_SEND (abfd, _section_already_linked, (abfd, sec, info))
+
+2.17.3.6 `bfd_generic_define_common_symbol'
+...........................................
+
+*Synopsis*
+ bfd_boolean bfd_generic_define_common_symbol
+ (bfd *output_bfd, struct bfd_link_info *info,
+ struct bfd_link_hash_entry *h);
+ *Description*
+Convert common symbol H into a defined symbol. Return TRUE on success
+and FALSE on failure.
+ #define bfd_define_common_symbol(output_bfd, info, h) \
+ BFD_SEND (output_bfd, _bfd_define_common_symbol, (output_bfd, info, h))
+
+2.17.3.7 `bfd_find_version_for_sym '
+....................................
+
+*Synopsis*
+ struct bfd_elf_version_tree * bfd_find_version_for_sym
+ (struct bfd_elf_version_tree *verdefs,
+ const char *sym_name, bfd_boolean *hide);
+ *Description*
+Search an elf version script tree for symbol versioning info and export
+/ don't-export status for a given symbol. Return non-NULL on success
+and NULL on failure; also sets the output `hide' boolean parameter.
+
+2.17.3.8 `bfd_hide_sym_by_version'
+..................................
+
+*Synopsis*
+ bfd_boolean bfd_hide_sym_by_version
+ (struct bfd_elf_version_tree *verdefs, const char *sym_name);
+ *Description*
+Search an elf version script tree for symbol versioning info for a
+given symbol. Return TRUE if the symbol is hidden.
+
+
+File: bfd.info, Node: Hash Tables, Prev: Linker Functions, Up: BFD front end
+
+2.18 Hash Tables
+================
+
+BFD provides a simple set of hash table functions. Routines are
+provided to initialize a hash table, to free a hash table, to look up a
+string in a hash table and optionally create an entry for it, and to
+traverse a hash table. There is currently no routine to delete an
+string from a hash table.
+
+ The basic hash table does not permit any data to be stored with a
+string. However, a hash table is designed to present a base class from
+which other types of hash tables may be derived. These derived types
+may store additional information with the string. Hash tables were
+implemented in this way, rather than simply providing a data pointer in
+a hash table entry, because they were designed for use by the linker
+back ends. The linker may create thousands of hash table entries, and
+the overhead of allocating private data and storing and following
+pointers becomes noticeable.
+
+ The basic hash table code is in `hash.c'.
+
+* Menu:
+
+* Creating and Freeing a Hash Table::
+* Looking Up or Entering a String::
+* Traversing a Hash Table::
+* Deriving a New Hash Table Type::
+
+
+File: bfd.info, Node: Creating and Freeing a Hash Table, Next: Looking Up or Entering a String, Prev: Hash Tables, Up: Hash Tables
+
+2.18.1 Creating and freeing a hash table
+----------------------------------------
+
+To create a hash table, create an instance of a `struct bfd_hash_table'
+(defined in `bfd.h') and call `bfd_hash_table_init' (if you know
+approximately how many entries you will need, the function
+`bfd_hash_table_init_n', which takes a SIZE argument, may be used).
+`bfd_hash_table_init' returns `FALSE' if some sort of error occurs.
+
+ The function `bfd_hash_table_init' take as an argument a function to
+use to create new entries. For a basic hash table, use the function
+`bfd_hash_newfunc'. *Note Deriving a New Hash Table Type::, for why
+you would want to use a different value for this argument.
+
+ `bfd_hash_table_init' will create an objalloc which will be used to
+allocate new entries. You may allocate memory on this objalloc using
+`bfd_hash_allocate'.
+
+ Use `bfd_hash_table_free' to free up all the memory that has been
+allocated for a hash table. This will not free up the `struct
+bfd_hash_table' itself, which you must provide.
+
+ Use `bfd_hash_set_default_size' to set the default size of hash
+table to use.
+
+
+File: bfd.info, Node: Looking Up or Entering a String, Next: Traversing a Hash Table, Prev: Creating and Freeing a Hash Table, Up: Hash Tables
+
+2.18.2 Looking up or entering a string
+--------------------------------------
+
+The function `bfd_hash_lookup' is used both to look up a string in the
+hash table and to create a new entry.
+
+ If the CREATE argument is `FALSE', `bfd_hash_lookup' will look up a
+string. If the string is found, it will returns a pointer to a `struct
+bfd_hash_entry'. If the string is not found in the table
+`bfd_hash_lookup' will return `NULL'. You should not modify any of the
+fields in the returns `struct bfd_hash_entry'.
+
+ If the CREATE argument is `TRUE', the string will be entered into
+the hash table if it is not already there. Either way a pointer to a
+`struct bfd_hash_entry' will be returned, either to the existing
+structure or to a newly created one. In this case, a `NULL' return
+means that an error occurred.
+
+ If the CREATE argument is `TRUE', and a new entry is created, the
+COPY argument is used to decide whether to copy the string onto the
+hash table objalloc or not. If COPY is passed as `FALSE', you must be
+careful not to deallocate or modify the string as long as the hash table
+exists.
+
+
+File: bfd.info, Node: Traversing a Hash Table, Next: Deriving a New Hash Table Type, Prev: Looking Up or Entering a String, Up: Hash Tables
+
+2.18.3 Traversing a hash table
+------------------------------
+
+The function `bfd_hash_traverse' may be used to traverse a hash table,
+calling a function on each element. The traversal is done in a random
+order.
+
+ `bfd_hash_traverse' takes as arguments a function and a generic
+`void *' pointer. The function is called with a hash table entry (a
+`struct bfd_hash_entry *') and the generic pointer passed to
+`bfd_hash_traverse'. The function must return a `boolean' value, which
+indicates whether to continue traversing the hash table. If the
+function returns `FALSE', `bfd_hash_traverse' will stop the traversal
+and return immediately.
+
+
+File: bfd.info, Node: Deriving a New Hash Table Type, Prev: Traversing a Hash Table, Up: Hash Tables
+
+2.18.4 Deriving a new hash table type
+-------------------------------------
+
+Many uses of hash tables want to store additional information which
+each entry in the hash table. Some also find it convenient to store
+additional information with the hash table itself. This may be done
+using a derived hash table.
+
+ Since C is not an object oriented language, creating a derived hash
+table requires sticking together some boilerplate routines with a few
+differences specific to the type of hash table you want to create.
+
+ An example of a derived hash table is the linker hash table. The
+structures for this are defined in `bfdlink.h'. The functions are in
+`linker.c'.
+
+ You may also derive a hash table from an already derived hash table.
+For example, the a.out linker backend code uses a hash table derived
+from the linker hash table.
+
+* Menu:
+
+* Define the Derived Structures::
+* Write the Derived Creation Routine::
+* Write Other Derived Routines::
+
+
+File: bfd.info, Node: Define the Derived Structures, Next: Write the Derived Creation Routine, Prev: Deriving a New Hash Table Type, Up: Deriving a New Hash Table Type
+
+2.18.4.1 Define the derived structures
+......................................
+
+You must define a structure for an entry in the hash table, and a
+structure for the hash table itself.
+
+ The first field in the structure for an entry in the hash table must
+be of the type used for an entry in the hash table you are deriving
+from. If you are deriving from a basic hash table this is `struct
+bfd_hash_entry', which is defined in `bfd.h'. The first field in the
+structure for the hash table itself must be of the type of the hash
+table you are deriving from itself. If you are deriving from a basic
+hash table, this is `struct bfd_hash_table'.
+
+ For example, the linker hash table defines `struct
+bfd_link_hash_entry' (in `bfdlink.h'). The first field, `root', is of
+type `struct bfd_hash_entry'. Similarly, the first field in `struct
+bfd_link_hash_table', `table', is of type `struct bfd_hash_table'.
+
+
+File: bfd.info, Node: Write the Derived Creation Routine, Next: Write Other Derived Routines, Prev: Define the Derived Structures, Up: Deriving a New Hash Table Type
+
+2.18.4.2 Write the derived creation routine
+...........................................
+
+You must write a routine which will create and initialize an entry in
+the hash table. This routine is passed as the function argument to
+`bfd_hash_table_init'.
+
+ In order to permit other hash tables to be derived from the hash
+table you are creating, this routine must be written in a standard way.
+
+ The first argument to the creation routine is a pointer to a hash
+table entry. This may be `NULL', in which case the routine should
+allocate the right amount of space. Otherwise the space has already
+been allocated by a hash table type derived from this one.
+
+ After allocating space, the creation routine must call the creation
+routine of the hash table type it is derived from, passing in a pointer
+to the space it just allocated. This will initialize any fields used
+by the base hash table.
+
+ Finally the creation routine must initialize any local fields for
+the new hash table type.
+
+ Here is a boilerplate example of a creation routine. FUNCTION_NAME
+is the name of the routine. ENTRY_TYPE is the type of an entry in the
+hash table you are creating. BASE_NEWFUNC is the name of the creation
+routine of the hash table type your hash table is derived from.
+
+ struct bfd_hash_entry *
+ FUNCTION_NAME (struct bfd_hash_entry *entry,
+ struct bfd_hash_table *table,
+ const char *string)
+ {
+ struct ENTRY_TYPE *ret = (ENTRY_TYPE *) entry;
+
+ /* Allocate the structure if it has not already been allocated by a
+ derived class. */
+ if (ret == NULL)
+ {
+ ret = bfd_hash_allocate (table, sizeof (* ret));
+ if (ret == NULL)
+ return NULL;
+ }
+
+ /* Call the allocation method of the base class. */
+ ret = ((ENTRY_TYPE *)
+ BASE_NEWFUNC ((struct bfd_hash_entry *) ret, table, string));
+
+ /* Initialize the local fields here. */
+
+ return (struct bfd_hash_entry *) ret;
+ }
+ *Description*
+The creation routine for the linker hash table, which is in `linker.c',
+looks just like this example. FUNCTION_NAME is
+`_bfd_link_hash_newfunc'. ENTRY_TYPE is `struct bfd_link_hash_entry'.
+BASE_NEWFUNC is `bfd_hash_newfunc', the creation routine for a basic
+hash table.
+
+ `_bfd_link_hash_newfunc' also initializes the local fields in a
+linker hash table entry: `type', `written' and `next'.
+
+
+File: bfd.info, Node: Write Other Derived Routines, Prev: Write the Derived Creation Routine, Up: Deriving a New Hash Table Type
+
+2.18.4.3 Write other derived routines
+.....................................
+
+You will want to write other routines for your new hash table, as well.
+
+ You will want an initialization routine which calls the
+initialization routine of the hash table you are deriving from and
+initializes any other local fields. For the linker hash table, this is
+`_bfd_link_hash_table_init' in `linker.c'.
+
+ You will want a lookup routine which calls the lookup routine of the
+hash table you are deriving from and casts the result. The linker hash
+table uses `bfd_link_hash_lookup' in `linker.c' (this actually takes an
+additional argument which it uses to decide how to return the looked up
+value).
+
+ You may want a traversal routine. This should just call the
+traversal routine of the hash table you are deriving from with
+appropriate casts. The linker hash table uses `bfd_link_hash_traverse'
+in `linker.c'.
+
+ These routines may simply be defined as macros. For example, the
+a.out backend linker hash table, which is derived from the linker hash
+table, uses macros for the lookup and traversal routines. These are
+`aout_link_hash_lookup' and `aout_link_hash_traverse' in aoutx.h.
+
+
+File: bfd.info, Node: BFD back ends, Next: GNU Free Documentation License, Prev: BFD front end, Up: Top
+
+3 BFD back ends
+***************
+
+* Menu:
+
+* What to Put Where::
+* aout :: a.out backends
+* coff :: coff backends
+* elf :: elf backends
+* mmo :: mmo backend
+
+
+File: bfd.info, Node: What to Put Where, Next: aout, Prev: BFD back ends, Up: BFD back ends
+
+3.1 What to Put Where
+=====================
+
+All of BFD lives in one directory.
+
+
+File: bfd.info, Node: aout, Next: coff, Prev: What to Put Where, Up: BFD back ends
+
+3.2 a.out backends
+==================
+
+*Description*
+BFD supports a number of different flavours of a.out format, though the
+major differences are only the sizes of the structures on disk, and the
+shape of the relocation information.
+
+ The support is split into a basic support file `aoutx.h' and other
+files which derive functions from the base. One derivation file is
+`aoutf1.h' (for a.out flavour 1), and adds to the basic a.out functions
+support for sun3, sun4, 386 and 29k a.out files, to create a target
+jump vector for a specific target.
+
+ This information is further split out into more specific files for
+each machine, including `sunos.c' for sun3 and sun4, `newsos3.c' for
+the Sony NEWS, and `demo64.c' for a demonstration of a 64 bit a.out
+format.
+
+ The base file `aoutx.h' defines general mechanisms for reading and
+writing records to and from disk and various other methods which BFD
+requires. It is included by `aout32.c' and `aout64.c' to form the names
+`aout_32_swap_exec_header_in', `aout_64_swap_exec_header_in', etc.
+
+ As an example, this is what goes on to make the back end for a sun4,
+from `aout32.c':
+
+ #define ARCH_SIZE 32
+ #include "aoutx.h"
+
+ Which exports names:
+
+ ...
+ aout_32_canonicalize_reloc
+ aout_32_find_nearest_line
+ aout_32_get_lineno
+ aout_32_get_reloc_upper_bound
+ ...
+
+ from `sunos.c':
+
+ #define TARGET_NAME "a.out-sunos-big"
+ #define VECNAME sunos_big_vec
+ #include "aoutf1.h"
+
+ requires all the names from `aout32.c', and produces the jump vector
+
+ sunos_big_vec
+
+ The file `host-aout.c' is a special case. It is for a large set of
+hosts that use "more or less standard" a.out files, and for which
+cross-debugging is not interesting. It uses the standard 32-bit a.out
+support routines, but determines the file offsets and addresses of the
+text, data, and BSS sections, the machine architecture and machine
+type, and the entry point address, in a host-dependent manner. Once
+these values have been determined, generic code is used to handle the
+object file.
+
+ When porting it to run on a new system, you must supply:
+
+ HOST_PAGE_SIZE
+ HOST_SEGMENT_SIZE
+ HOST_MACHINE_ARCH (optional)
+ HOST_MACHINE_MACHINE (optional)
+ HOST_TEXT_START_ADDR
+ HOST_STACK_END_ADDR
+
+ in the file `../include/sys/h-XXX.h' (for your host). These values,
+plus the structures and macros defined in `a.out.h' on your host
+system, will produce a BFD target that will access ordinary a.out files
+on your host. To configure a new machine to use `host-aout.c', specify:
+
+ TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec
+ TDEPFILES= host-aout.o trad-core.o
+
+ in the `config/XXX.mt' file, and modify `configure.in' to use the
+`XXX.mt' file (by setting "`bfd_target=XXX'") when your configuration
+is selected.
+
+3.2.1 Relocations
+-----------------
+
+*Description*
+The file `aoutx.h' provides for both the _standard_ and _extended_
+forms of a.out relocation records.
+
+ The standard records contain only an address, a symbol index, and a
+type field. The extended records (used on 29ks and sparcs) also have a
+full integer for an addend.
+
+3.2.2 Internal entry points
+---------------------------
+
+*Description*
+`aoutx.h' exports several routines for accessing the contents of an
+a.out file, which are gathered and exported in turn by various format
+specific files (eg sunos.c).
+
+3.2.2.1 `aout_SIZE_swap_exec_header_in'
+.......................................
+
+*Synopsis*
+ void aout_SIZE_swap_exec_header_in,
+ (bfd *abfd,
+ struct external_exec *bytes,
+ struct internal_exec *execp);
+ *Description*
+Swap the information in an executable header RAW_BYTES taken from a raw
+byte stream memory image into the internal exec header structure EXECP.
+
+3.2.2.2 `aout_SIZE_swap_exec_header_out'
+........................................
+
+*Synopsis*
+ void aout_SIZE_swap_exec_header_out
+ (bfd *abfd,
+ struct internal_exec *execp,
+ struct external_exec *raw_bytes);
+ *Description*
+Swap the information in an internal exec header structure EXECP into
+the buffer RAW_BYTES ready for writing to disk.
+
+3.2.2.3 `aout_SIZE_some_aout_object_p'
+......................................
+
+*Synopsis*
+ const bfd_target *aout_SIZE_some_aout_object_p
+ (bfd *abfd,
+ struct internal_exec *execp,
+ const bfd_target *(*callback_to_real_object_p) (bfd *));
+ *Description*
+Some a.out variant thinks that the file open in ABFD checking is an
+a.out file. Do some more checking, and set up for access if it really
+is. Call back to the calling environment's "finish up" function just
+before returning, to handle any last-minute setup.
+
+3.2.2.4 `aout_SIZE_mkobject'
+............................
+
+*Synopsis*
+ bfd_boolean aout_SIZE_mkobject, (bfd *abfd);
+ *Description*
+Initialize BFD ABFD for use with a.out files.
+
+3.2.2.5 `aout_SIZE_machine_type'
+................................
+
+*Synopsis*
+ enum machine_type aout_SIZE_machine_type
+ (enum bfd_architecture arch,
+ unsigned long machine,
+ bfd_boolean *unknown);
+ *Description*
+Keep track of machine architecture and machine type for a.out's. Return
+the `machine_type' for a particular architecture and machine, or
+`M_UNKNOWN' if that exact architecture and machine can't be represented
+in a.out format.
+
+ If the architecture is understood, machine type 0 (default) is
+always understood.
+
+3.2.2.6 `aout_SIZE_set_arch_mach'
+.................................
+
+*Synopsis*
+ bfd_boolean aout_SIZE_set_arch_mach,
+ (bfd *,
+ enum bfd_architecture arch,
+ unsigned long machine);
+ *Description*
+Set the architecture and the machine of the BFD ABFD to the values ARCH
+and MACHINE. Verify that ABFD's format can support the architecture
+required.
+
+3.2.2.7 `aout_SIZE_new_section_hook'
+....................................
+
+*Synopsis*
+ bfd_boolean aout_SIZE_new_section_hook,
+ (bfd *abfd,
+ asection *newsect);
+ *Description*
+Called by the BFD in response to a `bfd_make_section' request.
+
+
+File: bfd.info, Node: coff, Next: elf, Prev: aout, Up: BFD back ends
+
+3.3 coff backends
+=================
+
+BFD supports a number of different flavours of coff format. The major
+differences between formats are the sizes and alignments of fields in
+structures on disk, and the occasional extra field.
+
+ Coff in all its varieties is implemented with a few common files and
+a number of implementation specific files. For example, The 88k bcs
+coff format is implemented in the file `coff-m88k.c'. This file
+`#include's `coff/m88k.h' which defines the external structure of the
+coff format for the 88k, and `coff/internal.h' which defines the
+internal structure. `coff-m88k.c' also defines the relocations used by
+the 88k format *Note Relocations::.
+
+ The Intel i960 processor version of coff is implemented in
+`coff-i960.c'. This file has the same structure as `coff-m88k.c',
+except that it includes `coff/i960.h' rather than `coff-m88k.h'.
+
+3.3.1 Porting to a new version of coff
+--------------------------------------
+
+The recommended method is to select from the existing implementations
+the version of coff which is most like the one you want to use. For
+example, we'll say that i386 coff is the one you select, and that your
+coff flavour is called foo. Copy `i386coff.c' to `foocoff.c', copy
+`../include/coff/i386.h' to `../include/coff/foo.h', and add the lines
+to `targets.c' and `Makefile.in' so that your new back end is used.
+Alter the shapes of the structures in `../include/coff/foo.h' so that
+they match what you need. You will probably also have to add `#ifdef's
+to the code in `coff/internal.h' and `coffcode.h' if your version of
+coff is too wild.
+
+ You can verify that your new BFD backend works quite simply by
+building `objdump' from the `binutils' directory, and making sure that
+its version of what's going on and your host system's idea (assuming it
+has the pretty standard coff dump utility, usually called `att-dump' or
+just `dump') are the same. Then clean up your code, and send what
+you've done to Cygnus. Then your stuff will be in the next release, and
+you won't have to keep integrating it.
+
+3.3.2 How the coff backend works
+--------------------------------
+
+3.3.2.1 File layout
+...................
+
+The Coff backend is split into generic routines that are applicable to
+any Coff target and routines that are specific to a particular target.
+The target-specific routines are further split into ones which are
+basically the same for all Coff targets except that they use the
+external symbol format or use different values for certain constants.
+
+ The generic routines are in `coffgen.c'. These routines work for
+any Coff target. They use some hooks into the target specific code;
+the hooks are in a `bfd_coff_backend_data' structure, one of which
+exists for each target.
+
+ The essentially similar target-specific routines are in
+`coffcode.h'. This header file includes executable C code. The
+various Coff targets first include the appropriate Coff header file,
+make any special defines that are needed, and then include `coffcode.h'.
+
+ Some of the Coff targets then also have additional routines in the
+target source file itself.
+
+ For example, `coff-i960.c' includes `coff/internal.h' and
+`coff/i960.h'. It then defines a few constants, such as `I960', and
+includes `coffcode.h'. Since the i960 has complex relocation types,
+`coff-i960.c' also includes some code to manipulate the i960 relocs.
+This code is not in `coffcode.h' because it would not be used by any
+other target.
+
+3.3.2.2 Coff long section names
+...............................
+
+In the standard Coff object format, section names are limited to the
+eight bytes available in the `s_name' field of the `SCNHDR' section
+header structure. The format requires the field to be NUL-padded, but
+not necessarily NUL-terminated, so the longest section names permitted
+are a full eight characters.
+
+ The Microsoft PE variants of the Coff object file format add an
+extension to support the use of long section names. This extension is
+defined in section 4 of the Microsoft PE/COFF specification (rev 8.1).
+If a section name is too long to fit into the section header's `s_name'
+field, it is instead placed into the string table, and the `s_name'
+field is filled with a slash ("/") followed by the ASCII decimal
+representation of the offset of the full name relative to the string
+table base.
+
+ Note that this implies that the extension can only be used in object
+files, as executables do not contain a string table. The standard
+specifies that long section names from objects emitted into executable
+images are to be truncated.
+
+ However, as a GNU extension, BFD can generate executable images that
+contain a string table and long section names. This would appear to be
+technically valid, as the standard only says that Coff debugging
+information is deprecated, not forbidden, and in practice it works,
+although some tools that parse PE files expecting the MS standard
+format may become confused; `PEview' is one known example.
+
+ The functionality is supported in BFD by code implemented under the
+control of the macro `COFF_LONG_SECTION_NAMES'. If not defined, the
+format does not support long section names in any way. If defined, it
+is used to initialise a flag, `_bfd_coff_long_section_names', and a
+hook function pointer, `_bfd_coff_set_long_section_names', in the Coff
+backend data structure. The flag controls the generation of long
+section names in output BFDs at runtime; if it is false, as it will be
+by default when generating an executable image, long section names are
+truncated; if true, the long section names extension is employed. The
+hook points to a function that allows the value of the flag to be
+altered at runtime, on formats that support long section names at all;
+on other formats it points to a stub that returns an error indication.
+With input BFDs, the flag is set according to whether any long section
+names are detected while reading the section headers. For a completely
+new BFD, the flag is set to the default for the target format. This
+information can be used by a client of the BFD library when deciding
+what output format to generate, and means that a BFD that is opened for
+read and subsequently converted to a writeable BFD and modified
+in-place will retain whatever format it had on input.
+
+ If `COFF_LONG_SECTION_NAMES' is simply defined (blank), or is
+defined to the value "1", then long section names are enabled by
+default; if it is defined to the value zero, they are disabled by
+default (but still accepted in input BFDs). The header `coffcode.h'
+defines a macro, `COFF_DEFAULT_LONG_SECTION_NAMES', which is used in
+the backends to initialise the backend data structure fields
+appropriately; see the comments for further detail.
+
+3.3.2.3 Bit twiddling
+.....................
+
+Each flavour of coff supported in BFD has its own header file
+describing the external layout of the structures. There is also an
+internal description of the coff layout, in `coff/internal.h'. A major
+function of the coff backend is swapping the bytes and twiddling the
+bits to translate the external form of the structures into the normal
+internal form. This is all performed in the `bfd_swap'_thing_direction
+routines. Some elements are different sizes between different versions
+of coff; it is the duty of the coff version specific include file to
+override the definitions of various packing routines in `coffcode.h'.
+E.g., the size of line number entry in coff is sometimes 16 bits, and
+sometimes 32 bits. `#define'ing `PUT_LNSZ_LNNO' and `GET_LNSZ_LNNO'
+will select the correct one. No doubt, some day someone will find a
+version of coff which has a varying field size not catered to at the
+moment. To port BFD, that person will have to add more `#defines'.
+Three of the bit twiddling routines are exported to `gdb';
+`coff_swap_aux_in', `coff_swap_sym_in' and `coff_swap_lineno_in'. `GDB'
+reads the symbol table on its own, but uses BFD to fix things up. More
+of the bit twiddlers are exported for `gas'; `coff_swap_aux_out',
+`coff_swap_sym_out', `coff_swap_lineno_out', `coff_swap_reloc_out',
+`coff_swap_filehdr_out', `coff_swap_aouthdr_out',
+`coff_swap_scnhdr_out'. `Gas' currently keeps track of all the symbol
+table and reloc drudgery itself, thereby saving the internal BFD
+overhead, but uses BFD to swap things on the way out, making cross
+ports much safer. Doing so also allows BFD (and thus the linker) to
+use the same header files as `gas', which makes one avenue to disaster
+disappear.
+
+3.3.2.4 Symbol reading
+......................
+
+The simple canonical form for symbols used by BFD is not rich enough to
+keep all the information available in a coff symbol table. The back end
+gets around this problem by keeping the original symbol table around,
+"behind the scenes".
+
+ When a symbol table is requested (through a call to
+`bfd_canonicalize_symtab'), a request gets through to
+`coff_get_normalized_symtab'. This reads the symbol table from the coff
+file and swaps all the structures inside into the internal form. It
+also fixes up all the pointers in the table (represented in the file by
+offsets from the first symbol in the table) into physical pointers to
+elements in the new internal table. This involves some work since the
+meanings of fields change depending upon context: a field that is a
+pointer to another structure in the symbol table at one moment may be
+the size in bytes of a structure at the next. Another pass is made
+over the table. All symbols which mark file names (`C_FILE' symbols)
+are modified so that the internal string points to the value in the
+auxent (the real filename) rather than the normal text associated with
+the symbol (`".file"').
+
+ At this time the symbol names are moved around. Coff stores all
+symbols less than nine characters long physically within the symbol
+table; longer strings are kept at the end of the file in the string
+table. This pass moves all strings into memory and replaces them with
+pointers to the strings.
+
+ The symbol table is massaged once again, this time to create the
+canonical table used by the BFD application. Each symbol is inspected
+in turn, and a decision made (using the `sclass' field) about the
+various flags to set in the `asymbol'. *Note Symbols::. The generated
+canonical table shares strings with the hidden internal symbol table.
+
+ Any linenumbers are read from the coff file too, and attached to the
+symbols which own the functions the linenumbers belong to.
+
+3.3.2.5 Symbol writing
+......................
+
+Writing a symbol to a coff file which didn't come from a coff file will
+lose any debugging information. The `asymbol' structure remembers the
+BFD from which the symbol was taken, and on output the back end makes
+sure that the same destination target as source target is present.
+
+ When the symbols have come from a coff file then all the debugging
+information is preserved.
+
+ Symbol tables are provided for writing to the back end in a vector
+of pointers to pointers. This allows applications like the linker to
+accumulate and output large symbol tables without having to do too much
+byte copying.
+
+ This function runs through the provided symbol table and patches
+each symbol marked as a file place holder (`C_FILE') to point to the
+next file place holder in the list. It also marks each `offset' field
+in the list with the offset from the first symbol of the current symbol.
+
+ Another function of this procedure is to turn the canonical value
+form of BFD into the form used by coff. Internally, BFD expects symbol
+values to be offsets from a section base; so a symbol physically at
+0x120, but in a section starting at 0x100, would have the value 0x20.
+Coff expects symbols to contain their final value, so symbols have
+their values changed at this point to reflect their sum with their
+owning section. This transformation uses the `output_section' field of
+the `asymbol''s `asection' *Note Sections::.
+
+ * `coff_mangle_symbols'
+ This routine runs though the provided symbol table and uses the
+offsets generated by the previous pass and the pointers generated when
+the symbol table was read in to create the structured hierarchy
+required by coff. It changes each pointer to a symbol into the index
+into the symbol table of the asymbol.
+
+ * `coff_write_symbols'
+ This routine runs through the symbol table and patches up the
+symbols from their internal form into the coff way, calls the bit
+twiddlers, and writes out the table to the file.
+
+3.3.2.6 `coff_symbol_type'
+..........................
+
+*Description*
+The hidden information for an `asymbol' is described in a
+`combined_entry_type':
+
+
+ typedef struct coff_ptr_struct
+ {
+ /* Remembers the offset from the first symbol in the file for
+ this symbol. Generated by coff_renumber_symbols. */
+ unsigned int offset;
+
+ /* Should the value of this symbol be renumbered. Used for
+ XCOFF C_BSTAT symbols. Set by coff_slurp_symbol_table. */
+ unsigned int fix_value : 1;
+
+ /* Should the tag field of this symbol be renumbered.
+ Created by coff_pointerize_aux. */
+ unsigned int fix_tag : 1;
+
+ /* Should the endidx field of this symbol be renumbered.
+ Created by coff_pointerize_aux. */
+ unsigned int fix_end : 1;
+
+ /* Should the x_csect.x_scnlen field be renumbered.
+ Created by coff_pointerize_aux. */
+ unsigned int fix_scnlen : 1;
+
+ /* Fix up an XCOFF C_BINCL/C_EINCL symbol. The value is the
+ index into the line number entries. Set by coff_slurp_symbol_table. */
+ unsigned int fix_line : 1;
+
+ /* The container for the symbol structure as read and translated
+ from the file. */
+ union
+ {
+ union internal_auxent auxent;
+ struct internal_syment syment;
+ } u;
+ } combined_entry_type;
+
+
+ /* Each canonical asymbol really looks like this: */
+
+ typedef struct coff_symbol_struct
+ {
+ /* The actual symbol which the rest of BFD works with */
+ asymbol symbol;
+
+ /* A pointer to the hidden information for this symbol */
+ combined_entry_type *native;
+
+ /* A pointer to the linenumber information for this symbol */
+ struct lineno_cache_entry *lineno;
+
+ /* Have the line numbers been relocated yet ? */
+ bfd_boolean done_lineno;
+ } coff_symbol_type;
+
+3.3.2.7 `bfd_coff_backend_data'
+...............................
+
+ /* COFF symbol classifications. */
+
+ enum coff_symbol_classification
+ {
+ /* Global symbol. */
+ COFF_SYMBOL_GLOBAL,
+ /* Common symbol. */
+ COFF_SYMBOL_COMMON,
+ /* Undefined symbol. */
+ COFF_SYMBOL_UNDEFINED,
+ /* Local symbol. */
+ COFF_SYMBOL_LOCAL,
+ /* PE section symbol. */
+ COFF_SYMBOL_PE_SECTION
+ };
+Special entry points for gdb to swap in coff symbol table parts:
+ typedef struct
+ {
+ void (*_bfd_coff_swap_aux_in)
+ (bfd *, void *, int, int, int, int, void *);
+
+ void (*_bfd_coff_swap_sym_in)
+ (bfd *, void *, void *);
+
+ void (*_bfd_coff_swap_lineno_in)
+ (bfd *, void *, void *);
+
+ unsigned int (*_bfd_coff_swap_aux_out)
+ (bfd *, void *, int, int, int, int, void *);
+
+ unsigned int (*_bfd_coff_swap_sym_out)
+ (bfd *, void *, void *);
+
+ unsigned int (*_bfd_coff_swap_lineno_out)
+ (bfd *, void *, void *);
+
+ unsigned int (*_bfd_coff_swap_reloc_out)
+ (bfd *, void *, void *);
+
+ unsigned int (*_bfd_coff_swap_filehdr_out)
+ (bfd *, void *, void *);
+
+ unsigned int (*_bfd_coff_swap_aouthdr_out)
+ (bfd *, void *, void *);
+
+ unsigned int (*_bfd_coff_swap_scnhdr_out)
+ (bfd *, void *, void *);
+
+ unsigned int _bfd_filhsz;
+ unsigned int _bfd_aoutsz;
+ unsigned int _bfd_scnhsz;
+ unsigned int _bfd_symesz;
+ unsigned int _bfd_auxesz;
+ unsigned int _bfd_relsz;
+ unsigned int _bfd_linesz;
+ unsigned int _bfd_filnmlen;
+ bfd_boolean _bfd_coff_long_filenames;
+
+ bfd_boolean _bfd_coff_long_section_names;
+ bfd_boolean (*_bfd_coff_set_long_section_names)
+ (bfd *, int);
+
+ unsigned int _bfd_coff_default_section_alignment_power;
+ bfd_boolean _bfd_coff_force_symnames_in_strings;
+ unsigned int _bfd_coff_debug_string_prefix_length;
+
+ void (*_bfd_coff_swap_filehdr_in)
+ (bfd *, void *, void *);
+
+ void (*_bfd_coff_swap_aouthdr_in)
+ (bfd *, void *, void *);
+
+ void (*_bfd_coff_swap_scnhdr_in)
+ (bfd *, void *, void *);
+
+ void (*_bfd_coff_swap_reloc_in)
+ (bfd *abfd, void *, void *);
+
+ bfd_boolean (*_bfd_coff_bad_format_hook)
+ (bfd *, void *);
+
+ bfd_boolean (*_bfd_coff_set_arch_mach_hook)
+ (bfd *, void *);
+
+ void * (*_bfd_coff_mkobject_hook)
+ (bfd *, void *, void *);
+
+ bfd_boolean (*_bfd_styp_to_sec_flags_hook)
+ (bfd *, void *, const char *, asection *, flagword *);
+
+ void (*_bfd_set_alignment_hook)
+ (bfd *, asection *, void *);
+
+ bfd_boolean (*_bfd_coff_slurp_symbol_table)
+ (bfd *);
+
+ bfd_boolean (*_bfd_coff_symname_in_debug)
+ (bfd *, struct internal_syment *);
+
+ bfd_boolean (*_bfd_coff_pointerize_aux_hook)
+ (bfd *, combined_entry_type *, combined_entry_type *,
+ unsigned int, combined_entry_type *);
+
+ bfd_boolean (*_bfd_coff_print_aux)
+ (bfd *, FILE *, combined_entry_type *, combined_entry_type *,
+ combined_entry_type *, unsigned int);
+
+ void (*_bfd_coff_reloc16_extra_cases)
+ (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
+ bfd_byte *, unsigned int *, unsigned int *);
+
+ int (*_bfd_coff_reloc16_estimate)
+ (bfd *, asection *, arelent *, unsigned int,
+ struct bfd_link_info *);
+
+ enum coff_symbol_classification (*_bfd_coff_classify_symbol)
+ (bfd *, struct internal_syment *);
+
+ bfd_boolean (*_bfd_coff_compute_section_file_positions)
+ (bfd *);
+
+ bfd_boolean (*_bfd_coff_start_final_link)
+ (bfd *, struct bfd_link_info *);
+
+ bfd_boolean (*_bfd_coff_relocate_section)
+ (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
+ struct internal_reloc *, struct internal_syment *, asection **);
+
+ reloc_howto_type *(*_bfd_coff_rtype_to_howto)
+ (bfd *, asection *, struct internal_reloc *,
+ struct coff_link_hash_entry *, struct internal_syment *,
+ bfd_vma *);
+
+ bfd_boolean (*_bfd_coff_adjust_symndx)
+ (bfd *, struct bfd_link_info *, bfd *, asection *,
+ struct internal_reloc *, bfd_boolean *);
+
+ bfd_boolean (*_bfd_coff_link_add_one_symbol)
+ (struct bfd_link_info *, bfd *, const char *, flagword,
+ asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
+ struct bfd_link_hash_entry **);
+
+ bfd_boolean (*_bfd_coff_link_output_has_begun)
+ (bfd *, struct coff_final_link_info *);
+
+ bfd_boolean (*_bfd_coff_final_link_postscript)
+ (bfd *, struct coff_final_link_info *);
+
+ bfd_boolean (*_bfd_coff_print_pdata)
+ (bfd *, void *);
+
+ } bfd_coff_backend_data;
+
+ #define coff_backend_info(abfd) \
+ ((bfd_coff_backend_data *) (abfd)->xvec->backend_data)
+
+ #define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \
+ ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i))
+
+ #define bfd_coff_swap_sym_in(a,e,i) \
+ ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i))
+
+ #define bfd_coff_swap_lineno_in(a,e,i) \
+ ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i))
+
+ #define bfd_coff_swap_reloc_out(abfd, i, o) \
+ ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o))
+
+ #define bfd_coff_swap_lineno_out(abfd, i, o) \
+ ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o))
+
+ #define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \
+ ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o))
+
+ #define bfd_coff_swap_sym_out(abfd, i,o) \
+ ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o))
+
+ #define bfd_coff_swap_scnhdr_out(abfd, i,o) \
+ ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o))
+
+ #define bfd_coff_swap_filehdr_out(abfd, i,o) \
+ ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o))
+
+ #define bfd_coff_swap_aouthdr_out(abfd, i,o) \
+ ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o))
+
+ #define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz)
+ #define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz)
+ #define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz)
+ #define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz)
+ #define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz)
+ #define bfd_coff_relsz(abfd) (coff_backend_info (abfd)->_bfd_relsz)
+ #define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz)
+ #define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen)
+ #define bfd_coff_long_filenames(abfd) \
+ (coff_backend_info (abfd)->_bfd_coff_long_filenames)
+ #define bfd_coff_long_section_names(abfd) \
+ (coff_backend_info (abfd)->_bfd_coff_long_section_names)
+ #define bfd_coff_set_long_section_names(abfd, enable) \
+ ((coff_backend_info (abfd)->_bfd_coff_set_long_section_names) (abfd, enable))
+ #define bfd_coff_default_section_alignment_power(abfd) \
+ (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power)
+ #define bfd_coff_swap_filehdr_in(abfd, i,o) \
+ ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o))
+
+ #define bfd_coff_swap_aouthdr_in(abfd, i,o) \
+ ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o))
+
+ #define bfd_coff_swap_scnhdr_in(abfd, i,o) \
+ ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o))
+
+ #define bfd_coff_swap_reloc_in(abfd, i, o) \
+ ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o))
+
+ #define bfd_coff_bad_format_hook(abfd, filehdr) \
+ ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr))
+
+ #define bfd_coff_set_arch_mach_hook(abfd, filehdr)\
+ ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr))
+ #define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\
+ ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\
+ (abfd, filehdr, aouthdr))
+
+ #define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\
+ ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\
+ (abfd, scnhdr, name, section, flags_ptr))
+
+ #define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\
+ ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr))
+
+ #define bfd_coff_slurp_symbol_table(abfd)\
+ ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd))
+
+ #define bfd_coff_symname_in_debug(abfd, sym)\
+ ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym))
+
+ #define bfd_coff_force_symnames_in_strings(abfd)\
+ (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings)
+
+ #define bfd_coff_debug_string_prefix_length(abfd)\
+ (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length)
+
+ #define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\
+ ((coff_backend_info (abfd)->_bfd_coff_print_aux)\
+ (abfd, file, base, symbol, aux, indaux))
+
+ #define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\
+ reloc, data, src_ptr, dst_ptr)\
+ ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
+ (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
+
+ #define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\
+ ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\
+ (abfd, section, reloc, shrink, link_info))
+
+ #define bfd_coff_classify_symbol(abfd, sym)\
+ ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\
+ (abfd, sym))
+
+ #define bfd_coff_compute_section_file_positions(abfd)\
+ ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\
+ (abfd))
+
+ #define bfd_coff_start_final_link(obfd, info)\
+ ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\
+ (obfd, info))
+ #define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\
+ ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\
+ (obfd, info, ibfd, o, con, rel, isyms, secs))
+ #define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\
+ ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\
+ (abfd, sec, rel, h, sym, addendp))
+ #define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\
+ ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
+ (obfd, info, ibfd, sec, rel, adjustedp))
+ #define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
+ value, string, cp, coll, hashp)\
+ ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
+ (info, abfd, name, flags, section, value, string, cp, coll, hashp))
+
+ #define bfd_coff_link_output_has_begun(a,p) \
+ ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p))
+ #define bfd_coff_final_link_postscript(a,p) \
+ ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a, p))
+
+ #define bfd_coff_have_print_pdata(a) \
+ (coff_backend_info (a)->_bfd_coff_print_pdata)
+ #define bfd_coff_print_pdata(a,p) \
+ ((coff_backend_info (a)->_bfd_coff_print_pdata) (a, p))
+
+ /* Macro: Returns true if the bfd is a PE executable as opposed to a
+ PE object file. */
+ #define bfd_pei_p(abfd) \
+ (CONST_STRNEQ ((abfd)->xvec->name, "pei-"))
+
+3.3.2.8 Writing relocations
+...........................
+
+To write relocations, the back end steps though the canonical
+relocation table and create an `internal_reloc'. The symbol index to
+use is removed from the `offset' field in the symbol table supplied.
+The address comes directly from the sum of the section base address and
+the relocation offset; the type is dug directly from the howto field.
+Then the `internal_reloc' is swapped into the shape of an
+`external_reloc' and written out to disk.
+
+3.3.2.9 Reading linenumbers
+...........................
+
+Creating the linenumber table is done by reading in the entire coff
+linenumber table, and creating another table for internal use.
+
+ A coff linenumber table is structured so that each function is
+marked as having a line number of 0. Each line within the function is
+an offset from the first line in the function. The base of the line
+number information for the table is stored in the symbol associated
+with the function.
+
+ Note: The PE format uses line number 0 for a flag indicating a new
+source file.
+
+ The information is copied from the external to the internal table,
+and each symbol which marks a function is marked by pointing its...
+
+ How does this work ?
+
+3.3.2.10 Reading relocations
+............................
+
+Coff relocations are easily transformed into the internal BFD form
+(`arelent').
+
+ Reading a coff relocation table is done in the following stages:
+
+ * Read the entire coff relocation table into memory.
+
+ * Process each relocation in turn; first swap it from the external
+ to the internal form.
+
+ * Turn the symbol referenced in the relocation's symbol index into a
+ pointer into the canonical symbol table. This table is the same
+ as the one returned by a call to `bfd_canonicalize_symtab'. The
+ back end will call that routine and save the result if a
+ canonicalization hasn't been done.
+
+ * The reloc index is turned into a pointer to a howto structure, in
+ a back end specific way. For instance, the 386 and 960 use the
+ `r_type' to directly produce an index into a howto table vector;
+ the 88k subtracts a number from the `r_type' field and creates an
+ addend field.
+
+
+File: bfd.info, Node: elf, Next: mmo, Prev: coff, Up: BFD back ends
+
+3.4 ELF backends
+================
+
+BFD support for ELF formats is being worked on. Currently, the best
+supported back ends are for sparc and i386 (running svr4 or Solaris 2).
+
+ Documentation of the internals of the support code still needs to be
+written. The code is changing quickly enough that we haven't bothered
+yet.
+
+
+File: bfd.info, Node: mmo, Prev: elf, Up: BFD back ends
+
+3.5 mmo backend
+===============
+
+The mmo object format is used exclusively together with Professor
+Donald E. Knuth's educational 64-bit processor MMIX. The simulator
+`mmix' which is available at
+`http://www-cs-faculty.stanford.edu/~knuth/programs/mmix.tar.gz'
+understands this format. That package also includes a combined
+assembler and linker called `mmixal'. The mmo format has no advantages
+feature-wise compared to e.g. ELF. It is a simple non-relocatable
+object format with no support for archives or debugging information,
+except for symbol value information and line numbers (which is not yet
+implemented in BFD). See
+`http://www-cs-faculty.stanford.edu/~knuth/mmix.html' for more
+information about MMIX. The ELF format is used for intermediate object
+files in the BFD implementation.
+
+* Menu:
+
+* File layout::
+* Symbol-table::
+* mmo section mapping::
+
+
+File: bfd.info, Node: File layout, Next: Symbol-table, Prev: mmo, Up: mmo
+
+3.5.1 File layout
+-----------------
+
+The mmo file contents is not partitioned into named sections as with
+e.g. ELF. Memory areas is formed by specifying the location of the
+data that follows. Only the memory area `0x0000...00' to `0x01ff...ff'
+is executable, so it is used for code (and constants) and the area
+`0x2000...00' to `0x20ff...ff' is used for writable data. *Note mmo
+section mapping::.
+
+ There is provision for specifying "special data" of 65536 different
+types. We use type 80 (decimal), arbitrarily chosen the same as the
+ELF `e_machine' number for MMIX, filling it with section information
+normally found in ELF objects. *Note mmo section mapping::.
+
+ Contents is entered as 32-bit words, xor:ed over previous contents,
+always zero-initialized. A word that starts with the byte `0x98' forms
+a command called a `lopcode', where the next byte distinguished between
+the thirteen lopcodes. The two remaining bytes, called the `Y' and `Z'
+fields, or the `YZ' field (a 16-bit big-endian number), are used for
+various purposes different for each lopcode. As documented in
+`http://www-cs-faculty.stanford.edu/~knuth/mmixal-intro.ps.gz', the
+lopcodes are:
+
+`lop_quote'
+ 0x98000001. The next word is contents, regardless of whether it
+ starts with 0x98 or not.
+
+`lop_loc'
+ 0x9801YYZZ, where `Z' is 1 or 2. This is a location directive,
+ setting the location for the next data to the next 32-bit word
+ (for Z = 1) or 64-bit word (for Z = 2), plus Y * 2^56. Normally
+ `Y' is 0 for the text segment and 2 for the data segment.
+
+`lop_skip'
+ 0x9802YYZZ. Increase the current location by `YZ' bytes.
+
+`lop_fixo'
+ 0x9803YYZZ, where `Z' is 1 or 2. Store the current location as 64
+ bits into the location pointed to by the next 32-bit (Z = 1) or
+ 64-bit (Z = 2) word, plus Y * 2^56.
+
+`lop_fixr'
+ 0x9804YYZZ. `YZ' is stored into the current location plus 2 - 4 *
+ YZ.
+
+`lop_fixrx'
+ 0x980500ZZ. `Z' is 16 or 24. A value `L' derived from the
+ following 32-bit word are used in a manner similar to `YZ' in
+ lop_fixr: it is xor:ed into the current location minus 4 * L. The
+ first byte of the word is 0 or 1. If it is 1, then L = (LOWEST 24
+ BITS OF WORD) - 2^Z, if 0, then L = (LOWEST 24 BITS OF WORD).
+
+`lop_file'
+ 0x9806YYZZ. `Y' is the file number, `Z' is count of 32-bit words.
+ Set the file number to `Y' and the line counter to 0. The next Z
+ * 4 bytes contain the file name, padded with zeros if the count is
+ not a multiple of four. The same `Y' may occur multiple times,
+ but `Z' must be 0 for all but the first occurrence.
+
+`lop_line'
+ 0x9807YYZZ. `YZ' is the line number. Together with lop_file, it
+ forms the source location for the next 32-bit word. Note that for
+ each non-lopcode 32-bit word, line numbers are assumed incremented
+ by one.
+
+`lop_spec'
+ 0x9808YYZZ. `YZ' is the type number. Data until the next lopcode
+ other than lop_quote forms special data of type `YZ'. *Note mmo
+ section mapping::.
+
+ Other types than 80, (or type 80 with a content that does not
+ parse) is stored in sections named `.MMIX.spec_data.N' where N is
+ the `YZ'-type. The flags for such a sections say not to allocate
+ or load the data. The vma is 0. Contents of multiple occurrences
+ of special data N is concatenated to the data of the previous
+ lop_spec Ns. The location in data or code at which the lop_spec
+ occurred is lost.
+
+`lop_pre'
+ 0x980901ZZ. The first lopcode in a file. The `Z' field forms the
+ length of header information in 32-bit words, where the first word
+ tells the time in seconds since `00:00:00 GMT Jan 1 1970'.
+
+`lop_post'
+ 0x980a00ZZ. Z > 32. This lopcode follows after all
+ content-generating lopcodes in a program. The `Z' field denotes
+ the value of `rG' at the beginning of the program. The following
+ 256 - Z big-endian 64-bit words are loaded into global registers
+ `$G' ... `$255'.
+
+`lop_stab'
+ 0x980b0000. The next-to-last lopcode in a program. Must follow
+ immediately after the lop_post lopcode and its data. After this
+ lopcode follows all symbols in a compressed format (*note
+ Symbol-table::).
+
+`lop_end'
+ 0x980cYYZZ. The last lopcode in a program. It must follow the
+ lop_stab lopcode and its data. The `YZ' field contains the number
+ of 32-bit words of symbol table information after the preceding
+ lop_stab lopcode.
+
+ Note that the lopcode "fixups"; `lop_fixr', `lop_fixrx' and
+`lop_fixo' are not generated by BFD, but are handled. They are
+generated by `mmixal'.
+
+ This trivial one-label, one-instruction file:
+
+ :Main TRAP 1,2,3
+
+ can be represented this way in mmo:
+
+ 0x98090101 - lop_pre, one 32-bit word with timestamp.
+ <timestamp>
+ 0x98010002 - lop_loc, text segment, using a 64-bit address.
+ Note that mmixal does not emit this for the file above.
+ 0x00000000 - Address, high 32 bits.
+ 0x00000000 - Address, low 32 bits.
+ 0x98060002 - lop_file, 2 32-bit words for file-name.
+ 0x74657374 - "test"
+ 0x2e730000 - ".s\0\0"
+ 0x98070001 - lop_line, line 1.
+ 0x00010203 - TRAP 1,2,3
+ 0x980a00ff - lop_post, setting $255 to 0.
+ 0x00000000
+ 0x00000000
+ 0x980b0000 - lop_stab for ":Main" = 0, serial 1.
+ 0x203a4040 *Note Symbol-table::.
+ 0x10404020
+ 0x4d206120
+ 0x69016e00
+ 0x81000000
+ 0x980c0005 - lop_end; symbol table contained five 32-bit words.
+
+
+File: bfd.info, Node: Symbol-table, Next: mmo section mapping, Prev: File layout, Up: mmo
+
+3.5.2 Symbol table format
+-------------------------
+
+From mmixal.w (or really, the generated mmixal.tex) in
+`http://www-cs-faculty.stanford.edu/~knuth/programs/mmix.tar.gz'):
+"Symbols are stored and retrieved by means of a `ternary search trie',
+following ideas of Bentley and Sedgewick. (See ACM-SIAM Symp. on
+Discrete Algorithms `8' (1997), 360-369; R.Sedgewick, `Algorithms in C'
+(Reading, Mass. Addison-Wesley, 1998), `15.4'.) Each trie node stores
+a character, and there are branches to subtries for the cases where a
+given character is less than, equal to, or greater than the character
+in the trie. There also is a pointer to a symbol table entry if a
+symbol ends at the current node."
+
+ So it's a tree encoded as a stream of bytes. The stream of bytes
+acts on a single virtual global symbol, adding and removing characters
+and signalling complete symbol points. Here, we read the stream and
+create symbols at the completion points.
+
+ First, there's a control byte `m'. If any of the listed bits in `m'
+is nonzero, we execute what stands at the right, in the listed order:
+
+ (MMO3_LEFT)
+ 0x40 - Traverse left trie.
+ (Read a new command byte and recurse.)
+
+ (MMO3_SYMBITS)
+ 0x2f - Read the next byte as a character and store it in the
+ current character position; increment character position.
+ Test the bits of `m':
+
+ (MMO3_WCHAR)
+ 0x80 - The character is 16-bit (so read another byte,
+ merge into current character.
+
+ (MMO3_TYPEBITS)
+ 0xf - We have a complete symbol; parse the type, value
+ and serial number and do what should be done
+ with a symbol. The type and length information
+ is in j = (m & 0xf).
+
+ (MMO3_REGQUAL_BITS)
+ j == 0xf: A register variable. The following
+ byte tells which register.
+ j <= 8: An absolute symbol. Read j bytes as the
+ big-endian number the symbol equals.
+ A j = 2 with two zero bytes denotes an
+ unknown symbol.
+ j > 8: As with j <= 8, but add (0x20 << 56)
+ to the value in the following j - 8
+ bytes.
+
+ Then comes the serial number, as a variant of
+ uleb128, but better named ubeb128:
+ Read bytes and shift the previous value left 7
+ (multiply by 128). Add in the new byte, repeat
+ until a byte has bit 7 set. The serial number
+ is the computed value minus 128.
+
+ (MMO3_MIDDLE)
+ 0x20 - Traverse middle trie. (Read a new command byte
+ and recurse.) Decrement character position.
+
+ (MMO3_RIGHT)
+ 0x10 - Traverse right trie. (Read a new command byte and
+ recurse.)
+
+ Let's look again at the `lop_stab' for the trivial file (*note File
+layout::).
+
+ 0x980b0000 - lop_stab for ":Main" = 0, serial 1.
+ 0x203a4040
+ 0x10404020
+ 0x4d206120
+ 0x69016e00
+ 0x81000000
+
+ This forms the trivial trie (note that the path between ":" and "M"
+is redundant):
+
+ 203a ":"
+ 40 /
+ 40 /
+ 10 \
+ 40 /
+ 40 /
+ 204d "M"
+ 2061 "a"
+ 2069 "i"
+ 016e "n" is the last character in a full symbol, and
+ with a value represented in one byte.
+ 00 The value is 0.
+ 81 The serial number is 1.
+
+
+File: bfd.info, Node: mmo section mapping, Prev: Symbol-table, Up: mmo
+
+3.5.3 mmo section mapping
+-------------------------
+
+The implementation in BFD uses special data type 80 (decimal) to
+encapsulate and describe named sections, containing e.g. debug
+information. If needed, any datum in the encapsulation will be quoted
+using lop_quote. First comes a 32-bit word holding the number of
+32-bit words containing the zero-terminated zero-padded segment name.
+After the name there's a 32-bit word holding flags describing the
+section type. Then comes a 64-bit big-endian word with the section
+length (in bytes), then another with the section start address.
+Depending on the type of section, the contents might follow,
+zero-padded to 32-bit boundary. For a loadable section (such as data
+or code), the contents might follow at some later point, not
+necessarily immediately, as a lop_loc with the same start address as in
+the section description, followed by the contents. This in effect
+forms a descriptor that must be emitted before the actual contents.
+Sections described this way must not overlap.
+
+ For areas that don't have such descriptors, synthetic sections are
+formed by BFD. Consecutive contents in the two memory areas
+`0x0000...00' to `0x01ff...ff' and `0x2000...00' to `0x20ff...ff' are
+entered in sections named `.text' and `.data' respectively. If an area
+is not otherwise described, but would together with a neighboring lower
+area be less than `0x40000000' bytes long, it is joined with the lower
+area and the gap is zero-filled. For other cases, a new section is
+formed, named `.MMIX.sec.N'. Here, N is a number, a running count
+through the mmo file, starting at 0.
+
+ A loadable section specified as:
+
+ .section secname,"ax"
+ TETRA 1,2,3,4,-1,-2009
+ BYTE 80
+
+ and linked to address `0x4', is represented by the sequence:
+
+ 0x98080050 - lop_spec 80
+ 0x00000002 - two 32-bit words for the section name
+ 0x7365636e - "secn"
+ 0x616d6500 - "ame\0"
+ 0x00000033 - flags CODE, READONLY, LOAD, ALLOC
+ 0x00000000 - high 32 bits of section length
+ 0x0000001c - section length is 28 bytes; 6 * 4 + 1 + alignment to 32 bits
+ 0x00000000 - high 32 bits of section address
+ 0x00000004 - section address is 4
+ 0x98010002 - 64 bits with address of following data
+ 0x00000000 - high 32 bits of address
+ 0x00000004 - low 32 bits: data starts at address 4
+ 0x00000001 - 1
+ 0x00000002 - 2
+ 0x00000003 - 3
+ 0x00000004 - 4
+ 0xffffffff - -1
+ 0xfffff827 - -2009
+ 0x50000000 - 80 as a byte, padded with zeros.
+
+ Note that the lop_spec wrapping does not include the section
+contents. Compare this to a non-loaded section specified as:
+
+ .section thirdsec
+ TETRA 200001,100002
+ BYTE 38,40
+
+ This, when linked to address `0x200000000000001c', is represented by:
+
+ 0x98080050 - lop_spec 80
+ 0x00000002 - two 32-bit words for the section name
+ 0x7365636e - "thir"
+ 0x616d6500 - "dsec"
+ 0x00000010 - flag READONLY
+ 0x00000000 - high 32 bits of section length
+ 0x0000000c - section length is 12 bytes; 2 * 4 + 2 + alignment to 32 bits
+ 0x20000000 - high 32 bits of address
+ 0x0000001c - low 32 bits of address 0x200000000000001c
+ 0x00030d41 - 200001
+ 0x000186a2 - 100002
+ 0x26280000 - 38, 40 as bytes, padded with zeros
+
+ For the latter example, the section contents must not be loaded in
+memory, and is therefore specified as part of the special data. The
+address is usually unimportant but might provide information for e.g.
+the DWARF 2 debugging format.
+
+
+File: bfd.info, Node: GNU Free Documentation License, Next: BFD Index, Prev: BFD back ends, Up: Top
+
+ Version 1.3, 3 November 2008
+
+ Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+ `http://fsf.org/'
+
+ 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
+ functional and useful 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, in any medium,
+ that contains a notice placed by the copyright holder saying it
+ can be distributed under the terms of this License. Such a notice
+ grants a world-wide, royalty-free license, unlimited in duration,
+ to use that work under the conditions stated herein. The
+ "Document", below, refers to any such manual or work. Any member
+ of the public is a licensee, and is addressed as "you". You
+ accept the license if you copy, modify or distribute the work in a
+ way requiring permission under copyright law.
+
+ 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. (Thus, 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. If a section does not fit the above definition of
+ Secondary then it is not allowed to be designated as Invariant.
+ The Document may contain zero Invariant Sections. If the Document
+ does not identify any Invariant Sections then there are none.
+
+ 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
+ Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+ be at most 25 words.
+
+ A "Transparent" copy of the Document means a machine-readable copy,
+ represented in a format whose specification is available to the
+ general public, that is suitable for revising the document
+ 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, or absence of
+ markup, has been arranged to thwart or discourage subsequent
+ modification by readers is not Transparent. An image format is
+ not Transparent if used for any substantial amount of text. 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, PostScript or PDF designed for
+ human modification. Examples of transparent image formats include
+ PNG, XCF and JPG. Opaque formats include 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, PostScript or PDF
+ 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.
+
+ The "publisher" means any person or entity that distributes copies
+ of the Document to the public.
+
+ A section "Entitled XYZ" means a named subunit of the Document
+ whose title either is precisely XYZ or contains XYZ in parentheses
+ following text that translates XYZ in another language. (Here XYZ
+ stands for a specific section name mentioned below, such as
+ "Acknowledgements", "Dedications", "Endorsements", or "History".)
+ To "Preserve the Title" of such a section when you modify the
+ Document means that it remains a section "Entitled XYZ" according
+ to this definition.
+
+ The Document may include Warranty Disclaimers next to the notice
+ which states that this License applies to the Document. These
+ Warranty Disclaimers are considered to be included by reference in
+ this License, but only as regards disclaiming warranties: any other
+ implication that these Warranty Disclaimers may have is void and
+ has no effect on the meaning of this License.
+
+ 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 (or copies in media that commonly
+ have printed covers) 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 computer-network location from
+ which the general network-using public has access to download
+ using public-standard network protocols a complete Transparent
+ copy of the Document, free of added material. 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 fewer than five), unless they release you
+ from this requirement.
+
+ 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", Preserve 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. For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, 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 to be Entitled
+ "Endorsements" or to conflict in title with any Invariant
+ Section.
+
+ O. Preserve any Warranty Disclaimers.
+
+ 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, and that you preserve all
+ their Warranty Disclaimers.
+
+ 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, is called an "aggregate" if the
+ copyright resulting from the compilation is not used to limit the
+ legal rights of the compilation's users beyond what the individual
+ works permit. When the Document is included in an aggregate, this
+ License does not apply to the other works in the aggregate which
+ 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 half
+ of the entire aggregate, the Document's Cover Texts may be placed
+ on covers that bracket the Document within the aggregate, or the
+ electronic equivalent of covers if the Document is in electronic
+ form. Otherwise they must appear on printed covers that bracket
+ 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, and all the license notices in the
+ Document, and any Warranty Disclaimers, provided that you also
+ include the original English version of this License and the
+ original versions of those notices and disclaimers. In case of a
+ disagreement between the translation and the original version of
+ this License or a notice or disclaimer, the original version will
+ prevail.
+
+ If a section in the Document is Entitled "Acknowledgements",
+ "Dedications", or "History", the requirement (section 4) to
+ Preserve its Title (section 1) will typically require changing the
+ actual title.
+
+ 9. TERMINATION
+
+ You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided under this License. Any attempt
+ otherwise to copy, modify, sublicense, or distribute it is void,
+ and will automatically terminate your rights under this License.
+
+ However, if you cease all violation of this License, then your
+ license from a particular copyright holder is reinstated (a)
+ provisionally, unless and until the copyright holder explicitly
+ and finally terminates your license, and (b) permanently, if the
+ copyright holder fails to notify you of the violation by some
+ reasonable means prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+ reinstated permanently if the copyright holder notifies you of the
+ violation by some reasonable means, this is the first time you have
+ received notice of violation of this License (for any work) from
+ that copyright holder, and you cure the violation prior to 30 days
+ after your receipt of the notice.
+
+ Termination of your rights under this section does not terminate
+ the licenses of parties who have received copies or rights from
+ you under this License. If your rights have been terminated and
+ not permanently reinstated, receipt of a copy of some or all of
+ the same material does not give you any rights to use it.
+
+ 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. If the Document specifies that a proxy
+ can decide which future versions of this License can be used, that
+ proxy's public statement of acceptance of a version permanently
+ authorizes you to choose that version for the Document.
+
+ 11. RELICENSING
+
+ "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+ World Wide Web server that publishes copyrightable works and also
+ provides prominent facilities for anybody to edit those works. A
+ public wiki that anybody can edit is an example of such a server.
+ A "Massive Multiauthor Collaboration" (or "MMC") contained in the
+ site means any set of copyrightable works thus published on the MMC
+ site.
+
+ "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+ license published by Creative Commons Corporation, a not-for-profit
+ corporation with a principal place of business in San Francisco,
+ California, as well as future copyleft versions of that license
+ published by that same organization.
+
+ "Incorporate" means to publish or republish a Document, in whole or
+ in part, as part of another Document.
+
+ An MMC is "eligible for relicensing" if it is licensed under this
+ License, and if all works that were first published under this
+ License somewhere other than this MMC, and subsequently
+ incorporated in whole or in part into the MMC, (1) had no cover
+ texts or invariant sections, and (2) were thus incorporated prior
+ to November 1, 2008.
+
+ The operator of an MMC Site may republish an MMC contained in the
+ site under CC-BY-SA on the same site at any time before August 1,
+ 2009, provided the MMC is eligible for relicensing.
+
+
+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:
+
+ 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.3
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+ Texts. A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+
+ If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with...Texts." line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with
+ the Front-Cover Texts being LIST, and with the Back-Cover Texts
+ being LIST.
+
+ If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+ 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.
+
+
+File: bfd.info, Node: BFD Index, Prev: GNU Free Documentation License, Up: Top
+
+BFD Index
+*********
+
+
+* Menu:
+
+* _bfd_final_link_relocate: Relocating the section contents.
+ (line 22)
+* _bfd_generic_link_add_archive_symbols: Adding symbols from an archive.
+ (line 15)
+* _bfd_generic_link_add_one_symbol: Adding symbols from an object file.
+ (line 19)
+* _bfd_generic_make_empty_symbol: symbol handling functions.
+ (line 92)
+* _bfd_link_add_symbols in target vector: Adding Symbols to the Hash Table.
+ (line 6)
+* _bfd_link_final_link in target vector: Performing the Final Link.
+ (line 6)
+* _bfd_link_hash_table_create in target vector: Creating a Linker Hash Table.
+ (line 6)
+* _bfd_relocate_contents: Relocating the section contents.
+ (line 22)
+* aout_SIZE_machine_type: aout. (line 147)
+* aout_SIZE_mkobject: aout. (line 139)
+* aout_SIZE_new_section_hook: aout. (line 177)
+* aout_SIZE_set_arch_mach: aout. (line 164)
+* aout_SIZE_some_aout_object_p: aout. (line 125)
+* aout_SIZE_swap_exec_header_in: aout. (line 101)
+* aout_SIZE_swap_exec_header_out: aout. (line 113)
+* arelent_chain: typedef arelent. (line 336)
+* BFD: Overview. (line 6)
+* BFD canonical format: Canonical format. (line 11)
+* bfd_alloc: Opening and Closing.
+ (line 214)
+* bfd_alloc2: Opening and Closing.
+ (line 223)
+* bfd_alt_mach_code: BFD front end. (line 714)
+* bfd_arch_bits_per_address: Architectures. (line 540)
+* bfd_arch_bits_per_byte: Architectures. (line 532)
+* bfd_arch_get_compatible: Architectures. (line 475)
+* bfd_arch_list: Architectures. (line 466)
+* bfd_arch_mach_octets_per_byte: Architectures. (line 609)
+* BFD_ARELOC_BFIN_ADD: howto manager. (line 1058)
+* BFD_ARELOC_BFIN_ADDR: howto manager. (line 1109)
+* BFD_ARELOC_BFIN_AND: howto manager. (line 1079)
+* BFD_ARELOC_BFIN_COMP: howto manager. (line 1100)
+* BFD_ARELOC_BFIN_CONST: howto manager. (line 1055)
+* BFD_ARELOC_BFIN_DIV: howto manager. (line 1067)
+* BFD_ARELOC_BFIN_HWPAGE: howto manager. (line 1106)
+* BFD_ARELOC_BFIN_LAND: howto manager. (line 1088)
+* BFD_ARELOC_BFIN_LEN: howto manager. (line 1094)
+* BFD_ARELOC_BFIN_LOR: howto manager. (line 1091)
+* BFD_ARELOC_BFIN_LSHIFT: howto manager. (line 1073)
+* BFD_ARELOC_BFIN_MOD: howto manager. (line 1070)
+* BFD_ARELOC_BFIN_MULT: howto manager. (line 1064)
+* BFD_ARELOC_BFIN_NEG: howto manager. (line 1097)
+* BFD_ARELOC_BFIN_OR: howto manager. (line 1082)
+* BFD_ARELOC_BFIN_PAGE: howto manager. (line 1103)
+* BFD_ARELOC_BFIN_PUSH: howto manager. (line 1052)
+* BFD_ARELOC_BFIN_RSHIFT: howto manager. (line 1076)
+* BFD_ARELOC_BFIN_SUB: howto manager. (line 1061)
+* BFD_ARELOC_BFIN_XOR: howto manager. (line 1085)
+* bfd_cache_close: File Caching. (line 26)
+* bfd_cache_close_all: File Caching. (line 39)
+* bfd_cache_init: File Caching. (line 18)
+* bfd_calc_gnu_debuglink_crc32: Opening and Closing.
+ (line 250)
+* bfd_canonicalize_reloc: BFD front end. (line 430)
+* bfd_canonicalize_symtab: symbol handling functions.
+ (line 50)
+* bfd_check_format: Formats. (line 21)
+* bfd_check_format_matches: Formats. (line 52)
+* bfd_check_overflow: typedef arelent. (line 348)
+* bfd_close: Opening and Closing.
+ (line 139)
+* bfd_close_all_done: Opening and Closing.
+ (line 157)
+* bfd_coff_backend_data: coff. (line 304)
+* bfd_copy_private_bfd_data: BFD front end. (line 569)
+* bfd_copy_private_header_data: BFD front end. (line 551)
+* bfd_copy_private_section_data: section prototypes. (line 264)
+* bfd_copy_private_symbol_data: symbol handling functions.
+ (line 140)
+* bfd_core_file_failing_command: Core Files. (line 12)
+* bfd_core_file_failing_signal: Core Files. (line 21)
+* bfd_core_file_pid: Core Files. (line 30)
+* bfd_create: Opening and Closing.
+ (line 176)
+* bfd_create_gnu_debuglink_section: Opening and Closing.
+ (line 316)
+* bfd_decode_symclass: symbol handling functions.
+ (line 111)
+* bfd_default_arch_struct: Architectures. (line 487)
+* bfd_default_compatible: Architectures. (line 549)
+* bfd_default_reloc_type_lookup: howto manager. (line 2626)
+* bfd_default_scan: Architectures. (line 558)
+* bfd_default_set_arch_mach: Architectures. (line 505)
+* bfd_demangle: BFD front end. (line 812)
+* bfd_emul_get_commonpagesize: BFD front end. (line 792)
+* bfd_emul_get_maxpagesize: BFD front end. (line 772)
+* bfd_emul_set_commonpagesize: BFD front end. (line 803)
+* bfd_emul_set_maxpagesize: BFD front end. (line 783)
+* bfd_errmsg: BFD front end. (line 355)
+* bfd_fdopenr: Opening and Closing.
+ (line 49)
+* bfd_fill_in_gnu_debuglink_section: Opening and Closing.
+ (line 330)
+* bfd_find_target: bfd_target. (line 468)
+* bfd_find_version_for_sym: Writing the symbol table.
+ (line 81)
+* bfd_follow_gnu_debuglink: Opening and Closing.
+ (line 295)
+* bfd_fopen: Opening and Closing.
+ (line 12)
+* bfd_format_string: Formats. (line 79)
+* bfd_generic_define_common_symbol: Writing the symbol table.
+ (line 68)
+* bfd_generic_discard_group: section prototypes. (line 290)
+* bfd_generic_gc_sections: howto manager. (line 2657)
+* bfd_generic_get_relocated_section_contents: howto manager. (line 2686)
+* bfd_generic_is_group_section: section prototypes. (line 282)
+* bfd_generic_lookup_section_flags: howto manager. (line 2667)
+* bfd_generic_merge_sections: howto manager. (line 2676)
+* bfd_generic_relax_section: howto manager. (line 2644)
+* bfd_get_arch: Architectures. (line 516)
+* bfd_get_arch_info: Architectures. (line 568)
+* bfd_get_arch_size: BFD front end. (line 474)
+* bfd_get_error: BFD front end. (line 336)
+* bfd_get_error_handler: BFD front end. (line 406)
+* bfd_get_gp_size: BFD front end. (line 515)
+* bfd_get_mach: Architectures. (line 524)
+* bfd_get_mtime: BFD front end. (line 863)
+* bfd_get_next_mapent: Archives. (line 52)
+* bfd_get_reloc_code_name: howto manager. (line 2635)
+* bfd_get_reloc_size: typedef arelent. (line 327)
+* bfd_get_reloc_upper_bound: BFD front end. (line 420)
+* bfd_get_section_by_name: section prototypes. (line 17)
+* bfd_get_section_by_name_if: section prototypes. (line 31)
+* bfd_get_section_contents: section prototypes. (line 237)
+* bfd_get_sign_extend_vma: BFD front end. (line 487)
+* bfd_get_size <1>: BFD front end. (line 872)
+* bfd_get_size: Internal. (line 25)
+* bfd_get_symtab_upper_bound: symbol handling functions.
+ (line 6)
+* bfd_get_target_info: bfd_target. (line 484)
+* bfd_get_unique_section_name: section prototypes. (line 50)
+* bfd_h_put_size: Internal. (line 97)
+* bfd_hash_allocate: Creating and Freeing a Hash Table.
+ (line 17)
+* bfd_hash_lookup: Looking Up or Entering a String.
+ (line 6)
+* bfd_hash_newfunc: Creating and Freeing a Hash Table.
+ (line 12)
+* bfd_hash_set_default_size: Creating and Freeing a Hash Table.
+ (line 25)
+* bfd_hash_table_free: Creating and Freeing a Hash Table.
+ (line 21)
+* bfd_hash_table_init: Creating and Freeing a Hash Table.
+ (line 6)
+* bfd_hash_table_init_n: Creating and Freeing a Hash Table.
+ (line 6)
+* bfd_hash_traverse: Traversing a Hash Table.
+ (line 6)
+* bfd_hide_sym_by_version: Writing the symbol table.
+ (line 93)
+* bfd_init: Initialization. (line 11)
+* bfd_install_relocation: typedef arelent. (line 389)
+* bfd_is_local_label: symbol handling functions.
+ (line 17)
+* bfd_is_local_label_name: symbol handling functions.
+ (line 26)
+* bfd_is_target_special_symbol: symbol handling functions.
+ (line 38)
+* bfd_is_undefined_symclass: symbol handling functions.
+ (line 120)
+* bfd_link_split_section: Writing the symbol table.
+ (line 44)
+* bfd_log2: Internal. (line 164)
+* bfd_lookup_arch: Architectures. (line 576)
+* bfd_make_debug_symbol: symbol handling functions.
+ (line 102)
+* bfd_make_empty_symbol: symbol handling functions.
+ (line 78)
+* bfd_make_readable: Opening and Closing.
+ (line 200)
+* bfd_make_section: section prototypes. (line 129)
+* bfd_make_section_anyway: section prototypes. (line 100)
+* bfd_make_section_anyway_with_flags: section prototypes. (line 82)
+* bfd_make_section_old_way: section prototypes. (line 62)
+* bfd_make_section_with_flags: section prototypes. (line 116)
+* bfd_make_writable: Opening and Closing.
+ (line 186)
+* bfd_malloc_and_get_section: section prototypes. (line 254)
+* bfd_map_over_sections: section prototypes. (line 164)
+* bfd_merge_private_bfd_data: BFD front end. (line 585)
+* bfd_mmap: BFD front end. (line 901)
+* bfd_octets_per_byte: Architectures. (line 599)
+* bfd_open_file: File Caching. (line 52)
+* bfd_openr: Opening and Closing.
+ (line 33)
+* bfd_openr_iovec: Opening and Closing.
+ (line 79)
+* bfd_openr_next_archived_file: Archives. (line 78)
+* bfd_openstreamr: Opening and Closing.
+ (line 70)
+* bfd_openw: Opening and Closing.
+ (line 127)
+* bfd_perform_relocation: typedef arelent. (line 364)
+* bfd_perror: BFD front end. (line 364)
+* bfd_preserve_finish: BFD front end. (line 762)
+* bfd_preserve_restore: BFD front end. (line 752)
+* bfd_preserve_save: BFD front end. (line 736)
+* bfd_print_symbol_vandf: symbol handling functions.
+ (line 70)
+* bfd_printable_arch_mach: Architectures. (line 587)
+* bfd_printable_name: Architectures. (line 447)
+* bfd_put_size: Internal. (line 22)
+* BFD_RELOC_12_PCREL: howto manager. (line 39)
+* BFD_RELOC_14: howto manager. (line 31)
+* BFD_RELOC_16: howto manager. (line 30)
+* BFD_RELOC_16_BASEREL: howto manager. (line 95)
+* BFD_RELOC_16_GOT_PCREL: howto manager. (line 52)
+* BFD_RELOC_16_GOTOFF: howto manager. (line 55)
+* BFD_RELOC_16_PCREL: howto manager. (line 38)
+* BFD_RELOC_16_PCREL_S2: howto manager. (line 107)
+* BFD_RELOC_16_PLT_PCREL: howto manager. (line 63)
+* BFD_RELOC_16_PLTOFF: howto manager. (line 67)
+* BFD_RELOC_16C_ABS20: howto manager. (line 2018)
+* BFD_RELOC_16C_ABS20_C: howto manager. (line 2019)
+* BFD_RELOC_16C_ABS24: howto manager. (line 2020)
+* BFD_RELOC_16C_ABS24_C: howto manager. (line 2021)
+* BFD_RELOC_16C_DISP04: howto manager. (line 1998)
+* BFD_RELOC_16C_DISP04_C: howto manager. (line 1999)
+* BFD_RELOC_16C_DISP08: howto manager. (line 2000)
+* BFD_RELOC_16C_DISP08_C: howto manager. (line 2001)
+* BFD_RELOC_16C_DISP16: howto manager. (line 2002)
+* BFD_RELOC_16C_DISP16_C: howto manager. (line 2003)
+* BFD_RELOC_16C_DISP24: howto manager. (line 2004)
+* BFD_RELOC_16C_DISP24_C: howto manager. (line 2005)
+* BFD_RELOC_16C_DISP24a: howto manager. (line 2006)
+* BFD_RELOC_16C_DISP24a_C: howto manager. (line 2007)
+* BFD_RELOC_16C_IMM04: howto manager. (line 2022)
+* BFD_RELOC_16C_IMM04_C: howto manager. (line 2023)
+* BFD_RELOC_16C_IMM16: howto manager. (line 2024)
+* BFD_RELOC_16C_IMM16_C: howto manager. (line 2025)
+* BFD_RELOC_16C_IMM20: howto manager. (line 2026)
+* BFD_RELOC_16C_IMM20_C: howto manager. (line 2027)
+* BFD_RELOC_16C_IMM24: howto manager. (line 2028)
+* BFD_RELOC_16C_IMM24_C: howto manager. (line 2029)
+* BFD_RELOC_16C_IMM32: howto manager. (line 2030)
+* BFD_RELOC_16C_IMM32_C: howto manager. (line 2031)
+* BFD_RELOC_16C_NUM08: howto manager. (line 1992)
+* BFD_RELOC_16C_NUM08_C: howto manager. (line 1993)
+* BFD_RELOC_16C_NUM16: howto manager. (line 1994)
+* BFD_RELOC_16C_NUM16_C: howto manager. (line 1995)
+* BFD_RELOC_16C_NUM32: howto manager. (line 1996)
+* BFD_RELOC_16C_NUM32_C: howto manager. (line 1997)
+* BFD_RELOC_16C_REG04: howto manager. (line 2008)
+* BFD_RELOC_16C_REG04_C: howto manager. (line 2009)
+* BFD_RELOC_16C_REG04a: howto manager. (line 2010)
+* BFD_RELOC_16C_REG04a_C: howto manager. (line 2011)
+* BFD_RELOC_16C_REG14: howto manager. (line 2012)
+* BFD_RELOC_16C_REG14_C: howto manager. (line 2013)
+* BFD_RELOC_16C_REG16: howto manager. (line 2014)
+* BFD_RELOC_16C_REG16_C: howto manager. (line 2015)
+* BFD_RELOC_16C_REG20: howto manager. (line 2016)
+* BFD_RELOC_16C_REG20_C: howto manager. (line 2017)
+* BFD_RELOC_23_PCREL_S2: howto manager. (line 108)
+* BFD_RELOC_24: howto manager. (line 29)
+* BFD_RELOC_24_PCREL: howto manager. (line 37)
+* BFD_RELOC_24_PLT_PCREL: howto manager. (line 62)
+* BFD_RELOC_26: howto manager. (line 28)
+* BFD_RELOC_32: howto manager. (line 27)
+* BFD_RELOC_32_BASEREL: howto manager. (line 94)
+* BFD_RELOC_32_GOT_PCREL: howto manager. (line 51)
+* BFD_RELOC_32_GOTOFF: howto manager. (line 54)
+* BFD_RELOC_32_PCREL: howto manager. (line 36)
+* BFD_RELOC_32_PCREL_S2: howto manager. (line 106)
+* BFD_RELOC_32_PLT_PCREL: howto manager. (line 61)
+* BFD_RELOC_32_PLTOFF: howto manager. (line 66)
+* BFD_RELOC_32_SECREL: howto manager. (line 48)
+* BFD_RELOC_386_COPY: howto manager. (line 540)
+* BFD_RELOC_386_GLOB_DAT: howto manager. (line 541)
+* BFD_RELOC_386_GOT32: howto manager. (line 538)
+* BFD_RELOC_386_GOTOFF: howto manager. (line 544)
+* BFD_RELOC_386_GOTPC: howto manager. (line 545)
+* BFD_RELOC_386_IRELATIVE: howto manager. (line 561)
+* BFD_RELOC_386_JUMP_SLOT: howto manager. (line 542)
+* BFD_RELOC_386_PLT32: howto manager. (line 539)
+* BFD_RELOC_386_RELATIVE: howto manager. (line 543)
+* BFD_RELOC_386_TLS_DESC: howto manager. (line 560)
+* BFD_RELOC_386_TLS_DESC_CALL: howto manager. (line 559)
+* BFD_RELOC_386_TLS_DTPMOD32: howto manager. (line 555)
+* BFD_RELOC_386_TLS_DTPOFF32: howto manager. (line 556)
+* BFD_RELOC_386_TLS_GD: howto manager. (line 550)
+* BFD_RELOC_386_TLS_GOTDESC: howto manager. (line 558)
+* BFD_RELOC_386_TLS_GOTIE: howto manager. (line 548)
+* BFD_RELOC_386_TLS_IE: howto manager. (line 547)
+* BFD_RELOC_386_TLS_IE_32: howto manager. (line 553)
+* BFD_RELOC_386_TLS_LDM: howto manager. (line 551)
+* BFD_RELOC_386_TLS_LDO_32: howto manager. (line 552)
+* BFD_RELOC_386_TLS_LE: howto manager. (line 549)
+* BFD_RELOC_386_TLS_LE_32: howto manager. (line 554)
+* BFD_RELOC_386_TLS_TPOFF: howto manager. (line 546)
+* BFD_RELOC_386_TLS_TPOFF32: howto manager. (line 557)
+* BFD_RELOC_390_12: howto manager. (line 1678)
+* BFD_RELOC_390_20: howto manager. (line 1778)
+* BFD_RELOC_390_COPY: howto manager. (line 1687)
+* BFD_RELOC_390_GLOB_DAT: howto manager. (line 1690)
+* BFD_RELOC_390_GOT12: howto manager. (line 1681)
+* BFD_RELOC_390_GOT16: howto manager. (line 1702)
+* BFD_RELOC_390_GOT20: howto manager. (line 1779)
+* BFD_RELOC_390_GOT64: howto manager. (line 1720)
+* BFD_RELOC_390_GOTENT: howto manager. (line 1726)
+* BFD_RELOC_390_GOTOFF64: howto manager. (line 1729)
+* BFD_RELOC_390_GOTPC: howto manager. (line 1699)
+* BFD_RELOC_390_GOTPCDBL: howto manager. (line 1717)
+* BFD_RELOC_390_GOTPLT12: howto manager. (line 1732)
+* BFD_RELOC_390_GOTPLT16: howto manager. (line 1735)
+* BFD_RELOC_390_GOTPLT20: howto manager. (line 1780)
+* BFD_RELOC_390_GOTPLT32: howto manager. (line 1738)
+* BFD_RELOC_390_GOTPLT64: howto manager. (line 1741)
+* BFD_RELOC_390_GOTPLTENT: howto manager. (line 1744)
+* BFD_RELOC_390_JMP_SLOT: howto manager. (line 1693)
+* BFD_RELOC_390_PC16DBL: howto manager. (line 1705)
+* BFD_RELOC_390_PC32DBL: howto manager. (line 1711)
+* BFD_RELOC_390_PLT16DBL: howto manager. (line 1708)
+* BFD_RELOC_390_PLT32: howto manager. (line 1684)
+* BFD_RELOC_390_PLT32DBL: howto manager. (line 1714)
+* BFD_RELOC_390_PLT64: howto manager. (line 1723)
+* BFD_RELOC_390_PLTOFF16: howto manager. (line 1747)
+* BFD_RELOC_390_PLTOFF32: howto manager. (line 1750)
+* BFD_RELOC_390_PLTOFF64: howto manager. (line 1753)
+* BFD_RELOC_390_RELATIVE: howto manager. (line 1696)
+* BFD_RELOC_390_TLS_DTPMOD: howto manager. (line 1773)
+* BFD_RELOC_390_TLS_DTPOFF: howto manager. (line 1774)
+* BFD_RELOC_390_TLS_GD32: howto manager. (line 1759)
+* BFD_RELOC_390_TLS_GD64: howto manager. (line 1760)
+* BFD_RELOC_390_TLS_GDCALL: howto manager. (line 1757)
+* BFD_RELOC_390_TLS_GOTIE12: howto manager. (line 1761)
+* BFD_RELOC_390_TLS_GOTIE20: howto manager. (line 1781)
+* BFD_RELOC_390_TLS_GOTIE32: howto manager. (line 1762)
+* BFD_RELOC_390_TLS_GOTIE64: howto manager. (line 1763)
+* BFD_RELOC_390_TLS_IE32: howto manager. (line 1766)
+* BFD_RELOC_390_TLS_IE64: howto manager. (line 1767)
+* BFD_RELOC_390_TLS_IEENT: howto manager. (line 1768)
+* BFD_RELOC_390_TLS_LDCALL: howto manager. (line 1758)
+* BFD_RELOC_390_TLS_LDM32: howto manager. (line 1764)
+* BFD_RELOC_390_TLS_LDM64: howto manager. (line 1765)
+* BFD_RELOC_390_TLS_LDO32: howto manager. (line 1771)
+* BFD_RELOC_390_TLS_LDO64: howto manager. (line 1772)
+* BFD_RELOC_390_TLS_LE32: howto manager. (line 1769)
+* BFD_RELOC_390_TLS_LE64: howto manager. (line 1770)
+* BFD_RELOC_390_TLS_LOAD: howto manager. (line 1756)
+* BFD_RELOC_390_TLS_TPOFF: howto manager. (line 1775)
+* BFD_RELOC_64: howto manager. (line 26)
+* BFD_RELOC_64_PCREL: howto manager. (line 35)
+* BFD_RELOC_64_PLT_PCREL: howto manager. (line 60)
+* BFD_RELOC_64_PLTOFF: howto manager. (line 65)
+* BFD_RELOC_68K_GLOB_DAT: howto manager. (line 74)
+* BFD_RELOC_68K_JMP_SLOT: howto manager. (line 75)
+* BFD_RELOC_68K_RELATIVE: howto manager. (line 76)
+* BFD_RELOC_68K_TLS_GD16: howto manager. (line 78)
+* BFD_RELOC_68K_TLS_GD32: howto manager. (line 77)
+* BFD_RELOC_68K_TLS_GD8: howto manager. (line 79)
+* BFD_RELOC_68K_TLS_IE16: howto manager. (line 87)
+* BFD_RELOC_68K_TLS_IE32: howto manager. (line 86)
+* BFD_RELOC_68K_TLS_IE8: howto manager. (line 88)
+* BFD_RELOC_68K_TLS_LDM16: howto manager. (line 81)
+* BFD_RELOC_68K_TLS_LDM32: howto manager. (line 80)
+* BFD_RELOC_68K_TLS_LDM8: howto manager. (line 82)
+* BFD_RELOC_68K_TLS_LDO16: howto manager. (line 84)
+* BFD_RELOC_68K_TLS_LDO32: howto manager. (line 83)
+* BFD_RELOC_68K_TLS_LDO8: howto manager. (line 85)
+* BFD_RELOC_68K_TLS_LE16: howto manager. (line 90)
+* BFD_RELOC_68K_TLS_LE32: howto manager. (line 89)
+* BFD_RELOC_68K_TLS_LE8: howto manager. (line 91)
+* BFD_RELOC_8: howto manager. (line 32)
+* BFD_RELOC_860_COPY: howto manager. (line 2146)
+* BFD_RELOC_860_GLOB_DAT: howto manager. (line 2147)
+* BFD_RELOC_860_HAGOT: howto manager. (line 2172)
+* BFD_RELOC_860_HAGOTOFF: howto manager. (line 2173)
+* BFD_RELOC_860_HAPC: howto manager. (line 2174)
+* BFD_RELOC_860_HIGH: howto manager. (line 2175)
+* BFD_RELOC_860_HIGHADJ: howto manager. (line 2171)
+* BFD_RELOC_860_HIGOT: howto manager. (line 2176)
+* BFD_RELOC_860_HIGOTOFF: howto manager. (line 2177)
+* BFD_RELOC_860_JUMP_SLOT: howto manager. (line 2148)
+* BFD_RELOC_860_LOGOT0: howto manager. (line 2160)
+* BFD_RELOC_860_LOGOT1: howto manager. (line 2162)
+* BFD_RELOC_860_LOGOTOFF0: howto manager. (line 2164)
+* BFD_RELOC_860_LOGOTOFF1: howto manager. (line 2166)
+* BFD_RELOC_860_LOGOTOFF2: howto manager. (line 2168)
+* BFD_RELOC_860_LOGOTOFF3: howto manager. (line 2169)
+* BFD_RELOC_860_LOPC: howto manager. (line 2170)
+* BFD_RELOC_860_LOW0: howto manager. (line 2153)
+* BFD_RELOC_860_LOW1: howto manager. (line 2155)
+* BFD_RELOC_860_LOW2: howto manager. (line 2157)
+* BFD_RELOC_860_LOW3: howto manager. (line 2159)
+* BFD_RELOC_860_PC16: howto manager. (line 2152)
+* BFD_RELOC_860_PC26: howto manager. (line 2150)
+* BFD_RELOC_860_PLT26: howto manager. (line 2151)
+* BFD_RELOC_860_RELATIVE: howto manager. (line 2149)
+* BFD_RELOC_860_SPGOT0: howto manager. (line 2161)
+* BFD_RELOC_860_SPGOT1: howto manager. (line 2163)
+* BFD_RELOC_860_SPGOTOFF0: howto manager. (line 2165)
+* BFD_RELOC_860_SPGOTOFF1: howto manager. (line 2167)
+* BFD_RELOC_860_SPLIT0: howto manager. (line 2154)
+* BFD_RELOC_860_SPLIT1: howto manager. (line 2156)
+* BFD_RELOC_860_SPLIT2: howto manager. (line 2158)
+* BFD_RELOC_8_BASEREL: howto manager. (line 99)
+* BFD_RELOC_8_FFnn: howto manager. (line 103)
+* BFD_RELOC_8_GOT_PCREL: howto manager. (line 53)
+* BFD_RELOC_8_GOTOFF: howto manager. (line 59)
+* BFD_RELOC_8_PCREL: howto manager. (line 40)
+* BFD_RELOC_8_PLT_PCREL: howto manager. (line 64)
+* BFD_RELOC_8_PLTOFF: howto manager. (line 71)
+* BFD_RELOC_ALPHA_BOH: howto manager. (line 315)
+* BFD_RELOC_ALPHA_BRSGP: howto manager. (line 298)
+* BFD_RELOC_ALPHA_BSR: howto manager. (line 307)
+* BFD_RELOC_ALPHA_CODEADDR: howto manager. (line 289)
+* BFD_RELOC_ALPHA_DTPMOD64: howto manager. (line 321)
+* BFD_RELOC_ALPHA_DTPREL16: howto manager. (line 326)
+* BFD_RELOC_ALPHA_DTPREL64: howto manager. (line 323)
+* BFD_RELOC_ALPHA_DTPREL_HI16: howto manager. (line 324)
+* BFD_RELOC_ALPHA_DTPREL_LO16: howto manager. (line 325)
+* BFD_RELOC_ALPHA_ELF_LITERAL: howto manager. (line 254)
+* BFD_RELOC_ALPHA_GOTDTPREL16: howto manager. (line 322)
+* BFD_RELOC_ALPHA_GOTTPREL16: howto manager. (line 327)
+* BFD_RELOC_ALPHA_GPDISP: howto manager. (line 248)
+* BFD_RELOC_ALPHA_GPDISP_HI16: howto manager. (line 234)
+* BFD_RELOC_ALPHA_GPDISP_LO16: howto manager. (line 242)
+* BFD_RELOC_ALPHA_GPREL_HI16: howto manager. (line 293)
+* BFD_RELOC_ALPHA_GPREL_LO16: howto manager. (line 294)
+* BFD_RELOC_ALPHA_HINT: howto manager. (line 280)
+* BFD_RELOC_ALPHA_LDA: howto manager. (line 311)
+* BFD_RELOC_ALPHA_LINKAGE: howto manager. (line 285)
+* BFD_RELOC_ALPHA_LITERAL: howto manager. (line 253)
+* BFD_RELOC_ALPHA_LITUSE: howto manager. (line 255)
+* BFD_RELOC_ALPHA_NOP: howto manager. (line 303)
+* BFD_RELOC_ALPHA_TLSGD: howto manager. (line 319)
+* BFD_RELOC_ALPHA_TLSLDM: howto manager. (line 320)
+* BFD_RELOC_ALPHA_TPREL16: howto manager. (line 331)
+* BFD_RELOC_ALPHA_TPREL64: howto manager. (line 328)
+* BFD_RELOC_ALPHA_TPREL_HI16: howto manager. (line 329)
+* BFD_RELOC_ALPHA_TPREL_LO16: howto manager. (line 330)
+* BFD_RELOC_ARC_B22_PCREL: howto manager. (line 987)
+* BFD_RELOC_ARC_B26: howto manager. (line 992)
+* BFD_RELOC_ARM_ADR_IMM: howto manager. (line 873)
+* BFD_RELOC_ARM_ADRL_IMMEDIATE: howto manager. (line 859)
+* BFD_RELOC_ARM_ALU_PC_G0: howto manager. (line 823)
+* BFD_RELOC_ARM_ALU_PC_G0_NC: howto manager. (line 822)
+* BFD_RELOC_ARM_ALU_PC_G1: howto manager. (line 825)
+* BFD_RELOC_ARM_ALU_PC_G1_NC: howto manager. (line 824)
+* BFD_RELOC_ARM_ALU_PC_G2: howto manager. (line 826)
+* BFD_RELOC_ARM_ALU_SB_G0: howto manager. (line 837)
+* BFD_RELOC_ARM_ALU_SB_G0_NC: howto manager. (line 836)
+* BFD_RELOC_ARM_ALU_SB_G1: howto manager. (line 839)
+* BFD_RELOC_ARM_ALU_SB_G1_NC: howto manager. (line 838)
+* BFD_RELOC_ARM_ALU_SB_G2: howto manager. (line 840)
+* BFD_RELOC_ARM_CP_OFF_IMM: howto manager. (line 869)
+* BFD_RELOC_ARM_CP_OFF_IMM_S2: howto manager. (line 870)
+* BFD_RELOC_ARM_GLOB_DAT: howto manager. (line 797)
+* BFD_RELOC_ARM_GOT32: howto manager. (line 798)
+* BFD_RELOC_ARM_GOT_PREL: howto manager. (line 803)
+* BFD_RELOC_ARM_GOTOFF: howto manager. (line 801)
+* BFD_RELOC_ARM_GOTPC: howto manager. (line 802)
+* BFD_RELOC_ARM_HVC: howto manager. (line 866)
+* BFD_RELOC_ARM_HWLITERAL: howto manager. (line 880)
+* BFD_RELOC_ARM_IMMEDIATE: howto manager. (line 858)
+* BFD_RELOC_ARM_IN_POOL: howto manager. (line 876)
+* BFD_RELOC_ARM_IRELATIVE: howto manager. (line 855)
+* BFD_RELOC_ARM_JUMP_SLOT: howto manager. (line 796)
+* BFD_RELOC_ARM_LDC_PC_G0: howto manager. (line 833)
+* BFD_RELOC_ARM_LDC_PC_G1: howto manager. (line 834)
+* BFD_RELOC_ARM_LDC_PC_G2: howto manager. (line 835)
+* BFD_RELOC_ARM_LDC_SB_G0: howto manager. (line 847)
+* BFD_RELOC_ARM_LDC_SB_G1: howto manager. (line 848)
+* BFD_RELOC_ARM_LDC_SB_G2: howto manager. (line 849)
+* BFD_RELOC_ARM_LDR_IMM: howto manager. (line 874)
+* BFD_RELOC_ARM_LDR_PC_G0: howto manager. (line 827)
+* BFD_RELOC_ARM_LDR_PC_G1: howto manager. (line 828)
+* BFD_RELOC_ARM_LDR_PC_G2: howto manager. (line 829)
+* BFD_RELOC_ARM_LDR_SB_G0: howto manager. (line 841)
+* BFD_RELOC_ARM_LDR_SB_G1: howto manager. (line 842)
+* BFD_RELOC_ARM_LDR_SB_G2: howto manager. (line 843)
+* BFD_RELOC_ARM_LDRS_PC_G0: howto manager. (line 830)
+* BFD_RELOC_ARM_LDRS_PC_G1: howto manager. (line 831)
+* BFD_RELOC_ARM_LDRS_PC_G2: howto manager. (line 832)
+* BFD_RELOC_ARM_LDRS_SB_G0: howto manager. (line 844)
+* BFD_RELOC_ARM_LDRS_SB_G1: howto manager. (line 845)
+* BFD_RELOC_ARM_LDRS_SB_G2: howto manager. (line 846)
+* BFD_RELOC_ARM_LITERAL: howto manager. (line 875)
+* BFD_RELOC_ARM_MOVT: howto manager. (line 787)
+* BFD_RELOC_ARM_MOVT_PCREL: howto manager. (line 789)
+* BFD_RELOC_ARM_MOVW: howto manager. (line 786)
+* BFD_RELOC_ARM_MOVW_PCREL: howto manager. (line 788)
+* BFD_RELOC_ARM_MULTI: howto manager. (line 868)
+* BFD_RELOC_ARM_OFFSET_IMM: howto manager. (line 760)
+* BFD_RELOC_ARM_OFFSET_IMM8: howto manager. (line 877)
+* BFD_RELOC_ARM_PCREL_BLX: howto manager. (line 731)
+* BFD_RELOC_ARM_PCREL_BRANCH: howto manager. (line 727)
+* BFD_RELOC_ARM_PCREL_CALL: howto manager. (line 741)
+* BFD_RELOC_ARM_PCREL_JUMP: howto manager. (line 745)
+* BFD_RELOC_ARM_PLT32: howto manager. (line 799)
+* BFD_RELOC_ARM_PREL31: howto manager. (line 783)
+* BFD_RELOC_ARM_RELATIVE: howto manager. (line 800)
+* BFD_RELOC_ARM_ROSEGREL32: howto manager. (line 772)
+* BFD_RELOC_ARM_SBREL32: howto manager. (line 775)
+* BFD_RELOC_ARM_SHIFT_IMM: howto manager. (line 864)
+* BFD_RELOC_ARM_SMC: howto manager. (line 865)
+* BFD_RELOC_ARM_SWI: howto manager. (line 867)
+* BFD_RELOC_ARM_T32_ADD_IMM: howto manager. (line 861)
+* BFD_RELOC_ARM_T32_ADD_PC12: howto manager. (line 863)
+* BFD_RELOC_ARM_T32_CP_OFF_IMM: howto manager. (line 871)
+* BFD_RELOC_ARM_T32_CP_OFF_IMM_S2: howto manager. (line 872)
+* BFD_RELOC_ARM_T32_IMM12: howto manager. (line 862)
+* BFD_RELOC_ARM_T32_IMMEDIATE: howto manager. (line 860)
+* BFD_RELOC_ARM_T32_OFFSET_IMM: howto manager. (line 879)
+* BFD_RELOC_ARM_T32_OFFSET_U8: howto manager. (line 878)
+* BFD_RELOC_ARM_TARGET1: howto manager. (line 768)
+* BFD_RELOC_ARM_TARGET2: howto manager. (line 778)
+* BFD_RELOC_ARM_THM_TLS_CALL: howto manager. (line 816)
+* BFD_RELOC_ARM_THM_TLS_DESCSEQ: howto manager. (line 818)
+* BFD_RELOC_ARM_THUMB_ADD: howto manager. (line 881)
+* BFD_RELOC_ARM_THUMB_IMM: howto manager. (line 882)
+* BFD_RELOC_ARM_THUMB_MOVT: howto manager. (line 791)
+* BFD_RELOC_ARM_THUMB_MOVT_PCREL: howto manager. (line 793)
+* BFD_RELOC_ARM_THUMB_MOVW: howto manager. (line 790)
+* BFD_RELOC_ARM_THUMB_MOVW_PCREL: howto manager. (line 792)
+* BFD_RELOC_ARM_THUMB_OFFSET: howto manager. (line 764)
+* BFD_RELOC_ARM_THUMB_SHIFT: howto manager. (line 883)
+* BFD_RELOC_ARM_TLS_CALL: howto manager. (line 815)
+* BFD_RELOC_ARM_TLS_DESC: howto manager. (line 819)
+* BFD_RELOC_ARM_TLS_DESCSEQ: howto manager. (line 817)
+* BFD_RELOC_ARM_TLS_DTPMOD32: howto manager. (line 810)
+* BFD_RELOC_ARM_TLS_DTPOFF32: howto manager. (line 809)
+* BFD_RELOC_ARM_TLS_GD32: howto manager. (line 806)
+* BFD_RELOC_ARM_TLS_GOTDESC: howto manager. (line 814)
+* BFD_RELOC_ARM_TLS_IE32: howto manager. (line 812)
+* BFD_RELOC_ARM_TLS_LDM32: howto manager. (line 808)
+* BFD_RELOC_ARM_TLS_LDO32: howto manager. (line 807)
+* BFD_RELOC_ARM_TLS_LE32: howto manager. (line 813)
+* BFD_RELOC_ARM_TLS_TPOFF32: howto manager. (line 811)
+* BFD_RELOC_ARM_V4BX: howto manager. (line 852)
+* BFD_RELOC_AVR_13_PCREL: howto manager. (line 1550)
+* BFD_RELOC_AVR_16_PM: howto manager. (line 1554)
+* BFD_RELOC_AVR_6: howto manager. (line 1641)
+* BFD_RELOC_AVR_6_ADIW: howto manager. (line 1645)
+* BFD_RELOC_AVR_7_PCREL: howto manager. (line 1546)
+* BFD_RELOC_AVR_CALL: howto manager. (line 1633)
+* BFD_RELOC_AVR_HH8_LDI: howto manager. (line 1566)
+* BFD_RELOC_AVR_HH8_LDI_NEG: howto manager. (line 1585)
+* BFD_RELOC_AVR_HH8_LDI_PM: howto manager. (line 1614)
+* BFD_RELOC_AVR_HH8_LDI_PM_NEG: howto manager. (line 1628)
+* BFD_RELOC_AVR_HI8_LDI: howto manager. (line 1562)
+* BFD_RELOC_AVR_HI8_LDI_GS: howto manager. (line 1608)
+* BFD_RELOC_AVR_HI8_LDI_NEG: howto manager. (line 1580)
+* BFD_RELOC_AVR_HI8_LDI_PM: howto manager. (line 1604)
+* BFD_RELOC_AVR_HI8_LDI_PM_NEG: howto manager. (line 1623)
+* BFD_RELOC_AVR_LDI: howto manager. (line 1637)
+* BFD_RELOC_AVR_LO8_LDI: howto manager. (line 1558)
+* BFD_RELOC_AVR_LO8_LDI_GS: howto manager. (line 1598)
+* BFD_RELOC_AVR_LO8_LDI_NEG: howto manager. (line 1575)
+* BFD_RELOC_AVR_LO8_LDI_PM: howto manager. (line 1594)
+* BFD_RELOC_AVR_LO8_LDI_PM_NEG: howto manager. (line 1619)
+* BFD_RELOC_AVR_MS8_LDI: howto manager. (line 1571)
+* BFD_RELOC_AVR_MS8_LDI_NEG: howto manager. (line 1590)
+* BFD_RELOC_BFIN_10_PCREL: howto manager. (line 1012)
+* BFD_RELOC_BFIN_11_PCREL: howto manager. (line 1015)
+* BFD_RELOC_BFIN_12_PCREL_JUMP: howto manager. (line 1018)
+* BFD_RELOC_BFIN_12_PCREL_JUMP_S: howto manager. (line 1021)
+* BFD_RELOC_BFIN_16_HIGH: howto manager. (line 1000)
+* BFD_RELOC_BFIN_16_IMM: howto manager. (line 997)
+* BFD_RELOC_BFIN_16_LOW: howto manager. (line 1009)
+* BFD_RELOC_BFIN_24_PCREL_CALL_X: howto manager. (line 1024)
+* BFD_RELOC_BFIN_24_PCREL_JUMP_L: howto manager. (line 1027)
+* BFD_RELOC_BFIN_4_PCREL: howto manager. (line 1003)
+* BFD_RELOC_BFIN_5_PCREL: howto manager. (line 1006)
+* BFD_RELOC_BFIN_FUNCDESC: howto manager. (line 1033)
+* BFD_RELOC_BFIN_FUNCDESC_GOT17M4: howto manager. (line 1034)
+* BFD_RELOC_BFIN_FUNCDESC_GOTHI: howto manager. (line 1035)
+* BFD_RELOC_BFIN_FUNCDESC_GOTLO: howto manager. (line 1036)
+* BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4: howto manager. (line 1038)
+* BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI: howto manager. (line 1039)
+* BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO: howto manager. (line 1040)
+* BFD_RELOC_BFIN_FUNCDESC_VALUE: howto manager. (line 1037)
+* BFD_RELOC_BFIN_GOT: howto manager. (line 1046)
+* BFD_RELOC_BFIN_GOT17M4: howto manager. (line 1030)
+* BFD_RELOC_BFIN_GOTHI: howto manager. (line 1031)
+* BFD_RELOC_BFIN_GOTLO: howto manager. (line 1032)
+* BFD_RELOC_BFIN_GOTOFF17M4: howto manager. (line 1041)
+* BFD_RELOC_BFIN_GOTOFFHI: howto manager. (line 1042)
+* BFD_RELOC_BFIN_GOTOFFLO: howto manager. (line 1043)
+* BFD_RELOC_BFIN_PLTPC: howto manager. (line 1049)
+* BFD_RELOC_C6000_ABS_H16: howto manager. (line 1409)
+* BFD_RELOC_C6000_ABS_L16: howto manager. (line 1408)
+* BFD_RELOC_C6000_ABS_S16: howto manager. (line 1407)
+* BFD_RELOC_C6000_ALIGN: howto manager. (line 1430)
+* BFD_RELOC_C6000_COPY: howto manager. (line 1425)
+* BFD_RELOC_C6000_DSBT_INDEX: howto manager. (line 1423)
+* BFD_RELOC_C6000_EHTYPE: howto manager. (line 1427)
+* BFD_RELOC_C6000_FPHEAD: howto manager. (line 1431)
+* BFD_RELOC_C6000_JUMP_SLOT: howto manager. (line 1426)
+* BFD_RELOC_C6000_NOCMP: howto manager. (line 1432)
+* BFD_RELOC_C6000_PCR_H16: howto manager. (line 1428)
+* BFD_RELOC_C6000_PCR_L16: howto manager. (line 1429)
+* BFD_RELOC_C6000_PCR_S10: howto manager. (line 1405)
+* BFD_RELOC_C6000_PCR_S12: howto manager. (line 1404)
+* BFD_RELOC_C6000_PCR_S21: howto manager. (line 1403)
+* BFD_RELOC_C6000_PCR_S7: howto manager. (line 1406)
+* BFD_RELOC_C6000_PREL31: howto manager. (line 1424)
+* BFD_RELOC_C6000_SBR_GOT_H16_W: howto manager. (line 1422)
+* BFD_RELOC_C6000_SBR_GOT_L16_W: howto manager. (line 1421)
+* BFD_RELOC_C6000_SBR_GOT_U15_W: howto manager. (line 1420)
+* BFD_RELOC_C6000_SBR_H16_B: howto manager. (line 1417)
+* BFD_RELOC_C6000_SBR_H16_H: howto manager. (line 1418)
+* BFD_RELOC_C6000_SBR_H16_W: howto manager. (line 1419)
+* BFD_RELOC_C6000_SBR_L16_B: howto manager. (line 1414)
+* BFD_RELOC_C6000_SBR_L16_H: howto manager. (line 1415)
+* BFD_RELOC_C6000_SBR_L16_W: howto manager. (line 1416)
+* BFD_RELOC_C6000_SBR_S16: howto manager. (line 1413)
+* BFD_RELOC_C6000_SBR_U15_B: howto manager. (line 1410)
+* BFD_RELOC_C6000_SBR_U15_H: howto manager. (line 1411)
+* BFD_RELOC_C6000_SBR_U15_W: howto manager. (line 1412)
+* bfd_reloc_code_type: howto manager. (line 10)
+* BFD_RELOC_CR16_ABS20: howto manager. (line 2046)
+* BFD_RELOC_CR16_ABS24: howto manager. (line 2047)
+* BFD_RELOC_CR16_DISP16: howto manager. (line 2057)
+* BFD_RELOC_CR16_DISP20: howto manager. (line 2058)
+* BFD_RELOC_CR16_DISP24: howto manager. (line 2059)
+* BFD_RELOC_CR16_DISP24a: howto manager. (line 2060)
+* BFD_RELOC_CR16_DISP4: howto manager. (line 2055)
+* BFD_RELOC_CR16_DISP8: howto manager. (line 2056)
+* BFD_RELOC_CR16_GLOB_DAT: howto manager. (line 2066)
+* BFD_RELOC_CR16_GOT_REGREL20: howto manager. (line 2064)
+* BFD_RELOC_CR16_GOTC_REGREL20: howto manager. (line 2065)
+* BFD_RELOC_CR16_IMM16: howto manager. (line 2050)
+* BFD_RELOC_CR16_IMM20: howto manager. (line 2051)
+* BFD_RELOC_CR16_IMM24: howto manager. (line 2052)
+* BFD_RELOC_CR16_IMM32: howto manager. (line 2053)
+* BFD_RELOC_CR16_IMM32a: howto manager. (line 2054)
+* BFD_RELOC_CR16_IMM4: howto manager. (line 2048)
+* BFD_RELOC_CR16_IMM8: howto manager. (line 2049)
+* BFD_RELOC_CR16_NUM16: howto manager. (line 2035)
+* BFD_RELOC_CR16_NUM32: howto manager. (line 2036)
+* BFD_RELOC_CR16_NUM32a: howto manager. (line 2037)
+* BFD_RELOC_CR16_NUM8: howto manager. (line 2034)
+* BFD_RELOC_CR16_REGREL0: howto manager. (line 2038)
+* BFD_RELOC_CR16_REGREL14: howto manager. (line 2041)
+* BFD_RELOC_CR16_REGREL14a: howto manager. (line 2042)
+* BFD_RELOC_CR16_REGREL16: howto manager. (line 2043)
+* BFD_RELOC_CR16_REGREL20: howto manager. (line 2044)
+* BFD_RELOC_CR16_REGREL20a: howto manager. (line 2045)
+* BFD_RELOC_CR16_REGREL4: howto manager. (line 2039)
+* BFD_RELOC_CR16_REGREL4a: howto manager. (line 2040)
+* BFD_RELOC_CR16_SWITCH16: howto manager. (line 2062)
+* BFD_RELOC_CR16_SWITCH32: howto manager. (line 2063)
+* BFD_RELOC_CR16_SWITCH8: howto manager. (line 2061)
+* BFD_RELOC_CRIS_16_DTPREL: howto manager. (line 2137)
+* BFD_RELOC_CRIS_16_GOT: howto manager. (line 2113)
+* BFD_RELOC_CRIS_16_GOT_GD: howto manager. (line 2133)
+* BFD_RELOC_CRIS_16_GOT_TPREL: howto manager. (line 2139)
+* BFD_RELOC_CRIS_16_GOTPLT: howto manager. (line 2119)
+* BFD_RELOC_CRIS_16_TPREL: howto manager. (line 2141)
+* BFD_RELOC_CRIS_32_DTPREL: howto manager. (line 2136)
+* BFD_RELOC_CRIS_32_GD: howto manager. (line 2134)
+* BFD_RELOC_CRIS_32_GOT: howto manager. (line 2110)
+* BFD_RELOC_CRIS_32_GOT_GD: howto manager. (line 2132)
+* BFD_RELOC_CRIS_32_GOT_TPREL: howto manager. (line 2138)
+* BFD_RELOC_CRIS_32_GOTPLT: howto manager. (line 2116)
+* BFD_RELOC_CRIS_32_GOTREL: howto manager. (line 2122)
+* BFD_RELOC_CRIS_32_IE: howto manager. (line 2143)
+* BFD_RELOC_CRIS_32_PLT_GOTREL: howto manager. (line 2125)
+* BFD_RELOC_CRIS_32_PLT_PCREL: howto manager. (line 2128)
+* BFD_RELOC_CRIS_32_TPREL: howto manager. (line 2140)
+* BFD_RELOC_CRIS_BDISP8: howto manager. (line 2091)
+* BFD_RELOC_CRIS_COPY: howto manager. (line 2104)
+* BFD_RELOC_CRIS_DTP: howto manager. (line 2135)
+* BFD_RELOC_CRIS_DTPMOD: howto manager. (line 2142)
+* BFD_RELOC_CRIS_GLOB_DAT: howto manager. (line 2105)
+* BFD_RELOC_CRIS_JUMP_SLOT: howto manager. (line 2106)
+* BFD_RELOC_CRIS_LAPCQ_OFFSET: howto manager. (line 2099)
+* BFD_RELOC_CRIS_RELATIVE: howto manager. (line 2107)
+* BFD_RELOC_CRIS_SIGNED_16: howto manager. (line 2097)
+* BFD_RELOC_CRIS_SIGNED_6: howto manager. (line 2093)
+* BFD_RELOC_CRIS_SIGNED_8: howto manager. (line 2095)
+* BFD_RELOC_CRIS_UNSIGNED_16: howto manager. (line 2098)
+* BFD_RELOC_CRIS_UNSIGNED_4: howto manager. (line 2100)
+* BFD_RELOC_CRIS_UNSIGNED_5: howto manager. (line 2092)
+* BFD_RELOC_CRIS_UNSIGNED_6: howto manager. (line 2094)
+* BFD_RELOC_CRIS_UNSIGNED_8: howto manager. (line 2096)
+* BFD_RELOC_CRX_ABS16: howto manager. (line 2079)
+* BFD_RELOC_CRX_ABS32: howto manager. (line 2080)
+* BFD_RELOC_CRX_IMM16: howto manager. (line 2084)
+* BFD_RELOC_CRX_IMM32: howto manager. (line 2085)
+* BFD_RELOC_CRX_NUM16: howto manager. (line 2082)
+* BFD_RELOC_CRX_NUM32: howto manager. (line 2083)
+* BFD_RELOC_CRX_NUM8: howto manager. (line 2081)
+* BFD_RELOC_CRX_REGREL12: howto manager. (line 2075)
+* BFD_RELOC_CRX_REGREL22: howto manager. (line 2076)
+* BFD_RELOC_CRX_REGREL28: howto manager. (line 2077)
+* BFD_RELOC_CRX_REGREL32: howto manager. (line 2078)
+* BFD_RELOC_CRX_REL16: howto manager. (line 2072)
+* BFD_RELOC_CRX_REL24: howto manager. (line 2073)
+* BFD_RELOC_CRX_REL32: howto manager. (line 2074)
+* BFD_RELOC_CRX_REL4: howto manager. (line 2069)
+* BFD_RELOC_CRX_REL8: howto manager. (line 2070)
+* BFD_RELOC_CRX_REL8_CMP: howto manager. (line 2071)
+* BFD_RELOC_CRX_SWITCH16: howto manager. (line 2087)
+* BFD_RELOC_CRX_SWITCH32: howto manager. (line 2088)
+* BFD_RELOC_CRX_SWITCH8: howto manager. (line 2086)
+* BFD_RELOC_CTOR: howto manager. (line 721)
+* BFD_RELOC_D10V_10_PCREL_L: howto manager. (line 1116)
+* BFD_RELOC_D10V_10_PCREL_R: howto manager. (line 1112)
+* BFD_RELOC_D10V_18: howto manager. (line 1121)
+* BFD_RELOC_D10V_18_PCREL: howto manager. (line 1124)
+* BFD_RELOC_D30V_15: howto manager. (line 1139)
+* BFD_RELOC_D30V_15_PCREL: howto manager. (line 1143)
+* BFD_RELOC_D30V_15_PCREL_R: howto manager. (line 1147)
+* BFD_RELOC_D30V_21: howto manager. (line 1152)
+* BFD_RELOC_D30V_21_PCREL: howto manager. (line 1156)
+* BFD_RELOC_D30V_21_PCREL_R: howto manager. (line 1160)
+* BFD_RELOC_D30V_32: howto manager. (line 1165)
+* BFD_RELOC_D30V_32_PCREL: howto manager. (line 1168)
+* BFD_RELOC_D30V_6: howto manager. (line 1127)
+* BFD_RELOC_D30V_9_PCREL: howto manager. (line 1130)
+* BFD_RELOC_D30V_9_PCREL_R: howto manager. (line 1134)
+* BFD_RELOC_DLX_HI16_S: howto manager. (line 1171)
+* BFD_RELOC_DLX_JMP26: howto manager. (line 1177)
+* BFD_RELOC_DLX_LO16: howto manager. (line 1174)
+* BFD_RELOC_FR30_10_IN_8: howto manager. (line 1454)
+* BFD_RELOC_FR30_12_PCREL: howto manager. (line 1462)
+* BFD_RELOC_FR30_20: howto manager. (line 1438)
+* BFD_RELOC_FR30_48: howto manager. (line 1435)
+* BFD_RELOC_FR30_6_IN_4: howto manager. (line 1442)
+* BFD_RELOC_FR30_8_IN_8: howto manager. (line 1446)
+* BFD_RELOC_FR30_9_IN_8: howto manager. (line 1450)
+* BFD_RELOC_FR30_9_PCREL: howto manager. (line 1458)
+* BFD_RELOC_FRV_FUNCDESC: howto manager. (line 473)
+* BFD_RELOC_FRV_FUNCDESC_GOT12: howto manager. (line 474)
+* BFD_RELOC_FRV_FUNCDESC_GOTHI: howto manager. (line 475)
+* BFD_RELOC_FRV_FUNCDESC_GOTLO: howto manager. (line 476)
+* BFD_RELOC_FRV_FUNCDESC_GOTOFF12: howto manager. (line 478)
+* BFD_RELOC_FRV_FUNCDESC_GOTOFFHI: howto manager. (line 479)
+* BFD_RELOC_FRV_FUNCDESC_GOTOFFLO: howto manager. (line 480)
+* BFD_RELOC_FRV_FUNCDESC_VALUE: howto manager. (line 477)
+* BFD_RELOC_FRV_GETTLSOFF: howto manager. (line 484)
+* BFD_RELOC_FRV_GETTLSOFF_RELAX: howto manager. (line 497)
+* BFD_RELOC_FRV_GOT12: howto manager. (line 470)
+* BFD_RELOC_FRV_GOTHI: howto manager. (line 471)
+* BFD_RELOC_FRV_GOTLO: howto manager. (line 472)
+* BFD_RELOC_FRV_GOTOFF12: howto manager. (line 481)
+* BFD_RELOC_FRV_GOTOFFHI: howto manager. (line 482)
+* BFD_RELOC_FRV_GOTOFFLO: howto manager. (line 483)
+* BFD_RELOC_FRV_GOTTLSDESC12: howto manager. (line 486)
+* BFD_RELOC_FRV_GOTTLSDESCHI: howto manager. (line 487)
+* BFD_RELOC_FRV_GOTTLSDESCLO: howto manager. (line 488)
+* BFD_RELOC_FRV_GOTTLSOFF12: howto manager. (line 492)
+* BFD_RELOC_FRV_GOTTLSOFFHI: howto manager. (line 493)
+* BFD_RELOC_FRV_GOTTLSOFFLO: howto manager. (line 494)
+* BFD_RELOC_FRV_GPREL12: howto manager. (line 465)
+* BFD_RELOC_FRV_GPREL32: howto manager. (line 467)
+* BFD_RELOC_FRV_GPRELHI: howto manager. (line 468)
+* BFD_RELOC_FRV_GPRELLO: howto manager. (line 469)
+* BFD_RELOC_FRV_GPRELU12: howto manager. (line 466)
+* BFD_RELOC_FRV_HI16: howto manager. (line 464)
+* BFD_RELOC_FRV_LABEL16: howto manager. (line 461)
+* BFD_RELOC_FRV_LABEL24: howto manager. (line 462)
+* BFD_RELOC_FRV_LO16: howto manager. (line 463)
+* BFD_RELOC_FRV_TLSDESC_RELAX: howto manager. (line 496)
+* BFD_RELOC_FRV_TLSDESC_VALUE: howto manager. (line 485)
+* BFD_RELOC_FRV_TLSMOFF: howto manager. (line 499)
+* BFD_RELOC_FRV_TLSMOFF12: howto manager. (line 489)
+* BFD_RELOC_FRV_TLSMOFFHI: howto manager. (line 490)
+* BFD_RELOC_FRV_TLSMOFFLO: howto manager. (line 491)
+* BFD_RELOC_FRV_TLSOFF: howto manager. (line 495)
+* BFD_RELOC_FRV_TLSOFF_RELAX: howto manager. (line 498)
+* BFD_RELOC_GPREL16: howto manager. (line 121)
+* BFD_RELOC_GPREL32: howto manager. (line 122)
+* BFD_RELOC_H8_DIR16A8: howto manager. (line 2184)
+* BFD_RELOC_H8_DIR16R8: howto manager. (line 2185)
+* BFD_RELOC_H8_DIR24A8: howto manager. (line 2186)
+* BFD_RELOC_H8_DIR24R8: howto manager. (line 2187)
+* BFD_RELOC_H8_DIR32A16: howto manager. (line 2188)
+* BFD_RELOC_HI16: howto manager. (line 344)
+* BFD_RELOC_HI16_BASEREL: howto manager. (line 97)
+* BFD_RELOC_HI16_GOTOFF: howto manager. (line 57)
+* BFD_RELOC_HI16_PCREL: howto manager. (line 356)
+* BFD_RELOC_HI16_PLTOFF: howto manager. (line 69)
+* BFD_RELOC_HI16_S: howto manager. (line 347)
+* BFD_RELOC_HI16_S_BASEREL: howto manager. (line 98)
+* BFD_RELOC_HI16_S_GOTOFF: howto manager. (line 58)
+* BFD_RELOC_HI16_S_PCREL: howto manager. (line 359)
+* BFD_RELOC_HI16_S_PLTOFF: howto manager. (line 70)
+* BFD_RELOC_HI22: howto manager. (line 116)
+* BFD_RELOC_I370_D12: howto manager. (line 718)
+* BFD_RELOC_I960_CALLJ: howto manager. (line 128)
+* BFD_RELOC_IA64_COPY: howto manager. (line 1928)
+* BFD_RELOC_IA64_DIR32LSB: howto manager. (line 1873)
+* BFD_RELOC_IA64_DIR32MSB: howto manager. (line 1872)
+* BFD_RELOC_IA64_DIR64LSB: howto manager. (line 1875)
+* BFD_RELOC_IA64_DIR64MSB: howto manager. (line 1874)
+* BFD_RELOC_IA64_DTPMOD64LSB: howto manager. (line 1938)
+* BFD_RELOC_IA64_DTPMOD64MSB: howto manager. (line 1937)
+* BFD_RELOC_IA64_DTPREL14: howto manager. (line 1940)
+* BFD_RELOC_IA64_DTPREL22: howto manager. (line 1941)
+* BFD_RELOC_IA64_DTPREL32LSB: howto manager. (line 1944)
+* BFD_RELOC_IA64_DTPREL32MSB: howto manager. (line 1943)
+* BFD_RELOC_IA64_DTPREL64I: howto manager. (line 1942)
+* BFD_RELOC_IA64_DTPREL64LSB: howto manager. (line 1946)
+* BFD_RELOC_IA64_DTPREL64MSB: howto manager. (line 1945)
+* BFD_RELOC_IA64_FPTR32LSB: howto manager. (line 1890)
+* BFD_RELOC_IA64_FPTR32MSB: howto manager. (line 1889)
+* BFD_RELOC_IA64_FPTR64I: howto manager. (line 1888)
+* BFD_RELOC_IA64_FPTR64LSB: howto manager. (line 1892)
+* BFD_RELOC_IA64_FPTR64MSB: howto manager. (line 1891)
+* BFD_RELOC_IA64_GPREL22: howto manager. (line 1876)
+* BFD_RELOC_IA64_GPREL32LSB: howto manager. (line 1879)
+* BFD_RELOC_IA64_GPREL32MSB: howto manager. (line 1878)
+* BFD_RELOC_IA64_GPREL64I: howto manager. (line 1877)
+* BFD_RELOC_IA64_GPREL64LSB: howto manager. (line 1881)
+* BFD_RELOC_IA64_GPREL64MSB: howto manager. (line 1880)
+* BFD_RELOC_IA64_IMM14: howto manager. (line 1869)
+* BFD_RELOC_IA64_IMM22: howto manager. (line 1870)
+* BFD_RELOC_IA64_IMM64: howto manager. (line 1871)
+* BFD_RELOC_IA64_IPLTLSB: howto manager. (line 1927)
+* BFD_RELOC_IA64_IPLTMSB: howto manager. (line 1926)
+* BFD_RELOC_IA64_LDXMOV: howto manager. (line 1930)
+* BFD_RELOC_IA64_LTOFF22: howto manager. (line 1882)
+* BFD_RELOC_IA64_LTOFF22X: howto manager. (line 1929)
+* BFD_RELOC_IA64_LTOFF64I: howto manager. (line 1883)
+* BFD_RELOC_IA64_LTOFF_DTPMOD22: howto manager. (line 1939)
+* BFD_RELOC_IA64_LTOFF_DTPREL22: howto manager. (line 1947)
+* BFD_RELOC_IA64_LTOFF_FPTR22: howto manager. (line 1904)
+* BFD_RELOC_IA64_LTOFF_FPTR32LSB: howto manager. (line 1907)
+* BFD_RELOC_IA64_LTOFF_FPTR32MSB: howto manager. (line 1906)
+* BFD_RELOC_IA64_LTOFF_FPTR64I: howto manager. (line 1905)
+* BFD_RELOC_IA64_LTOFF_FPTR64LSB: howto manager. (line 1909)
+* BFD_RELOC_IA64_LTOFF_FPTR64MSB: howto manager. (line 1908)
+* BFD_RELOC_IA64_LTOFF_TPREL22: howto manager. (line 1936)
+* BFD_RELOC_IA64_LTV32LSB: howto manager. (line 1923)
+* BFD_RELOC_IA64_LTV32MSB: howto manager. (line 1922)
+* BFD_RELOC_IA64_LTV64LSB: howto manager. (line 1925)
+* BFD_RELOC_IA64_LTV64MSB: howto manager. (line 1924)
+* BFD_RELOC_IA64_PCREL21B: howto manager. (line 1893)
+* BFD_RELOC_IA64_PCREL21BI: howto manager. (line 1894)
+* BFD_RELOC_IA64_PCREL21F: howto manager. (line 1896)
+* BFD_RELOC_IA64_PCREL21M: howto manager. (line 1895)
+* BFD_RELOC_IA64_PCREL22: howto manager. (line 1897)
+* BFD_RELOC_IA64_PCREL32LSB: howto manager. (line 1901)
+* BFD_RELOC_IA64_PCREL32MSB: howto manager. (line 1900)
+* BFD_RELOC_IA64_PCREL60B: howto manager. (line 1898)
+* BFD_RELOC_IA64_PCREL64I: howto manager. (line 1899)
+* BFD_RELOC_IA64_PCREL64LSB: howto manager. (line 1903)
+* BFD_RELOC_IA64_PCREL64MSB: howto manager. (line 1902)
+* BFD_RELOC_IA64_PLTOFF22: howto manager. (line 1884)
+* BFD_RELOC_IA64_PLTOFF64I: howto manager. (line 1885)
+* BFD_RELOC_IA64_PLTOFF64LSB: howto manager. (line 1887)
+* BFD_RELOC_IA64_PLTOFF64MSB: howto manager. (line 1886)
+* BFD_RELOC_IA64_REL32LSB: howto manager. (line 1919)
+* BFD_RELOC_IA64_REL32MSB: howto manager. (line 1918)
+* BFD_RELOC_IA64_REL64LSB: howto manager. (line 1921)
+* BFD_RELOC_IA64_REL64MSB: howto manager. (line 1920)
+* BFD_RELOC_IA64_SECREL32LSB: howto manager. (line 1915)
+* BFD_RELOC_IA64_SECREL32MSB: howto manager. (line 1914)
+* BFD_RELOC_IA64_SECREL64LSB: howto manager. (line 1917)
+* BFD_RELOC_IA64_SECREL64MSB: howto manager. (line 1916)
+* BFD_RELOC_IA64_SEGREL32LSB: howto manager. (line 1911)
+* BFD_RELOC_IA64_SEGREL32MSB: howto manager. (line 1910)
+* BFD_RELOC_IA64_SEGREL64LSB: howto manager. (line 1913)
+* BFD_RELOC_IA64_SEGREL64MSB: howto manager. (line 1912)
+* BFD_RELOC_IA64_TPREL14: howto manager. (line 1931)
+* BFD_RELOC_IA64_TPREL22: howto manager. (line 1932)
+* BFD_RELOC_IA64_TPREL64I: howto manager. (line 1933)
+* BFD_RELOC_IA64_TPREL64LSB: howto manager. (line 1935)
+* BFD_RELOC_IA64_TPREL64MSB: howto manager. (line 1934)
+* BFD_RELOC_IP2K_ADDR16CJP: howto manager. (line 1821)
+* BFD_RELOC_IP2K_BANK: howto manager. (line 1818)
+* BFD_RELOC_IP2K_EX8DATA: howto manager. (line 1829)
+* BFD_RELOC_IP2K_FR9: howto manager. (line 1815)
+* BFD_RELOC_IP2K_FR_OFFSET: howto manager. (line 1842)
+* BFD_RELOC_IP2K_HI8DATA: howto manager. (line 1828)
+* BFD_RELOC_IP2K_HI8INSN: howto manager. (line 1833)
+* BFD_RELOC_IP2K_LO8DATA: howto manager. (line 1827)
+* BFD_RELOC_IP2K_LO8INSN: howto manager. (line 1832)
+* BFD_RELOC_IP2K_PAGE3: howto manager. (line 1824)
+* BFD_RELOC_IP2K_PC_SKIP: howto manager. (line 1836)
+* BFD_RELOC_IP2K_TEXT: howto manager. (line 1839)
+* BFD_RELOC_IQ2000_OFFSET_16: howto manager. (line 2238)
+* BFD_RELOC_IQ2000_OFFSET_21: howto manager. (line 2239)
+* BFD_RELOC_IQ2000_UHI16: howto manager. (line 2240)
+* BFD_RELOC_LM32_16_GOT: howto manager. (line 2345)
+* BFD_RELOC_LM32_BRANCH: howto manager. (line 2344)
+* BFD_RELOC_LM32_CALL: howto manager. (line 2343)
+* BFD_RELOC_LM32_COPY: howto manager. (line 2348)
+* BFD_RELOC_LM32_GLOB_DAT: howto manager. (line 2349)
+* BFD_RELOC_LM32_GOTOFF_HI16: howto manager. (line 2346)
+* BFD_RELOC_LM32_GOTOFF_LO16: howto manager. (line 2347)
+* BFD_RELOC_LM32_JMP_SLOT: howto manager. (line 2350)
+* BFD_RELOC_LM32_RELATIVE: howto manager. (line 2351)
+* BFD_RELOC_LO10: howto manager. (line 117)
+* BFD_RELOC_LO16: howto manager. (line 353)
+* BFD_RELOC_LO16_BASEREL: howto manager. (line 96)
+* BFD_RELOC_LO16_GOTOFF: howto manager. (line 56)
+* BFD_RELOC_LO16_PCREL: howto manager. (line 362)
+* BFD_RELOC_LO16_PLTOFF: howto manager. (line 68)
+* BFD_RELOC_M32C_HI8: howto manager. (line 1180)
+* BFD_RELOC_M32C_RL_1ADDR: howto manager. (line 1182)
+* BFD_RELOC_M32C_RL_2ADDR: howto manager. (line 1183)
+* BFD_RELOC_M32C_RL_JUMP: howto manager. (line 1181)
+* BFD_RELOC_M32R_10_PCREL: howto manager. (line 1190)
+* BFD_RELOC_M32R_18_PCREL: howto manager. (line 1194)
+* BFD_RELOC_M32R_24: howto manager. (line 1186)
+* BFD_RELOC_M32R_26_PCREL: howto manager. (line 1197)
+* BFD_RELOC_M32R_26_PLTREL: howto manager. (line 1216)
+* BFD_RELOC_M32R_COPY: howto manager. (line 1217)
+* BFD_RELOC_M32R_GLOB_DAT: howto manager. (line 1218)
+* BFD_RELOC_M32R_GOT16_HI_SLO: howto manager. (line 1227)
+* BFD_RELOC_M32R_GOT16_HI_ULO: howto manager. (line 1226)
+* BFD_RELOC_M32R_GOT16_LO: howto manager. (line 1228)
+* BFD_RELOC_M32R_GOT24: howto manager. (line 1215)
+* BFD_RELOC_M32R_GOTOFF: howto manager. (line 1221)
+* BFD_RELOC_M32R_GOTOFF_HI_SLO: howto manager. (line 1223)
+* BFD_RELOC_M32R_GOTOFF_HI_ULO: howto manager. (line 1222)
+* BFD_RELOC_M32R_GOTOFF_LO: howto manager. (line 1224)
+* BFD_RELOC_M32R_GOTPC24: howto manager. (line 1225)
+* BFD_RELOC_M32R_GOTPC_HI_SLO: howto manager. (line 1230)
+* BFD_RELOC_M32R_GOTPC_HI_ULO: howto manager. (line 1229)
+* BFD_RELOC_M32R_GOTPC_LO: howto manager. (line 1231)
+* BFD_RELOC_M32R_HI16_SLO: howto manager. (line 1204)
+* BFD_RELOC_M32R_HI16_ULO: howto manager. (line 1200)
+* BFD_RELOC_M32R_JMP_SLOT: howto manager. (line 1219)
+* BFD_RELOC_M32R_LO16: howto manager. (line 1208)
+* BFD_RELOC_M32R_RELATIVE: howto manager. (line 1220)
+* BFD_RELOC_M32R_SDA16: howto manager. (line 1211)
+* BFD_RELOC_M68HC11_24: howto manager. (line 1983)
+* BFD_RELOC_M68HC11_3B: howto manager. (line 1958)
+* BFD_RELOC_M68HC11_HI8: howto manager. (line 1950)
+* BFD_RELOC_M68HC11_LO16: howto manager. (line 1972)
+* BFD_RELOC_M68HC11_LO8: howto manager. (line 1954)
+* BFD_RELOC_M68HC11_PAGE: howto manager. (line 1978)
+* BFD_RELOC_M68HC11_RL_GROUP: howto manager. (line 1967)
+* BFD_RELOC_M68HC11_RL_JUMP: howto manager. (line 1961)
+* BFD_RELOC_M68HC12_5B: howto manager. (line 1989)
+* BFD_RELOC_MACH_O_PAIR: howto manager. (line 2358)
+* BFD_RELOC_MACH_O_SECTDIFF: howto manager. (line 2354)
+* BFD_RELOC_MACH_O_X86_64_BRANCH32: howto manager. (line 2361)
+* BFD_RELOC_MACH_O_X86_64_BRANCH8: howto manager. (line 2362)
+* BFD_RELOC_MACH_O_X86_64_GOT: howto manager. (line 2366)
+* BFD_RELOC_MACH_O_X86_64_GOT_LOAD: howto manager. (line 2369)
+* BFD_RELOC_MACH_O_X86_64_PCREL32_1: howto manager. (line 2379)
+* BFD_RELOC_MACH_O_X86_64_PCREL32_2: howto manager. (line 2382)
+* BFD_RELOC_MACH_O_X86_64_PCREL32_4: howto manager. (line 2385)
+* BFD_RELOC_MACH_O_X86_64_SUBTRACTOR32: howto manager. (line 2373)
+* BFD_RELOC_MACH_O_X86_64_SUBTRACTOR64: howto manager. (line 2376)
+* BFD_RELOC_MCORE_PCREL_32: howto manager. (line 1469)
+* BFD_RELOC_MCORE_PCREL_IMM11BY2: howto manager. (line 1467)
+* BFD_RELOC_MCORE_PCREL_IMM4BY2: howto manager. (line 1468)
+* BFD_RELOC_MCORE_PCREL_IMM8BY4: howto manager. (line 1466)
+* BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2: howto manager. (line 1470)
+* BFD_RELOC_MCORE_RVA: howto manager. (line 1471)
+* BFD_RELOC_MEP_16: howto manager. (line 1475)
+* BFD_RELOC_MEP_32: howto manager. (line 1476)
+* BFD_RELOC_MEP_8: howto manager. (line 1474)
+* BFD_RELOC_MEP_ADDR24A4: howto manager. (line 1491)
+* BFD_RELOC_MEP_GNU_VTENTRY: howto manager. (line 1493)
+* BFD_RELOC_MEP_GNU_VTINHERIT: howto manager. (line 1492)
+* BFD_RELOC_MEP_GPREL: howto manager. (line 1485)
+* BFD_RELOC_MEP_HI16S: howto manager. (line 1484)
+* BFD_RELOC_MEP_HI16U: howto manager. (line 1483)
+* BFD_RELOC_MEP_LOW16: howto manager. (line 1482)
+* BFD_RELOC_MEP_PCABS24A2: howto manager. (line 1481)
+* BFD_RELOC_MEP_PCREL12A2: howto manager. (line 1478)
+* BFD_RELOC_MEP_PCREL17A2: howto manager. (line 1479)
+* BFD_RELOC_MEP_PCREL24A2: howto manager. (line 1480)
+* BFD_RELOC_MEP_PCREL8A2: howto manager. (line 1477)
+* BFD_RELOC_MEP_TPREL: howto manager. (line 1486)
+* BFD_RELOC_MEP_TPREL7: howto manager. (line 1487)
+* BFD_RELOC_MEP_TPREL7A2: howto manager. (line 1488)
+* BFD_RELOC_MEP_TPREL7A4: howto manager. (line 1489)
+* BFD_RELOC_MEP_UIMM24: howto manager. (line 1490)
+* BFD_RELOC_MICROBLAZE_32_GOTOFF: howto manager. (line 2432)
+* BFD_RELOC_MICROBLAZE_32_LO: howto manager. (line 2388)
+* BFD_RELOC_MICROBLAZE_32_LO_PCREL: howto manager. (line 2392)
+* BFD_RELOC_MICROBLAZE_32_ROSDA: howto manager. (line 2396)
+* BFD_RELOC_MICROBLAZE_32_RWSDA: howto manager. (line 2400)
+* BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM: howto manager. (line 2404)
+* BFD_RELOC_MICROBLAZE_64_GOT: howto manager. (line 2418)
+* BFD_RELOC_MICROBLAZE_64_GOTOFF: howto manager. (line 2427)
+* BFD_RELOC_MICROBLAZE_64_GOTPC: howto manager. (line 2413)
+* BFD_RELOC_MICROBLAZE_64_NONE: howto manager. (line 2408)
+* BFD_RELOC_MICROBLAZE_64_PLT: howto manager. (line 2422)
+* BFD_RELOC_MICROBLAZE_COPY: howto manager. (line 2436)
+* BFD_RELOC_MICROMIPS_10_PCREL_S1: howto manager. (line 387)
+* BFD_RELOC_MICROMIPS_16_PCREL_S1: howto manager. (line 388)
+* BFD_RELOC_MICROMIPS_7_PCREL_S1: howto manager. (line 386)
+* BFD_RELOC_MICROMIPS_CALL16: howto manager. (line 400)
+* BFD_RELOC_MICROMIPS_CALL_HI16: howto manager. (line 406)
+* BFD_RELOC_MICROMIPS_CALL_LO16: howto manager. (line 408)
+* BFD_RELOC_MICROMIPS_GOT16: howto manager. (line 398)
+* BFD_RELOC_MICROMIPS_GOT_DISP: howto manager. (line 416)
+* BFD_RELOC_MICROMIPS_GOT_HI16: howto manager. (line 402)
+* BFD_RELOC_MICROMIPS_GOT_LO16: howto manager. (line 404)
+* BFD_RELOC_MICROMIPS_GOT_OFST: howto manager. (line 414)
+* BFD_RELOC_MICROMIPS_GOT_PAGE: howto manager. (line 412)
+* BFD_RELOC_MICROMIPS_GPREL16: howto manager. (line 391)
+* BFD_RELOC_MICROMIPS_HI16: howto manager. (line 392)
+* BFD_RELOC_MICROMIPS_HI16_S: howto manager. (line 393)
+* BFD_RELOC_MICROMIPS_HIGHER: howto manager. (line 425)
+* BFD_RELOC_MICROMIPS_HIGHEST: howto manager. (line 423)
+* BFD_RELOC_MICROMIPS_JALR: howto manager. (line 431)
+* BFD_RELOC_MICROMIPS_JMP: howto manager. (line 335)
+* BFD_RELOC_MICROMIPS_LITERAL: howto manager. (line 383)
+* BFD_RELOC_MICROMIPS_LO16: howto manager. (line 394)
+* BFD_RELOC_MICROMIPS_SCN_DISP: howto manager. (line 427)
+* BFD_RELOC_MICROMIPS_SUB: howto manager. (line 410)
+* BFD_RELOC_MICROMIPS_TLS_DTPREL_HI16: howto manager. (line 441)
+* BFD_RELOC_MICROMIPS_TLS_DTPREL_LO16: howto manager. (line 443)
+* BFD_RELOC_MICROMIPS_TLS_GD: howto manager. (line 437)
+* BFD_RELOC_MICROMIPS_TLS_GOTTPREL: howto manager. (line 445)
+* BFD_RELOC_MICROMIPS_TLS_LDM: howto manager. (line 439)
+* BFD_RELOC_MICROMIPS_TLS_TPREL_HI16: howto manager. (line 449)
+* BFD_RELOC_MICROMIPS_TLS_TPREL_LO16: howto manager. (line 451)
+* BFD_RELOC_MIPS16_CALL16: howto manager. (line 366)
+* BFD_RELOC_MIPS16_GOT16: howto manager. (line 365)
+* BFD_RELOC_MIPS16_GPREL: howto manager. (line 341)
+* BFD_RELOC_MIPS16_HI16: howto manager. (line 370)
+* BFD_RELOC_MIPS16_HI16_S: howto manager. (line 373)
+* BFD_RELOC_MIPS16_JMP: howto manager. (line 338)
+* BFD_RELOC_MIPS16_LO16: howto manager. (line 379)
+* BFD_RELOC_MIPS_CALL16: howto manager. (line 399)
+* BFD_RELOC_MIPS_CALL_HI16: howto manager. (line 405)
+* BFD_RELOC_MIPS_CALL_LO16: howto manager. (line 407)
+* BFD_RELOC_MIPS_COPY: howto manager. (line 454)
+* BFD_RELOC_MIPS_DELETE: howto manager. (line 421)
+* BFD_RELOC_MIPS_GOT16: howto manager. (line 397)
+* BFD_RELOC_MIPS_GOT_DISP: howto manager. (line 415)
+* BFD_RELOC_MIPS_GOT_HI16: howto manager. (line 401)
+* BFD_RELOC_MIPS_GOT_LO16: howto manager. (line 403)
+* BFD_RELOC_MIPS_GOT_OFST: howto manager. (line 413)
+* BFD_RELOC_MIPS_GOT_PAGE: howto manager. (line 411)
+* BFD_RELOC_MIPS_HIGHER: howto manager. (line 424)
+* BFD_RELOC_MIPS_HIGHEST: howto manager. (line 422)
+* BFD_RELOC_MIPS_INSERT_A: howto manager. (line 419)
+* BFD_RELOC_MIPS_INSERT_B: howto manager. (line 420)
+* BFD_RELOC_MIPS_JALR: howto manager. (line 430)
+* BFD_RELOC_MIPS_JMP: howto manager. (line 334)
+* BFD_RELOC_MIPS_JUMP_SLOT: howto manager. (line 455)
+* BFD_RELOC_MIPS_LITERAL: howto manager. (line 382)
+* BFD_RELOC_MIPS_REL16: howto manager. (line 428)
+* BFD_RELOC_MIPS_RELGOT: howto manager. (line 429)
+* BFD_RELOC_MIPS_SCN_DISP: howto manager. (line 426)
+* BFD_RELOC_MIPS_SHIFT5: howto manager. (line 417)
+* BFD_RELOC_MIPS_SHIFT6: howto manager. (line 418)
+* BFD_RELOC_MIPS_SUB: howto manager. (line 409)
+* BFD_RELOC_MIPS_TLS_DTPMOD32: howto manager. (line 432)
+* BFD_RELOC_MIPS_TLS_DTPMOD64: howto manager. (line 434)
+* BFD_RELOC_MIPS_TLS_DTPREL32: howto manager. (line 433)
+* BFD_RELOC_MIPS_TLS_DTPREL64: howto manager. (line 435)
+* BFD_RELOC_MIPS_TLS_DTPREL_HI16: howto manager. (line 440)
+* BFD_RELOC_MIPS_TLS_DTPREL_LO16: howto manager. (line 442)
+* BFD_RELOC_MIPS_TLS_GD: howto manager. (line 436)
+* BFD_RELOC_MIPS_TLS_GOTTPREL: howto manager. (line 444)
+* BFD_RELOC_MIPS_TLS_LDM: howto manager. (line 438)
+* BFD_RELOC_MIPS_TLS_TPREL32: howto manager. (line 446)
+* BFD_RELOC_MIPS_TLS_TPREL64: howto manager. (line 447)
+* BFD_RELOC_MIPS_TLS_TPREL_HI16: howto manager. (line 448)
+* BFD_RELOC_MIPS_TLS_TPREL_LO16: howto manager. (line 450)
+* BFD_RELOC_MMIX_ADDR19: howto manager. (line 1522)
+* BFD_RELOC_MMIX_ADDR27: howto manager. (line 1526)
+* BFD_RELOC_MMIX_BASE_PLUS_OFFSET: howto manager. (line 1538)
+* BFD_RELOC_MMIX_CBRANCH: howto manager. (line 1502)
+* BFD_RELOC_MMIX_CBRANCH_1: howto manager. (line 1504)
+* BFD_RELOC_MMIX_CBRANCH_2: howto manager. (line 1505)
+* BFD_RELOC_MMIX_CBRANCH_3: howto manager. (line 1506)
+* BFD_RELOC_MMIX_CBRANCH_J: howto manager. (line 1503)
+* BFD_RELOC_MMIX_GETA: howto manager. (line 1496)
+* BFD_RELOC_MMIX_GETA_1: howto manager. (line 1497)
+* BFD_RELOC_MMIX_GETA_2: howto manager. (line 1498)
+* BFD_RELOC_MMIX_GETA_3: howto manager. (line 1499)
+* BFD_RELOC_MMIX_JMP: howto manager. (line 1516)
+* BFD_RELOC_MMIX_JMP_1: howto manager. (line 1517)
+* BFD_RELOC_MMIX_JMP_2: howto manager. (line 1518)
+* BFD_RELOC_MMIX_JMP_3: howto manager. (line 1519)
+* BFD_RELOC_MMIX_LOCAL: howto manager. (line 1542)
+* BFD_RELOC_MMIX_PUSHJ: howto manager. (line 1509)
+* BFD_RELOC_MMIX_PUSHJ_1: howto manager. (line 1510)
+* BFD_RELOC_MMIX_PUSHJ_2: howto manager. (line 1511)
+* BFD_RELOC_MMIX_PUSHJ_3: howto manager. (line 1512)
+* BFD_RELOC_MMIX_PUSHJ_STUBBABLE: howto manager. (line 1513)
+* BFD_RELOC_MMIX_REG: howto manager. (line 1534)
+* BFD_RELOC_MMIX_REG_OR_BYTE: howto manager. (line 1530)
+* BFD_RELOC_MN10300_16_PCREL: howto manager. (line 1372)
+* BFD_RELOC_MN10300_32_PCREL: howto manager. (line 1368)
+* BFD_RELOC_MN10300_ALIGN: howto manager. (line 534)
+* BFD_RELOC_MN10300_COPY: howto manager. (line 517)
+* BFD_RELOC_MN10300_GLOB_DAT: howto manager. (line 520)
+* BFD_RELOC_MN10300_GOT16: howto manager. (line 513)
+* BFD_RELOC_MN10300_GOT24: howto manager. (line 509)
+* BFD_RELOC_MN10300_GOT32: howto manager. (line 505)
+* BFD_RELOC_MN10300_GOTOFF24: howto manager. (line 502)
+* BFD_RELOC_MN10300_JMP_SLOT: howto manager. (line 523)
+* BFD_RELOC_MN10300_RELATIVE: howto manager. (line 526)
+* BFD_RELOC_MN10300_SYM_DIFF: howto manager. (line 529)
+* BFD_RELOC_MOXIE_10_PCREL: howto manager. (line 458)
+* BFD_RELOC_MSP430_10_PCREL: howto manager. (line 2229)
+* BFD_RELOC_MSP430_16: howto manager. (line 2231)
+* BFD_RELOC_MSP430_16_BYTE: howto manager. (line 2233)
+* BFD_RELOC_MSP430_16_PCREL: howto manager. (line 2230)
+* BFD_RELOC_MSP430_16_PCREL_BYTE: howto manager. (line 2232)
+* BFD_RELOC_MSP430_2X_PCREL: howto manager. (line 2234)
+* BFD_RELOC_MSP430_RL_PCREL: howto manager. (line 2235)
+* BFD_RELOC_MT_GNU_VTENTRY: howto manager. (line 2223)
+* BFD_RELOC_MT_GNU_VTINHERIT: howto manager. (line 2220)
+* BFD_RELOC_MT_HI16: howto manager. (line 2214)
+* BFD_RELOC_MT_LO16: howto manager. (line 2217)
+* BFD_RELOC_MT_PC16: howto manager. (line 2211)
+* BFD_RELOC_MT_PCINSN8: howto manager. (line 2226)
+* BFD_RELOC_NONE: howto manager. (line 131)
+* BFD_RELOC_NS32K_DISP_16: howto manager. (line 600)
+* BFD_RELOC_NS32K_DISP_16_PCREL: howto manager. (line 603)
+* BFD_RELOC_NS32K_DISP_32: howto manager. (line 601)
+* BFD_RELOC_NS32K_DISP_32_PCREL: howto manager. (line 604)
+* BFD_RELOC_NS32K_DISP_8: howto manager. (line 599)
+* BFD_RELOC_NS32K_DISP_8_PCREL: howto manager. (line 602)
+* BFD_RELOC_NS32K_IMM_16: howto manager. (line 594)
+* BFD_RELOC_NS32K_IMM_16_PCREL: howto manager. (line 597)
+* BFD_RELOC_NS32K_IMM_32: howto manager. (line 595)
+* BFD_RELOC_NS32K_IMM_32_PCREL: howto manager. (line 598)
+* BFD_RELOC_NS32K_IMM_8: howto manager. (line 593)
+* BFD_RELOC_NS32K_IMM_8_PCREL: howto manager. (line 596)
+* BFD_RELOC_OPENRISC_ABS_26: howto manager. (line 2180)
+* BFD_RELOC_OPENRISC_REL_26: howto manager. (line 2181)
+* BFD_RELOC_PDP11_DISP_6_PCREL: howto manager. (line 608)
+* BFD_RELOC_PDP11_DISP_8_PCREL: howto manager. (line 607)
+* BFD_RELOC_PJ_CODE_DIR16: howto manager. (line 613)
+* BFD_RELOC_PJ_CODE_DIR32: howto manager. (line 614)
+* BFD_RELOC_PJ_CODE_HI16: howto manager. (line 611)
+* BFD_RELOC_PJ_CODE_LO16: howto manager. (line 612)
+* BFD_RELOC_PJ_CODE_REL16: howto manager. (line 615)
+* BFD_RELOC_PJ_CODE_REL32: howto manager. (line 616)
+* BFD_RELOC_PPC64_ADDR16_DS: howto manager. (line 661)
+* BFD_RELOC_PPC64_ADDR16_LO_DS: howto manager. (line 662)
+* BFD_RELOC_PPC64_DTPREL16_DS: howto manager. (line 710)
+* BFD_RELOC_PPC64_DTPREL16_HIGHER: howto manager. (line 712)
+* BFD_RELOC_PPC64_DTPREL16_HIGHERA: howto manager. (line 713)
+* BFD_RELOC_PPC64_DTPREL16_HIGHEST: howto manager. (line 714)
+* BFD_RELOC_PPC64_DTPREL16_HIGHESTA: howto manager. (line 715)
+* BFD_RELOC_PPC64_DTPREL16_LO_DS: howto manager. (line 711)
+* BFD_RELOC_PPC64_GOT16_DS: howto manager. (line 663)
+* BFD_RELOC_PPC64_GOT16_LO_DS: howto manager. (line 664)
+* BFD_RELOC_PPC64_HIGHER: howto manager. (line 649)
+* BFD_RELOC_PPC64_HIGHER_S: howto manager. (line 650)
+* BFD_RELOC_PPC64_HIGHEST: howto manager. (line 651)
+* BFD_RELOC_PPC64_HIGHEST_S: howto manager. (line 652)
+* BFD_RELOC_PPC64_PLT16_LO_DS: howto manager. (line 665)
+* BFD_RELOC_PPC64_PLTGOT16: howto manager. (line 657)
+* BFD_RELOC_PPC64_PLTGOT16_DS: howto manager. (line 670)
+* BFD_RELOC_PPC64_PLTGOT16_HA: howto manager. (line 660)
+* BFD_RELOC_PPC64_PLTGOT16_HI: howto manager. (line 659)
+* BFD_RELOC_PPC64_PLTGOT16_LO: howto manager. (line 658)
+* BFD_RELOC_PPC64_PLTGOT16_LO_DS: howto manager. (line 671)
+* BFD_RELOC_PPC64_SECTOFF_DS: howto manager. (line 666)
+* BFD_RELOC_PPC64_SECTOFF_LO_DS: howto manager. (line 667)
+* BFD_RELOC_PPC64_TOC: howto manager. (line 656)
+* BFD_RELOC_PPC64_TOC16_DS: howto manager. (line 668)
+* BFD_RELOC_PPC64_TOC16_HA: howto manager. (line 655)
+* BFD_RELOC_PPC64_TOC16_HI: howto manager. (line 654)
+* BFD_RELOC_PPC64_TOC16_LO: howto manager. (line 653)
+* BFD_RELOC_PPC64_TOC16_LO_DS: howto manager. (line 669)
+* BFD_RELOC_PPC64_TPREL16_DS: howto manager. (line 704)
+* BFD_RELOC_PPC64_TPREL16_HIGHER: howto manager. (line 706)
+* BFD_RELOC_PPC64_TPREL16_HIGHERA: howto manager. (line 707)
+* BFD_RELOC_PPC64_TPREL16_HIGHEST: howto manager. (line 708)
+* BFD_RELOC_PPC64_TPREL16_HIGHESTA: howto manager. (line 709)
+* BFD_RELOC_PPC64_TPREL16_LO_DS: howto manager. (line 705)
+* BFD_RELOC_PPC_B16: howto manager. (line 622)
+* BFD_RELOC_PPC_B16_BRNTAKEN: howto manager. (line 624)
+* BFD_RELOC_PPC_B16_BRTAKEN: howto manager. (line 623)
+* BFD_RELOC_PPC_B26: howto manager. (line 619)
+* BFD_RELOC_PPC_BA16: howto manager. (line 625)
+* BFD_RELOC_PPC_BA16_BRNTAKEN: howto manager. (line 627)
+* BFD_RELOC_PPC_BA16_BRTAKEN: howto manager. (line 626)
+* BFD_RELOC_PPC_BA26: howto manager. (line 620)
+* BFD_RELOC_PPC_COPY: howto manager. (line 628)
+* BFD_RELOC_PPC_DTPMOD: howto manager. (line 677)
+* BFD_RELOC_PPC_DTPREL: howto manager. (line 687)
+* BFD_RELOC_PPC_DTPREL16: howto manager. (line 683)
+* BFD_RELOC_PPC_DTPREL16_HA: howto manager. (line 686)
+* BFD_RELOC_PPC_DTPREL16_HI: howto manager. (line 685)
+* BFD_RELOC_PPC_DTPREL16_LO: howto manager. (line 684)
+* BFD_RELOC_PPC_EMB_BIT_FLD: howto manager. (line 647)
+* BFD_RELOC_PPC_EMB_MRKREF: howto manager. (line 642)
+* BFD_RELOC_PPC_EMB_NADDR16: howto manager. (line 634)
+* BFD_RELOC_PPC_EMB_NADDR16_HA: howto manager. (line 637)
+* BFD_RELOC_PPC_EMB_NADDR16_HI: howto manager. (line 636)
+* BFD_RELOC_PPC_EMB_NADDR16_LO: howto manager. (line 635)
+* BFD_RELOC_PPC_EMB_NADDR32: howto manager. (line 633)
+* BFD_RELOC_PPC_EMB_RELSDA: howto manager. (line 648)
+* BFD_RELOC_PPC_EMB_RELSEC16: howto manager. (line 643)
+* BFD_RELOC_PPC_EMB_RELST_HA: howto manager. (line 646)
+* BFD_RELOC_PPC_EMB_RELST_HI: howto manager. (line 645)
+* BFD_RELOC_PPC_EMB_RELST_LO: howto manager. (line 644)
+* BFD_RELOC_PPC_EMB_SDA21: howto manager. (line 641)
+* BFD_RELOC_PPC_EMB_SDA2I16: howto manager. (line 639)
+* BFD_RELOC_PPC_EMB_SDA2REL: howto manager. (line 640)
+* BFD_RELOC_PPC_EMB_SDAI16: howto manager. (line 638)
+* BFD_RELOC_PPC_GLOB_DAT: howto manager. (line 629)
+* BFD_RELOC_PPC_GOT_DTPREL16: howto manager. (line 700)
+* BFD_RELOC_PPC_GOT_DTPREL16_HA: howto manager. (line 703)
+* BFD_RELOC_PPC_GOT_DTPREL16_HI: howto manager. (line 702)
+* BFD_RELOC_PPC_GOT_DTPREL16_LO: howto manager. (line 701)
+* BFD_RELOC_PPC_GOT_TLSGD16: howto manager. (line 688)
+* BFD_RELOC_PPC_GOT_TLSGD16_HA: howto manager. (line 691)
+* BFD_RELOC_PPC_GOT_TLSGD16_HI: howto manager. (line 690)
+* BFD_RELOC_PPC_GOT_TLSGD16_LO: howto manager. (line 689)
+* BFD_RELOC_PPC_GOT_TLSLD16: howto manager. (line 692)
+* BFD_RELOC_PPC_GOT_TLSLD16_HA: howto manager. (line 695)
+* BFD_RELOC_PPC_GOT_TLSLD16_HI: howto manager. (line 694)
+* BFD_RELOC_PPC_GOT_TLSLD16_LO: howto manager. (line 693)
+* BFD_RELOC_PPC_GOT_TPREL16: howto manager. (line 696)
+* BFD_RELOC_PPC_GOT_TPREL16_HA: howto manager. (line 699)
+* BFD_RELOC_PPC_GOT_TPREL16_HI: howto manager. (line 698)
+* BFD_RELOC_PPC_GOT_TPREL16_LO: howto manager. (line 697)
+* BFD_RELOC_PPC_JMP_SLOT: howto manager. (line 630)
+* BFD_RELOC_PPC_LOCAL24PC: howto manager. (line 632)
+* BFD_RELOC_PPC_RELATIVE: howto manager. (line 631)
+* BFD_RELOC_PPC_TLS: howto manager. (line 674)
+* BFD_RELOC_PPC_TLSGD: howto manager. (line 675)
+* BFD_RELOC_PPC_TLSLD: howto manager. (line 676)
+* BFD_RELOC_PPC_TOC16: howto manager. (line 621)
+* BFD_RELOC_PPC_TPREL: howto manager. (line 682)
+* BFD_RELOC_PPC_TPREL16: howto manager. (line 678)
+* BFD_RELOC_PPC_TPREL16_HA: howto manager. (line 681)
+* BFD_RELOC_PPC_TPREL16_HI: howto manager. (line 680)
+* BFD_RELOC_PPC_TPREL16_LO: howto manager. (line 679)
+* BFD_RELOC_RELC: howto manager. (line 2197)
+* BFD_RELOC_RVA: howto manager. (line 100)
+* BFD_RELOC_RX_16_OP: howto manager. (line 1653)
+* BFD_RELOC_RX_16U: howto manager. (line 1657)
+* BFD_RELOC_RX_24_OP: howto manager. (line 1654)
+* BFD_RELOC_RX_24U: howto manager. (line 1658)
+* BFD_RELOC_RX_32_OP: howto manager. (line 1655)
+* BFD_RELOC_RX_8U: howto manager. (line 1656)
+* BFD_RELOC_RX_ABS16: howto manager. (line 1668)
+* BFD_RELOC_RX_ABS16_REV: howto manager. (line 1669)
+* BFD_RELOC_RX_ABS16U: howto manager. (line 1672)
+* BFD_RELOC_RX_ABS16UL: howto manager. (line 1674)
+* BFD_RELOC_RX_ABS16UW: howto manager. (line 1673)
+* BFD_RELOC_RX_ABS32: howto manager. (line 1670)
+* BFD_RELOC_RX_ABS32_REV: howto manager. (line 1671)
+* BFD_RELOC_RX_ABS8: howto manager. (line 1667)
+* BFD_RELOC_RX_DIFF: howto manager. (line 1660)
+* BFD_RELOC_RX_DIR3U_PCREL: howto manager. (line 1659)
+* BFD_RELOC_RX_GPRELB: howto manager. (line 1661)
+* BFD_RELOC_RX_GPRELL: howto manager. (line 1663)
+* BFD_RELOC_RX_GPRELW: howto manager. (line 1662)
+* BFD_RELOC_RX_NEG16: howto manager. (line 1650)
+* BFD_RELOC_RX_NEG24: howto manager. (line 1651)
+* BFD_RELOC_RX_NEG32: howto manager. (line 1652)
+* BFD_RELOC_RX_NEG8: howto manager. (line 1649)
+* BFD_RELOC_RX_OP_NEG: howto manager. (line 1666)
+* BFD_RELOC_RX_OP_SUBTRACT: howto manager. (line 1665)
+* BFD_RELOC_RX_RELAX: howto manager. (line 1675)
+* BFD_RELOC_RX_SYM: howto manager. (line 1664)
+* BFD_RELOC_SCORE16_BRANCH: howto manager. (line 1803)
+* BFD_RELOC_SCORE16_JMP: howto manager. (line 1800)
+* BFD_RELOC_SCORE_BCMP: howto manager. (line 1806)
+* BFD_RELOC_SCORE_BRANCH: howto manager. (line 1791)
+* BFD_RELOC_SCORE_CALL15: howto manager. (line 1811)
+* BFD_RELOC_SCORE_DUMMY2: howto manager. (line 1787)
+* BFD_RELOC_SCORE_DUMMY_HI16: howto manager. (line 1812)
+* BFD_RELOC_SCORE_GOT15: howto manager. (line 1809)
+* BFD_RELOC_SCORE_GOT_LO16: howto manager. (line 1810)
+* BFD_RELOC_SCORE_GPREL15: howto manager. (line 1784)
+* BFD_RELOC_SCORE_IMM30: howto manager. (line 1794)
+* BFD_RELOC_SCORE_IMM32: howto manager. (line 1797)
+* BFD_RELOC_SCORE_JMP: howto manager. (line 1788)
+* BFD_RELOC_SH_ALIGN: howto manager. (line 909)
+* BFD_RELOC_SH_CODE: howto manager. (line 910)
+* BFD_RELOC_SH_COPY: howto manager. (line 915)
+* BFD_RELOC_SH_COPY64: howto manager. (line 940)
+* BFD_RELOC_SH_COUNT: howto manager. (line 908)
+* BFD_RELOC_SH_DATA: howto manager. (line 911)
+* BFD_RELOC_SH_DISP12: howto manager. (line 891)
+* BFD_RELOC_SH_DISP12BY2: howto manager. (line 892)
+* BFD_RELOC_SH_DISP12BY4: howto manager. (line 893)
+* BFD_RELOC_SH_DISP12BY8: howto manager. (line 894)
+* BFD_RELOC_SH_DISP20: howto manager. (line 895)
+* BFD_RELOC_SH_DISP20BY8: howto manager. (line 896)
+* BFD_RELOC_SH_FUNCDESC: howto manager. (line 983)
+* BFD_RELOC_SH_GLOB_DAT: howto manager. (line 916)
+* BFD_RELOC_SH_GLOB_DAT64: howto manager. (line 941)
+* BFD_RELOC_SH_GOT10BY4: howto manager. (line 944)
+* BFD_RELOC_SH_GOT10BY8: howto manager. (line 945)
+* BFD_RELOC_SH_GOT20: howto manager. (line 977)
+* BFD_RELOC_SH_GOT_HI16: howto manager. (line 923)
+* BFD_RELOC_SH_GOT_LOW16: howto manager. (line 920)
+* BFD_RELOC_SH_GOT_MEDHI16: howto manager. (line 922)
+* BFD_RELOC_SH_GOT_MEDLOW16: howto manager. (line 921)
+* BFD_RELOC_SH_GOTFUNCDESC: howto manager. (line 979)
+* BFD_RELOC_SH_GOTFUNCDESC20: howto manager. (line 980)
+* BFD_RELOC_SH_GOTOFF20: howto manager. (line 978)
+* BFD_RELOC_SH_GOTOFF_HI16: howto manager. (line 935)
+* BFD_RELOC_SH_GOTOFF_LOW16: howto manager. (line 932)
+* BFD_RELOC_SH_GOTOFF_MEDHI16: howto manager. (line 934)
+* BFD_RELOC_SH_GOTOFF_MEDLOW16: howto manager. (line 933)
+* BFD_RELOC_SH_GOTOFFFUNCDESC: howto manager. (line 981)
+* BFD_RELOC_SH_GOTOFFFUNCDESC20: howto manager. (line 982)
+* BFD_RELOC_SH_GOTPC: howto manager. (line 919)
+* BFD_RELOC_SH_GOTPC_HI16: howto manager. (line 939)
+* BFD_RELOC_SH_GOTPC_LOW16: howto manager. (line 936)
+* BFD_RELOC_SH_GOTPC_MEDHI16: howto manager. (line 938)
+* BFD_RELOC_SH_GOTPC_MEDLOW16: howto manager. (line 937)
+* BFD_RELOC_SH_GOTPLT10BY4: howto manager. (line 946)
+* BFD_RELOC_SH_GOTPLT10BY8: howto manager. (line 947)
+* BFD_RELOC_SH_GOTPLT32: howto manager. (line 948)
+* BFD_RELOC_SH_GOTPLT_HI16: howto manager. (line 927)
+* BFD_RELOC_SH_GOTPLT_LOW16: howto manager. (line 924)
+* BFD_RELOC_SH_GOTPLT_MEDHI16: howto manager. (line 926)
+* BFD_RELOC_SH_GOTPLT_MEDLOW16: howto manager. (line 925)
+* BFD_RELOC_SH_IMM3: howto manager. (line 889)
+* BFD_RELOC_SH_IMM3U: howto manager. (line 890)
+* BFD_RELOC_SH_IMM4: howto manager. (line 897)
+* BFD_RELOC_SH_IMM4BY2: howto manager. (line 898)
+* BFD_RELOC_SH_IMM4BY4: howto manager. (line 899)
+* BFD_RELOC_SH_IMM8: howto manager. (line 900)
+* BFD_RELOC_SH_IMM8BY2: howto manager. (line 901)
+* BFD_RELOC_SH_IMM8BY4: howto manager. (line 902)
+* BFD_RELOC_SH_IMM_HI16: howto manager. (line 966)
+* BFD_RELOC_SH_IMM_HI16_PCREL: howto manager. (line 967)
+* BFD_RELOC_SH_IMM_LOW16: howto manager. (line 960)
+* BFD_RELOC_SH_IMM_LOW16_PCREL: howto manager. (line 961)
+* BFD_RELOC_SH_IMM_MEDHI16: howto manager. (line 964)
+* BFD_RELOC_SH_IMM_MEDHI16_PCREL: howto manager. (line 965)
+* BFD_RELOC_SH_IMM_MEDLOW16: howto manager. (line 962)
+* BFD_RELOC_SH_IMM_MEDLOW16_PCREL: howto manager. (line 963)
+* BFD_RELOC_SH_IMMS10: howto manager. (line 954)
+* BFD_RELOC_SH_IMMS10BY2: howto manager. (line 955)
+* BFD_RELOC_SH_IMMS10BY4: howto manager. (line 956)
+* BFD_RELOC_SH_IMMS10BY8: howto manager. (line 957)
+* BFD_RELOC_SH_IMMS16: howto manager. (line 958)
+* BFD_RELOC_SH_IMMS6: howto manager. (line 951)
+* BFD_RELOC_SH_IMMS6BY32: howto manager. (line 952)
+* BFD_RELOC_SH_IMMU16: howto manager. (line 959)
+* BFD_RELOC_SH_IMMU5: howto manager. (line 950)
+* BFD_RELOC_SH_IMMU6: howto manager. (line 953)
+* BFD_RELOC_SH_JMP_SLOT: howto manager. (line 917)
+* BFD_RELOC_SH_JMP_SLOT64: howto manager. (line 942)
+* BFD_RELOC_SH_LABEL: howto manager. (line 912)
+* BFD_RELOC_SH_LOOP_END: howto manager. (line 914)
+* BFD_RELOC_SH_LOOP_START: howto manager. (line 913)
+* BFD_RELOC_SH_PCDISP12BY2: howto manager. (line 888)
+* BFD_RELOC_SH_PCDISP8BY2: howto manager. (line 887)
+* BFD_RELOC_SH_PCRELIMM8BY2: howto manager. (line 903)
+* BFD_RELOC_SH_PCRELIMM8BY4: howto manager. (line 904)
+* BFD_RELOC_SH_PLT_HI16: howto manager. (line 931)
+* BFD_RELOC_SH_PLT_LOW16: howto manager. (line 928)
+* BFD_RELOC_SH_PLT_MEDHI16: howto manager. (line 930)
+* BFD_RELOC_SH_PLT_MEDLOW16: howto manager. (line 929)
+* BFD_RELOC_SH_PT_16: howto manager. (line 968)
+* BFD_RELOC_SH_RELATIVE: howto manager. (line 918)
+* BFD_RELOC_SH_RELATIVE64: howto manager. (line 943)
+* BFD_RELOC_SH_SHMEDIA_CODE: howto manager. (line 949)
+* BFD_RELOC_SH_SWITCH16: howto manager. (line 905)
+* BFD_RELOC_SH_SWITCH32: howto manager. (line 906)
+* BFD_RELOC_SH_TLS_DTPMOD32: howto manager. (line 974)
+* BFD_RELOC_SH_TLS_DTPOFF32: howto manager. (line 975)
+* BFD_RELOC_SH_TLS_GD_32: howto manager. (line 969)
+* BFD_RELOC_SH_TLS_IE_32: howto manager. (line 972)
+* BFD_RELOC_SH_TLS_LD_32: howto manager. (line 970)
+* BFD_RELOC_SH_TLS_LDO_32: howto manager. (line 971)
+* BFD_RELOC_SH_TLS_LE_32: howto manager. (line 973)
+* BFD_RELOC_SH_TLS_TPOFF32: howto manager. (line 976)
+* BFD_RELOC_SH_USES: howto manager. (line 907)
+* BFD_RELOC_SPARC13: howto manager. (line 134)
+* BFD_RELOC_SPARC22: howto manager. (line 133)
+* BFD_RELOC_SPARC_10: howto manager. (line 163)
+* BFD_RELOC_SPARC_11: howto manager. (line 164)
+* BFD_RELOC_SPARC_5: howto manager. (line 176)
+* BFD_RELOC_SPARC_6: howto manager. (line 175)
+* BFD_RELOC_SPARC_64: howto manager. (line 162)
+* BFD_RELOC_SPARC_7: howto manager. (line 174)
+* BFD_RELOC_SPARC_BASE13: howto manager. (line 158)
+* BFD_RELOC_SPARC_BASE22: howto manager. (line 159)
+* BFD_RELOC_SPARC_COPY: howto manager. (line 141)
+* BFD_RELOC_SPARC_DISP64: howto manager. (line 177)
+* BFD_RELOC_SPARC_GLOB_DAT: howto manager. (line 142)
+* BFD_RELOC_SPARC_GOT10: howto manager. (line 135)
+* BFD_RELOC_SPARC_GOT13: howto manager. (line 136)
+* BFD_RELOC_SPARC_GOT22: howto manager. (line 137)
+* BFD_RELOC_SPARC_GOTDATA_HIX22: howto manager. (line 148)
+* BFD_RELOC_SPARC_GOTDATA_LOX10: howto manager. (line 149)
+* BFD_RELOC_SPARC_GOTDATA_OP: howto manager. (line 152)
+* BFD_RELOC_SPARC_GOTDATA_OP_HIX22: howto manager. (line 150)
+* BFD_RELOC_SPARC_GOTDATA_OP_LOX10: howto manager. (line 151)
+* BFD_RELOC_SPARC_H44: howto manager. (line 182)
+* BFD_RELOC_SPARC_HH22: howto manager. (line 166)
+* BFD_RELOC_SPARC_HIX22: howto manager. (line 180)
+* BFD_RELOC_SPARC_HM10: howto manager. (line 167)
+* BFD_RELOC_SPARC_IRELATIVE: howto manager. (line 154)
+* BFD_RELOC_SPARC_JMP_IREL: howto manager. (line 153)
+* BFD_RELOC_SPARC_JMP_SLOT: howto manager. (line 143)
+* BFD_RELOC_SPARC_L44: howto manager. (line 184)
+* BFD_RELOC_SPARC_LM22: howto manager. (line 168)
+* BFD_RELOC_SPARC_LOX10: howto manager. (line 181)
+* BFD_RELOC_SPARC_M44: howto manager. (line 183)
+* BFD_RELOC_SPARC_OLO10: howto manager. (line 165)
+* BFD_RELOC_SPARC_PC10: howto manager. (line 138)
+* BFD_RELOC_SPARC_PC22: howto manager. (line 139)
+* BFD_RELOC_SPARC_PC_HH22: howto manager. (line 169)
+* BFD_RELOC_SPARC_PC_HM10: howto manager. (line 170)
+* BFD_RELOC_SPARC_PC_LM22: howto manager. (line 171)
+* BFD_RELOC_SPARC_PLT32: howto manager. (line 178)
+* BFD_RELOC_SPARC_PLT64: howto manager. (line 179)
+* BFD_RELOC_SPARC_REGISTER: howto manager. (line 185)
+* BFD_RELOC_SPARC_RELATIVE: howto manager. (line 144)
+* BFD_RELOC_SPARC_REV32: howto manager. (line 188)
+* BFD_RELOC_SPARC_TLS_DTPMOD32: howto manager. (line 209)
+* BFD_RELOC_SPARC_TLS_DTPMOD64: howto manager. (line 210)
+* BFD_RELOC_SPARC_TLS_DTPOFF32: howto manager. (line 211)
+* BFD_RELOC_SPARC_TLS_DTPOFF64: howto manager. (line 212)
+* BFD_RELOC_SPARC_TLS_GD_ADD: howto manager. (line 193)
+* BFD_RELOC_SPARC_TLS_GD_CALL: howto manager. (line 194)
+* BFD_RELOC_SPARC_TLS_GD_HI22: howto manager. (line 191)
+* BFD_RELOC_SPARC_TLS_GD_LO10: howto manager. (line 192)
+* BFD_RELOC_SPARC_TLS_IE_ADD: howto manager. (line 206)
+* BFD_RELOC_SPARC_TLS_IE_HI22: howto manager. (line 202)
+* BFD_RELOC_SPARC_TLS_IE_LD: howto manager. (line 204)
+* BFD_RELOC_SPARC_TLS_IE_LDX: howto manager. (line 205)
+* BFD_RELOC_SPARC_TLS_IE_LO10: howto manager. (line 203)
+* BFD_RELOC_SPARC_TLS_LDM_ADD: howto manager. (line 197)
+* BFD_RELOC_SPARC_TLS_LDM_CALL: howto manager. (line 198)
+* BFD_RELOC_SPARC_TLS_LDM_HI22: howto manager. (line 195)
+* BFD_RELOC_SPARC_TLS_LDM_LO10: howto manager. (line 196)
+* BFD_RELOC_SPARC_TLS_LDO_ADD: howto manager. (line 201)
+* BFD_RELOC_SPARC_TLS_LDO_HIX22: howto manager. (line 199)
+* BFD_RELOC_SPARC_TLS_LDO_LOX10: howto manager. (line 200)
+* BFD_RELOC_SPARC_TLS_LE_HIX22: howto manager. (line 207)
+* BFD_RELOC_SPARC_TLS_LE_LOX10: howto manager. (line 208)
+* BFD_RELOC_SPARC_TLS_TPOFF32: howto manager. (line 213)
+* BFD_RELOC_SPARC_TLS_TPOFF64: howto manager. (line 214)
+* BFD_RELOC_SPARC_UA16: howto manager. (line 145)
+* BFD_RELOC_SPARC_UA32: howto manager. (line 146)
+* BFD_RELOC_SPARC_UA64: howto manager. (line 147)
+* BFD_RELOC_SPARC_WDISP16: howto manager. (line 172)
+* BFD_RELOC_SPARC_WDISP19: howto manager. (line 173)
+* BFD_RELOC_SPARC_WDISP22: howto manager. (line 132)
+* BFD_RELOC_SPARC_WPLT30: howto manager. (line 140)
+* BFD_RELOC_SPU_ADD_PIC: howto manager. (line 231)
+* BFD_RELOC_SPU_HI16: howto manager. (line 228)
+* BFD_RELOC_SPU_IMM10: howto manager. (line 219)
+* BFD_RELOC_SPU_IMM10W: howto manager. (line 220)
+* BFD_RELOC_SPU_IMM16: howto manager. (line 221)
+* BFD_RELOC_SPU_IMM16W: howto manager. (line 222)
+* BFD_RELOC_SPU_IMM18: howto manager. (line 223)
+* BFD_RELOC_SPU_IMM7: howto manager. (line 217)
+* BFD_RELOC_SPU_IMM8: howto manager. (line 218)
+* BFD_RELOC_SPU_LO16: howto manager. (line 227)
+* BFD_RELOC_SPU_PCREL16: howto manager. (line 226)
+* BFD_RELOC_SPU_PCREL9a: howto manager. (line 224)
+* BFD_RELOC_SPU_PCREL9b: howto manager. (line 225)
+* BFD_RELOC_SPU_PPU32: howto manager. (line 229)
+* BFD_RELOC_SPU_PPU64: howto manager. (line 230)
+* BFD_RELOC_THUMB_PCREL_BLX: howto manager. (line 736)
+* BFD_RELOC_THUMB_PCREL_BRANCH12: howto manager. (line 750)
+* BFD_RELOC_THUMB_PCREL_BRANCH20: howto manager. (line 751)
+* BFD_RELOC_THUMB_PCREL_BRANCH23: howto manager. (line 752)
+* BFD_RELOC_THUMB_PCREL_BRANCH25: howto manager. (line 753)
+* BFD_RELOC_THUMB_PCREL_BRANCH7: howto manager. (line 748)
+* BFD_RELOC_THUMB_PCREL_BRANCH9: howto manager. (line 749)
+* BFD_RELOC_TIC30_LDP: howto manager. (line 1376)
+* BFD_RELOC_TIC54X_16_OF_23: howto manager. (line 1394)
+* BFD_RELOC_TIC54X_23: howto manager. (line 1391)
+* BFD_RELOC_TIC54X_MS7_OF_23: howto manager. (line 1399)
+* BFD_RELOC_TIC54X_PARTLS7: howto manager. (line 1381)
+* BFD_RELOC_TIC54X_PARTMS9: howto manager. (line 1386)
+* BFD_RELOC_TILEGX_BROFF_X1: howto manager. (line 2518)
+* BFD_RELOC_TILEGX_COPY: howto manager. (line 2514)
+* BFD_RELOC_TILEGX_DEST_IMM8_X1: howto manager. (line 2525)
+* BFD_RELOC_TILEGX_GLOB_DAT: howto manager. (line 2515)
+* BFD_RELOC_TILEGX_HW0: howto manager. (line 2507)
+* BFD_RELOC_TILEGX_HW0_LAST: howto manager. (line 2511)
+* BFD_RELOC_TILEGX_HW1: howto manager. (line 2508)
+* BFD_RELOC_TILEGX_HW1_LAST: howto manager. (line 2512)
+* BFD_RELOC_TILEGX_HW2: howto manager. (line 2509)
+* BFD_RELOC_TILEGX_HW2_LAST: howto manager. (line 2513)
+* BFD_RELOC_TILEGX_HW3: howto manager. (line 2510)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0: howto manager. (line 2534)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_GOT: howto manager. (line 2562)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST: howto manager. (line 2542)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_GOT: howto manager. (line 2570)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_PCREL: howto manager. (line 2556)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_GD: howto manager. (line 2584)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_LAST_TLS_IE: howto manager. (line 2598)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_PCREL: howto manager. (line 2548)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_GD: howto manager. (line 2576)
+* BFD_RELOC_TILEGX_IMM16_X0_HW0_TLS_IE: howto manager. (line 2590)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1: howto manager. (line 2536)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_GOT: howto manager. (line 2564)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST: howto manager. (line 2544)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_GOT: howto manager. (line 2572)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_PCREL: howto manager. (line 2558)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_GD: howto manager. (line 2586)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_LAST_TLS_IE: howto manager. (line 2600)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_PCREL: howto manager. (line 2550)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_GD: howto manager. (line 2578)
+* BFD_RELOC_TILEGX_IMM16_X0_HW1_TLS_IE: howto manager. (line 2592)
+* BFD_RELOC_TILEGX_IMM16_X0_HW2: howto manager. (line 2538)
+* BFD_RELOC_TILEGX_IMM16_X0_HW2_GOT: howto manager. (line 2566)
+* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST: howto manager. (line 2546)
+* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_GOT: howto manager. (line 2574)
+* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_PCREL: howto manager. (line 2560)
+* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_GD: howto manager. (line 2588)
+* BFD_RELOC_TILEGX_IMM16_X0_HW2_LAST_TLS_IE: howto manager. (line 2602)
+* BFD_RELOC_TILEGX_IMM16_X0_HW2_PCREL: howto manager. (line 2552)
+* BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_GD: howto manager. (line 2580)
+* BFD_RELOC_TILEGX_IMM16_X0_HW2_TLS_IE: howto manager. (line 2594)
+* BFD_RELOC_TILEGX_IMM16_X0_HW3: howto manager. (line 2540)
+* BFD_RELOC_TILEGX_IMM16_X0_HW3_GOT: howto manager. (line 2568)
+* BFD_RELOC_TILEGX_IMM16_X0_HW3_PCREL: howto manager. (line 2554)
+* BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_GD: howto manager. (line 2582)
+* BFD_RELOC_TILEGX_IMM16_X0_HW3_TLS_IE: howto manager. (line 2596)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0: howto manager. (line 2535)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_GOT: howto manager. (line 2563)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST: howto manager. (line 2543)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_GOT: howto manager. (line 2571)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_PCREL: howto manager. (line 2557)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_GD: howto manager. (line 2585)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_LAST_TLS_IE: howto manager. (line 2599)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_PCREL: howto manager. (line 2549)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_GD: howto manager. (line 2577)
+* BFD_RELOC_TILEGX_IMM16_X1_HW0_TLS_IE: howto manager. (line 2591)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1: howto manager. (line 2537)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_GOT: howto manager. (line 2565)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST: howto manager. (line 2545)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_GOT: howto manager. (line 2573)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_PCREL: howto manager. (line 2559)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_GD: howto manager. (line 2587)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_LAST_TLS_IE: howto manager. (line 2601)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_PCREL: howto manager. (line 2551)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_GD: howto manager. (line 2579)
+* BFD_RELOC_TILEGX_IMM16_X1_HW1_TLS_IE: howto manager. (line 2593)
+* BFD_RELOC_TILEGX_IMM16_X1_HW2: howto manager. (line 2539)
+* BFD_RELOC_TILEGX_IMM16_X1_HW2_GOT: howto manager. (line 2567)
+* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST: howto manager. (line 2547)
+* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_GOT: howto manager. (line 2575)
+* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_PCREL: howto manager. (line 2561)
+* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_GD: howto manager. (line 2589)
+* BFD_RELOC_TILEGX_IMM16_X1_HW2_LAST_TLS_IE: howto manager. (line 2603)
+* BFD_RELOC_TILEGX_IMM16_X1_HW2_PCREL: howto manager. (line 2553)
+* BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_GD: howto manager. (line 2581)
+* BFD_RELOC_TILEGX_IMM16_X1_HW2_TLS_IE: howto manager. (line 2595)
+* BFD_RELOC_TILEGX_IMM16_X1_HW3: howto manager. (line 2541)
+* BFD_RELOC_TILEGX_IMM16_X1_HW3_GOT: howto manager. (line 2569)
+* BFD_RELOC_TILEGX_IMM16_X1_HW3_PCREL: howto manager. (line 2555)
+* BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_GD: howto manager. (line 2583)
+* BFD_RELOC_TILEGX_IMM16_X1_HW3_TLS_IE: howto manager. (line 2597)
+* BFD_RELOC_TILEGX_IMM8_X0: howto manager. (line 2521)
+* BFD_RELOC_TILEGX_IMM8_X1: howto manager. (line 2523)
+* BFD_RELOC_TILEGX_IMM8_Y0: howto manager. (line 2522)
+* BFD_RELOC_TILEGX_IMM8_Y1: howto manager. (line 2524)
+* BFD_RELOC_TILEGX_JMP_SLOT: howto manager. (line 2516)
+* BFD_RELOC_TILEGX_JUMPOFF_X1: howto manager. (line 2519)
+* BFD_RELOC_TILEGX_JUMPOFF_X1_PLT: howto manager. (line 2520)
+* BFD_RELOC_TILEGX_MF_IMM14_X1: howto manager. (line 2527)
+* BFD_RELOC_TILEGX_MMEND_X0: howto manager. (line 2529)
+* BFD_RELOC_TILEGX_MMSTART_X0: howto manager. (line 2528)
+* BFD_RELOC_TILEGX_MT_IMM14_X1: howto manager. (line 2526)
+* BFD_RELOC_TILEGX_RELATIVE: howto manager. (line 2517)
+* BFD_RELOC_TILEGX_SHAMT_X0: howto manager. (line 2530)
+* BFD_RELOC_TILEGX_SHAMT_X1: howto manager. (line 2531)
+* BFD_RELOC_TILEGX_SHAMT_Y0: howto manager. (line 2532)
+* BFD_RELOC_TILEGX_SHAMT_Y1: howto manager. (line 2533)
+* BFD_RELOC_TILEGX_TLS_DTPMOD32: howto manager. (line 2607)
+* BFD_RELOC_TILEGX_TLS_DTPMOD64: howto manager. (line 2604)
+* BFD_RELOC_TILEGX_TLS_DTPOFF32: howto manager. (line 2608)
+* BFD_RELOC_TILEGX_TLS_DTPOFF64: howto manager. (line 2605)
+* BFD_RELOC_TILEGX_TLS_TPOFF32: howto manager. (line 2609)
+* BFD_RELOC_TILEGX_TLS_TPOFF64: howto manager. (line 2606)
+* BFD_RELOC_TILEPRO_BROFF_X1: howto manager. (line 2444)
+* BFD_RELOC_TILEPRO_COPY: howto manager. (line 2440)
+* BFD_RELOC_TILEPRO_DEST_IMM8_X1: howto manager. (line 2451)
+* BFD_RELOC_TILEPRO_GLOB_DAT: howto manager. (line 2441)
+* BFD_RELOC_TILEPRO_IMM16_X0: howto manager. (line 2454)
+* BFD_RELOC_TILEPRO_IMM16_X0_GOT: howto manager. (line 2470)
+* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HA: howto manager. (line 2476)
+* BFD_RELOC_TILEPRO_IMM16_X0_GOT_HI: howto manager. (line 2474)
+* BFD_RELOC_TILEPRO_IMM16_X0_GOT_LO: howto manager. (line 2472)
+* BFD_RELOC_TILEPRO_IMM16_X0_HA: howto manager. (line 2460)
+* BFD_RELOC_TILEPRO_IMM16_X0_HA_PCREL: howto manager. (line 2468)
+* BFD_RELOC_TILEPRO_IMM16_X0_HI: howto manager. (line 2458)
+* BFD_RELOC_TILEPRO_IMM16_X0_HI_PCREL: howto manager. (line 2466)
+* BFD_RELOC_TILEPRO_IMM16_X0_LO: howto manager. (line 2456)
+* BFD_RELOC_TILEPRO_IMM16_X0_LO_PCREL: howto manager. (line 2464)
+* BFD_RELOC_TILEPRO_IMM16_X0_PCREL: howto manager. (line 2462)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD: howto manager. (line 2486)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HA: howto manager. (line 2492)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_HI: howto manager. (line 2490)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_GD_LO: howto manager. (line 2488)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE: howto manager. (line 2494)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HA: howto manager. (line 2500)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_HI: howto manager. (line 2498)
+* BFD_RELOC_TILEPRO_IMM16_X0_TLS_IE_LO: howto manager. (line 2496)
+* BFD_RELOC_TILEPRO_IMM16_X1: howto manager. (line 2455)
+* BFD_RELOC_TILEPRO_IMM16_X1_GOT: howto manager. (line 2471)
+* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HA: howto manager. (line 2477)
+* BFD_RELOC_TILEPRO_IMM16_X1_GOT_HI: howto manager. (line 2475)
+* BFD_RELOC_TILEPRO_IMM16_X1_GOT_LO: howto manager. (line 2473)
+* BFD_RELOC_TILEPRO_IMM16_X1_HA: howto manager. (line 2461)
+* BFD_RELOC_TILEPRO_IMM16_X1_HA_PCREL: howto manager. (line 2469)
+* BFD_RELOC_TILEPRO_IMM16_X1_HI: howto manager. (line 2459)
+* BFD_RELOC_TILEPRO_IMM16_X1_HI_PCREL: howto manager. (line 2467)
+* BFD_RELOC_TILEPRO_IMM16_X1_LO: howto manager. (line 2457)
+* BFD_RELOC_TILEPRO_IMM16_X1_LO_PCREL: howto manager. (line 2465)
+* BFD_RELOC_TILEPRO_IMM16_X1_PCREL: howto manager. (line 2463)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD: howto manager. (line 2487)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HA: howto manager. (line 2493)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_HI: howto manager. (line 2491)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_GD_LO: howto manager. (line 2489)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE: howto manager. (line 2495)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HA: howto manager. (line 2501)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_HI: howto manager. (line 2499)
+* BFD_RELOC_TILEPRO_IMM16_X1_TLS_IE_LO: howto manager. (line 2497)
+* BFD_RELOC_TILEPRO_IMM8_X0: howto manager. (line 2447)
+* BFD_RELOC_TILEPRO_IMM8_X1: howto manager. (line 2449)
+* BFD_RELOC_TILEPRO_IMM8_Y0: howto manager. (line 2448)
+* BFD_RELOC_TILEPRO_IMM8_Y1: howto manager. (line 2450)
+* BFD_RELOC_TILEPRO_JMP_SLOT: howto manager. (line 2442)
+* BFD_RELOC_TILEPRO_JOFFLONG_X1: howto manager. (line 2445)
+* BFD_RELOC_TILEPRO_JOFFLONG_X1_PLT: howto manager. (line 2446)
+* BFD_RELOC_TILEPRO_MF_IMM15_X1: howto manager. (line 2453)
+* BFD_RELOC_TILEPRO_MMEND_X0: howto manager. (line 2479)
+* BFD_RELOC_TILEPRO_MMEND_X1: howto manager. (line 2481)
+* BFD_RELOC_TILEPRO_MMSTART_X0: howto manager. (line 2478)
+* BFD_RELOC_TILEPRO_MMSTART_X1: howto manager. (line 2480)
+* BFD_RELOC_TILEPRO_MT_IMM15_X1: howto manager. (line 2452)
+* BFD_RELOC_TILEPRO_RELATIVE: howto manager. (line 2443)
+* BFD_RELOC_TILEPRO_SHAMT_X0: howto manager. (line 2482)
+* BFD_RELOC_TILEPRO_SHAMT_X1: howto manager. (line 2483)
+* BFD_RELOC_TILEPRO_SHAMT_Y0: howto manager. (line 2484)
+* BFD_RELOC_TILEPRO_SHAMT_Y1: howto manager. (line 2485)
+* BFD_RELOC_TILEPRO_TLS_DTPMOD32: howto manager. (line 2502)
+* BFD_RELOC_TILEPRO_TLS_DTPOFF32: howto manager. (line 2503)
+* BFD_RELOC_TILEPRO_TLS_TPOFF32: howto manager. (line 2504)
+* bfd_reloc_type_lookup: howto manager. (line 2613)
+* BFD_RELOC_V850_16_GOT: howto manager. (line 1332)
+* BFD_RELOC_V850_16_GOTOFF: howto manager. (line 1356)
+* BFD_RELOC_V850_16_PCREL: howto manager. (line 1302)
+* BFD_RELOC_V850_16_S1: howto manager. (line 1320)
+* BFD_RELOC_V850_16_SPLIT_OFFSET: howto manager. (line 1317)
+* BFD_RELOC_V850_17_PCREL: howto manager. (line 1305)
+* BFD_RELOC_V850_22_PCREL: howto manager. (line 1237)
+* BFD_RELOC_V850_22_PLT_PCREL: howto manager. (line 1338)
+* BFD_RELOC_V850_23: howto manager. (line 1308)
+* BFD_RELOC_V850_32_ABS: howto manager. (line 1314)
+* BFD_RELOC_V850_32_GOT: howto manager. (line 1335)
+* BFD_RELOC_V850_32_GOTOFF: howto manager. (line 1359)
+* BFD_RELOC_V850_32_GOTPCREL: howto manager. (line 1329)
+* BFD_RELOC_V850_32_PCREL: howto manager. (line 1311)
+* BFD_RELOC_V850_32_PLT_PCREL: howto manager. (line 1341)
+* BFD_RELOC_V850_9_PCREL: howto manager. (line 1234)
+* BFD_RELOC_V850_ALIGN: howto manager. (line 1295)
+* BFD_RELOC_V850_CALLT_15_16_OFFSET: howto manager. (line 1326)
+* BFD_RELOC_V850_CALLT_16_16_OFFSET: howto manager. (line 1286)
+* BFD_RELOC_V850_CALLT_6_7_OFFSET: howto manager. (line 1283)
+* BFD_RELOC_V850_CODE: howto manager. (line 1362)
+* BFD_RELOC_V850_COPY: howto manager. (line 1344)
+* BFD_RELOC_V850_DATA: howto manager. (line 1365)
+* BFD_RELOC_V850_GLOB_DAT: howto manager. (line 1347)
+* BFD_RELOC_V850_JMP_SLOT: howto manager. (line 1350)
+* BFD_RELOC_V850_LO16_S1: howto manager. (line 1323)
+* BFD_RELOC_V850_LO16_SPLIT_OFFSET: howto manager. (line 1298)
+* BFD_RELOC_V850_LONGCALL: howto manager. (line 1289)
+* BFD_RELOC_V850_LONGJUMP: howto manager. (line 1292)
+* BFD_RELOC_V850_RELATIVE: howto manager. (line 1353)
+* BFD_RELOC_V850_SDA_15_16_OFFSET: howto manager. (line 1243)
+* BFD_RELOC_V850_SDA_16_16_OFFSET: howto manager. (line 1240)
+* BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager. (line 1275)
+* BFD_RELOC_V850_TDA_16_16_OFFSET: howto manager. (line 1265)
+* BFD_RELOC_V850_TDA_4_4_OFFSET: howto manager. (line 1272)
+* BFD_RELOC_V850_TDA_4_5_OFFSET: howto manager. (line 1268)
+* BFD_RELOC_V850_TDA_6_8_OFFSET: howto manager. (line 1254)
+* BFD_RELOC_V850_TDA_7_7_OFFSET: howto manager. (line 1262)
+* BFD_RELOC_V850_TDA_7_8_OFFSET: howto manager. (line 1258)
+* BFD_RELOC_V850_ZDA_15_16_OFFSET: howto manager. (line 1250)
+* BFD_RELOC_V850_ZDA_16_16_OFFSET: howto manager. (line 1247)
+* BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager. (line 1279)
+* BFD_RELOC_VAX_GLOB_DAT: howto manager. (line 2206)
+* BFD_RELOC_VAX_JMP_SLOT: howto manager. (line 2207)
+* BFD_RELOC_VAX_RELATIVE: howto manager. (line 2208)
+* BFD_RELOC_VPE4KMATH_DATA: howto manager. (line 1845)
+* BFD_RELOC_VPE4KMATH_INSN: howto manager. (line 1846)
+* BFD_RELOC_VTABLE_ENTRY: howto manager. (line 1850)
+* BFD_RELOC_VTABLE_INHERIT: howto manager. (line 1849)
+* BFD_RELOC_X86_64_32S: howto manager. (line 571)
+* BFD_RELOC_X86_64_COPY: howto manager. (line 566)
+* BFD_RELOC_X86_64_DTPMOD64: howto manager. (line 572)
+* BFD_RELOC_X86_64_DTPOFF32: howto manager. (line 577)
+* BFD_RELOC_X86_64_DTPOFF64: howto manager. (line 573)
+* BFD_RELOC_X86_64_GLOB_DAT: howto manager. (line 567)
+* BFD_RELOC_X86_64_GOT32: howto manager. (line 564)
+* BFD_RELOC_X86_64_GOT64: howto manager. (line 582)
+* BFD_RELOC_X86_64_GOTOFF64: howto manager. (line 580)
+* BFD_RELOC_X86_64_GOTPC32: howto manager. (line 581)
+* BFD_RELOC_X86_64_GOTPC32_TLSDESC: howto manager. (line 587)
+* BFD_RELOC_X86_64_GOTPC64: howto manager. (line 584)
+* BFD_RELOC_X86_64_GOTPCREL: howto manager. (line 570)
+* BFD_RELOC_X86_64_GOTPCREL64: howto manager. (line 583)
+* BFD_RELOC_X86_64_GOTPLT64: howto manager. (line 585)
+* BFD_RELOC_X86_64_GOTTPOFF: howto manager. (line 578)
+* BFD_RELOC_X86_64_IRELATIVE: howto manager. (line 590)
+* BFD_RELOC_X86_64_JUMP_SLOT: howto manager. (line 568)
+* BFD_RELOC_X86_64_PLT32: howto manager. (line 565)
+* BFD_RELOC_X86_64_PLTOFF64: howto manager. (line 586)
+* BFD_RELOC_X86_64_RELATIVE: howto manager. (line 569)
+* BFD_RELOC_X86_64_TLSDESC: howto manager. (line 589)
+* BFD_RELOC_X86_64_TLSDESC_CALL: howto manager. (line 588)
+* BFD_RELOC_X86_64_TLSGD: howto manager. (line 575)
+* BFD_RELOC_X86_64_TLSLD: howto manager. (line 576)
+* BFD_RELOC_X86_64_TPOFF32: howto manager. (line 579)
+* BFD_RELOC_X86_64_TPOFF64: howto manager. (line 574)
+* BFD_RELOC_XC16X_PAG: howto manager. (line 2200)
+* BFD_RELOC_XC16X_POF: howto manager. (line 2201)
+* BFD_RELOC_XC16X_SEG: howto manager. (line 2202)
+* BFD_RELOC_XC16X_SOF: howto manager. (line 2203)
+* BFD_RELOC_XSTORMY16_12: howto manager. (line 2192)
+* BFD_RELOC_XSTORMY16_24: howto manager. (line 2193)
+* BFD_RELOC_XSTORMY16_FPTR16: howto manager. (line 2194)
+* BFD_RELOC_XSTORMY16_REL_12: howto manager. (line 2191)
+* BFD_RELOC_XTENSA_ASM_EXPAND: howto manager. (line 2312)
+* BFD_RELOC_XTENSA_ASM_SIMPLIFY: howto manager. (line 2317)
+* BFD_RELOC_XTENSA_DIFF16: howto manager. (line 2259)
+* BFD_RELOC_XTENSA_DIFF32: howto manager. (line 2260)
+* BFD_RELOC_XTENSA_DIFF8: howto manager. (line 2258)
+* BFD_RELOC_XTENSA_GLOB_DAT: howto manager. (line 2248)
+* BFD_RELOC_XTENSA_JMP_SLOT: howto manager. (line 2249)
+* BFD_RELOC_XTENSA_OP0: howto manager. (line 2306)
+* BFD_RELOC_XTENSA_OP1: howto manager. (line 2307)
+* BFD_RELOC_XTENSA_OP2: howto manager. (line 2308)
+* BFD_RELOC_XTENSA_PLT: howto manager. (line 2253)
+* BFD_RELOC_XTENSA_RELATIVE: howto manager. (line 2250)
+* BFD_RELOC_XTENSA_RTLD: howto manager. (line 2243)
+* BFD_RELOC_XTENSA_SLOT0_ALT: howto manager. (line 2288)
+* BFD_RELOC_XTENSA_SLOT0_OP: howto manager. (line 2268)
+* BFD_RELOC_XTENSA_SLOT10_ALT: howto manager. (line 2298)
+* BFD_RELOC_XTENSA_SLOT10_OP: howto manager. (line 2278)
+* BFD_RELOC_XTENSA_SLOT11_ALT: howto manager. (line 2299)
+* BFD_RELOC_XTENSA_SLOT11_OP: howto manager. (line 2279)
+* BFD_RELOC_XTENSA_SLOT12_ALT: howto manager. (line 2300)
+* BFD_RELOC_XTENSA_SLOT12_OP: howto manager. (line 2280)
+* BFD_RELOC_XTENSA_SLOT13_ALT: howto manager. (line 2301)
+* BFD_RELOC_XTENSA_SLOT13_OP: howto manager. (line 2281)
+* BFD_RELOC_XTENSA_SLOT14_ALT: howto manager. (line 2302)
+* BFD_RELOC_XTENSA_SLOT14_OP: howto manager. (line 2282)
+* BFD_RELOC_XTENSA_SLOT1_ALT: howto manager. (line 2289)
+* BFD_RELOC_XTENSA_SLOT1_OP: howto manager. (line 2269)
+* BFD_RELOC_XTENSA_SLOT2_ALT: howto manager. (line 2290)
+* BFD_RELOC_XTENSA_SLOT2_OP: howto manager. (line 2270)
+* BFD_RELOC_XTENSA_SLOT3_ALT: howto manager. (line 2291)
+* BFD_RELOC_XTENSA_SLOT3_OP: howto manager. (line 2271)
+* BFD_RELOC_XTENSA_SLOT4_ALT: howto manager. (line 2292)
+* BFD_RELOC_XTENSA_SLOT4_OP: howto manager. (line 2272)
+* BFD_RELOC_XTENSA_SLOT5_ALT: howto manager. (line 2293)
+* BFD_RELOC_XTENSA_SLOT5_OP: howto manager. (line 2273)
+* BFD_RELOC_XTENSA_SLOT6_ALT: howto manager. (line 2294)
+* BFD_RELOC_XTENSA_SLOT6_OP: howto manager. (line 2274)
+* BFD_RELOC_XTENSA_SLOT7_ALT: howto manager. (line 2295)
+* BFD_RELOC_XTENSA_SLOT7_OP: howto manager. (line 2275)
+* BFD_RELOC_XTENSA_SLOT8_ALT: howto manager. (line 2296)
+* BFD_RELOC_XTENSA_SLOT8_OP: howto manager. (line 2276)
+* BFD_RELOC_XTENSA_SLOT9_ALT: howto manager. (line 2297)
+* BFD_RELOC_XTENSA_SLOT9_OP: howto manager. (line 2277)
+* BFD_RELOC_XTENSA_TLS_ARG: howto manager. (line 2327)
+* BFD_RELOC_XTENSA_TLS_CALL: howto manager. (line 2328)
+* BFD_RELOC_XTENSA_TLS_DTPOFF: howto manager. (line 2324)
+* BFD_RELOC_XTENSA_TLS_FUNC: howto manager. (line 2326)
+* BFD_RELOC_XTENSA_TLS_TPOFF: howto manager. (line 2325)
+* BFD_RELOC_XTENSA_TLSDESC_ARG: howto manager. (line 2323)
+* BFD_RELOC_XTENSA_TLSDESC_FN: howto manager. (line 2322)
+* BFD_RELOC_Z80_DISP8: howto manager. (line 2331)
+* BFD_RELOC_Z8K_CALLR: howto manager. (line 2337)
+* BFD_RELOC_Z8K_DISP7: howto manager. (line 2334)
+* BFD_RELOC_Z8K_IMM4L: howto manager. (line 2340)
+* bfd_rename_section: section prototypes. (line 155)
+* bfd_scan_arch: Architectures. (line 456)
+* bfd_scan_vma: BFD front end. (line 535)
+* bfd_seach_for_target: bfd_target. (line 519)
+* bfd_section_already_linked: Writing the symbol table.
+ (line 55)
+* bfd_section_list_clear: section prototypes. (line 8)
+* bfd_sections_find_if: section prototypes. (line 185)
+* bfd_set_arch_info: Architectures. (line 497)
+* bfd_set_archive_head: Archives. (line 69)
+* bfd_set_default_target: bfd_target. (line 458)
+* bfd_set_error: BFD front end. (line 345)
+* bfd_set_error_handler: BFD front end. (line 387)
+* bfd_set_error_program_name: BFD front end. (line 396)
+* bfd_set_file_flags: BFD front end. (line 455)
+* bfd_set_format: Formats. (line 68)
+* bfd_set_gp_size: BFD front end. (line 525)
+* bfd_set_private_flags: BFD front end. (line 602)
+* bfd_set_reloc: BFD front end. (line 445)
+* bfd_set_section_contents: section prototypes. (line 216)
+* bfd_set_section_flags: section prototypes. (line 140)
+* bfd_set_section_size: section prototypes. (line 202)
+* bfd_set_start_address: BFD front end. (line 504)
+* bfd_set_symtab: symbol handling functions.
+ (line 60)
+* bfd_symbol_info: symbol handling functions.
+ (line 130)
+* bfd_target_list: bfd_target. (line 510)
+* bfd_write_bigendian_4byte_int: Internal. (line 13)
+* bfd_zalloc: Opening and Closing.
+ (line 232)
+* bfd_zalloc2: Opening and Closing.
+ (line 241)
+* coff_symbol_type: coff. (line 244)
+* core_file_matches_executable_p: Core Files. (line 39)
+* find_separate_debug_file: Opening and Closing.
+ (line 283)
+* generic_core_file_matches_executable_p: Core Files. (line 49)
+* get_debug_link_info: Opening and Closing.
+ (line 264)
+* Hash tables: Hash Tables. (line 6)
+* internal object-file format: Canonical format. (line 11)
+* Linker: Linker Functions. (line 6)
+* Other functions: BFD front end. (line 617)
+* separate_debug_file_exists: Opening and Closing.
+ (line 274)
+* struct bfd_iovec: BFD front end. (line 823)
+* target vector (_bfd_final_link): Performing the Final Link.
+ (line 6)
+* target vector (_bfd_link_add_symbols): Adding Symbols to the Hash Table.
+ (line 6)
+* target vector (_bfd_link_hash_table_create): Creating a Linker Hash Table.
+ (line 6)
+* The HOWTO Macro: typedef arelent. (line 288)
+* what is it?: Overview. (line 6)
+
+
+
+Tag Table:
+Node: Top1089
+Node: Overview1428
+Node: History2479
+Node: How It Works3425
+Node: What BFD Version 2 Can Do4968
+Node: BFD information loss6283
+Node: Canonical format8815
+Node: BFD front end13187
+Node: Memory Usage46098
+Node: Initialization47326
+Node: Sections47785
+Node: Section Input48268
+Node: Section Output49633
+Node: typedef asection52119
+Node: section prototypes77989
+Node: Symbols87884
+Node: Reading Symbols89479
+Node: Writing Symbols90586
+Node: Mini Symbols92295
+Node: typedef asymbol93269
+Node: symbol handling functions99328
+Node: Archives104670
+Node: Formats108396
+Node: Relocations111344
+Node: typedef arelent112071
+Node: howto manager127707
+Node: Core Files212506
+Node: Targets214544
+Node: bfd_target216514
+Node: Architectures239404
+Node: Opening and Closing263894
+Node: Internal275350
+Node: File Caching281695
+Node: Linker Functions283609
+Node: Creating a Linker Hash Table285282
+Node: Adding Symbols to the Hash Table287020
+Node: Differing file formats287920
+Node: Adding symbols from an object file289645
+Node: Adding symbols from an archive291796
+Node: Performing the Final Link294725
+Node: Information provided by the linker295967
+Node: Relocating the section contents297121
+Node: Writing the symbol table298872
+Node: Hash Tables303258
+Node: Creating and Freeing a Hash Table304456
+Node: Looking Up or Entering a String305706
+Node: Traversing a Hash Table306959
+Node: Deriving a New Hash Table Type307748
+Node: Define the Derived Structures308814
+Node: Write the Derived Creation Routine309895
+Node: Write Other Derived Routines312519
+Node: BFD back ends313834
+Node: What to Put Where314104
+Node: aout314284
+Node: coff320602
+Node: elf349035
+Node: mmo349436
+Node: File layout350364
+Node: Symbol-table356011
+Node: mmo section mapping359780
+Node: GNU Free Documentation License363432
+Node: BFD Index388515
+
+End Tag Table
diff --git a/bfd/po/da.gmo b/bfd/po/da.gmo
new file mode 100644
index 0000000000..deb4565597
--- /dev/null
+++ b/bfd/po/da.gmo
Binary files differ
diff --git a/bfd/po/es.gmo b/bfd/po/es.gmo
new file mode 100644
index 0000000000..2d9b415b84
--- /dev/null
+++ b/bfd/po/es.gmo
Binary files differ
diff --git a/bfd/po/fi.gmo b/bfd/po/fi.gmo
new file mode 100644
index 0000000000..44bca56ab2
--- /dev/null
+++ b/bfd/po/fi.gmo
Binary files differ
diff --git a/bfd/po/fr.gmo b/bfd/po/fr.gmo
new file mode 100644
index 0000000000..2a73a53114
--- /dev/null
+++ b/bfd/po/fr.gmo
Binary files differ
diff --git a/bfd/po/id.gmo b/bfd/po/id.gmo
new file mode 100644
index 0000000000..46b2f30394
--- /dev/null
+++ b/bfd/po/id.gmo
Binary files differ
diff --git a/bfd/po/ja.gmo b/bfd/po/ja.gmo
new file mode 100644
index 0000000000..d887a711e2
--- /dev/null
+++ b/bfd/po/ja.gmo
Binary files differ
diff --git a/bfd/po/ro.gmo b/bfd/po/ro.gmo
new file mode 100644
index 0000000000..8621928313
--- /dev/null
+++ b/bfd/po/ro.gmo
Binary files differ
diff --git a/bfd/po/ru.gmo b/bfd/po/ru.gmo
new file mode 100644
index 0000000000..2086367723
--- /dev/null
+++ b/bfd/po/ru.gmo
Binary files differ
diff --git a/bfd/po/rw.gmo b/bfd/po/rw.gmo
new file mode 100644
index 0000000000..49d9e2fd45
--- /dev/null
+++ b/bfd/po/rw.gmo
Binary files differ
diff --git a/bfd/po/sv.gmo b/bfd/po/sv.gmo
new file mode 100644
index 0000000000..e746ec02e7
--- /dev/null
+++ b/bfd/po/sv.gmo
Binary files differ
diff --git a/bfd/po/tr.gmo b/bfd/po/tr.gmo
new file mode 100644
index 0000000000..74c0ea8fc2
--- /dev/null
+++ b/bfd/po/tr.gmo
Binary files differ
diff --git a/bfd/po/vi.gmo b/bfd/po/vi.gmo
new file mode 100644
index 0000000000..0c9ed17d8b
--- /dev/null
+++ b/bfd/po/vi.gmo
Binary files differ
diff --git a/bfd/po/zh_CN.gmo b/bfd/po/zh_CN.gmo
new file mode 100644
index 0000000000..65998865d3
--- /dev/null
+++ b/bfd/po/zh_CN.gmo
Binary files differ
diff --git a/binutils/doc/binutils.info b/binutils/doc/binutils.info
new file mode 100644
index 0000000000..5146edc698
--- /dev/null
+++ b/binutils/doc/binutils.info
@@ -0,0 +1,4726 @@
+This is binutils.info, produced by makeinfo version 4.8 from
+binutils.texi.
+
+ Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+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.3 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".
+
+INFO-DIR-SECTION Software development
+START-INFO-DIR-ENTRY
+* Binutils: (binutils). The GNU binary utilities.
+END-INFO-DIR-ENTRY
+
+INFO-DIR-SECTION Individual utilities
+START-INFO-DIR-ENTRY
+* addr2line: (binutils)addr2line. Convert addresses to file and line.
+* ar: (binutils)ar. Create, modify, and extract from archives.
+* c++filt: (binutils)c++filt. Filter to demangle encoded C++ symbols.
+* cxxfilt: (binutils)c++filt. MS-DOS name for c++filt.
+* dlltool: (binutils)dlltool. Create files needed to build and use DLLs.
+* nlmconv: (binutils)nlmconv. Converts object code into an NLM.
+* nm: (binutils)nm. List symbols from object files.
+* objcopy: (binutils)objcopy. Copy and translate object files.
+* objdump: (binutils)objdump. Display information from object files.
+* ranlib: (binutils)ranlib. Generate index to archive contents.
+* readelf: (binutils)readelf. Display the contents of ELF format files.
+* size: (binutils)size. List section sizes and total size.
+* strings: (binutils)strings. List printable strings from files.
+* strip: (binutils)strip. Discard symbols.
+* elfedit: (binutils)elfedit. Update the ELF header of ELF files.
+* windmc: (binutils)windmc. Generator for Windows message resources.
+* windres: (binutils)windres. Manipulate Windows resources.
+END-INFO-DIR-ENTRY
+
+
+File: binutils.info, Node: Top, Next: ar, Up: (dir)
+
+Introduction
+************
+
+This brief manual contains documentation for the GNU binary utilities
+(GNU Binutils) version 2.21.90:
+
+ This document is distributed under the terms of the GNU Free
+Documentation License version 1.3. A copy of the license is included
+in the section entitled "GNU Free Documentation License".
+
+* Menu:
+
+* ar:: Create, modify, and extract from archives
+* nm:: List symbols from object files
+* objcopy:: Copy and translate object files
+* objdump:: Display information from object files
+* ranlib:: Generate index to archive contents
+* readelf:: Display the contents of ELF format files
+* size:: List section sizes and total size
+* strings:: List printable strings from files
+* strip:: Discard symbols
+* elfedit:: Update the ELF header of ELF files
+* c++filt:: Filter to demangle encoded C++ symbols
+* cxxfilt: c++filt. MS-DOS name for c++filt
+* addr2line:: Convert addresses to file and line
+* nlmconv:: Converts object code into an NLM
+* windres:: Manipulate Windows resources
+* windmc:: Generator for Windows message resources
+* dlltool:: Create files needed to build and use DLLs
+* Common Options:: Command-line options for all utilities
+* Selecting the Target System:: How these utilities determine the target
+* Reporting Bugs:: Reporting Bugs
+* GNU Free Documentation License:: GNU Free Documentation License
+* Binutils Index:: Binutils Index
+
+
+File: binutils.info, Node: ar, Next: nm, Prev: Top, Up: Top
+
+1 ar
+****
+
+ ar [`--plugin' NAME] [-]P[MOD [RELPOS] [COUNT]] [`--target' BFDNAME] ARCHIVE [MEMBER...]
+ ar -M [ <mri-script ]
+
+ The GNU `ar' program creates, modifies, and extracts from archives.
+An "archive" is a single file holding a collection of other files in a
+structure that makes it possible to retrieve the original individual
+files (called "members" of the archive).
+
+ The original files' contents, mode (permissions), timestamp, owner,
+and group are preserved in the archive, and can be restored on
+extraction.
+
+ GNU `ar' can maintain archives whose members have names of any
+length; however, depending on how `ar' is configured on your system, a
+limit on member-name length may be imposed for compatibility with
+archive formats maintained with other tools. If it exists, the limit
+is often 15 characters (typical of formats related to a.out) or 16
+characters (typical of formats related to coff).
+
+ `ar' is considered a binary utility because archives of this sort
+are most often used as "libraries" holding commonly needed subroutines.
+
+ `ar' creates an index to the symbols defined in relocatable object
+modules in the archive when you specify the modifier `s'. Once
+created, this index is updated in the archive whenever `ar' makes a
+change to its contents (save for the `q' update operation). An archive
+with such an index speeds up linking to the library, and allows
+routines in the library to call each other without regard to their
+placement in the archive.
+
+ You may use `nm -s' or `nm --print-armap' to list this index table.
+If an archive lacks the table, another form of `ar' called `ranlib' can
+be used to add just the table.
+
+ GNU `ar' can optionally create a _thin_ archive, which contains a
+symbol index and references to the original copies of the member files
+of the archives. Such an archive is useful for building libraries for
+use within a local build, where the relocatable objects are expected to
+remain available, and copying the contents of each object would only
+waste time and space. Thin archives are also _flattened_, so that
+adding one or more archives to a thin archive will add the elements of
+the nested archive individually. The paths to the elements of the
+archive are stored relative to the archive itself.
+
+ GNU `ar' is designed to be compatible with two different facilities.
+You can control its activity using command-line options, like the
+different varieties of `ar' on Unix systems; or, if you specify the
+single command-line option `-M', you can control it with a script
+supplied via standard input, like the MRI "librarian" program.
+
+* Menu:
+
+* ar cmdline:: Controlling `ar' on the command line
+* ar scripts:: Controlling `ar' with a script
+
+
+File: binutils.info, Node: ar cmdline, Next: ar scripts, Up: ar
+
+1.1 Controlling `ar' on the Command Line
+========================================
+
+ ar [`--plugin' NAME] [`-X32_64'] [`-']P[MOD [RELPOS] [COUNT]] [`--target' BFDNAME] ARCHIVE [MEMBER...]
+
+ When you use `ar' in the Unix style, `ar' insists on at least two
+arguments to execute: one keyletter specifying the _operation_
+(optionally accompanied by other keyletters specifying _modifiers_),
+and the archive name to act on.
+
+ Most operations can also accept further MEMBER arguments, specifying
+particular files to operate on.
+
+ GNU `ar' allows you to mix the operation code P and modifier flags
+MOD in any order, within the first command-line argument.
+
+ If you wish, you may begin the first command-line argument with a
+dash.
+
+ The P keyletter specifies what operation to execute; it may be any
+of the following, but you must specify only one of them:
+
+`d'
+ _Delete_ modules from the archive. Specify the names of modules to
+ be deleted as MEMBER...; the archive is untouched if you specify
+ no files to delete.
+
+ If you specify the `v' modifier, `ar' lists each module as it is
+ deleted.
+
+`m'
+ Use this operation to _move_ members in an archive.
+
+ The ordering of members in an archive can make a difference in how
+ programs are linked using the library, if a symbol is defined in
+ more than one member.
+
+ If no modifiers are used with `m', any members you name in the
+ MEMBER arguments are moved to the _end_ of the archive; you can
+ use the `a', `b', or `i' modifiers to move them to a specified
+ place instead.
+
+`p'
+ _Print_ the specified members of the archive, to the standard
+ output file. If the `v' modifier is specified, show the member
+ name before copying its contents to standard output.
+
+ If you specify no MEMBER arguments, all the files in the archive
+ are printed.
+
+`q'
+ _Quick append_; Historically, add the files MEMBER... to the end of
+ ARCHIVE, without checking for replacement.
+
+ The modifiers `a', `b', and `i' do _not_ affect this operation;
+ new members are always placed at the end of the archive.
+
+ The modifier `v' makes `ar' list each file as it is appended.
+
+ Since the point of this operation is speed, the archive's symbol
+ table index is not updated, even if it already existed; you can
+ use `ar s' or `ranlib' explicitly to update the symbol table index.
+
+ However, too many different systems assume quick append rebuilds
+ the index, so GNU `ar' implements `q' as a synonym for `r'.
+
+`r'
+ Insert the files MEMBER... into ARCHIVE (with _replacement_). This
+ operation differs from `q' in that any previously existing members
+ are deleted if their names match those being added.
+
+ If one of the files named in MEMBER... does not exist, `ar'
+ displays an error message, and leaves undisturbed any existing
+ members of the archive matching that name.
+
+ By default, new members are added at the end of the file; but you
+ may use one of the modifiers `a', `b', or `i' to request placement
+ relative to some existing member.
+
+ The modifier `v' used with this operation elicits a line of output
+ for each file inserted, along with one of the letters `a' or `r'
+ to indicate whether the file was appended (no old member deleted)
+ or replaced.
+
+`s'
+ Add an index to the archive, or update it if it already exists.
+ Note this command is an exception to the rule that there can only
+ be one command letter, as it is possible to use it as either a
+ command or a modifier. In either case it does the same thing.
+
+`t'
+ Display a _table_ listing the contents of ARCHIVE, or those of the
+ files listed in MEMBER... that are present in the archive.
+ Normally only the member name is shown; if you also want to see
+ the modes (permissions), timestamp, owner, group, and size, you can
+ request that by also specifying the `v' modifier.
+
+ If you do not specify a MEMBER, all files in the archive are
+ listed.
+
+ If there is more than one file with the same name (say, `fie') in
+ an archive (say `b.a'), `ar t b.a fie' lists only the first
+ instance; to see them all, you must ask for a complete listing--in
+ our example, `ar t b.a'.
+
+`x'
+ _Extract_ members (named MEMBER) from the archive. You can use
+ the `v' modifier with this operation, to request that `ar' list
+ each name as it extracts it.
+
+ If you do not specify a MEMBER, all files in the archive are
+ extracted.
+
+ Files cannot be extracted from a thin archive.
+
+`--help'
+ Displays the list of command line options supported by `ar' and
+ then exits.
+
+`--version'
+ Displays the version information of `ar' and then exits.
+
+
+ A number of modifiers (MOD) may immediately follow the P keyletter,
+to specify variations on an operation's behavior:
+
+`a'
+ Add new files _after_ an existing member of the archive. If you
+ use the modifier `a', the name of an existing archive member must
+ be present as the RELPOS argument, before the ARCHIVE
+ specification.
+
+`b'
+ Add new files _before_ an existing member of the archive. If you
+ use the modifier `b', the name of an existing archive member must
+ be present as the RELPOS argument, before the ARCHIVE
+ specification. (same as `i').
+
+`c'
+ _Create_ the archive. The specified ARCHIVE is always created if
+ it did not exist, when you request an update. But a warning is
+ issued unless you specify in advance that you expect to create it,
+ by using this modifier.
+
+`D'
+ Operate in _deterministic_ mode. When adding files and the archive
+ index use zero for UIDs, GIDs, timestamps, and use consistent file
+ modes for all files. When this option is used, if `ar' is used
+ with identical options and identical input files, multiple runs
+ will create identical output files regardless of the input files'
+ owners, groups, file modes, or modification times.
+
+`f'
+ Truncate names in the archive. GNU `ar' will normally permit file
+ names of any length. This will cause it to create archives which
+ are not compatible with the native `ar' program on some systems.
+ If this is a concern, the `f' modifier may be used to truncate file
+ names when putting them in the archive.
+
+`i'
+ Insert new files _before_ an existing member of the archive. If
+ you use the modifier `i', the name of an existing archive member
+ must be present as the RELPOS argument, before the ARCHIVE
+ specification. (same as `b').
+
+`l'
+ This modifier is accepted but not used.
+
+`N'
+ Uses the COUNT parameter. This is used if there are multiple
+ entries in the archive with the same name. Extract or delete
+ instance COUNT of the given name from the archive.
+
+`o'
+ Preserve the _original_ dates of members when extracting them. If
+ you do not specify this modifier, files extracted from the archive
+ are stamped with the time of extraction.
+
+`P'
+ Use the full path name when matching names in the archive. GNU
+ `ar' can not create an archive with a full path name (such archives
+ are not POSIX complaint), but other archive creators can. This
+ option will cause GNU `ar' to match file names using a complete
+ path name, which can be convenient when extracting a single file
+ from an archive created by another tool.
+
+`s'
+ Write an object-file index into the archive, or update an existing
+ one, even if no other change is made to the archive. You may use
+ this modifier flag either with any operation, or alone. Running
+ `ar s' on an archive is equivalent to running `ranlib' on it.
+
+`S'
+ Do not generate an archive symbol table. This can speed up
+ building a large library in several steps. The resulting archive
+ can not be used with the linker. In order to build a symbol
+ table, you must omit the `S' modifier on the last execution of
+ `ar', or you must run `ranlib' on the archive.
+
+`T'
+ Make the specified ARCHIVE a _thin_ archive. If it already exists
+ and is a regular archive, the existing members must be present in
+ the same directory as ARCHIVE.
+
+`u'
+ Normally, `ar r'... inserts all files listed into the archive. If
+ you would like to insert _only_ those of the files you list that
+ are newer than existing members of the same names, use this
+ modifier. The `u' modifier is allowed only for the operation `r'
+ (replace). In particular, the combination `qu' is not allowed,
+ since checking the timestamps would lose any speed advantage from
+ the operation `q'.
+
+`v'
+ This modifier requests the _verbose_ version of an operation. Many
+ operations display additional information, such as filenames
+ processed, when the modifier `v' is appended.
+
+`V'
+ This modifier shows the version number of `ar'.
+
+ `ar' ignores an initial option spelt `-X32_64', for compatibility
+with AIX. The behaviour produced by this option is the default for GNU
+`ar'. `ar' does not support any of the other `-X' options; in
+particular, it does not support `-X32' which is the default for AIX
+`ar'.
+
+ The optional command line switch `--plugin' NAME causes `ar' to load
+the plugin called NAME which adds support for more file formats. This
+option is only available if the toolchain has been built with plugin
+support enabled.
+
+ The optional command line switch `--target' BFDNAME specifies that
+the archive members are in an object code format different from your
+system's default format. See *Note Target Selection::, for more
+information.
+
+
+File: binutils.info, Node: ar scripts, Prev: ar cmdline, Up: ar
+
+1.2 Controlling `ar' with a Script
+==================================
+
+ ar -M [ <SCRIPT ]
+
+ If you use the single command-line option `-M' with `ar', you can
+control its operation with a rudimentary command language. This form
+of `ar' operates interactively if standard input is coming directly
+from a terminal. During interactive use, `ar' prompts for input (the
+prompt is `AR >'), and continues executing even after errors. If you
+redirect standard input to a script file, no prompts are issued, and
+`ar' abandons execution (with a nonzero exit code) on any error.
+
+ The `ar' command language is _not_ designed to be equivalent to the
+command-line options; in fact, it provides somewhat less control over
+archives. The only purpose of the command language is to ease the
+transition to GNU `ar' for developers who already have scripts written
+for the MRI "librarian" program.
+
+ The syntax for the `ar' command language is straightforward:
+ * commands are recognized in upper or lower case; for example, `LIST'
+ is the same as `list'. In the following descriptions, commands are
+ shown in upper case for clarity.
+
+ * a single command may appear on each line; it is the first word on
+ the line.
+
+ * empty lines are allowed, and have no effect.
+
+ * comments are allowed; text after either of the characters `*' or
+ `;' is ignored.
+
+ * Whenever you use a list of names as part of the argument to an `ar'
+ command, you can separate the individual names with either commas
+ or blanks. Commas are shown in the explanations below, for
+ clarity.
+
+ * `+' is used as a line continuation character; if `+' appears at
+ the end of a line, the text on the following line is considered
+ part of the current command.
+
+ Here are the commands you can use in `ar' scripts, or when using
+`ar' interactively. Three of them have special significance:
+
+ `OPEN' or `CREATE' specify a "current archive", which is a temporary
+file required for most of the other commands.
+
+ `SAVE' commits the changes so far specified by the script. Prior to
+`SAVE', commands affect only the temporary copy of the current archive.
+
+`ADDLIB ARCHIVE'
+`ADDLIB ARCHIVE (MODULE, MODULE, ... MODULE)'
+ Add all the contents of ARCHIVE (or, if specified, each named
+ MODULE from ARCHIVE) to the current archive.
+
+ Requires prior use of `OPEN' or `CREATE'.
+
+`ADDMOD MEMBER, MEMBER, ... MEMBER'
+ Add each named MEMBER as a module in the current archive.
+
+ Requires prior use of `OPEN' or `CREATE'.
+
+`CLEAR'
+ Discard the contents of the current archive, canceling the effect
+ of any operations since the last `SAVE'. May be executed (with no
+ effect) even if no current archive is specified.
+
+`CREATE ARCHIVE'
+ Creates an archive, and makes it the current archive (required for
+ many other commands). The new archive is created with a temporary
+ name; it is not actually saved as ARCHIVE until you use `SAVE'.
+ You can overwrite existing archives; similarly, the contents of any
+ existing file named ARCHIVE will not be destroyed until `SAVE'.
+
+`DELETE MODULE, MODULE, ... MODULE'
+ Delete each listed MODULE from the current archive; equivalent to
+ `ar -d ARCHIVE MODULE ... MODULE'.
+
+ Requires prior use of `OPEN' or `CREATE'.
+
+`DIRECTORY ARCHIVE (MODULE, ... MODULE)'
+`DIRECTORY ARCHIVE (MODULE, ... MODULE) OUTPUTFILE'
+ List each named MODULE present in ARCHIVE. The separate command
+ `VERBOSE' specifies the form of the output: when verbose output is
+ off, output is like that of `ar -t ARCHIVE MODULE...'. When
+ verbose output is on, the listing is like `ar -tv ARCHIVE
+ MODULE...'.
+
+ Output normally goes to the standard output stream; however, if you
+ specify OUTPUTFILE as a final argument, `ar' directs the output to
+ that file.
+
+`END'
+ Exit from `ar', with a `0' exit code to indicate successful
+ completion. This command does not save the output file; if you
+ have changed the current archive since the last `SAVE' command,
+ those changes are lost.
+
+`EXTRACT MODULE, MODULE, ... MODULE'
+ Extract each named MODULE from the current archive, writing them
+ into the current directory as separate files. Equivalent to `ar -x
+ ARCHIVE MODULE...'.
+
+ Requires prior use of `OPEN' or `CREATE'.
+
+`LIST'
+ Display full contents of the current archive, in "verbose" style
+ regardless of the state of `VERBOSE'. The effect is like `ar tv
+ ARCHIVE'. (This single command is a GNU `ar' enhancement, rather
+ than present for MRI compatibility.)
+
+ Requires prior use of `OPEN' or `CREATE'.
+
+`OPEN ARCHIVE'
+ Opens an existing archive for use as the current archive (required
+ for many other commands). Any changes as the result of subsequent
+ commands will not actually affect ARCHIVE until you next use
+ `SAVE'.
+
+`REPLACE MODULE, MODULE, ... MODULE'
+ In the current archive, replace each existing MODULE (named in the
+ `REPLACE' arguments) from files in the current working directory.
+ To execute this command without errors, both the file, and the
+ module in the current archive, must exist.
+
+ Requires prior use of `OPEN' or `CREATE'.
+
+`VERBOSE'
+ Toggle an internal flag governing the output from `DIRECTORY'.
+ When the flag is on, `DIRECTORY' output matches output from `ar
+ -tv '....
+
+`SAVE'
+ Commit your changes to the current archive, and actually save it
+ as a file with the name specified in the last `CREATE' or `OPEN'
+ command.
+
+ Requires prior use of `OPEN' or `CREATE'.
+
+
+
+File: binutils.info, Node: nm, Next: objcopy, Prev: ar, Up: Top
+
+2 nm
+****
+
+ nm [`-a'|`--debug-syms']
+ [`-g'|`--extern-only'][`--plugin' NAME]
+ [`-B'] [`-C'|`--demangle'[=STYLE]] [`-D'|`--dynamic']
+ [`-S'|`--print-size'] [`-s'|`--print-armap']
+ [`-A'|`-o'|`--print-file-name'][`--special-syms']
+ [`-n'|`-v'|`--numeric-sort'] [`-p'|`--no-sort']
+ [`-r'|`--reverse-sort'] [`--size-sort'] [`-u'|`--undefined-only']
+ [`-t' RADIX|`--radix='RADIX] [`-P'|`--portability']
+ [`--target='BFDNAME] [`-f'FORMAT|`--format='FORMAT]
+ [`--defined-only'] [`-l'|`--line-numbers'] [`--no-demangle']
+ [`-V'|`--version'] [`-X 32_64'] [`--help'] [OBJFILE...]
+
+ GNU `nm' lists the symbols from object files OBJFILE.... If no
+object files are listed as arguments, `nm' assumes the file `a.out'.
+
+ For each symbol, `nm' shows:
+
+ * The symbol value, in the radix selected by options (see below), or
+ hexadecimal by default.
+
+ * The symbol type. At least the following types are used; others
+ are, as well, depending on the object file format. If lowercase,
+ the symbol is usually local; if uppercase, the symbol is global
+ (external). There are however a few lowercase symbols that are
+ shown for special global symbols (`u', `v' and `w').
+
+ `A'
+ The symbol's value is absolute, and will not be changed by
+ further linking.
+
+ `B'
+ `b'
+ The symbol is in the uninitialized data section (known as
+ BSS).
+
+ `C'
+ The symbol is common. Common symbols are uninitialized data.
+ When linking, multiple common symbols may appear with the
+ same name. If the symbol is defined anywhere, the common
+ symbols are treated as undefined references. For more
+ details on common symbols, see the discussion of -warn-common
+ in *Note Linker options: (ld.info)Options.
+
+ `D'
+ `d'
+ The symbol is in the initialized data section.
+
+ `G'
+ `g'
+ The symbol is in an initialized data section for small
+ objects. Some object file formats permit more efficient
+ access to small data objects, such as a global int variable
+ as opposed to a large global array.
+
+ `i'
+ For PE format files this indicates that the symbol is in a
+ section specific to the implementation of DLLs. For ELF
+ format files this indicates that the symbol is an indirect
+ function. This is a GNU extension to the standard set of ELF
+ symbol types. It indicates a symbol which if referenced by a
+ relocation does not evaluate to its address, but instead must
+ be invoked at runtime. The runtime execution will then
+ return the value to be used in the relocation.
+
+ `N'
+ The symbol is a debugging symbol.
+
+ `p'
+ The symbols is in a stack unwind section.
+
+ `R'
+ `r'
+ The symbol is in a read only data section.
+
+ `S'
+ `s'
+ The symbol is in an uninitialized data section for small
+ objects.
+
+ `T'
+ `t'
+ The symbol is in the text (code) section.
+
+ `U'
+ The symbol is undefined.
+
+ `u'
+ The symbol is a unique global symbol. This is a GNU
+ extension to the standard set of ELF symbol bindings. For
+ such a symbol the dynamic linker will make sure that in the
+ entire process there is just one symbol with this name and
+ type in use.
+
+ `V'
+ `v'
+ The symbol is a weak object. When a weak defined symbol is
+ linked with a normal defined symbol, the normal defined
+ symbol is used with no error. When a weak undefined symbol
+ is linked and the symbol is not defined, the value of the
+ weak symbol becomes zero with no error. On some systems,
+ uppercase indicates that a default value has been specified.
+
+ `W'
+ `w'
+ The symbol is a weak symbol that has not been specifically
+ tagged as a weak object symbol. When a weak defined symbol
+ is linked with a normal defined symbol, the normal defined
+ symbol is used with no error. When a weak undefined symbol
+ is linked and the symbol is not defined, the value of the
+ symbol is determined in a system-specific manner without
+ error. On some systems, uppercase indicates that a default
+ value has been specified.
+
+ `-'
+ The symbol is a stabs symbol in an a.out object file. In
+ this case, the next values printed are the stabs other field,
+ the stabs desc field, and the stab type. Stabs symbols are
+ used to hold debugging information. For more information,
+ see *Note Stabs: (stabs.info)Top.
+
+ `?'
+ The symbol type is unknown, or object file format specific.
+
+ * The symbol name.
+
+ The long and short forms of options, shown here as alternatives, are
+equivalent.
+
+`-A'
+`-o'
+`--print-file-name'
+ Precede each symbol by the name of the input file (or archive
+ member) in which it was found, rather than identifying the input
+ file once only, before all of its symbols.
+
+`-a'
+`--debug-syms'
+ Display all symbols, even debugger-only symbols; normally these
+ are not listed.
+
+`-B'
+ The same as `--format=bsd' (for compatibility with the MIPS `nm').
+
+`-C'
+`--demangle[=STYLE]'
+ Decode ("demangle") low-level symbol names into user-level names.
+ Besides removing any initial underscore prepended by the system,
+ this makes C++ function names readable. Different compilers have
+ different mangling styles. The optional demangling style argument
+ can be used to choose an appropriate demangling style for your
+ compiler. *Note c++filt::, for more information on demangling.
+
+`--no-demangle'
+ Do not demangle low-level symbol names. This is the default.
+
+`-D'
+`--dynamic'
+ Display the dynamic symbols rather than the normal symbols. This
+ is only meaningful for dynamic objects, such as certain types of
+ shared libraries.
+
+`-f FORMAT'
+`--format=FORMAT'
+ Use the output format FORMAT, which can be `bsd', `sysv', or
+ `posix'. The default is `bsd'. Only the first character of
+ FORMAT is significant; it can be either upper or lower case.
+
+`-g'
+`--extern-only'
+ Display only external symbols.
+
+`--plugin NAME'
+ Load the plugin called NAME to add support for extra target types.
+ This option is only available if the toolchain has been built
+ with plugin support enabled.
+
+`-l'
+`--line-numbers'
+ For each symbol, use debugging information to try to find a
+ filename and line number. For a defined symbol, look for the line
+ number of the address of the symbol. For an undefined symbol,
+ look for the line number of a relocation entry which refers to the
+ symbol. If line number information can be found, print it after
+ the other symbol information.
+
+`-n'
+`-v'
+`--numeric-sort'
+ Sort symbols numerically by their addresses, rather than
+ alphabetically by their names.
+
+`-p'
+`--no-sort'
+ Do not bother to sort the symbols in any order; print them in the
+ order encountered.
+
+`-P'
+`--portability'
+ Use the POSIX.2 standard output format instead of the default
+ format. Equivalent to `-f posix'.
+
+`-S'
+`--print-size'
+ Print both value and size of defined symbols for the `bsd' output
+ style. This option has no effect for object formats that do not
+ record symbol sizes, unless `--size-sort' is also used in which
+ case a calculated size is displayed.
+
+`-s'
+`--print-armap'
+ When listing symbols from archive members, include the index: a
+ mapping (stored in the archive by `ar' or `ranlib') of which
+ modules contain definitions for which names.
+
+`-r'
+`--reverse-sort'
+ Reverse the order of the sort (whether numeric or alphabetic); let
+ the last come first.
+
+`--size-sort'
+ Sort symbols by size. The size is computed as the difference
+ between the value of the symbol and the value of the symbol with
+ the next higher value. If the `bsd' output format is used the
+ size of the symbol is printed, rather than the value, and `-S'
+ must be used in order both size and value to be printed.
+
+`--special-syms'
+ Display symbols which have a target-specific special meaning.
+ These symbols are usually used by the target for some special
+ processing and are not normally helpful when included included in
+ the normal symbol lists. For example for ARM targets this option
+ would skip the mapping symbols used to mark transitions between
+ ARM code, THUMB code and data.
+
+`-t RADIX'
+`--radix=RADIX'
+ Use RADIX as the radix for printing the symbol values. It must be
+ `d' for decimal, `o' for octal, or `x' for hexadecimal.
+
+`--target=BFDNAME'
+ Specify an object code format other than your system's default
+ format. *Note Target Selection::, for more information.
+
+`-u'
+`--undefined-only'
+ Display only undefined symbols (those external to each object
+ file).
+
+`--defined-only'
+ Display only defined symbols for each object file.
+
+`-V'
+`--version'
+ Show the version number of `nm' and exit.
+
+`-X'
+ This option is ignored for compatibility with the AIX version of
+ `nm'. It takes one parameter which must be the string `32_64'.
+ The default mode of AIX `nm' corresponds to `-X 32', which is not
+ supported by GNU `nm'.
+
+`--help'
+ Show a summary of the options to `nm' and exit.
+
+
+File: binutils.info, Node: objcopy, Next: objdump, Prev: nm, Up: Top
+
+3 objcopy
+*********
+
+ objcopy [`-F' BFDNAME|`--target='BFDNAME]
+ [`-I' BFDNAME|`--input-target='BFDNAME]
+ [`-O' BFDNAME|`--output-target='BFDNAME]
+ [`-B' BFDARCH|`--binary-architecture='BFDARCH]
+ [`-S'|`--strip-all']
+ [`-g'|`--strip-debug']
+ [`-K' SYMBOLNAME|`--keep-symbol='SYMBOLNAME]
+ [`-N' SYMBOLNAME|`--strip-symbol='SYMBOLNAME]
+ [`--strip-unneeded-symbol='SYMBOLNAME]
+ [`-G' SYMBOLNAME|`--keep-global-symbol='SYMBOLNAME]
+ [`--localize-hidden']
+ [`-L' SYMBOLNAME|`--localize-symbol='SYMBOLNAME]
+ [`--globalize-symbol='SYMBOLNAME]
+ [`-W' SYMBOLNAME|`--weaken-symbol='SYMBOLNAME]
+ [`-w'|`--wildcard']
+ [`-x'|`--discard-all']
+ [`-X'|`--discard-locals']
+ [`-b' BYTE|`--byte='BYTE]
+ [`-i' [BREADTH]|`--interleave'[=BREADTH]]
+ [`--interleave-width='WIDTH]
+ [`-j' SECTIONNAME|`--only-section='SECTIONNAME]
+ [`-R' SECTIONNAME|`--remove-section='SECTIONNAME]
+ [`-p'|`--preserve-dates']
+ [`--debugging']
+ [`--gap-fill='VAL]
+ [`--pad-to='ADDRESS]
+ [`--set-start='VAL]
+ [`--adjust-start='INCR]
+ [`--change-addresses='INCR]
+ [`--change-section-address' SECTION{=,+,-}VAL]
+ [`--change-section-lma' SECTION{=,+,-}VAL]
+ [`--change-section-vma' SECTION{=,+,-}VAL]
+ [`--change-warnings'] [`--no-change-warnings']
+ [`--set-section-flags' SECTION=FLAGS]
+ [`--add-section' SECTIONNAME=FILENAME]
+ [`--rename-section' OLDNAME=NEWNAME[,FLAGS]]
+ [`--long-section-names' {enable,disable,keep}]
+ [`--change-leading-char'] [`--remove-leading-char']
+ [`--reverse-bytes='NUM]
+ [`--srec-len='IVAL] [`--srec-forceS3']
+ [`--redefine-sym' OLD=NEW]
+ [`--redefine-syms='FILENAME]
+ [`--weaken']
+ [`--keep-symbols='FILENAME]
+ [`--strip-symbols='FILENAME]
+ [`--strip-unneeded-symbols='FILENAME]
+ [`--keep-global-symbols='FILENAME]
+ [`--localize-symbols='FILENAME]
+ [`--globalize-symbols='FILENAME]
+ [`--weaken-symbols='FILENAME]
+ [`--alt-machine-code='INDEX]
+ [`--prefix-symbols='STRING]
+ [`--prefix-sections='STRING]
+ [`--prefix-alloc-sections='STRING]
+ [`--add-gnu-debuglink='PATH-TO-FILE]
+ [`--keep-file-symbols']
+ [`--only-keep-debug']
+ [`--extract-symbol']
+ [`--writable-text']
+ [`--readonly-text']
+ [`--pure']
+ [`--impure']
+ [`--file-alignment='NUM]
+ [`--heap='SIZE]
+ [`--image-base='ADDRESS]
+ [`--section-alignment='NUM]
+ [`--stack='SIZE]
+ [`--subsystem='WHICH:MAJOR.MINOR]
+ [`--compress-debug-sections']
+ [`--decompress-debug-sections']
+ [`--dwarf-depth=N']
+ [`--dwarf-start=N']
+ [`-v'|`--verbose']
+ [`-V'|`--version']
+ [`--help'] [`--info']
+ INFILE [OUTFILE]
+
+ The GNU `objcopy' utility copies the contents of an object file to
+another. `objcopy' uses the GNU BFD Library to read and write the
+object files. It can write the destination object file in a format
+different from that of the source object file. The exact behavior of
+`objcopy' is controlled by command-line options. Note that `objcopy'
+should be able to copy a fully linked file between any two formats.
+However, copying a relocatable object file between any two formats may
+not work as expected.
+
+ `objcopy' creates temporary files to do its translations and deletes
+them afterward. `objcopy' uses BFD to do all its translation work; it
+has access to all the formats described in BFD and thus is able to
+recognize most formats without being told explicitly. *Note BFD:
+(ld.info)BFD.
+
+ `objcopy' can be used to generate S-records by using an output
+target of `srec' (e.g., use `-O srec').
+
+ `objcopy' can be used to generate a raw binary file by using an
+output target of `binary' (e.g., use `-O binary'). When `objcopy'
+generates a raw binary file, it will essentially produce a memory dump
+of the contents of the input object file. All symbols and relocation
+information will be discarded. The memory dump will start at the load
+address of the lowest section copied into the output file.
+
+ When generating an S-record or a raw binary file, it may be helpful
+to use `-S' to remove sections containing debugging information. In
+some cases `-R' will be useful to remove sections which contain
+information that is not needed by the binary file.
+
+ Note--`objcopy' is not able to change the endianness of its input
+files. If the input format has an endianness (some formats do not),
+`objcopy' can only copy the inputs into file formats that have the same
+endianness or which have no endianness (e.g., `srec'). (However, see
+the `--reverse-bytes' option.)
+
+`INFILE'
+`OUTFILE'
+ The input and output files, respectively. If you do not specify
+ OUTFILE, `objcopy' creates a temporary file and destructively
+ renames the result with the name of INFILE.
+
+`-I BFDNAME'
+`--input-target=BFDNAME'
+ Consider the source file's object format to be BFDNAME, rather than
+ attempting to deduce it. *Note Target Selection::, for more
+ information.
+
+`-O BFDNAME'
+`--output-target=BFDNAME'
+ Write the output file using the object format BFDNAME. *Note
+ Target Selection::, for more information.
+
+`-F BFDNAME'
+`--target=BFDNAME'
+ Use BFDNAME as the object format for both the input and the output
+ file; i.e., simply transfer data from source to destination with no
+ translation. *Note Target Selection::, for more information.
+
+`-B BFDARCH'
+`--binary-architecture=BFDARCH'
+ Useful when transforming a architecture-less input file into an
+ object file. In this case the output architecture can be set to
+ BFDARCH. This option will be ignored if the input file has a
+ known BFDARCH. You can access this binary data inside a program
+ by referencing the special symbols that are created by the
+ conversion process. These symbols are called
+ _binary_OBJFILE_start, _binary_OBJFILE_end and
+ _binary_OBJFILE_size. e.g. you can transform a picture file into
+ an object file and then access it in your code using these symbols.
+
+`-j SECTIONNAME'
+`--only-section=SECTIONNAME'
+ Copy only the named section from the input file to the output file.
+ This option may be given more than once. Note that using this
+ option inappropriately may make the output file unusable.
+
+`-R SECTIONNAME'
+`--remove-section=SECTIONNAME'
+ Remove any section named SECTIONNAME from the output file. This
+ option may be given more than once. Note that using this option
+ inappropriately may make the output file unusable.
+
+`-S'
+`--strip-all'
+ Do not copy relocation and symbol information from the source file.
+
+`-g'
+`--strip-debug'
+ Do not copy debugging symbols or sections from the source file.
+
+`--strip-unneeded'
+ Strip all symbols that are not needed for relocation processing.
+
+`-K SYMBOLNAME'
+`--keep-symbol=SYMBOLNAME'
+ When stripping symbols, keep symbol SYMBOLNAME even if it would
+ normally be stripped. This option may be given more than once.
+
+`-N SYMBOLNAME'
+`--strip-symbol=SYMBOLNAME'
+ Do not copy symbol SYMBOLNAME from the source file. This option
+ may be given more than once.
+
+`--strip-unneeded-symbol=SYMBOLNAME'
+ Do not copy symbol SYMBOLNAME from the source file unless it is
+ needed by a relocation. This option may be given more than once.
+
+`-G SYMBOLNAME'
+`--keep-global-symbol=SYMBOLNAME'
+ Keep only symbol SYMBOLNAME global. Make all other symbols local
+ to the file, so that they are not visible externally. This option
+ may be given more than once.
+
+`--localize-hidden'
+ In an ELF object, mark all symbols that have hidden or internal
+ visibility as local. This option applies on top of
+ symbol-specific localization options such as `-L'.
+
+`-L SYMBOLNAME'
+`--localize-symbol=SYMBOLNAME'
+ Make symbol SYMBOLNAME local to the file, so that it is not
+ visible externally. This option may be given more than once.
+
+`-W SYMBOLNAME'
+`--weaken-symbol=SYMBOLNAME'
+ Make symbol SYMBOLNAME weak. This option may be given more than
+ once.
+
+`--globalize-symbol=SYMBOLNAME'
+ Give symbol SYMBOLNAME global scoping so that it is visible
+ outside of the file in which it is defined. This option may be
+ given more than once.
+
+`-w'
+`--wildcard'
+ Permit regular expressions in SYMBOLNAMEs used in other command
+ line options. The question mark (?), asterisk (*), backslash (\)
+ and square brackets ([]) operators can be used anywhere in the
+ symbol name. If the first character of the symbol name is the
+ exclamation point (!) then the sense of the switch is reversed for
+ that symbol. For example:
+
+ -w -W !foo -W fo*
+
+ would cause objcopy to weaken all symbols that start with "fo"
+ except for the symbol "foo".
+
+`-x'
+`--discard-all'
+ Do not copy non-global symbols from the source file.
+
+`-X'
+`--discard-locals'
+ Do not copy compiler-generated local symbols. (These usually
+ start with `L' or `.'.)
+
+`-b BYTE'
+`--byte=BYTE'
+ If interleaving has been enabled via the `--interleave' option
+ then start the range of bytes to keep at the BYTEth byte. BYTE
+ can be in the range from 0 to BREADTH-1, where BREADTH is the
+ value given by the `--interleave' option.
+
+`-i [BREADTH]'
+`--interleave[=BREADTH]'
+ Only copy a range out of every BREADTH bytes. (Header data is not
+ affected). Select which byte in the range begins the copy with
+ the `--byte' option. Select the width of the range with the
+ `--interleave-width' option.
+
+ This option is useful for creating files to program ROM. It is
+ typically used with an `srec' output target. Note that `objcopy'
+ will complain if you do not specify the `--byte' option as well.
+
+ The default interleave breadth is 4, so with `--byte' set to 0,
+ `objcopy' would copy the first byte out of every four bytes from
+ the input to the output.
+
+`--interleave-width=WIDTH'
+ When used with the `--interleave' option, copy WIDTH bytes at a
+ time. The start of the range of bytes to be copied is set by the
+ `--byte' option, and the extent of the range is set with the
+ `--interleave' option.
+
+ The default value for this option is 1. The value of WIDTH plus
+ the BYTE value set by the `--byte' option must not exceed the
+ interleave breadth set by the `--interleave' option.
+
+ This option can be used to create images for two 16-bit flashes
+ interleaved in a 32-bit bus by passing `-b 0 -i 4
+ --interleave-width=2' and `-b 2 -i 4 --interleave-width=2' to two
+ `objcopy' commands. If the input was '12345678' then the outputs
+ would be '1256' and '3478' respectively.
+
+`-p'
+`--preserve-dates'
+ Set the access and modification dates of the output file to be the
+ same as those of the input file.
+
+`--debugging'
+ Convert debugging information, if possible. This is not the
+ default because only certain debugging formats are supported, and
+ the conversion process can be time consuming.
+
+`--gap-fill VAL'
+ Fill gaps between sections with VAL. This operation applies to
+ the _load address_ (LMA) of the sections. It is done by increasing
+ the size of the section with the lower address, and filling in the
+ extra space created with VAL.
+
+`--pad-to ADDRESS'
+ Pad the output file up to the load address ADDRESS. This is done
+ by increasing the size of the last section. The extra space is
+ filled in with the value specified by `--gap-fill' (default zero).
+
+`--set-start VAL'
+ Set the start address of the new file to VAL. Not all object file
+ formats support setting the start address.
+
+`--change-start INCR'
+`--adjust-start INCR'
+ Change the start address by adding INCR. Not all object file
+ formats support setting the start address.
+
+`--change-addresses INCR'
+`--adjust-vma INCR'
+ Change the VMA and LMA addresses of all sections, as well as the
+ start address, by adding INCR. Some object file formats do not
+ permit section addresses to be changed arbitrarily. Note that
+ this does not relocate the sections; if the program expects
+ sections to be loaded at a certain address, and this option is
+ used to change the sections such that they are loaded at a
+ different address, the program may fail.
+
+`--change-section-address SECTION{=,+,-}VAL'
+`--adjust-section-vma SECTION{=,+,-}VAL'
+ Set or change both the VMA address and the LMA address of the named
+ SECTION. If `=' is used, the section address is set to VAL.
+ Otherwise, VAL is added to or subtracted from the section address.
+ See the comments under `--change-addresses', above. If SECTION
+ does not exist in the input file, a warning will be issued, unless
+ `--no-change-warnings' is used.
+
+`--change-section-lma SECTION{=,+,-}VAL'
+ Set or change the LMA address of the named SECTION. The LMA
+ address is the address where the section will be loaded into
+ memory at program load time. Normally this is the same as the VMA
+ address, which is the address of the section at program run time,
+ but on some systems, especially those where a program is held in
+ ROM, the two can be different. If `=' is used, the section
+ address is set to VAL. Otherwise, VAL is added to or subtracted
+ from the section address. See the comments under
+ `--change-addresses', above. If SECTION does not exist in the
+ input file, a warning will be issued, unless
+ `--no-change-warnings' is used.
+
+`--change-section-vma SECTION{=,+,-}VAL'
+ Set or change the VMA address of the named SECTION. The VMA
+ address is the address where the section will be located once the
+ program has started executing. Normally this is the same as the
+ LMA address, which is the address where the section will be loaded
+ into memory, but on some systems, especially those where a program
+ is held in ROM, the two can be different. If `=' is used, the
+ section address is set to VAL. Otherwise, VAL is added to or
+ subtracted from the section address. See the comments under
+ `--change-addresses', above. If SECTION does not exist in the
+ input file, a warning will be issued, unless
+ `--no-change-warnings' is used.
+
+`--change-warnings'
+`--adjust-warnings'
+ If `--change-section-address' or `--change-section-lma' or
+ `--change-section-vma' is used, and the named section does not
+ exist, issue a warning. This is the default.
+
+`--no-change-warnings'
+`--no-adjust-warnings'
+ Do not issue a warning if `--change-section-address' or
+ `--adjust-section-lma' or `--adjust-section-vma' is used, even if
+ the named section does not exist.
+
+`--set-section-flags SECTION=FLAGS'
+ Set the flags for the named section. The FLAGS argument is a
+ comma separated string of flag names. The recognized names are
+ `alloc', `contents', `load', `noload', `readonly', `code', `data',
+ `rom', `share', and `debug'. You can set the `contents' flag for
+ a section which does not have contents, but it is not meaningful
+ to clear the `contents' flag of a section which does have
+ contents-just remove the section instead. Not all flags are
+ meaningful for all object file formats.
+
+`--add-section SECTIONNAME=FILENAME'
+ Add a new section named SECTIONNAME while copying the file. The
+ contents of the new section are taken from the file FILENAME. The
+ size of the section will be the size of the file. This option only
+ works on file formats which can support sections with arbitrary
+ names.
+
+`--rename-section OLDNAME=NEWNAME[,FLAGS]'
+ Rename a section from OLDNAME to NEWNAME, optionally changing the
+ section's flags to FLAGS in the process. This has the advantage
+ over usng a linker script to perform the rename in that the output
+ stays as an object file and does not become a linked executable.
+
+ This option is particularly helpful when the input format is
+ binary, since this will always create a section called .data. If
+ for example, you wanted instead to create a section called .rodata
+ containing binary data you could use the following command line to
+ achieve it:
+
+ objcopy -I binary -O <output_format> -B <architecture> \
+ --rename-section .data=.rodata,alloc,load,readonly,data,contents \
+ <input_binary_file> <output_object_file>
+
+`--long-section-names {enable,disable,keep}'
+ Controls the handling of long section names when processing `COFF'
+ and `PE-COFF' object formats. The default behaviour, `keep', is
+ to preserve long section names if any are present in the input
+ file. The `enable' and `disable' options forcibly enable or
+ disable the use of long section names in the output object; when
+ `disable' is in effect, any long section names in the input object
+ will be truncated. The `enable' option will only emit long
+ section names if any are present in the inputs; this is mostly the
+ same as `keep', but it is left undefined whether the `enable'
+ option might force the creation of an empty string table in the
+ output file.
+
+`--change-leading-char'
+ Some object file formats use special characters at the start of
+ symbols. The most common such character is underscore, which
+ compilers often add before every symbol. This option tells
+ `objcopy' to change the leading character of every symbol when it
+ converts between object file formats. If the object file formats
+ use the same leading character, this option has no effect.
+ Otherwise, it will add a character, or remove a character, or
+ change a character, as appropriate.
+
+`--remove-leading-char'
+ If the first character of a global symbol is a special symbol
+ leading character used by the object file format, remove the
+ character. The most common symbol leading character is
+ underscore. This option will remove a leading underscore from all
+ global symbols. This can be useful if you want to link together
+ objects of different file formats with different conventions for
+ symbol names. This is different from `--change-leading-char'
+ because it always changes the symbol name when appropriate,
+ regardless of the object file format of the output file.
+
+`--reverse-bytes=NUM'
+ Reverse the bytes in a section with output contents. A section
+ length must be evenly divisible by the value given in order for
+ the swap to be able to take place. Reversing takes place before
+ the interleaving is performed.
+
+ This option is used typically in generating ROM images for
+ problematic target systems. For example, on some target boards,
+ the 32-bit words fetched from 8-bit ROMs are re-assembled in
+ little-endian byte order regardless of the CPU byte order.
+ Depending on the programming model, the endianness of the ROM may
+ need to be modified.
+
+ Consider a simple file with a section containing the following
+ eight bytes: `12345678'.
+
+ Using `--reverse-bytes=2' for the above example, the bytes in the
+ output file would be ordered `21436587'.
+
+ Using `--reverse-bytes=4' for the above example, the bytes in the
+ output file would be ordered `43218765'.
+
+ By using `--reverse-bytes=2' for the above example, followed by
+ `--reverse-bytes=4' on the output file, the bytes in the second
+ output file would be ordered `34127856'.
+
+`--srec-len=IVAL'
+ Meaningful only for srec output. Set the maximum length of the
+ Srecords being produced to IVAL. This length covers both address,
+ data and crc fields.
+
+`--srec-forceS3'
+ Meaningful only for srec output. Avoid generation of S1/S2
+ records, creating S3-only record format.
+
+`--redefine-sym OLD=NEW'
+ Change the name of a symbol OLD, to NEW. This can be useful when
+ one is trying link two things together for which you have no
+ source, and there are name collisions.
+
+`--redefine-syms=FILENAME'
+ Apply `--redefine-sym' to each symbol pair "OLD NEW" listed in the
+ file FILENAME. FILENAME is simply a flat file, with one symbol
+ pair per line. Line comments may be introduced by the hash
+ character. This option may be given more than once.
+
+`--weaken'
+ Change all global symbols in the file to be weak. This can be
+ useful when building an object which will be linked against other
+ objects using the `-R' option to the linker. This option is only
+ effective when using an object file format which supports weak
+ symbols.
+
+`--keep-symbols=FILENAME'
+ Apply `--keep-symbol' option to each symbol listed in the file
+ FILENAME. FILENAME is simply a flat file, with one symbol name
+ per line. Line comments may be introduced by the hash character.
+ This option may be given more than once.
+
+`--strip-symbols=FILENAME'
+ Apply `--strip-symbol' option to each symbol listed in the file
+ FILENAME. FILENAME is simply a flat file, with one symbol name
+ per line. Line comments may be introduced by the hash character.
+ This option may be given more than once.
+
+`--strip-unneeded-symbols=FILENAME'
+ Apply `--strip-unneeded-symbol' option to each symbol listed in
+ the file FILENAME. FILENAME is simply a flat file, with one
+ symbol name per line. Line comments may be introduced by the hash
+ character. This option may be given more than once.
+
+`--keep-global-symbols=FILENAME'
+ Apply `--keep-global-symbol' option to each symbol listed in the
+ file FILENAME. FILENAME is simply a flat file, with one symbol
+ name per line. Line comments may be introduced by the hash
+ character. This option may be given more than once.
+
+`--localize-symbols=FILENAME'
+ Apply `--localize-symbol' option to each symbol listed in the file
+ FILENAME. FILENAME is simply a flat file, with one symbol name
+ per line. Line comments may be introduced by the hash character.
+ This option may be given more than once.
+
+`--globalize-symbols=FILENAME'
+ Apply `--globalize-symbol' option to each symbol listed in the file
+ FILENAME. FILENAME is simply a flat file, with one symbol name
+ per line. Line comments may be introduced by the hash character.
+ This option may be given more than once.
+
+`--weaken-symbols=FILENAME'
+ Apply `--weaken-symbol' option to each symbol listed in the file
+ FILENAME. FILENAME is simply a flat file, with one symbol name
+ per line. Line comments may be introduced by the hash character.
+ This option may be given more than once.
+
+`--alt-machine-code=INDEX'
+ If the output architecture has alternate machine codes, use the
+ INDEXth code instead of the default one. This is useful in case a
+ machine is assigned an official code and the tool-chain adopts the
+ new code, but other applications still depend on the original code
+ being used. For ELF based architectures if the INDEX alternative
+ does not exist then the value is treated as an absolute number to
+ be stored in the e_machine field of the ELF header.
+
+`--writable-text'
+ Mark the output text as writable. This option isn't meaningful
+ for all object file formats.
+
+`--readonly-text'
+ Make the output text write protected. This option isn't
+ meaningful for all object file formats.
+
+`--pure'
+ Mark the output file as demand paged. This option isn't
+ meaningful for all object file formats.
+
+`--impure'
+ Mark the output file as impure. This option isn't meaningful for
+ all object file formats.
+
+`--prefix-symbols=STRING'
+ Prefix all symbols in the output file with STRING.
+
+`--prefix-sections=STRING'
+ Prefix all section names in the output file with STRING.
+
+`--prefix-alloc-sections=STRING'
+ Prefix all the names of all allocated sections in the output file
+ with STRING.
+
+`--add-gnu-debuglink=PATH-TO-FILE'
+ Creates a .gnu_debuglink section which contains a reference to
+ PATH-TO-FILE and adds it to the output file.
+
+`--keep-file-symbols'
+ When stripping a file, perhaps with `--strip-debug' or
+ `--strip-unneeded', retain any symbols specifying source file
+ names, which would otherwise get stripped.
+
+`--only-keep-debug'
+ Strip a file, removing contents of any sections that would not be
+ stripped by `--strip-debug' and leaving the debugging sections
+ intact. In ELF files, this preserves all note sections in the
+ output.
+
+ The intention is that this option will be used in conjunction with
+ `--add-gnu-debuglink' to create a two part executable. One a
+ stripped binary which will occupy less space in RAM and in a
+ distribution and the second a debugging information file which is
+ only needed if debugging abilities are required. The suggested
+ procedure to create these files is as follows:
+
+ 1. Link the executable as normal. Assuming that is is called
+ `foo' then...
+
+ 2. Run `objcopy --only-keep-debug foo foo.dbg' to create a file
+ containing the debugging info.
+
+ 3. Run `objcopy --strip-debug foo' to create a stripped
+ executable.
+
+ 4. Run `objcopy --add-gnu-debuglink=foo.dbg foo' to add a link
+ to the debugging info into the stripped executable.
+
+ Note--the choice of `.dbg' as an extension for the debug info file
+ is arbitrary. Also the `--only-keep-debug' step is optional. You
+ could instead do this:
+
+ 1. Link the executable as normal.
+
+ 2. Copy `foo' to `foo.full'
+
+ 3. Run `objcopy --strip-debug foo'
+
+ 4. Run `objcopy --add-gnu-debuglink=foo.full foo'
+
+ i.e., the file pointed to by the `--add-gnu-debuglink' can be the
+ full executable. It does not have to be a file created by the
+ `--only-keep-debug' switch.
+
+ Note--this switch is only intended for use on fully linked files.
+ It does not make sense to use it on object files where the
+ debugging information may be incomplete. Besides the
+ gnu_debuglink feature currently only supports the presence of one
+ filename containing debugging information, not multiple filenames
+ on a one-per-object-file basis.
+
+`--file-alignment NUM'
+ Specify the file alignment. Sections in the file will always
+ begin at file offsets which are multiples of this number. This
+ defaults to 512. [This option is specific to PE targets.]
+
+`--heap RESERVE'
+`--heap RESERVE,COMMIT'
+ Specify the number of bytes of memory to reserve (and optionally
+ commit) to be used as heap for this program. [This option is
+ specific to PE targets.]
+
+`--image-base VALUE'
+ Use VALUE as the base address of your program or dll. This is the
+ lowest memory location that will be used when your program or dll
+ is loaded. To reduce the need to relocate and improve performance
+ of your dlls, each should have a unique base address and not
+ overlap any other dlls. The default is 0x400000 for executables,
+ and 0x10000000 for dlls. [This option is specific to PE targets.]
+
+`--section-alignment NUM'
+ Sets the section alignment. Sections in memory will always begin
+ at addresses which are a multiple of this number. Defaults to
+ 0x1000. [This option is specific to PE targets.]
+
+`--stack RESERVE'
+`--stack RESERVE,COMMIT'
+ Specify the number of bytes of memory to reserve (and optionally
+ commit) to be used as stack for this program. [This option is
+ specific to PE targets.]
+
+`--subsystem WHICH'
+`--subsystem WHICH:MAJOR'
+`--subsystem WHICH:MAJOR.MINOR'
+ Specifies the subsystem under which your program will execute. The
+ legal values for WHICH are `native', `windows', `console',
+ `posix', `efi-app', `efi-bsd', `efi-rtd', `sal-rtd', and `xbox'.
+ You may optionally set the subsystem version also. Numeric values
+ are also accepted for WHICH. [This option is specific to PE
+ targets.]
+
+`--extract-symbol'
+ Keep the file's section flags and symbols but remove all section
+ data. Specifically, the option:
+
+ * removes the contents of all sections;
+
+ * sets the size of every section to zero; and
+
+ * sets the file's start address to zero.
+
+ This option is used to build a `.sym' file for a VxWorks kernel.
+ It can also be a useful way of reducing the size of a
+ `--just-symbols' linker input file.
+
+`--compress-debug-sections'
+ Compress DWARF debug sections using zlib.
+
+`--decompress-debug-sections'
+ Decompress DWARF debug sections using zlib.
+
+`-V'
+`--version'
+ Show the version number of `objcopy'.
+
+`-v'
+`--verbose'
+ Verbose output: list all object files modified. In the case of
+ archives, `objcopy -V' lists all members of the archive.
+
+`--help'
+ Show a summary of the options to `objcopy'.
+
+`--info'
+ Display a list showing all architectures and object formats
+ available.
+
+
+File: binutils.info, Node: objdump, Next: ranlib, Prev: objcopy, Up: Top
+
+4 objdump
+*********
+
+ objdump [`-a'|`--archive-headers']
+ [`-b' BFDNAME|`--target=BFDNAME']
+ [`-C'|`--demangle'[=STYLE] ]
+ [`-d'|`--disassemble']
+ [`-D'|`--disassemble-all']
+ [`-z'|`--disassemble-zeroes']
+ [`-EB'|`-EL'|`--endian='{big | little }]
+ [`-f'|`--file-headers']
+ [`-F'|`--file-offsets']
+ [`--file-start-context']
+ [`-g'|`--debugging']
+ [`-e'|`--debugging-tags']
+ [`-h'|`--section-headers'|`--headers']
+ [`-i'|`--info']
+ [`-j' SECTION|`--section='SECTION]
+ [`-l'|`--line-numbers']
+ [`-S'|`--source']
+ [`-m' MACHINE|`--architecture='MACHINE]
+ [`-M' OPTIONS|`--disassembler-options='OPTIONS]
+ [`-p'|`--private-headers']
+ [`-P' OPTIONS|`--private='OPTIONS]
+ [`-r'|`--reloc']
+ [`-R'|`--dynamic-reloc']
+ [`-s'|`--full-contents']
+ [`-W[lLiaprmfFsoRt]'|
+ `--dwarf'[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]]
+ [`-G'|`--stabs']
+ [`-t'|`--syms']
+ [`-T'|`--dynamic-syms']
+ [`-x'|`--all-headers']
+ [`-w'|`--wide']
+ [`--start-address='ADDRESS]
+ [`--stop-address='ADDRESS]
+ [`--prefix-addresses']
+ [`--[no-]show-raw-insn']
+ [`--adjust-vma='OFFSET]
+ [`--special-syms']
+ [`--prefix='PREFIX]
+ [`--prefix-strip='LEVEL]
+ [`--insn-width='WIDTH]
+ [`-V'|`--version']
+ [`-H'|`--help']
+ OBJFILE...
+
+ `objdump' displays information about one or more object files. The
+options control what particular information to display. This
+information is mostly useful to programmers who are working on the
+compilation tools, as opposed to programmers who just want their
+program to compile and work.
+
+ OBJFILE... are the object files to be examined. When you specify
+archives, `objdump' shows information on each of the member object
+files.
+
+ The long and short forms of options, shown here as alternatives, are
+equivalent. At least one option from the list
+`-a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-P,-r,-R,-s,-S,-t,-T,-V,-x' must be
+given.
+
+`-a'
+`--archive-header'
+ If any of the OBJFILE files are archives, display the archive
+ header information (in a format similar to `ls -l'). Besides the
+ information you could list with `ar tv', `objdump -a' shows the
+ object file format of each archive member.
+
+`--adjust-vma=OFFSET'
+ When dumping information, first add OFFSET to all the section
+ addresses. This is useful if the section addresses do not
+ correspond to the symbol table, which can happen when putting
+ sections at particular addresses when using a format which can not
+ represent section addresses, such as a.out.
+
+`-b BFDNAME'
+`--target=BFDNAME'
+ Specify that the object-code format for the object files is
+ BFDNAME. This option may not be necessary; OBJDUMP can
+ automatically recognize many formats.
+
+ For example,
+ objdump -b oasys -m vax -h fu.o
+ displays summary information from the section headers (`-h') of
+ `fu.o', which is explicitly identified (`-m') as a VAX object file
+ in the format produced by Oasys compilers. You can list the
+ formats available with the `-i' option. *Note Target Selection::,
+ for more information.
+
+`-C'
+`--demangle[=STYLE]'
+ Decode ("demangle") low-level symbol names into user-level names.
+ Besides removing any initial underscore prepended by the system,
+ this makes C++ function names readable. Different compilers have
+ different mangling styles. The optional demangling style argument
+ can be used to choose an appropriate demangling style for your
+ compiler. *Note c++filt::, for more information on demangling.
+
+`-g'
+`--debugging'
+ Display debugging information. This attempts to parse STABS and
+ IEEE debugging format information stored in the file and print it
+ out using a C like syntax. If neither of these formats are found
+ this option falls back on the `-W' option to print any DWARF
+ information in the file.
+
+`-e'
+`--debugging-tags'
+ Like `-g', but the information is generated in a format compatible
+ with ctags tool.
+
+`-d'
+`--disassemble'
+ Display the assembler mnemonics for the machine instructions from
+ OBJFILE. This option only disassembles those sections which are
+ expected to contain instructions.
+
+`-D'
+`--disassemble-all'
+ Like `-d', but disassemble the contents of all sections, not just
+ those expected to contain instructions.
+
+ If the target is an ARM architecture this switch also has the
+ effect of forcing the disassembler to decode pieces of data found
+ in code sections as if they were instructions.
+
+`--prefix-addresses'
+ When disassembling, print the complete address on each line. This
+ is the older disassembly format.
+
+`-EB'
+`-EL'
+`--endian={big|little}'
+ Specify the endianness of the object files. This only affects
+ disassembly. This can be useful when disassembling a file format
+ which does not describe endianness information, such as S-records.
+
+`-f'
+`--file-headers'
+ Display summary information from the overall header of each of the
+ OBJFILE files.
+
+`-F'
+`--file-offsets'
+ When disassembling sections, whenever a symbol is displayed, also
+ display the file offset of the region of data that is about to be
+ dumped. If zeroes are being skipped, then when disassembly
+ resumes, tell the user how many zeroes were skipped and the file
+ offset of the location from where the disassembly resumes. When
+ dumping sections, display the file offset of the location from
+ where the dump starts.
+
+`--file-start-context'
+ Specify that when displaying interlisted source code/disassembly
+ (assumes `-S') from a file that has not yet been displayed, extend
+ the context to the start of the file.
+
+`-h'
+`--section-headers'
+`--headers'
+ Display summary information from the section headers of the object
+ file.
+
+ File segments may be relocated to nonstandard addresses, for
+ example by using the `-Ttext', `-Tdata', or `-Tbss' options to
+ `ld'. However, some object file formats, such as a.out, do not
+ store the starting address of the file segments. In those
+ situations, although `ld' relocates the sections correctly, using
+ `objdump -h' to list the file section headers cannot show the
+ correct addresses. Instead, it shows the usual addresses, which
+ are implicit for the target.
+
+`-H'
+`--help'
+ Print a summary of the options to `objdump' and exit.
+
+`-i'
+`--info'
+ Display a list showing all architectures and object formats
+ available for specification with `-b' or `-m'.
+
+`-j NAME'
+`--section=NAME'
+ Display information only for section NAME.
+
+`-l'
+`--line-numbers'
+ Label the display (using debugging information) with the filename
+ and source line numbers corresponding to the object code or relocs
+ shown. Only useful with `-d', `-D', or `-r'.
+
+`-m MACHINE'
+`--architecture=MACHINE'
+ Specify the architecture to use when disassembling object files.
+ This can be useful when disassembling object files which do not
+ describe architecture information, such as S-records. You can
+ list the available architectures with the `-i' option.
+
+ If the target is an ARM architecture then this switch has an
+ additional effect. It restricts the disassembly to only those
+ instructions supported by the architecture specified by MACHINE.
+ If it is necessary to use this switch because the input file does
+ not contain any architecture information, but it is also desired to
+ disassemble all the instructions use `-marm'.
+
+`-M OPTIONS'
+`--disassembler-options=OPTIONS'
+ Pass target specific information to the disassembler. Only
+ supported on some targets. If it is necessary to specify more
+ than one disassembler option then multiple `-M' options can be
+ used or can be placed together into a comma separated list.
+
+ If the target is an ARM architecture then this switch can be used
+ to select which register name set is used during disassembler.
+ Specifying `-M reg-names-std' (the default) will select the
+ register names as used in ARM's instruction set documentation, but
+ with register 13 called 'sp', register 14 called 'lr' and register
+ 15 called 'pc'. Specifying `-M reg-names-apcs' will select the
+ name set used by the ARM Procedure Call Standard, whilst
+ specifying `-M reg-names-raw' will just use `r' followed by the
+ register number.
+
+ There are also two variants on the APCS register naming scheme
+ enabled by `-M reg-names-atpcs' and `-M reg-names-special-atpcs'
+ which use the ARM/Thumb Procedure Call Standard naming
+ conventions. (Either with the normal register names or the
+ special register names).
+
+ This option can also be used for ARM architectures to force the
+ disassembler to interpret all instructions as Thumb instructions by
+ using the switch `--disassembler-options=force-thumb'. This can be
+ useful when attempting to disassemble thumb code produced by other
+ compilers.
+
+ For the x86, some of the options duplicate functions of the `-m'
+ switch, but allow finer grained control. Multiple selections from
+ the following may be specified as a comma separated string.
+ `x86-64', `i386' and `i8086' select disassembly for the given
+ architecture. `intel' and `att' select between intel syntax mode
+ and AT&T syntax mode. `intel-mnemonic' and `att-mnemonic' select
+ between intel mnemonic mode and AT&T mnemonic mode.
+ `intel-mnemonic' implies `intel' and `att-mnemonic' implies `att'.
+ `addr64', `addr32', `addr16', `data32' and `data16' specify the
+ default address size and operand size. These four options will be
+ overridden if `x86-64', `i386' or `i8086' appear later in the
+ option string. Lastly, `suffix', when in AT&T mode, instructs the
+ disassembler to print a mnemonic suffix even when the suffix could
+ be inferred by the operands.
+
+ For PowerPC, `booke' controls the disassembly of BookE
+ instructions. `32' and `64' select PowerPC and PowerPC64
+ disassembly, respectively. `e300' selects disassembly for the
+ e300 family. `440' selects disassembly for the PowerPC 440.
+ `ppcps' selects disassembly for the paired single instructions of
+ the PPC750CL.
+
+ For MIPS, this option controls the printing of instruction mnemonic
+ names and register names in disassembled instructions. Multiple
+ selections from the following may be specified as a comma separated
+ string, and invalid options are ignored:
+
+ `no-aliases'
+ Print the 'raw' instruction mnemonic instead of some pseudo
+ instruction mnemonic. I.e., print 'daddu' or 'or' instead of
+ 'move', 'sll' instead of 'nop', etc.
+
+ `gpr-names=ABI'
+ Print GPR (general-purpose register) names as appropriate for
+ the specified ABI. By default, GPR names are selected
+ according to the ABI of the binary being disassembled.
+
+ `fpr-names=ABI'
+ Print FPR (floating-point register) names as appropriate for
+ the specified ABI. By default, FPR numbers are printed
+ rather than names.
+
+ `cp0-names=ARCH'
+ Print CP0 (system control coprocessor; coprocessor 0)
+ register names as appropriate for the CPU or architecture
+ specified by ARCH. By default, CP0 register names are
+ selected according to the architecture and CPU of the binary
+ being disassembled.
+
+ `hwr-names=ARCH'
+ Print HWR (hardware register, used by the `rdhwr'
+ instruction) names as appropriate for the CPU or architecture
+ specified by ARCH. By default, HWR names are selected
+ according to the architecture and CPU of the binary being
+ disassembled.
+
+ `reg-names=ABI'
+ Print GPR and FPR names as appropriate for the selected ABI.
+
+ `reg-names=ARCH'
+ Print CPU-specific register names (CP0 register and HWR names)
+ as appropriate for the selected CPU or architecture.
+
+ For any of the options listed above, ABI or ARCH may be specified
+ as `numeric' to have numbers printed rather than names, for the
+ selected types of registers. You can list the available values of
+ ABI and ARCH using the `--help' option.
+
+ For VAX, you can specify function entry addresses with `-M
+ entry:0xf00ba'. You can use this multiple times to properly
+ disassemble VAX binary files that don't contain symbol tables (like
+ ROM dumps). In these cases, the function entry mask would
+ otherwise be decoded as VAX instructions, which would probably
+ lead the rest of the function being wrongly disassembled.
+
+`-p'
+`--private-headers'
+ Print information that is specific to the object file format. The
+ exact information printed depends upon the object file format.
+ For some object file formats, no additional information is printed.
+
+`-P OPTIONS'
+`--private=OPTIONS'
+ Print information that is specific to the object file format. The
+ argument OPTIONS is a comma separated list that depends on the
+ format (the lists of options is displayed with the help).
+
+ For XCOFF, the available options are: `header', `aout',
+ `sections', `syms', `relocs', `lineno', `loader', `except',
+ `typchk', `traceback' and `toc'.
+
+`-r'
+`--reloc'
+ Print the relocation entries of the file. If used with `-d' or
+ `-D', the relocations are printed interspersed with the
+ disassembly.
+
+`-R'
+`--dynamic-reloc'
+ Print the dynamic relocation entries of the file. This is only
+ meaningful for dynamic objects, such as certain types of shared
+ libraries. As for `-r', if used with `-d' or `-D', the
+ relocations are printed interspersed with the disassembly.
+
+`-s'
+`--full-contents'
+ Display the full contents of any sections requested. By default
+ all non-empty sections are displayed.
+
+`-S'
+`--source'
+ Display source code intermixed with disassembly, if possible.
+ Implies `-d'.
+
+`--prefix=PREFIX'
+ Specify PREFIX to add to the absolute paths when used with `-S'.
+
+`--prefix-strip=LEVEL'
+ Indicate how many initial directory names to strip off the
+ hardwired absolute paths. It has no effect without
+ `--prefix='PREFIX.
+
+`--show-raw-insn'
+ When disassembling instructions, print the instruction in hex as
+ well as in symbolic form. This is the default except when
+ `--prefix-addresses' is used.
+
+`--no-show-raw-insn'
+ When disassembling instructions, do not print the instruction
+ bytes. This is the default when `--prefix-addresses' is used.
+
+`--insn-width=WIDTH'
+ Display WIDTH bytes on a single line when disassembling
+ instructions.
+
+`-W[lLiaprmfFsoRt]'
+`--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]'
+ Displays the contents of the debug sections in the file, if any are
+ present. If one of the optional letters or words follows the
+ switch then only data found in those specific sections will be
+ dumped.
+
+ Note that there is no single letter option to display the content
+ of trace sections or .gdb_index.
+
+ Note: the output from the `=info' option can also be affected by
+ the options `--dwarf-depth' and `--dwarf-start'.
+
+`--dwarf-depth=N'
+ Limit the dump of the `.debug_info' section to N children. This
+ is only useful with `--dwarf=info'. The default is to print all
+ DIEs; the special value 0 for N will also have this effect.
+
+ With a non-zero value for N, DIEs at or deeper than N levels will
+ not be printed. The range for N is zero-based.
+
+`--dwarf-start=N'
+ Print only DIEs beginning with the DIE numbered N. This is only
+ useful with `--dwarf=info'.
+
+ If specified, this option will suppress printing of any header
+ information and all DIEs before the DIE numbered N. Only siblings
+ and children of the specified DIE will be printed.
+
+ This can be used in conjunction with `--dwarf-depth'.
+
+`-G'
+`--stabs'
+ Display the full contents of any sections requested. Display the
+ contents of the .stab and .stab.index and .stab.excl sections from
+ an ELF file. This is only useful on systems (such as Solaris 2.0)
+ in which `.stab' debugging symbol-table entries are carried in an
+ ELF section. In most other file formats, debugging symbol-table
+ entries are interleaved with linkage symbols, and are visible in
+ the `--syms' output. For more information on stabs symbols, see
+ *Note Stabs: (stabs.info)Top.
+
+`--start-address=ADDRESS'
+ Start displaying data at the specified address. This affects the
+ output of the `-d', `-r' and `-s' options.
+
+`--stop-address=ADDRESS'
+ Stop displaying data at the specified address. This affects the
+ output of the `-d', `-r' and `-s' options.
+
+`-t'
+`--syms'
+ Print the symbol table entries of the file. This is similar to
+ the information provided by the `nm' program, although the display
+ format is different. The format of the output depends upon the
+ format of the file being dumped, but there are two main types.
+ One looks like this:
+
+ [ 4](sec 3)(fl 0x00)(ty 0)(scl 3) (nx 1) 0x00000000 .bss
+ [ 6](sec 1)(fl 0x00)(ty 0)(scl 2) (nx 0) 0x00000000 fred
+
+ where the number inside the square brackets is the number of the
+ entry in the symbol table, the SEC number is the section number,
+ the FL value are the symbol's flag bits, the TY number is the
+ symbol's type, the SCL number is the symbol's storage class and
+ the NX value is the number of auxilary entries associated with the
+ symbol. The last two fields are the symbol's value and its name.
+
+ The other common output format, usually seen with ELF based files,
+ looks like this:
+
+ 00000000 l d .bss 00000000 .bss
+ 00000000 g .text 00000000 fred
+
+ Here the first number is the symbol's value (sometimes refered to
+ as its address). The next field is actually a set of characters
+ and spaces indicating the flag bits that are set on the symbol.
+ These characters are described below. Next is the section with
+ which the symbol is associated or _*ABS*_ if the section is
+ absolute (ie not connected with any section), or _*UND*_ if the
+ section is referenced in the file being dumped, but not defined
+ there.
+
+ After the section name comes another field, a number, which for
+ common symbols is the alignment and for other symbol is the size.
+ Finally the symbol's name is displayed.
+
+ The flag characters are divided into 7 groups as follows:
+ `l'
+ `g'
+ `u'
+ `!'
+ The symbol is a local (l), global (g), unique global (u),
+ neither global nor local (a space) or both global and local
+ (!). A symbol can be neither local or global for a variety
+ of reasons, e.g., because it is used for debugging, but it is
+ probably an indication of a bug if it is ever both local and
+ global. Unique global symbols are a GNU extension to the
+ standard set of ELF symbol bindings. For such a symbol the
+ dynamic linker will make sure that in the entire process
+ there is just one symbol with this name and type in use.
+
+ `w'
+ The symbol is weak (w) or strong (a space).
+
+ `C'
+ The symbol denotes a constructor (C) or an ordinary symbol (a
+ space).
+
+ `W'
+ The symbol is a warning (W) or a normal symbol (a space). A
+ warning symbol's name is a message to be displayed if the
+ symbol following the warning symbol is ever referenced.
+
+ `I'
+
+ `i'
+ The symbol is an indirect reference to another symbol (I), a
+ function to be evaluated during reloc processing (i) or a
+ normal symbol (a space).
+
+ `d'
+ `D'
+ The symbol is a debugging symbol (d) or a dynamic symbol (D)
+ or a normal symbol (a space).
+
+ `F'
+
+ `f'
+
+ `O'
+ The symbol is the name of a function (F) or a file (f) or an
+ object (O) or just a normal symbol (a space).
+
+`-T'
+`--dynamic-syms'
+ Print the dynamic symbol table entries of the file. This is only
+ meaningful for dynamic objects, such as certain types of shared
+ libraries. This is similar to the information provided by the `nm'
+ program when given the `-D' (`--dynamic') option.
+
+`--special-syms'
+ When displaying symbols include those which the target considers
+ to be special in some way and which would not normally be of
+ interest to the user.
+
+`-V'
+`--version'
+ Print the version number of `objdump' and exit.
+
+`-x'
+`--all-headers'
+ Display all available header information, including the symbol
+ table and relocation entries. Using `-x' is equivalent to
+ specifying all of `-a -f -h -p -r -t'.
+
+`-w'
+`--wide'
+ Format some lines for output devices that have more than 80
+ columns. Also do not truncate symbol names when they are
+ displayed.
+
+`-z'
+`--disassemble-zeroes'
+ Normally the disassembly output will skip blocks of zeroes. This
+ option directs the disassembler to disassemble those blocks, just
+ like any other data.
+
+
+File: binutils.info, Node: ranlib, Next: readelf, Prev: objdump, Up: Top
+
+5 ranlib
+********
+
+ ranlib [`-vVt'] ARCHIVE
+
+ `ranlib' generates an index to the contents of an archive and stores
+it in the archive. The index lists each symbol defined by a member of
+an archive that is a relocatable object file.
+
+ You may use `nm -s' or `nm --print-armap' to list this index.
+
+ An archive with such an index speeds up linking to the library and
+allows routines in the library to call each other without regard to
+their placement in the archive.
+
+ The GNU `ranlib' program is another form of GNU `ar'; running
+`ranlib' is completely equivalent to executing `ar -s'. *Note ar::.
+
+`-v'
+`-V'
+`--version'
+ Show the version number of `ranlib'.
+
+`-t'
+ Update the timestamp of the symbol map of an archive.
+
+
+File: binutils.info, Node: size, Next: strings, Prev: readelf, Up: Top
+
+6 size
+******
+
+ size [`-A'|`-B'|`--format='COMPATIBILITY]
+ [`--help']
+ [`-d'|`-o'|`-x'|`--radix='NUMBER]
+ [`--common']
+ [`-t'|`--totals']
+ [`--target='BFDNAME] [`-V'|`--version']
+ [OBJFILE...]
+
+ The GNU `size' utility lists the section sizes--and the total
+size--for each of the object or archive files OBJFILE in its argument
+list. By default, one line of output is generated for each object file
+or each module in an archive.
+
+ OBJFILE... are the object files to be examined. If none are
+specified, the file `a.out' will be used.
+
+ The command line options have the following meanings:
+
+`-A'
+`-B'
+`--format=COMPATIBILITY'
+ Using one of these options, you can choose whether the output from
+ GNU `size' resembles output from System V `size' (using `-A', or
+ `--format=sysv'), or Berkeley `size' (using `-B', or
+ `--format=berkeley'). The default is the one-line format similar
+ to Berkeley's.
+
+ Here is an example of the Berkeley (default) format of output from
+ `size':
+ $ size --format=Berkeley ranlib size
+ text data bss dec hex filename
+ 294880 81920 11592 388392 5ed28 ranlib
+ 294880 81920 11888 388688 5ee50 size
+
+ This is the same data, but displayed closer to System V
+ conventions:
+
+ $ size --format=SysV ranlib size
+ ranlib :
+ section size addr
+ .text 294880 8192
+ .data 81920 303104
+ .bss 11592 385024
+ Total 388392
+
+
+ size :
+ section size addr
+ .text 294880 8192
+ .data 81920 303104
+ .bss 11888 385024
+ Total 388688
+
+`--help'
+ Show a summary of acceptable arguments and options.
+
+`-d'
+`-o'
+`-x'
+`--radix=NUMBER'
+ Using one of these options, you can control whether the size of
+ each section is given in decimal (`-d', or `--radix=10'); octal
+ (`-o', or `--radix=8'); or hexadecimal (`-x', or `--radix=16').
+ In `--radix=NUMBER', only the three values (8, 10, 16) are
+ supported. The total size is always given in two radices; decimal
+ and hexadecimal for `-d' or `-x' output, or octal and hexadecimal
+ if you're using `-o'.
+
+`--common'
+ Print total size of common symbols in each file. When using
+ Berkeley format these are included in the bss size.
+
+`-t'
+`--totals'
+ Show totals of all objects listed (Berkeley format listing mode
+ only).
+
+`--target=BFDNAME'
+ Specify that the object-code format for OBJFILE is BFDNAME. This
+ option may not be necessary; `size' can automatically recognize
+ many formats. *Note Target Selection::, for more information.
+
+`-V'
+`--version'
+ Display the version number of `size'.
+
+
+File: binutils.info, Node: strings, Next: strip, Prev: size, Up: Top
+
+7 strings
+*********
+
+ strings [`-afovV'] [`-'MIN-LEN]
+ [`-n' MIN-LEN] [`--bytes='MIN-LEN]
+ [`-t' RADIX] [`--radix='RADIX]
+ [`-e' ENCODING] [`--encoding='ENCODING]
+ [`-'] [`--all'] [`--print-file-name']
+ [`-T' BFDNAME] [`--target='BFDNAME]
+ [`--help'] [`--version'] FILE...
+
+ For each FILE given, GNU `strings' prints the printable character
+sequences that are at least 4 characters long (or the number given with
+the options below) and are followed by an unprintable character. By
+default, it only prints the strings from the initialized and loaded
+sections of object files; for other types of files, it prints the
+strings from the whole file.
+
+ `strings' is mainly useful for determining the contents of non-text
+files.
+
+`-a'
+`--all'
+`-'
+ Do not scan only the initialized and loaded sections of object
+ files; scan the whole files.
+
+`-f'
+`--print-file-name'
+ Print the name of the file before each string.
+
+`--help'
+ Print a summary of the program usage on the standard output and
+ exit.
+
+`-MIN-LEN'
+`-n MIN-LEN'
+`--bytes=MIN-LEN'
+ Print sequences of characters that are at least MIN-LEN characters
+ long, instead of the default 4.
+
+`-o'
+ Like `-t o'. Some other versions of `strings' have `-o' act like
+ `-t d' instead. Since we can not be compatible with both ways, we
+ simply chose one.
+
+`-t RADIX'
+`--radix=RADIX'
+ Print the offset within the file before each string. The single
+ character argument specifies the radix of the offset--`o' for
+ octal, `x' for hexadecimal, or `d' for decimal.
+
+`-e ENCODING'
+`--encoding=ENCODING'
+ Select the character encoding of the strings that are to be found.
+ Possible values for ENCODING are: `s' = single-7-bit-byte
+ characters (ASCII, ISO 8859, etc., default), `S' =
+ single-8-bit-byte characters, `b' = 16-bit bigendian, `l' = 16-bit
+ littleendian, `B' = 32-bit bigendian, `L' = 32-bit littleendian.
+ Useful for finding wide character strings. (`l' and `b' apply to,
+ for example, Unicode UTF-16/UCS-2 encodings).
+
+`-T BFDNAME'
+`--target=BFDNAME'
+ Specify an object code format other than your system's default
+ format. *Note Target Selection::, for more information.
+
+`-v'
+`-V'
+`--version'
+ Print the program version number on the standard output and exit.
+
+
+File: binutils.info, Node: strip, Next: elfedit, Prev: strings, Up: Top
+
+8 strip
+*******
+
+ strip [`-F' BFDNAME |`--target='BFDNAME]
+ [`-I' BFDNAME |`--input-target='BFDNAME]
+ [`-O' BFDNAME |`--output-target='BFDNAME]
+ [`-s'|`--strip-all']
+ [`-S'|`-g'|`-d'|`--strip-debug']
+ [`-K' SYMBOLNAME |`--keep-symbol='SYMBOLNAME]
+ [`-N' SYMBOLNAME |`--strip-symbol='SYMBOLNAME]
+ [`-w'|`--wildcard']
+ [`-x'|`--discard-all'] [`-X' |`--discard-locals']
+ [`-R' SECTIONNAME |`--remove-section='SECTIONNAME]
+ [`-o' FILE] [`-p'|`--preserve-dates']
+ [`--keep-file-symbols']
+ [`--only-keep-debug']
+ [`-v' |`--verbose'] [`-V'|`--version']
+ [`--help'] [`--info']
+ OBJFILE...
+
+ GNU `strip' discards all symbols from object files OBJFILE. The
+list of object files may include archives. At least one object file
+must be given.
+
+ `strip' modifies the files named in its argument, rather than
+writing modified copies under different names.
+
+`-F BFDNAME'
+`--target=BFDNAME'
+ Treat the original OBJFILE as a file with the object code format
+ BFDNAME, and rewrite it in the same format. *Note Target
+ Selection::, for more information.
+
+`--help'
+ Show a summary of the options to `strip' and exit.
+
+`--info'
+ Display a list showing all architectures and object formats
+ available.
+
+`-I BFDNAME'
+`--input-target=BFDNAME'
+ Treat the original OBJFILE as a file with the object code format
+ BFDNAME. *Note Target Selection::, for more information.
+
+`-O BFDNAME'
+`--output-target=BFDNAME'
+ Replace OBJFILE with a file in the output format BFDNAME. *Note
+ Target Selection::, for more information.
+
+`-R SECTIONNAME'
+`--remove-section=SECTIONNAME'
+ Remove any section named SECTIONNAME from the output file. This
+ option may be given more than once. Note that using this option
+ inappropriately may make the output file unusable.
+
+`-s'
+`--strip-all'
+ Remove all symbols.
+
+`-g'
+`-S'
+`-d'
+`--strip-debug'
+ Remove debugging symbols only.
+
+`--strip-unneeded'
+ Remove all symbols that are not needed for relocation processing.
+
+`-K SYMBOLNAME'
+`--keep-symbol=SYMBOLNAME'
+ When stripping symbols, keep symbol SYMBOLNAME even if it would
+ normally be stripped. This option may be given more than once.
+
+`-N SYMBOLNAME'
+`--strip-symbol=SYMBOLNAME'
+ Remove symbol SYMBOLNAME from the source file. This option may be
+ given more than once, and may be combined with strip options other
+ than `-K'.
+
+`-o FILE'
+ Put the stripped output in FILE, rather than replacing the
+ existing file. When this argument is used, only one OBJFILE
+ argument may be specified.
+
+`-p'
+`--preserve-dates'
+ Preserve the access and modification dates of the file.
+
+`-w'
+`--wildcard'
+ Permit regular expressions in SYMBOLNAMEs used in other command
+ line options. The question mark (?), asterisk (*), backslash (\)
+ and square brackets ([]) operators can be used anywhere in the
+ symbol name. If the first character of the symbol name is the
+ exclamation point (!) then the sense of the switch is reversed for
+ that symbol. For example:
+
+ -w -K !foo -K fo*
+
+ would cause strip to only keep symbols that start with the letters
+ "fo", but to discard the symbol "foo".
+
+`-x'
+`--discard-all'
+ Remove non-global symbols.
+
+`-X'
+`--discard-locals'
+ Remove compiler-generated local symbols. (These usually start
+ with `L' or `.'.)
+
+`--keep-file-symbols'
+ When stripping a file, perhaps with `--strip-debug' or
+ `--strip-unneeded', retain any symbols specifying source file
+ names, which would otherwise get stripped.
+
+`--only-keep-debug'
+ Strip a file, removing contents of any sections that would not be
+ stripped by `--strip-debug' and leaving the debugging sections
+ intact. In ELF files, this preserves all note sections in the
+ output.
+
+ The intention is that this option will be used in conjunction with
+ `--add-gnu-debuglink' to create a two part executable. One a
+ stripped binary which will occupy less space in RAM and in a
+ distribution and the second a debugging information file which is
+ only needed if debugging abilities are required. The suggested
+ procedure to create these files is as follows:
+
+ 1. Link the executable as normal. Assuming that is is called
+ `foo' then...
+
+ 2. Run `objcopy --only-keep-debug foo foo.dbg' to create a file
+ containing the debugging info.
+
+ 3. Run `objcopy --strip-debug foo' to create a stripped
+ executable.
+
+ 4. Run `objcopy --add-gnu-debuglink=foo.dbg foo' to add a link
+ to the debugging info into the stripped executable.
+
+ Note--the choice of `.dbg' as an extension for the debug info file
+ is arbitrary. Also the `--only-keep-debug' step is optional. You
+ could instead do this:
+
+ 1. Link the executable as normal.
+
+ 2. Copy `foo' to `foo.full'
+
+ 3. Run `strip --strip-debug foo'
+
+ 4. Run `objcopy --add-gnu-debuglink=foo.full foo'
+
+ i.e., the file pointed to by the `--add-gnu-debuglink' can be the
+ full executable. It does not have to be a file created by the
+ `--only-keep-debug' switch.
+
+ Note--this switch is only intended for use on fully linked files.
+ It does not make sense to use it on object files where the
+ debugging information may be incomplete. Besides the
+ gnu_debuglink feature currently only supports the presence of one
+ filename containing debugging information, not multiple filenames
+ on a one-per-object-file basis.
+
+`-V'
+`--version'
+ Show the version number for `strip'.
+
+`-v'
+`--verbose'
+ Verbose output: list all object files modified. In the case of
+ archives, `strip -v' lists all members of the archive.
+
+
+File: binutils.info, Node: c++filt, Next: addr2line, Prev: elfedit, Up: Top
+
+9 c++filt
+*********
+
+ c++filt [`-_'|`--strip-underscores']
+ [`-n'|`--no-strip-underscores']
+ [`-p'|`--no-params']
+ [`-t'|`--types']
+ [`-i'|`--no-verbose']
+ [`-s' FORMAT|`--format='FORMAT]
+ [`--help'] [`--version'] [SYMBOL...]
+
+ The C++ and Java languages provide function overloading, which means
+that you can write many functions with the same name, providing that
+each function takes parameters of different types. In order to be able
+to distinguish these similarly named functions C++ and Java encode them
+into a low-level assembler name which uniquely identifies each
+different version. This process is known as "mangling". The `c++filt'
+(1) program does the inverse mapping: it decodes ("demangles") low-level
+names into user-level names so that they can be read.
+
+ Every alphanumeric word (consisting of letters, digits, underscores,
+dollars, or periods) seen in the input is a potential mangled name. If
+the name decodes into a C++ name, the C++ name replaces the low-level
+name in the output, otherwise the original word is output. In this way
+you can pass an entire assembler source file, containing mangled names,
+through `c++filt' and see the same source file containing demangled
+names.
+
+ You can also use `c++filt' to decipher individual symbols by passing
+them on the command line:
+
+ c++filt SYMBOL
+
+ If no SYMBOL arguments are given, `c++filt' reads symbol names from
+the standard input instead. All the results are printed on the
+standard output. The difference between reading names from the command
+line versus reading names from the standard input is that command line
+arguments are expected to be just mangled names and no checking is
+performed to separate them from surrounding text. Thus for example:
+
+ c++filt -n _Z1fv
+
+ will work and demangle the name to "f()" whereas:
+
+ c++filt -n _Z1fv,
+
+ will not work. (Note the extra comma at the end of the mangled name
+which makes it invalid). This command however will work:
+
+ echo _Z1fv, | c++filt -n
+
+ and will display "f(),", i.e., the demangled name followed by a
+trailing comma. This behaviour is because when the names are read from
+the standard input it is expected that they might be part of an
+assembler source file where there might be extra, extraneous characters
+trailing after a mangled name. For example:
+
+ .type _Z1fv, @function
+
+`-_'
+`--strip-underscores'
+ On some systems, both the C and C++ compilers put an underscore in
+ front of every name. For example, the C name `foo' gets the
+ low-level name `_foo'. This option removes the initial
+ underscore. Whether `c++filt' removes the underscore by default
+ is target dependent.
+
+`-n'
+`--no-strip-underscores'
+ Do not remove the initial underscore.
+
+`-p'
+`--no-params'
+ When demangling the name of a function, do not display the types of
+ the function's parameters.
+
+`-t'
+`--types'
+ Attempt to demangle types as well as function names. This is
+ disabled by default since mangled types are normally only used
+ internally in the compiler, and they can be confused with
+ non-mangled names. For example, a function called "a" treated as
+ a mangled type name would be demangled to "signed char".
+
+`-i'
+`--no-verbose'
+ Do not include implementation details (if any) in the demangled
+ output.
+
+`-s FORMAT'
+`--format=FORMAT'
+ `c++filt' can decode various methods of mangling, used by
+ different compilers. The argument to this option selects which
+ method it uses:
+
+ `auto'
+ Automatic selection based on executable (the default method)
+
+ `gnu'
+ the one used by the GNU C++ compiler (g++)
+
+ `lucid'
+ the one used by the Lucid compiler (lcc)
+
+ `arm'
+ the one specified by the C++ Annotated Reference Manual
+
+ `hp'
+ the one used by the HP compiler (aCC)
+
+ `edg'
+ the one used by the EDG compiler
+
+ `gnu-v3'
+ the one used by the GNU C++ compiler (g++) with the V3 ABI.
+
+ `java'
+ the one used by the GNU Java compiler (gcj)
+
+ `gnat'
+ the one used by the GNU Ada compiler (GNAT).
+
+`--help'
+ Print a summary of the options to `c++filt' and exit.
+
+`--version'
+ Print the version number of `c++filt' and exit.
+
+ _Warning:_ `c++filt' is a new utility, and the details of its user
+ interface are subject to change in future releases. In particular,
+ a command-line option may be required in the future to decode a
+ name passed as an argument on the command line; in other words,
+
+ c++filt SYMBOL
+
+ may in a future release become
+
+ c++filt OPTION SYMBOL
+
+ ---------- Footnotes ----------
+
+ (1) MS-DOS does not allow `+' characters in file names, so on MS-DOS
+this program is named `CXXFILT'.
+
+
+File: binutils.info, Node: addr2line, Next: nlmconv, Prev: c++filt, Up: Top
+
+10 addr2line
+************
+
+ addr2line [`-a'|`--addresses']
+ [`-b' BFDNAME|`--target='BFDNAME]
+ [`-C'|`--demangle'[=STYLE]]
+ [`-e' FILENAME|`--exe='FILENAME]
+ [`-f'|`--functions'] [`-s'|`--basename']
+ [`-i'|`--inlines']
+ [`-p'|`--pretty-print']
+ [`-j'|`--section='NAME]
+ [`-H'|`--help'] [`-V'|`--version']
+ [addr addr ...]
+
+ `addr2line' translates addresses into file names and line numbers.
+Given an address in an executable or an offset in a section of a
+relocatable object, it uses the debugging information to figure out
+which file name and line number are associated with it.
+
+ The executable or relocatable object to use is specified with the
+`-e' option. The default is the file `a.out'. The section in the
+relocatable object to use is specified with the `-j' option.
+
+ `addr2line' has two modes of operation.
+
+ In the first, hexadecimal addresses are specified on the command
+line, and `addr2line' displays the file name and line number for each
+address.
+
+ In the second, `addr2line' reads hexadecimal addresses from standard
+input, and prints the file name and line number for each address on
+standard output. In this mode, `addr2line' may be used in a pipe to
+convert dynamically chosen addresses.
+
+ The format of the output is `FILENAME:LINENO'. The file name and
+line number for each address is printed on a separate line. If the
+`-f' option is used, then each `FILENAME:LINENO' line is preceded by a
+`FUNCTIONNAME' line which is the name of the function containing the
+address. If the `-a' option is used, then the address read is first
+printed.
+
+ If the file name or function name can not be determined, `addr2line'
+will print two question marks in their place. If the line number can
+not be determined, `addr2line' will print 0.
+
+ The long and short forms of options, shown here as alternatives, are
+equivalent.
+
+`-a'
+`--addresses'
+ Display address before function names or file and line number
+ information. The address is printed with a `0x' prefix to easily
+ identify it.
+
+`-b BFDNAME'
+`--target=BFDNAME'
+ Specify that the object-code format for the object files is
+ BFDNAME.
+
+`-C'
+`--demangle[=STYLE]'
+ Decode ("demangle") low-level symbol names into user-level names.
+ Besides removing any initial underscore prepended by the system,
+ this makes C++ function names readable. Different compilers have
+ different mangling styles. The optional demangling style argument
+ can be used to choose an appropriate demangling style for your
+ compiler. *Note c++filt::, for more information on demangling.
+
+`-e FILENAME'
+`--exe=FILENAME'
+ Specify the name of the executable for which addresses should be
+ translated. The default file is `a.out'.
+
+`-f'
+`--functions'
+ Display function names as well as file and line number information.
+
+`-s'
+`--basenames'
+ Display only the base of each file name.
+
+`-i'
+`--inlines'
+ If the address belongs to a function that was inlined, the source
+ information for all enclosing scopes back to the first non-inlined
+ function will also be printed. For example, if `main' inlines
+ `callee1' which inlines `callee2', and address is from `callee2',
+ the source information for `callee1' and `main' will also be
+ printed.
+
+`-j'
+`--section'
+ Read offsets relative to the specified section instead of absolute
+ addresses.
+
+`-p'
+`--pretty-print'
+ Make the output more human friendly: each location are printed on
+ one line. If option `-i' is specified, lines for all enclosing
+ scopes are prefixed with `(inlined by)'.
+
+
+File: binutils.info, Node: nlmconv, Next: windres, Prev: addr2line, Up: Top
+
+11 nlmconv
+**********
+
+`nlmconv' converts a relocatable object file into a NetWare Loadable
+Module.
+
+ _Warning:_ `nlmconv' is not always built as part of the binary
+ utilities, since it is only useful for NLM targets.
+
+ nlmconv [`-I' BFDNAME|`--input-target='BFDNAME]
+ [`-O' BFDNAME|`--output-target='BFDNAME]
+ [`-T' HEADERFILE|`--header-file='HEADERFILE]
+ [`-d'|`--debug'] [`-l' LINKER|`--linker='LINKER]
+ [`-h'|`--help'] [`-V'|`--version']
+ INFILE OUTFILE
+
+ `nlmconv' converts the relocatable `i386' object file INFILE into
+the NetWare Loadable Module OUTFILE, optionally reading HEADERFILE for
+NLM header information. For instructions on writing the NLM command
+file language used in header files, see the `linkers' section,
+`NLMLINK' in particular, of the `NLM Development and Tools Overview',
+which is part of the NLM Software Developer's Kit ("NLM SDK"),
+available from Novell, Inc. `nlmconv' uses the GNU Binary File
+Descriptor library to read INFILE; see *Note BFD: (ld.info)BFD, for
+more information.
+
+ `nlmconv' can perform a link step. In other words, you can list
+more than one object file for input if you list them in the definitions
+file (rather than simply specifying one input file on the command line).
+In this case, `nlmconv' calls the linker for you.
+
+`-I BFDNAME'
+`--input-target=BFDNAME'
+ Object format of the input file. `nlmconv' can usually determine
+ the format of a given file (so no default is necessary). *Note
+ Target Selection::, for more information.
+
+`-O BFDNAME'
+`--output-target=BFDNAME'
+ Object format of the output file. `nlmconv' infers the output
+ format based on the input format, e.g. for a `i386' input file the
+ output format is `nlm32-i386'. *Note Target Selection::, for more
+ information.
+
+`-T HEADERFILE'
+`--header-file=HEADERFILE'
+ Reads HEADERFILE for NLM header information. For instructions on
+ writing the NLM command file language used in header files, see
+ see the `linkers' section, of the `NLM Development and Tools
+ Overview', which is part of the NLM Software Developer's Kit,
+ available from Novell, Inc.
+
+`-d'
+`--debug'
+ Displays (on standard error) the linker command line used by
+ `nlmconv'.
+
+`-l LINKER'
+`--linker=LINKER'
+ Use LINKER for any linking. LINKER can be an absolute or a
+ relative pathname.
+
+`-h'
+`--help'
+ Prints a usage summary.
+
+`-V'
+`--version'
+ Prints the version number for `nlmconv'.
+
+
+File: binutils.info, Node: windmc, Next: dlltool, Prev: windres, Up: Top
+
+12 windmc
+*********
+
+`windmc' may be used to generator Windows message resources.
+
+ _Warning:_ `windmc' is not always built as part of the binary
+ utilities, since it is only useful for Windows targets.
+
+ windmc [options] input-file
+
+ `windmc' reads message definitions from an input file (.mc) and
+translate them into a set of output files. The output files may be of
+four kinds:
+
+`h'
+ A C header file containing the message definitions.
+
+`rc'
+ A resource file compilable by the `windres' tool.
+
+`bin'
+ One or more binary files containing the resource data for a
+ specific message language.
+
+`dbg'
+ A C include file that maps message id's to their symbolic name.
+
+ The exact description of these different formats is available in
+documentation from Microsoft.
+
+ When `windmc' converts from the `mc' format to the `bin' format,
+`rc', `h', and optional `dbg' it is acting like the Windows Message
+Compiler.
+
+`-a'
+`--ascii_in'
+ Specifies that the input file specified is ASCII. This is the
+ default behaviour.
+
+`-A'
+`--ascii_out'
+ Specifies that messages in the output `bin' files should be in
+ ASCII format.
+
+`-b'
+`--binprefix'
+ Specifies that `bin' filenames should have to be prefixed by the
+ basename of the source file.
+
+`-c'
+`--customflag'
+ Sets the customer bit in all message id's.
+
+`-C CODEPAGE'
+`--codepage_in CODEPAGE'
+ Sets the default codepage to be used to convert input file to
+ UTF16. The default is ocdepage 1252.
+
+`-d'
+`--decimal_values'
+ Outputs the constants in the header file in decimal. Default is
+ using hexadecimal output.
+
+`-e EXT'
+`--extension EXT'
+ The extension for the header file. The default is .h extension.
+
+`-F TARGET'
+`--target TARGET'
+ Specify the BFD format to use for a bin file as output. This is a
+ BFD target name; you can use the `--help' option to see a list of
+ supported targets. Normally `windmc' will use the default format,
+ which is the first one listed by the `--help' option. *Note
+ Target Selection::.
+
+`-h PATH'
+`--headerdir PATH'
+ The target directory of the generated header file. The default is
+ the current directory.
+
+`-H'
+`--help'
+ Displays a list of command line options and then exits.
+
+`-m CHARACTERS'
+`--maxlength CHARACTERS'
+ Instructs `windmc' to generate a warning if the length of any
+ message exceeds the number specified.
+
+`-n'
+`--nullterminate'
+ Terminate message text in `bin' files by zero. By default they are
+ terminated by CR/LF.
+
+`-o'
+`--hresult_use'
+ Not yet implemented. Instructs `windmc' to generate an OLE2 header
+ file, using HRESULT definitions. Status codes are used if the flag
+ is not specified.
+
+`-O CODEPAGE'
+`--codepage_out CODEPAGE'
+ Sets the default codepage to be used to output text files. The
+ default is ocdepage 1252.
+
+`-r PATH'
+`--rcdir PATH'
+ The target directory for the generated `rc' script and the
+ generated `bin' files that the resource compiler script includes.
+ The default is the current directory.
+
+`-u'
+`--unicode_in'
+ Specifies that the input file is UTF16.
+
+`-U'
+`--unicode_out'
+ Specifies that messages in the output `bin' file should be in UTF16
+ format. This is the default behaviour.
+
+`-v'
+
+`--verbose'
+ Enable verbose mode.
+
+`-V'
+
+`--version'
+ Prints the version number for `windmc'.
+
+`-x PATH'
+`--xdgb PATH'
+ The path of the `dbg' C include file that maps message id's to the
+ symbolic name. No such file is generated without specifying the
+ switch.
+
+
+File: binutils.info, Node: windres, Next: windmc, Prev: nlmconv, Up: Top
+
+13 windres
+**********
+
+`windres' may be used to manipulate Windows resources.
+
+ _Warning:_ `windres' is not always built as part of the binary
+ utilities, since it is only useful for Windows targets.
+
+ windres [options] [input-file] [output-file]
+
+ `windres' reads resources from an input file and copies them into an
+output file. Either file may be in one of three formats:
+
+`rc'
+ A text format read by the Resource Compiler.
+
+`res'
+ A binary format generated by the Resource Compiler.
+
+`coff'
+ A COFF object or executable.
+
+ The exact description of these different formats is available in
+documentation from Microsoft.
+
+ When `windres' converts from the `rc' format to the `res' format, it
+is acting like the Windows Resource Compiler. When `windres' converts
+from the `res' format to the `coff' format, it is acting like the
+Windows `CVTRES' program.
+
+ When `windres' generates an `rc' file, the output is similar but not
+identical to the format expected for the input. When an input `rc'
+file refers to an external filename, an output `rc' file will instead
+include the file contents.
+
+ If the input or output format is not specified, `windres' will guess
+based on the file name, or, for the input file, the file contents. A
+file with an extension of `.rc' will be treated as an `rc' file, a file
+with an extension of `.res' will be treated as a `res' file, and a file
+with an extension of `.o' or `.exe' will be treated as a `coff' file.
+
+ If no output file is specified, `windres' will print the resources
+in `rc' format to standard output.
+
+ The normal use is for you to write an `rc' file, use `windres' to
+convert it to a COFF object file, and then link the COFF file into your
+application. This will make the resources described in the `rc' file
+available to Windows.
+
+`-i FILENAME'
+`--input FILENAME'
+ The name of the input file. If this option is not used, then
+ `windres' will use the first non-option argument as the input file
+ name. If there are no non-option arguments, then `windres' will
+ read from standard input. `windres' can not read a COFF file from
+ standard input.
+
+`-o FILENAME'
+`--output FILENAME'
+ The name of the output file. If this option is not used, then
+ `windres' will use the first non-option argument, after any used
+ for the input file name, as the output file name. If there is no
+ non-option argument, then `windres' will write to standard output.
+ `windres' can not write a COFF file to standard output. Note, for
+ compatibility with `rc' the option `-fo' is also accepted, but its
+ use is not recommended.
+
+`-J FORMAT'
+`--input-format FORMAT'
+ The input format to read. FORMAT may be `res', `rc', or `coff'.
+ If no input format is specified, `windres' will guess, as
+ described above.
+
+`-O FORMAT'
+`--output-format FORMAT'
+ The output format to generate. FORMAT may be `res', `rc', or
+ `coff'. If no output format is specified, `windres' will guess,
+ as described above.
+
+`-F TARGET'
+`--target TARGET'
+ Specify the BFD format to use for a COFF file as input or output.
+ This is a BFD target name; you can use the `--help' option to see
+ a list of supported targets. Normally `windres' will use the
+ default format, which is the first one listed by the `--help'
+ option. *Note Target Selection::.
+
+`--preprocessor PROGRAM'
+ When `windres' reads an `rc' file, it runs it through the C
+ preprocessor first. This option may be used to specify the
+ preprocessor to use, including any leading arguments. The default
+ preprocessor argument is `gcc -E -xc-header -DRC_INVOKED'.
+
+`--preprocessor-arg OPTION'
+ When `windres' reads an `rc' file, it runs it through the C
+ preprocessor first. This option may be used to specify additional
+ text to be passed to preprocessor on its command line. This
+ option can be used multiple times to add multiple options to the
+ preprocessor command line.
+
+`-I DIRECTORY'
+`--include-dir DIRECTORY'
+ Specify an include directory to use when reading an `rc' file.
+ `windres' will pass this to the preprocessor as an `-I' option.
+ `windres' will also search this directory when looking for files
+ named in the `rc' file. If the argument passed to this command
+ matches any of the supported FORMATS (as described in the `-J'
+ option), it will issue a deprecation warning, and behave just like
+ the `-J' option. New programs should not use this behaviour. If a
+ directory happens to match a FORMAT, simple prefix it with `./' to
+ disable the backward compatibility.
+
+`-D TARGET'
+`--define SYM[=VAL]'
+ Specify a `-D' option to pass to the preprocessor when reading an
+ `rc' file.
+
+`-U TARGET'
+`--undefine SYM'
+ Specify a `-U' option to pass to the preprocessor when reading an
+ `rc' file.
+
+`-r'
+ Ignored for compatibility with rc.
+
+`-v'
+ Enable verbose mode. This tells you what the preprocessor is if
+ you didn't specify one.
+
+`-c VAL'
+
+`--codepage VAL'
+ Specify the default codepage to use when reading an `rc' file.
+ VAL should be a hexadecimal prefixed by `0x' or decimal codepage
+ code. The valid range is from zero up to 0xffff, but the validity
+ of the codepage is host and configuration dependent.
+
+`-l VAL'
+
+`--language VAL'
+ Specify the default language to use when reading an `rc' file.
+ VAL should be a hexadecimal language code. The low eight bits are
+ the language, and the high eight bits are the sublanguage.
+
+`--use-temp-file'
+ Use a temporary file to instead of using popen to read the output
+ of the preprocessor. Use this option if the popen implementation
+ is buggy on the host (eg., certain non-English language versions
+ of Windows 95 and Windows 98 are known to have buggy popen where
+ the output will instead go the console).
+
+`--no-use-temp-file'
+ Use popen, not a temporary file, to read the output of the
+ preprocessor. This is the default behaviour.
+
+`-h'
+
+`--help'
+ Prints a usage summary.
+
+`-V'
+
+`--version'
+ Prints the version number for `windres'.
+
+`--yydebug'
+ If `windres' is compiled with `YYDEBUG' defined as `1', this will
+ turn on parser debugging.
+
+
+File: binutils.info, Node: dlltool, Next: Common Options, Prev: windmc, Up: Top
+
+14 dlltool
+**********
+
+`dlltool' is used to create the files needed to create dynamic link
+libraries (DLLs) on systems which understand PE format image files such
+as Windows. A DLL contains an export table which contains information
+that the runtime loader needs to resolve references from a referencing
+program.
+
+ The export table is generated by this program by reading in a `.def'
+file or scanning the `.a' and `.o' files which will be in the DLL. A
+`.o' file can contain information in special `.drectve' sections with
+export information.
+
+ _Note:_ `dlltool' is not always built as part of the binary
+ utilities, since it is only useful for those targets which support
+ DLLs.
+
+ dlltool [`-d'|`--input-def' DEF-FILE-NAME]
+ [`-b'|`--base-file' BASE-FILE-NAME]
+ [`-e'|`--output-exp' EXPORTS-FILE-NAME]
+ [`-z'|`--output-def' DEF-FILE-NAME]
+ [`-l'|`--output-lib' LIBRARY-FILE-NAME]
+ [`-y'|`--output-delaylib' LIBRARY-FILE-NAME]
+ [`--export-all-symbols'] [`--no-export-all-symbols']
+ [`--exclude-symbols' LIST]
+ [`--no-default-excludes']
+ [`-S'|`--as' PATH-TO-ASSEMBLER] [`-f'|`--as-flags' OPTIONS]
+ [`-D'|`--dllname' NAME] [`-m'|`--machine' MACHINE]
+ [`-a'|`--add-indirect']
+ [`-U'|`--add-underscore'] [`--add-stdcall-underscore']
+ [`-k'|`--kill-at'] [`-A'|`--add-stdcall-alias']
+ [`-p'|`--ext-prefix-alias' PREFIX]
+ [`-x'|`--no-idata4'] [`-c'|`--no-idata5']
+ [`--use-nul-prefixed-import-tables']
+ [`-I'|`--identify' LIBRARY-FILE-NAME] [`--identify-strict']
+ [`-i'|`--interwork']
+ [`-n'|`--nodelete'] [`-t'|`--temp-prefix' PREFIX]
+ [`-v'|`--verbose']
+ [`-h'|`--help'] [`-V'|`--version']
+ [`--no-leading-underscore'] [`--leading-underscore']
+ [object-file ...]
+
+ `dlltool' reads its inputs, which can come from the `-d' and `-b'
+options as well as object files specified on the command line. It then
+processes these inputs and if the `-e' option has been specified it
+creates a exports file. If the `-l' option has been specified it
+creates a library file and if the `-z' option has been specified it
+creates a def file. Any or all of the `-e', `-l' and `-z' options can
+be present in one invocation of dlltool.
+
+ When creating a DLL, along with the source for the DLL, it is
+necessary to have three other files. `dlltool' can help with the
+creation of these files.
+
+ The first file is a `.def' file which specifies which functions are
+exported from the DLL, which functions the DLL imports, and so on. This
+is a text file and can be created by hand, or `dlltool' can be used to
+create it using the `-z' option. In this case `dlltool' will scan the
+object files specified on its command line looking for those functions
+which have been specially marked as being exported and put entries for
+them in the `.def' file it creates.
+
+ In order to mark a function as being exported from a DLL, it needs to
+have an `-export:<name_of_function>' entry in the `.drectve' section of
+the object file. This can be done in C by using the asm() operator:
+
+ asm (".section .drectve");
+ asm (".ascii \"-export:my_func\"");
+
+ int my_func (void) { ... }
+
+ The second file needed for DLL creation is an exports file. This
+file is linked with the object files that make up the body of the DLL
+and it handles the interface between the DLL and the outside world.
+This is a binary file and it can be created by giving the `-e' option to
+`dlltool' when it is creating or reading in a `.def' file.
+
+ The third file needed for DLL creation is the library file that
+programs will link with in order to access the functions in the DLL (an
+`import library'). This file can be created by giving the `-l' option
+to dlltool when it is creating or reading in a `.def' file.
+
+ If the `-y' option is specified, dlltool generates a delay-import
+library that can be used instead of the normal import library to allow
+a program to link to the dll only as soon as an imported function is
+called for the first time. The resulting executable will need to be
+linked to the static delayimp library containing __delayLoadHelper2(),
+which in turn will import LoadLibraryA and GetProcAddress from kernel32.
+
+ `dlltool' builds the library file by hand, but it builds the exports
+file by creating temporary files containing assembler statements and
+then assembling these. The `-S' command line option can be used to
+specify the path to the assembler that dlltool will use, and the `-f'
+option can be used to pass specific flags to that assembler. The `-n'
+can be used to prevent dlltool from deleting these temporary assembler
+files when it is done, and if `-n' is specified twice then this will
+prevent dlltool from deleting the temporary object files it used to
+build the library.
+
+ Here is an example of creating a DLL from a source file `dll.c' and
+also creating a program (from an object file called `program.o') that
+uses that DLL:
+
+ gcc -c dll.c
+ dlltool -e exports.o -l dll.lib dll.o
+ gcc dll.o exports.o -o dll.dll
+ gcc program.o dll.lib -o program
+
+ `dlltool' may also be used to query an existing import library to
+determine the name of the DLL to which it is associated. See the
+description of the `-I' or `--identify' option.
+
+ The command line options have the following meanings:
+
+`-d FILENAME'
+`--input-def FILENAME'
+ Specifies the name of a `.def' file to be read in and processed.
+
+`-b FILENAME'
+`--base-file FILENAME'
+ Specifies the name of a base file to be read in and processed. The
+ contents of this file will be added to the relocation section in
+ the exports file generated by dlltool.
+
+`-e FILENAME'
+`--output-exp FILENAME'
+ Specifies the name of the export file to be created by dlltool.
+
+`-z FILENAME'
+`--output-def FILENAME'
+ Specifies the name of the `.def' file to be created by dlltool.
+
+`-l FILENAME'
+`--output-lib FILENAME'
+ Specifies the name of the library file to be created by dlltool.
+
+`-y FILENAME'
+`--output-delaylib FILENAME'
+ Specifies the name of the delay-import library file to be created
+ by dlltool.
+
+`--export-all-symbols'
+ Treat all global and weak defined symbols found in the input object
+ files as symbols to be exported. There is a small list of symbols
+ which are not exported by default; see the `--no-default-excludes'
+ option. You may add to the list of symbols to not export by using
+ the `--exclude-symbols' option.
+
+`--no-export-all-symbols'
+ Only export symbols explicitly listed in an input `.def' file or in
+ `.drectve' sections in the input object files. This is the default
+ behaviour. The `.drectve' sections are created by `dllexport'
+ attributes in the source code.
+
+`--exclude-symbols LIST'
+ Do not export the symbols in LIST. This is a list of symbol names
+ separated by comma or colon characters. The symbol names should
+ not contain a leading underscore. This is only meaningful when
+ `--export-all-symbols' is used.
+
+`--no-default-excludes'
+ When `--export-all-symbols' is used, it will by default avoid
+ exporting certain special symbols. The current list of symbols to
+ avoid exporting is `DllMain@12', `DllEntryPoint@0', `impure_ptr'.
+ You may use the `--no-default-excludes' option to go ahead and
+ export these special symbols. This is only meaningful when
+ `--export-all-symbols' is used.
+
+`-S PATH'
+`--as PATH'
+ Specifies the path, including the filename, of the assembler to be
+ used to create the exports file.
+
+`-f OPTIONS'
+`--as-flags OPTIONS'
+ Specifies any specific command line options to be passed to the
+ assembler when building the exports file. This option will work
+ even if the `-S' option is not used. This option only takes one
+ argument, and if it occurs more than once on the command line,
+ then later occurrences will override earlier occurrences. So if
+ it is necessary to pass multiple options to the assembler they
+ should be enclosed in double quotes.
+
+`-D NAME'
+`--dll-name NAME'
+ Specifies the name to be stored in the `.def' file as the name of
+ the DLL when the `-e' option is used. If this option is not
+ present, then the filename given to the `-e' option will be used
+ as the name of the DLL.
+
+`-m MACHINE'
+`-machine MACHINE'
+ Specifies the type of machine for which the library file should be
+ built. `dlltool' has a built in default type, depending upon how
+ it was created, but this option can be used to override that.
+ This is normally only useful when creating DLLs for an ARM
+ processor, when the contents of the DLL are actually encode using
+ Thumb instructions.
+
+`-a'
+`--add-indirect'
+ Specifies that when `dlltool' is creating the exports file it
+ should add a section which allows the exported functions to be
+ referenced without using the import library. Whatever the hell
+ that means!
+
+`-U'
+`--add-underscore'
+ Specifies that when `dlltool' is creating the exports file it
+ should prepend an underscore to the names of _all_ exported
+ symbols.
+
+`--no-leading-underscore'
+
+`--leading-underscore'
+ Specifies whether standard symbol should be forced to be prefixed,
+ or not.
+
+`--add-stdcall-underscore'
+ Specifies that when `dlltool' is creating the exports file it
+ should prepend an underscore to the names of exported _stdcall_
+ functions. Variable names and non-stdcall function names are not
+ modified. This option is useful when creating GNU-compatible
+ import libs for third party DLLs that were built with MS-Windows
+ tools.
+
+`-k'
+`--kill-at'
+ Specifies that when `dlltool' is creating the exports file it
+ should not append the string `@ <number>'. These numbers are
+ called ordinal numbers and they represent another way of accessing
+ the function in a DLL, other than by name.
+
+`-A'
+`--add-stdcall-alias'
+ Specifies that when `dlltool' is creating the exports file it
+ should add aliases for stdcall symbols without `@ <number>' in
+ addition to the symbols with `@ <number>'.
+
+`-p'
+`--ext-prefix-alias PREFIX'
+ Causes `dlltool' to create external aliases for all DLL imports
+ with the specified prefix. The aliases are created for both
+ external and import symbols with no leading underscore.
+
+`-x'
+`--no-idata4'
+ Specifies that when `dlltool' is creating the exports and library
+ files it should omit the `.idata4' section. This is for
+ compatibility with certain operating systems.
+
+`--use-nul-prefixed-import-tables'
+ Specifies that when `dlltool' is creating the exports and library
+ files it should prefix the `.idata4' and `.idata5' by zero an
+ element. This emulates old gnu import library generation of
+ `dlltool'. By default this option is turned off.
+
+`-c'
+`--no-idata5'
+ Specifies that when `dlltool' is creating the exports and library
+ files it should omit the `.idata5' section. This is for
+ compatibility with certain operating systems.
+
+`-I FILENAME'
+`--identify FILENAME'
+ Specifies that `dlltool' should inspect the import library
+ indicated by FILENAME and report, on `stdout', the name(s) of the
+ associated DLL(s). This can be performed in addition to any other
+ operations indicated by the other options and arguments.
+ `dlltool' fails if the import library does not exist or is not
+ actually an import library. See also `--identify-strict'.
+
+`--identify-strict'
+ Modifies the behavior of the `--identify' option, such that an
+ error is reported if FILENAME is associated with more than one DLL.
+
+`-i'
+`--interwork'
+ Specifies that `dlltool' should mark the objects in the library
+ file and exports file that it produces as supporting interworking
+ between ARM and Thumb code.
+
+`-n'
+`--nodelete'
+ Makes `dlltool' preserve the temporary assembler files it used to
+ create the exports file. If this option is repeated then dlltool
+ will also preserve the temporary object files it uses to create
+ the library file.
+
+`-t PREFIX'
+`--temp-prefix PREFIX'
+ Makes `dlltool' use PREFIX when constructing the names of
+ temporary assembler and object files. By default, the temp file
+ prefix is generated from the pid.
+
+`-v'
+`--verbose'
+ Make dlltool describe what it is doing.
+
+`-h'
+`--help'
+ Displays a list of command line options and then exits.
+
+`-V'
+`--version'
+ Displays dlltool's version number and then exits.
+
+
+* Menu:
+
+* def file format:: The format of the dlltool `.def' file
+
+
+File: binutils.info, Node: def file format, Up: dlltool
+
+14.1 The format of the `dlltool' `.def' file
+============================================
+
+A `.def' file contains any number of the following commands:
+
+`NAME' NAME `[ ,' BASE `]'
+ The result is going to be named NAME`.exe'.
+
+`LIBRARY' NAME `[ ,' BASE `]'
+ The result is going to be named NAME`.dll'.
+
+`EXPORTS ( ( (' NAME1 `[ = ' NAME2 `] ) | ( ' NAME1 `=' MODULE-NAME `.' EXTERNAL-NAME `) ) [ == ' ITS_NAME `]'
+
+`[' INTEGER `] [ NONAME ] [ CONSTANT ] [ DATA ] [ PRIVATE ] ) *'
+ Declares NAME1 as an exported symbol from the DLL, with optional
+ ordinal number INTEGER, or declares NAME1 as an alias (forward) of
+ the function EXTERNAL-NAME in the DLL. If ITS_NAME is specified,
+ this name is used as string in export table. MODULE-NAME.
+
+`IMPORTS ( (' INTERNAL-NAME `=' MODULE-NAME `.' INTEGER `) | [' INTERNAL-NAME `= ]' MODULE-NAME `.' EXTERNAL-NAME `) [ == ) ITS_NAME `]' *'
+ Declares that EXTERNAL-NAME or the exported function whose ordinal
+ number is INTEGER is to be imported from the file MODULE-NAME. If
+ INTERNAL-NAME is specified then this is the name that the imported
+ function will be referred to in the body of the DLL. If ITS_NAME
+ is specified, this name is used as string in import table.
+
+`DESCRIPTION' STRING
+ Puts STRING into the output `.exp' file in the `.rdata' section.
+
+`STACKSIZE' NUMBER-RESERVE `[, ' NUMBER-COMMIT `]'
+
+`HEAPSIZE' NUMBER-RESERVE `[, ' NUMBER-COMMIT `]'
+ Generates `--stack' or `--heap' NUMBER-RESERVE,NUMBER-COMMIT in
+ the output `.drectve' section. The linker will see this and act
+ upon it.
+
+`CODE' ATTR `+'
+
+`DATA' ATTR `+'
+
+`SECTIONS (' SECTION-NAME ATTR` + ) *'
+ Generates `--attr' SECTION-NAME ATTR in the output `.drectve'
+ section, where ATTR is one of `READ', `WRITE', `EXECUTE' or
+ `SHARED'. The linker will see this and act upon it.
+
+
+
+File: binutils.info, Node: readelf, Next: size, Prev: ranlib, Up: Top
+
+15 readelf
+**********
+
+ readelf [`-a'|`--all']
+ [`-h'|`--file-header']
+ [`-l'|`--program-headers'|`--segments']
+ [`-S'|`--section-headers'|`--sections']
+ [`-g'|`--section-groups']
+ [`-t'|`--section-details']
+ [`-e'|`--headers']
+ [`-s'|`--syms'|`--symbols']
+ [`--dyn-syms']
+ [`-n'|`--notes']
+ [`-r'|`--relocs']
+ [`-u'|`--unwind']
+ [`-d'|`--dynamic']
+ [`-V'|`--version-info']
+ [`-A'|`--arch-specific']
+ [`-D'|`--use-dynamic']
+ [`-x' <number or name>|`--hex-dump='<number or name>]
+ [`-p' <number or name>|`--string-dump='<number or name>]
+ [`-R' <number or name>|`--relocated-dump='<number or name>]
+ [`-c'|`--archive-index']
+ [`-w[lLiaprmfFsoRt]'|
+ `--debug-dump'[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]]
+ [`--dwarf-depth=N']
+ [`--dwarf-start=N']
+ [`-I'|`--histogram']
+ [`-v'|`--version']
+ [`-W'|`--wide']
+ [`-H'|`--help']
+ ELFFILE...
+
+ `readelf' displays information about one or more ELF format object
+files. The options control what particular information to display.
+
+ ELFFILE... are the object files to be examined. 32-bit and 64-bit
+ELF files are supported, as are archives containing ELF files.
+
+ This program performs a similar function to `objdump' but it goes
+into more detail and it exists independently of the BFD library, so if
+there is a bug in BFD then readelf will not be affected.
+
+ The long and short forms of options, shown here as alternatives, are
+equivalent. At least one option besides `-v' or `-H' must be given.
+
+`-a'
+`--all'
+ Equivalent to specifying `--file-header', `--program-headers',
+ `--sections', `--symbols', `--relocs', `--dynamic', `--notes' and
+ `--version-info'.
+
+`-h'
+`--file-header'
+ Displays the information contained in the ELF header at the start
+ of the file.
+
+`-l'
+`--program-headers'
+`--segments'
+ Displays the information contained in the file's segment headers,
+ if it has any.
+
+`-S'
+`--sections'
+`--section-headers'
+ Displays the information contained in the file's section headers,
+ if it has any.
+
+`-g'
+`--section-groups'
+ Displays the information contained in the file's section groups,
+ if it has any.
+
+`-t'
+`--section-details'
+ Displays the detailed section information. Implies `-S'.
+
+`-s'
+`--symbols'
+`--syms'
+ Displays the entries in symbol table section of the file, if it
+ has one.
+
+`--dyn-syms'
+ Displays the entries in dynamic symbol table section of the file,
+ if it has one.
+
+`-e'
+`--headers'
+ Display all the headers in the file. Equivalent to `-h -l -S'.
+
+`-n'
+`--notes'
+ Displays the contents of the NOTE segments and/or sections, if any.
+
+`-r'
+`--relocs'
+ Displays the contents of the file's relocation section, if it has
+ one.
+
+`-u'
+`--unwind'
+ Displays the contents of the file's unwind section, if it has one.
+ Only the unwind sections for IA64 ELF files, as well as ARM
+ unwind tables (`.ARM.exidx' / `.ARM.extab') are currently
+ supported.
+
+`-d'
+`--dynamic'
+ Displays the contents of the file's dynamic section, if it has one.
+
+`-V'
+`--version-info'
+ Displays the contents of the version sections in the file, it they
+ exist.
+
+`-A'
+`--arch-specific'
+ Displays architecture-specific information in the file, if there
+ is any.
+
+`-D'
+`--use-dynamic'
+ When displaying symbols, this option makes `readelf' use the
+ symbol hash tables in the file's dynamic section, rather than the
+ symbol table sections.
+
+`-x <number or name>'
+`--hex-dump=<number or name>'
+ Displays the contents of the indicated section as a hexadecimal
+ bytes. A number identifies a particular section by index in the
+ section table; any other string identifies all sections with that
+ name in the object file.
+
+`-R <number or name>'
+`--relocated-dump=<number or name>'
+ Displays the contents of the indicated section as a hexadecimal
+ bytes. A number identifies a particular section by index in the
+ section table; any other string identifies all sections with that
+ name in the object file. The contents of the section will be
+ relocated before they are displayed.
+
+`-p <number or name>'
+`--string-dump=<number or name>'
+ Displays the contents of the indicated section as printable
+ strings. A number identifies a particular section by index in the
+ section table; any other string identifies all sections with that
+ name in the object file.
+
+`-c'
+`--archive-index'
+ Displays the file symbol index infomation contained in the header
+ part of binary archives. Performs the same function as the `t'
+ command to `ar', but without using the BFD library. *Note ar::.
+
+`-w[lLiaprmfFsoRt]'
+`--debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]'
+ Displays the contents of the debug sections in the file, if any are
+ present. If one of the optional letters or words follows the
+ switch then only data found in those specific sections will be
+ dumped.
+
+ Note that there is no single letter option to display the content
+ of trace sections or .gdb_index.
+
+ Note: the `=decodedline' option will display the interpreted
+ contents of a .debug_line section whereas the `=rawline' option
+ dumps the contents in a raw format.
+
+ Note: the `=frames-interp' option will display the interpreted
+ contents of a .debug_frame section whereas the `=frames' option
+ dumps the contents in a raw format.
+
+ Note: the output from the `=info' option can also be affected by
+ the options `--dwarf-depth' and `--dwarf-start'.
+
+`--dwarf-depth=N'
+ Limit the dump of the `.debug_info' section to N children. This
+ is only useful with `--debug-dump=info'. The default is to print
+ all DIEs; the special value 0 for N will also have this effect.
+
+ With a non-zero value for N, DIEs at or deeper than N levels will
+ not be printed. The range for N is zero-based.
+
+`--dwarf-start=N'
+ Print only DIEs beginning with the DIE numbered N. This is only
+ useful with `--debug-dump=info'.
+
+ If specified, this option will suppress printing of any header
+ information and all DIEs before the DIE numbered N. Only siblings
+ and children of the specified DIE will be printed.
+
+ This can be used in conjunction with `--dwarf-depth'.
+
+`-I'
+`--histogram'
+ Display a histogram of bucket list lengths when displaying the
+ contents of the symbol tables.
+
+`-v'
+`--version'
+ Display the version number of readelf.
+
+`-W'
+`--wide'
+ Don't break output lines to fit into 80 columns. By default
+ `readelf' breaks section header and segment listing lines for
+ 64-bit ELF files, so that they fit into 80 columns. This option
+ causes `readelf' to print each section header resp. each segment
+ one a single line, which is far more readable on terminals wider
+ than 80 columns.
+
+`-H'
+`--help'
+ Display the command line options understood by `readelf'.
+
+
+
+File: binutils.info, Node: elfedit, Next: c++filt, Prev: strip, Up: Top
+
+16 elfedit
+**********
+
+ elfedit [`--input-mach='MACHINE]
+ [`--input-type='TYPE]
+ [`--input-osabi='OSABI]
+ `--output-mach='MACHINE
+ `--output-type='TYPE
+ `--output-osabi='OSABI
+ [`-v'|`--version']
+ [`-h'|`--help']
+ ELFFILE...
+
+ `elfedit' updates the ELF header of ELF files which have the
+matching ELF machine and file types. The options control how and which
+fields in the ELF header should be updated.
+
+ ELFFILE... are the ELF files to be updated. 32-bit and 64-bit ELF
+files are supported, as are archives containing ELF files.
+
+ The long and short forms of options, shown here as alternatives, are
+equivalent. At least one of the `--output-mach', `--output-type' and
+`--output-osabi' options must be given.
+
+`--input-mach=MACHINE'
+ Set the matching input ELF machine type to MACHINE. If
+ `--input-mach' isn't specified, it will match any ELF machine
+ types.
+
+ The supported ELF machine types are, L1OM, K1OM and X86-64.
+
+`--output-mach=MACHINE'
+ Change the ELF machine type in the ELF header to MACHINE. The
+ supported ELF machine types are the same as `--input-mach'.
+
+`--input-type=TYPE'
+ Set the matching input ELF file type to TYPE. If `--input-type'
+ isn't specified, it will match any ELF file types.
+
+ The supported ELF file types are, REL, EXEC and DYN.
+
+`--output-type=TYPE'
+ Change the ELF file type in the ELF header to TYPE. The supported
+ ELF types are the same as `--input-type'.
+
+`--input-osabi=OSABI'
+ Set the matching input ELF file OSABI to OSABI. If
+ `--input-osabi' isn't specified, it will match any ELF OSABIs.
+
+ The supported ELF OSABIs are, NONE, HPUX, NETBSD, GNU, LINUX
+ (alias for GNU), SOLARIS, AIX, IRIX, FREEBSD, TRU64, MODESTO,
+ OPENBSD, OPENVMS, NSK, AROS and FENIXOS.
+
+`--output-osabi=OSABI'
+ Change the ELF OSABI in the ELF header to OSABI. The supported
+ ELF OSABI are the same as `--input-osabi'.
+
+`-v'
+`--version'
+ Display the version number of `elfedit'.
+
+`-h'
+`--help'
+ Display the command line options understood by `elfedit'.
+
+
+
+File: binutils.info, Node: Common Options, Next: Selecting the Target System, Prev: dlltool, Up: Top
+
+17 Common Options
+*****************
+
+The following command-line options are supported by all of the programs
+described in this manual.
+
+`@FILE'
+ Read command-line options from FILE. The options read are
+ inserted in place of the original @FILE option. If FILE does not
+ exist, or cannot be read, then the option will be treated
+ literally, and not removed.
+
+ Options in FILE are separated by whitespace. A whitespace
+ character may be included in an option by surrounding the entire
+ option in either single or double quotes. Any character
+ (including a backslash) may be included by prefixing the character
+ to be included with a backslash. The FILE may itself contain
+ additional @FILE options; any such options will be processed
+ recursively.
+
+`--help'
+ Display the command-line options supported by the program.
+
+`--version'
+ Display the version number of the program.
+
+
+
+File: binutils.info, Node: Selecting the Target System, Next: Reporting Bugs, Prev: Common Options, Up: Top
+
+18 Selecting the Target System
+******************************
+
+You can specify two aspects of the target system to the GNU binary file
+utilities, each in several ways:
+
+ * the target
+
+ * the architecture
+
+ In the following summaries, the lists of ways to specify values are
+in order of decreasing precedence. The ways listed first override those
+listed later.
+
+ The commands to list valid values only list the values for which the
+programs you are running were configured. If they were configured with
+`--enable-targets=all', the commands list most of the available values,
+but a few are left out; not all targets can be configured in at once
+because some of them can only be configured "native" (on hosts with the
+same type as the target system).
+
+* Menu:
+
+* Target Selection::
+* Architecture Selection::
+
+
+File: binutils.info, Node: Target Selection, Next: Architecture Selection, Up: Selecting the Target System
+
+18.1 Target Selection
+=====================
+
+A "target" is an object file format. A given target may be supported
+for multiple architectures (*note Architecture Selection::). A target
+selection may also have variations for different operating systems or
+architectures.
+
+ The command to list valid target values is `objdump -i' (the first
+column of output contains the relevant information).
+
+ Some sample values are: `a.out-hp300bsd', `ecoff-littlemips',
+`a.out-sunos-big'.
+
+ You can also specify a target using a configuration triplet. This is
+the same sort of name that is passed to `configure' to specify a
+target. When you use a configuration triplet as an argument, it must be
+fully canonicalized. You can see the canonical version of a triplet by
+running the shell script `config.sub' which is included with the
+sources.
+
+ Some sample configuration triplets are: `m68k-hp-bsd',
+`mips-dec-ultrix', `sparc-sun-sunos'.
+
+`objdump' Target
+----------------
+
+Ways to specify:
+
+ 1. command line option: `-b' or `--target'
+
+ 2. environment variable `GNUTARGET'
+
+ 3. deduced from the input file
+
+`objcopy' and `strip' Input Target
+----------------------------------
+
+Ways to specify:
+
+ 1. command line options: `-I' or `--input-target', or `-F' or
+ `--target'
+
+ 2. environment variable `GNUTARGET'
+
+ 3. deduced from the input file
+
+`objcopy' and `strip' Output Target
+-----------------------------------
+
+Ways to specify:
+
+ 1. command line options: `-O' or `--output-target', or `-F' or
+ `--target'
+
+ 2. the input target (see "`objcopy' and `strip' Input Target" above)
+
+ 3. environment variable `GNUTARGET'
+
+ 4. deduced from the input file
+
+`nm', `size', and `strings' Target
+----------------------------------
+
+Ways to specify:
+
+ 1. command line option: `--target'
+
+ 2. environment variable `GNUTARGET'
+
+ 3. deduced from the input file
+
+
+File: binutils.info, Node: Architecture Selection, Prev: Target Selection, Up: Selecting the Target System
+
+18.2 Architecture Selection
+===========================
+
+An "architecture" is a type of CPU on which an object file is to run.
+Its name may contain a colon, separating the name of the processor
+family from the name of the particular CPU.
+
+ The command to list valid architecture values is `objdump -i' (the
+second column contains the relevant information).
+
+ Sample values: `m68k:68020', `mips:3000', `sparc'.
+
+`objdump' Architecture
+----------------------
+
+Ways to specify:
+
+ 1. command line option: `-m' or `--architecture'
+
+ 2. deduced from the input file
+
+`objcopy', `nm', `size', `strings' Architecture
+-----------------------------------------------
+
+Ways to specify:
+
+ 1. deduced from the input file
+
+
+File: binutils.info, Node: Reporting Bugs, Next: GNU Free Documentation License, Prev: Selecting the Target System, Up: Top
+
+19 Reporting Bugs
+*****************
+
+Your bug reports play an essential role in making the binary utilities
+reliable.
+
+ Reporting a bug may help you by bringing a solution to your problem,
+or it may not. But in any case the principal function of a bug report
+is to help the entire community by making the next version of the binary
+utilities work better. Bug reports are your contribution to their
+maintenance.
+
+ In order for a bug report to serve its purpose, you must include the
+information that enables us to fix the bug.
+
+* Menu:
+
+* Bug Criteria:: Have you found a bug?
+* Bug Reporting:: How to report bugs
+
+
+File: binutils.info, Node: Bug Criteria, Next: Bug Reporting, Up: Reporting Bugs
+
+19.1 Have You Found a Bug?
+==========================
+
+If you are not sure whether you have found a bug, here are some
+guidelines:
+
+ * If a binary utility gets a fatal signal, for any input whatever,
+ that is a bug. Reliable utilities never crash.
+
+ * If a binary utility produces an error message for valid input,
+ that is a bug.
+
+ * If you are an experienced user of binary utilities, your
+ suggestions for improvement are welcome in any case.
+
+
+File: binutils.info, Node: Bug Reporting, Prev: Bug Criteria, Up: Reporting Bugs
+
+19.2 How to Report Bugs
+=======================
+
+A number of companies and individuals offer support for GNU products.
+If you obtained the binary utilities from a support organization, we
+recommend you contact that organization first.
+
+ You can find contact information for many support companies and
+individuals in the file `etc/SERVICE' in the GNU Emacs distribution.
+
+ In any event, we also recommend that you send bug reports for the
+binary utilities to `http://www.sourceware.org/bugzilla/'.
+
+ The fundamental principle of reporting bugs usefully is this:
+*report all the facts*. If you are not sure whether to state a fact or
+leave it out, state it!
+
+ Often people omit facts because they think they know what causes the
+problem and assume that some details do not matter. Thus, you might
+assume that the name of a file you use in an example does not matter.
+Well, probably it does not, but one cannot be sure. Perhaps the bug is
+a stray memory reference which happens to fetch from the location where
+that pathname is stored in memory; perhaps, if the pathname were
+different, the contents of that location would fool the utility into
+doing the right thing despite the bug. Play it safe and give a
+specific, complete example. That is the easiest thing for you to do,
+and the most helpful.
+
+ Keep in mind that the purpose of a bug report is to enable us to fix
+the bug if 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?" 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:
+
+ * The version of the utility. Each utility announces it if you
+ start it with the `--version' argument.
+
+ Without this, we will not know whether there is any point in
+ looking for the bug in the current version of the binary utilities.
+
+ * Any patches you may have applied to the source, including any
+ patches made to the `BFD' library.
+
+ * The type of machine you are using, and the operating system name
+ and version number.
+
+ * What compiler (and its version) was used to compile the
+ utilities--e.g. "`gcc-2.7'".
+
+ * The command arguments you gave the utility to observe the bug. To
+ guarantee you will not omit something important, list them all. A
+ copy of the Makefile (or the output from make) is sufficient.
+
+ If we were to try to guess the arguments, we would probably guess
+ wrong and then we might not encounter the bug.
+
+ * A complete input file, or set of input files, that will reproduce
+ the bug. If the utility is reading an object file or files, then
+ it is generally most helpful to send the actual object files.
+
+ If the source files were produced exclusively using GNU programs
+ (e.g., `gcc', `gas', and/or the GNU `ld'), then it may be OK to
+ send the source files rather than the object files. In this case,
+ be sure to say exactly what version of `gcc', or whatever, was
+ used to produce the object files. Also say how `gcc', or
+ whatever, was configured.
+
+ * A description of what behavior you observe that you believe is
+ incorrect. For example, "It gets a fatal signal."
+
+ Of course, if the bug is that the utility gets a fatal signal,
+ then we will certainly notice it. But if the bug is incorrect
+ output, we might not notice unless it is glaringly wrong. You
+ might as well not give us a chance to make a mistake.
+
+ Even if the problem you experience is a fatal signal, you should
+ still say so explicitly. Suppose something strange is going on,
+ such as your copy of the utility is out of sync, or you have
+ encountered a bug in the C library on your system. (This has
+ happened!) Your copy might crash and ours would not. If you told
+ us to expect a crash, then when ours fails to crash, we would know
+ that the bug was not happening for us. If you had not told us to
+ expect a crash, then we would not be able to draw any conclusion
+ from our observations.
+
+ * If you wish to suggest changes to the source, send us context
+ diffs, as generated by `diff' with the `-u', `-c', or `-p' option.
+ Always send diffs from the old file to the new file. If you wish
+ to discuss something in the `ld' source, refer to it by context,
+ not by line number.
+
+ The line numbers in our development sources will not match those
+ in your sources. Your line numbers would convey no useful
+ information to us.
+
+ Here are some things that are not necessary:
+
+ * A description of the envelope of the bug.
+
+ Often people who encounter a bug spend a lot of time investigating
+ which changes to the input file will make the bug go away and which
+ changes will not affect it.
+
+ This is often time consuming and not very useful, because the way
+ we will find the bug is by running a single example under the
+ debugger with breakpoints, not by pure deduction from a series of
+ examples. We recommend that you save your time for something else.
+
+ Of course, if you can find a simpler example to report _instead_
+ of the original one, that is a convenience for us. Errors in the
+ output will be easier to spot, running under the debugger will take
+ less time, and so on.
+
+ However, simplification is not vital; if you do not want to do
+ this, report the bug anyway and send us the entire test case you
+ used.
+
+ * A patch for the bug.
+
+ A patch for the bug does help us if it is a good one. But do not
+ omit the necessary information, such as the test case, on the
+ assumption that a patch is all we need. We might see problems
+ with your patch and decide to fix the problem another way, or we
+ might not understand it at all.
+
+ Sometimes with programs as complicated as the binary utilities it
+ is very hard to construct an example that will make the program
+ follow a certain path through the code. If you do not send us the
+ example, we will not be able to construct one, so we will not be
+ able to verify that the bug is fixed.
+
+ And if we cannot understand what bug you are trying to fix, or why
+ your patch should be an improvement, we will not install it. A
+ test case will help us to understand.
+
+ * A guess about what the bug is or what it depends on.
+
+ Such guesses are usually wrong. Even we cannot guess right about
+ such things without first using the debugger to find the facts.
+
+
+File: binutils.info, Node: GNU Free Documentation License, Next: Binutils Index, Prev: Reporting Bugs, Up: Top
+
+Appendix A GNU Free Documentation License
+*****************************************
+
+ Version 1.3, 3 November 2008
+
+ Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+ `http://fsf.org/'
+
+ 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
+ functional and useful 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, in any medium,
+ that contains a notice placed by the copyright holder saying it
+ can be distributed under the terms of this License. Such a notice
+ grants a world-wide, royalty-free license, unlimited in duration,
+ to use that work under the conditions stated herein. The
+ "Document", below, refers to any such manual or work. Any member
+ of the public is a licensee, and is addressed as "you". You
+ accept the license if you copy, modify or distribute the work in a
+ way requiring permission under copyright law.
+
+ 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. (Thus, 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. If a section does not fit the above definition of
+ Secondary then it is not allowed to be designated as Invariant.
+ The Document may contain zero Invariant Sections. If the Document
+ does not identify any Invariant Sections then there are none.
+
+ 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
+ Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+ be at most 25 words.
+
+ A "Transparent" copy of the Document means a machine-readable copy,
+ represented in a format whose specification is available to the
+ general public, that is suitable for revising the document
+ 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, or absence of
+ markup, has been arranged to thwart or discourage subsequent
+ modification by readers is not Transparent. An image format is
+ not Transparent if used for any substantial amount of text. 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, PostScript or PDF designed for
+ human modification. Examples of transparent image formats include
+ PNG, XCF and JPG. Opaque formats include 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, PostScript or PDF
+ 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.
+
+ The "publisher" means any person or entity that distributes copies
+ of the Document to the public.
+
+ A section "Entitled XYZ" means a named subunit of the Document
+ whose title either is precisely XYZ or contains XYZ in parentheses
+ following text that translates XYZ in another language. (Here XYZ
+ stands for a specific section name mentioned below, such as
+ "Acknowledgements", "Dedications", "Endorsements", or "History".)
+ To "Preserve the Title" of such a section when you modify the
+ Document means that it remains a section "Entitled XYZ" according
+ to this definition.
+
+ The Document may include Warranty Disclaimers next to the notice
+ which states that this License applies to the Document. These
+ Warranty Disclaimers are considered to be included by reference in
+ this License, but only as regards disclaiming warranties: any other
+ implication that these Warranty Disclaimers may have is void and
+ has no effect on the meaning of this License.
+
+ 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 (or copies in media that commonly
+ have printed covers) 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 computer-network location from
+ which the general network-using public has access to download
+ using public-standard network protocols a complete Transparent
+ copy of the Document, free of added material. 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 fewer than five), unless they release you
+ from this requirement.
+
+ 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", Preserve 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. For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, 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 to be Entitled
+ "Endorsements" or to conflict in title with any Invariant
+ Section.
+
+ O. Preserve any Warranty Disclaimers.
+
+ 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, and that you preserve all
+ their Warranty Disclaimers.
+
+ 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, is called an "aggregate" if the
+ copyright resulting from the compilation is not used to limit the
+ legal rights of the compilation's users beyond what the individual
+ works permit. When the Document is included in an aggregate, this
+ License does not apply to the other works in the aggregate which
+ 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 half
+ of the entire aggregate, the Document's Cover Texts may be placed
+ on covers that bracket the Document within the aggregate, or the
+ electronic equivalent of covers if the Document is in electronic
+ form. Otherwise they must appear on printed covers that bracket
+ 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, and all the license notices in the
+ Document, and any Warranty Disclaimers, provided that you also
+ include the original English version of this License and the
+ original versions of those notices and disclaimers. In case of a
+ disagreement between the translation and the original version of
+ this License or a notice or disclaimer, the original version will
+ prevail.
+
+ If a section in the Document is Entitled "Acknowledgements",
+ "Dedications", or "History", the requirement (section 4) to
+ Preserve its Title (section 1) will typically require changing the
+ actual title.
+
+ 9. TERMINATION
+
+ You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided under this License. Any attempt
+ otherwise to copy, modify, sublicense, or distribute it is void,
+ and will automatically terminate your rights under this License.
+
+ However, if you cease all violation of this License, then your
+ license from a particular copyright holder is reinstated (a)
+ provisionally, unless and until the copyright holder explicitly
+ and finally terminates your license, and (b) permanently, if the
+ copyright holder fails to notify you of the violation by some
+ reasonable means prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+ reinstated permanently if the copyright holder notifies you of the
+ violation by some reasonable means, this is the first time you have
+ received notice of violation of this License (for any work) from
+ that copyright holder, and you cure the violation prior to 30 days
+ after your receipt of the notice.
+
+ Termination of your rights under this section does not terminate
+ the licenses of parties who have received copies or rights from
+ you under this License. If your rights have been terminated and
+ not permanently reinstated, receipt of a copy of some or all of
+ the same material does not give you any rights to use it.
+
+ 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. If the Document specifies that a proxy
+ can decide which future versions of this License can be used, that
+ proxy's public statement of acceptance of a version permanently
+ authorizes you to choose that version for the Document.
+
+ 11. RELICENSING
+
+ "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+ World Wide Web server that publishes copyrightable works and also
+ provides prominent facilities for anybody to edit those works. A
+ public wiki that anybody can edit is an example of such a server.
+ A "Massive Multiauthor Collaboration" (or "MMC") contained in the
+ site means any set of copyrightable works thus published on the MMC
+ site.
+
+ "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+ license published by Creative Commons Corporation, a not-for-profit
+ corporation with a principal place of business in San Francisco,
+ California, as well as future copyleft versions of that license
+ published by that same organization.
+
+ "Incorporate" means to publish or republish a Document, in whole or
+ in part, as part of another Document.
+
+ An MMC is "eligible for relicensing" if it is licensed under this
+ License, and if all works that were first published under this
+ License somewhere other than this MMC, and subsequently
+ incorporated in whole or in part into the MMC, (1) had no cover
+ texts or invariant sections, and (2) were thus incorporated prior
+ to November 1, 2008.
+
+ The operator of an MMC Site may republish an MMC contained in the
+ site under CC-BY-SA on the same site at any time before August 1,
+ 2009, provided the MMC is eligible for relicensing.
+
+
+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:
+
+ 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.3
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+ Texts. A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+
+ If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with...Texts." line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with
+ the Front-Cover Texts being LIST, and with the Back-Cover Texts
+ being LIST.
+
+ If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+ 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.
+
+
+File: binutils.info, Node: Binutils Index, Prev: GNU Free Documentation License, Up: Top
+
+Binutils Index
+**************
+
+
+* Menu:
+
+* .stab: objdump. (line 406)
+* Add prefix to absolute paths: objdump. (line 353)
+* addr2line: addr2line. (line 6)
+* address to file name and line number: addr2line. (line 6)
+* all header information, object file: objdump. (line 525)
+* ar: ar. (line 6)
+* ar compatibility: ar. (line 50)
+* architecture: objdump. (line 197)
+* architectures available: objdump. (line 182)
+* archive contents: ranlib. (line 6)
+* Archive file symbol index information: readelf. (line 155)
+* archive headers: objdump. (line 67)
+* archives: ar. (line 6)
+* base files: dlltool. (line 124)
+* bug criteria: Bug Criteria. (line 6)
+* bug reports: Bug Reporting. (line 6)
+* bugs: Reporting Bugs. (line 6)
+* bugs, reporting: Bug Reporting. (line 6)
+* c++filt: c++filt. (line 6)
+* changing object addresses: objcopy. (line 310)
+* changing section address: objcopy. (line 320)
+* changing section LMA: objcopy. (line 328)
+* changing section VMA: objcopy. (line 341)
+* changing start address: objcopy. (line 305)
+* collections of files: ar. (line 6)
+* compatibility, ar: ar. (line 50)
+* contents of archive: ar cmdline. (line 94)
+* crash: Bug Criteria. (line 9)
+* creating archives: ar cmdline. (line 142)
+* creating thin archive: ar cmdline. (line 203)
+* cxxfilt: c++filt. (line 14)
+* dates in archive: ar cmdline. (line 177)
+* debug symbols: objdump. (line 406)
+* debugging symbols: nm. (line 143)
+* deleting from archive: ar cmdline. (line 26)
+* demangling C++ symbols: c++filt. (line 6)
+* demangling in nm: nm. (line 151)
+* demangling in objdump <1>: objdump. (line 95)
+* demangling in objdump: addr2line. (line 64)
+* deterministic archives: ar cmdline. (line 148)
+* disassembling object code: objdump. (line 117)
+* disassembly architecture: objdump. (line 197)
+* disassembly endianness: objdump. (line 137)
+* disassembly, with source: objdump. (line 349)
+* discarding symbols: strip. (line 6)
+* DLL: dlltool. (line 6)
+* dlltool: dlltool. (line 6)
+* DWARF: objdump. (line 375)
+* dynamic relocation entries, in object file: objdump. (line 337)
+* dynamic symbol table entries, printing: objdump. (line 509)
+* dynamic symbols: nm. (line 163)
+* ELF dynamic section information: readelf. (line 113)
+* ELF dynamic symbol table information: readelf. (line 88)
+* ELF file header information: readelf. (line 57)
+* ELF file information: readelf. (line 6)
+* ELF notes: readelf. (line 97)
+* ELF object file format: objdump. (line 406)
+* ELF program header information: readelf. (line 63)
+* ELF reloc information: readelf. (line 101)
+* ELF section group information: readelf. (line 74)
+* ELF section information: readelf. (line 69)
+* ELF segment information: readelf. (line 63)
+* ELF symbol table information: readelf. (line 84)
+* ELF version sections informations: readelf. (line 117)
+* elfedit: elfedit. (line 6)
+* endianness: objdump. (line 137)
+* error on valid input: Bug Criteria. (line 12)
+* external symbols: nm. (line 175)
+* extract from archive: ar cmdline. (line 109)
+* fatal signal: Bug Criteria. (line 9)
+* file name: nm. (line 137)
+* header information, all: objdump. (line 525)
+* input .def file: dlltool. (line 120)
+* input file name: nm. (line 137)
+* Instruction width: objdump. (line 370)
+* libraries: ar. (line 25)
+* listings strings: strings. (line 6)
+* load plugin: nm. (line 178)
+* machine instructions: objdump. (line 117)
+* moving in archive: ar cmdline. (line 34)
+* MRI compatibility, ar: ar scripts. (line 8)
+* name duplication in archive: ar cmdline. (line 103)
+* name length: ar. (line 18)
+* nm: nm. (line 6)
+* nm compatibility: nm. (line 169)
+* nm format: nm. (line 169)
+* not writing archive index: ar cmdline. (line 196)
+* objdump: objdump. (line 6)
+* object code format <1>: strings. (line 67)
+* object code format <2>: nm. (line 246)
+* object code format <3>: objdump. (line 81)
+* object code format <4>: addr2line. (line 59)
+* object code format: size. (line 84)
+* object file header: objdump. (line 143)
+* object file information: objdump. (line 6)
+* object file offsets: objdump. (line 148)
+* object file sections: objdump. (line 344)
+* object formats available: objdump. (line 182)
+* operations on archive: ar cmdline. (line 22)
+* printing from archive: ar cmdline. (line 46)
+* printing strings: strings. (line 6)
+* quick append to archive: ar cmdline. (line 54)
+* radix for section sizes: size. (line 66)
+* ranlib <1>: ranlib. (line 6)
+* ranlib: ar cmdline. (line 88)
+* readelf: readelf. (line 6)
+* relative placement in archive: ar cmdline. (line 130)
+* relocation entries, in object file: objdump. (line 331)
+* removing symbols: strip. (line 6)
+* repeated names in archive: ar cmdline. (line 103)
+* replacement in archive: ar cmdline. (line 70)
+* reporting bugs: Reporting Bugs. (line 6)
+* scripts, ar: ar scripts. (line 8)
+* section addresses in objdump: objdump. (line 73)
+* section headers: objdump. (line 164)
+* section information: objdump. (line 187)
+* section sizes: size. (line 6)
+* sections, full contents: objdump. (line 344)
+* size: size. (line 6)
+* size display format: size. (line 27)
+* size number format: size. (line 66)
+* sorting symbols: nm. (line 199)
+* source code context: objdump. (line 157)
+* source disassembly: objdump. (line 349)
+* source file name: nm. (line 137)
+* source filenames for object files: objdump. (line 191)
+* stab: objdump. (line 406)
+* start-address: objdump. (line 416)
+* stop-address: objdump. (line 420)
+* strings: strings. (line 6)
+* strings, printing: strings. (line 6)
+* strip: strip. (line 6)
+* Strip absolute paths: objdump. (line 356)
+* symbol index <1>: ar. (line 28)
+* symbol index: ranlib. (line 6)
+* symbol index, listing: nm. (line 216)
+* symbol line numbers: nm. (line 184)
+* symbol table entries, printing: objdump. (line 425)
+* symbols: nm. (line 6)
+* symbols, discarding: strip. (line 6)
+* thin archives: ar. (line 40)
+* undefined symbols: nm. (line 251)
+* Unix compatibility, ar: ar cmdline. (line 8)
+* unwind information: readelf. (line 106)
+* Update ELF header: elfedit. (line 6)
+* updating an archive: ar cmdline. (line 208)
+* version: Top. (line 6)
+* VMA in objdump: objdump. (line 73)
+* wide output, printing: objdump. (line 531)
+* writing archive index: ar cmdline. (line 190)
+
+
+
+Tag Table:
+Node: Top2011
+Node: ar3724
+Node: ar cmdline6550
+Node: ar scripts16284
+Node: nm21972
+Node: objcopy31569
+Node: objdump61243
+Node: ranlib83257
+Node: size84078
+Node: strings87083
+Node: strip89541
+Node: c++filt95492
+Ref: c++filt-Footnote-1100339
+Node: addr2line100445
+Node: nlmconv104245
+Node: windmc106851
+Node: windres110500
+Node: dlltool116861
+Node: def file format129747
+Node: readelf131678
+Node: elfedit139228
+Node: Common Options141473
+Node: Selecting the Target System142513
+Node: Target Selection143445
+Node: Architecture Selection145427
+Node: Reporting Bugs146255
+Node: Bug Criteria147034
+Node: Bug Reporting147587
+Node: GNU Free Documentation License154457
+Node: Binutils Index179636
+
+End Tag Table
diff --git a/binutils/po/bg.gmo b/binutils/po/bg.gmo
new file mode 100644
index 0000000000..91c86a53ed
--- /dev/null
+++ b/binutils/po/bg.gmo
Binary files differ
diff --git a/binutils/po/da.gmo b/binutils/po/da.gmo
new file mode 100644
index 0000000000..d870bd7d59
--- /dev/null
+++ b/binutils/po/da.gmo
Binary files differ
diff --git a/binutils/po/es.gmo b/binutils/po/es.gmo
new file mode 100644
index 0000000000..282a8a8165
--- /dev/null
+++ b/binutils/po/es.gmo
Binary files differ
diff --git a/binutils/po/fi.gmo b/binutils/po/fi.gmo
new file mode 100644
index 0000000000..a3aba653a1
--- /dev/null
+++ b/binutils/po/fi.gmo
Binary files differ
diff --git a/binutils/po/fr.gmo b/binutils/po/fr.gmo
new file mode 100644
index 0000000000..b4f3a9f25d
--- /dev/null
+++ b/binutils/po/fr.gmo
Binary files differ
diff --git a/binutils/po/id.gmo b/binutils/po/id.gmo
new file mode 100644
index 0000000000..5cbebabaea
--- /dev/null
+++ b/binutils/po/id.gmo
Binary files differ
diff --git a/binutils/po/ja.gmo b/binutils/po/ja.gmo
new file mode 100644
index 0000000000..9a90fa5f0d
--- /dev/null
+++ b/binutils/po/ja.gmo
Binary files differ
diff --git a/binutils/po/ro.gmo b/binutils/po/ro.gmo
new file mode 100644
index 0000000000..f1c1e0e13a
--- /dev/null
+++ b/binutils/po/ro.gmo
Binary files differ
diff --git a/binutils/po/ru.gmo b/binutils/po/ru.gmo
new file mode 100644
index 0000000000..5d724b008f
--- /dev/null
+++ b/binutils/po/ru.gmo
Binary files differ
diff --git a/binutils/po/rw.gmo b/binutils/po/rw.gmo
new file mode 100644
index 0000000000..6d5d7b9ef1
--- /dev/null
+++ b/binutils/po/rw.gmo
Binary files differ
diff --git a/binutils/po/sk.gmo b/binutils/po/sk.gmo
new file mode 100644
index 0000000000..df4639ac93
--- /dev/null
+++ b/binutils/po/sk.gmo
Binary files differ
diff --git a/binutils/po/sv.gmo b/binutils/po/sv.gmo
new file mode 100644
index 0000000000..0efae306a8
--- /dev/null
+++ b/binutils/po/sv.gmo
Binary files differ
diff --git a/binutils/po/tr.gmo b/binutils/po/tr.gmo
new file mode 100644
index 0000000000..71904464e4
--- /dev/null
+++ b/binutils/po/tr.gmo
Binary files differ
diff --git a/binutils/po/uk.gmo b/binutils/po/uk.gmo
new file mode 100644
index 0000000000..6cd6aa15ee
--- /dev/null
+++ b/binutils/po/uk.gmo
Binary files differ
diff --git a/binutils/po/vi.gmo b/binutils/po/vi.gmo
new file mode 100644
index 0000000000..c194894721
--- /dev/null
+++ b/binutils/po/vi.gmo
Binary files differ
diff --git a/binutils/po/zh_CN.gmo b/binutils/po/zh_CN.gmo
new file mode 100644
index 0000000000..b4448b155b
--- /dev/null
+++ b/binutils/po/zh_CN.gmo
Binary files differ
diff --git a/binutils/po/zh_TW.gmo b/binutils/po/zh_TW.gmo
new file mode 100644
index 0000000000..b02a71ee6b
--- /dev/null
+++ b/binutils/po/zh_TW.gmo
Binary files differ
diff --git a/etc/configure.info b/etc/configure.info
new file mode 100644
index 0000000000..cee206aa6a
--- /dev/null
+++ b/etc/configure.info
@@ -0,0 +1,2773 @@
+This is configure.info, produced by makeinfo version 4.8 from
+./configure.texi.
+
+INFO-DIR-SECTION GNU admin
+START-INFO-DIR-ENTRY
+* configure: (configure). The GNU configure and build system
+END-INFO-DIR-ENTRY
+
+ This file documents the GNU configure and build system.
+
+ Copyright (C) 1998 Cygnus Solutions.
+
+ Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+ Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+ Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the Foundation.
+
+
+File: configure.info, Node: Top, Next: Introduction, Up: (dir)
+
+GNU configure and build system
+******************************
+
+The GNU configure and build system.
+
+* Menu:
+
+* Introduction:: Introduction.
+* Getting Started:: Getting Started.
+* Files:: Files.
+* Configuration Names:: Configuration Names.
+* Cross Compilation Tools:: Cross Compilation Tools.
+* Canadian Cross:: Canadian Cross.
+* Cygnus Configure:: Cygnus Configure.
+* Multilibs:: Multilibs.
+* FAQ:: Frequently Asked Questions.
+* Index:: Index.
+
+
+File: configure.info, Node: Introduction, Next: Getting Started, Prev: Top, Up: Top
+
+1 Introduction
+**************
+
+This document describes the GNU configure and build systems. It
+describes how autoconf, automake, libtool, and make fit together. It
+also includes a discussion of the older Cygnus configure system.
+
+ This document does not describe in detail how to use each of the
+tools; see the respective manuals for that. Instead, it describes
+which files the developer must write, which files are machine generated
+and how they are generated, and where certain common problems should be
+addressed.
+
+ This document draws on several sources, including the autoconf
+manual by David MacKenzie (*note autoconf overview: (autoconf)Top.),
+the automake manual by David MacKenzie and Tom Tromey (*note automake
+overview: (automake)Top.), the libtool manual by Gordon Matzigkeit
+(*note libtool overview: (libtool)Top.), and the Cygnus configure
+manual by K. Richard Pixley.
+
+* Menu:
+
+* Goals:: Goals.
+* Tools:: The tools.
+* History:: History.
+* Building:: Building.
+
+
+File: configure.info, Node: Goals, Next: Tools, Up: Introduction
+
+1.1 Goals
+=========
+
+The GNU configure and build system has two main goals.
+
+ The first is to simplify the development of portable programs. The
+system permits the developer to concentrate on writing the program,
+simplifying many details of portability across Unix and even Windows
+systems, and permitting the developer to describe how to build the
+program using simple rules rather than complex Makefiles.
+
+ The second is to simplify the building of programs distributed as
+source code. All programs are built using a simple, standardized, two
+step process. The program builder need not install any special tools in
+order to build the program.
+
+
+File: configure.info, Node: Tools, Next: History, Prev: Goals, Up: Introduction
+
+1.2 Tools
+=========
+
+The GNU configure and build system is comprised of several different
+tools. Program developers must build and install all of these tools.
+
+ People who just want to build programs from distributed sources
+normally do not need any special tools beyond a Unix shell, a make
+program, and a C compiler.
+
+autoconf
+ provides a general portability framework, based on testing the
+ features of the host system at build time.
+
+automake
+ a system for describing how to build a program, permitting the
+ developer to write a simplified `Makefile'.
+
+libtool
+ a standardized approach to building shared libraries.
+
+gettext
+ provides a framework for translation of text messages into other
+ languages; not really discussed in this document.
+
+m4
+ autoconf requires the GNU version of m4; the standard Unix m4 does
+ not suffice.
+
+perl
+ automake requires perl.
+
+
+File: configure.info, Node: History, Next: Building, Prev: Tools, Up: Introduction
+
+1.3 History
+===========
+
+This is a very brief and probably inaccurate history.
+
+ As the number of Unix variants increased during the 1980s, it became
+harder to write programs which could run on all variants. While it was
+often possible to use `#ifdef' to identify particular systems,
+developers frequently did not have access to every system, and the
+characteristics of some systems changed from version to version.
+
+ By 1992, at least three different approaches had been developed:
+ * The Metaconfig program, by Larry Wall, Harlan Stenn, and Raphael
+ Manfredi.
+
+ * The Cygnus configure script, by K. Richard Pixley, and the gcc
+ configure script, by Richard Stallman. These use essentially the
+ same approach, and the developers communicated regularly.
+
+ * The autoconf program, by David MacKenzie.
+
+ The Metaconfig program is still used for Perl and a few other
+programs. It is part of the Dist package. I do not know if it is
+being developed.
+
+ In 1994, David MacKenzie and others modified autoconf to incorporate
+all the features of Cygnus configure. Since then, there has been a
+slow but steady conversion of GNU programs from Cygnus configure to
+autoconf. gcc has been converted, eliminating the gcc configure script.
+
+ GNU autoconf was regularly maintained until late 1996. As of this
+writing in June, 1998, it has no public maintainer.
+
+ Most programs are built using the make program, which requires the
+developer to write Makefiles describing how to build the programs.
+Since most programs are built in pretty much the same way, this led to a
+lot of duplication.
+
+ The X Window system is built using the imake tool, which uses a
+database of rules to eliminate the duplication. However, building a
+tool which was developed using imake requires that the builder have
+imake installed, violating one of the goals of the GNU system.
+
+ The new BSD make provides a standard library of Makefile fragments,
+which permits developers to write very simple Makefiles. However, this
+requires that the builder install the new BSD make program.
+
+ In 1994, David MacKenzie wrote the first version of automake, which
+permitted writing a simple build description which was converted into a
+Makefile which could be used by the standard make program. In 1995, Tom
+Tromey completely rewrote automake in Perl, and he continues to enhance
+it.
+
+ Various free packages built libraries, and by around 1995 several
+included support to build shared libraries on various platforms.
+However, there was no consistent approach. In early 1996, Gordon
+Matzigkeit began working on libtool, which provided a standardized
+approach to building shared libraries. This was integrated into
+automake from the start.
+
+ The development of automake and libtool was driven by the GNITS
+project, a group of GNU maintainers who designed standardized tools to
+help meet the GNU coding standards.
+
+
+File: configure.info, Node: Building, Prev: History, Up: Introduction
+
+1.4 Building
+============
+
+Most readers of this document should already know how to build a tool by
+running `configure' and `make'. This section may serve as a quick
+introduction or reminder.
+
+ Building a tool is normally as simple as running `configure'
+followed by `make'. You should normally run `configure' from an empty
+directory, using some path to refer to the `configure' script in the
+source directory. The directory in which you run `configure' is called
+the "object directory".
+
+ In order to use a object directory which is different from the source
+directory, you must be using the GNU version of `make', which has the
+required `VPATH' support. Despite this restriction, using a different
+object directory is highly recommended:
+ * It keeps the files generated during the build from cluttering up
+ your sources.
+
+ * It permits you to remove the built files by simply removing the
+ entire build directory.
+
+ * It permits you to build from the same sources with several sets of
+ configure options simultaneously.
+
+ If you don't have GNU `make', you will have to run `configure' in
+the source directory. All GNU packages should support this; in
+particular, GNU packages should not assume the presence of GNU `make'.
+
+ After running `configure', you can build the tools by running `make'.
+
+ To install the tools, run `make install'. Installing the tools will
+copy the programs and any required support files to the "installation
+directory". The location of the installation directory is controlled
+by `configure' options, as described below.
+
+ In the Cygnus tree at present, the info files are built and
+installed as a separate step. To build them, run `make info'. To
+install them, run `make install-info'. The equivalent html files are
+also built and installed in a separate step. To build the html files,
+run `make html'. To install the html files run `make install-html'.
+
+ All `configure' scripts support a wide variety of options. The most
+interesting ones are `--with' and `--enable' options which are
+generally specific to particular tools. You can usually use the
+`--help' option to get a list of interesting options for a particular
+configure script.
+
+ The only generic options you are likely to use are the `--prefix'
+and `--exec-prefix' options. These options are used to specify the
+installation directory.
+
+ The directory named by the `--prefix' option will hold machine
+independent files such as info files.
+
+ The directory named by the `--exec-prefix' option, which is normally
+a subdirectory of the `--prefix' directory, will hold machine dependent
+files such as executables.
+
+ The default for `--prefix' is `/usr/local'. The default for
+`--exec-prefix' is the value used for `--prefix'.
+
+ The convention used in Cygnus releases is to use a `--prefix' option
+of `/usr/cygnus/RELEASE', where RELEASE is the name of the release, and
+to use a `--exec-prefix' option of `/usr/cygnus/RELEASE/H-HOST', where
+HOST is the configuration name of the host system (*note Configuration
+Names::).
+
+ Do not use either the source or the object directory as the
+installation directory. That will just lead to confusion.
+
+
+File: configure.info, Node: Getting Started, Next: Files, Prev: Introduction, Up: Top
+
+2 Getting Started
+*****************
+
+To start using the GNU configure and build system with your software
+package, you must write three files, and you must run some tools to
+manually generate additional files.
+
+* Menu:
+
+* Write configure.in:: Write configure.in.
+* Write Makefile.am:: Write Makefile.am.
+* Write acconfig.h:: Write acconfig.h.
+* Generate files:: Generate files.
+* Getting Started Example:: Example.
+
+
+File: configure.info, Node: Write configure.in, Next: Write Makefile.am, Up: Getting Started
+
+2.1 Write configure.in
+======================
+
+You must first write the file `configure.in'. This is an autoconf
+input file, and the autoconf manual describes in detail what this file
+should look like.
+
+ You will write tests in your `configure.in' file to check for
+conditions that may change from one system to another, such as the
+presence of particular header files or functions.
+
+ For example, not all systems support the `gettimeofday' function.
+If you want to use the `gettimeofday' function when it is available,
+and to use some other function when it is not, you would check for this
+by putting `AC_CHECK_FUNCS(gettimeofday)' in `configure.in'.
+
+ When the configure script is run at build time, this will arrange to
+define the preprocessor macro `HAVE_GETTIMEOFDAY' to the value 1 if the
+`gettimeofday' function is available, and to not define the macro at
+all if the function is not available. Your code can then use `#ifdef'
+to test whether it is safe to call `gettimeofday'.
+
+ If you have an existing body of code, the `autoscan' program may
+help identify potential portability problems, and hence configure tests
+that you will want to use. *Note Invoking autoscan: (autoconf)Invoking
+autoscan.
+
+ Another handy tool for an existing body of code is `ifnames'. This
+will show you all the preprocessor conditionals that the code already
+uses. *Note Invoking ifnames: (autoconf)Invoking ifnames.
+
+ Besides the portability tests which are specific to your particular
+package, every `configure.in' file should contain the following macros.
+
+`AC_INIT'
+ This macro takes a single argument, which is the name of a file in
+ your package. For example, `AC_INIT(foo.c)'.
+
+`AC_PREREQ(VERSION)'
+ This macro is optional. It may be used to indicate the version of
+ `autoconf' that you are using. This will prevent users from
+ running an earlier version of `autoconf' and perhaps getting an
+ invalid `configure' script. For example, `AC_PREREQ(2.12)'.
+
+`AM_INIT_AUTOMAKE'
+ This macro takes two arguments: the name of the package, and a
+ version number. For example, `AM_INIT_AUTOMAKE(foo, 1.0)'. (This
+ macro is not needed if you are not using automake).
+
+`AM_CONFIG_HEADER'
+ This macro names the header file which will hold the preprocessor
+ macro definitions at run time. Normally this should be
+ `config.h'. Your sources would then use `#include "config.h"' to
+ include it.
+
+ This macro may optionally name the input file for that header
+ file; by default, this is `config.h.in', but that file name works
+ poorly on DOS filesystems. Therefore, it is often better to name
+ it explicitly as `config.in'.
+
+ This is what you should normally put in `configure.in':
+ AM_CONFIG_HEADER(config.h:config.in)
+
+ (If you are not using automake, use `AC_CONFIG_HEADER' rather than
+ `AM_CONFIG_HEADER').
+
+`AM_MAINTAINER_MODE'
+ This macro always appears in Cygnus configure scripts. Other
+ programs may or may not use it.
+
+ If this macro is used, the `--enable-maintainer-mode' option is
+ required to enable automatic rebuilding of generated files used by
+ the configure system. This of course requires that developers be
+ aware of, and use, that option.
+
+ If this macro is not used, then the generated files will always be
+ rebuilt automatically. This will cause problems if the wrong
+ versions of autoconf, automake, or others are in the builder's
+ `PATH'.
+
+ (If you are not using automake, you do not need to use this macro).
+
+`AC_EXEEXT'
+ Either this macro or `AM_EXEEXT' always appears in Cygnus configure
+ files. Other programs may or may not use one of them.
+
+ This macro looks for the executable suffix used on the host
+ system. On Unix systems, this is the empty string. On Windows
+ systems, this is `.exe'. This macro directs automake to use the
+ executable suffix as appropriate when creating programs. This
+ macro does not take any arguments.
+
+ The `AC_EXEEXT' form is new, and is part of a Cygnus patch to
+ autoconf to support compiling with Visual C++. Older programs use
+ `AM_EXEEXT' instead.
+
+ (Programs which do not use automake use neither `AC_EXEEXT' nor
+ `AM_EXEEXT').
+
+`AC_PROG_CC'
+ If you are writing C code, you will normally want to use this
+ macro. It locates the C compiler to use. It does not take any
+ arguments.
+
+ However, if this `configure.in' file is for a library which is to
+ be compiled by a cross compiler which may not fully work, then you
+ will not want to use `AC_PROG_CC'. Instead, you will want to use a
+ variant which does not call the macro `AC_PROG_CC_WORKS'. Examples
+ can be found in various `configure.in' files for libraries that are
+ compiled with cross compilers, such as libiberty or libgloss.
+ This is essentially a bug in autoconf, and there will probably be
+ a better workaround at some point.
+
+`AC_PROG_CXX'
+ If you are writing C++ code, you will want to use this macro. It
+ locates the C++ compiler to use. It does not take any arguments.
+ The same cross compiler comments apply as for `AC_PROG_CC'.
+
+`AM_PROG_LIBTOOL'
+ If you want to build libraries, and you want to permit them to be
+ shared, or you want to link against libraries which were built
+ using libtool, then you will need this macro. This macro is
+ required in order to use libtool.
+
+ By default, this will cause all libraries to be built as shared
+ libraries. To prevent this-to change the default-use
+ `AM_DISABLE_SHARED' before `AM_PROG_LIBTOOL'. The configure
+ options `--enable-shared' and `--disable-shared' may be used to
+ override the default at build time.
+
+`AC_DEFINE(_GNU_SOURCE)'
+ GNU packages should normally include this line before any other
+ feature tests. This defines the macro `_GNU_SOURCE' when
+ compiling, which directs the libc header files to provide the
+ standard GNU system interfaces including all GNU extensions. If
+ this macro is not defined, certain GNU extensions may not be
+ available.
+
+`AC_OUTPUT'
+ This macro takes a list of file names which the configure process
+ should produce. This is normally a list of one or more `Makefile'
+ files in different directories. If your package lives entirely in
+ a single directory, you would use simply `AC_OUTPUT(Makefile)'.
+ If you also have, for example, a `lib' subdirectory, you would use
+ `AC_OUTPUT(Makefile lib/Makefile)'.
+
+ If you want to use locally defined macros in your `configure.in'
+file, then you will need to write a `acinclude.m4' file which defines
+them (if not using automake, this file is called `aclocal.m4').
+Alternatively, you can put separate macros in an `m4' subdirectory, and
+put `ACLOCAL_AMFLAGS = -I m4' in your `Makefile.am' file so that the
+`aclocal' program will be able to find them.
+
+ The different macro prefixes indicate which tool defines the macro.
+Macros which start with `AC_' are part of autoconf. Macros which start
+with `AM_' are provided by automake or libtool.
+
+
+File: configure.info, Node: Write Makefile.am, Next: Write acconfig.h, Prev: Write configure.in, Up: Getting Started
+
+2.2 Write Makefile.am
+=====================
+
+You must write the file `Makefile.am'. This is an automake input file,
+and the automake manual describes in detail what this file should look
+like.
+
+ The automake commands in `Makefile.am' mostly look like variable
+assignments in a `Makefile'. automake recognizes special variable
+names, and automatically add make rules to the output as needed.
+
+ There will be one `Makefile.am' file for each directory in your
+package. For each directory with subdirectories, the `Makefile.am'
+file should contain the line
+ SUBDIRS = DIR DIR ...
+ where each DIR is the name of a subdirectory.
+
+ For each `Makefile.am', there should be a corresponding `Makefile'
+in the `AC_OUTPUT' macro in `configure.in'.
+
+ Every `Makefile.am' written at Cygnus should contain the line
+ AUTOMAKE_OPTIONS = cygnus
+ This puts automake into Cygnus mode. See the automake manual for
+details.
+
+ You may to include the version number of `automake' that you are
+using on the `AUTOMAKE_OPTIONS' line. For example,
+ AUTOMAKE_OPTIONS = cygnus 1.3
+ This will prevent users from running an earlier version of
+`automake' and perhaps getting an invalid `Makefile.in'.
+
+ If your package builds a program, then in the directory where that
+program is built you will normally want a line like
+ bin_PROGRAMS = PROGRAM
+ where PROGRAM is the name of the program. You will then want a line
+like
+ PROGRAM_SOURCES = FILE FILE ...
+ where each FILE is the name of a source file to link into the
+program (e.g., `foo.c').
+
+ If your package builds a library, and you do not want the library to
+ever be built as a shared library, then in the directory where that
+library is built you will normally want a line like
+ lib_LIBRARIES = libNAME.a
+ where `libNAME.a' is the name of the library. You will then want a
+line like
+ libNAME_a_SOURCES = FILE FILE ...
+ where each FILE is the name of a source file to add to the library.
+
+ If your package builds a library, and you want to permit building the
+library as a shared library, then in the directory where that library is
+built you will normally want a line like
+ lib_LTLIBRARIES = libNAME.la
+ The use of `LTLIBRARIES', and the `.la' extension, indicate a
+library to be built using libtool. As usual, you will then want a line
+like
+ libNAME_la_SOURCES = FILE FILE ...
+
+ The strings `bin' and `lib' that appear above in `bin_PROGRAMS' and
+`lib_LIBRARIES' are not arbitrary. They refer to particular
+directories, which may be set by the `--bindir' and `--libdir' options
+to `configure'. If those options are not used, the default values are
+based on the `--prefix' or `--exec-prefix' options to `configure'. It
+is possible to use other names if the program or library should be
+installed in some other directory.
+
+ The `Makefile.am' file may also contain almost anything that may
+appear in a normal `Makefile'. automake also supports many other
+special variables, as well as conditionals.
+
+ See the automake manual for more information.
+
+
+File: configure.info, Node: Write acconfig.h, Next: Generate files, Prev: Write Makefile.am, Up: Getting Started
+
+2.3 Write acconfig.h
+====================
+
+If you are generating a portability header file, (i.e., you are using
+`AM_CONFIG_HEADER' in `configure.in'), then you will have to write a
+`acconfig.h' file. It will have to contain the following lines.
+
+ /* Name of package. */
+ #undef PACKAGE
+
+ /* Version of package. */
+ #undef VERSION
+
+ This requirement is really a bug in the system, and the requirement
+may be eliminated at some later date.
+
+ The `acconfig.h' file will also similar comment and `#undef' lines
+for any unusual macros in the `configure.in' file, including any macro
+which appears in a `AC_DEFINE' macro.
+
+ In particular, if you are writing a GNU package and therefore include
+`AC_DEFINE(_GNU_SOURCE)' in `configure.in' as suggested above, you will
+need lines like this in `acconfig.h':
+ /* Enable GNU extensions. */
+ #undef _GNU_SOURCE
+
+ Normally the `autoheader' program will inform you of any such
+requirements by printing an error message when it is run. However, if
+you do anything particular odd in your `configure.in' file, you will
+have to make sure that the right entries appear in `acconfig.h', since
+otherwise the results of the tests may not be available in the
+`config.h' file which your code will use.
+
+ (Thee `PACKAGE' and `VERSION' lines are not required if you are not
+using automake, and in that case you may not need a `acconfig.h' file
+at all).
+
+
+File: configure.info, Node: Generate files, Next: Getting Started Example, Prev: Write acconfig.h, Up: Getting Started
+
+2.4 Generate files
+==================
+
+Once you have written `configure.in', `Makefile.am', `acconfig.h', and
+possibly `acinclude.m4', you must use autoconf and automake programs to
+produce the first versions of the generated files. This is done by
+executing the following sequence of commands.
+
+ aclocal
+ autoconf
+ autoheader
+ automake
+
+ The `aclocal' and `automake' commands are part of the automake
+package, and the `autoconf' and `autoheader' commands are part of the
+autoconf package.
+
+ If you are using a `m4' subdirectory for your macros, you will need
+to use the `-I m4' option when you run `aclocal'.
+
+ If you are not using the Cygnus tree, use the `-a' option when
+running `automake' command in order to copy the required support files
+into your source directory.
+
+ If you are using libtool, you must build and install the libtool
+package with the same `--prefix' and `--exec-prefix' options as you
+used with the autoconf and automake packages. You must do this before
+running any of the above commands. If you are not using the Cygnus
+tree, you will need to run the `libtoolize' program to copy the libtool
+support files into your directory.
+
+ Once you have managed to run these commands without getting any
+errors, you should create a new empty directory, and run the `configure'
+script which will have been created by `autoconf' with the
+`--enable-maintainer-mode' option. This will give you a set of
+Makefiles which will include rules to automatically rebuild all the
+generated files.
+
+ After doing that, whenever you have changed some of the input files
+and want to regenerated the other files, go to your object directory
+and run `make'. Doing this is more reliable than trying to rebuild the
+files manually, because there are complex order dependencies and it is
+easy to forget something.
+
+
+File: configure.info, Node: Getting Started Example, Prev: Generate files, Up: Getting Started
+
+2.5 Example
+===========
+
+Let's consider a trivial example.
+
+ Suppose we want to write a simple version of `touch'. Our program,
+which we will call `poke', will take a single file name argument, and
+use the `utime' system call to set the modification and access times of
+the file to the current time. We want this program to be highly
+portable.
+
+ We'll first see what this looks like without using autoconf and
+automake, and then see what it looks like with them.
+
+* Menu:
+
+* Getting Started Example 1:: First Try.
+* Getting Started Example 2:: Second Try.
+* Getting Started Example 3:: Third Try.
+* Generate Files in Example:: Generate Files.
+
+
+File: configure.info, Node: Getting Started Example 1, Next: Getting Started Example 2, Up: Getting Started Example
+
+2.5.1 First Try
+---------------
+
+Here is our first try at `poke.c'. Note that we've written it without
+ANSI/ISO C prototypes, since we want it to be highly portable.
+
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <sys/types.h>
+ #include <utime.h>
+
+ int
+ main (argc, argv)
+ int argc;
+ char **argv;
+ {
+ if (argc != 2)
+ {
+ fprintf (stderr, "Usage: poke file\n");
+ exit (1);
+ }
+
+ if (utime (argv[1], NULL) < 0)
+ {
+ perror ("utime");
+ exit (1);
+ }
+
+ exit (0);
+ }
+
+ We also write a simple `Makefile'.
+
+ CC = gcc
+ CFLAGS = -g -O2
+
+ all: poke
+
+ poke: poke.o
+ $(CC) -o poke $(CFLAGS) $(LDFLAGS) poke.o
+
+ So far, so good.
+
+ Unfortunately, there are a few problems.
+
+ On older Unix systems derived from BSD 4.3, the `utime' system call
+does not accept a second argument of `NULL'. On those systems, we need
+to pass a pointer to `struct utimbuf' structure. Unfortunately, even
+older systems don't define that structure; on those systems, we need to
+pass an array of two `long' values.
+
+ The header file `stdlib.h' was invented by ANSI C, and older systems
+don't have a copy. We included it above to get a declaration of `exit'.
+
+ We can find some of these portability problems by running
+`autoscan', which will create a `configure.scan' file which we can use
+as a prototype for our `configure.in' file. I won't show the output,
+but it will notice the potential problems with `utime' and `stdlib.h'.
+
+ In our `Makefile', we don't provide any way to install the program.
+This doesn't matter much for such a simple example, but a real program
+will need an `install' target. For that matter, we will also want a
+`clean' target.
+
+
+File: configure.info, Node: Getting Started Example 2, Next: Getting Started Example 3, Prev: Getting Started Example 1, Up: Getting Started Example
+
+2.5.2 Second Try
+----------------
+
+Here is our second try at this program.
+
+ We modify `poke.c' to use preprocessor macros to control what
+features are available. (I've cheated a bit by using the same macro
+names which autoconf will use).
+
+ #include <stdio.h>
+
+ #ifdef STDC_HEADERS
+ #include <stdlib.h>
+ #endif
+
+ #include <sys/types.h>
+
+ #ifdef HAVE_UTIME_H
+ #include <utime.h>
+ #endif
+
+ #ifndef HAVE_UTIME_NULL
+
+ #include <time.h>
+
+ #ifndef HAVE_STRUCT_UTIMBUF
+
+ struct utimbuf
+ {
+ long actime;
+ long modtime;
+ };
+
+ #endif
+
+ static int
+ utime_now (file)
+ char *file;
+ {
+ struct utimbuf now;
+
+ now.actime = now.modtime = time (NULL);
+ return utime (file, &now);
+ }
+
+ #define utime(f, p) utime_now (f)
+
+ #endif /* HAVE_UTIME_NULL */
+
+ int
+ main (argc, argv)
+ int argc;
+ char **argv;
+ {
+ if (argc != 2)
+ {
+ fprintf (stderr, "Usage: poke file\n");
+ exit (1);
+ }
+
+ if (utime (argv[1], NULL) < 0)
+ {
+ perror ("utime");
+ exit (1);
+ }
+
+ exit (0);
+ }
+
+ Here is the associated `Makefile'. We've added support for the
+preprocessor flags we use. We've also added `install' and `clean'
+targets.
+
+ # Set this to your installation directory.
+ bindir = /usr/local/bin
+
+ # Uncomment this if you have the standard ANSI/ISO C header files.
+ # STDC_HDRS = -DSTDC_HEADERS
+
+ # Uncomment this if you have utime.h.
+ # UTIME_H = -DHAVE_UTIME_H
+
+ # Uncomment this if utime (FILE, NULL) works on your system.
+ # UTIME_NULL = -DHAVE_UTIME_NULL
+
+ # Uncomment this if struct utimbuf is defined in utime.h.
+ # UTIMBUF = -DHAVE_STRUCT_UTIMBUF
+
+ CC = gcc
+ CFLAGS = -g -O2
+
+ ALL_CFLAGS = $(STDC_HDRS) $(UTIME_H) $(UTIME_NULL) $(UTIMBUF) $(CFLAGS)
+
+ all: poke
+
+ poke: poke.o
+ $(CC) -o poke $(ALL_CFLAGS) $(LDFLAGS) poke.o
+
+ .c.o:
+ $(CC) -c $(ALL_CFLAGS) poke.c
+
+ install: poke
+ cp poke $(bindir)/poke
+
+ clean:
+ rm poke poke.o
+
+ Some problems with this approach should be clear.
+
+ Users who want to compile poke will have to know how `utime' works
+on their systems, so that they can uncomment the `Makefile' correctly.
+
+ The installation is done using `cp', but many systems have an
+`install' program which may be used, and which supports optional
+features such as stripping debugging information out of the installed
+binary.
+
+ The use of `Makefile' variables like `CC', `CFLAGS' and `LDFLAGS'
+follows the requirements of the GNU standards. This is convenient for
+all packages, since it reduces surprises for users. However, it is
+easy to get the details wrong, and wind up with a slightly nonstandard
+distribution.
+
+
+File: configure.info, Node: Getting Started Example 3, Next: Generate Files in Example, Prev: Getting Started Example 2, Up: Getting Started Example
+
+2.5.3 Third Try
+---------------
+
+For our third try at this program, we will write a `configure.in'
+script to discover the configuration features on the host system, rather
+than requiring the user to edit the `Makefile'. We will also write a
+`Makefile.am' rather than a `Makefile'.
+
+ The only change to `poke.c' is to add a line at the start of the
+file:
+ #include "config.h"
+
+ The new `configure.in' file is as follows.
+
+ AC_INIT(poke.c)
+ AM_INIT_AUTOMAKE(poke, 1.0)
+ AM_CONFIG_HEADER(config.h:config.in)
+ AC_PROG_CC
+ AC_HEADER_STDC
+ AC_CHECK_HEADERS(utime.h)
+ AC_EGREP_HEADER(utimbuf, utime.h, AC_DEFINE(HAVE_STRUCT_UTIMBUF))
+ AC_FUNC_UTIME_NULL
+ AC_OUTPUT(Makefile)
+
+ The first four macros in this file, and the last one, were described
+above; see *Note Write configure.in::. If we omit these macros, then
+when we run `automake' we will get a reminder that we need them.
+
+ The other macros are standard autoconf macros.
+
+`AC_HEADER_STDC'
+ Check for standard C headers.
+
+`AC_CHECK_HEADERS'
+ Check whether a particular header file exists.
+
+`AC_EGREP_HEADER'
+ Check for a particular string in a particular header file, in this
+ case checking for `utimbuf' in `utime.h'.
+
+`AC_FUNC_UTIME_NULL'
+ Check whether `utime' accepts a NULL second argument to set the
+ file change time to the current time.
+
+ See the autoconf manual for a more complete description.
+
+ The new `Makefile.am' file is as follows. Note how simple this is
+compared to our earlier `Makefile'.
+
+ bin_PROGRAMS = poke
+
+ poke_SOURCES = poke.c
+
+ This means that we should build a single program name `poke'. It
+should be installed in the binary directory, which we called `bindir'
+earlier. The program `poke' is built from the source file `poke.c'.
+
+ We must also write a `acconfig.h' file. Besides `PACKAGE' and
+`VERSION', which must be mentioned for all packages which use automake,
+we must include `HAVE_STRUCT_UTIMBUF', since we mentioned it in an
+`AC_DEFINE'.
+
+ /* Name of package. */
+ #undef PACKAGE
+
+ /* Version of package. */
+ #undef VERSION
+
+ /* Whether utime.h defines struct utimbuf. */
+ #undef HAVE_STRUCT_UTIMBUF
+
+
+File: configure.info, Node: Generate Files in Example, Prev: Getting Started Example 3, Up: Getting Started Example
+
+2.5.4 Generate Files
+--------------------
+
+We must now generate the other files, using the following commands.
+
+ aclocal
+ autoconf
+ autoheader
+ automake
+
+ When we run `autoheader', it will remind us of any macros we forgot
+to add to `acconfig.h'.
+
+ When we run `automake', it will want to add some files to our
+distribution. It will add them automatically if we use the
+`--add-missing' option.
+
+ By default, `automake' will run in GNU mode, which means that it
+will want us to create certain additional files; as of this writing, it
+will want `NEWS', `README', `AUTHORS', and `ChangeLog', all of which
+are files which should appear in a standard GNU distribution. We can
+either add those files, or run `automake' with the `--foreign' option.
+
+ Running these tools will generate the following files, all of which
+are described in the next chapter.
+
+ * `aclocal.m4'
+
+ * `configure'
+
+ * `config.in'
+
+ * `Makefile.in'
+
+ * `stamp-h.in'
+
+
+File: configure.info, Node: Files, Next: Configuration Names, Prev: Getting Started, Up: Top
+
+3 Files
+*******
+
+As was seen in the previous chapter, the GNU configure and build system
+uses a number of different files. The developer must write a few files.
+The others are generated by various tools.
+
+ The system is rather flexible, and can be used in many different
+ways. In describing the files that it uses, I will describe the common
+case, and mention some other cases that may arise.
+
+* Menu:
+
+* Developer Files:: Developer Files.
+* Build Files:: Build Files.
+* Support Files:: Support Files.
+
+
+File: configure.info, Node: Developer Files, Next: Build Files, Up: Files
+
+3.1 Developer Files
+===================
+
+This section describes the files written or generated by the developer
+of a package.
+
+* Menu:
+
+* Developer Files Picture:: Developer Files Picture.
+* Written Developer Files:: Written Developer Files.
+* Generated Developer Files:: Generated Developer Files.
+
+
+File: configure.info, Node: Developer Files Picture, Next: Written Developer Files, Up: Developer Files
+
+3.1.1 Developer Files Picture
+-----------------------------
+
+Here is a picture of the files which are written by the developer, the
+generated files which would be included with a complete source
+distribution, and the tools which create those files. The file names
+are plain text and the tool names are enclosed by `*' characters (e.g.,
+`autoheader' is the name of a tool, not the name of a file).
+
+ acconfig.h configure.in Makefile.am
+ | | |
+ | --------------+---------------------- |
+ | | | | |
+ v v | acinclude.m4 | |
+ *autoheader* | | v v
+ | | v --->*automake*
+ v |--->*aclocal* | |
+ config.in | | | v
+ | v | Makefile.in
+ | aclocal.m4---
+ | |
+ v v
+ *autoconf*
+ |
+ v
+ configure
+
+
+File: configure.info, Node: Written Developer Files, Next: Generated Developer Files, Prev: Developer Files Picture, Up: Developer Files
+
+3.1.2 Written Developer Files
+-----------------------------
+
+The following files would be written by the developer.
+
+`configure.in'
+ This is the configuration script. This script contains
+ invocations of autoconf macros. It may also contain ordinary
+ shell script code. This file will contain feature tests for
+ portability issues. The last thing in the file will normally be
+ an `AC_OUTPUT' macro listing which files to create when the
+ builder runs the configure script. This file is always required
+ when using the GNU configure system. *Note Write configure.in::.
+
+`Makefile.am'
+ This is the automake input file. It describes how the code should
+ be built. It consists of definitions of automake variables. It
+ may also contain ordinary Makefile targets. This file is only
+ needed when using automake (newer tools normally use automake, but
+ there are still older tools which have not been converted, in
+ which the developer writes `Makefile.in' directly). *Note Write
+ Makefile.am::.
+
+`acconfig.h'
+ When the configure script creates a portability header file, by
+ using `AM_CONFIG_HEADER' (or, if not using automake,
+ `AC_CONFIG_HEADER'), this file is used to describe macros which are
+ not recognized by the `autoheader' command. This is normally a
+ fairly uninteresting file, consisting of a collection of `#undef'
+ lines with comments. Normally any call to `AC_DEFINE' in
+ `configure.in' will require a line in this file. *Note Write
+ acconfig.h::.
+
+`acinclude.m4'
+ This file is not always required. It defines local autoconf
+ macros. These macros may then be used in `configure.in'. If you
+ don't need any local autoconf macros, then you don't need this
+ file at all. In fact, in general, you never need local autoconf
+ macros, since you can put everything in `configure.in', but
+ sometimes a local macro is convenient.
+
+ Newer tools may omit `acinclude.m4', and instead use a
+ subdirectory, typically named `m4', and define `ACLOCAL_AMFLAGS =
+ -I m4' in `Makefile.am' to force `aclocal' to look there for macro
+ definitions. The macro definitions are then placed in separate
+ files in that directory.
+
+ The `acinclude.m4' file is only used when using automake; in older
+ tools, the developer writes `aclocal.m4' directly, if it is needed.
+
+
+File: configure.info, Node: Generated Developer Files, Prev: Written Developer Files, Up: Developer Files
+
+3.1.3 Generated Developer Files
+-------------------------------
+
+The following files would be generated by the developer.
+
+ When using automake, these files are normally not generated manually
+after the first time. Instead, the generated `Makefile' contains rules
+to automatically rebuild the files as required. When
+`AM_MAINTAINER_MODE' is used in `configure.in' (the normal case in
+Cygnus code), the automatic rebuilding rules will only be defined if
+you configure using the `--enable-maintainer-mode' option.
+
+ When using automatic rebuilding, it is important to ensure that all
+the various tools have been built and installed on your `PATH'. Using
+automatic rebuilding is highly recommended, so much so that I'm not
+going to explain what you have to do if you don't use it.
+
+`configure'
+ This is the configure script which will be run when building the
+ package. This is generated by `autoconf' from `configure.in' and
+ `aclocal.m4'. This is a shell script.
+
+`Makefile.in'
+ This is the file which the configure script will turn into the
+ `Makefile' at build time. This file is generated by `automake'
+ from `Makefile.am'. If you aren't using automake, you must write
+ this file yourself. This file is pretty much a normal `Makefile',
+ with some configure substitutions for certain variables.
+
+`aclocal.m4'
+ This file is created by the `aclocal' program, based on the
+ contents of `configure.in' and `acinclude.m4' (or, as noted in the
+ description of `acinclude.m4' above, on the contents of an `m4'
+ subdirectory). This file contains definitions of autoconf macros
+ which `autoconf' will use when generating the file `configure'.
+ These autoconf macros may be defined by you in `acinclude.m4' or
+ they may be defined by other packages such as automake, libtool or
+ gettext. If you aren't using automake, you will normally write
+ this file yourself; in that case, if `configure.in' uses only
+ standard autoconf macros, this file will not be needed at all.
+
+`config.in'
+ This file is created by `autoheader' based on `acconfig.h' and
+ `configure.in'. At build time, the configure script will define
+ some of the macros in it to create `config.h', which may then be
+ included by your program. This permits your C code to use
+ preprocessor conditionals to change its behaviour based on the
+ characteristics of the host system. This file may also be called
+ `config.h.in'.
+
+`stamp.h-in'
+ This rather uninteresting file, which I omitted from the picture,
+ is generated by `automake'. It always contains the string
+ `timestamp'. It is used as a timestamp file indicating whether
+ `config.in' is up to date. Using a timestamp file means that
+ `config.in' can be marked as up to date without actually changing
+ its modification time. This is useful since `config.in' depends
+ upon `configure.in', but it is easy to change `configure.in' in a
+ way which does not affect `config.in'.
+
+
+File: configure.info, Node: Build Files, Next: Support Files, Prev: Developer Files, Up: Files
+
+3.2 Build Files
+===============
+
+This section describes the files which are created at configure and
+build time. These are the files which somebody who builds the package
+will see.
+
+ Of course, the developer will also build the package. The
+distinction between developer files and build files is not that the
+developer does not see the build files, but that somebody who only
+builds the package does not have to worry about the developer files.
+
+* Menu:
+
+* Build Files Picture:: Build Files Picture.
+* Build Files Description:: Build Files Description.
+
+
+File: configure.info, Node: Build Files Picture, Next: Build Files Description, Up: Build Files
+
+3.2.1 Build Files Picture
+-------------------------
+
+Here is a picture of the files which will be created at build time.
+`config.status' is both a created file and a shell script which is run
+to create other files, and the picture attempts to show that.
+
+ config.in *configure* Makefile.in
+ | | |
+ | v |
+ | config.status |
+ | | |
+ *config.status*<======+==========>*config.status*
+ | |
+ v v
+ config.h Makefile
+
+
+File: configure.info, Node: Build Files Description, Prev: Build Files Picture, Up: Build Files
+
+3.2.2 Build Files Description
+-----------------------------
+
+This is a description of the files which are created at build time.
+
+`config.status'
+ The first step in building a package is to run the `configure'
+ script. The `configure' script will create the file
+ `config.status', which is itself a shell script. When you first
+ run `configure', it will automatically run `config.status'. An
+ `Makefile' derived from an automake generated `Makefile.in' will
+ contain rules to automatically run `config.status' again when
+ necessary to recreate certain files if their inputs change.
+
+`Makefile'
+ This is the file which make will read to build the program. The
+ `config.status' script will transform `Makefile.in' into
+ `Makefile'.
+
+`config.h'
+ This file defines C preprocessor macros which C code can use to
+ adjust its behaviour on different systems. The `config.status'
+ script will transform `config.in' into `config.h'.
+
+`config.cache'
+ This file did not fit neatly into the picture, and I omitted it.
+ It is used by the `configure' script to cache results between
+ runs. This can be an important speedup. If you modify
+ `configure.in' in such a way that the results of old tests should
+ change (perhaps you have added a new library to `LDFLAGS'), then
+ you will have to remove `config.cache' to force the tests to be
+ rerun.
+
+ The autoconf manual explains how to set up a site specific cache
+ file. This can speed up running `configure' scripts on your
+ system.
+
+`stamp.h'
+ This file, which I omitted from the picture, is similar to
+ `stamp-h.in'. It is used as a timestamp file indicating whether
+ `config.h' is up to date. This is useful since `config.h' depends
+ upon `config.status', but it is easy for `config.status' to change
+ in a way which does not affect `config.h'.
+
+
+File: configure.info, Node: Support Files, Prev: Build Files, Up: Files
+
+3.3 Support Files
+=================
+
+The GNU configure and build system requires several support files to be
+included with your distribution. You do not normally need to concern
+yourself with these. If you are using the Cygnus tree, most are already
+present. Otherwise, they will be installed with your source by
+`automake' (with the `--add-missing' option) and `libtoolize'.
+
+ You don't have to put the support files in the top level directory.
+You can put them in a subdirectory, and use the `AC_CONFIG_AUX_DIR'
+macro in `configure.in' to tell `automake' and the `configure' script
+where they are.
+
+ In this section, I describe the support files, so that you can know
+what they are and why they are there.
+
+`ABOUT-NLS'
+ Added by automake if you are using gettext. This is a
+ documentation file about the gettext project.
+
+`ansi2knr.c'
+ Used by an automake generated `Makefile' if you put `ansi2knr' in
+ `AUTOMAKE_OPTIONS' in `Makefile.am'. This permits compiling ANSI
+ C code with a K&R C compiler.
+
+`ansi2knr.1'
+ The man page which goes with `ansi2knr.c'.
+
+`config.guess'
+ A shell script which determines the configuration name for the
+ system on which it is run.
+
+`config.sub'
+ A shell script which canonicalizes a configuration name entered by
+ a user.
+
+`elisp-comp'
+ Used to compile Emacs LISP files.
+
+`install-sh'
+ A shell script which installs a program. This is used if the
+ configure script can not find an install binary.
+
+`ltconfig'
+ Used by libtool. This is a shell script which configures libtool
+ for the particular system on which it is used.
+
+`ltmain.sh'
+ Used by libtool. This is the actual libtool script which is used,
+ after it is configured by `ltconfig' to build a library.
+
+`mdate-sh'
+ A shell script used by an automake generated `Makefile' to pretty
+ print the modification time of a file. This is used to maintain
+ version numbers for texinfo files.
+
+`missing'
+ A shell script used if some tool is missing entirely. This is
+ used by an automake generated `Makefile' to avoid certain sorts of
+ timestamp problems.
+
+`mkinstalldirs'
+ A shell script which creates a directory, including all parent
+ directories. This is used by an automake generated `Makefile'
+ during installation.
+
+`texinfo.tex'
+ Required if you have any texinfo files. This is used when
+ converting Texinfo files into DVI using `texi2dvi' and TeX.
+
+`ylwrap'
+ A shell script used by an automake generated `Makefile' to run
+ programs like `bison', `yacc', `flex', and `lex'. These programs
+ default to producing output files with a fixed name, and the
+ `ylwrap' script runs them in a subdirectory to avoid file name
+ conflicts when using a parallel make program.
+
+
+File: configure.info, Node: Configuration Names, Next: Cross Compilation Tools, Prev: Files, Up: Top
+
+4 Configuration Names
+*********************
+
+The GNU configure system names all systems using a "configuration
+name". All such names used to be triplets (they may now contain four
+parts in certain cases), and the term "configuration triplet" is still
+seen.
+
+* Menu:
+
+* Configuration Name Definition:: Configuration Name Definition.
+* Using Configuration Names:: Using Configuration Names.
+
+
+File: configure.info, Node: Configuration Name Definition, Next: Using Configuration Names, Up: Configuration Names
+
+4.1 Configuration Name Definition
+=================================
+
+This is a string of the form CPU-MANUFACTURER-OPERATING_SYSTEM. In
+some cases, this is extended to a four part form:
+CPU-MANUFACTURER-KERNEL-OPERATING_SYSTEM.
+
+ When using a configuration name in a configure option, it is normally
+not necessary to specify an entire name. In particular, the
+MANUFACTURER field is often omitted, leading to strings such as
+`i386-linux' or `sparc-sunos'. The shell script `config.sub' will
+translate these shortened strings into the canonical form. autoconf
+will arrange for `config.sub' to be run automatically when it is needed.
+
+ The fields of a configuration name are as follows:
+
+CPU
+ The type of processor. This is typically something like `i386' or
+ `sparc'. More specific variants are used as well, such as
+ `mipsel' to indicate a little endian MIPS processor.
+
+MANUFACTURER
+ A somewhat freeform field which indicates the manufacturer of the
+ system. This is often simply `unknown'. Other common strings are
+ `pc' for an IBM PC compatible system, or the name of a workstation
+ vendor, such as `sun'.
+
+OPERATING_SYSTEM
+ The name of the operating system which is run on the system. This
+ will be something like `solaris2.5' or `irix6.3'. There is no
+ particular restriction on the version number, and strings like
+ `aix4.1.4.0' are seen. For an embedded system, which has no
+ operating system, this field normally indicates the type of object
+ file format, such as `elf' or `coff'.
+
+KERNEL
+ This is used mainly for GNU/Linux. A typical GNU/Linux
+ configuration name is `i586-pc-linux-gnulibc1'. In this case the
+ kernel, `linux', is separated from the operating system,
+ `gnulibc1'.
+
+ The shell script `config.guess' will normally print the correct
+configuration name for the system on which it is run. It does by
+running `uname' and by examining other characteristics of the system.
+
+ Because `config.guess' can normally determine the configuration name
+for a machine, it is normally only necessary to specify a configuration
+name when building a cross-compiler or when building using a
+cross-compiler.
+
+
+File: configure.info, Node: Using Configuration Names, Prev: Configuration Name Definition, Up: Configuration Names
+
+4.2 Using Configuration Names
+=============================
+
+A configure script will sometimes have to make a decision based on a
+configuration name. You will need to do this if you have to compile
+code differently based on something which can not be tested using a
+standard autoconf feature test.
+
+ It is normally better to test for particular features, rather than to
+test for a particular system. This is because as Unix evolves,
+different systems copy features from one another. Even if you need to
+determine whether the feature is supported based on a configuration
+name, you should define a macro which describes the feature, rather than
+defining a macro which describes the particular system you are on.
+
+ Testing for a particular system is normally done using a case
+statement in `configure.in'. The case statement might look something
+like the following, assuming that `host' is a shell variable holding a
+canonical configuration name (which will be the case if `configure.in'
+uses the `AC_CANONICAL_HOST' or `AC_CANONICAL_SYSTEM' macro).
+
+ case "${host}" in
+ i[3-7]86-*-linux-gnu*) do something ;;
+ sparc*-sun-solaris2.[56789]*) do something ;;
+ sparc*-sun-solaris*) do something ;;
+ mips*-*-elf*) do something ;;
+ esac
+
+ It is particularly important to use `*' after the operating system
+field, in order to match the version number which will be generated by
+`config.guess'.
+
+ In most cases you must be careful to match a range of processor
+types. For most processor families, a trailing `*' suffices, as in
+`mips*' above. For the i386 family, something along the lines of
+`i[3-7]86' suffices at present. For the m68k family, you will need
+something like `m68*'. Of course, if you do not need to match on the
+processor, it is simpler to just replace the entire field by a `*', as
+in `*-*-irix*'.
+
+
+File: configure.info, Node: Cross Compilation Tools, Next: Canadian Cross, Prev: Configuration Names, Up: Top
+
+5 Cross Compilation Tools
+*************************
+
+The GNU configure and build system can be used to build "cross
+compilation" tools. A cross compilation tool is a tool which runs on
+one system and produces code which runs on another system.
+
+* Menu:
+
+* Cross Compilation Concepts:: Cross Compilation Concepts.
+* Host and Target:: Host and Target.
+* Using the Host Type:: Using the Host Type.
+* Specifying the Target:: Specifying the Target.
+* Using the Target Type:: Using the Target Type.
+* Cross Tools in the Cygnus Tree:: Cross Tools in the Cygnus Tree
+
+
+File: configure.info, Node: Cross Compilation Concepts, Next: Host and Target, Up: Cross Compilation Tools
+
+5.1 Cross Compilation Concepts
+==============================
+
+A compiler which produces programs which run on a different system is a
+cross compilation compiler, or simply a "cross compiler". Similarly,
+we speak of cross assemblers, cross linkers, etc.
+
+ In the normal case, a compiler produces code which runs on the same
+system as the one on which the compiler runs. When it is necessary to
+distinguish this case from the cross compilation case, such a compiler
+is called a "native compiler". Similarly, we speak of native
+assemblers, etc.
+
+ Although the debugger is not strictly speaking a compilation tool,
+it is nevertheless meaningful to speak of a cross debugger: a debugger
+which is used to debug code which runs on another system. Everything
+that is said below about configuring cross compilation tools applies to
+the debugger as well.
+
+
+File: configure.info, Node: Host and Target, Next: Using the Host Type, Prev: Cross Compilation Concepts, Up: Cross Compilation Tools
+
+5.2 Host and Target
+===================
+
+When building cross compilation tools, there are two different systems
+involved: the system on which the tools will run, and the system for
+which the tools generate code.
+
+ The system on which the tools will run is called the "host" system.
+
+ The system for which the tools generate code is called the "target"
+system.
+
+ For example, suppose you have a compiler which runs on a GNU/Linux
+system and generates ELF programs for a MIPS embedded system. In this
+case the GNU/Linux system is the host, and the MIPS ELF system is the
+target. Such a compiler could be called a GNU/Linux cross MIPS ELF
+compiler, or, equivalently, a `i386-linux-gnu' cross `mips-elf'
+compiler.
+
+ Naturally, most programs are not cross compilation tools. For those
+programs, it does not make sense to speak of a target. It only makes
+sense to speak of a target for tools like `gcc' or the `binutils' which
+actually produce running code. For example, it does not make sense to
+speak of the target of a tool like `bison' or `make'.
+
+ Most cross compilation tools can also serve as native tools. For a
+native compilation tool, it is still meaningful to speak of a target.
+For a native tool, the target is the same as the host. For example, for
+a GNU/Linux native compiler, the host is GNU/Linux, and the target is
+also GNU/Linux.
+
+
+File: configure.info, Node: Using the Host Type, Next: Specifying the Target, Prev: Host and Target, Up: Cross Compilation Tools
+
+5.3 Using the Host Type
+=======================
+
+In almost all cases the host system is the system on which you run the
+`configure' script, and on which you build the tools (for the case when
+they differ, *note Canadian Cross::).
+
+ If your configure script needs to know the configuration name of the
+host system, and the package is not a cross compilation tool and
+therefore does not have a target, put `AC_CANONICAL_HOST' in
+`configure.in'. This macro will arrange to define a few shell
+variables when the `configure' script is run.
+
+`host'
+ The canonical configuration name of the host. This will normally
+ be determined by running the `config.guess' shell script, although
+ the user is permitted to override this by using an explicit
+ `--host' option.
+
+`host_alias'
+ In the unusual case that the user used an explicit `--host' option,
+ this will be the argument to `--host'. In the normal case, this
+ will be the same as the `host' variable.
+
+`host_cpu'
+`host_vendor'
+`host_os'
+ The first three parts of the canonical configuration name.
+
+ The shell variables may be used by putting shell code in
+`configure.in'. For an example, see *Note Using Configuration Names::.
+
+
+File: configure.info, Node: Specifying the Target, Next: Using the Target Type, Prev: Using the Host Type, Up: Cross Compilation Tools
+
+5.4 Specifying the Target
+=========================
+
+By default, the `configure' script will assume that the target is the
+same as the host. This is the more common case; for example, it leads
+to a native compiler rather than a cross compiler.
+
+ If you want to build a cross compilation tool, you must specify the
+target explicitly by using the `--target' option when you run
+`configure'. The argument to `--target' is the configuration name of
+the system for which you wish to generate code. *Note Configuration
+Names::.
+
+ For example, to build tools which generate code for a MIPS ELF
+embedded system, you would use `--target mips-elf'.
+
+
+File: configure.info, Node: Using the Target Type, Next: Cross Tools in the Cygnus Tree, Prev: Specifying the Target, Up: Cross Compilation Tools
+
+5.5 Using the Target Type
+=========================
+
+When writing `configure.in' for a cross compilation tool, you will need
+to use information about the target. To do this, put
+`AC_CANONICAL_SYSTEM' in `configure.in'.
+
+ `AC_CANONICAL_SYSTEM' will look for a `--target' option and
+canonicalize it using the `config.sub' shell script. It will also run
+`AC_CANONICAL_HOST' (*note Using the Host Type::).
+
+ The target type will be recorded in the following shell variables.
+Note that the host versions of these variables will also be defined by
+`AC_CANONICAL_HOST'.
+
+`target'
+ The canonical configuration name of the target.
+
+`target_alias'
+ The argument to the `--target' option. If the user did not specify
+ a `--target' option, this will be the same as `host_alias'.
+
+`target_cpu'
+`target_vendor'
+`target_os'
+ The first three parts of the canonical target configuration name.
+
+ Note that if `host' and `target' are the same string, you can assume
+a native configuration. If they are different, you can assume a cross
+configuration.
+
+ It is arguably possible for `host' and `target' to represent the
+same system, but for the strings to not be identical. For example, if
+`config.guess' returns `sparc-sun-sunos4.1.4', and somebody configures
+with `--target sparc-sun-sunos4.1', then the slight differences between
+the two versions of SunOS may be unimportant for your tool. However,
+in the general case it can be quite difficult to determine whether the
+differences between two configuration names are significant or not.
+Therefore, by convention, if the user specifies a `--target' option
+without specifying a `--host' option, it is assumed that the user wants
+to configure a cross compilation tool.
+
+ The variables `target' and `target_alias' should be handled
+differently.
+
+ In general, whenever the user may actually see a string,
+`target_alias' should be used. This includes anything which may appear
+in the file system, such as a directory name or part of a tool name.
+It also includes any tool output, unless it is clearly labelled as the
+canonical target configuration name. This permits the user to use the
+`--target' option to specify how the tool will appear to the outside
+world.
+
+ On the other hand, when checking for characteristics of the target
+system, `target' should be used. This is because a wide variety of
+`--target' options may map into the same canonical configuration name.
+You should not attempt to duplicate the canonicalization done by
+`config.sub' in your own code.
+
+ By convention, cross tools are installed with a prefix of the
+argument used with the `--target' option, also known as `target_alias'
+(*note Using the Target Type::). If the user does not use the
+`--target' option, and thus is building a native tool, no prefix is
+used.
+
+ For example, if gcc is configured with `--target mips-elf', then the
+installed binary will be named `mips-elf-gcc'. If gcc is configured
+without a `--target' option, then the installed binary will be named
+`gcc'.
+
+ The autoconf macro `AC_ARG_PROGRAM' will handle this for you. If
+you are using automake, no more need be done; the programs will
+automatically be installed with the correct prefixes. Otherwise, see
+the autoconf documentation for `AC_ARG_PROGRAM'.
+
+
+File: configure.info, Node: Cross Tools in the Cygnus Tree, Prev: Using the Target Type, Up: Cross Compilation Tools
+
+5.6 Cross Tools in the Cygnus Tree
+==================================
+
+The Cygnus tree is used for various packages including gdb, the GNU
+binutils, and egcs. It is also, of course, used for Cygnus releases.
+
+ In the Cygnus tree, the top level `configure' script uses the old
+Cygnus configure system, not autoconf. The top level `Makefile.in' is
+written to build packages based on what is in the source tree, and
+supports building a large number of tools in a single
+`configure'/`make' step.
+
+ The Cygnus tree may be configured with a `--target' option. The
+`--target' option applies recursively to every subdirectory, and
+permits building an entire set of cross tools at once.
+
+* Menu:
+
+* Host and Target Libraries:: Host and Target Libraries.
+* Target Library Configure Scripts:: Target Library Configure Scripts.
+* Make Targets in Cygnus Tree:: Make Targets in Cygnus Tree.
+* Target libiberty:: Target libiberty
+
+
+File: configure.info, Node: Host and Target Libraries, Next: Target Library Configure Scripts, Up: Cross Tools in the Cygnus Tree
+
+5.6.1 Host and Target Libraries
+-------------------------------
+
+The Cygnus tree distinguishes host libraries from target libraries.
+
+ Host libraries are built with the compiler used to build the programs
+which run on the host, which is called the host compiler. This includes
+libraries such as `bfd' and `tcl'. These libraries are built with the
+host compiler, and are linked into programs like the binutils or gcc
+which run on the host.
+
+ Target libraries are built with the target compiler. If gcc is
+present in the source tree, then the target compiler is the gcc that is
+built using the host compiler. Target libraries are libraries such as
+`newlib' and `libstdc++'. These libraries are not linked into the host
+programs, but are instead made available for use with programs built
+with the target compiler.
+
+ For the rest of this section, assume that gcc is present in the
+source tree, so that it will be used to build the target libraries.
+
+ There is a complication here. The configure process needs to know
+which compiler you are going to use to build a tool; otherwise, the
+feature tests will not work correctly. The Cygnus tree handles this by
+not configuring the target libraries until the target compiler is
+built. In order to permit everything to build using a single
+`configure'/`make', the configuration of the target libraries is
+actually triggered during the make step.
+
+ When the target libraries are configured, the `--target' option is
+not used. Instead, the `--host' option is used with the argument of
+the `--target' option for the overall configuration. If no `--target'
+option was used for the overall configuration, the `--host' option will
+be passed with the output of the `config.guess' shell script. Any
+`--build' option is passed down unchanged.
+
+ This translation of configuration options is done because since the
+target libraries are compiled with the target compiler, they are being
+built in order to run on the target of the overall configuration. By
+the definition of host, this means that their host system is the same as
+the target system of the overall configuration.
+
+ The same process is used for both a native configuration and a cross
+configuration. Even when using a native configuration, the target
+libraries will be configured and built using the newly built compiler.
+This is particularly important for the C++ libraries, since there is no
+reason to assume that the C++ compiler used to build the host tools (if
+there even is one) uses the same ABI as the g++ compiler which will be
+used to build the target libraries.
+
+ There is one difference between a native configuration and a cross
+configuration. In a native configuration, the target libraries are
+normally configured and built as siblings of the host tools. In a cross
+configuration, the target libraries are normally built in a subdirectory
+whose name is the argument to `--target'. This is mainly for
+historical reasons.
+
+ To summarize, running `configure' in the Cygnus tree configures all
+the host libraries and tools, but does not configure any of the target
+libraries. Running `make' then does the following steps:
+
+ * Build the host libraries.
+
+ * Build the host programs, including gcc. Note that we call gcc
+ both a host program (since it runs on the host) and a target
+ compiler (since it generates code for the target).
+
+ * Using the newly built target compiler, configure the target
+ libraries.
+
+ * Build the target libraries.
+
+ The steps need not be done in precisely this order, since they are
+actually controlled by `Makefile' targets.
+
+
+File: configure.info, Node: Target Library Configure Scripts, Next: Make Targets in Cygnus Tree, Prev: Host and Target Libraries, Up: Cross Tools in the Cygnus Tree
+
+5.6.2 Target Library Configure Scripts
+--------------------------------------
+
+There are a few things you must know in order to write a configure
+script for a target library. This is just a quick sketch, and beginners
+shouldn't worry if they don't follow everything here.
+
+ The target libraries are configured and built using a newly built
+target compiler. There may not be any startup files or libraries for
+this target compiler. In fact, those files will probably be built as
+part of some target library, which naturally means that they will not
+exist when your target library is configured.
+
+ This means that the configure script for a target library may not use
+any test which requires doing a link. This unfortunately includes many
+useful autoconf macros, such as `AC_CHECK_FUNCS'. autoconf macros
+which do a compile but not a link, such as `AC_CHECK_HEADERS', may be
+used.
+
+ This is a severe restriction, but normally not a fatal one, as target
+libraries can often assume the presence of other target libraries, and
+thus know which functions will be available.
+
+ As of this writing, the autoconf macro `AC_PROG_CC' does a link to
+make sure that the compiler works. This may fail in a target library,
+so target libraries must use a different set of macros to locate the
+compiler. See the `configure.in' file in a directory like `libiberty'
+or `libgloss' for an example.
+
+ As noted in the previous section, target libraries are sometimes
+built in directories which are siblings to the host tools, and are
+sometimes built in a subdirectory. The `--with-target-subdir' configure
+option will be passed when the library is configured. Its value will be
+an empty string if the target library is a sibling. Its value will be
+the name of the subdirectory if the target library is in a subdirectory.
+
+ If the overall build is not a native build (i.e., the overall
+configure used the `--target' option), then the library will be
+configured with the `--with-cross-host' option. The value of this
+option will be the host system of the overall build. Recall that the
+host system of the library will be the target of the overall build. If
+the overall build is a native build, the `--with-cross-host' option
+will not be used.
+
+ A library which can be built both standalone and as a target library
+may want to install itself into different directories depending upon the
+case. When built standalone, or when built native, the library should
+be installed in `$(libdir)'. When built as a target library which is
+not native, the library should be installed in `$(tooldir)/lib'. The
+`--with-cross-host' option may be used to distinguish these cases.
+
+ This same test of `--with-cross-host' may be used to see whether it
+is OK to use link tests in the configure script. If the
+`--with-cross-host' option is not used, then the library is being built
+either standalone or native, and a link should work.
+
+
+File: configure.info, Node: Make Targets in Cygnus Tree, Next: Target libiberty, Prev: Target Library Configure Scripts, Up: Cross Tools in the Cygnus Tree
+
+5.6.3 Make Targets in Cygnus Tree
+---------------------------------
+
+The top level `Makefile' in the Cygnus tree defines targets for every
+known subdirectory.
+
+ For every subdirectory DIR which holds a host library or program,
+the `Makefile' target `all-DIR' will build that library or program.
+
+ There are dependencies among host tools. For example, building gcc
+requires first building gas, because the gcc build process invokes the
+target assembler. These dependencies are reflected in the top level
+`Makefile'.
+
+ For every subdirectory DIR which holds a target library, the
+`Makefile' target `configure-target-DIR' will configure that library.
+The `Makefile' target `all-target-DIR' will build that library.
+
+ Every `configure-target-DIR' target depends upon `all-gcc', since
+gcc, the target compiler, is required to configure the tool. Every
+`all-target-DIR' target depends upon the corresponding
+`configure-target-DIR' target.
+
+ There are several other targets which may be of interest for each
+directory: `install-DIR', `clean-DIR', and `check-DIR'. There are also
+corresponding `target' versions of these for the target libraries ,
+such as `install-target-DIR'.
+
+
+File: configure.info, Node: Target libiberty, Prev: Make Targets in Cygnus Tree, Up: Cross Tools in the Cygnus Tree
+
+5.6.4 Target libiberty
+----------------------
+
+The `libiberty' subdirectory is currently a special case, in that it is
+the only directory which is built both using the host compiler and
+using the target compiler.
+
+ This is because the files in `libiberty' are used when building the
+host tools, and they are also incorporated into the `libstdc++' target
+library as support code.
+
+ This duality does not pose any particular difficulties. It means
+that there are targets for both `all-libiberty' and
+`all-target-libiberty'.
+
+ In a native configuration, when target libraries are not built in a
+subdirectory, the same objects are normally used as both the host build
+and the target build. This is normally OK, since libiberty contains
+only C code, and in a native configuration the results of the host
+compiler and the target compiler are normally interoperable.
+
+ Irix 6 is again an exception here, since the SGI native compiler
+defaults to using the `O32' ABI, and gcc defaults to using the `N32'
+ABI. On Irix 6, the target libraries are built in a subdirectory even
+for a native configuration, avoiding this problem.
+
+ There are currently no other libraries built for both the host and
+the target, but there is no conceptual problem with adding more.
+
+
+File: configure.info, Node: Canadian Cross, Next: Cygnus Configure, Prev: Cross Compilation Tools, Up: Top
+
+6 Canadian Cross
+****************
+
+It is possible to use the GNU configure and build system to build a
+program which will run on a system which is different from the system on
+which the tools are built. In other words, it is possible to build
+programs using a cross compiler.
+
+ This is referred to as a "Canadian Cross".
+
+* Menu:
+
+* Canadian Cross Example:: Canadian Cross Example.
+* Canadian Cross Concepts:: Canadian Cross Concepts.
+* Build Cross Host Tools:: Build Cross Host Tools.
+* Build and Host Options:: Build and Host Options.
+* CCross not in Cygnus Tree:: Canadian Cross not in Cygnus Tree.
+* CCross in Cygnus Tree:: Canadian Cross in Cygnus Tree.
+* Supporting Canadian Cross:: Supporting Canadian Cross.
+
+
+File: configure.info, Node: Canadian Cross Example, Next: Canadian Cross Concepts, Up: Canadian Cross
+
+6.1 Canadian Cross Example
+==========================
+
+Here is an example of a Canadian Cross.
+
+ While running on a GNU/Linux, you can build a program which will run
+on a Solaris system. You would use a GNU/Linux cross Solaris compiler
+to build the program.
+
+ Of course, you could not run the resulting program on your GNU/Linux
+system. You would have to copy it over to a Solaris system before you
+would run it.
+
+ Of course, you could also simply build the programs on the Solaris
+system in the first place. However, perhaps the Solaris system is not
+available for some reason; perhaps you actually don't have one, but you
+want to build the tools for somebody else to use. Or perhaps your
+GNU/Linux system is much faster than your Solaris system.
+
+ A Canadian Cross build is most frequently used when building
+programs to run on a non-Unix system, such as DOS or Windows. It may
+be simpler to configure and build on a Unix system than to support the
+configuration machinery on a non-Unix system.
+
+
+File: configure.info, Node: Canadian Cross Concepts, Next: Build Cross Host Tools, Prev: Canadian Cross Example, Up: Canadian Cross
+
+6.2 Canadian Cross Concepts
+===========================
+
+When building a Canadian Cross, there are at least two different systems
+involved: the system on which the tools are being built, and the system
+on which the tools will run.
+
+ The system on which the tools are being built is called the "build"
+system.
+
+ The system on which the tools will run is called the host system.
+
+ For example, if you are building a Solaris program on a GNU/Linux
+system, as in the previous section, the build system would be GNU/Linux,
+and the host system would be Solaris.
+
+ It is, of course, possible to build a cross compiler using a Canadian
+Cross (i.e., build a cross compiler using a cross compiler). In this
+case, the system for which the resulting cross compiler generates code
+is called the target system. (For a more complete discussion of host
+and target systems, *note Host and Target::).
+
+ An example of building a cross compiler using a Canadian Cross would
+be building a Windows cross MIPS ELF compiler on a GNU/Linux system. In
+this case the build system would be GNU/Linux, the host system would be
+Windows, and the target system would be MIPS ELF.
+
+ The name Canadian Cross comes from the case when the build, host, and
+target systems are all different. At the time that these issues were
+all being hashed out, Canada had three national political parties.
+
+
+File: configure.info, Node: Build Cross Host Tools, Next: Build and Host Options, Prev: Canadian Cross Concepts, Up: Canadian Cross
+
+6.3 Build Cross Host Tools
+==========================
+
+In order to configure a program for a Canadian Cross build, you must
+first build and install the set of cross tools you will use to build the
+program.
+
+ These tools will be build cross host tools. That is, they will run
+on the build system, and will produce code that runs on the host system.
+
+ It is easy to confuse the meaning of build and host here. Always
+remember that the build system is where you are doing the build, and the
+host system is where the resulting program will run. Therefore, you
+need a build cross host compiler.
+
+ In general, you must have a complete cross environment in order to do
+the build. This normally means a cross compiler, cross assembler, and
+so forth, as well as libraries and include files for the host system.
+
+
+File: configure.info, Node: Build and Host Options, Next: CCross not in Cygnus Tree, Prev: Build Cross Host Tools, Up: Canadian Cross
+
+6.4 Build and Host Options
+==========================
+
+When you run `configure', you must use both the `--build' and `--host'
+options.
+
+ The `--build' option is used to specify the configuration name of
+the build system. This can normally be the result of running the
+`config.guess' shell script, and it is reasonable to use
+`--build=`config.guess`'.
+
+ The `--host' option is used to specify the configuration name of the
+host system.
+
+ As we explained earlier, `config.guess' is used to set the default
+value for the `--host' option (*note Using the Host Type::). We can
+now see that since `config.guess' returns the type of system on which
+it is run, it really identifies the build system. Since the host
+system is normally the same as the build system (i.e., people do not
+normally build using a cross compiler), it is reasonable to use the
+result of `config.guess' as the default for the host system when the
+`--host' option is not used.
+
+ It might seem that if the `--host' option were used without the
+`--build' option that the configure script could run `config.guess' to
+determine the build system, and presume a Canadian Cross if the result
+of `config.guess' differed from the `--host' option. However, for
+historical reasons, some configure scripts are routinely run using an
+explicit `--host' option, rather than using the default from
+`config.guess'. As noted earlier, it is difficult or impossible to
+reliably compare configuration names (*note Using the Target Type::).
+Therefore, by convention, if the `--host' option is used, but the
+`--build' option is not used, then the build system defaults to the
+host system.
+
+
+File: configure.info, Node: CCross not in Cygnus Tree, Next: CCross in Cygnus Tree, Prev: Build and Host Options, Up: Canadian Cross
+
+6.5 Canadian Cross not in Cygnus Tree.
+======================================
+
+If you are not using the Cygnus tree, you must explicitly specify the
+cross tools which you want to use to build the program. This is done by
+setting environment variables before running the `configure' script.
+
+ You must normally set at least the environment variables `CC', `AR',
+and `RANLIB' to the cross tools which you want to use to build.
+
+ For some programs, you must set additional cross tools as well, such
+as `AS', `LD', or `NM'.
+
+ You would set these environment variables to the build cross tools
+which you are going to use.
+
+ For example, if you are building a Solaris program on a GNU/Linux
+system, and your GNU/Linux cross Solaris compiler were named
+`solaris-gcc', then you would set the environment variable `CC' to
+`solaris-gcc'.
+
+
+File: configure.info, Node: CCross in Cygnus Tree, Next: Supporting Canadian Cross, Prev: CCross not in Cygnus Tree, Up: Canadian Cross
+
+6.6 Canadian Cross in Cygnus Tree
+=================================
+
+This section describes configuring and building a Canadian Cross when
+using the Cygnus tree.
+
+* Menu:
+
+* Standard Cygnus CCross:: Building a Normal Program.
+* Cross Cygnus CCross:: Building a Cross Program.
+
+
+File: configure.info, Node: Standard Cygnus CCross, Next: Cross Cygnus CCross, Up: CCross in Cygnus Tree
+
+6.6.1 Building a Normal Program
+-------------------------------
+
+When configuring a Canadian Cross in the Cygnus tree, all the
+appropriate environment variables are automatically set to `HOST-TOOL',
+where HOST is the value used for the `--host' option, and TOOL is the
+name of the tool (e.g., `gcc', `as', etc.). These tools must be on
+your `PATH'.
+
+ Adding a prefix of HOST will give the usual name for the build cross
+host tools. To see this, consider that when these cross tools were
+built, they were configured to run on the build system and to produce
+code for the host system. That is, they were configured with a
+`--target' option that is the same as the system which we are now
+calling the host. Recall that the default name for installed cross
+tools uses the target system as a prefix (*note Using the Target
+Type::). Since that is the system which we are now calling the host,
+HOST is the right prefix to use.
+
+ For example, if you configure with `--build=i386-linux-gnu' and
+`--host=solaris', then the Cygnus tree will automatically default to
+using the compiler `solaris-gcc'. You must have previously built and
+installed this compiler, probably by doing a build with no `--host'
+option and with a `--target' option of `solaris'.
+
+
+File: configure.info, Node: Cross Cygnus CCross, Prev: Standard Cygnus CCross, Up: CCross in Cygnus Tree
+
+6.6.2 Building a Cross Program
+------------------------------
+
+There are additional considerations if you want to build a cross
+compiler, rather than a native compiler, in the Cygnus tree using a
+Canadian Cross.
+
+ When you build a cross compiler using the Cygnus tree, then the
+target libraries will normally be built with the newly built target
+compiler (*note Host and Target Libraries::). However, this will not
+work when building with a Canadian Cross. This is because the newly
+built target compiler will be a program which runs on the host system,
+and therefore will not be able to run on the build system.
+
+ Therefore, when building a cross compiler with the Cygnus tree, you
+must first install a set of build cross target tools. These tools will
+be used when building the target libraries.
+
+ Note that this is not a requirement of a Canadian Cross in general.
+For example, it would be possible to build just the host cross target
+tools on the build system, to copy the tools to the host system, and to
+build the target libraries on the host system. The requirement for
+build cross target tools is imposed by the Cygnus tree, which expects
+to be able to build both host programs and target libraries in a single
+`configure'/`make' step. Because it builds these in a single step, it
+expects to be able to build the target libraries on the build system,
+which means that it must use a build cross target toolchain.
+
+ For example, suppose you want to build a Windows cross MIPS ELF
+compiler on a GNU/Linux system. You must have previously installed
+both a GNU/Linux cross Windows compiler and a GNU/Linux cross MIPS ELF
+compiler.
+
+ In order to build the Windows (configuration name `i386-cygwin32')
+cross MIPS ELF (configure name `mips-elf') compiler, you might execute
+the following commands (long command lines are broken across lines with
+a trailing backslash as a continuation character).
+
+ mkdir linux-x-cygwin32
+ cd linux-x-cygwin32
+ SRCDIR/configure --target i386-cygwin32 --prefix=INSTALLDIR \
+ --exec-prefix=INSTALLDIR/H-i386-linux
+ make
+ make install
+ cd ..
+ mkdir linux-x-mips-elf
+ cd linux-x-mips-elf
+ SRCDIR/configure --target mips-elf --prefix=INSTALLDIR \
+ --exec-prefix=INSTALLDIR/H-i386-linux
+ make
+ make install
+ cd ..
+ mkdir cygwin32-x-mips-elf
+ cd cygwin32-x-mips-elf
+ SRCDIR/configure --build=i386-linux-gnu --host=i386-cygwin32 \
+ --target=mips-elf --prefix=WININSTALLDIR \
+ --exec-prefix=WININSTALLDIR/H-i386-cygwin32
+ make
+ make install
+
+ You would then copy the contents of WININSTALLDIR over to the
+Windows machine, and run the resulting programs.
+
+
+File: configure.info, Node: Supporting Canadian Cross, Prev: CCross in Cygnus Tree, Up: Canadian Cross
+
+6.7 Supporting Canadian Cross
+=============================
+
+If you want to make it possible to build a program you are developing
+using a Canadian Cross, you must take some care when writing your
+configure and make rules. Simple cases will normally work correctly.
+However, it is not hard to write configure and make tests which will
+fail in a Canadian Cross.
+
+* Menu:
+
+* CCross in Configure:: Supporting Canadian Cross in Configure Scripts.
+* CCross in Make:: Supporting Canadian Cross in Makefiles.
+
+
+File: configure.info, Node: CCross in Configure, Next: CCross in Make, Up: Supporting Canadian Cross
+
+6.7.1 Supporting Canadian Cross in Configure Scripts
+----------------------------------------------------
+
+In a `configure.in' file, after calling `AC_PROG_CC', you can find out
+whether this is a Canadian Cross configure by examining the shell
+variable `cross_compiling'. In a Canadian Cross, which means that the
+compiler is a cross compiler, `cross_compiling' will be `yes'. In a
+normal configuration, `cross_compiling' will be `no'.
+
+ You ordinarily do not need to know the type of the build system in a
+configure script. However, if you do need that information, you can get
+it by using the macro `AC_CANONICAL_SYSTEM', the same macro that is
+used to determine the target system. This macro will set the variables
+`build', `build_alias', `build_cpu', `build_vendor', and `build_os',
+which correspond to the similar `target' and `host' variables, except
+that they describe the build system.
+
+ When writing tests in `configure.in', you must remember that you
+want to test the host environment, not the build environment.
+
+ Macros like `AC_CHECK_FUNCS' which use the compiler will test the
+host environment. That is because the tests will be done by running the
+compiler, which is actually a build cross host compiler. If the
+compiler can find the function, that means that the function is present
+in the host environment.
+
+ Tests like `test -f /dev/ptyp0', on the other hand, will test the
+build environment. Remember that the configure script is running on the
+build system, not the host system. If your configure scripts examines
+files, those files will be on the build system. Whatever you determine
+based on those files may or may not be the case on the host system.
+
+ Most autoconf macros will work correctly for a Canadian Cross. The
+main exception is `AC_TRY_RUN'. This macro tries to compile and run a
+test program. This will fail in a Canadian Cross, because the program
+will be compiled for the host system, which means that it will not run
+on the build system.
+
+ The `AC_TRY_RUN' macro provides an optional argument to tell the
+configure script what to do in a Canadian Cross. If that argument is
+not present, you will get a warning when you run `autoconf':
+ warning: AC_TRY_RUN called without default to allow cross compiling
+ This tells you that the resulting `configure' script will not work
+with a Canadian Cross.
+
+ In some cases while it may better to perform a test at configure
+time, it is also possible to perform the test at run time. In such a
+case you can use the cross compiling argument to `AC_TRY_RUN' to tell
+your program that the test could not be performed at configure time.
+
+ There are a few other autoconf macros which will not work correctly
+with a Canadian Cross: a partial list is `AC_FUNC_GETPGRP',
+`AC_FUNC_SETPGRP', `AC_FUNC_SETVBUF_REVERSED', and
+`AC_SYS_RESTARTABLE_SYSCALLS'. The `AC_CHECK_SIZEOF' macro is
+generally not very useful with a Canadian Cross; it permits an optional
+argument indicating the default size, but there is no way to know what
+the correct default should be.
+
+
+File: configure.info, Node: CCross in Make, Prev: CCross in Configure, Up: Supporting Canadian Cross
+
+6.7.2 Supporting Canadian Cross in Makefiles.
+---------------------------------------------
+
+The main Canadian Cross issue in a `Makefile' arises when you want to
+use a subsidiary program to generate code or data which you will then
+include in your real program.
+
+ If you compile this subsidiary program using `$(CC)' in the usual
+way, you will not be able to run it. This is because `$(CC)' will
+build a program for the host system, but the program is being built on
+the build system.
+
+ You must instead use a compiler for the build system, rather than the
+host system. In the Cygnus tree, this make variable `$(CC_FOR_BUILD)'
+will hold a compiler for the build system.
+
+ Note that you should not include `config.h' in a file you are
+compiling with `$(CC_FOR_BUILD)'. The `configure' script will build
+`config.h' with information for the host system. However, you are
+compiling the file using a compiler for the build system (a native
+compiler). Subsidiary programs are normally simple filters which do no
+user interaction, and it is normally possible to write them in a highly
+portable fashion so that the absence of `config.h' is not crucial.
+
+ The gcc `Makefile.in' shows a complex situation in which certain
+files, such as `rtl.c', must be compiled into both subsidiary programs
+run on the build system and into the final program. This approach may
+be of interest for advanced build system hackers. Note that the build
+system compiler is rather confusingly called `HOST_CC'.
+
+
+File: configure.info, Node: Cygnus Configure, Next: Multilibs, Prev: Canadian Cross, Up: Top
+
+7 Cygnus Configure
+******************
+
+The Cygnus configure script predates autoconf. All of its interesting
+features have been incorporated into autoconf. No new programs should
+be written to use the Cygnus configure script.
+
+ However, the Cygnus configure script is still used in a few places:
+at the top of the Cygnus tree and in a few target libraries in the
+Cygnus tree. Until those uses have been replaced with autoconf, some
+brief notes are appropriate here. This is not complete documentation,
+but it should be possible to use this as a guide while examining the
+scripts themselves.
+
+* Menu:
+
+* Cygnus Configure Basics:: Cygnus Configure Basics.
+* Cygnus Configure in C++ Libraries:: Cygnus Configure in C++ Libraries.
+
+
+File: configure.info, Node: Cygnus Configure Basics, Next: Cygnus Configure in C++ Libraries, Up: Cygnus Configure
+
+7.1 Cygnus Configure Basics
+===========================
+
+Cygnus configure does not use any generated files; there is no program
+corresponding to `autoconf'. Instead, there is a single shell script
+named `configure' which may be found at the top of the Cygnus tree.
+This shell script was written by hand; it was not generated by
+autoconf, and it is incorrect, and indeed harmful, to run `autoconf' in
+the top level of a Cygnus tree.
+
+ Cygnus configure works in a particular directory by examining the
+file `configure.in' in that directory. That file is broken into four
+separate shell scripts.
+
+ The first is the contents of `configure.in' up to a line that starts
+with `# per-host:'. This is the common part.
+
+ The second is the rest of `configure.in' up to a line that starts
+with `# per-target:'. This is the per host part.
+
+ The third is the rest of `configure.in' up to a line that starts
+with `# post-target:'. This is the per target part.
+
+ The fourth is the remainder of `configure.in'. This is the post
+target part.
+
+ If any of these comment lines are missing, the corresponding shell
+script is empty.
+
+ Cygnus configure will first execute the common part. This must set
+the shell variable `srctrigger' to the name of a source file, to
+confirm that Cygnus configure is looking at the right directory. This
+may set the shell variables `package_makefile_frag' and
+`package_makefile_rules_frag'.
+
+ Cygnus configure will next set the `build' and `host' shell
+variables, and execute the per host part. This may set the shell
+variable `host_makefile_frag'.
+
+ Cygnus configure will next set the `target' variable, and execute
+the per target part. This may set the shell variable
+`target_makefile_frag'.
+
+ Any of these scripts may set the `subdirs' shell variable. This
+variable is a list of subdirectories where a `Makefile.in' file may be
+found. Cygnus configure will automatically look for a `Makefile.in'
+file in the current directory. The `subdirs' shell variable is not
+normally used, and I believe that the only directory which uses it at
+present is `newlib'.
+
+ For each `Makefile.in', Cygnus configure will automatically create a
+`Makefile' by adding definitions for `make' variables such as `host'
+and `target', and automatically editing the values of `make' variables
+such as `prefix' if they are present.
+
+ Also, if any of the `makefile_frag' shell variables are set, Cygnus
+configure will interpret them as file names relative to either the
+working directory or the source directory, and will read the contents of
+the file into the generated `Makefile'. The file contents will be read
+in after the first line in `Makefile.in' which starts with `####'.
+
+ These `Makefile' fragments are used to customize behaviour for a
+particular host or target. They serve to select particular files to
+compile, and to define particular preprocessor macros by providing
+values for `make' variables which are then used during compilation.
+Cygnus configure, unlike autoconf, normally does not do feature tests,
+and normally requires support to be added manually for each new host.
+
+ The `Makefile' fragment support is similar to the autoconf
+`AC_SUBST_FILE' macro.
+
+ After creating each `Makefile', the post target script will be run
+(i.e., it may be run several times). This script may further customize
+the `Makefile'. When it is run, the shell variable `Makefile' will
+hold the name of the `Makefile', including the appropriate directory
+component.
+
+ Like an autoconf generated `configure' script, Cygnus configure will
+create a file named `config.status' which, when run, will automatically
+recreate the configuration. The `config.status' file will simply
+execute the Cygnus configure script again with the appropriate
+arguments.
+
+ Any of the parts of `configure.in' may set the shell variables
+`files' and `links'. Cygnus configure will set up symlinks from the
+names in `links' to the files named in `files'. This is similar to the
+autoconf `AC_LINK_FILES' macro.
+
+ Finally, any of the parts of `configure.in' may set the shell
+variable `configdirs' to a set of subdirectories. If it is set, Cygnus
+configure will recursively run the configure process in each
+subdirectory. If the subdirectory uses Cygnus configure, it will
+contain a `configure.in' file but no `configure' file, in which case
+Cygnus configure will invoke itself recursively. If the subdirectory
+has a `configure' file, Cygnus configure assumes that it is an autoconf
+generated `configure' script, and simply invokes it directly.
+
+
+File: configure.info, Node: Cygnus Configure in C++ Libraries, Prev: Cygnus Configure Basics, Up: Cygnus Configure
+
+7.2 Cygnus Configure in C++ Libraries
+=====================================
+
+The C++ library configure system, written by Per Bothner, deserves
+special mention. It uses Cygnus configure, but it does feature testing
+like that done by autoconf generated `configure' scripts. This
+approach is used in the libraries `libio', `libstdc++', and `libg++'.
+
+ Most of the `Makefile' information is written out by the shell
+script `libio/config.shared'. Each `configure.in' file sets certain
+shell variables, and then invokes `config.shared' to create two package
+`Makefile' fragments. These fragments are then incorporated into the
+resulting `Makefile' by the Cygnus configure script.
+
+ The file `_G_config.h' is created in the `libio' object directory by
+running the shell script `libio/gen-params'. This shell script uses
+feature tests to define macros and typedefs in `_G_config.h'.
+
+
+File: configure.info, Node: Multilibs, Next: FAQ, Prev: Cygnus Configure, Up: Top
+
+8 Multilibs
+***********
+
+For some targets gcc may have different processor requirements depending
+upon command line options. An obvious example is the `-msoft-float'
+option supported on several processors. This option means that the
+floating point registers are not available, which means that floating
+point operations must be done by calling an emulation subroutine rather
+than by using machine instructions.
+
+ For such options, gcc is often configured to compile target libraries
+twice: once with `-msoft-float' and once without. When gcc compiles
+target libraries more than once, the resulting libraries are called
+"multilibs".
+
+ Multilibs are not really part of the GNU configure and build system,
+but we discuss them here since they require support in the `configure'
+scripts and `Makefile's used for target libraries.
+
+* Menu:
+
+* Multilibs in gcc:: Multilibs in gcc.
+* Multilibs in Target Libraries:: Multilibs in Target Libraries.
+
+
+File: configure.info, Node: Multilibs in gcc, Next: Multilibs in Target Libraries, Up: Multilibs
+
+8.1 Multilibs in gcc
+====================
+
+In gcc, multilibs are defined by setting the variable
+`MULTILIB_OPTIONS' in the target `Makefile' fragment. Several other
+`MULTILIB' variables may also be defined there. *Note The Target
+Makefile Fragment: (gcc)Target Fragment.
+
+ If you have built gcc, you can see what multilibs it uses by running
+it with the `-print-multi-lib' option. The output `.;' means that no
+multilibs are used. In general, the output is a sequence of lines, one
+per multilib. The first part of each line, up to the `;', is the name
+of the multilib directory. The second part is a list of compiler
+options separated by `@' characters.
+
+ Multilibs are built in a tree of directories. The top of the tree,
+represented by `.' in the list of multilib directories, is the default
+library to use when no special compiler options are used. The
+subdirectories of the tree hold versions of the library to use when
+particular compiler options are used.
+
+
+File: configure.info, Node: Multilibs in Target Libraries, Prev: Multilibs in gcc, Up: Multilibs
+
+8.2 Multilibs in Target Libraries
+=================================
+
+The target libraries in the Cygnus tree are automatically built with
+multilibs. That means that each library is built multiple times.
+
+ This default is set in the top level `configure.in' file, by adding
+`--enable-multilib' to the list of arguments passed to configure when
+it is run for the target libraries (*note Host and Target Libraries::).
+
+ Each target library uses the shell script `config-ml.in', written by
+Doug Evans, to prepare to build target libraries. This shell script is
+invoked after the `Makefile' has been created by the `configure'
+script. If multilibs are not enabled, it does nothing, otherwise it
+modifies the `Makefile' to support multilibs.
+
+ The `config-ml.in' script makes one copy of the `Makefile' for each
+multilib in the appropriate subdirectory. When configuring in the
+source directory (which is not recommended), it will build a symlink
+tree of the sources in each subdirectory.
+
+ The `config-ml.in' script sets several variables in the various
+`Makefile's. The `Makefile.in' must have definitions for these
+variables already; `config-ml.in' simply changes the existing values.
+The `Makefile' should use default values for these variables which will
+do the right thing in the subdirectories.
+
+`MULTISRCTOP'
+ `config-ml.in' will set this to a sequence of `../' strings, where
+ the number of strings is the number of multilib levels in the
+ source tree. The default value should be the empty string.
+
+`MULTIBUILDTOP'
+ `config-ml.in' will set this to a sequence of `../' strings, where
+ the number of strings is number of multilib levels in the object
+ directory. The default value should be the empty string. This
+ will differ from `MULTISRCTOP' when configuring in the source tree
+ (which is not recommended).
+
+`MULTIDIRS'
+ In the top level `Makefile' only, `config-ml.in' will set this to
+ the list of multilib subdirectories. The default value should be
+ the empty string.
+
+`MULTISUBDIR'
+ `config-ml.in' will set this to the installed subdirectory name to
+ use for this subdirectory, with a leading `/'. The default value
+ shold be the empty string.
+
+`MULTIDO'
+`MULTICLEAN'
+ In the top level `Makefile' only, `config-ml.in' will set these
+ variables to commands to use when doing a recursive make. These
+ variables should both default to the string `true', so that by
+ default nothing happens.
+
+ All references to the parent of the source directory should use the
+variable `MULTISRCTOP'. Instead of writing `$(srcdir)/..', you must
+write `$(srcdir)/$(MULTISRCTOP)..'.
+
+ Similarly, references to the parent of the object directory should
+use the variable `MULTIBUILDTOP'.
+
+ In the installation target, the libraries should be installed in the
+subdirectory `MULTISUBDIR'. Instead of installing
+`$(libdir)/libfoo.a', install `$(libdir)$(MULTISUBDIR)/libfoo.a'.
+
+ The `config-ml.in' script also modifies the top level `Makefile' to
+add `multi-do' and `multi-clean' targets which are used when building
+multilibs.
+
+ The default target of the `Makefile' should include the following
+command:
+ @$(MULTIDO) $(FLAGS_TO_PASS) DO=all multi-do
+ This assumes that `$(FLAGS_TO_PASS)' is defined as a set of
+variables to pass to a recursive invocation of `make'. This will build
+all the multilibs. Note that the default value of `MULTIDO' is `true',
+so by default this command will do nothing. It will only do something
+in the top level `Makefile' if multilibs were enabled.
+
+ The `install' target of the `Makefile' should include the following
+command:
+ @$(MULTIDO) $(FLAGS_TO_PASS) DO=install multi-do
+
+ In general, any operation, other than clean, which should be
+performed on all the multilibs should use a `$(MULTIDO)' line, setting
+the variable `DO' to the target of each recursive call to `make'.
+
+ The `clean' targets (`clean', `mostlyclean', etc.) should use
+`$(MULTICLEAN)'. For example, the `clean' target should do this:
+ @$(MULTICLEAN) DO=clean multi-clean
+
+
+File: configure.info, Node: FAQ, Next: Index, Prev: Multilibs, Up: Top
+
+9 Frequently Asked Questions
+****************************
+
+Which do I run first, `autoconf' or `automake'?
+ Except when you first add autoconf or automake support to a
+ package, you shouldn't run either by hand. Instead, configure
+ with the `--enable-maintainer-mode' option, and let `make' take
+ care of it.
+
+`autoconf' says something about undefined macros.
+ This means that you have macros in your `configure.in' which are
+ not defined by `autoconf'. You may be using an old version of
+ `autoconf'; try building and installing a newer one. Make sure the
+ newly installled `autoconf' is first on your `PATH'. Also, see
+ the next question.
+
+My `configure' script has stuff like `CY_GNU_GETTEXT' in it.
+ This means that you have macros in your `configure.in' which should
+ be defined in your `aclocal.m4' file, but aren't. This usually
+ means that `aclocal' was not able to appropriate definitions of the
+ macros. Make sure that you have installed all the packages you
+ need. In particular, make sure that you have installed libtool
+ (this is where `AM_PROG_LIBTOOL' is defined) and gettext (this is
+ where `CY_GNU_GETTEXT' is defined, at least in the Cygnus version
+ of gettext).
+
+My `Makefile' has `@' characters in it.
+ This may mean that you tried to use an autoconf substitution in
+ your `Makefile.in' without adding the appropriate `AC_SUBST' call
+ to your `configure' script. Or it may just mean that you need to
+ rebuild `Makefile' in your build directory. To rebuild `Makefile'
+ from `Makefile.in', run the shell script `config.status' with no
+ arguments. If you need to force `configure' to run again, first
+ run `config.status --recheck'. These runs are normally done
+ automatically by `Makefile' targets, but if your `Makefile' has
+ gotten messed up you'll need to help them along.
+
+Why do I have to run both `config.status --recheck' and `config.status'?
+ Normally, you don't; they will be run automatically by `Makefile'
+ targets. If you do need to run them, use `config.status --recheck'
+ to run the `configure' script again with the same arguments as the
+ first time you ran it. Use `config.status' (with no arguments) to
+ regenerate all files (`Makefile', `config.h', etc.) based on the
+ results of the configure script. The two cases are separate
+ because it isn't always necessary to regenerate all the files
+ after running `config.status --recheck'. The `Makefile' targets
+ generated by automake will use the environment variables
+ `CONFIG_FILES' and `CONFIG_HEADERS' to only regenerate files as
+ they are needed.
+
+What is the Cygnus tree?
+ The Cygnus tree is used for various packages including gdb, the GNU
+ binutils, and egcs. It is also, of course, used for Cygnus
+ releases. It is the build system which was developed at Cygnus,
+ using the Cygnus configure script. It permits building many
+ different packages with a single configure and make. The
+ configure scripts in the tree are being converted to autoconf, but
+ the general build structure remains intact.
+
+Why do I have to keep rebuilding and reinstalling the tools?
+ I know, it's a pain. Unfortunately, there are bugs in the tools
+ themselves which need to be fixed, and each time that happens
+ everybody who uses the tools need to reinstall new versions of
+ them. I don't know if there is going to be a clever fix until the
+ tools stabilize.
+
+Why not just have a Cygnus tree `make' target to update the tools?
+ The tools unfortunately need to be installed before they can be
+ used. That means that they must be built using an appropriate
+ prefix, and it seems unwise to assume that every configuration
+ uses an appropriate prefix. It might be possible to make them
+ work in place, or it might be possible to install them in some
+ subdirectory; so far these approaches have not been implemented.
+
+
+File: configure.info, Node: Index, Prev: FAQ, Up: Top
+
+Index
+*****
+
+
+* Menu:
+
+* --build option: Build and Host Options.
+ (line 9)
+* --host option: Build and Host Options.
+ (line 14)
+* --target option: Specifying the Target.
+ (line 10)
+* _GNU_SOURCE: Write configure.in. (line 134)
+* AC_CANONICAL_HOST: Using the Host Type. (line 10)
+* AC_CANONICAL_SYSTEM: Using the Target Type.
+ (line 6)
+* AC_CONFIG_HEADER: Write configure.in. (line 66)
+* AC_EXEEXT: Write configure.in. (line 86)
+* AC_INIT: Write configure.in. (line 38)
+* AC_OUTPUT: Write configure.in. (line 142)
+* AC_PREREQ: Write configure.in. (line 42)
+* AC_PROG_CC: Write configure.in. (line 103)
+* AC_PROG_CXX: Write configure.in. (line 117)
+* acconfig.h: Written Developer Files.
+ (line 27)
+* acconfig.h, writing: Write acconfig.h. (line 6)
+* acinclude.m4: Written Developer Files.
+ (line 37)
+* aclocal.m4: Generated Developer Files.
+ (line 33)
+* AM_CONFIG_HEADER: Write configure.in. (line 53)
+* AM_DISABLE_SHARED: Write configure.in. (line 127)
+* AM_EXEEXT: Write configure.in. (line 86)
+* AM_INIT_AUTOMAKE: Write configure.in. (line 48)
+* AM_MAINTAINER_MODE: Write configure.in. (line 70)
+* AM_PROG_LIBTOOL: Write configure.in. (line 122)
+* AM_PROG_LIBTOOL in configure: FAQ. (line 19)
+* build option: Build and Host Options.
+ (line 9)
+* building with a cross compiler: Canadian Cross. (line 6)
+* canadian cross: Canadian Cross. (line 6)
+* canadian cross in configure: CCross in Configure. (line 6)
+* canadian cross in cygnus tree: CCross in Cygnus Tree.
+ (line 6)
+* canadian cross in makefile: CCross in Make. (line 6)
+* canadian cross, configuring: Build and Host Options.
+ (line 6)
+* canonical system names: Configuration Names. (line 6)
+* config.cache: Build Files Description.
+ (line 28)
+* config.h: Build Files Description.
+ (line 23)
+* config.h.in: Generated Developer Files.
+ (line 45)
+* config.in: Generated Developer Files.
+ (line 45)
+* config.status: Build Files Description.
+ (line 9)
+* config.status --recheck: FAQ. (line 40)
+* configuration names: Configuration Names. (line 6)
+* configuration triplets: Configuration Names. (line 6)
+* configure: Generated Developer Files.
+ (line 21)
+* configure build system: Build and Host Options.
+ (line 9)
+* configure host: Build and Host Options.
+ (line 14)
+* configure target: Specifying the Target.
+ (line 10)
+* configure.in: Written Developer Files.
+ (line 9)
+* configure.in, writing: Write configure.in. (line 6)
+* configuring a canadian cross: Build and Host Options.
+ (line 6)
+* cross compiler: Cross Compilation Concepts.
+ (line 6)
+* cross compiler, building with: Canadian Cross. (line 6)
+* cross tools: Cross Compilation Tools.
+ (line 6)
+* CY_GNU_GETTEXT in configure: FAQ. (line 19)
+* cygnus configure: Cygnus Configure. (line 6)
+* goals: Goals. (line 6)
+* history: History. (line 6)
+* host names: Configuration Names. (line 6)
+* host option: Build and Host Options.
+ (line 14)
+* host system: Host and Target. (line 6)
+* host triplets: Configuration Names. (line 6)
+* HOST_CC: CCross in Make. (line 27)
+* libg++ configure: Cygnus Configure in C++ Libraries.
+ (line 6)
+* libio configure: Cygnus Configure in C++ Libraries.
+ (line 6)
+* libstdc++ configure: Cygnus Configure in C++ Libraries.
+ (line 6)
+* Makefile: Build Files Description.
+ (line 18)
+* Makefile, garbage characters: FAQ. (line 29)
+* Makefile.am: Written Developer Files.
+ (line 18)
+* Makefile.am, writing: Write Makefile.am. (line 6)
+* Makefile.in: Generated Developer Files.
+ (line 26)
+* multilibs: Multilibs. (line 6)
+* stamp-h: Build Files Description.
+ (line 41)
+* stamp-h.in: Generated Developer Files.
+ (line 54)
+* system names: Configuration Names. (line 6)
+* system types: Configuration Names. (line 6)
+* target option: Specifying the Target.
+ (line 10)
+* target system: Host and Target. (line 6)
+* triplets: Configuration Names. (line 6)
+* undefined macros: FAQ. (line 12)
+
+
+
+Tag Table:
+Node: Top971
+Node: Introduction1499
+Node: Goals2581
+Node: Tools3305
+Node: History4299
+Node: Building7297
+Node: Getting Started10560
+Node: Write configure.in11073
+Node: Write Makefile.am18324
+Node: Write acconfig.h21501
+Node: Generate files23038
+Node: Getting Started Example25004
+Node: Getting Started Example 125759
+Node: Getting Started Example 227680
+Node: Getting Started Example 330675
+Node: Generate Files in Example33039
+Node: Files34129
+Node: Developer Files34740
+Node: Developer Files Picture35120
+Node: Written Developer Files36408
+Node: Generated Developer Files38960
+Node: Build Files42104
+Node: Build Files Picture42765
+Node: Build Files Description43529
+Node: Support Files45535
+Node: Configuration Names48417
+Node: Configuration Name Definition48917
+Node: Using Configuration Names51240
+Node: Cross Compilation Tools53210
+Node: Cross Compilation Concepts53901
+Node: Host and Target54869
+Node: Using the Host Type56370
+Node: Specifying the Target57719
+Node: Using the Target Type58508
+Node: Cross Tools in the Cygnus Tree61939
+Node: Host and Target Libraries62996
+Node: Target Library Configure Scripts66745
+Node: Make Targets in Cygnus Tree69837
+Node: Target libiberty71185
+Node: Canadian Cross72572
+Node: Canadian Cross Example73413
+Node: Canadian Cross Concepts74532
+Node: Build Cross Host Tools76044
+Node: Build and Host Options76996
+Node: CCross not in Cygnus Tree78782
+Node: CCross in Cygnus Tree79760
+Node: Standard Cygnus CCross80181
+Node: Cross Cygnus CCross81545
+Node: Supporting Canadian Cross84345
+Node: CCross in Configure84960
+Node: CCross in Make88128
+Node: Cygnus Configure89731
+Node: Cygnus Configure Basics90566
+Node: Cygnus Configure in C++ Libraries95244
+Node: Multilibs96251
+Node: Multilibs in gcc97296
+Node: Multilibs in Target Libraries98374
+Node: FAQ102565
+Node: Index106665
+
+End Tag Table
diff --git a/etc/standards.info b/etc/standards.info
new file mode 100644
index 0000000000..2d39178937
--- /dev/null
+++ b/etc/standards.info
@@ -0,0 +1,5744 @@
+This is standards.info, produced by makeinfo version 4.8 from
+./standards.texi.
+
+INFO-DIR-SECTION GNU organization
+START-INFO-DIR-ENTRY
+* Standards: (standards). GNU coding standards.
+END-INFO-DIR-ENTRY
+
+ The GNU coding standards, last updated April 12, 2010.
+
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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.3 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".
+
+
+File: standards.info, Node: Top, Next: Preface, Prev: (dir), Up: (dir)
+
+Version
+*******
+
+The GNU coding standards, last updated April 12, 2010.
+
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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.3 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".
+
+* Menu:
+
+* Preface:: About the GNU Coding Standards.
+* Legal Issues:: Keeping free software free.
+* Design Advice:: General program design.
+* Program Behavior:: Program behavior for all programs
+* Writing C:: Making the best use of C.
+* Documentation:: Documenting programs.
+* Managing Releases:: The release process.
+* References:: Mentioning non-free software or documentation.
+* GNU Free Documentation License:: Copying and sharing this manual.
+* Index::
+
+
+File: standards.info, Node: Preface, Next: Legal Issues, Prev: Top, Up: Top
+
+1 About the GNU Coding Standards
+********************************
+
+The GNU Coding Standards were written by Richard Stallman and other GNU
+Project volunteers. Their purpose is to make the GNU system clean,
+consistent, and easy to install. This document can also be read as a
+guide to writing portable, robust and reliable programs. It focuses on
+programs written in C, but many of the rules and principles are useful
+even if you write in another programming language. The rules often
+state reasons for writing in a certain way.
+
+ If you did not obtain this file directly from the GNU project and
+recently, please check for a newer version. You can get the GNU Coding
+Standards from the GNU web server in many different formats, including
+the Texinfo source, PDF, HTML, DVI, plain text, and more, at:
+`http://www.gnu.org/prep/standards/'.
+
+ If you are maintaining an official GNU package, in addition to this
+document, please read and follow the GNU maintainer information (*note
+Contents: (maintain)Top.).
+
+ If you want to receive diffs for every change to these GNU documents,
+join the mailing list `gnustandards-commit@gnu.org', via the web
+interface at
+`http://lists.gnu.org/mailman/listinfo/gnustandards-commit'. Archives
+are also available there.
+
+ Please send corrections or suggestions for this document to
+<bug-standards@gnu.org>. If you make a suggestion, please include a
+suggested new wording for it, to help us consider the suggestion
+efficiently. We prefer a context diff to the Texinfo source, but if
+that's difficult for you, you can make a context diff for some other
+version of this document, or propose it in any way that makes it clear.
+The source repository for this document can be found at
+`http://savannah.gnu.org/projects/gnustandards'.
+
+ These standards cover the minimum of what is important when writing a
+GNU package. Likely, the need for additional standards will come up.
+Sometimes, you might suggest that such standards be added to this
+document. If you think your standards would be generally useful, please
+do suggest them.
+
+ You should also set standards for your package on many questions not
+addressed or not firmly specified here. The most important point is to
+be self-consistent--try to stick to the conventions you pick, and try
+to document them as much as possible. That way, your program will be
+more maintainable by others.
+
+ The GNU Hello program serves as an example of how to follow the GNU
+coding standards for a trivial program.
+`http://www.gnu.org/software/hello/hello.html'.
+
+ This release of the GNU Coding Standards was last updated April 12,
+2010.
+
+
+File: standards.info, Node: Legal Issues, Next: Design Advice, Prev: Preface, Up: Top
+
+2 Keeping Free Software Free
+****************************
+
+This chapter discusses how you can make sure that GNU software avoids
+legal difficulties, and other related issues.
+
+* Menu:
+
+* Reading Non-Free Code:: Referring to proprietary programs.
+* Contributions:: Accepting contributions.
+* Trademarks:: How we deal with trademark issues.
+
+
+File: standards.info, Node: Reading Non-Free Code, Next: Contributions, Up: Legal Issues
+
+2.1 Referring to Proprietary Programs
+=====================================
+
+Don't in any circumstances refer to Unix source code for or during your
+work on GNU! (Or to any other proprietary programs.)
+
+ If you have a vague recollection of the internals of a Unix program,
+this does not absolutely mean you can't write an imitation of it, but
+do try to organize the imitation internally along different lines,
+because this is likely to make the details of the Unix version
+irrelevant and dissimilar to your results.
+
+ For example, Unix utilities were generally optimized to minimize
+memory use; if you go for speed instead, your program will be very
+different. You could keep the entire input file in memory and scan it
+there instead of using stdio. Use a smarter algorithm discovered more
+recently than the Unix program. Eliminate use of temporary files. Do
+it in one pass instead of two (we did this in the assembler).
+
+ Or, on the contrary, emphasize simplicity instead of speed. For some
+applications, the speed of today's computers makes simpler algorithms
+adequate.
+
+ Or go for generality. For example, Unix programs often have static
+tables or fixed-size strings, which make for arbitrary limits; use
+dynamic allocation instead. Make sure your program handles NULs and
+other funny characters in the input files. Add a programming language
+for extensibility and write part of the program in that language.
+
+ Or turn some parts of the program into independently usable
+libraries. Or use a simple garbage collector instead of tracking
+precisely when to free memory, or use a new GNU facility such as
+obstacks.
+
+
+File: standards.info, Node: Contributions, Next: Trademarks, Prev: Reading Non-Free Code, Up: Legal Issues
+
+2.2 Accepting Contributions
+===========================
+
+If the program you are working on is copyrighted by the Free Software
+Foundation, then when someone else sends you a piece of code to add to
+the program, we need legal papers to use it--just as we asked you to
+sign papers initially. _Each_ person who makes a nontrivial
+contribution to a program must sign some sort of legal papers in order
+for us to have clear title to the program; the main author alone is not
+enough.
+
+ So, before adding in any contributions from other people, please tell
+us, so we can arrange to get the papers. Then wait until we tell you
+that we have received the signed papers, before you actually use the
+contribution.
+
+ This applies both before you release the program and afterward. If
+you receive diffs to fix a bug, and they make significant changes, we
+need legal papers for that change.
+
+ This also applies to comments and documentation files. For copyright
+law, comments and code are just text. Copyright applies to all kinds of
+text, so we need legal papers for all kinds.
+
+ We know it is frustrating to ask for legal papers; it's frustrating
+for us as well. But if you don't wait, you are going out on a limb--for
+example, what if the contributor's employer won't sign a disclaimer?
+You might have to take that code out again!
+
+ You don't need papers for changes of a few lines here or there, since
+they are not significant for copyright purposes. Also, you don't need
+papers if all you get from the suggestion is some ideas, not actual code
+which you use. For example, if someone sent you one implementation, but
+you write a different implementation of the same idea, you don't need to
+get papers.
+
+ The very worst thing is if you forget to tell us about the other
+contributor. We could be very embarrassed in court some day as a
+result.
+
+ We have more detailed advice for maintainers of programs; if you have
+reached the stage of actually maintaining a program for GNU (whether
+released or not), please ask us for a copy. It is also available
+online for your perusal: `http://www.gnu.org/prep/maintain/'.
+
+
+File: standards.info, Node: Trademarks, Prev: Contributions, Up: Legal Issues
+
+2.3 Trademarks
+==============
+
+Please do not include any trademark acknowledgements in GNU software
+packages or documentation.
+
+ Trademark acknowledgements are the statements that such-and-such is a
+trademark of so-and-so. The GNU Project has no objection to the basic
+idea of trademarks, but these acknowledgements feel like kowtowing, and
+there is no legal requirement for them, so we don't use them.
+
+ What is legally required, as regards other people's trademarks, is to
+avoid using them in ways which a reader might reasonably understand as
+naming or labeling our own programs or activities. For example, since
+"Objective C" is (or at least was) a trademark, we made sure to say
+that we provide a "compiler for the Objective C language" rather than
+an "Objective C compiler". The latter would have been meant as a
+shorter way of saying the former, but it does not explicitly state the
+relationship, so it could be misinterpreted as using "Objective C" as a
+label for the compiler rather than for the language.
+
+ Please don't use "win" as an abbreviation for Microsoft Windows in
+GNU software or documentation. In hacker terminology, calling
+something a "win" is a form of praise. If you wish to praise Microsoft
+Windows when speaking on your own, by all means do so, but not in GNU
+software. Usually we write the name "Windows" in full, but when
+brevity is very important (as in file names and sometimes symbol
+names), we abbreviate it to "w". For instance, the files and functions
+in Emacs that deal with Windows start with `w32'.
+
+
+File: standards.info, Node: Design Advice, Next: Program Behavior, Prev: Legal Issues, Up: Top
+
+3 General Program Design
+************************
+
+This chapter discusses some of the issues you should take into account
+when designing your program.
+
+* Menu:
+
+* Source Language:: Which languages to use.
+* Compatibility:: Compatibility with other implementations.
+* Using Extensions:: Using non-standard features.
+* Standard C:: Using standard C features.
+* Conditional Compilation:: Compiling code only if a conditional is true.
+
+
+File: standards.info, Node: Source Language, Next: Compatibility, Up: Design Advice
+
+3.1 Which Languages to Use
+==========================
+
+When you want to use a language that gets compiled and runs at high
+speed, the best language to use is C. Using another language is like
+using a non-standard feature: it will cause trouble for users. Even if
+GCC supports the other language, users may find it inconvenient to have
+to install the compiler for that other language in order to build your
+program. For example, if you write your program in C++, people will
+have to install the GNU C++ compiler in order to compile your program.
+
+ C has one other advantage over C++ and other compiled languages: more
+people know C, so more people will find it easy to read and modify the
+program if it is written in C.
+
+ So in general it is much better to use C, rather than the comparable
+alternatives.
+
+ But there are two exceptions to that conclusion:
+
+ * It is no problem to use another language to write a tool
+ specifically intended for use with that language. That is because
+ the only people who want to build the tool will be those who have
+ installed the other language anyway.
+
+ * If an application is of interest only to a narrow part of the
+ community, then the question of which language it is written in
+ has less effect on other people, so you may as well please
+ yourself.
+
+ Many programs are designed to be extensible: they include an
+interpreter for a language that is higher level than C. Often much of
+the program is written in that language, too. The Emacs editor
+pioneered this technique.
+
+ The standard extensibility interpreter for GNU software is Guile
+(`http://www.gnu.org/software/guile/'), which implements the language
+Scheme (an especially clean and simple dialect of Lisp). Guile also
+includes bindings for GTK+/GNOME, making it practical to write modern
+GUI functionality within Guile. We don't reject programs written in
+other "scripting languages" such as Perl and Python, but using Guile is
+very important for the overall consistency of the GNU system.
+
+
+File: standards.info, Node: Compatibility, Next: Using Extensions, Prev: Source Language, Up: Design Advice
+
+3.2 Compatibility with Other Implementations
+============================================
+
+With occasional exceptions, utility programs and libraries for GNU
+should be upward compatible with those in Berkeley Unix, and upward
+compatible with Standard C if Standard C specifies their behavior, and
+upward compatible with POSIX if POSIX specifies their behavior.
+
+ When these standards conflict, it is useful to offer compatibility
+modes for each of them.
+
+ Standard C and POSIX prohibit many kinds of extensions. Feel free
+to make the extensions anyway, and include a `--ansi', `--posix', or
+`--compatible' option to turn them off. However, if the extension has
+a significant chance of breaking any real programs or scripts, then it
+is not really upward compatible. So you should try to redesign its
+interface to make it upward compatible.
+
+ Many GNU programs suppress extensions that conflict with POSIX if the
+environment variable `POSIXLY_CORRECT' is defined (even if it is
+defined with a null value). Please make your program recognize this
+variable if appropriate.
+
+ When a feature is used only by users (not by programs or command
+files), and it is done poorly in Unix, feel free to replace it
+completely with something totally different and better. (For example,
+`vi' is replaced with Emacs.) But it is nice to offer a compatible
+feature as well. (There is a free `vi' clone, so we offer it.)
+
+ Additional useful features are welcome regardless of whether there
+is any precedent for them.
+
+
+File: standards.info, Node: Using Extensions, Next: Standard C, Prev: Compatibility, Up: Design Advice
+
+3.3 Using Non-standard Features
+===============================
+
+Many GNU facilities that already exist support a number of convenient
+extensions over the comparable Unix facilities. Whether to use these
+extensions in implementing your program is a difficult question.
+
+ On the one hand, using the extensions can make a cleaner program.
+On the other hand, people will not be able to build the program unless
+the other GNU tools are available. This might cause the program to
+work on fewer kinds of machines.
+
+ With some extensions, it might be easy to provide both alternatives.
+For example, you can define functions with a "keyword" `INLINE' and
+define that as a macro to expand into either `inline' or nothing,
+depending on the compiler.
+
+ In general, perhaps it is best not to use the extensions if you can
+straightforwardly do without them, but to use the extensions if they
+are a big improvement.
+
+ An exception to this rule are the large, established programs (such
+as Emacs) which run on a great variety of systems. Using GNU
+extensions in such programs would make many users unhappy, so we don't
+do that.
+
+ Another exception is for programs that are used as part of
+compilation: anything that must be compiled with other compilers in
+order to bootstrap the GNU compilation facilities. If these require
+the GNU compiler, then no one can compile them without having them
+installed already. That would be extremely troublesome in certain
+cases.
+
+
+File: standards.info, Node: Standard C, Next: Conditional Compilation, Prev: Using Extensions, Up: Design Advice
+
+3.4 Standard C and Pre-Standard C
+=================================
+
+1989 Standard C is widespread enough now that it is ok to use its
+features in new programs. There is one exception: do not ever use the
+"trigraph" feature of Standard C.
+
+ 1999 Standard C is not widespread yet, so please do not require its
+features in programs. It is ok to use its features if they are present.
+
+ However, it is easy to support pre-standard compilers in most
+programs, so if you know how to do that, feel free. If a program you
+are maintaining has such support, you should try to keep it working.
+
+ To support pre-standard C, instead of writing function definitions in
+standard prototype form,
+
+ int
+ foo (int x, int y)
+ ...
+
+write the definition in pre-standard style like this,
+
+ int
+ foo (x, y)
+ int x, y;
+ ...
+
+and use a separate declaration to specify the argument prototype:
+
+ int foo (int, int);
+
+ You need such a declaration anyway, in a header file, to get the
+benefit of prototypes in all the files where the function is called.
+And once you have the declaration, you normally lose nothing by writing
+the function definition in the pre-standard style.
+
+ This technique does not work for integer types narrower than `int'.
+If you think of an argument as being of a type narrower than `int',
+declare it as `int' instead.
+
+ There are a few special cases where this technique is hard to use.
+For example, if a function argument needs to hold the system type
+`dev_t', you run into trouble, because `dev_t' is shorter than `int' on
+some machines; but you cannot use `int' instead, because `dev_t' is
+wider than `int' on some machines. There is no type you can safely use
+on all machines in a non-standard definition. The only way to support
+non-standard C and pass such an argument is to check the width of
+`dev_t' using Autoconf and choose the argument type accordingly. This
+may not be worth the trouble.
+
+ In order to support pre-standard compilers that do not recognize
+prototypes, you may want to use a preprocessor macro like this:
+
+ /* Declare the prototype for a general external function. */
+ #if defined (__STDC__) || defined (WINDOWSNT)
+ #define P_(proto) proto
+ #else
+ #define P_(proto) ()
+ #endif
+
+
+File: standards.info, Node: Conditional Compilation, Prev: Standard C, Up: Design Advice
+
+3.5 Conditional Compilation
+===========================
+
+When supporting configuration options already known when building your
+program we prefer using `if (... )' over conditional compilation, as in
+the former case the compiler is able to perform more extensive checking
+of all possible code paths.
+
+ For example, please write
+
+ if (HAS_FOO)
+ ...
+ else
+ ...
+
+instead of:
+
+ #ifdef HAS_FOO
+ ...
+ #else
+ ...
+ #endif
+
+ A modern compiler such as GCC will generate exactly the same code in
+both cases, and we have been using similar techniques with good success
+in several projects. Of course, the former method assumes that
+`HAS_FOO' is defined as either 0 or 1.
+
+ While this is not a silver bullet solving all portability problems,
+and is not always appropriate, following this policy would have saved
+GCC developers many hours, or even days, per year.
+
+ In the case of function-like macros like `REVERSIBLE_CC_MODE' in GCC
+which cannot be simply used in `if (...)' statements, there is an easy
+workaround. Simply introduce another macro `HAS_REVERSIBLE_CC_MODE' as
+in the following example:
+
+ #ifdef REVERSIBLE_CC_MODE
+ #define HAS_REVERSIBLE_CC_MODE 1
+ #else
+ #define HAS_REVERSIBLE_CC_MODE 0
+ #endif
+
+
+File: standards.info, Node: Program Behavior, Next: Writing C, Prev: Design Advice, Up: Top
+
+4 Program Behavior for All Programs
+***********************************
+
+This chapter describes conventions for writing robust software. It
+also describes general standards for error messages, the command line
+interface, and how libraries should behave.
+
+* Menu:
+
+* Non-GNU Standards:: We consider standards such as POSIX;
+ we don't "obey" them.
+* Semantics:: Writing robust programs.
+* Libraries:: Library behavior.
+* Errors:: Formatting error messages.
+* User Interfaces:: Standards about interfaces generally.
+* Graphical Interfaces:: Standards for graphical interfaces.
+* Command-Line Interfaces:: Standards for command line interfaces.
+* Option Table:: Table of long options.
+* OID Allocations:: Table of OID slots for GNU.
+* Memory Usage:: When and how to care about memory needs.
+* File Usage:: Which files to use, and where.
+
+
+File: standards.info, Node: Non-GNU Standards, Next: Semantics, Up: Program Behavior
+
+4.1 Non-GNU Standards
+=====================
+
+The GNU Project regards standards published by other organizations as
+suggestions, not orders. We consider those standards, but we do not
+"obey" them. In developing a GNU program, you should implement an
+outside standard's specifications when that makes the GNU system better
+overall in an objective sense. When it doesn't, you shouldn't.
+
+ In most cases, following published standards is convenient for
+users--it means that their programs or scripts will work more portably.
+For instance, GCC implements nearly all the features of Standard C as
+specified by that standard. C program developers would be unhappy if
+it did not. And GNU utilities mostly follow specifications of POSIX.2;
+shell script writers and users would be unhappy if our programs were
+incompatible.
+
+ But we do not follow either of these specifications rigidly, and
+there are specific points on which we decided not to follow them, so as
+to make the GNU system better for users.
+
+ For instance, Standard C says that nearly all extensions to C are
+prohibited. How silly! GCC implements many extensions, some of which
+were later adopted as part of the standard. If you want these
+constructs to give an error message as "required" by the standard, you
+must specify `--pedantic', which was implemented only so that we can
+say "GCC is a 100% implementation of the standard," not because there
+is any reason to actually use it.
+
+ POSIX.2 specifies that `df' and `du' must output sizes by default in
+units of 512 bytes. What users want is units of 1k, so that is what we
+do by default. If you want the ridiculous behavior "required" by
+POSIX, you must set the environment variable `POSIXLY_CORRECT' (which
+was originally going to be named `POSIX_ME_HARDER').
+
+ GNU utilities also depart from the letter of the POSIX.2
+specification when they support long-named command-line options, and
+intermixing options with ordinary arguments. This minor
+incompatibility with POSIX is never a problem in practice, and it is
+very useful.
+
+ In particular, don't reject a new feature, or remove an old one,
+merely because a standard says it is "forbidden" or "deprecated."
+
+
+File: standards.info, Node: Semantics, Next: Libraries, Prev: Non-GNU Standards, Up: Program Behavior
+
+4.2 Writing Robust Programs
+===========================
+
+Avoid arbitrary limits on the length or number of _any_ data structure,
+including file names, lines, files, and symbols, by allocating all data
+structures dynamically. In most Unix utilities, "long lines are
+silently truncated". This is not acceptable in a GNU utility.
+
+ Utilities reading files should not drop NUL characters, or any other
+nonprinting characters _including those with codes above 0177_. The
+only sensible exceptions would be utilities specifically intended for
+interface to certain types of terminals or printers that can't handle
+those characters. Whenever possible, try to make programs work
+properly with sequences of bytes that represent multibyte characters,
+using encodings such as UTF-8 and others.
+
+ Check every system call for an error return, unless you know you
+wish to ignore errors. Include the system error text (from `perror' or
+equivalent) in _every_ error message resulting from a failing system
+call, as well as the name of the file if any and the name of the
+utility. Just "cannot open foo.c" or "stat failed" is not sufficient.
+
+ Check every call to `malloc' or `realloc' to see if it returned
+zero. Check `realloc' even if you are making the block smaller; in a
+system that rounds block sizes to a power of 2, `realloc' may get a
+different block if you ask for less space.
+
+ In Unix, `realloc' can destroy the storage block if it returns zero.
+GNU `realloc' does not have this bug: if it fails, the original block
+is unchanged. Feel free to assume the bug is fixed. If you wish to
+run your program on Unix, and wish to avoid lossage in this case, you
+can use the GNU `malloc'.
+
+ You must expect `free' to alter the contents of the block that was
+freed. Anything you want to fetch from the block, you must fetch before
+calling `free'.
+
+ If `malloc' fails in a noninteractive program, make that a fatal
+error. In an interactive program (one that reads commands from the
+user), it is better to abort the command and return to the command
+reader loop. This allows the user to kill other processes to free up
+virtual memory, and then try the command again.
+
+ Use `getopt_long' to decode arguments, unless the argument syntax
+makes this unreasonable.
+
+ When static storage is to be written in during program execution, use
+explicit C code to initialize it. Reserve C initialized declarations
+for data that will not be changed.
+
+ Try to avoid low-level interfaces to obscure Unix data structures
+(such as file directories, utmp, or the layout of kernel memory), since
+these are less likely to work compatibly. If you need to find all the
+files in a directory, use `readdir' or some other high-level interface.
+These are supported compatibly by GNU.
+
+ The preferred signal handling facilities are the BSD variant of
+`signal', and the POSIX `sigaction' function; the alternative USG
+`signal' interface is an inferior design.
+
+ Nowadays, using the POSIX signal functions may be the easiest way to
+make a program portable. If you use `signal', then on GNU/Linux
+systems running GNU libc version 1, you should include `bsd/signal.h'
+instead of `signal.h', so as to get BSD behavior. It is up to you
+whether to support systems where `signal' has only the USG behavior, or
+give up on them.
+
+ In error checks that detect "impossible" conditions, just abort.
+There is usually no point in printing any message. These checks
+indicate the existence of bugs. Whoever wants to fix the bugs will have
+to read the source code and run a debugger. So explain the problem with
+comments in the source. The relevant data will be in variables, which
+are easy to examine with the debugger, so there is no point moving them
+elsewhere.
+
+ Do not use a count of errors as the exit status for a program.
+_That does not work_, because exit status values are limited to 8 bits
+(0 through 255). A single run of the program might have 256 errors; if
+you try to return 256 as the exit status, the parent process will see 0
+as the status, and it will appear that the program succeeded.
+
+ If you make temporary files, check the `TMPDIR' environment
+variable; if that variable is defined, use the specified directory
+instead of `/tmp'.
+
+ In addition, be aware that there is a possible security problem when
+creating temporary files in world-writable directories. In C, you can
+avoid this problem by creating temporary files in this manner:
+
+ fd = open (filename, O_WRONLY | O_CREAT | O_EXCL, 0600);
+
+or by using the `mkstemps' function from libiberty.
+
+ In bash, use `set -C' to avoid this problem.
+
+
+File: standards.info, Node: Libraries, Next: Errors, Prev: Semantics, Up: Program Behavior
+
+4.3 Library Behavior
+====================
+
+Try to make library functions reentrant. If they need to do dynamic
+storage allocation, at least try to avoid any nonreentrancy aside from
+that of `malloc' itself.
+
+ Here are certain name conventions for libraries, to avoid name
+conflicts.
+
+ Choose a name prefix for the library, more than two characters long.
+All external function and variable names should start with this prefix.
+In addition, there should only be one of these in any given library
+member. This usually means putting each one in a separate source file.
+
+ An exception can be made when two external symbols are always used
+together, so that no reasonable program could use one without the
+other; then they can both go in the same file.
+
+ External symbols that are not documented entry points for the user
+should have names beginning with `_'. The `_' should be followed by
+the chosen name prefix for the library, to prevent collisions with
+other libraries. These can go in the same files with user entry points
+if you like.
+
+ Static functions and variables can be used as you like and need not
+fit any naming convention.
+
+
+File: standards.info, Node: Errors, Next: User Interfaces, Prev: Libraries, Up: Program Behavior
+
+4.4 Formatting Error Messages
+=============================
+
+Error messages from compilers should look like this:
+
+ SOURCE-FILE-NAME:LINENO: MESSAGE
+
+If you want to mention the column number, use one of these formats:
+
+ SOURCE-FILE-NAME:LINENO:COLUMN: MESSAGE
+ SOURCE-FILE-NAME:LINENO.COLUMN: MESSAGE
+
+Line numbers should start from 1 at the beginning of the file, and
+column numbers should start from 1 at the beginning of the line. (Both
+of these conventions are chosen for compatibility.) Calculate column
+numbers assuming that space and all ASCII printing characters have
+equal width, and assuming tab stops every 8 columns.
+
+ The error message can also give both the starting and ending
+positions of the erroneous text. There are several formats so that you
+can avoid redundant information such as a duplicate line number. Here
+are the possible formats:
+
+ SOURCE-FILE-NAME:LINENO-1.COLUMN-1-LINENO-2.COLUMN-2: MESSAGE
+ SOURCE-FILE-NAME:LINENO-1.COLUMN-1-COLUMN-2: MESSAGE
+ SOURCE-FILE-NAME:LINENO-1-LINENO-2: MESSAGE
+
+When an error is spread over several files, you can use this format:
+
+ FILE-1:LINENO-1.COLUMN-1-FILE-2:LINENO-2.COLUMN-2: MESSAGE
+
+ Error messages from other noninteractive programs should look like
+this:
+
+ PROGRAM:SOURCE-FILE-NAME:LINENO: MESSAGE
+
+when there is an appropriate source file, or like this:
+
+ PROGRAM: MESSAGE
+
+when there is no relevant source file.
+
+ If you want to mention the column number, use this format:
+
+ PROGRAM:SOURCE-FILE-NAME:LINENO:COLUMN: MESSAGE
+
+ In an interactive program (one that is reading commands from a
+terminal), it is better not to include the program name in an error
+message. The place to indicate which program is running is in the
+prompt or with the screen layout. (When the same program runs with
+input from a source other than a terminal, it is not interactive and
+would do best to print error messages using the noninteractive style.)
+
+ The string MESSAGE should not begin with a capital letter when it
+follows a program name and/or file name, because that isn't the
+beginning of a sentence. (The sentence conceptually starts at the
+beginning of the line.) Also, it should not end with a period.
+
+ Error messages from interactive programs, and other messages such as
+usage messages, should start with a capital letter. But they should not
+end with a period.
+
+
+File: standards.info, Node: User Interfaces, Next: Graphical Interfaces, Prev: Errors, Up: Program Behavior
+
+4.5 Standards for Interfaces Generally
+======================================
+
+Please don't make the behavior of a utility depend on the name used to
+invoke it. It is useful sometimes to make a link to a utility with a
+different name, and that should not change what it does.
+
+ Instead, use a run time option or a compilation switch or both to
+select among the alternate behaviors.
+
+ Likewise, please don't make the behavior of the program depend on the
+type of output device it is used with. Device independence is an
+important principle of the system's design; do not compromise it merely
+to save someone from typing an option now and then. (Variation in error
+message syntax when using a terminal is ok, because that is a side issue
+that people do not depend on.)
+
+ If you think one behavior is most useful when the output is to a
+terminal, and another is most useful when the output is a file or a
+pipe, then it is usually best to make the default behavior the one that
+is useful with output to a terminal, and have an option for the other
+behavior.
+
+ Compatibility requires certain programs to depend on the type of
+output device. It would be disastrous if `ls' or `sh' did not do so in
+the way all users expect. In some of these cases, we supplement the
+program with a preferred alternate version that does not depend on the
+output device type. For example, we provide a `dir' program much like
+`ls' except that its default output format is always multi-column
+format.
+
+
+File: standards.info, Node: Graphical Interfaces, Next: Command-Line Interfaces, Prev: User Interfaces, Up: Program Behavior
+
+4.6 Standards for Graphical Interfaces
+======================================
+
+When you write a program that provides a graphical user interface,
+please make it work with the X Window System and the GTK+ toolkit
+unless the functionality specifically requires some alternative (for
+example, "displaying jpeg images while in console mode").
+
+ In addition, please provide a command-line interface to control the
+functionality. (In many cases, the graphical user interface can be a
+separate program which invokes the command-line program.) This is so
+that the same jobs can be done from scripts.
+
+ Please also consider providing a D-bus interface for use from other
+running programs, such as within GNOME. (GNOME used to use CORBA for
+this, but that is being phased out.) In addition, consider providing a
+library interface (for use from C), and perhaps a keyboard-driven
+console interface (for use by users from console mode). Once you are
+doing the work to provide the functionality and the graphical
+interface, these won't be much extra work.
+
+
+File: standards.info, Node: Command-Line Interfaces, Next: Option Table, Prev: Graphical Interfaces, Up: Program Behavior
+
+4.7 Standards for Command Line Interfaces
+=========================================
+
+It is a good idea to follow the POSIX guidelines for the command-line
+options of a program. The easiest way to do this is to use `getopt' to
+parse them. Note that the GNU version of `getopt' will normally permit
+options anywhere among the arguments unless the special argument `--'
+is used. This is not what POSIX specifies; it is a GNU extension.
+
+ Please define long-named options that are equivalent to the
+single-letter Unix-style options. We hope to make GNU more user
+friendly this way. This is easy to do with the GNU function
+`getopt_long'.
+
+ One of the advantages of long-named options is that they can be
+consistent from program to program. For example, users should be able
+to expect the "verbose" option of any GNU program which has one, to be
+spelled precisely `--verbose'. To achieve this uniformity, look at the
+table of common long-option names when you choose the option names for
+your program (*note Option Table::).
+
+ It is usually a good idea for file names given as ordinary arguments
+to be input files only; any output files would be specified using
+options (preferably `-o' or `--output'). Even if you allow an output
+file name as an ordinary argument for compatibility, try to provide an
+option as another way to specify it. This will lead to more consistency
+among GNU utilities, and fewer idiosyncrasies for users to remember.
+
+ All programs should support two standard options: `--version' and
+`--help'. CGI programs should accept these as command-line options,
+and also if given as the `PATH_INFO'; for instance, visiting
+`http://example.org/p.cgi/--help' in a browser should output the same
+information as invoking `p.cgi --help' from the command line.
+
+* Menu:
+
+* --version:: The standard output for --version.
+* --help:: The standard output for --help.
+
+
+File: standards.info, Node: --version, Next: --help, Up: Command-Line Interfaces
+
+4.7.1 `--version'
+-----------------
+
+The standard `--version' option should direct the program to print
+information about its name, version, origin and legal status, all on
+standard output, and then exit successfully. Other options and
+arguments should be ignored once this is seen, and the program should
+not perform its normal function.
+
+ The first line is meant to be easy for a program to parse; the
+version number proper starts after the last space. In addition, it
+contains the canonical name for this program, in this format:
+
+ GNU Emacs 19.30
+
+The program's name should be a constant string; _don't_ compute it from
+`argv[0]'. The idea is to state the standard or canonical name for the
+program, not its file name. There are other ways to find out the
+precise file name where a command is found in `PATH'.
+
+ If the program is a subsidiary part of a larger package, mention the
+package name in parentheses, like this:
+
+ emacsserver (GNU Emacs) 19.30
+
+If the package has a version number which is different from this
+program's version number, you can mention the package version number
+just before the close-parenthesis.
+
+ If you _need_ to mention the version numbers of libraries which are
+distributed separately from the package which contains this program,
+you can do so by printing an additional line of version info for each
+library you want to mention. Use the same format for these lines as for
+the first line.
+
+ Please do not mention all of the libraries that the program uses
+"just for completeness"--that would produce a lot of unhelpful clutter.
+Please mention library version numbers only if you find in practice that
+they are very important to you in debugging.
+
+ The following line, after the version number line or lines, should
+be a copyright notice. If more than one copyright notice is called
+for, put each on a separate line.
+
+ Next should follow a line stating the license, preferably using one
+of abbrevations below, and a brief statement that the program is free
+software, and that users are free to copy and change it. Also mention
+that there is no warranty, to the extent permitted by law. See
+recommended wording below.
+
+ It is ok to finish the output with a list of the major authors of the
+program, as a way of giving credit.
+
+ Here's an example of output that follows these rules:
+
+ GNU hello 2.3
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+ This is free software: you are free to change and redistribute it.
+ There is NO WARRANTY, to the extent permitted by law.
+
+ You should adapt this to your program, of course, filling in the
+proper year, copyright holder, name of program, and the references to
+distribution terms, and changing the rest of the wording as necessary.
+
+ This copyright notice only needs to mention the most recent year in
+which changes were made--there's no need to list the years for previous
+versions' changes. You don't have to mention the name of the program in
+these notices, if that is inconvenient, since it appeared in the first
+line. (The rules are different for copyright notices in source files;
+*note Copyright Notices: (maintain)Copyright Notices.)
+
+ Translations of the above lines must preserve the validity of the
+copyright notices (*note Internationalization::). If the translation's
+character set supports it, the `(C)' should be replaced with the
+copyright symbol, as follows:
+
+ (the official copyright symbol, which is the letter C in a circle);
+
+ Write the word "Copyright" exactly like that, in English. Do not
+translate it into another language. International treaties recognize
+the English word "Copyright"; translations into other languages do not
+have legal significance.
+
+ Finally, here is the table of our suggested license abbreviations.
+Any abbreviation can be followed by `vVERSION[+]', meaning that
+particular version, or later versions with the `+', as shown above.
+
+ In the case of exceptions for extra permissions with the GPL, we use
+`/' for a separator; the version number can follow the license
+abbreviation as usual, as in the examples below.
+
+GPL
+ GNU General Public License, `http://www.gnu.org/licenses/gpl.html'.
+
+LGPL
+ GNU Lesser General Public License,
+ `http://www.gnu.org/licenses/lgpl.html'.
+
+GPL/Ada
+ GNU GPL with the exception for Ada.
+
+Apache
+ The Apache Software Foundation license,
+ `http://www.apache.org/licenses'.
+
+Artistic
+ The Artistic license used for Perl,
+ `http://www.perlfoundation.org/legal'.
+
+Expat
+ The Expat license, `http://www.jclark.com/xml/copying.txt'.
+
+MPL
+ The Mozilla Public License, `http://www.mozilla.org/MPL/'.
+
+OBSD
+ The original (4-clause) BSD license, incompatible with the GNU GPL
+ `http://www.xfree86.org/3.3.6/COPYRIGHT2.html#6'.
+
+PHP
+ The license used for PHP, `http://www.php.net/license/'.
+
+public domain
+ The non-license that is being in the public domain,
+ `http://www.gnu.org/licenses/license-list.html#PublicDomain'.
+
+Python
+ The license for Python, `http://www.python.org/2.0.1/license.html'.
+
+RBSD
+ The revised (3-clause) BSD, compatible with the GNU GPL,
+ `http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5'.
+
+X11
+ The simple non-copyleft license used for most versions of the X
+ Window System, `http://www.xfree86.org/3.3.6/COPYRIGHT2.html#3'.
+
+Zlib
+ The license for Zlib, `http://www.gzip.org/zlib/zlib_license.html'.
+
+
+ More information about these licenses and many more are on the GNU
+licensing web pages, `http://www.gnu.org/licenses/license-list.html'.
+
+
+File: standards.info, Node: --help, Prev: --version, Up: Command-Line Interfaces
+
+4.7.2 `--help'
+--------------
+
+The standard `--help' option should output brief documentation for how
+to invoke the program, on standard output, then exit successfully.
+Other options and arguments should be ignored once this is seen, and
+the program should not perform its normal function.
+
+ Near the end of the `--help' option's output, please place lines
+giving the email address for bug reports, the package's home page
+(normally <http://www.gnu.org/software/PKG>, and the general page for
+help using GNU programs. The format should be like this:
+
+ Report bugs to: MAILING-ADDRESS
+ PKG home page: <http://www.gnu.org/software/PKG/>
+ General help using GNU software: <http://www.gnu.org/gethelp/>
+
+ It is ok to mention other appropriate mailing lists and web pages.
+
+
+File: standards.info, Node: Option Table, Next: OID Allocations, Prev: Command-Line Interfaces, Up: Program Behavior
+
+4.8 Table of Long Options
+=========================
+
+Here is a table of long options used by GNU programs. It is surely
+incomplete, but we aim to list all the options that a new program might
+want to be compatible with. If you use names not already in the table,
+please send <bug-standards@gnu.org> a list of them, with their
+meanings, so we can update the table.
+
+`after-date'
+ `-N' in `tar'.
+
+`all'
+ `-a' in `du', `ls', `nm', `stty', `uname', and `unexpand'.
+
+`all-text'
+ `-a' in `diff'.
+
+`almost-all'
+ `-A' in `ls'.
+
+`append'
+ `-a' in `etags', `tee', `time'; `-r' in `tar'.
+
+`archive'
+ `-a' in `cp'.
+
+`archive-name'
+ `-n' in `shar'.
+
+`arglength'
+ `-l' in `m4'.
+
+`ascii'
+ `-a' in `diff'.
+
+`assign'
+ `-v' in `gawk'.
+
+`assume-new'
+ `-W' in `make'.
+
+`assume-old'
+ `-o' in `make'.
+
+`auto-check'
+ `-a' in `recode'.
+
+`auto-pager'
+ `-a' in `wdiff'.
+
+`auto-reference'
+ `-A' in `ptx'.
+
+`avoid-wraps'
+ `-n' in `wdiff'.
+
+`background'
+ For server programs, run in the background.
+
+`backward-search'
+ `-B' in `ctags'.
+
+`basename'
+ `-f' in `shar'.
+
+`batch'
+ Used in GDB.
+
+`baud'
+ Used in GDB.
+
+`before'
+ `-b' in `tac'.
+
+`binary'
+ `-b' in `cpio' and `diff'.
+
+`bits-per-code'
+ `-b' in `shar'.
+
+`block-size'
+ Used in `cpio' and `tar'.
+
+`blocks'
+ `-b' in `head' and `tail'.
+
+`break-file'
+ `-b' in `ptx'.
+
+`brief'
+ Used in various programs to make output shorter.
+
+`bytes'
+ `-c' in `head', `split', and `tail'.
+
+`c++'
+ `-C' in `etags'.
+
+`catenate'
+ `-A' in `tar'.
+
+`cd'
+ Used in various programs to specify the directory to use.
+
+`changes'
+ `-c' in `chgrp' and `chown'.
+
+`classify'
+ `-F' in `ls'.
+
+`colons'
+ `-c' in `recode'.
+
+`command'
+ `-c' in `su'; `-x' in GDB.
+
+`compare'
+ `-d' in `tar'.
+
+`compat'
+ Used in `gawk'.
+
+`compress'
+ `-Z' in `tar' and `shar'.
+
+`concatenate'
+ `-A' in `tar'.
+
+`confirmation'
+ `-w' in `tar'.
+
+`context'
+ Used in `diff'.
+
+`copyleft'
+ `-W copyleft' in `gawk'.
+
+`copyright'
+ `-C' in `ptx', `recode', and `wdiff'; `-W copyright' in `gawk'.
+
+`core'
+ Used in GDB.
+
+`count'
+ `-q' in `who'.
+
+`count-links'
+ `-l' in `du'.
+
+`create'
+ Used in `tar' and `cpio'.
+
+`cut-mark'
+ `-c' in `shar'.
+
+`cxref'
+ `-x' in `ctags'.
+
+`date'
+ `-d' in `touch'.
+
+`debug'
+ `-d' in `make' and `m4'; `-t' in Bison.
+
+`define'
+ `-D' in `m4'.
+
+`defines'
+ `-d' in Bison and `ctags'.
+
+`delete'
+ `-D' in `tar'.
+
+`dereference'
+ `-L' in `chgrp', `chown', `cpio', `du', `ls', and `tar'.
+
+`dereference-args'
+ `-D' in `du'.
+
+`device'
+ Specify an I/O device (special file name).
+
+`diacritics'
+ `-d' in `recode'.
+
+`dictionary-order'
+ `-d' in `look'.
+
+`diff'
+ `-d' in `tar'.
+
+`digits'
+ `-n' in `csplit'.
+
+`directory'
+ Specify the directory to use, in various programs. In `ls', it
+ means to show directories themselves rather than their contents.
+ In `rm' and `ln', it means to not treat links to directories
+ specially.
+
+`discard-all'
+ `-x' in `strip'.
+
+`discard-locals'
+ `-X' in `strip'.
+
+`dry-run'
+ `-n' in `make'.
+
+`ed'
+ `-e' in `diff'.
+
+`elide-empty-files'
+ `-z' in `csplit'.
+
+`end-delete'
+ `-x' in `wdiff'.
+
+`end-insert'
+ `-z' in `wdiff'.
+
+`entire-new-file'
+ `-N' in `diff'.
+
+`environment-overrides'
+ `-e' in `make'.
+
+`eof'
+ `-e' in `xargs'.
+
+`epoch'
+ Used in GDB.
+
+`error-limit'
+ Used in `makeinfo'.
+
+`error-output'
+ `-o' in `m4'.
+
+`escape'
+ `-b' in `ls'.
+
+`exclude-from'
+ `-X' in `tar'.
+
+`exec'
+ Used in GDB.
+
+`exit'
+ `-x' in `xargs'.
+
+`exit-0'
+ `-e' in `unshar'.
+
+`expand-tabs'
+ `-t' in `diff'.
+
+`expression'
+ `-e' in `sed'.
+
+`extern-only'
+ `-g' in `nm'.
+
+`extract'
+ `-i' in `cpio'; `-x' in `tar'.
+
+`faces'
+ `-f' in `finger'.
+
+`fast'
+ `-f' in `su'.
+
+`fatal-warnings'
+ `-E' in `m4'.
+
+`file'
+ `-f' in `gawk', `info', `make', `mt', `sed', and `tar'.
+
+`field-separator'
+ `-F' in `gawk'.
+
+`file-prefix'
+ `-b' in Bison.
+
+`file-type'
+ `-F' in `ls'.
+
+`files-from'
+ `-T' in `tar'.
+
+`fill-column'
+ Used in `makeinfo'.
+
+`flag-truncation'
+ `-F' in `ptx'.
+
+`fixed-output-files'
+ `-y' in Bison.
+
+`follow'
+ `-f' in `tail'.
+
+`footnote-style'
+ Used in `makeinfo'.
+
+`force'
+ `-f' in `cp', `ln', `mv', and `rm'.
+
+`force-prefix'
+ `-F' in `shar'.
+
+`foreground'
+ For server programs, run in the foreground; in other words, don't
+ do anything special to run the server in the background.
+
+`format'
+ Used in `ls', `time', and `ptx'.
+
+`freeze-state'
+ `-F' in `m4'.
+
+`fullname'
+ Used in GDB.
+
+`gap-size'
+ `-g' in `ptx'.
+
+`get'
+ `-x' in `tar'.
+
+`graphic'
+ `-i' in `ul'.
+
+`graphics'
+ `-g' in `recode'.
+
+`group'
+ `-g' in `install'.
+
+`gzip'
+ `-z' in `tar' and `shar'.
+
+`hashsize'
+ `-H' in `m4'.
+
+`header'
+ `-h' in `objdump' and `recode'
+
+`heading'
+ `-H' in `who'.
+
+`help'
+ Used to ask for brief usage information.
+
+`here-delimiter'
+ `-d' in `shar'.
+
+`hide-control-chars'
+ `-q' in `ls'.
+
+`html'
+ In `makeinfo', output HTML.
+
+`idle'
+ `-u' in `who'.
+
+`ifdef'
+ `-D' in `diff'.
+
+`ignore'
+ `-I' in `ls'; `-x' in `recode'.
+
+`ignore-all-space'
+ `-w' in `diff'.
+
+`ignore-backups'
+ `-B' in `ls'.
+
+`ignore-blank-lines'
+ `-B' in `diff'.
+
+`ignore-case'
+ `-f' in `look' and `ptx'; `-i' in `diff' and `wdiff'.
+
+`ignore-errors'
+ `-i' in `make'.
+
+`ignore-file'
+ `-i' in `ptx'.
+
+`ignore-indentation'
+ `-I' in `etags'.
+
+`ignore-init-file'
+ `-f' in Oleo.
+
+`ignore-interrupts'
+ `-i' in `tee'.
+
+`ignore-matching-lines'
+ `-I' in `diff'.
+
+`ignore-space-change'
+ `-b' in `diff'.
+
+`ignore-zeros'
+ `-i' in `tar'.
+
+`include'
+ `-i' in `etags'; `-I' in `m4'.
+
+`include-dir'
+ `-I' in `make'.
+
+`incremental'
+ `-G' in `tar'.
+
+`info'
+ `-i', `-l', and `-m' in Finger.
+
+`init-file'
+ In some programs, specify the name of the file to read as the
+ user's init file.
+
+`initial'
+ `-i' in `expand'.
+
+`initial-tab'
+ `-T' in `diff'.
+
+`inode'
+ `-i' in `ls'.
+
+`interactive'
+ `-i' in `cp', `ln', `mv', `rm'; `-e' in `m4'; `-p' in `xargs';
+ `-w' in `tar'.
+
+`intermix-type'
+ `-p' in `shar'.
+
+`iso-8601'
+ Used in `date'
+
+`jobs'
+ `-j' in `make'.
+
+`just-print'
+ `-n' in `make'.
+
+`keep-going'
+ `-k' in `make'.
+
+`keep-files'
+ `-k' in `csplit'.
+
+`kilobytes'
+ `-k' in `du' and `ls'.
+
+`language'
+ `-l' in `etags'.
+
+`less-mode'
+ `-l' in `wdiff'.
+
+`level-for-gzip'
+ `-g' in `shar'.
+
+`line-bytes'
+ `-C' in `split'.
+
+`lines'
+ Used in `split', `head', and `tail'.
+
+`link'
+ `-l' in `cpio'.
+
+`lint'
+`lint-old'
+ Used in `gawk'.
+
+`list'
+ `-t' in `cpio'; `-l' in `recode'.
+
+`list'
+ `-t' in `tar'.
+
+`literal'
+ `-N' in `ls'.
+
+`load-average'
+ `-l' in `make'.
+
+`login'
+ Used in `su'.
+
+`machine'
+ Used in `uname'.
+
+`macro-name'
+ `-M' in `ptx'.
+
+`mail'
+ `-m' in `hello' and `uname'.
+
+`make-directories'
+ `-d' in `cpio'.
+
+`makefile'
+ `-f' in `make'.
+
+`mapped'
+ Used in GDB.
+
+`max-args'
+ `-n' in `xargs'.
+
+`max-chars'
+ `-n' in `xargs'.
+
+`max-lines'
+ `-l' in `xargs'.
+
+`max-load'
+ `-l' in `make'.
+
+`max-procs'
+ `-P' in `xargs'.
+
+`mesg'
+ `-T' in `who'.
+
+`message'
+ `-T' in `who'.
+
+`minimal'
+ `-d' in `diff'.
+
+`mixed-uuencode'
+ `-M' in `shar'.
+
+`mode'
+ `-m' in `install', `mkdir', and `mkfifo'.
+
+`modification-time'
+ `-m' in `tar'.
+
+`multi-volume'
+ `-M' in `tar'.
+
+`name-prefix'
+ `-a' in Bison.
+
+`nesting-limit'
+ `-L' in `m4'.
+
+`net-headers'
+ `-a' in `shar'.
+
+`new-file'
+ `-W' in `make'.
+
+`no-builtin-rules'
+ `-r' in `make'.
+
+`no-character-count'
+ `-w' in `shar'.
+
+`no-check-existing'
+ `-x' in `shar'.
+
+`no-common'
+ `-3' in `wdiff'.
+
+`no-create'
+ `-c' in `touch'.
+
+`no-defines'
+ `-D' in `etags'.
+
+`no-deleted'
+ `-1' in `wdiff'.
+
+`no-dereference'
+ `-d' in `cp'.
+
+`no-inserted'
+ `-2' in `wdiff'.
+
+`no-keep-going'
+ `-S' in `make'.
+
+`no-lines'
+ `-l' in Bison.
+
+`no-piping'
+ `-P' in `shar'.
+
+`no-prof'
+ `-e' in `gprof'.
+
+`no-regex'
+ `-R' in `etags'.
+
+`no-sort'
+ `-p' in `nm'.
+
+`no-splash'
+ Don't print a startup splash screen.
+
+`no-split'
+ Used in `makeinfo'.
+
+`no-static'
+ `-a' in `gprof'.
+
+`no-time'
+ `-E' in `gprof'.
+
+`no-timestamp'
+ `-m' in `shar'.
+
+`no-validate'
+ Used in `makeinfo'.
+
+`no-wait'
+ Used in `emacsclient'.
+
+`no-warn'
+ Used in various programs to inhibit warnings.
+
+`node'
+ `-n' in `info'.
+
+`nodename'
+ `-n' in `uname'.
+
+`nonmatching'
+ `-f' in `cpio'.
+
+`nstuff'
+ `-n' in `objdump'.
+
+`null'
+ `-0' in `xargs'.
+
+`number'
+ `-n' in `cat'.
+
+`number-nonblank'
+ `-b' in `cat'.
+
+`numeric-sort'
+ `-n' in `nm'.
+
+`numeric-uid-gid'
+ `-n' in `cpio' and `ls'.
+
+`nx'
+ Used in GDB.
+
+`old-archive'
+ `-o' in `tar'.
+
+`old-file'
+ `-o' in `make'.
+
+`one-file-system'
+ `-l' in `tar', `cp', and `du'.
+
+`only-file'
+ `-o' in `ptx'.
+
+`only-prof'
+ `-f' in `gprof'.
+
+`only-time'
+ `-F' in `gprof'.
+
+`options'
+ `-o' in `getopt', `fdlist', `fdmount', `fdmountd', and `fdumount'.
+
+`output'
+ In various programs, specify the output file name.
+
+`output-prefix'
+ `-o' in `shar'.
+
+`override'
+ `-o' in `rm'.
+
+`overwrite'
+ `-c' in `unshar'.
+
+`owner'
+ `-o' in `install'.
+
+`paginate'
+ `-l' in `diff'.
+
+`paragraph-indent'
+ Used in `makeinfo'.
+
+`parents'
+ `-p' in `mkdir' and `rmdir'.
+
+`pass-all'
+ `-p' in `ul'.
+
+`pass-through'
+ `-p' in `cpio'.
+
+`port'
+ `-P' in `finger'.
+
+`portability'
+ `-c' in `cpio' and `tar'.
+
+`posix'
+ Used in `gawk'.
+
+`prefix-builtins'
+ `-P' in `m4'.
+
+`prefix'
+ `-f' in `csplit'.
+
+`preserve'
+ Used in `tar' and `cp'.
+
+`preserve-environment'
+ `-p' in `su'.
+
+`preserve-modification-time'
+ `-m' in `cpio'.
+
+`preserve-order'
+ `-s' in `tar'.
+
+`preserve-permissions'
+ `-p' in `tar'.
+
+`print'
+ `-l' in `diff'.
+
+`print-chars'
+ `-L' in `cmp'.
+
+`print-data-base'
+ `-p' in `make'.
+
+`print-directory'
+ `-w' in `make'.
+
+`print-file-name'
+ `-o' in `nm'.
+
+`print-symdefs'
+ `-s' in `nm'.
+
+`printer'
+ `-p' in `wdiff'.
+
+`prompt'
+ `-p' in `ed'.
+
+`proxy'
+ Specify an HTTP proxy.
+
+`query-user'
+ `-X' in `shar'.
+
+`question'
+ `-q' in `make'.
+
+`quiet'
+ Used in many programs to inhibit the usual output. Every program
+ accepting `--quiet' should accept `--silent' as a synonym.
+
+`quiet-unshar'
+ `-Q' in `shar'
+
+`quote-name'
+ `-Q' in `ls'.
+
+`rcs'
+ `-n' in `diff'.
+
+`re-interval'
+ Used in `gawk'.
+
+`read-full-blocks'
+ `-B' in `tar'.
+
+`readnow'
+ Used in GDB.
+
+`recon'
+ `-n' in `make'.
+
+`record-number'
+ `-R' in `tar'.
+
+`recursive'
+ Used in `chgrp', `chown', `cp', `ls', `diff', and `rm'.
+
+`reference'
+ `-r' in `touch'.
+
+`references'
+ `-r' in `ptx'.
+
+`regex'
+ `-r' in `tac' and `etags'.
+
+`release'
+ `-r' in `uname'.
+
+`reload-state'
+ `-R' in `m4'.
+
+`relocation'
+ `-r' in `objdump'.
+
+`rename'
+ `-r' in `cpio'.
+
+`replace'
+ `-i' in `xargs'.
+
+`report-identical-files'
+ `-s' in `diff'.
+
+`reset-access-time'
+ `-a' in `cpio'.
+
+`reverse'
+ `-r' in `ls' and `nm'.
+
+`reversed-ed'
+ `-f' in `diff'.
+
+`right-side-defs'
+ `-R' in `ptx'.
+
+`same-order'
+ `-s' in `tar'.
+
+`same-permissions'
+ `-p' in `tar'.
+
+`save'
+ `-g' in `stty'.
+
+`se'
+ Used in GDB.
+
+`sentence-regexp'
+ `-S' in `ptx'.
+
+`separate-dirs'
+ `-S' in `du'.
+
+`separator'
+ `-s' in `tac'.
+
+`sequence'
+ Used by `recode' to chose files or pipes for sequencing passes.
+
+`shell'
+ `-s' in `su'.
+
+`show-all'
+ `-A' in `cat'.
+
+`show-c-function'
+ `-p' in `diff'.
+
+`show-ends'
+ `-E' in `cat'.
+
+`show-function-line'
+ `-F' in `diff'.
+
+`show-tabs'
+ `-T' in `cat'.
+
+`silent'
+ Used in many programs to inhibit the usual output. Every program
+ accepting `--silent' should accept `--quiet' as a synonym.
+
+`size'
+ `-s' in `ls'.
+
+`socket'
+ Specify a file descriptor for a network server to use for its
+ socket, instead of opening and binding a new socket. This
+ provides a way to run, in a non-privileged process, a server that
+ normally needs a reserved port number.
+
+`sort'
+ Used in `ls'.
+
+`source'
+ `-W source' in `gawk'.
+
+`sparse'
+ `-S' in `tar'.
+
+`speed-large-files'
+ `-H' in `diff'.
+
+`split-at'
+ `-E' in `unshar'.
+
+`split-size-limit'
+ `-L' in `shar'.
+
+`squeeze-blank'
+ `-s' in `cat'.
+
+`start-delete'
+ `-w' in `wdiff'.
+
+`start-insert'
+ `-y' in `wdiff'.
+
+`starting-file'
+ Used in `tar' and `diff' to specify which file within a directory
+ to start processing with.
+
+`statistics'
+ `-s' in `wdiff'.
+
+`stdin-file-list'
+ `-S' in `shar'.
+
+`stop'
+ `-S' in `make'.
+
+`strict'
+ `-s' in `recode'.
+
+`strip'
+ `-s' in `install'.
+
+`strip-all'
+ `-s' in `strip'.
+
+`strip-debug'
+ `-S' in `strip'.
+
+`submitter'
+ `-s' in `shar'.
+
+`suffix'
+ `-S' in `cp', `ln', `mv'.
+
+`suffix-format'
+ `-b' in `csplit'.
+
+`sum'
+ `-s' in `gprof'.
+
+`summarize'
+ `-s' in `du'.
+
+`symbolic'
+ `-s' in `ln'.
+
+`symbols'
+ Used in GDB and `objdump'.
+
+`synclines'
+ `-s' in `m4'.
+
+`sysname'
+ `-s' in `uname'.
+
+`tabs'
+ `-t' in `expand' and `unexpand'.
+
+`tabsize'
+ `-T' in `ls'.
+
+`terminal'
+ `-T' in `tput' and `ul'. `-t' in `wdiff'.
+
+`text'
+ `-a' in `diff'.
+
+`text-files'
+ `-T' in `shar'.
+
+`time'
+ Used in `ls' and `touch'.
+
+`timeout'
+ Specify how long to wait before giving up on some operation.
+
+`to-stdout'
+ `-O' in `tar'.
+
+`total'
+ `-c' in `du'.
+
+`touch'
+ `-t' in `make', `ranlib', and `recode'.
+
+`trace'
+ `-t' in `m4'.
+
+`traditional'
+ `-t' in `hello'; `-W traditional' in `gawk'; `-G' in `ed', `m4',
+ and `ptx'.
+
+`tty'
+ Used in GDB.
+
+`typedefs'
+ `-t' in `ctags'.
+
+`typedefs-and-c++'
+ `-T' in `ctags'.
+
+`typeset-mode'
+ `-t' in `ptx'.
+
+`uncompress'
+ `-z' in `tar'.
+
+`unconditional'
+ `-u' in `cpio'.
+
+`undefine'
+ `-U' in `m4'.
+
+`undefined-only'
+ `-u' in `nm'.
+
+`update'
+ `-u' in `cp', `ctags', `mv', `tar'.
+
+`usage'
+ Used in `gawk'; same as `--help'.
+
+`uuencode'
+ `-B' in `shar'.
+
+`vanilla-operation'
+ `-V' in `shar'.
+
+`verbose'
+ Print more information about progress. Many programs support this.
+
+`verify'
+ `-W' in `tar'.
+
+`version'
+ Print the version number.
+
+`version-control'
+ `-V' in `cp', `ln', `mv'.
+
+`vgrind'
+ `-v' in `ctags'.
+
+`volume'
+ `-V' in `tar'.
+
+`what-if'
+ `-W' in `make'.
+
+`whole-size-limit'
+ `-l' in `shar'.
+
+`width'
+ `-w' in `ls' and `ptx'.
+
+`word-regexp'
+ `-W' in `ptx'.
+
+`writable'
+ `-T' in `who'.
+
+`zeros'
+ `-z' in `gprof'.
+
+
+File: standards.info, Node: OID Allocations, Next: Memory Usage, Prev: Option Table, Up: Program Behavior
+
+4.9 OID Allocations
+===================
+
+The OID (object identifier) 1.3.6.1.4.1.11591 has been assigned to the
+GNU Project (thanks to Werner Koch). These are used for SNMP, LDAP,
+X.509 certificates, and so on. The web site
+`http://www.alvestrand.no/objectid' has a (voluntary) listing of many
+OID assignments.
+
+ If you need a new slot for your GNU package, write
+<maintainers@gnu.org>. Here is a list of arcs currently assigned:
+
+
+ 1.3.6.1.4.1.11591 GNU
+
+ 1.3.6.1.4.1.11591.1 GNU Radius
+
+ 1.3.6.1.4.1.11591.2 GnuPG
+ 1.3.6.1.4.1.11591.2.1 notation
+ 1.3.6.1.4.1.11591.2.1.1 pkaAddress
+
+ 1.3.6.1.4.1.11591.3 GNU Radar
+
+ 1.3.6.1.4.1.11591.4 GNU GSS
+
+ 1.3.6.1.4.1.11591.5 GNU Mailutils
+
+ 1.3.6.1.4.1.11591.6 GNU Shishi
+
+ 1.3.6.1.4.1.11591.7 GNU Radio
+
+ 1.3.6.1.4.1.11591.12 digestAlgorithm
+ 1.3.6.1.4.1.11591.12.2 TIGER/192
+ 1.3.6.1.4.1.11591.13 encryptionAlgorithm
+ 1.3.6.1.4.1.11591.13.2 Serpent
+ 1.3.6.1.4.1.11591.13.2.1 Serpent-128-ECB
+ 1.3.6.1.4.1.11591.13.2.2 Serpent-128-CBC
+ 1.3.6.1.4.1.11591.13.2.3 Serpent-128-OFB
+ 1.3.6.1.4.1.11591.13.2.4 Serpent-128-CFB
+ 1.3.6.1.4.1.11591.13.2.21 Serpent-192-ECB
+ 1.3.6.1.4.1.11591.13.2.22 Serpent-192-CBC
+ 1.3.6.1.4.1.11591.13.2.23 Serpent-192-OFB
+ 1.3.6.1.4.1.11591.13.2.24 Serpent-192-CFB
+ 1.3.6.1.4.1.11591.13.2.41 Serpent-256-ECB
+ 1.3.6.1.4.1.11591.13.2.42 Serpent-256-CBC
+ 1.3.6.1.4.1.11591.13.2.43 Serpent-256-OFB
+ 1.3.6.1.4.1.11591.13.2.44 Serpent-256-CFB
+ 1.3.6.1.4.1.11591.14 CRC algorithms
+ 1.3.6.1.4.1.11591.14.1 CRC 32
+
+
+File: standards.info, Node: Memory Usage, Next: File Usage, Prev: OID Allocations, Up: Program Behavior
+
+4.10 Memory Usage
+=================
+
+If a program typically uses just a few meg of memory, don't bother
+making any effort to reduce memory usage. For example, if it is
+impractical for other reasons to operate on files more than a few meg
+long, it is reasonable to read entire input files into memory to
+operate on them.
+
+ However, for programs such as `cat' or `tail', that can usefully
+operate on very large files, it is important to avoid using a technique
+that would artificially limit the size of files it can handle. If a
+program works by lines and could be applied to arbitrary user-supplied
+input files, it should keep only a line in memory, because this is not
+very hard and users will want to be able to operate on input files that
+are bigger than will fit in memory all at once.
+
+ If your program creates complicated data structures, just make them
+in memory and give a fatal error if `malloc' returns zero.
+
+
+File: standards.info, Node: File Usage, Prev: Memory Usage, Up: Program Behavior
+
+4.11 File Usage
+===============
+
+Programs should be prepared to operate when `/usr' and `/etc' are
+read-only file systems. Thus, if the program manages log files, lock
+files, backup files, score files, or any other files which are modified
+for internal purposes, these files should not be stored in `/usr' or
+`/etc'.
+
+ There are two exceptions. `/etc' is used to store system
+configuration information; it is reasonable for a program to modify
+files in `/etc' when its job is to update the system configuration.
+Also, if the user explicitly asks to modify one file in a directory, it
+is reasonable for the program to store other files in the same
+directory.
+
+
+File: standards.info, Node: Writing C, Next: Documentation, Prev: Program Behavior, Up: Top
+
+5 Making The Best Use of C
+**************************
+
+This chapter provides advice on how best to use the C language when
+writing GNU software.
+
+* Menu:
+
+* Formatting:: Formatting your source code.
+* Comments:: Commenting your work.
+* Syntactic Conventions:: Clean use of C constructs.
+* Names:: Naming variables, functions, and files.
+* System Portability:: Portability among different operating systems.
+* CPU Portability:: Supporting the range of CPU types.
+* System Functions:: Portability and ``standard'' library functions.
+* Internationalization:: Techniques for internationalization.
+* Character Set:: Use ASCII by default.
+* Quote Characters:: Use `...' in the C locale.
+* Mmap:: How you can safely use `mmap'.
+
+
+File: standards.info, Node: Formatting, Next: Comments, Up: Writing C
+
+5.1 Formatting Your Source Code
+===============================
+
+It is important to put the open-brace that starts the body of a C
+function in column one, so that they will start a defun. Several tools
+look for open-braces in column one to find the beginnings of C
+functions. These tools will not work on code not formatted that way.
+
+ Avoid putting open-brace, open-parenthesis or open-bracket in column
+one when they are inside a function, so that they won't start a defun.
+The open-brace that starts a `struct' body can go in column one if you
+find it useful to treat that definition as a defun.
+
+ It is also important for function definitions to start the name of
+the function in column one. This helps people to search for function
+definitions, and may also help certain tools recognize them. Thus,
+using Standard C syntax, the format is this:
+
+ static char *
+ concat (char *s1, char *s2)
+ {
+ ...
+ }
+
+or, if you want to use traditional C syntax, format the definition like
+this:
+
+ static char *
+ concat (s1, s2) /* Name starts in column one here */
+ char *s1, *s2;
+ { /* Open brace in column one here */
+ ...
+ }
+
+ In Standard C, if the arguments don't fit nicely on one line, split
+it like this:
+
+ int
+ lots_of_args (int an_integer, long a_long, short a_short,
+ double a_double, float a_float)
+ ...
+
+ The rest of this section gives our recommendations for other aspects
+of C formatting style, which is also the default style of the `indent'
+program in version 1.2 and newer. It corresponds to the options
+
+ -nbad -bap -nbc -bbo -bl -bli2 -bls -ncdb -nce -cp1 -cs -di2
+ -ndj -nfc1 -nfca -hnl -i2 -ip5 -lp -pcs -psl -nsc -nsob
+
+ We don't think of these recommendations as requirements, because it
+causes no problems for users if two different programs have different
+formatting styles.
+
+ But whatever style you use, please use it consistently, since a
+mixture of styles within one program tends to look ugly. If you are
+contributing changes to an existing program, please follow the style of
+that program.
+
+ For the body of the function, our recommended style looks like this:
+
+ if (x < foo (y, z))
+ haha = bar[4] + 5;
+ else
+ {
+ while (z)
+ {
+ haha += foo (z, z);
+ z--;
+ }
+ return ++x + bar ();
+ }
+
+ We find it easier to read a program when it has spaces before the
+open-parentheses and after the commas. Especially after the commas.
+
+ When you split an expression into multiple lines, split it before an
+operator, not after one. Here is the right way:
+
+ if (foo_this_is_long && bar > win (x, y, z)
+ && remaining_condition)
+
+ Try to avoid having two operators of different precedence at the same
+level of indentation. For example, don't write this:
+
+ mode = (inmode[j] == VOIDmode
+ || GET_MODE_SIZE (outmode[j]) > GET_MODE_SIZE (inmode[j])
+ ? outmode[j] : inmode[j]);
+
+ Instead, use extra parentheses so that the indentation shows the
+nesting:
+
+ mode = ((inmode[j] == VOIDmode
+ || (GET_MODE_SIZE (outmode[j]) > GET_MODE_SIZE (inmode[j])))
+ ? outmode[j] : inmode[j]);
+
+ Insert extra parentheses so that Emacs will indent the code properly.
+For example, the following indentation looks nice if you do it by hand,
+
+ v = rup->ru_utime.tv_sec*1000 + rup->ru_utime.tv_usec/1000
+ + rup->ru_stime.tv_sec*1000 + rup->ru_stime.tv_usec/1000;
+
+but Emacs would alter it. Adding a set of parentheses produces
+something that looks equally nice, and which Emacs will preserve:
+
+ v = (rup->ru_utime.tv_sec*1000 + rup->ru_utime.tv_usec/1000
+ + rup->ru_stime.tv_sec*1000 + rup->ru_stime.tv_usec/1000);
+
+ Format do-while statements like this:
+
+ do
+ {
+ a = foo (a);
+ }
+ while (a > 0);
+
+ Please use formfeed characters (control-L) to divide the program into
+pages at logical places (but not within a function). It does not matter
+just how long the pages are, since they do not have to fit on a printed
+page. The formfeeds should appear alone on lines by themselves.
+
+
+File: standards.info, Node: Comments, Next: Syntactic Conventions, Prev: Formatting, Up: Writing C
+
+5.2 Commenting Your Work
+========================
+
+Every program should start with a comment saying briefly what it is for.
+Example: `fmt - filter for simple filling of text'. This comment
+should be at the top of the source file containing the `main' function
+of the program.
+
+ Also, please write a brief comment at the start of each source file,
+with the file name and a line or two about the overall purpose of the
+file.
+
+ Please write the comments in a GNU program in English, because
+English is the one language that nearly all programmers in all
+countries can read. If you do not write English well, please write
+comments in English as well as you can, then ask other people to help
+rewrite them. If you can't write comments in English, please find
+someone to work with you and translate your comments into English.
+
+ Please put a comment on each function saying what the function does,
+what sorts of arguments it gets, and what the possible values of
+arguments mean and are used for. It is not necessary to duplicate in
+words the meaning of the C argument declarations, if a C type is being
+used in its customary fashion. If there is anything nonstandard about
+its use (such as an argument of type `char *' which is really the
+address of the second character of a string, not the first), or any
+possible values that would not work the way one would expect (such as,
+that strings containing newlines are not guaranteed to work), be sure
+to say so.
+
+ Also explain the significance of the return value, if there is one.
+
+ Please put two spaces after the end of a sentence in your comments,
+so that the Emacs sentence commands will work. Also, please write
+complete sentences and capitalize the first word. If a lower-case
+identifier comes at the beginning of a sentence, don't capitalize it!
+Changing the spelling makes it a different identifier. If you don't
+like starting a sentence with a lower case letter, write the sentence
+differently (e.g., "The identifier lower-case is ...").
+
+ The comment on a function is much clearer if you use the argument
+names to speak about the argument values. The variable name itself
+should be lower case, but write it in upper case when you are speaking
+about the value rather than the variable itself. Thus, "the inode
+number NODE_NUM" rather than "an inode".
+
+ There is usually no purpose in restating the name of the function in
+the comment before it, because the reader can see that for himself.
+There might be an exception when the comment is so long that the
+function itself would be off the bottom of the screen.
+
+ There should be a comment on each static variable as well, like this:
+
+ /* Nonzero means truncate lines in the display;
+ zero means continue them. */
+ int truncate_lines;
+
+ Every `#endif' should have a comment, except in the case of short
+conditionals (just a few lines) that are not nested. The comment should
+state the condition of the conditional that is ending, _including its
+sense_. `#else' should have a comment describing the condition _and
+sense_ of the code that follows. For example:
+
+ #ifdef foo
+ ...
+ #else /* not foo */
+ ...
+ #endif /* not foo */
+ #ifdef foo
+ ...
+ #endif /* foo */
+
+but, by contrast, write the comments this way for a `#ifndef':
+
+ #ifndef foo
+ ...
+ #else /* foo */
+ ...
+ #endif /* foo */
+ #ifndef foo
+ ...
+ #endif /* not foo */
+
+
+File: standards.info, Node: Syntactic Conventions, Next: Names, Prev: Comments, Up: Writing C
+
+5.3 Clean Use of C Constructs
+=============================
+
+Please explicitly declare the types of all objects. For example, you
+should explicitly declare all arguments to functions, and you should
+declare functions to return `int' rather than omitting the `int'.
+
+ Some programmers like to use the GCC `-Wall' option, and change the
+code whenever it issues a warning. If you want to do this, then do.
+Other programmers prefer not to use `-Wall', because it gives warnings
+for valid and legitimate code which they do not want to change. If you
+want to do this, then do. The compiler should be your servant, not
+your master.
+
+ Declarations of external functions and functions to appear later in
+the source file should all go in one place near the beginning of the
+file (somewhere before the first function definition in the file), or
+else should go in a header file. Don't put `extern' declarations inside
+functions.
+
+ It used to be common practice to use the same local variables (with
+names like `tem') over and over for different values within one
+function. Instead of doing this, it is better to declare a separate
+local variable for each distinct purpose, and give it a name which is
+meaningful. This not only makes programs easier to understand, it also
+facilitates optimization by good compilers. You can also move the
+declaration of each local variable into the smallest scope that includes
+all its uses. This makes the program even cleaner.
+
+ Don't use local variables or parameters that shadow global
+identifiers.
+
+ Don't declare multiple variables in one declaration that spans lines.
+Start a new declaration on each line, instead. For example, instead of
+this:
+
+ int foo,
+ bar;
+
+write either this:
+
+ int foo, bar;
+
+or this:
+
+ int foo;
+ int bar;
+
+(If they are global variables, each should have a comment preceding it
+anyway.)
+
+ When you have an `if'-`else' statement nested in another `if'
+statement, always put braces around the `if'-`else'. Thus, never write
+like this:
+
+ if (foo)
+ if (bar)
+ win ();
+ else
+ lose ();
+
+always like this:
+
+ if (foo)
+ {
+ if (bar)
+ win ();
+ else
+ lose ();
+ }
+
+ If you have an `if' statement nested inside of an `else' statement,
+either write `else if' on one line, like this,
+
+ if (foo)
+ ...
+ else if (bar)
+ ...
+
+with its `then'-part indented like the preceding `then'-part, or write
+the nested `if' within braces like this:
+
+ if (foo)
+ ...
+ else
+ {
+ if (bar)
+ ...
+ }
+
+ Don't declare both a structure tag and variables or typedefs in the
+same declaration. Instead, declare the structure tag separately and
+then use it to declare the variables or typedefs.
+
+ Try to avoid assignments inside `if'-conditions (assignments inside
+`while'-conditions are ok). For example, don't write this:
+
+ if ((foo = (char *) malloc (sizeof *foo)) == 0)
+ fatal ("virtual memory exhausted");
+
+instead, write this:
+
+ foo = (char *) malloc (sizeof *foo);
+ if (foo == 0)
+ fatal ("virtual memory exhausted");
+
+ Don't make the program ugly to placate `lint'. Please don't insert
+any casts to `void'. Zero without a cast is perfectly fine as a null
+pointer constant, except when calling a varargs function.
+
+
+File: standards.info, Node: Names, Next: System Portability, Prev: Syntactic Conventions, Up: Writing C
+
+5.4 Naming Variables, Functions, and Files
+==========================================
+
+The names of global variables and functions in a program serve as
+comments of a sort. So don't choose terse names--instead, look for
+names that give useful information about the meaning of the variable or
+function. In a GNU program, names should be English, like other
+comments.
+
+ Local variable names can be shorter, because they are used only
+within one context, where (presumably) comments explain their purpose.
+
+ Try to limit your use of abbreviations in symbol names. It is ok to
+make a few abbreviations, explain what they mean, and then use them
+frequently, but don't use lots of obscure abbreviations.
+
+ Please use underscores to separate words in a name, so that the Emacs
+word commands can be useful within them. Stick to lower case; reserve
+upper case for macros and `enum' constants, and for name-prefixes that
+follow a uniform convention.
+
+ For example, you should use names like `ignore_space_change_flag';
+don't use names like `iCantReadThis'.
+
+ Variables that indicate whether command-line options have been
+specified should be named after the meaning of the option, not after
+the option-letter. A comment should state both the exact meaning of
+the option and its letter. For example,
+
+ /* Ignore changes in horizontal whitespace (-b). */
+ int ignore_space_change_flag;
+
+ When you want to define names with constant integer values, use
+`enum' rather than `#define'. GDB knows about enumeration constants.
+
+ You might want to make sure that none of the file names would
+conflict if the files were loaded onto an MS-DOS file system which
+shortens the names. You can use the program `doschk' to test for this.
+
+ Some GNU programs were designed to limit themselves to file names of
+14 characters or less, to avoid file name conflicts if they are read
+into older System V systems. Please preserve this feature in the
+existing GNU programs that have it, but there is no need to do this in
+new GNU programs. `doschk' also reports file names longer than 14
+characters.
+
+
+File: standards.info, Node: System Portability, Next: CPU Portability, Prev: Names, Up: Writing C
+
+5.5 Portability between System Types
+====================================
+
+In the Unix world, "portability" refers to porting to different Unix
+versions. For a GNU program, this kind of portability is desirable, but
+not paramount.
+
+ The primary purpose of GNU software is to run on top of the GNU
+kernel, compiled with the GNU C compiler, on various types of CPU. So
+the kinds of portability that are absolutely necessary are quite
+limited. But it is important to support Linux-based GNU systems, since
+they are the form of GNU that is popular.
+
+ Beyond that, it is good to support the other free operating systems
+(*BSD), and it is nice to support other Unix-like systems if you want
+to. Supporting a variety of Unix-like systems is desirable, although
+not paramount. It is usually not too hard, so you may as well do it.
+But you don't have to consider it an obligation, if it does turn out to
+be hard.
+
+ The easiest way to achieve portability to most Unix-like systems is
+to use Autoconf. It's unlikely that your program needs to know more
+information about the host platform than Autoconf can provide, simply
+because most of the programs that need such knowledge have already been
+written.
+
+ Avoid using the format of semi-internal data bases (e.g.,
+directories) when there is a higher-level alternative (`readdir').
+
+ As for systems that are not like Unix, such as MSDOS, Windows, VMS,
+MVS, and older Macintosh systems, supporting them is often a lot of
+work. When that is the case, it is better to spend your time adding
+features that will be useful on GNU and GNU/Linux, rather than on
+supporting other incompatible systems.
+
+ If you do support Windows, please do not abbreviate it as "win". In
+hacker terminology, calling something a "win" is a form of praise.
+You're free to praise Microsoft Windows on your own if you want, but
+please don't do this in GNU packages. Instead of abbreviating
+"Windows" to "win", you can write it in full or abbreviate it to "woe"
+or "w". In GNU Emacs, for instance, we use `w32' in file names of
+Windows-specific files, but the macro for Windows conditionals is
+called `WINDOWSNT'.
+
+ It is a good idea to define the "feature test macro" `_GNU_SOURCE'
+when compiling your C files. When you compile on GNU or GNU/Linux,
+this will enable the declarations of GNU library extension functions,
+and that will usually give you a compiler error message if you define
+the same function names in some other way in your program. (You don't
+have to actually _use_ these functions, if you prefer to make the
+program more portable to other systems.)
+
+ But whether or not you use these GNU extensions, you should avoid
+using their names for any other meanings. Doing so would make it hard
+to move your code into other GNU programs.
+
+
+File: standards.info, Node: CPU Portability, Next: System Functions, Prev: System Portability, Up: Writing C
+
+5.6 Portability between CPUs
+============================
+
+Even GNU systems will differ because of differences among CPU
+types--for example, difference in byte ordering and alignment
+requirements. It is absolutely essential to handle these differences.
+However, don't make any effort to cater to the possibility that an
+`int' will be less than 32 bits. We don't support 16-bit machines in
+GNU.
+
+ Similarly, don't make any effort to cater to the possibility that
+`long' will be smaller than predefined types like `size_t'. For
+example, the following code is ok:
+
+ printf ("size = %lu\n", (unsigned long) sizeof array);
+ printf ("diff = %ld\n", (long) (pointer2 - pointer1));
+
+ 1989 Standard C requires this to work, and we know of only one
+counterexample: 64-bit programs on Microsoft Windows. We will leave it
+to those who want to port GNU programs to that environment to figure
+out how to do it.
+
+ Predefined file-size types like `off_t' are an exception: they are
+longer than `long' on many platforms, so code like the above won't work
+with them. One way to print an `off_t' value portably is to print its
+digits yourself, one by one.
+
+ Don't assume that the address of an `int' object is also the address
+of its least-significant byte. This is false on big-endian machines.
+Thus, don't make the following mistake:
+
+ int c;
+ ...
+ while ((c = getchar ()) != EOF)
+ write (file_descriptor, &c, 1);
+
+Instead, use `unsigned char' as follows. (The `unsigned' is for
+portability to unusual systems where `char' is signed and where there
+is integer overflow checking.)
+
+ int c;
+ while ((c = getchar ()) != EOF)
+ {
+ unsigned char u = c;
+ write (file_descriptor, &u, 1);
+ }
+
+ It used to be ok to not worry about the difference between pointers
+and integers when passing arguments to functions. However, on most
+modern 64-bit machines pointers are wider than `int'. Conversely,
+integer types like `long long int' and `off_t' are wider than pointers
+on most modern 32-bit machines. Hence it's often better nowadays to
+use prototypes to define functions whose argument types are not trivial.
+
+ In particular, if functions accept varying argument counts or types
+they should be declared using prototypes containing `...' and defined
+using `stdarg.h'. For an example of this, please see the Gnulib
+(http://www.gnu.org/software/gnulib/) error module, which declares and
+defines the following function:
+
+ /* Print a message with `fprintf (stderr, FORMAT, ...)';
+ if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
+ If STATUS is nonzero, terminate the program with `exit (STATUS)'. */
+
+ void error (int status, int errnum, const char *format, ...);
+
+ A simple way to use the Gnulib error module is to obtain the two
+source files `error.c' and `error.h' from the Gnulib library source
+code repository at `http://git.savannah.gnu.org/gitweb/?p=gnulib.git'.
+Here's a sample use:
+
+ #include "error.h"
+ #include <errno.h>
+ #include <stdio.h>
+
+ char *program_name = "myprogram";
+
+ FILE *
+ xfopen (char const *name)
+ {
+ FILE *fp = fopen (name, "r");
+ if (! fp)
+ error (1, errno, "cannot read %s", name);
+ return fp;
+ }
+
+ Avoid casting pointers to integers if you can. Such casts greatly
+reduce portability, and in most programs they are easy to avoid. In the
+cases where casting pointers to integers is essential--such as, a Lisp
+interpreter which stores type information as well as an address in one
+word--you'll have to make explicit provisions to handle different word
+sizes. You will also need to make provision for systems in which the
+normal range of addresses you can get from `malloc' starts far away
+from zero.
+
+
+File: standards.info, Node: System Functions, Next: Internationalization, Prev: CPU Portability, Up: Writing C
+
+5.7 Calling System Functions
+============================
+
+C implementations differ substantially. Standard C reduces but does
+not eliminate the incompatibilities; meanwhile, many GNU packages still
+support pre-standard compilers because this is not hard to do. This
+chapter gives recommendations for how to use the more-or-less standard C
+library functions to avoid unnecessary loss of portability.
+
+ * Don't use the return value of `sprintf'. It returns the number of
+ characters written on some systems, but not on all systems.
+
+ * Be aware that `vfprintf' is not always available.
+
+ * `main' should be declared to return type `int'. It should
+ terminate either by calling `exit' or by returning the integer
+ status code; make sure it cannot ever return an undefined value.
+
+ * Don't declare system functions explicitly.
+
+ Almost any declaration for a system function is wrong on some
+ system. To minimize conflicts, leave it to the system header
+ files to declare system functions. If the headers don't declare a
+ function, let it remain undeclared.
+
+ While it may seem unclean to use a function without declaring it,
+ in practice this works fine for most system library functions on
+ the systems where this really happens; thus, the disadvantage is
+ only theoretical. By contrast, actual declarations have
+ frequently caused actual conflicts.
+
+ * If you must declare a system function, don't specify the argument
+ types. Use an old-style declaration, not a Standard C prototype.
+ The more you specify about the function, the more likely a
+ conflict.
+
+ * In particular, don't unconditionally declare `malloc' or `realloc'.
+
+ Most GNU programs use those functions just once, in functions
+ conventionally named `xmalloc' and `xrealloc'. These functions
+ call `malloc' and `realloc', respectively, and check the results.
+
+ Because `xmalloc' and `xrealloc' are defined in your program, you
+ can declare them in other files without any risk of type conflict.
+
+ On most systems, `int' is the same length as a pointer; thus, the
+ calls to `malloc' and `realloc' work fine. For the few
+ exceptional systems (mostly 64-bit machines), you can use
+ *conditionalized* declarations of `malloc' and `realloc'--or put
+ these declarations in configuration files specific to those
+ systems.
+
+ * The string functions require special treatment. Some Unix systems
+ have a header file `string.h'; others have `strings.h'. Neither
+ file name is portable. There are two things you can do: use
+ Autoconf to figure out which file to include, or don't include
+ either file.
+
+ * If you don't include either strings file, you can't get
+ declarations for the string functions from the header file in the
+ usual way.
+
+ That causes less of a problem than you might think. The newer
+ standard string functions should be avoided anyway because many
+ systems still don't support them. The string functions you can
+ use are these:
+
+ strcpy strncpy strcat strncat
+ strlen strcmp strncmp
+ strchr strrchr
+
+ The copy and concatenate functions work fine without a declaration
+ as long as you don't use their values. Using their values without
+ a declaration fails on systems where the width of a pointer
+ differs from the width of `int', and perhaps in other cases. It
+ is trivial to avoid using their values, so do that.
+
+ The compare functions and `strlen' work fine without a declaration
+ on most systems, possibly all the ones that GNU software runs on.
+ You may find it necessary to declare them *conditionally* on a few
+ systems.
+
+ The search functions must be declared to return `char *'. Luckily,
+ there is no variation in the data type they return. But there is
+ variation in their names. Some systems give these functions the
+ names `index' and `rindex'; other systems use the names `strchr'
+ and `strrchr'. Some systems support both pairs of names, but
+ neither pair works on all systems.
+
+ You should pick a single pair of names and use it throughout your
+ program. (Nowadays, it is better to choose `strchr' and `strrchr'
+ for new programs, since those are the standard names.) Declare
+ both of those names as functions returning `char *'. On systems
+ which don't support those names, define them as macros in terms of
+ the other pair. For example, here is what to put at the beginning
+ of your file (or in a header) if you want to use the names
+ `strchr' and `strrchr' throughout:
+
+ #ifndef HAVE_STRCHR
+ #define strchr index
+ #endif
+ #ifndef HAVE_STRRCHR
+ #define strrchr rindex
+ #endif
+
+ char *strchr ();
+ char *strrchr ();
+
+ Here we assume that `HAVE_STRCHR' and `HAVE_STRRCHR' are macros
+defined in systems where the corresponding functions exist. One way to
+get them properly defined is to use Autoconf.
+
+
+File: standards.info, Node: Internationalization, Next: Character Set, Prev: System Functions, Up: Writing C
+
+5.8 Internationalization
+========================
+
+GNU has a library called GNU gettext that makes it easy to translate the
+messages in a program into various languages. You should use this
+library in every program. Use English for the messages as they appear
+in the program, and let gettext provide the way to translate them into
+other languages.
+
+ Using GNU gettext involves putting a call to the `gettext' macro
+around each string that might need translation--like this:
+
+ printf (gettext ("Processing file `%s'..."));
+
+This permits GNU gettext to replace the string `"Processing file
+`%s'..."' with a translated version.
+
+ Once a program uses gettext, please make a point of writing calls to
+`gettext' when you add new strings that call for translation.
+
+ Using GNU gettext in a package involves specifying a "text domain
+name" for the package. The text domain name is used to separate the
+translations for this package from the translations for other packages.
+Normally, the text domain name should be the same as the name of the
+package--for example, `coreutils' for the GNU core utilities.
+
+ To enable gettext to work well, avoid writing code that makes
+assumptions about the structure of words or sentences. When you want
+the precise text of a sentence to vary depending on the data, use two or
+more alternative string constants each containing a complete sentences,
+rather than inserting conditionalized words or phrases into a single
+sentence framework.
+
+ Here is an example of what not to do:
+
+ printf ("%s is full", capacity > 5000000 ? "disk" : "floppy disk");
+
+ If you apply gettext to all strings, like this,
+
+ printf (gettext ("%s is full"),
+ capacity > 5000000 ? gettext ("disk") : gettext ("floppy disk"));
+
+the translator will hardly know that "disk" and "floppy disk" are meant
+to be substituted in the other string. Worse, in some languages (like
+French) the construction will not work: the translation of the word
+"full" depends on the gender of the first part of the sentence; it
+happens to be not the same for "disk" as for "floppy disk".
+
+ Complete sentences can be translated without problems:
+
+ printf (capacity > 5000000 ? gettext ("disk is full")
+ : gettext ("floppy disk is full"));
+
+ A similar problem appears at the level of sentence structure with
+this code:
+
+ printf ("# Implicit rule search has%s been done.\n",
+ f->tried_implicit ? "" : " not");
+
+Adding `gettext' calls to this code cannot give correct results for all
+languages, because negation in some languages requires adding words at
+more than one place in the sentence. By contrast, adding `gettext'
+calls does the job straightforwardly if the code starts out like this:
+
+ printf (f->tried_implicit
+ ? "# Implicit rule search has been done.\n",
+ : "# Implicit rule search has not been done.\n");
+
+ Another example is this one:
+
+ printf ("%d file%s processed", nfiles,
+ nfiles != 1 ? "s" : "");
+
+The problem with this example is that it assumes that plurals are made
+by adding `s'. If you apply gettext to the format string, like this,
+
+ printf (gettext ("%d file%s processed"), nfiles,
+ nfiles != 1 ? "s" : "");
+
+the message can use different words, but it will still be forced to use
+`s' for the plural. Here is a better way, with gettext being applied to
+the two strings independently:
+
+ printf ((nfiles != 1 ? gettext ("%d files processed")
+ : gettext ("%d file processed")),
+ nfiles);
+
+But this still doesn't work for languages like Polish, which has three
+plural forms: one for nfiles == 1, one for nfiles == 2, 3, 4, 22, 23,
+24, ... and one for the rest. The GNU `ngettext' function solves this
+problem:
+
+ printf (ngettext ("%d files processed", "%d file processed", nfiles),
+ nfiles);
+
+
+File: standards.info, Node: Character Set, Next: Quote Characters, Prev: Internationalization, Up: Writing C
+
+5.9 Character Set
+=================
+
+Sticking to the ASCII character set (plain text, 7-bit characters) is
+preferred in GNU source code comments, text documents, and other
+contexts, unless there is good reason to do something else because of
+the application domain. For example, if source code deals with the
+French Revolutionary calendar, it is OK if its literal strings contain
+accented characters in month names like "Flore'al". Also, it is OK to
+use non-ASCII characters to represent proper names of contributors in
+change logs (*note Change Logs::).
+
+ If you need to use non-ASCII characters, you should normally stick
+with one encoding, as one cannot in general mix encodings reliably.
+
+
+File: standards.info, Node: Quote Characters, Next: Mmap, Prev: Character Set, Up: Writing C
+
+5.10 Quote Characters
+=====================
+
+In the C locale, GNU programs should stick to plain ASCII for quotation
+characters in messages to users: preferably 0x60 (``') for left quotes
+and 0x27 (`'') for right quotes. It is ok, but not required, to use
+locale-specific quotes in other locales.
+
+ The Gnulib (http://www.gnu.org/software/gnulib/) `quote' and
+`quotearg' modules provide a reasonably straightforward way to support
+locale-specific quote characters, as well as taking care of other
+issues, such as quoting a filename that itself contains a quote
+character. See the Gnulib documentation for usage details.
+
+ In any case, the documentation for your program should clearly
+specify how it does quoting, if different than the preferred method of
+``' and `''. This is especially important if the output of your
+program is ever likely to be parsed by another program.
+
+ Quotation characters are a difficult area in the computing world at
+this time: there are no true left or right quote characters in Latin1;
+the ``' character we use was standardized there as a grave accent.
+Moreover, Latin1 is still not universally usable.
+
+ Unicode contains the unambiguous quote characters required, and its
+common encoding UTF-8 is upward compatible with Latin1. However,
+Unicode and UTF-8 are not universally well-supported, either.
+
+ This may change over the next few years, and then we will revisit
+this.
+
+
+File: standards.info, Node: Mmap, Prev: Quote Characters, Up: Writing C
+
+5.11 Mmap
+=========
+
+Don't assume that `mmap' either works on all files or fails for all
+files. It may work on some files and fail on others.
+
+ The proper way to use `mmap' is to try it on the specific file for
+which you want to use it--and if `mmap' doesn't work, fall back on
+doing the job in another way using `read' and `write'.
+
+ The reason this precaution is needed is that the GNU kernel (the
+HURD) provides a user-extensible file system, in which there can be many
+different kinds of "ordinary files." Many of them support `mmap', but
+some do not. It is important to make programs handle all these kinds
+of files.
+
+
+File: standards.info, Node: Documentation, Next: Managing Releases, Prev: Writing C, Up: Top
+
+6 Documenting Programs
+**********************
+
+A GNU program should ideally come with full free documentation, adequate
+for both reference and tutorial purposes. If the package can be
+programmed or extended, the documentation should cover programming or
+extending it, as well as just using it.
+
+* Menu:
+
+* GNU Manuals:: Writing proper manuals.
+* Doc Strings and Manuals:: Compiling doc strings doesn't make a manual.
+* Manual Structure Details:: Specific structure conventions.
+* License for Manuals:: Writing the distribution terms for a manual.
+* Manual Credits:: Giving credit to documentation contributors.
+* Printed Manuals:: Mentioning the printed manual.
+* NEWS File:: NEWS files supplement manuals.
+* Change Logs:: Recording changes.
+* Man Pages:: Man pages are secondary.
+* Reading other Manuals:: How far you can go in learning
+ from other manuals.
+
+
+File: standards.info, Node: GNU Manuals, Next: Doc Strings and Manuals, Up: Documentation
+
+6.1 GNU Manuals
+===============
+
+The preferred document format for the GNU system is the Texinfo
+formatting language. Every GNU package should (ideally) have
+documentation in Texinfo both for reference and for learners. Texinfo
+makes it possible to produce a good quality formatted book, using TeX,
+and to generate an Info file. It is also possible to generate HTML
+output from Texinfo source. See the Texinfo manual, either the
+hardcopy, or the on-line version available through `info' or the Emacs
+Info subsystem (`C-h i').
+
+ Nowadays some other formats such as Docbook and Sgmltexi can be
+converted automatically into Texinfo. It is ok to produce the Texinfo
+documentation by conversion this way, as long as it gives good results.
+
+ Make sure your manual is clear to a reader who knows nothing about
+the topic and reads it straight through. This means covering basic
+topics at the beginning, and advanced topics only later. This also
+means defining every specialized term when it is first used.
+
+ Programmers tend to carry over the structure of the program as the
+structure for its documentation. But this structure is not necessarily
+good for explaining how to use the program; it may be irrelevant and
+confusing for a user.
+
+ Instead, the right way to structure documentation is according to the
+concepts and questions that a user will have in mind when reading it.
+This principle applies at every level, from the lowest (ordering
+sentences in a paragraph) to the highest (ordering of chapter topics
+within the manual). Sometimes this structure of ideas matches the
+structure of the implementation of the software being documented--but
+often they are different. An important part of learning to write good
+documentation is to learn to notice when you have unthinkingly
+structured the documentation like the implementation, stop yourself,
+and look for better alternatives.
+
+ For example, each program in the GNU system probably ought to be
+documented in one manual; but this does not mean each program should
+have its own manual. That would be following the structure of the
+implementation, rather than the structure that helps the user
+understand.
+
+ Instead, each manual should cover a coherent _topic_. For example,
+instead of a manual for `diff' and a manual for `diff3', we have one
+manual for "comparison of files" which covers both of those programs,
+as well as `cmp'. By documenting these programs together, we can make
+the whole subject clearer.
+
+ The manual which discusses a program should certainly document all of
+the program's command-line options and all of its commands. It should
+give examples of their use. But don't organize the manual as a list of
+features. Instead, organize it logically, by subtopics. Address the
+questions that a user will ask when thinking about the job that the
+program does. Don't just tell the reader what each feature can do--say
+what jobs it is good for, and show how to use it for those jobs.
+Explain what is recommended usage, and what kinds of usage users should
+avoid.
+
+ In general, a GNU manual should serve both as tutorial and reference.
+It should be set up for convenient access to each topic through Info,
+and for reading straight through (appendixes aside). A GNU manual
+should give a good introduction to a beginner reading through from the
+start, and should also provide all the details that hackers want. The
+Bison manual is a good example of this--please take a look at it to see
+what we mean.
+
+ That is not as hard as it first sounds. Arrange each chapter as a
+logical breakdown of its topic, but order the sections, and write their
+text, so that reading the chapter straight through makes sense. Do
+likewise when structuring the book into chapters, and when structuring a
+section into paragraphs. The watchword is, _at each point, address the
+most fundamental and important issue raised by the preceding text._
+
+ If necessary, add extra chapters at the beginning of the manual which
+are purely tutorial and cover the basics of the subject. These provide
+the framework for a beginner to understand the rest of the manual. The
+Bison manual provides a good example of how to do this.
+
+ To serve as a reference, a manual should have an Index that list all
+the functions, variables, options, and important concepts that are part
+of the program. One combined Index should do for a short manual, but
+sometimes for a complex package it is better to use multiple indices.
+The Texinfo manual includes advice on preparing good index entries, see
+*Note Making Index Entries: (texinfo)Index Entries, and see *Note
+Defining the Entries of an Index: (texinfo)Indexing Commands.
+
+ Don't use Unix man pages as a model for how to write GNU
+documentation; most of them are terse, badly structured, and give
+inadequate explanation of the underlying concepts. (There are, of
+course, some exceptions.) Also, Unix man pages use a particular format
+which is different from what we use in GNU manuals.
+
+ Please include an email address in the manual for where to report
+bugs _in the text of the manual_.
+
+ Please do not use the term "pathname" that is used in Unix
+documentation; use "file name" (two words) instead. We use the term
+"path" only for search paths, which are lists of directory names.
+
+ Please do not use the term "illegal" to refer to erroneous input to
+a computer program. Please use "invalid" for this, and reserve the
+term "illegal" for activities prohibited by law.
+
+ Please do not write `()' after a function name just to indicate it
+is a function. `foo ()' is not a function, it is a function call with
+no arguments.
+
+
+File: standards.info, Node: Doc Strings and Manuals, Next: Manual Structure Details, Prev: GNU Manuals, Up: Documentation
+
+6.2 Doc Strings and Manuals
+===========================
+
+Some programming systems, such as Emacs, provide a documentation string
+for each function, command or variable. You may be tempted to write a
+reference manual by compiling the documentation strings and writing a
+little additional text to go around them--but you must not do it. That
+approach is a fundamental mistake. The text of well-written
+documentation strings will be entirely wrong for a manual.
+
+ A documentation string needs to stand alone--when it appears on the
+screen, there will be no other text to introduce or explain it.
+Meanwhile, it can be rather informal in style.
+
+ The text describing a function or variable in a manual must not stand
+alone; it appears in the context of a section or subsection. Other text
+at the beginning of the section should explain some of the concepts, and
+should often make some general points that apply to several functions or
+variables. The previous descriptions of functions and variables in the
+section will also have given information about the topic. A description
+written to stand alone would repeat some of that information; this
+redundancy looks bad. Meanwhile, the informality that is acceptable in
+a documentation string is totally unacceptable in a manual.
+
+ The only good way to use documentation strings in writing a good
+manual is to use them as a source of information for writing good text.
+
+
+File: standards.info, Node: Manual Structure Details, Next: License for Manuals, Prev: Doc Strings and Manuals, Up: Documentation
+
+6.3 Manual Structure Details
+============================
+
+The title page of the manual should state the version of the programs or
+packages documented in the manual. The Top node of the manual should
+also contain this information. If the manual is changing more
+frequently than or independent of the program, also state a version
+number for the manual in both of these places.
+
+ Each program documented in the manual should have a node named
+`PROGRAM Invocation' or `Invoking PROGRAM'. This node (together with
+its subnodes, if any) should describe the program's command line
+arguments and how to run it (the sort of information people would look
+for in a man page). Start with an `@example' containing a template for
+all the options and arguments that the program uses.
+
+ Alternatively, put a menu item in some menu whose item name fits one
+of the above patterns. This identifies the node which that item points
+to as the node for this purpose, regardless of the node's actual name.
+
+ The `--usage' feature of the Info reader looks for such a node or
+menu item in order to find the relevant text, so it is essential for
+every Texinfo file to have one.
+
+ If one manual describes several programs, it should have such a node
+for each program described in the manual.
+
+
+File: standards.info, Node: License for Manuals, Next: Manual Credits, Prev: Manual Structure Details, Up: Documentation
+
+6.4 License for Manuals
+=======================
+
+Please use the GNU Free Documentation License for all GNU manuals that
+are more than a few pages long. Likewise for a collection of short
+documents--you only need one copy of the GNU FDL for the whole
+collection. For a single short document, you can use a very permissive
+non-copyleft license, to avoid taking up space with a long license.
+
+ See `http://www.gnu.org/copyleft/fdl-howto.html' for more explanation
+of how to employ the GFDL.
+
+ Note that it is not obligatory to include a copy of the GNU GPL or
+GNU LGPL in a manual whose license is neither the GPL nor the LGPL. It
+can be a good idea to include the program's license in a large manual;
+in a short manual, whose size would be increased considerably by
+including the program's license, it is probably better not to include
+it.
+
+
+File: standards.info, Node: Manual Credits, Next: Printed Manuals, Prev: License for Manuals, Up: Documentation
+
+6.5 Manual Credits
+==================
+
+Please credit the principal human writers of the manual as the authors,
+on the title page of the manual. If a company sponsored the work, thank
+the company in a suitable place in the manual, but do not cite the
+company as an author.
+
+
+File: standards.info, Node: Printed Manuals, Next: NEWS File, Prev: Manual Credits, Up: Documentation
+
+6.6 Printed Manuals
+===================
+
+The FSF publishes some GNU manuals in printed form. To encourage sales
+of these manuals, the on-line versions of the manual should mention at
+the very start that the printed manual is available and should point at
+information for getting it--for instance, with a link to the page
+`http://www.gnu.org/order/order.html'. This should not be included in
+the printed manual, though, because there it is redundant.
+
+ It is also useful to explain in the on-line forms of the manual how
+the user can print out the manual from the sources.
+
+
+File: standards.info, Node: NEWS File, Next: Change Logs, Prev: Printed Manuals, Up: Documentation
+
+6.7 The NEWS File
+=================
+
+In addition to its manual, the package should have a file named `NEWS'
+which contains a list of user-visible changes worth mentioning. In
+each new release, add items to the front of the file and identify the
+version they pertain to. Don't discard old items; leave them in the
+file after the newer items. This way, a user upgrading from any
+previous version can see what is new.
+
+ If the `NEWS' file gets very long, move some of the older items into
+a file named `ONEWS' and put a note at the end referring the user to
+that file.
+
+
+File: standards.info, Node: Change Logs, Next: Man Pages, Prev: NEWS File, Up: Documentation
+
+6.8 Change Logs
+===============
+
+Keep a change log to describe all the changes made to program source
+files. The purpose of this is so that people investigating bugs in the
+future will know about the changes that might have introduced the bug.
+Often a new bug can be found by looking at what was recently changed.
+More importantly, change logs can help you eliminate conceptual
+inconsistencies between different parts of a program, by giving you a
+history of how the conflicting concepts arose and who they came from.
+
+* Menu:
+
+* Change Log Concepts::
+* Style of Change Logs::
+* Simple Changes::
+* Conditional Changes::
+* Indicating the Part Changed::
+
+
+File: standards.info, Node: Change Log Concepts, Next: Style of Change Logs, Up: Change Logs
+
+6.8.1 Change Log Concepts
+-------------------------
+
+You can think of the change log as a conceptual "undo list" which
+explains how earlier versions were different from the current version.
+People can see the current version; they don't need the change log to
+tell them what is in it. What they want from a change log is a clear
+explanation of how the earlier version differed.
+
+ The change log file is normally called `ChangeLog' and covers an
+entire directory. Each directory can have its own change log, or a
+directory can use the change log of its parent directory--it's up to
+you.
+
+ Another alternative is to record change log information with a
+version control system such as RCS or CVS. This can be converted
+automatically to a `ChangeLog' file using `rcs2log'; in Emacs, the
+command `C-x v a' (`vc-update-change-log') does the job.
+
+ There's no need to describe the full purpose of the changes or how
+they work together. However, sometimes it is useful to write one line
+to describe the overall purpose of a change or a batch of changes. If
+you think that a change calls for explanation, you're probably right.
+Please do explain it--but please put the full explanation in comments
+in the code, where people will see it whenever they see the code. For
+example, "New function" is enough for the change log when you add a
+function, because there should be a comment before the function
+definition to explain what it does.
+
+ In the past, we recommended not mentioning changes in non-software
+files (manuals, help files, etc.) in change logs. However, we've been
+advised that it is a good idea to include them, for the sake of
+copyright records.
+
+ The easiest way to add an entry to `ChangeLog' is with the Emacs
+command `M-x add-change-log-entry'. An entry should have an asterisk,
+the name of the changed file, and then in parentheses the name of the
+changed functions, variables or whatever, followed by a colon. Then
+describe the changes you made to that function or variable.
+
+
+File: standards.info, Node: Style of Change Logs, Next: Simple Changes, Prev: Change Log Concepts, Up: Change Logs
+
+6.8.2 Style of Change Logs
+--------------------------
+
+Here are some simple examples of change log entries, starting with the
+header line that says who made the change and when it was installed,
+followed by descriptions of specific changes. (These examples are
+drawn from Emacs and GCC.)
+
+ 1998-08-17 Richard Stallman <rms@gnu.org>
+
+ * register.el (insert-register): Return nil.
+ (jump-to-register): Likewise.
+
+ * sort.el (sort-subr): Return nil.
+
+ * tex-mode.el (tex-bibtex-file, tex-file, tex-region):
+ Restart the tex shell if process is gone or stopped.
+ (tex-shell-running): New function.
+
+ * expr.c (store_one_arg): Round size up for move_block_to_reg.
+ (expand_call): Round up when emitting USE insns.
+ * stmt.c (assign_parms): Round size up for move_block_from_reg.
+
+ It's important to name the changed function or variable in full.
+Don't abbreviate function or variable names, and don't combine them.
+Subsequent maintainers will often search for a function name to find all
+the change log entries that pertain to it; if you abbreviate the name,
+they won't find it when they search.
+
+ For example, some people are tempted to abbreviate groups of function
+names by writing `* register.el ({insert,jump-to}-register)'; this is
+not a good idea, since searching for `jump-to-register' or
+`insert-register' would not find that entry.
+
+ Separate unrelated change log entries with blank lines. When two
+entries represent parts of the same change, so that they work together,
+then don't put blank lines between them. Then you can omit the file
+name and the asterisk when successive entries are in the same file.
+
+ Break long lists of function names by closing continued lines with
+`)', rather than `,', and opening the continuation with `(' as in this
+example:
+
+ * keyboard.c (menu_bar_items, tool_bar_items)
+ (Fexecute_extended_command): Deal with `keymap' property.
+
+ When you install someone else's changes, put the contributor's name
+in the change log entry rather than in the text of the entry. In other
+words, write this:
+
+ 2002-07-14 John Doe <jdoe@gnu.org>
+
+ * sewing.c: Make it sew.
+
+rather than this:
+
+ 2002-07-14 Usual Maintainer <usual@gnu.org>
+
+ * sewing.c: Make it sew. Patch by jdoe@gnu.org.
+
+ As for the date, that should be the date you applied the change.
+
+
+File: standards.info, Node: Simple Changes, Next: Conditional Changes, Prev: Style of Change Logs, Up: Change Logs
+
+6.8.3 Simple Changes
+--------------------
+
+Certain simple kinds of changes don't need much detail in the change
+log.
+
+ When you change the calling sequence of a function in a simple
+fashion, and you change all the callers of the function to use the new
+calling sequence, there is no need to make individual entries for all
+the callers that you changed. Just write in the entry for the function
+being called, "All callers changed"--like this:
+
+ * keyboard.c (Fcommand_execute): New arg SPECIAL.
+ All callers changed.
+
+ When you change just comments or doc strings, it is enough to write
+an entry for the file, without mentioning the functions. Just "Doc
+fixes" is enough for the change log.
+
+ There's no technical need to make change log entries for
+documentation files. This is because documentation is not susceptible
+to bugs that are hard to fix. Documentation does not consist of parts
+that must interact in a precisely engineered fashion. To correct an
+error, you need not know the history of the erroneous passage; it is
+enough to compare what the documentation says with the way the program
+actually works.
+
+ However, you should keep change logs for documentation files when the
+project gets copyright assignments from its contributors, so as to make
+the records of authorship more accurate.
+
+
+File: standards.info, Node: Conditional Changes, Next: Indicating the Part Changed, Prev: Simple Changes, Up: Change Logs
+
+6.8.4 Conditional Changes
+-------------------------
+
+C programs often contain compile-time `#if' conditionals. Many changes
+are conditional; sometimes you add a new definition which is entirely
+contained in a conditional. It is very useful to indicate in the
+change log the conditions for which the change applies.
+
+ Our convention for indicating conditional changes is to use square
+brackets around the name of the condition.
+
+ Here is a simple example, describing a change which is conditional
+but does not have a function or entity name associated with it:
+
+ * xterm.c [SOLARIS2]: Include string.h.
+
+ Here is an entry describing a new definition which is entirely
+conditional. This new definition for the macro `FRAME_WINDOW_P' is
+used only when `HAVE_X_WINDOWS' is defined:
+
+ * frame.h [HAVE_X_WINDOWS] (FRAME_WINDOW_P): Macro defined.
+
+ Here is an entry for a change within the function `init_display',
+whose definition as a whole is unconditional, but the changes themselves
+are contained in a `#ifdef HAVE_LIBNCURSES' conditional:
+
+ * dispnew.c (init_display) [HAVE_LIBNCURSES]: If X, call tgetent.
+
+ Here is an entry for a change that takes affect only when a certain
+macro is _not_ defined:
+
+ (gethostname) [!HAVE_SOCKETS]: Replace with winsock version.
+
+
+File: standards.info, Node: Indicating the Part Changed, Prev: Conditional Changes, Up: Change Logs
+
+6.8.5 Indicating the Part Changed
+---------------------------------
+
+Indicate the part of a function which changed by using angle brackets
+enclosing an indication of what the changed part does. Here is an entry
+for a change in the part of the function `sh-while-getopts' that deals
+with `sh' commands:
+
+ * progmodes/sh-script.el (sh-while-getopts) <sh>: Handle case that
+ user-specified option string is empty.
+
+
+File: standards.info, Node: Man Pages, Next: Reading other Manuals, Prev: Change Logs, Up: Documentation
+
+6.9 Man Pages
+=============
+
+In the GNU project, man pages are secondary. It is not necessary or
+expected for every GNU program to have a man page, but some of them do.
+It's your choice whether to include a man page in your program.
+
+ When you make this decision, consider that supporting a man page
+requires continual effort each time the program is changed. The time
+you spend on the man page is time taken away from more useful work.
+
+ For a simple program which changes little, updating the man page may
+be a small job. Then there is little reason not to include a man page,
+if you have one.
+
+ For a large program that changes a great deal, updating a man page
+may be a substantial burden. If a user offers to donate a man page,
+you may find this gift costly to accept. It may be better to refuse
+the man page unless the same person agrees to take full responsibility
+for maintaining it--so that you can wash your hands of it entirely. If
+this volunteer later ceases to do the job, then don't feel obliged to
+pick it up yourself; it may be better to withdraw the man page from the
+distribution until someone else agrees to update it.
+
+ When a program changes only a little, you may feel that the
+discrepancies are small enough that the man page remains useful without
+updating. If so, put a prominent note near the beginning of the man
+page explaining that you don't maintain it and that the Texinfo manual
+is more authoritative. The note should say how to access the Texinfo
+documentation.
+
+ Be sure that man pages include a copyright statement and free
+license. The simple all-permissive license is appropriate for simple
+man pages (*note License Notices for Other Files: (maintain)License
+Notices for Other Files.).
+
+ For long man pages, with enough explanation and documentation that
+they can be considered true manuals, use the GFDL (*note License for
+Manuals::).
+
+ Finally, the GNU help2man program
+(`http://www.gnu.org/software/help2man/') is one way to automate
+generation of a man page, in this case from `--help' output. This is
+sufficient in many cases.
+
+
+File: standards.info, Node: Reading other Manuals, Prev: Man Pages, Up: Documentation
+
+6.10 Reading other Manuals
+==========================
+
+There may be non-free books or documentation files that describe the
+program you are documenting.
+
+ It is ok to use these documents for reference, just as the author of
+a new algebra textbook can read other books on algebra. A large portion
+of any non-fiction book consists of facts, in this case facts about how
+a certain program works, and these facts are necessarily the same for
+everyone who writes about the subject. But be careful not to copy your
+outline structure, wording, tables or examples from preexisting non-free
+documentation. Copying from free documentation may be ok; please check
+with the FSF about the individual case.
+
+
+File: standards.info, Node: Managing Releases, Next: References, Prev: Documentation, Up: Top
+
+7 The Release Process
+*********************
+
+Making a release is more than just bundling up your source files in a
+tar file and putting it up for FTP. You should set up your software so
+that it can be configured to run on a variety of systems. Your Makefile
+should conform to the GNU standards described below, and your directory
+layout should also conform to the standards discussed below. Doing so
+makes it easy to include your package into the larger framework of all
+GNU software.
+
+* Menu:
+
+* Configuration:: How configuration of GNU packages should work.
+* Makefile Conventions:: Makefile conventions.
+* Releases:: Making releases
+
+
+File: standards.info, Node: Configuration, Next: Makefile Conventions, Up: Managing Releases
+
+7.1 How Configuration Should Work
+=================================
+
+Each GNU distribution should come with a shell script named
+`configure'. This script is given arguments which describe the kind of
+machine and system you want to compile the program for. The
+`configure' script must record the configuration options so that they
+affect compilation.
+
+ The description here is the specification of the interface for the
+`configure' script in GNU packages. Many packages implement it using
+GNU Autoconf (*note Introduction: (autoconf)Top.) and/or GNU Automake
+(*note Introduction: (automake)Top.), but you do not have to use these
+tools. You can implement it any way you like; for instance, by making
+`configure' be a wrapper around a completely different configuration
+system.
+
+ Another way for the `configure' script to operate is to make a link
+from a standard name such as `config.h' to the proper configuration
+file for the chosen system. If you use this technique, the
+distribution should _not_ contain a file named `config.h'. This is so
+that people won't be able to build the program without configuring it
+first.
+
+ Another thing that `configure' can do is to edit the Makefile. If
+you do this, the distribution should _not_ contain a file named
+`Makefile'. Instead, it should include a file `Makefile.in' which
+contains the input used for editing. Once again, this is so that people
+won't be able to build the program without configuring it first.
+
+ If `configure' does write the `Makefile', then `Makefile' should
+have a target named `Makefile' which causes `configure' to be rerun,
+setting up the same configuration that was set up last time. The files
+that `configure' reads should be listed as dependencies of `Makefile'.
+
+ All the files which are output from the `configure' script should
+have comments at the beginning explaining that they were generated
+automatically using `configure'. This is so that users won't think of
+trying to edit them by hand.
+
+ The `configure' script should write a file named `config.status'
+which describes which configuration options were specified when the
+program was last configured. This file should be a shell script which,
+if run, will recreate the same configuration.
+
+ The `configure' script should accept an option of the form
+`--srcdir=DIRNAME' to specify the directory where sources are found (if
+it is not the current directory). This makes it possible to build the
+program in a separate directory, so that the actual source directory is
+not modified.
+
+ If the user does not specify `--srcdir', then `configure' should
+check both `.' and `..' to see if it can find the sources. If it finds
+the sources in one of these places, it should use them from there.
+Otherwise, it should report that it cannot find the sources, and should
+exit with nonzero status.
+
+ Usually the easy way to support `--srcdir' is by editing a
+definition of `VPATH' into the Makefile. Some rules may need to refer
+explicitly to the specified source directory. To make this possible,
+`configure' can add to the Makefile a variable named `srcdir' whose
+value is precisely the specified directory.
+
+ In addition, the `configure' script should take options
+corresponding to most of the standard directory variables (*note
+Directory Variables::). Here is the list:
+
+ --prefix --exec-prefix --bindir --sbindir --libexecdir --sysconfdir
+ --sharedstatedir --localstatedir --libdir --includedir --oldincludedir
+ --datarootdir --datadir --infodir --localedir --mandir --docdir
+ --htmldir --dvidir --pdfdir --psdir
+
+ The `configure' script should also take an argument which specifies
+the type of system to build the program for. This argument should look
+like this:
+
+ CPU-COMPANY-SYSTEM
+
+ For example, an Athlon-based GNU/Linux system might be
+`i686-pc-linux-gnu'.
+
+ The `configure' script needs to be able to decode all plausible
+alternatives for how to describe a machine. Thus,
+`athlon-pc-gnu/linux' would be a valid alias. There is a shell script
+called `config.sub'
+(http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD)
+that you can use as a subroutine to validate system types and
+canonicalize aliases.
+
+ The `configure' script should also take the option
+`--build=BUILDTYPE', which should be equivalent to a plain BUILDTYPE
+argument. For example, `configure --build=i686-pc-linux-gnu' is
+equivalent to `configure i686-pc-linux-gnu'. When the build type is
+not specified by an option or argument, the `configure' script should
+normally guess it using the shell script `config.guess'
+(http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD).
+
+ Other options are permitted to specify in more detail the software
+or hardware present on the machine, to include or exclude optional parts
+of the package, or to adjust the name of some tools or arguments to
+them:
+
+`--enable-FEATURE[=PARAMETER]'
+ Configure the package to build and install an optional user-level
+ facility called FEATURE. This allows users to choose which
+ optional features to include. Giving an optional PARAMETER of
+ `no' should omit FEATURE, if it is built by default.
+
+ No `--enable' option should *ever* cause one feature to replace
+ another. No `--enable' option should ever substitute one useful
+ behavior for another useful behavior. The only proper use for
+ `--enable' is for questions of whether to build part of the program
+ or exclude it.
+
+`--with-PACKAGE'
+ The package PACKAGE will be installed, so configure this package
+ to work with PACKAGE.
+
+ Possible values of PACKAGE include `gnu-as' (or `gas'), `gnu-ld',
+ `gnu-libc', `gdb', `x', and `x-toolkit'.
+
+ Do not use a `--with' option to specify the file name to use to
+ find certain files. That is outside the scope of what `--with'
+ options are for.
+
+`VARIABLE=VALUE'
+ Set the value of the variable VARIABLE to VALUE. This is used to
+ override the default values of commands or arguments in the build
+ process. For example, the user could issue `configure CFLAGS=-g
+ CXXFLAGS=-g' to build with debugging information and without the
+ default optimization.
+
+ Specifying variables as arguments to `configure', like this:
+ ./configure CC=gcc
+ is preferable to setting them in environment variables:
+ CC=gcc ./configure
+ as it helps to recreate the same configuration later with
+ `config.status'. However, both methods should be supported.
+
+ All `configure' scripts should accept all of the "detail" options
+and the variable settings, whether or not they make any difference to
+the particular package at hand. In particular, they should accept any
+option that starts with `--with-' or `--enable-'. This is so users
+will be able to configure an entire GNU source tree at once with a
+single set of options.
+
+ You will note that the categories `--with-' and `--enable-' are
+narrow: they *do not* provide a place for any sort of option you might
+think of. That is deliberate. We want to limit the possible
+configuration options in GNU software. We do not want GNU programs to
+have idiosyncratic configuration options.
+
+ Packages that perform part of the compilation process may support
+cross-compilation. In such a case, the host and target machines for the
+program may be different.
+
+ The `configure' script should normally treat the specified type of
+system as both the host and the target, thus producing a program which
+works for the same type of machine that it runs on.
+
+ To compile a program to run on a host type that differs from the
+build type, use the configure option `--host=HOSTTYPE', where HOSTTYPE
+uses the same syntax as BUILDTYPE. The host type normally defaults to
+the build type.
+
+ To configure a cross-compiler, cross-assembler, or what have you, you
+should specify a target different from the host, using the configure
+option `--target=TARGETTYPE'. The syntax for TARGETTYPE is the same as
+for the host type. So the command would look like this:
+
+ ./configure --host=HOSTTYPE --target=TARGETTYPE
+
+ The target type normally defaults to the host type. Programs for
+which cross-operation is not meaningful need not accept the `--target'
+option, because configuring an entire operating system for
+cross-operation is not a meaningful operation.
+
+ Some programs have ways of configuring themselves automatically. If
+your program is set up to do this, your `configure' script can simply
+ignore most of its arguments.
+
+
+File: standards.info, Node: Makefile Conventions, Next: Releases, Prev: Configuration, Up: Managing Releases
+
+7.2 Makefile Conventions
+========================
+
+This node describes conventions for writing the Makefiles for GNU
+programs. Using Automake will help you write a Makefile that follows
+these conventions.
+
+* Menu:
+
+* Makefile Basics:: General conventions for Makefiles.
+* Utilities in Makefiles:: Utilities to be used in Makefiles.
+* Command Variables:: Variables for specifying commands.
+* DESTDIR:: Supporting staged installs.
+* Directory Variables:: Variables for installation directories.
+* Standard Targets:: Standard targets for users.
+* Install Command Categories:: Three categories of commands in the `install'
+ rule: normal, pre-install and post-install.
+
+
+File: standards.info, Node: Makefile Basics, Next: Utilities in Makefiles, Up: Makefile Conventions
+
+7.2.1 General Conventions for Makefiles
+---------------------------------------
+
+Every Makefile should contain this line:
+
+ SHELL = /bin/sh
+
+to avoid trouble on systems where the `SHELL' variable might be
+inherited from the environment. (This is never a problem with GNU
+`make'.)
+
+ Different `make' programs have incompatible suffix lists and
+implicit rules, and this sometimes creates confusion or misbehavior. So
+it is a good idea to set the suffix list explicitly using only the
+suffixes you need in the particular Makefile, like this:
+
+ .SUFFIXES:
+ .SUFFIXES: .c .o
+
+The first line clears out the suffix list, the second introduces all
+suffixes which may be subject to implicit rules in this Makefile.
+
+ Don't assume that `.' is in the path for command execution. When
+you need to run programs that are a part of your package during the
+make, please make sure that it uses `./' if the program is built as
+part of the make or `$(srcdir)/' if the file is an unchanging part of
+the source code. Without one of these prefixes, the current search
+path is used.
+
+ The distinction between `./' (the "build directory") and
+`$(srcdir)/' (the "source directory") is important because users can
+build in a separate directory using the `--srcdir' option to
+`configure'. A rule of the form:
+
+ foo.1 : foo.man sedscript
+ sed -e sedscript foo.man > foo.1
+
+will fail when the build directory is not the source directory, because
+`foo.man' and `sedscript' are in the source directory.
+
+ When using GNU `make', relying on `VPATH' to find the source file
+will work in the case where there is a single dependency file, since
+the `make' automatic variable `$<' will represent the source file
+wherever it is. (Many versions of `make' set `$<' only in implicit
+rules.) A Makefile target like
+
+ foo.o : bar.c
+ $(CC) -I. -I$(srcdir) $(CFLAGS) -c bar.c -o foo.o
+
+should instead be written as
+
+ foo.o : bar.c
+ $(CC) -I. -I$(srcdir) $(CFLAGS) -c $< -o $@
+
+in order to allow `VPATH' to work correctly. When the target has
+multiple dependencies, using an explicit `$(srcdir)' is the easiest way
+to make the rule work well. For example, the target above for `foo.1'
+is best written as:
+
+ foo.1 : foo.man sedscript
+ sed -e $(srcdir)/sedscript $(srcdir)/foo.man > $@
+
+ GNU distributions usually contain some files which are not source
+files--for example, Info files, and the output from Autoconf, Automake,
+Bison or Flex. Since these files normally appear in the source
+directory, they should always appear in the source directory, not in the
+build directory. So Makefile rules to update them should put the
+updated files in the source directory.
+
+ However, if a file does not appear in the distribution, then the
+Makefile should not put it in the source directory, because building a
+program in ordinary circumstances should not modify the source directory
+in any way.
+
+ Try to make the build and installation targets, at least (and all
+their subtargets) work correctly with a parallel `make'.
+
+
+File: standards.info, Node: Utilities in Makefiles, Next: Command Variables, Prev: Makefile Basics, Up: Makefile Conventions
+
+7.2.2 Utilities in Makefiles
+----------------------------
+
+Write the Makefile commands (and any shell scripts, such as
+`configure') to run in `sh', not in `csh'. Don't use any special
+features of `ksh' or `bash'.
+
+ The `configure' script and the Makefile rules for building and
+installation should not use any utilities directly except these:
+
+ cat cmp cp diff echo egrep expr false grep install-info
+ ln ls mkdir mv pwd rm rmdir sed sleep sort tar test touch true
+
+ The compression program `gzip' can be used in the `dist' rule.
+
+ Stick to the generally supported options for these programs. For
+example, don't use `mkdir -p', convenient as it may be, because most
+systems don't support it.
+
+ It is a good idea to avoid creating symbolic links in makefiles,
+since a few systems don't support them.
+
+ The Makefile rules for building and installation can also use
+compilers and related programs, but should do so via `make' variables
+so that the user can substitute alternatives. Here are some of the
+programs we mean:
+
+ ar bison cc flex install ld ldconfig lex
+ make makeinfo ranlib texi2dvi yacc
+
+ Use the following `make' variables to run those programs:
+
+ $(AR) $(BISON) $(CC) $(FLEX) $(INSTALL) $(LD) $(LDCONFIG) $(LEX)
+ $(MAKE) $(MAKEINFO) $(RANLIB) $(TEXI2DVI) $(YACC)
+
+ When you use `ranlib' or `ldconfig', you should make sure nothing
+bad happens if the system does not have the program in question.
+Arrange to ignore an error from that command, and print a message before
+the command to tell the user that failure of this command does not mean
+a problem. (The Autoconf `AC_PROG_RANLIB' macro can help with this.)
+
+ If you use symbolic links, you should implement a fallback for
+systems that don't have symbolic links.
+
+ Additional utilities that can be used via Make variables are:
+
+ chgrp chmod chown mknod
+
+ It is ok to use other utilities in Makefile portions (or scripts)
+intended only for particular systems where you know those utilities
+exist.
+
+
+File: standards.info, Node: Command Variables, Next: DESTDIR, Prev: Utilities in Makefiles, Up: Makefile Conventions
+
+7.2.3 Variables for Specifying Commands
+---------------------------------------
+
+Makefiles should provide variables for overriding certain commands,
+options, and so on.
+
+ In particular, you should run most utility programs via variables.
+Thus, if you use Bison, have a variable named `BISON' whose default
+value is set with `BISON = bison', and refer to it with `$(BISON)'
+whenever you need to use Bison.
+
+ File management utilities such as `ln', `rm', `mv', and so on, need
+not be referred to through variables in this way, since users don't
+need to replace them with other programs.
+
+ Each program-name variable should come with an options variable that
+is used to supply options to the program. Append `FLAGS' to the
+program-name variable name to get the options variable name--for
+example, `BISONFLAGS'. (The names `CFLAGS' for the C compiler,
+`YFLAGS' for yacc, and `LFLAGS' for lex, are exceptions to this rule,
+but we keep them because they are standard.) Use `CPPFLAGS' in any
+compilation command that runs the preprocessor, and use `LDFLAGS' in
+any compilation command that does linking as well as in any direct use
+of `ld'.
+
+ If there are C compiler options that _must_ be used for proper
+compilation of certain files, do not include them in `CFLAGS'. Users
+expect to be able to specify `CFLAGS' freely themselves. Instead,
+arrange to pass the necessary options to the C compiler independently
+of `CFLAGS', by writing them explicitly in the compilation commands or
+by defining an implicit rule, like this:
+
+ CFLAGS = -g
+ ALL_CFLAGS = -I. $(CFLAGS)
+ .c.o:
+ $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
+
+ Do include the `-g' option in `CFLAGS', because that is not
+_required_ for proper compilation. You can consider it a default that
+is only recommended. If the package is set up so that it is compiled
+with GCC by default, then you might as well include `-O' in the default
+value of `CFLAGS' as well.
+
+ Put `CFLAGS' last in the compilation command, after other variables
+containing compiler options, so the user can use `CFLAGS' to override
+the others.
+
+ `CFLAGS' should be used in every invocation of the C compiler, both
+those which do compilation and those which do linking.
+
+ Every Makefile should define the variable `INSTALL', which is the
+basic command for installing a file into the system.
+
+ Every Makefile should also define the variables `INSTALL_PROGRAM'
+and `INSTALL_DATA'. (The default for `INSTALL_PROGRAM' should be
+`$(INSTALL)'; the default for `INSTALL_DATA' should be `${INSTALL} -m
+644'.) Then it should use those variables as the commands for actual
+installation, for executables and non-executables respectively.
+Minimal use of these variables is as follows:
+
+ $(INSTALL_PROGRAM) foo $(bindir)/foo
+ $(INSTALL_DATA) libfoo.a $(libdir)/libfoo.a
+
+ However, it is preferable to support a `DESTDIR' prefix on the
+target files, as explained in the next section.
+
+Always use a file name, not a directory name, as the second argument of
+the installation commands. Use a separate command for each file to be
+installed.
+
+
+File: standards.info, Node: DESTDIR, Next: Directory Variables, Prev: Command Variables, Up: Makefile Conventions
+
+7.2.4 `DESTDIR': support for staged installs
+--------------------------------------------
+
+`DESTDIR' is a variable prepended to each installed target file, like
+this:
+
+ $(INSTALL_PROGRAM) foo $(DESTDIR)$(bindir)/foo
+ $(INSTALL_DATA) libfoo.a $(DESTDIR)$(libdir)/libfoo.a
+
+ The `DESTDIR' variable is specified by the user on the `make'
+command line. For example:
+
+ make DESTDIR=/tmp/stage install
+
+`DESTDIR' should be supported only in the `install*' and `uninstall*'
+targets, as those are the only targets where it is useful.
+
+ If your installation step would normally install
+`/usr/local/bin/foo' and `/usr/local/lib/libfoo.a', then an
+installation invoked as in the example above would install
+`/tmp/stage/usr/local/bin/foo' and `/tmp/stage/usr/local/lib/libfoo.a'
+instead.
+
+ Prepending the variable `DESTDIR' to each target in this way
+provides for "staged installs", where the installed files are not
+placed directly into their expected location but are instead copied
+into a temporary location (`DESTDIR'). However, installed files
+maintain their relative directory structure and any embedded file names
+will not be modified.
+
+ You should not set the value of `DESTDIR' in your `Makefile' at all;
+then the files are installed into their expected locations by default.
+Also, specifying `DESTDIR' should not change the operation of the
+software in any way, so its value should not be included in any file
+contents.
+
+ `DESTDIR' support is commonly used in package creation. It is also
+helpful to users who want to understand what a given package will
+install where, and to allow users who don't normally have permissions
+to install into protected areas to build and install before gaining
+those permissions. Finally, it can be useful with tools such as
+`stow', where code is installed in one place but made to appear to be
+installed somewhere else using symbolic links or special mount
+operations. So, we strongly recommend GNU packages support `DESTDIR',
+though it is not an absolute requirement.
+
+
+File: standards.info, Node: Directory Variables, Next: Standard Targets, Prev: DESTDIR, Up: Makefile Conventions
+
+7.2.5 Variables for Installation Directories
+--------------------------------------------
+
+Installation directories should always be named by variables, so it is
+easy to install in a nonstandard place. The standard names for these
+variables and the values they should have in GNU packages are described
+below. They are based on a standard file system layout; variants of it
+are used in GNU/Linux and other modern operating systems.
+
+ Installers are expected to override these values when calling `make'
+(e.g., `make prefix=/usr install' or `configure' (e.g., `configure
+--prefix=/usr'). GNU packages should not try to guess which value
+should be appropriate for these variables on the system they are being
+installed onto: use the default settings specified here so that all GNU
+packages behave identically, allowing the installer to achieve any
+desired layout.
+
+ These first two variables set the root for the installation. All the
+other installation directories should be subdirectories of one of these
+two, and nothing should be directly installed into these two
+directories.
+
+`prefix'
+ A prefix used in constructing the default values of the variables
+ listed below. The default value of `prefix' should be
+ `/usr/local'. When building the complete GNU system, the prefix
+ will be empty and `/usr' will be a symbolic link to `/'. (If you
+ are using Autoconf, write it as `@prefix@'.)
+
+ Running `make install' with a different value of `prefix' from the
+ one used to build the program should _not_ recompile the program.
+
+`exec_prefix'
+ A prefix used in constructing the default values of some of the
+ variables listed below. The default value of `exec_prefix' should
+ be `$(prefix)'. (If you are using Autoconf, write it as
+ `@exec_prefix@'.)
+
+ Generally, `$(exec_prefix)' is used for directories that contain
+ machine-specific files (such as executables and subroutine
+ libraries), while `$(prefix)' is used directly for other
+ directories.
+
+ Running `make install' with a different value of `exec_prefix'
+ from the one used to build the program should _not_ recompile the
+ program.
+
+ Executable programs are installed in one of the following
+directories.
+
+`bindir'
+ The directory for installing executable programs that users can
+ run. This should normally be `/usr/local/bin', but write it as
+ `$(exec_prefix)/bin'. (If you are using Autoconf, write it as
+ `@bindir@'.)
+
+`sbindir'
+ The directory for installing executable programs that can be run
+ from the shell, but are only generally useful to system
+ administrators. This should normally be `/usr/local/sbin', but
+ write it as `$(exec_prefix)/sbin'. (If you are using Autoconf,
+ write it as `@sbindir@'.)
+
+`libexecdir'
+ The directory for installing executable programs to be run by other
+ programs rather than by users. This directory should normally be
+ `/usr/local/libexec', but write it as `$(exec_prefix)/libexec'.
+ (If you are using Autoconf, write it as `@libexecdir@'.)
+
+ The definition of `libexecdir' is the same for all packages, so
+ you should install your data in a subdirectory thereof. Most
+ packages install their data under `$(libexecdir)/PACKAGE-NAME/',
+ possibly within additional subdirectories thereof, such as
+ `$(libexecdir)/PACKAGE-NAME/MACHINE/VERSION'.
+
+ Data files used by the program during its execution are divided into
+categories in two ways.
+
+ * Some files are normally modified by programs; others are never
+ normally modified (though users may edit some of these).
+
+ * Some files are architecture-independent and can be shared by all
+ machines at a site; some are architecture-dependent and can be
+ shared only by machines of the same kind and operating system;
+ others may never be shared between two machines.
+
+ This makes for six different possibilities. However, we want to
+discourage the use of architecture-dependent files, aside from object
+files and libraries. It is much cleaner to make other data files
+architecture-independent, and it is generally not hard.
+
+ Here are the variables Makefiles should use to specify directories
+to put these various kinds of files in:
+
+`datarootdir'
+ The root of the directory tree for read-only
+ architecture-independent data files. This should normally be
+ `/usr/local/share', but write it as `$(prefix)/share'. (If you
+ are using Autoconf, write it as `@datarootdir@'.) `datadir''s
+ default value is based on this variable; so are `infodir',
+ `mandir', and others.
+
+`datadir'
+ The directory for installing idiosyncratic read-only
+ architecture-independent data files for this program. This is
+ usually the same place as `datarootdir', but we use the two
+ separate variables so that you can move these program-specific
+ files without altering the location for Info files, man pages, etc.
+
+ This should normally be `/usr/local/share', but write it as
+ `$(datarootdir)'. (If you are using Autoconf, write it as
+ `@datadir@'.)
+
+ The definition of `datadir' is the same for all packages, so you
+ should install your data in a subdirectory thereof. Most packages
+ install their data under `$(datadir)/PACKAGE-NAME/'.
+
+`sysconfdir'
+ The directory for installing read-only data files that pertain to a
+ single machine-that is to say, files for configuring a host.
+ Mailer and network configuration files, `/etc/passwd', and so
+ forth belong here. All the files in this directory should be
+ ordinary ASCII text files. This directory should normally be
+ `/usr/local/etc', but write it as `$(prefix)/etc'. (If you are
+ using Autoconf, write it as `@sysconfdir@'.)
+
+ Do not install executables here in this directory (they probably
+ belong in `$(libexecdir)' or `$(sbindir)'). Also do not install
+ files that are modified in the normal course of their use (programs
+ whose purpose is to change the configuration of the system
+ excluded). Those probably belong in `$(localstatedir)'.
+
+`sharedstatedir'
+ The directory for installing architecture-independent data files
+ which the programs modify while they run. This should normally be
+ `/usr/local/com', but write it as `$(prefix)/com'. (If you are
+ using Autoconf, write it as `@sharedstatedir@'.)
+
+`localstatedir'
+ The directory for installing data files which the programs modify
+ while they run, and that pertain to one specific machine. Users
+ should never need to modify files in this directory to configure
+ the package's operation; put such configuration information in
+ separate files that go in `$(datadir)' or `$(sysconfdir)'.
+ `$(localstatedir)' should normally be `/usr/local/var', but write
+ it as `$(prefix)/var'. (If you are using Autoconf, write it as
+ `@localstatedir@'.)
+
+ These variables specify the directory for installing certain specific
+types of files, if your program has them. Every GNU package should
+have Info files, so every program needs `infodir', but not all need
+`libdir' or `lispdir'.
+
+`includedir'
+ The directory for installing header files to be included by user
+ programs with the C `#include' preprocessor directive. This
+ should normally be `/usr/local/include', but write it as
+ `$(prefix)/include'. (If you are using Autoconf, write it as
+ `@includedir@'.)
+
+ Most compilers other than GCC do not look for header files in
+ directory `/usr/local/include'. So installing the header files
+ this way is only useful with GCC. Sometimes this is not a problem
+ because some libraries are only really intended to work with GCC.
+ But some libraries are intended to work with other compilers.
+ They should install their header files in two places, one
+ specified by `includedir' and one specified by `oldincludedir'.
+
+`oldincludedir'
+ The directory for installing `#include' header files for use with
+ compilers other than GCC. This should normally be `/usr/include'.
+ (If you are using Autoconf, you can write it as `@oldincludedir@'.)
+
+ The Makefile commands should check whether the value of
+ `oldincludedir' is empty. If it is, they should not try to use
+ it; they should cancel the second installation of the header files.
+
+ A package should not replace an existing header in this directory
+ unless the header came from the same package. Thus, if your Foo
+ package provides a header file `foo.h', then it should install the
+ header file in the `oldincludedir' directory if either (1) there
+ is no `foo.h' there or (2) the `foo.h' that exists came from the
+ Foo package.
+
+ To tell whether `foo.h' came from the Foo package, put a magic
+ string in the file--part of a comment--and `grep' for that string.
+
+`docdir'
+ The directory for installing documentation files (other than Info)
+ for this package. By default, it should be
+ `/usr/local/share/doc/YOURPKG', but it should be written as
+ `$(datarootdir)/doc/YOURPKG'. (If you are using Autoconf, write
+ it as `@docdir@'.) The YOURPKG subdirectory, which may include a
+ version number, prevents collisions among files with common names,
+ such as `README'.
+
+`infodir'
+ The directory for installing the Info files for this package. By
+ default, it should be `/usr/local/share/info', but it should be
+ written as `$(datarootdir)/info'. (If you are using Autoconf,
+ write it as `@infodir@'.) `infodir' is separate from `docdir' for
+ compatibility with existing practice.
+
+`htmldir'
+`dvidir'
+`pdfdir'
+`psdir'
+ Directories for installing documentation files in the particular
+ format. They should all be set to `$(docdir)' by default. (If
+ you are using Autoconf, write them as `@htmldir@', `@dvidir@',
+ etc.) Packages which supply several translations of their
+ documentation should install them in `$(htmldir)/'LL,
+ `$(pdfdir)/'LL, etc. where LL is a locale abbreviation such as
+ `en' or `pt_BR'.
+
+`libdir'
+ The directory for object files and libraries of object code. Do
+ not install executables here, they probably ought to go in
+ `$(libexecdir)' instead. The value of `libdir' should normally be
+ `/usr/local/lib', but write it as `$(exec_prefix)/lib'. (If you
+ are using Autoconf, write it as `@libdir@'.)
+
+`lispdir'
+ The directory for installing any Emacs Lisp files in this package.
+ By default, it should be `/usr/local/share/emacs/site-lisp', but
+ it should be written as `$(datarootdir)/emacs/site-lisp'.
+
+ If you are using Autoconf, write the default as `@lispdir@'. In
+ order to make `@lispdir@' work, you need the following lines in
+ your `configure.in' file:
+
+ lispdir='${datarootdir}/emacs/site-lisp'
+ AC_SUBST(lispdir)
+
+`localedir'
+ The directory for installing locale-specific message catalogs for
+ this package. By default, it should be `/usr/local/share/locale',
+ but it should be written as `$(datarootdir)/locale'. (If you are
+ using Autoconf, write it as `@localedir@'.) This directory
+ usually has a subdirectory per locale.
+
+ Unix-style man pages are installed in one of the following:
+
+`mandir'
+ The top-level directory for installing the man pages (if any) for
+ this package. It will normally be `/usr/local/share/man', but you
+ should write it as `$(datarootdir)/man'. (If you are using
+ Autoconf, write it as `@mandir@'.)
+
+`man1dir'
+ The directory for installing section 1 man pages. Write it as
+ `$(mandir)/man1'.
+
+`man2dir'
+ The directory for installing section 2 man pages. Write it as
+ `$(mandir)/man2'
+
+`...'
+ *Don't make the primary documentation for any GNU software be a
+ man page. Write a manual in Texinfo instead. Man pages are just
+ for the sake of people running GNU software on Unix, which is a
+ secondary application only.*
+
+`manext'
+ The file name extension for the installed man page. This should
+ contain a period followed by the appropriate digit; it should
+ normally be `.1'.
+
+`man1ext'
+ The file name extension for installed section 1 man pages.
+
+`man2ext'
+ The file name extension for installed section 2 man pages.
+
+`...'
+ Use these names instead of `manext' if the package needs to
+ install man pages in more than one section of the manual.
+
+ And finally, you should set the following variable:
+
+`srcdir'
+ The directory for the sources being compiled. The value of this
+ variable is normally inserted by the `configure' shell script.
+ (If you are using Autoconf, use `srcdir = @srcdir@'.)
+
+ For example:
+
+ # Common prefix for installation directories.
+ # NOTE: This directory must exist when you start the install.
+ prefix = /usr/local
+ datarootdir = $(prefix)/share
+ datadir = $(datarootdir)
+ exec_prefix = $(prefix)
+ # Where to put the executable for the command `gcc'.
+ bindir = $(exec_prefix)/bin
+ # Where to put the directories used by the compiler.
+ libexecdir = $(exec_prefix)/libexec
+ # Where to put the Info files.
+ infodir = $(datarootdir)/info
+
+ If your program installs a large number of files into one of the
+standard user-specified directories, it might be useful to group them
+into a subdirectory particular to that program. If you do this, you
+should write the `install' rule to create these subdirectories.
+
+ Do not expect the user to include the subdirectory name in the value
+of any of the variables listed above. The idea of having a uniform set
+of variable names for installation directories is to enable the user to
+specify the exact same values for several different GNU packages. In
+order for this to be useful, all the packages must be designed so that
+they will work sensibly when the user does so.
+
+ At times, not all of these variables may be implemented in the
+current release of Autoconf and/or Automake; but as of Autoconf 2.60, we
+believe all of them are. When any are missing, the descriptions here
+serve as specifications for what Autoconf will implement. As a
+programmer, you can either use a development version of Autoconf or
+avoid using these variables until a stable release is made which
+supports them.
+
+
+File: standards.info, Node: Standard Targets, Next: Install Command Categories, Prev: Directory Variables, Up: Makefile Conventions
+
+7.2.6 Standard Targets for Users
+--------------------------------
+
+All GNU programs should have the following targets in their Makefiles:
+
+`all'
+ Compile the entire program. This should be the default target.
+ This target need not rebuild any documentation files; Info files
+ should normally be included in the distribution, and DVI (and other
+ documentation format) files should be made only when explicitly
+ asked for.
+
+ By default, the Make rules should compile and link with `-g', so
+ that executable programs have debugging symbols. Users who don't
+ mind being helpless can strip the executables later if they wish.
+
+`install'
+ Compile the program and copy the executables, libraries, and so on
+ to the file names where they should reside for actual use. If
+ there is a simple test to verify that a program is properly
+ installed, this target should run that test.
+
+ Do not strip executables when installing them. Devil-may-care
+ users can use the `install-strip' target to do that.
+
+ If possible, write the `install' target rule so that it does not
+ modify anything in the directory where the program was built,
+ provided `make all' has just been done. This is convenient for
+ building the program under one user name and installing it under
+ another.
+
+ The commands should create all the directories in which files are
+ to be installed, if they don't already exist. This includes the
+ directories specified as the values of the variables `prefix' and
+ `exec_prefix', as well as all subdirectories that are needed. One
+ way to do this is by means of an `installdirs' target as described
+ below.
+
+ Use `-' before any command for installing a man page, so that
+ `make' will ignore any errors. This is in case there are systems
+ that don't have the Unix man page documentation system installed.
+
+ The way to install Info files is to copy them into `$(infodir)'
+ with `$(INSTALL_DATA)' (*note Command Variables::), and then run
+ the `install-info' program if it is present. `install-info' is a
+ program that edits the Info `dir' file to add or update the menu
+ entry for the given Info file; it is part of the Texinfo package.
+ Here is a sample rule to install an Info file:
+
+ $(DESTDIR)$(infodir)/foo.info: foo.info
+ $(POST_INSTALL)
+ # There may be a newer info file in . than in srcdir.
+ -if test -f foo.info; then d=.; \
+ else d=$(srcdir); fi; \
+ $(INSTALL_DATA) $$d/foo.info $(DESTDIR)$@; \
+ # Run install-info only if it exists.
+ # Use `if' instead of just prepending `-' to the
+ # line so we notice real errors from install-info.
+ # We use `$(SHELL) -c' because some shells do not
+ # fail gracefully when there is an unknown command.
+ if $(SHELL) -c 'install-info --version' \
+ >/dev/null 2>&1; then \
+ install-info --dir-file=$(DESTDIR)$(infodir)/dir \
+ $(DESTDIR)$(infodir)/foo.info; \
+ else true; fi
+
+ When writing the `install' target, you must classify all the
+ commands into three categories: normal ones, "pre-installation"
+ commands and "post-installation" commands. *Note Install Command
+ Categories::.
+
+`install-html'
+`install-dvi'
+`install-pdf'
+`install-ps'
+ These targets install documentation in formats other than Info;
+ they're intended to be called explicitly by the person installing
+ the package, if that format is desired. GNU prefers Info files,
+ so these must be installed by the `install' target.
+
+ When you have many documentation files to install, we recommend
+ that you avoid collisions and clutter by arranging for these
+ targets to install in subdirectories of the appropriate
+ installation directory, such as `htmldir'. As one example, if
+ your package has multiple manuals, and you wish to install HTML
+ documentation with many files (such as the "split" mode output by
+ `makeinfo --html'), you'll certainly want to use subdirectories,
+ or two nodes with the same name in different manuals will
+ overwrite each other.
+
+ Please make these `install-FORMAT' targets invoke the commands for
+ the FORMAT target, for example, by making FORMAT a dependency.
+
+`uninstall'
+ Delete all the installed files--the copies that the `install' and
+ `install-*' targets create.
+
+ This rule should not modify the directories where compilation is
+ done, only the directories where files are installed.
+
+ The uninstallation commands are divided into three categories,
+ just like the installation commands. *Note Install Command
+ Categories::.
+
+`install-strip'
+ Like `install', but strip the executable files while installing
+ them. In simple cases, this target can use the `install' target in
+ a simple way:
+
+ install-strip:
+ $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \
+ install
+
+ But if the package installs scripts as well as real executables,
+ the `install-strip' target can't just refer to the `install'
+ target; it has to strip the executables but not the scripts.
+
+ `install-strip' should not strip the executables in the build
+ directory which are being copied for installation. It should only
+ strip the copies that are installed.
+
+ Normally we do not recommend stripping an executable unless you
+ are sure the program has no bugs. However, it can be reasonable
+ to install a stripped executable for actual execution while saving
+ the unstripped executable elsewhere in case there is a bug.
+
+`clean'
+ Delete all files in the current directory that are normally
+ created by building the program. Also delete files in other
+ directories if they are created by this makefile. However, don't
+ delete the files that record the configuration. Also preserve
+ files that could be made by building, but normally aren't because
+ the distribution comes with them. There is no need to delete
+ parent directories that were created with `mkdir -p', since they
+ could have existed anyway.
+
+ Delete `.dvi' files here if they are not part of the distribution.
+
+`distclean'
+ Delete all files in the current directory (or created by this
+ makefile) that are created by configuring or building the program.
+ If you have unpacked the source and built the program without
+ creating any other files, `make distclean' should leave only the
+ files that were in the distribution. However, there is no need to
+ delete parent directories that were created with `mkdir -p', since
+ they could have existed anyway.
+
+`mostlyclean'
+ Like `clean', but may refrain from deleting a few files that people
+ normally don't want to recompile. For example, the `mostlyclean'
+ target for GCC does not delete `libgcc.a', because recompiling it
+ is rarely necessary and takes a lot of time.
+
+`maintainer-clean'
+ Delete almost everything that can be reconstructed with this
+ Makefile. This typically includes everything deleted by
+ `distclean', plus more: C source files produced by Bison, tags
+ tables, Info files, and so on.
+
+ The reason we say "almost everything" is that running the command
+ `make maintainer-clean' should not delete `configure' even if
+ `configure' can be remade using a rule in the Makefile. More
+ generally, `make maintainer-clean' should not delete anything that
+ needs to exist in order to run `configure' and then begin to build
+ the program. Also, there is no need to delete parent directories
+ that were created with `mkdir -p', since they could have existed
+ anyway. These are the only exceptions; `maintainer-clean' should
+ delete everything else that can be rebuilt.
+
+ The `maintainer-clean' target is intended to be used by a
+ maintainer of the package, not by ordinary users. You may need
+ special tools to reconstruct some of the files that `make
+ maintainer-clean' deletes. Since these files are normally
+ included in the distribution, we don't take care to make them easy
+ to reconstruct. If you find you need to unpack the full
+ distribution again, don't blame us.
+
+ To help make users aware of this, the commands for the special
+ `maintainer-clean' target should start with these two:
+
+ @echo 'This command is intended for maintainers to use; it'
+ @echo 'deletes files that may need special tools to rebuild.'
+
+`TAGS'
+ Update a tags table for this program.
+
+`info'
+ Generate any Info files needed. The best way to write the rules
+ is as follows:
+
+ info: foo.info
+
+ foo.info: foo.texi chap1.texi chap2.texi
+ $(MAKEINFO) $(srcdir)/foo.texi
+
+ You must define the variable `MAKEINFO' in the Makefile. It should
+ run the `makeinfo' program, which is part of the Texinfo
+ distribution.
+
+ Normally a GNU distribution comes with Info files, and that means
+ the Info files are present in the source directory. Therefore,
+ the Make rule for an info file should update it in the source
+ directory. When users build the package, ordinarily Make will not
+ update the Info files because they will already be up to date.
+
+`dvi'
+`html'
+`pdf'
+`ps'
+ Generate documentation files in the given format. These targets
+ should always exist, but any or all can be a no-op if the given
+ output format cannot be generated. These targets should not be
+ dependencies of the `all' target; the user must manually invoke
+ them.
+
+ Here's an example rule for generating DVI files from Texinfo:
+
+ dvi: foo.dvi
+
+ foo.dvi: foo.texi chap1.texi chap2.texi
+ $(TEXI2DVI) $(srcdir)/foo.texi
+
+ You must define the variable `TEXI2DVI' in the Makefile. It should
+ run the program `texi2dvi', which is part of the Texinfo
+ distribution.(1) Alternatively, write just the dependencies, and
+ allow GNU `make' to provide the command.
+
+ Here's another example, this one for generating HTML from Texinfo:
+
+ html: foo.html
+
+ foo.html: foo.texi chap1.texi chap2.texi
+ $(TEXI2HTML) $(srcdir)/foo.texi
+
+ Again, you would define the variable `TEXI2HTML' in the Makefile;
+ for example, it might run `makeinfo --no-split --html' (`makeinfo'
+ is part of the Texinfo distribution).
+
+`dist'
+ Create a distribution tar file for this program. The tar file
+ should be set up so that the file names in the tar file start with
+ a subdirectory name which is the name of the package it is a
+ distribution for. This name can include the version number.
+
+ For example, the distribution tar file of GCC version 1.40 unpacks
+ into a subdirectory named `gcc-1.40'.
+
+ The easiest way to do this is to create a subdirectory
+ appropriately named, use `ln' or `cp' to install the proper files
+ in it, and then `tar' that subdirectory.
+
+ Compress the tar file with `gzip'. For example, the actual
+ distribution file for GCC version 1.40 is called `gcc-1.40.tar.gz'.
+
+ The `dist' target should explicitly depend on all non-source files
+ that are in the distribution, to make sure they are up to date in
+ the distribution. *Note Making Releases: Releases.
+
+`check'
+ Perform self-tests (if any). The user must build the program
+ before running the tests, but need not install the program; you
+ should write the self-tests so that they work when the program is
+ built but not installed.
+
+ The following targets are suggested as conventional names, for
+programs in which they are useful.
+
+`installcheck'
+ Perform installation tests (if any). The user must build and
+ install the program before running the tests. You should not
+ assume that `$(bindir)' is in the search path.
+
+`installdirs'
+ It's useful to add a target named `installdirs' to create the
+ directories where files are installed, and their parent
+ directories. There is a script called `mkinstalldirs' which is
+ convenient for this; you can find it in the Texinfo package. You
+ can use a rule like this:
+
+ # Make sure all installation directories (e.g. $(bindir))
+ # actually exist by making them if necessary.
+ installdirs: mkinstalldirs
+ $(srcdir)/mkinstalldirs $(bindir) $(datadir) \
+ $(libdir) $(infodir) \
+ $(mandir)
+
+ or, if you wish to support `DESTDIR',
+
+ # Make sure all installation directories (e.g. $(bindir))
+ # actually exist by making them if necessary.
+ installdirs: mkinstalldirs
+ $(srcdir)/mkinstalldirs \
+ $(DESTDIR)$(bindir) $(DESTDIR)$(datadir) \
+ $(DESTDIR)$(libdir) $(DESTDIR)$(infodir) \
+ $(DESTDIR)$(mandir)
+
+ This rule should not modify the directories where compilation is
+ done. It should do nothing but create installation directories.
+
+ ---------- Footnotes ----------
+
+ (1) `texi2dvi' uses TeX to do the real work of formatting. TeX is
+not distributed with Texinfo.
+
+
+File: standards.info, Node: Install Command Categories, Prev: Standard Targets, Up: Makefile Conventions
+
+7.2.7 Install Command Categories
+--------------------------------
+
+When writing the `install' target, you must classify all the commands
+into three categories: normal ones, "pre-installation" commands and
+"post-installation" commands.
+
+ Normal commands move files into their proper places, and set their
+modes. They may not alter any files except the ones that come entirely
+from the package they belong to.
+
+ Pre-installation and post-installation commands may alter other
+files; in particular, they can edit global configuration files or data
+bases.
+
+ Pre-installation commands are typically executed before the normal
+commands, and post-installation commands are typically run after the
+normal commands.
+
+ The most common use for a post-installation command is to run
+`install-info'. This cannot be done with a normal command, since it
+alters a file (the Info directory) which does not come entirely and
+solely from the package being installed. It is a post-installation
+command because it needs to be done after the normal command which
+installs the package's Info files.
+
+ Most programs don't need any pre-installation commands, but we have
+the feature just in case it is needed.
+
+ To classify the commands in the `install' rule into these three
+categories, insert "category lines" among them. A category line
+specifies the category for the commands that follow.
+
+ A category line consists of a tab and a reference to a special Make
+variable, plus an optional comment at the end. There are three
+variables you can use, one for each category; the variable name
+specifies the category. Category lines are no-ops in ordinary execution
+because these three Make variables are normally undefined (and you
+_should not_ define them in the makefile).
+
+ Here are the three possible category lines, each with a comment that
+explains what it means:
+
+ $(PRE_INSTALL) # Pre-install commands follow.
+ $(POST_INSTALL) # Post-install commands follow.
+ $(NORMAL_INSTALL) # Normal commands follow.
+
+ If you don't use a category line at the beginning of the `install'
+rule, all the commands are classified as normal until the first category
+line. If you don't use any category lines, all the commands are
+classified as normal.
+
+ These are the category lines for `uninstall':
+
+ $(PRE_UNINSTALL) # Pre-uninstall commands follow.
+ $(POST_UNINSTALL) # Post-uninstall commands follow.
+ $(NORMAL_UNINSTALL) # Normal commands follow.
+
+ Typically, a pre-uninstall command would be used for deleting entries
+from the Info directory.
+
+ If the `install' or `uninstall' target has any dependencies which
+act as subroutines of installation, then you should start _each_
+dependency's commands with a category line, and start the main target's
+commands with a category line also. This way, you can ensure that each
+command is placed in the right category regardless of which of the
+dependencies actually run.
+
+ Pre-installation and post-installation commands should not run any
+programs except for these:
+
+ [ basename bash cat chgrp chmod chown cmp cp dd diff echo
+ egrep expand expr false fgrep find getopt grep gunzip gzip
+ hostname install install-info kill ldconfig ln ls md5sum
+ mkdir mkfifo mknod mv printenv pwd rm rmdir sed sort tee
+ test touch true uname xargs yes
+
+ The reason for distinguishing the commands in this way is for the
+sake of making binary packages. Typically a binary package contains
+all the executables and other files that need to be installed, and has
+its own method of installing them--so it does not need to run the normal
+installation commands. But installing the binary package does need to
+execute the pre-installation and post-installation commands.
+
+ Programs to build binary packages work by extracting the
+pre-installation and post-installation commands. Here is one way of
+extracting the pre-installation commands (the `-s' option to `make' is
+needed to silence messages about entering subdirectories):
+
+ make -s -n install -o all \
+ PRE_INSTALL=pre-install \
+ POST_INSTALL=post-install \
+ NORMAL_INSTALL=normal-install \
+ | gawk -f pre-install.awk
+
+where the file `pre-install.awk' could contain this:
+
+ $0 ~ /^(normal-install|post-install)[ \t]*$/ {on = 0}
+ on {print $0}
+ $0 ~ /^pre-install[ \t]*$/ {on = 1}
+
+
+File: standards.info, Node: Releases, Prev: Makefile Conventions, Up: Managing Releases
+
+7.3 Making Releases
+===================
+
+You should identify each release with a pair of version numbers, a
+major version and a minor. We have no objection to using more than two
+numbers, but it is very unlikely that you really need them.
+
+ Package the distribution of `Foo version 69.96' up in a gzipped tar
+file with the name `foo-69.96.tar.gz'. It should unpack into a
+subdirectory named `foo-69.96'.
+
+ Building and installing the program should never modify any of the
+files contained in the distribution. This means that all the files
+that form part of the program in any way must be classified into "source
+files" and "non-source files". Source files are written by humans and
+never changed automatically; non-source files are produced from source
+files by programs under the control of the Makefile.
+
+ The distribution should contain a file named `README' which gives
+the name of the package, and a general description of what it does. It
+is also good to explain the purpose of each of the first-level
+subdirectories in the package, if there are any. The `README' file
+should either state the version number of the package, or refer to where
+in the package it can be found.
+
+ The `README' file should refer to the file `INSTALL', which should
+contain an explanation of the installation procedure.
+
+ The `README' file should also refer to the file which contains the
+copying conditions. The GNU GPL, if used, should be in a file called
+`COPYING'. If the GNU LGPL is used, it should be in a file called
+`COPYING.LESSER'.
+
+ Naturally, all the source files must be in the distribution. It is
+okay to include non-source files in the distribution, provided they are
+up-to-date and machine-independent, so that building the distribution
+normally will never modify them. We commonly include non-source files
+produced by Bison, `lex', TeX, and `makeinfo'; this helps avoid
+unnecessary dependencies between our distributions, so that users can
+install whichever packages they want to install.
+
+ Non-source files that might actually be modified by building and
+installing the program should *never* be included in the distribution.
+So if you do distribute non-source files, always make sure they are up
+to date when you make a new distribution.
+
+ Make sure that all the files in the distribution are world-readable,
+and that directories are world-readable and world-searchable (octal
+mode 755). We used to recommend that all directories in the
+distribution also be world-writable (octal mode 777), because ancient
+versions of `tar' would otherwise not cope when extracting the archive
+as an unprivileged user. That can easily lead to security issues when
+creating the archive, however, so now we recommend against that.
+
+ Don't include any symbolic links in the distribution itself. If the
+tar file contains symbolic links, then people cannot even unpack it on
+systems that don't support symbolic links. Also, don't use multiple
+names for one file in different directories, because certain file
+systems cannot handle this and that prevents unpacking the distribution.
+
+ Try to make sure that all the file names will be unique on MS-DOS. A
+name on MS-DOS consists of up to 8 characters, optionally followed by a
+period and up to three characters. MS-DOS will truncate extra
+characters both before and after the period. Thus, `foobarhacker.c'
+and `foobarhacker.o' are not ambiguous; they are truncated to
+`foobarha.c' and `foobarha.o', which are distinct.
+
+ Include in your distribution a copy of the `texinfo.tex' you used to
+test print any `*.texinfo' or `*.texi' files.
+
+ Likewise, if your program uses small GNU software packages like
+regex, getopt, obstack, or termcap, include them in the distribution
+file. Leaving them out would make the distribution file a little
+smaller at the expense of possible inconvenience to a user who doesn't
+know what other files to get.
+
+
+File: standards.info, Node: References, Next: GNU Free Documentation License, Prev: Managing Releases, Up: Top
+
+8 References to Non-Free Software and Documentation
+***************************************************
+
+A GNU program should not recommend, promote, or grant legitimacy to the
+use of any non-free program. Proprietary software is a social and
+ethical problem, and our aim is to put an end to that problem. We
+can't stop some people from writing proprietary programs, or stop other
+people from using them, but we can and should refuse to advertise them
+to new potential customers, or to give the public the idea that their
+existence is ethical.
+
+ The GNU definition of free software is found on the GNU web site at
+`http://www.gnu.org/philosophy/free-sw.html', and the definition of
+free documentation is found at
+`http://www.gnu.org/philosophy/free-doc.html'. The terms "free" and
+"non-free", used in this document, refer to those definitions.
+
+ A list of important licenses and whether they qualify as free is in
+`http://www.gnu.org/licenses/license-list.html'. If it is not clear
+whether a license qualifies as free, please ask the GNU Project by
+writing to <licensing@gnu.org>. We will answer, and if the license is
+an important one, we will add it to the list.
+
+ When a non-free program or system is well known, you can mention it
+in passing--that is harmless, since users who might want to use it
+probably already know about it. For instance, it is fine to explain
+how to build your package on top of some widely used non-free operating
+system, or how to use it together with some widely used non-free
+program.
+
+ However, you should give only the necessary information to help those
+who already use the non-free program to use your program with it--don't
+give, or refer to, any further information about the proprietary
+program, and don't imply that the proprietary program enhances your
+program, or that its existence is in any way a good thing. The goal
+should be that people already using the proprietary program will get
+the advice they need about how to use your free program with it, while
+people who don't already use the proprietary program will not see
+anything likely to lead them to take an interest in it.
+
+ If a non-free program or system is obscure in your program's domain,
+your program should not mention or support it at all, since doing so
+would tend to popularize the non-free program more than it popularizes
+your program. (You cannot hope to find many additional users for your
+program among the users of Foobar, if the existence of Foobar is not
+generally known among people who might want to use your program.)
+
+ Sometimes a program is free software in itself but depends on a
+non-free platform in order to run. For instance, many Java programs
+depend on some non-free Java libraries. To recommend or promote such a
+program is to promote the other programs it needs. This is why we are
+careful about listing Java programs in the Free Software Directory: we
+don't want to promote the non-free Java libraries.
+
+ We hope this particular problem with Java will be gone by and by, as
+we replace the remaining non-free standard Java libraries with free
+software, but the general principle will remain the same: don't
+recommend, promote or legitimize programs that depend on non-free
+software to run.
+
+ Some free programs strongly encourage the use of non-free software.
+A typical example is `mplayer'. It is free software in itself, and the
+free code can handle some kinds of files. However, `mplayer'
+recommends use of non-free codecs for other kinds of files, and users
+that install `mplayer' are very likely to install those codecs along
+with it. To recommend `mplayer' is, in effect, to promote use of the
+non-free codecs.
+
+ Thus, you should not recommend programs that strongly encourage the
+use of non-free software. This is why we do not list `mplayer' in the
+Free Software Directory.
+
+ A GNU package should not refer the user to any non-free documentation
+for free software. Free documentation that can be included in free
+operating systems is essential for completing the GNU system, or any
+free operating system, so encouraging it is a priority; to recommend
+use of documentation that we are not allowed to include undermines the
+impetus for the community to produce documentation that we can include.
+So GNU packages should never recommend non-free documentation.
+
+ By contrast, it is ok to refer to journal articles and textbooks in
+the comments of a program for explanation of how it functions, even
+though they are non-free. This is because we don't include such things
+in the GNU system even they are free--they are outside the scope of
+what a software distribution needs to include.
+
+ Referring to a web site that describes or recommends a non-free
+program is promoting that program, so please do not make links (or
+mention by name) web sites that contain such material. This policy is
+relevant particularly for the web pages for a GNU package.
+
+ Following links from nearly any web site can lead eventually to
+non-free software; this is inherent in the nature of the web. So it
+makes no sense to criticize a site for having such links. As long as
+the site does not itself recommend a non-free program, there is no need
+to consider the question of the sites that it links to for other
+reasons.
+
+ Thus, for example, you should not refer to AT&T's web site if that
+recommends AT&T's non-free software packages; you should not refer to a
+site that links to AT&T's site presenting it as a place to get some
+non-free program, because that link recommends and legitimizes the
+non-free program. However, that a site contains a link to AT&T's web
+site for some other purpose (such as long-distance telephone service)
+is not an objection against it.
+
+
+File: standards.info, Node: GNU Free Documentation License, Next: Index, Prev: References, Up: Top
+
+Appendix A GNU Free Documentation License
+*****************************************
+
+ Version 1.3, 3 November 2008
+
+ Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+ `http://fsf.org/'
+
+ 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
+ functional and useful 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, in any medium,
+ that contains a notice placed by the copyright holder saying it
+ can be distributed under the terms of this License. Such a notice
+ grants a world-wide, royalty-free license, unlimited in duration,
+ to use that work under the conditions stated herein. The
+ "Document", below, refers to any such manual or work. Any member
+ of the public is a licensee, and is addressed as "you". You
+ accept the license if you copy, modify or distribute the work in a
+ way requiring permission under copyright law.
+
+ 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. (Thus, 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. If a section does not fit the above definition of
+ Secondary then it is not allowed to be designated as Invariant.
+ The Document may contain zero Invariant Sections. If the Document
+ does not identify any Invariant Sections then there are none.
+
+ 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
+ Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+ be at most 25 words.
+
+ A "Transparent" copy of the Document means a machine-readable copy,
+ represented in a format whose specification is available to the
+ general public, that is suitable for revising the document
+ 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, or absence of
+ markup, has been arranged to thwart or discourage subsequent
+ modification by readers is not Transparent. An image format is
+ not Transparent if used for any substantial amount of text. 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, PostScript or PDF designed for
+ human modification. Examples of transparent image formats include
+ PNG, XCF and JPG. Opaque formats include 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, PostScript or PDF
+ 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.
+
+ The "publisher" means any person or entity that distributes copies
+ of the Document to the public.
+
+ A section "Entitled XYZ" means a named subunit of the Document
+ whose title either is precisely XYZ or contains XYZ in parentheses
+ following text that translates XYZ in another language. (Here XYZ
+ stands for a specific section name mentioned below, such as
+ "Acknowledgements", "Dedications", "Endorsements", or "History".)
+ To "Preserve the Title" of such a section when you modify the
+ Document means that it remains a section "Entitled XYZ" according
+ to this definition.
+
+ The Document may include Warranty Disclaimers next to the notice
+ which states that this License applies to the Document. These
+ Warranty Disclaimers are considered to be included by reference in
+ this License, but only as regards disclaiming warranties: any other
+ implication that these Warranty Disclaimers may have is void and
+ has no effect on the meaning of this License.
+
+ 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 (or copies in media that commonly
+ have printed covers) 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 computer-network location from
+ which the general network-using public has access to download
+ using public-standard network protocols a complete Transparent
+ copy of the Document, free of added material. 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 fewer than five), unless they release you
+ from this requirement.
+
+ 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", Preserve 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. For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, 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 to be Entitled
+ "Endorsements" or to conflict in title with any Invariant
+ Section.
+
+ O. Preserve any Warranty Disclaimers.
+
+ 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, and that you preserve all
+ their Warranty Disclaimers.
+
+ 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, is called an "aggregate" if the
+ copyright resulting from the compilation is not used to limit the
+ legal rights of the compilation's users beyond what the individual
+ works permit. When the Document is included in an aggregate, this
+ License does not apply to the other works in the aggregate which
+ 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 half
+ of the entire aggregate, the Document's Cover Texts may be placed
+ on covers that bracket the Document within the aggregate, or the
+ electronic equivalent of covers if the Document is in electronic
+ form. Otherwise they must appear on printed covers that bracket
+ 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, and all the license notices in the
+ Document, and any Warranty Disclaimers, provided that you also
+ include the original English version of this License and the
+ original versions of those notices and disclaimers. In case of a
+ disagreement between the translation and the original version of
+ this License or a notice or disclaimer, the original version will
+ prevail.
+
+ If a section in the Document is Entitled "Acknowledgements",
+ "Dedications", or "History", the requirement (section 4) to
+ Preserve its Title (section 1) will typically require changing the
+ actual title.
+
+ 9. TERMINATION
+
+ You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided under this License. Any attempt
+ otherwise to copy, modify, sublicense, or distribute it is void,
+ and will automatically terminate your rights under this License.
+
+ However, if you cease all violation of this License, then your
+ license from a particular copyright holder is reinstated (a)
+ provisionally, unless and until the copyright holder explicitly
+ and finally terminates your license, and (b) permanently, if the
+ copyright holder fails to notify you of the violation by some
+ reasonable means prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+ reinstated permanently if the copyright holder notifies you of the
+ violation by some reasonable means, this is the first time you have
+ received notice of violation of this License (for any work) from
+ that copyright holder, and you cure the violation prior to 30 days
+ after your receipt of the notice.
+
+ Termination of your rights under this section does not terminate
+ the licenses of parties who have received copies or rights from
+ you under this License. If your rights have been terminated and
+ not permanently reinstated, receipt of a copy of some or all of
+ the same material does not give you any rights to use it.
+
+ 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. If the Document specifies that a proxy
+ can decide which future versions of this License can be used, that
+ proxy's public statement of acceptance of a version permanently
+ authorizes you to choose that version for the Document.
+
+ 11. RELICENSING
+
+ "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+ World Wide Web server that publishes copyrightable works and also
+ provides prominent facilities for anybody to edit those works. A
+ public wiki that anybody can edit is an example of such a server.
+ A "Massive Multiauthor Collaboration" (or "MMC") contained in the
+ site means any set of copyrightable works thus published on the MMC
+ site.
+
+ "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+ license published by Creative Commons Corporation, a not-for-profit
+ corporation with a principal place of business in San Francisco,
+ California, as well as future copyleft versions of that license
+ published by that same organization.
+
+ "Incorporate" means to publish or republish a Document, in whole or
+ in part, as part of another Document.
+
+ An MMC is "eligible for relicensing" if it is licensed under this
+ License, and if all works that were first published under this
+ License somewhere other than this MMC, and subsequently
+ incorporated in whole or in part into the MMC, (1) had no cover
+ texts or invariant sections, and (2) were thus incorporated prior
+ to November 1, 2008.
+
+ The operator of an MMC Site may republish an MMC contained in the
+ site under CC-BY-SA on the same site at any time before August 1,
+ 2009, provided the MMC is eligible for relicensing.
+
+
+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:
+
+ 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.3
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+ Texts. A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+
+ If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with...Texts." line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with
+ the Front-Cover Texts being LIST, and with the Back-Cover Texts
+ being LIST.
+
+ If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+ 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.
+
+
+File: standards.info, Node: Index, Prev: GNU Free Documentation License, Up: Top
+
+Index
+*****
+
+
+* Menu:
+
+* #endif, commenting: Comments. (line 60)
+* --help output: --help. (line 6)
+* --version output: --version. (line 6)
+* -Wall compiler option: Syntactic Conventions.
+ (line 10)
+* accepting contributions: Contributions. (line 6)
+* address for bug reports: --help. (line 11)
+* ANSI C standard: Standard C. (line 6)
+* arbitrary limits on data: Semantics. (line 6)
+* ASCII characters: Character Set. (line 6)
+* autoconf: System Portability. (line 23)
+* avoiding proprietary code: Reading Non-Free Code.
+ (line 6)
+* behavior, dependent on program's name: User Interfaces. (line 6)
+* binary packages: Install Command Categories.
+ (line 80)
+* bindir: Directory Variables. (line 54)
+* braces, in C source: Formatting. (line 6)
+* bug reports: --help. (line 11)
+* bug-standards@gnu.org email address: Preface. (line 30)
+* canonical name of a program: --version. (line 12)
+* casting pointers to integers: CPU Portability. (line 89)
+* CGI programs, standard options for: Command-Line Interfaces.
+ (line 31)
+* change logs: Change Logs. (line 6)
+* change logs, conditional changes: Conditional Changes. (line 6)
+* change logs, style: Style of Change Logs.
+ (line 6)
+* character set: Character Set. (line 6)
+* command-line arguments, decoding: Semantics. (line 46)
+* command-line interface: Command-Line Interfaces.
+ (line 6)
+* commenting: Comments. (line 6)
+* compatibility with C and POSIX standards: Compatibility. (line 6)
+* compiler warnings: Syntactic Conventions.
+ (line 10)
+* conditional changes, and change logs: Conditional Changes. (line 6)
+* conditionals, comments for: Comments. (line 60)
+* configure: Configuration. (line 6)
+* control-L: Formatting. (line 118)
+* conventions for makefiles: Makefile Conventions.
+ (line 6)
+* CORBA: Graphical Interfaces.
+ (line 16)
+* credits for manuals: Manual Credits. (line 6)
+* D-bus: Graphical Interfaces.
+ (line 16)
+* data types, and portability: CPU Portability. (line 6)
+* declaration for system functions: System Functions. (line 21)
+* DESTDIR: DESTDIR. (line 6)
+* documentation: Documentation. (line 6)
+* doschk: Names. (line 38)
+* downloading this manual: Preface. (line 14)
+* encodings: Character Set. (line 6)
+* error messages: Semantics. (line 19)
+* error messages, formatting: Errors. (line 6)
+* exec_prefix: Directory Variables. (line 36)
+* expressions, splitting: Formatting. (line 81)
+* FDL, GNU Free Documentation License: GNU Free Documentation License.
+ (line 6)
+* file usage: File Usage. (line 6)
+* file-name limitations: Names. (line 38)
+* formatting error messages: Errors. (line 6)
+* formatting source code: Formatting. (line 6)
+* formfeed: Formatting. (line 118)
+* function argument, declaring: Syntactic Conventions.
+ (line 6)
+* function prototypes: Standard C. (line 17)
+* getopt: Command-Line Interfaces.
+ (line 6)
+* gettext: Internationalization.
+ (line 6)
+* GNOME: Graphical Interfaces.
+ (line 16)
+* GNOME and Guile: Source Language. (line 38)
+* gnustandards project repository: Preface. (line 30)
+* gnustandards-commit@gnu.org mailing list: Preface. (line 24)
+* graphical user interface: Graphical Interfaces.
+ (line 6)
+* grave accent: Quote Characters. (line 6)
+* GTK+: Graphical Interfaces.
+ (line 6)
+* Guile: Source Language. (line 38)
+* implicit int: Syntactic Conventions.
+ (line 6)
+* impossible conditions: Semantics. (line 70)
+* installations, staged: DESTDIR. (line 6)
+* interface styles: Graphical Interfaces.
+ (line 6)
+* internationalization: Internationalization.
+ (line 6)
+* keyboard interface: Graphical Interfaces.
+ (line 16)
+* LDAP: OID Allocations. (line 6)
+* left quote: Quote Characters. (line 6)
+* legal aspects: Legal Issues. (line 6)
+* legal papers: Contributions. (line 6)
+* libexecdir: Directory Variables. (line 67)
+* libraries: Libraries. (line 6)
+* library functions, and portability: System Functions. (line 6)
+* library interface: Graphical Interfaces.
+ (line 16)
+* license for manuals: License for Manuals. (line 6)
+* lint: Syntactic Conventions.
+ (line 109)
+* locale-specific quote characters: Quote Characters. (line 6)
+* long option names: Option Table. (line 6)
+* long-named options: Command-Line Interfaces.
+ (line 12)
+* makefile, conventions for: Makefile Conventions.
+ (line 6)
+* malloc return value: Semantics. (line 25)
+* man pages: Man Pages. (line 6)
+* manual structure: Manual Structure Details.
+ (line 6)
+* memory allocation failure: Semantics. (line 25)
+* memory usage: Memory Usage. (line 6)
+* message text, and internationalization: Internationalization.
+ (line 29)
+* mmap: Mmap. (line 6)
+* multiple variables in a line: Syntactic Conventions.
+ (line 35)
+* names of variables, functions, and files: Names. (line 6)
+* NEWS file: NEWS File. (line 6)
+* non-ASCII characters: Character Set. (line 6)
+* non-POSIX systems, and portability: System Portability. (line 32)
+* non-standard extensions: Using Extensions. (line 6)
+* NUL characters: Semantics. (line 11)
+* OID allocations for GNU: OID Allocations. (line 6)
+* open brace: Formatting. (line 6)
+* optional features, configure-time: Configuration. (line 100)
+* options for compatibility: Compatibility. (line 14)
+* options, standard command-line: Command-Line Interfaces.
+ (line 31)
+* output device and program's behavior: User Interfaces. (line 13)
+* packaging: Releases. (line 6)
+* PATH_INFO, specifying standard options as: Command-Line Interfaces.
+ (line 31)
+* portability, and data types: CPU Portability. (line 6)
+* portability, and library functions: System Functions. (line 6)
+* portability, between system types: System Portability. (line 6)
+* POSIX compatibility: Compatibility. (line 6)
+* POSIXLY_CORRECT, environment variable: Compatibility. (line 21)
+* post-installation commands: Install Command Categories.
+ (line 6)
+* pre-installation commands: Install Command Categories.
+ (line 6)
+* prefix: Directory Variables. (line 26)
+* program configuration: Configuration. (line 6)
+* program design: Design Advice. (line 6)
+* program name and its behavior: User Interfaces. (line 6)
+* program's canonical name: --version. (line 12)
+* programming languages: Source Language. (line 6)
+* proprietary programs: Reading Non-Free Code.
+ (line 6)
+* quote characters: Quote Characters. (line 6)
+* README file: Releases. (line 21)
+* references to non-free material: References. (line 6)
+* releasing: Managing Releases. (line 6)
+* Savannah repository for gnustandards: Preface. (line 30)
+* sbindir: Directory Variables. (line 60)
+* signal handling: Semantics. (line 59)
+* SNMP: OID Allocations. (line 6)
+* spaces before open-paren: Formatting. (line 75)
+* staged installs: DESTDIR. (line 6)
+* standard command-line options: Command-Line Interfaces.
+ (line 31)
+* standards for makefiles: Makefile Conventions.
+ (line 6)
+* string library functions: System Functions. (line 55)
+* syntactic conventions: Syntactic Conventions.
+ (line 6)
+* table of long options: Option Table. (line 6)
+* temporary files: Semantics. (line 84)
+* temporary variables: Syntactic Conventions.
+ (line 23)
+* texinfo.tex, in a distribution: Releases. (line 70)
+* TMPDIR environment variable: Semantics. (line 84)
+* trademarks: Trademarks. (line 6)
+* user interface styles: Graphical Interfaces.
+ (line 6)
+* where to obtain standards.texi: Preface. (line 14)
+* X.509: OID Allocations. (line 6)
+
+
+
+Tag Table:
+Node: Top814
+Node: Preface2089
+Node: Legal Issues4802
+Node: Reading Non-Free Code5272
+Node: Contributions7002
+Node: Trademarks9240
+Node: Design Advice10875
+Node: Source Language11467
+Node: Compatibility13593
+Node: Using Extensions15221
+Node: Standard C16797
+Node: Conditional Compilation19200
+Node: Program Behavior20598
+Node: Non-GNU Standards21714
+Node: Semantics23995
+Node: Libraries28715
+Node: Errors29960
+Node: User Interfaces32453
+Node: Graphical Interfaces34058
+Node: Command-Line Interfaces35242
+Node: --version37274
+Node: --help43011
+Node: Option Table43884
+Node: OID Allocations58839
+Node: Memory Usage60636
+Node: File Usage61672
+Node: Writing C62422
+Node: Formatting63394
+Node: Comments67683
+Node: Syntactic Conventions71235
+Node: Names74697
+Node: System Portability76909
+Node: CPU Portability79800
+Node: System Functions83701
+Node: Internationalization88898
+Node: Character Set92892
+Node: Quote Characters93705
+Node: Mmap95225
+Node: Documentation95933
+Node: GNU Manuals97039
+Node: Doc Strings and Manuals102777
+Node: Manual Structure Details104330
+Node: License for Manuals105748
+Node: Manual Credits106722
+Node: Printed Manuals107115
+Node: NEWS File107801
+Node: Change Logs108479
+Node: Change Log Concepts109233
+Node: Style of Change Logs111336
+Node: Simple Changes113836
+Node: Conditional Changes115278
+Node: Indicating the Part Changed116700
+Node: Man Pages117227
+Node: Reading other Manuals119433
+Node: Managing Releases120224
+Node: Configuration121005
+Node: Makefile Conventions129670
+Node: Makefile Basics130552
+Node: Utilities in Makefiles133726
+Node: Command Variables135871
+Node: DESTDIR139093
+Node: Directory Variables141242
+Node: Standard Targets155735
+Ref: Standard Targets-Footnote-1169250
+Node: Install Command Categories169350
+Node: Releases173883
+Node: References177888
+Node: GNU Free Documentation License183735
+Node: Index208902
+
+End Tag Table
diff --git a/gas/doc/as.info b/gas/doc/as.info
new file mode 100644
index 0000000000..1865d08539
--- /dev/null
+++ b/gas/doc/as.info
@@ -0,0 +1,24303 @@
+This is as.info, produced by makeinfo version 4.8 from as.texinfo.
+
+INFO-DIR-SECTION Software development
+START-INFO-DIR-ENTRY
+* As: (as). The GNU assembler.
+* Gas: (as). The GNU assembler.
+END-INFO-DIR-ENTRY
+
+ This file documents the GNU Assembler "as".
+
+ Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2006, 2007, 2008, 2009, 2010, 2011 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.3 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".
+
+
+File: as.info, Node: Top, Next: Overview, Up: (dir)
+
+Using as
+********
+
+This file is a user guide to the GNU assembler `as' (GNU Binutils)
+version 2.21.90.
+
+ 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".
+
+* Menu:
+
+* Overview:: Overview
+* Invoking:: Command-Line Options
+* Syntax:: Syntax
+* Sections:: Sections and Relocation
+* Symbols:: Symbols
+* Expressions:: Expressions
+* Pseudo Ops:: Assembler Directives
+
+* Object Attributes:: Object Attributes
+* Machine Dependencies:: Machine Dependent Features
+* Reporting Bugs:: Reporting Bugs
+* Acknowledgements:: Who Did What
+* GNU Free Documentation License:: GNU Free Documentation License
+* AS Index:: AS Index
+
+
+File: as.info, Node: Overview, Next: Invoking, Prev: Top, Up: Top
+
+1 Overview
+**********
+
+Here is a brief summary of how to invoke `as'. For details, see *Note
+Command-Line Options: Invoking.
+
+ as [-a[cdghlns][=FILE]] [-alternate] [-D]
+ [-compress-debug-sections] [-nocompress-debug-sections]
+ [-debug-prefix-map OLD=NEW]
+ [-defsym SYM=VAL] [-f] [-g] [-gstabs]
+ [-gstabs+] [-gdwarf-2] [-help] [-I DIR] [-J]
+ [-K] [-L] [-listing-lhs-width=NUM]
+ [-listing-lhs-width2=NUM] [-listing-rhs-width=NUM]
+ [-listing-cont-lines=NUM] [-keep-locals] [-o
+ OBJFILE] [-R] [-reduce-memory-overheads] [-statistics]
+ [-v] [-version] [-version] [-W] [-warn]
+ [-fatal-warnings] [-w] [-x] [-Z] [@FILE]
+ [-size-check=[error|warning]]
+ [-target-help] [TARGET-OPTIONS]
+ [-|FILES ...]
+
+ _Target Alpha options:_
+ [-mCPU]
+ [-mdebug | -no-mdebug]
+ [-replace | -noreplace]
+ [-relax] [-g] [-GSIZE]
+ [-F] [-32addr]
+
+ _Target ARC options:_
+ [-marc[5|6|7|8]]
+ [-EB|-EL]
+
+ _Target ARM options:_
+ [-mcpu=PROCESSOR[+EXTENSION...]]
+ [-march=ARCHITECTURE[+EXTENSION...]]
+ [-mfpu=FLOATING-POINT-FORMAT]
+ [-mfloat-abi=ABI]
+ [-meabi=VER]
+ [-mthumb]
+ [-EB|-EL]
+ [-mapcs-32|-mapcs-26|-mapcs-float|
+ -mapcs-reentrant]
+ [-mthumb-interwork] [-k]
+
+ _Target Blackfin options:_
+ [-mcpu=PROCESSOR[-SIREVISION]]
+ [-mfdpic]
+ [-mno-fdpic]
+ [-mnopic]
+
+ _Target CRIS options:_
+ [-underscore | -no-underscore]
+ [-pic] [-N]
+ [-emulation=criself | -emulation=crisaout]
+ [-march=v0_v10 | -march=v10 | -march=v32 | -march=common_v10_v32]
+
+ _Target D10V options:_
+ [-O]
+
+ _Target D30V options:_
+ [-O|-n|-N]
+
+ _Target H8/300 options:_
+ [-h-tick-hex]
+
+ _Target i386 options:_
+ [-32|-n32|-64] [-n]
+ [-march=CPU[+EXTENSION...]] [-mtune=CPU]
+
+ _Target i960 options:_
+ [-ACA|-ACA_A|-ACB|-ACC|-AKA|-AKB|
+ -AKC|-AMC]
+ [-b] [-no-relax]
+
+ _Target IA-64 options:_
+ [-mconstant-gp|-mauto-pic]
+ [-milp32|-milp64|-mlp64|-mp64]
+ [-mle|mbe]
+ [-mtune=itanium1|-mtune=itanium2]
+ [-munwind-check=warning|-munwind-check=error]
+ [-mhint.b=ok|-mhint.b=warning|-mhint.b=error]
+ [-x|-xexplicit] [-xauto] [-xdebug]
+
+ _Target IP2K options:_
+ [-mip2022|-mip2022ext]
+
+ _Target M32C options:_
+ [-m32c|-m16c] [-relax] [-h-tick-hex]
+
+ _Target M32R options:_
+ [-m32rx|-[no-]warn-explicit-parallel-conflicts|
+ -W[n]p]
+
+ _Target M680X0 options:_
+ [-l] [-m68000|-m68010|-m68020|...]
+
+ _Target M68HC11 options:_
+ [-m68hc11|-m68hc12|-m68hcs12]
+ [-mshort|-mlong]
+ [-mshort-double|-mlong-double]
+ [-force-long-branches] [-short-branches]
+ [-strict-direct-mode] [-print-insn-syntax]
+ [-print-opcodes] [-generate-example]
+
+ _Target MCORE options:_
+ [-jsri2bsr] [-sifilter] [-relax]
+ [-mcpu=[210|340]]
+ _Target MICROBLAZE options:_
+
+ _Target MIPS options:_
+ [-nocpp] [-EL] [-EB] [-O[OPTIMIZATION LEVEL]]
+ [-g[DEBUG LEVEL]] [-G NUM] [-KPIC] [-call_shared]
+ [-non_shared] [-xgot [-mvxworks-pic]
+ [-mabi=ABI] [-32] [-n32] [-64] [-mfp32] [-mgp32]
+ [-march=CPU] [-mtune=CPU] [-mips1] [-mips2]
+ [-mips3] [-mips4] [-mips5] [-mips32] [-mips32r2]
+ [-mips64] [-mips64r2]
+ [-construct-floats] [-no-construct-floats]
+ [-trap] [-no-break] [-break] [-no-trap]
+ [-mips16] [-no-mips16]
+ [-mmicromips] [-mno-micromips]
+ [-msmartmips] [-mno-smartmips]
+ [-mips3d] [-no-mips3d]
+ [-mdmx] [-no-mdmx]
+ [-mdsp] [-mno-dsp]
+ [-mdspr2] [-mno-dspr2]
+ [-mmt] [-mno-mt]
+ [-mmcu] [-mno-mcu]
+ [-mfix7000] [-mno-fix7000]
+ [-mfix-vr4120] [-mno-fix-vr4120]
+ [-mfix-vr4130] [-mno-fix-vr4130]
+ [-mdebug] [-no-mdebug]
+ [-mpdr] [-mno-pdr]
+
+ _Target MMIX options:_
+ [-fixed-special-register-names] [-globalize-symbols]
+ [-gnu-syntax] [-relax] [-no-predefined-symbols]
+ [-no-expand] [-no-merge-gregs] [-x]
+ [-linker-allocated-gregs]
+
+ _Target PDP11 options:_
+ [-mpic|-mno-pic] [-mall] [-mno-extensions]
+ [-mEXTENSION|-mno-EXTENSION]
+ [-mCPU] [-mMACHINE]
+
+ _Target picoJava options:_
+ [-mb|-me]
+
+ _Target PowerPC options:_
+ [-a32|-a64]
+ [-mpwrx|-mpwr2|-mpwr|-m601|-mppc|-mppc32|-m603|-m604|-m403|-m405|
+ -m440|-m464|-m476|-m7400|-m7410|-m7450|-m7455|-m750cl|-mppc64|
+ -m620|-me500|-e500x2|-me500mc|-me500mc64|-mppc64bridge|-mbooke|
+ -mpower4|-mpr4|-mpower5|-mpwr5|-mpwr5x|-mpower6|-mpwr6|
+ -mpower7|-mpw7|-ma2|-mcell|-mspe|-mtitan|-me300|-mcom]
+ [-many] [-maltivec|-mvsx]
+ [-mregnames|-mno-regnames]
+ [-mrelocatable|-mrelocatable-lib|-K PIC] [-memb]
+ [-mlittle|-mlittle-endian|-le|-mbig|-mbig-endian|-be]
+ [-msolaris|-mno-solaris]
+ [-nops=COUNT]
+
+ _Target RX options:_
+ [-mlittle-endian|-mbig-endian]
+ [-m32bit-ints|-m16bit-ints]
+ [-m32bit-doubles|-m64bit-doubles]
+
+ _Target s390 options:_
+ [-m31|-m64] [-mesa|-mzarch] [-march=CPU]
+ [-mregnames|-mno-regnames]
+ [-mwarn-areg-zero]
+
+ _Target SCORE options:_
+ [-EB][-EL][-FIXDD][-NWARN]
+ [-SCORE5][-SCORE5U][-SCORE7][-SCORE3]
+ [-march=score7][-march=score3]
+ [-USE_R1][-KPIC][-O0][-G NUM][-V]
+
+ _Target SPARC options:_
+ [-Av6|-Av7|-Av8|-Asparclet|-Asparclite
+ -Av8plus|-Av8plusa|-Av9|-Av9a]
+ [-xarch=v8plus|-xarch=v8plusa] [-bump]
+ [-32|-64]
+
+ _Target TIC54X options:_
+ [-mcpu=54[123589]|-mcpu=54[56]lp] [-mfar-mode|-mf]
+ [-merrors-to-file <FILENAME>|-me <FILENAME>]
+
+
+ _Target TIC6X options:_
+ [-march=ARCH] [-mbig-endian|-mlittle-endian]
+ [-mdsbt|-mno-dsbt] [-mpid=no|-mpid=near|-mpid=far]
+ [-mpic|-mno-pic]
+
+ _Target TILE-Gx options:_
+ [-m32|-m64]
+
+
+ _Target Xtensa options:_
+ [-[no-]text-section-literals] [-[no-]absolute-literals]
+ [-[no-]target-align] [-[no-]longcalls]
+ [-[no-]transform]
+ [-rename-section OLDNAME=NEWNAME]
+
+
+ _Target Z80 options:_
+ [-z80] [-r800]
+ [ -ignore-undocumented-instructions] [-Wnud]
+ [ -ignore-unportable-instructions] [-Wnup]
+ [ -warn-undocumented-instructions] [-Wud]
+ [ -warn-unportable-instructions] [-Wup]
+ [ -forbid-undocumented-instructions] [-Fud]
+ [ -forbid-unportable-instructions] [-Fup]
+
+`@FILE'
+ Read command-line options from FILE. The options read are
+ inserted in place of the original @FILE option. If FILE does not
+ exist, or cannot be read, then the option will be treated
+ literally, and not removed.
+
+ Options in FILE are separated by whitespace. A whitespace
+ character may be included in an option by surrounding the entire
+ option in either single or double quotes. Any character
+ (including a backslash) may be included by prefixing the character
+ to be included with a backslash. The FILE may itself contain
+ additional @FILE options; any such options will be processed
+ recursively.
+
+`-a[cdghlmns]'
+ Turn on listings, in any of a variety of ways:
+
+ `-ac'
+ omit false conditionals
+
+ `-ad'
+ omit debugging directives
+
+ `-ag'
+ include general information, like as version and options
+ passed
+
+ `-ah'
+ include high-level source
+
+ `-al'
+ include assembly
+
+ `-am'
+ include macro expansions
+
+ `-an'
+ omit forms processing
+
+ `-as'
+ include symbols
+
+ `=file'
+ set the name of the listing file
+
+ You may combine these options; for example, use `-aln' for assembly
+ listing without forms processing. The `=file' option, if used,
+ must be the last one. By itself, `-a' defaults to `-ahls'.
+
+`--alternate'
+ Begin in alternate macro mode. *Note `.altmacro': Altmacro.
+
+`--compress-debug-sections'
+ Compress DWARF debug sections using zlib. The debug sections are
+ renamed to begin with `.zdebug', and the resulting object file may
+ not be compatible with older linkers and object file utilities.
+
+`--nocompress-debug-sections'
+ Do not compress DWARF debug sections. This is the default.
+
+`-D'
+ Ignored. This option is accepted for script compatibility with
+ calls to other assemblers.
+
+`--debug-prefix-map OLD=NEW'
+ When assembling files in directory `OLD', record debugging
+ information describing them as in `NEW' instead.
+
+`--defsym SYM=VALUE'
+ Define the symbol SYM to be VALUE before assembling the input file.
+ VALUE must be an integer constant. As in C, a leading `0x'
+ indicates a hexadecimal value, and a leading `0' indicates an octal
+ value. The value of the symbol can be overridden inside a source
+ file via the use of a `.set' pseudo-op.
+
+`-f'
+ "fast"--skip whitespace and comment preprocessing (assume source is
+ compiler output).
+
+`-g'
+`--gen-debug'
+ Generate debugging information for each assembler source line
+ using whichever debug format is preferred by the target. This
+ currently means either STABS, ECOFF or DWARF2.
+
+`--gstabs'
+ Generate stabs debugging information for each assembler line. This
+ may help debugging assembler code, if the debugger can handle it.
+
+`--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.
+
+`--gdwarf-2'
+ Generate DWARF2 debugging information for each assembler line.
+ 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.
+
+`--size-check=error'
+`--size-check=warning'
+ Issue an error or warning for invalid ELF .size directive.
+
+`--help'
+ Print a summary of the command line options and exit.
+
+`--target-help'
+ Print a summary of all target specific options and exit.
+
+`-I DIR'
+ Add directory DIR to the search list for `.include' directives.
+
+`-J'
+ Don't warn about signed overflow.
+
+`-K'
+ Issue warnings when difference tables altered for long
+ displacements.
+
+`-L'
+`--keep-locals'
+ Keep (in the symbol table) local symbols. These symbols start with
+ system-specific local label prefixes, typically `.L' for ELF
+ systems or `L' for traditional a.out systems. *Note Symbol
+ Names::.
+
+`--listing-lhs-width=NUMBER'
+ Set the maximum width, in words, of the output data column for an
+ assembler listing to NUMBER.
+
+`--listing-lhs-width2=NUMBER'
+ Set the maximum width, in words, of the output data column for
+ continuation lines in an assembler listing to NUMBER.
+
+`--listing-rhs-width=NUMBER'
+ Set the maximum width of an input source line, as displayed in a
+ listing, to NUMBER bytes.
+
+`--listing-cont-lines=NUMBER'
+ Set the maximum number of lines printed in a listing for a single
+ line of input to NUMBER + 1.
+
+`-o OBJFILE'
+ Name the object-file output from `as' OBJFILE.
+
+`-R'
+ Fold the data section into the text section.
+
+ Set the default size of GAS's hash tables to a prime number close
+ to NUMBER. Increasing this value can reduce the length of time it
+ takes the assembler to perform its tasks, at the expense of
+ increasing the assembler's memory requirements. Similarly
+ reducing this value can reduce the memory requirements at the
+ expense of speed.
+
+`--reduce-memory-overheads'
+ This option reduces GAS's memory requirements, at the expense of
+ making the assembly processes slower. Currently this switch is a
+ synonym for `--hash-size=4051', but in the future it may have
+ other effects as well.
+
+`--statistics'
+ Print the maximum space (in bytes) and total time (in seconds)
+ used by assembly.
+
+`--strip-local-absolute'
+ Remove local absolute symbols from the outgoing symbol table.
+
+`-v'
+`-version'
+ Print the `as' version.
+
+`--version'
+ Print the `as' version and exit.
+
+`-W'
+`--no-warn'
+ Suppress warning messages.
+
+`--fatal-warnings'
+ Treat warnings as errors.
+
+`--warn'
+ Don't suppress warning messages or treat them as errors.
+
+`-w'
+ Ignored.
+
+`-x'
+ Ignored.
+
+`-Z'
+ Generate an object file even after errors.
+
+`-- | FILES ...'
+ Standard input, or source files to assemble.
+
+
+ *Note Alpha Options::, for the options available when as is
+configured for an Alpha processor.
+
+ The following options are available when as is configured for an ARC
+processor.
+
+`-marc[5|6|7|8]'
+ This option selects the core processor variant.
+
+`-EB | -EL'
+ Select either big-endian (-EB) or little-endian (-EL) output.
+
+ The following options are available when as is configured for the ARM
+processor family.
+
+`-mcpu=PROCESSOR[+EXTENSION...]'
+ Specify which ARM processor variant is the target.
+
+`-march=ARCHITECTURE[+EXTENSION...]'
+ Specify which ARM architecture variant is used by the target.
+
+`-mfpu=FLOATING-POINT-FORMAT'
+ Select which Floating Point architecture is the target.
+
+`-mfloat-abi=ABI'
+ Select which floating point ABI is in use.
+
+`-mthumb'
+ Enable Thumb only instruction decoding.
+
+`-mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant'
+ Select which procedure calling convention is in use.
+
+`-EB | -EL'
+ Select either big-endian (-EB) or little-endian (-EL) output.
+
+`-mthumb-interwork'
+ Specify that the code has been generated with interworking between
+ Thumb and ARM code in mind.
+
+`-k'
+ Specify that PIC code has been generated.
+
+ *Note Blackfin Options::, for the options available when as is
+configured for the Blackfin processor family.
+
+ See the info pages for documentation of the CRIS-specific options.
+
+ The following options are available when as is configured for a D10V
+processor.
+`-O'
+ Optimize output by parallelizing instructions.
+
+ The following options are available when as is configured for a D30V
+processor.
+`-O'
+ Optimize output by parallelizing instructions.
+
+`-n'
+ Warn when nops are generated.
+
+`-N'
+ Warn when a nop after a 32-bit multiply instruction is generated.
+
+ *Note i386-Options::, for the options available when as is
+configured for an i386 processor.
+
+ The following options are available when as is configured for the
+Intel 80960 processor.
+
+`-ACA | -ACA_A | -ACB | -ACC | -AKA | -AKB | -AKC | -AMC'
+ Specify which variant of the 960 architecture is the target.
+
+`-b'
+ Add code to collect statistics about branches taken.
+
+`-no-relax'
+ Do not alter compare-and-branch instructions for long
+ displacements; error if necessary.
+
+
+ The following options are available when as is configured for the
+Ubicom IP2K series.
+
+`-mip2022ext'
+ Specifies that the extended IP2022 instructions are allowed.
+
+`-mip2022'
+ Restores the default behaviour, which restricts the permitted
+ instructions to just the basic IP2022 ones.
+
+
+ The following options are available when as is configured for the
+Renesas M32C and M16C processors.
+
+`-m32c'
+ Assemble M32C instructions.
+
+`-m16c'
+ Assemble M16C instructions (the default).
+
+`-relax'
+ Enable support for link-time relaxations.
+
+`-h-tick-hex'
+ Support H'00 style hex constants in addition to 0x00 style.
+
+
+ The following options are available when as is configured for the
+Renesas M32R (formerly Mitsubishi M32R) series.
+
+`--m32rx'
+ Specify which processor in the M32R family is the target. The
+ default is normally the M32R, but this option changes it to the
+ M32RX.
+
+`--warn-explicit-parallel-conflicts or --Wp'
+ Produce warning messages when questionable parallel constructs are
+ encountered.
+
+`--no-warn-explicit-parallel-conflicts or --Wnp'
+ Do not produce warning messages when questionable parallel
+ constructs are encountered.
+
+
+ The following options are available when as is configured for the
+Motorola 68000 series.
+
+`-l'
+ Shorten references to undefined symbols, to one word instead of
+ two.
+
+`-m68000 | -m68008 | -m68010 | -m68020 | -m68030'
+`| -m68040 | -m68060 | -m68302 | -m68331 | -m68332'
+`| -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.
+
+`-m68881 | -m68882 | -mno-68881 | -mno-68882'
+ The target machine does (or does not) have a floating-point
+ coprocessor. The default is to assume a coprocessor for 68020,
+ 68030, and cpu32. Although the basic 68000 is not compatible with
+ the 68881, a combination of the two can be specified, since it's
+ possible to do emulation of the coprocessor instructions with the
+ main processor.
+
+`-m68851 | -mno-68851'
+ The target machine does (or does not) have a memory-management
+ unit coprocessor. The default is to assume an MMU for 68020 and
+ up.
+
+
+ For details about the PDP-11 machine dependent features options, see
+*Note PDP-11-Options::.
+
+`-mpic | -mno-pic'
+ Generate position-independent (or position-dependent) code. The
+ default is `-mpic'.
+
+`-mall'
+`-mall-extensions'
+ Enable all instruction set extensions. This is the default.
+
+`-mno-extensions'
+ Disable all instruction set extensions.
+
+`-mEXTENSION | -mno-EXTENSION'
+ Enable (or disable) a particular instruction set extension.
+
+`-mCPU'
+ Enable the instruction set extensions supported by a particular
+ CPU, and disable all other extensions.
+
+`-mMACHINE'
+ Enable the instruction set extensions supported by a particular
+ machine model, and disable all other extensions.
+
+ The following options are available when as is configured for a
+picoJava processor.
+
+`-mb'
+ Generate "big endian" format output.
+
+`-ml'
+ Generate "little endian" format output.
+
+
+ The following options are available when as is configured for the
+Motorola 68HC11 or 68HC12 series.
+
+`-m68hc11 | -m68hc12 | -m68hcs12'
+ Specify what processor is the target. The default is defined by
+ the configuration option when building the assembler.
+
+`-mshort'
+ Specify to use the 16-bit integer ABI.
+
+`-mlong'
+ Specify to use the 32-bit integer ABI.
+
+`-mshort-double'
+ Specify to use the 32-bit double ABI.
+
+`-mlong-double'
+ Specify to use the 64-bit double ABI.
+
+`--force-long-branches'
+ Relative branches are turned into absolute ones. This concerns
+ conditional branches, unconditional branches and branches to a sub
+ routine.
+
+`-S | --short-branches'
+ Do not turn relative branches into absolute ones when the offset
+ is out of range.
+
+`--strict-direct-mode'
+ Do not turn the direct addressing mode into extended addressing
+ mode when the instruction does not support direct addressing mode.
+
+`--print-insn-syntax'
+ Print the syntax of instruction in case of error.
+
+`--print-opcodes'
+ print the list of instructions with syntax and then exit.
+
+`--generate-example'
+ print an example of instruction for each possible instruction and
+ then exit. This option is only useful for testing `as'.
+
+
+ The following options are available when `as' is configured for the
+SPARC architecture:
+
+`-Av6 | -Av7 | -Av8 | -Asparclet | -Asparclite'
+`-Av8plus | -Av8plusa | -Av9 | -Av9a'
+ Explicitly select a variant of the SPARC architecture.
+
+ `-Av8plus' and `-Av8plusa' select a 32 bit environment. `-Av9'
+ and `-Av9a' select a 64 bit environment.
+
+ `-Av8plusa' and `-Av9a' enable the SPARC V9 instruction set with
+ UltraSPARC extensions.
+
+`-xarch=v8plus | -xarch=v8plusa'
+ For compatibility with the Solaris v9 assembler. These options are
+ equivalent to -Av8plus and -Av8plusa, respectively.
+
+`-bump'
+ Warn when the assembler switches to another architecture.
+
+ The following options are available when as is configured for the
+'c54x architecture.
+
+`-mfar-mode'
+ Enable extended addressing mode. All addresses and relocations
+ will assume extended addressing (usually 23 bits).
+
+`-mcpu=CPU_VERSION'
+ Sets the CPU version being compiled for.
+
+`-merrors-to-file FILENAME'
+ Redirect error output to a file, for broken systems which don't
+ support such behaviour in the shell.
+
+ The following options are available when as is configured for a MIPS
+processor.
+
+`-G NUM'
+ This option sets the largest size of an object that can be
+ referenced implicitly with the `gp' register. It is only accepted
+ for targets that use ECOFF format, such as a DECstation running
+ Ultrix. The default value is 8.
+
+`-EB'
+ Generate "big endian" format output.
+
+`-EL'
+ Generate "little endian" format output.
+
+`-mips1'
+`-mips2'
+`-mips3'
+`-mips4'
+`-mips5'
+`-mips32'
+`-mips32r2'
+`-mips64'
+`-mips64r2'
+ Generate code for a particular MIPS Instruction Set Architecture
+ level. `-mips1' is an alias for `-march=r3000', `-mips2' is an
+ alias for `-march=r6000', `-mips3' is an alias for `-march=r4000'
+ and `-mips4' is an alias for `-march=r8000'. `-mips5', `-mips32',
+ `-mips32r2', `-mips64', and `-mips64r2' correspond to generic
+ `MIPS V', `MIPS32', `MIPS32 Release 2', `MIPS64', and `MIPS64
+ Release 2' ISA processors, respectively.
+
+`-march=CPU'
+ Generate code for a particular MIPS cpu.
+
+`-mtune=CPU'
+ Schedule and tune for a particular MIPS cpu.
+
+`-mfix7000'
+`-mno-fix7000'
+ Cause nops to be inserted if the read of the destination register
+ of an mfhi or mflo instruction occurs in the following two
+ instructions.
+
+`-mdebug'
+`-no-mdebug'
+ Cause stabs-style debugging output to go into an ECOFF-style
+ .mdebug section instead of the standard ELF .stabs sections.
+
+`-mpdr'
+`-mno-pdr'
+ Control generation of `.pdr' sections.
+
+`-mgp32'
+`-mfp32'
+ The register sizes are normally inferred from the ISA and ABI, but
+ these flags force a certain group of registers to be treated as 32
+ bits wide at all times. `-mgp32' controls the size of
+ general-purpose registers and `-mfp32' controls the size of
+ floating-point registers.
+
+`-mips16'
+`-no-mips16'
+ Generate code for the MIPS 16 processor. This is equivalent to
+ putting `.set mips16' at the start of the assembly file.
+ `-no-mips16' turns off this option.
+
+`-mmicromips'
+`-mno-micromips'
+ Generate code for the microMIPS processor. This is equivalent to
+ putting `.set micromips' at the start of the assembly file.
+ `-mno-micromips' turns off this option. This is equivalent to
+ putting `.set nomicromips' at the start of the assembly file.
+
+`-msmartmips'
+`-mno-smartmips'
+ Enables the SmartMIPS extension to the MIPS32 instruction set.
+ This is equivalent to putting `.set smartmips' at the start of the
+ assembly file. `-mno-smartmips' turns off this option.
+
+`-mips3d'
+`-no-mips3d'
+ Generate code for the MIPS-3D Application Specific Extension.
+ This tells the assembler to accept MIPS-3D instructions.
+ `-no-mips3d' turns off this option.
+
+`-mdmx'
+`-no-mdmx'
+ Generate code for the MDMX Application Specific Extension. This
+ tells the assembler to accept MDMX instructions. `-no-mdmx' turns
+ off this option.
+
+`-mdsp'
+`-mno-dsp'
+ Generate code for the DSP Release 1 Application Specific Extension.
+ This tells the assembler to accept DSP Release 1 instructions.
+ `-mno-dsp' turns off this option.
+
+`-mdspr2'
+`-mno-dspr2'
+ Generate code for the DSP Release 2 Application Specific Extension.
+ This option implies -mdsp. This tells the assembler to accept DSP
+ Release 2 instructions. `-mno-dspr2' turns off this option.
+
+`-mmt'
+`-mno-mt'
+ Generate code for the MT Application Specific Extension. This
+ tells the assembler to accept MT instructions. `-mno-mt' turns
+ off this option.
+
+`-mmcu'
+`-mno-mcu'
+ Generate code for the MCU Application Specific Extension. This
+ tells the assembler to accept MCU instructions. `-mno-mcu' turns
+ off this option.
+
+`--construct-floats'
+`--no-construct-floats'
+ The `--no-construct-floats' option disables the construction of
+ double width floating point constants by loading the two halves of
+ the value into the two single width floating point registers that
+ make up the double width register. By default
+ `--construct-floats' is selected, allowing construction of these
+ floating point constants.
+
+`--emulation=NAME'
+ This option causes `as' to emulate `as' configured for some other
+ target, in all respects, including output format (choosing between
+ ELF and ECOFF only), handling of pseudo-opcodes which may generate
+ debugging information or store symbol table information, and
+ default endianness. The available configuration names are:
+ `mipsecoff', `mipself', `mipslecoff', `mipsbecoff', `mipslelf',
+ `mipsbelf'. The first two do not alter the default endianness
+ from that of the primary target for which the assembler was
+ configured; the others change the default to little- or big-endian
+ as indicated by the `b' or `l' in the name. Using `-EB' or `-EL'
+ will override the endianness selection in any case.
+
+ This option is currently supported only when the primary target
+ `as' is configured for is a MIPS ELF or ECOFF target.
+ Furthermore, the primary target or others specified with
+ `--enable-targets=...' at configuration time must include support
+ for the other format, if both are to be available. For example,
+ the Irix 5 configuration includes support for both.
+
+ Eventually, this option will support more configurations, with more
+ fine-grained control over the assembler's behavior, and will be
+ supported for more processors.
+
+`-nocpp'
+ `as' ignores this option. It is accepted for compatibility with
+ the native tools.
+
+`--trap'
+`--no-trap'
+`--break'
+`--no-break'
+ Control how to deal with multiplication overflow and division by
+ zero. `--trap' or `--no-break' (which are synonyms) take a trap
+ exception (and only work for Instruction Set Architecture level 2
+ and higher); `--break' or `--no-trap' (also synonyms, and the
+ default) take a break exception.
+
+`-n'
+ When this option is used, `as' will issue a warning every time it
+ generates a nop instruction from a macro.
+
+ The following options are available when as is configured for an
+MCore processor.
+
+`-jsri2bsr'
+`-nojsri2bsr'
+ Enable or disable the JSRI to BSR transformation. By default this
+ is enabled. The command line option `-nojsri2bsr' can be used to
+ disable it.
+
+`-sifilter'
+`-nosifilter'
+ Enable or disable the silicon filter behaviour. By default this
+ is disabled. The default can be overridden by the `-sifilter'
+ command line option.
+
+`-relax'
+ Alter jump instructions for long displacements.
+
+`-mcpu=[210|340]'
+ Select the cpu type on the target hardware. This controls which
+ instructions can be assembled.
+
+`-EB'
+ Assemble for a big endian target.
+
+`-EL'
+ Assemble for a little endian target.
+
+
+ See the info pages for documentation of the MMIX-specific options.
+
+ *Note PowerPC-Opts::, for the options available when as is configured
+for a PowerPC processor.
+
+ See the info pages for documentation of the RX-specific options.
+
+ The following options are available when as is configured for the
+s390 processor family.
+
+`-m31'
+`-m64'
+ Select the word size, either 31/32 bits or 64 bits.
+
+`-mesa'
+
+`-mzarch'
+ Select the architecture mode, either the Enterprise System
+ Architecture (esa) or the z/Architecture mode (zarch).
+
+`-march=PROCESSOR'
+ Specify which s390 processor variant is the target, `g6', `g6',
+ `z900', `z990', `z9-109', `z9-ec', or `z10'.
+
+`-mregnames'
+`-mno-regnames'
+ Allow or disallow symbolic names for registers.
+
+`-mwarn-areg-zero'
+ Warn whenever the operand for a base or index register has been
+ specified but evaluates to zero.
+
+ *Note TIC6X Options::, for the options available when as is
+configured for a TMS320C6000 processor.
+
+ *Note TILE-Gx Options::, for the options available when as is
+configured for a TILE-Gx processor.
+
+ *Note Xtensa Options::, for the options available when as is
+configured for an Xtensa processor.
+
+ The following options are available when as is configured for a Z80
+family processor.
+`-z80'
+ Assemble for Z80 processor.
+
+`-r800'
+ Assemble for R800 processor.
+
+`-ignore-undocumented-instructions'
+`-Wnud'
+ Assemble undocumented Z80 instructions that also work on R800
+ without warning.
+
+`-ignore-unportable-instructions'
+`-Wnup'
+ Assemble all undocumented Z80 instructions without warning.
+
+`-warn-undocumented-instructions'
+`-Wud'
+ Issue a warning for undocumented Z80 instructions that also work
+ on R800.
+
+`-warn-unportable-instructions'
+`-Wup'
+ Issue a warning for undocumented Z80 instructions that do not work
+ on R800.
+
+`-forbid-undocumented-instructions'
+`-Fud'
+ Treat all undocumented instructions as errors.
+
+`-forbid-unportable-instructions'
+`-Fup'
+ Treat undocumented Z80 instructions that do not work on R800 as
+ errors.
+
+* Menu:
+
+* Manual:: Structure of this Manual
+* GNU Assembler:: The GNU Assembler
+* Object Formats:: Object File Formats
+* Command Line:: Command Line
+* Input Files:: Input Files
+* Object:: Output (Object) File
+* Errors:: Error and Warning Messages
+
+
+File: as.info, Node: Manual, Next: GNU Assembler, Up: Overview
+
+1.1 Structure of this Manual
+============================
+
+This manual is intended to describe what you need to know to use GNU
+`as'. We cover the syntax expected in source files, including notation
+for symbols, constants, and expressions; the directives that `as'
+understands; and of course how to invoke `as'.
+
+ This manual also describes some of the machine-dependent features of
+various flavors of the assembler.
+
+ On the other hand, this manual is _not_ intended as an introduction
+to programming in assembly language--let alone programming in general!
+In a similar vein, we make no attempt to introduce the machine
+architecture; we do _not_ describe the instruction set, standard
+mnemonics, registers or addressing modes that are standard to a
+particular architecture. You may want to consult the manufacturer's
+machine architecture manual for this information.
+
+
+File: as.info, Node: GNU Assembler, Next: Object Formats, Prev: Manual, Up: Overview
+
+1.2 The GNU Assembler
+=====================
+
+GNU `as' is really a family of assemblers. If you use (or have used)
+the GNU assembler on one architecture, you should find a fairly similar
+environment when you use it on another architecture. Each version has
+much in common with the others, including object file formats, most
+assembler directives (often called "pseudo-ops") and assembler syntax.
+
+ `as' is primarily intended to assemble the output of the GNU C
+compiler `gcc' for use by the linker `ld'. Nevertheless, we've tried
+to make `as' assemble correctly everything that other assemblers for
+the same machine would assemble. Any exceptions are documented
+explicitly (*note Machine Dependencies::). This doesn't mean `as'
+always uses the same syntax as another assembler for the same
+architecture; for example, we know of several incompatible versions of
+680x0 assembly language syntax.
+
+ Unlike older assemblers, `as' is designed to assemble a source
+program in one pass of the source file. This has a subtle impact on the
+`.org' directive (*note `.org': Org.).
+
+
+File: as.info, Node: Object Formats, Next: Command Line, Prev: GNU Assembler, Up: Overview
+
+1.3 Object File Formats
+=======================
+
+The GNU assembler can be configured to produce several alternative
+object file formats. For the most part, this does not affect how you
+write assembly language programs; but directives for debugging symbols
+are typically different in different file formats. *Note Symbol
+Attributes: Symbol Attributes.
+
+
+File: as.info, Node: Command Line, Next: Input Files, Prev: Object Formats, Up: Overview
+
+1.4 Command Line
+================
+
+After the program name `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 significant.
+
+ `--' (two hyphens) by itself names the standard input file
+explicitly, as one of the files for `as' to assemble.
+
+ Except for `--' any command line argument that begins with a hyphen
+(`-') is an option. Each option changes the behavior of `as'. No
+option changes the way another option works. An option is a `-'
+followed by one or more letters; the case of the letter is important.
+All options are optional.
+
+ Some options expect exactly one file name to follow them. The file
+name may either immediately follow the option's letter (compatible with
+older assemblers) or it may be the next command argument (GNU
+standard). These two command lines are equivalent:
+
+ as -o my-object-file.o mumble.s
+ as -omy-object-file.o mumble.s
+
+
+File: as.info, Node: Input Files, Next: Object, Prev: Command Line, Up: Overview
+
+1.5 Input Files
+===============
+
+We use the phrase "source program", abbreviated "source", to describe
+the program input to one run of `as'. The program may be in one or
+more files; how the source is partitioned into files 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.
+
+ Each time you run `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.)
+
+ You give `as' a command line that has zero or more input file names.
+The input files are read (from left file name to right). A command
+line argument (in any position) that has no special meaning is taken to
+be an input file name.
+
+ If you give `as' no file names it attempts to read one input file
+from the `as' standard input, which is normally your terminal. You may
+have to type <ctl-D> to tell `as' there is no more program to assemble.
+
+ Use `--' if you need to explicitly name the standard input file in
+your command line.
+
+ If the source is empty, `as' produces a small, empty object file.
+
+Filenames and Line-numbers
+--------------------------
+
+There are two ways of locating a line in the input file (or files) and
+either may be used in reporting error messages. One way refers to a
+line number in a physical file; the other refers to a line number in a
+"logical" file. *Note Error and Warning Messages: Errors.
+
+ "Physical files" are those files named in the command line given to
+`as'.
+
+ "Logical files" are simply names declared explicitly by assembler
+directives; they bear no relation to physical files. Logical file
+names help error messages reflect the original source file, when `as'
+source is itself synthesized from other files. `as' understands the
+`#' directives emitted by the `gcc' preprocessor. See also *Note
+`.file': File.
+
+
+File: as.info, Node: Object, Next: Errors, Prev: Input Files, Up: Overview
+
+1.6 Output (Object) File
+========================
+
+Every time you run `as' it produces an output file, which is your
+assembly language program translated into numbers. This file is the
+object file. Its default name is `a.out'. You can give it another
+name by using the `-o' option. Conventionally, object file names end
+with `.o'. The default name is used for historical reasons: older
+assemblers were capable of assembling self-contained programs directly
+into a runnable program. (For some formats, this isn't currently
+possible, but it can be done for the `a.out' format.)
+
+ The object file is meant for input to the linker `ld'. It contains
+assembled program code, information to help `ld' integrate the
+assembled program into a runnable file, and (optionally) symbolic
+information for the debugger.
+
+
+File: as.info, Node: Errors, Prev: Object, Up: Overview
+
+1.7 Error and Warning Messages
+==============================
+
+`as' may write warnings and error messages to the standard error file
+(usually your terminal). This should not happen when a compiler runs
+`as' automatically. Warnings report an assumption made so that `as'
+could keep assembling a flawed program; errors report a grave problem
+that stops the assembly.
+
+ Warning messages have the format
+
+ file_name:NNN:Warning Message Text
+
+(where NNN is a line number). If a logical file name has been given
+(*note `.file': File.) it is used for the filename, otherwise the name
+of the current input file is used. If a logical line number was given
+(*note `.line': Line.) then it is used to calculate the number printed,
+otherwise the actual line in the current source file is printed. The
+message text is intended to be self explanatory (in the grand Unix
+tradition).
+
+ Error messages have the format
+ file_name:NNN:FATAL:Error Message Text
+ The file name and line number are derived as for warning messages.
+The actual message text may be rather less explanatory because many of
+them aren't supposed to happen.
+
+
+File: as.info, Node: Invoking, Next: Syntax, Prev: Overview, Up: Top
+
+2 Command-Line Options
+**********************
+
+This chapter describes command-line options available in _all_ versions
+of the GNU assembler; see *Note Machine Dependencies::, for options
+specific to particular machine architectures.
+
+ If you are invoking `as' via the GNU C compiler, you can use the
+`-Wa' option to pass arguments through to the assembler. The assembler
+arguments must be separated from each other (and the `-Wa') by commas.
+For example:
+
+ gcc -c -g -O -Wa,-alh,-L file.c
+
+This passes two options to the assembler: `-alh' (emit a listing to
+standard output with high-level and assembly source) and `-L' (retain
+local symbols in the symbol table).
+
+ Usually you do not need to use this `-Wa' mechanism, since many
+compiler command-line options are automatically passed to the assembler
+by the compiler. (You can call the GNU compiler driver with the `-v'
+option to see precisely what options it passes to each compilation
+pass, including the assembler.)
+
+* Menu:
+
+* a:: -a[cdghlns] enable listings
+* alternate:: --alternate enable alternate macro syntax
+* D:: -D for compatibility
+* f:: -f to work faster
+* I:: -I for .include search path
+
+* K:: -K for difference tables
+
+* L:: -L to retain local symbols
+* 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
+* R:: -R to join data and text sections
+* statistics:: --statistics to see statistics about assembly
+* traditional-format:: --traditional-format for compatible output
+* v:: -v to announce version
+* W:: -W, --no-warn, --warn, --fatal-warnings to control warnings
+* Z:: -Z to make object file even after errors
+
+
+File: as.info, Node: a, Next: alternate, Up: Invoking
+
+2.1 Enable Listings: `-a[cdghlns]'
+==================================
+
+These options enable listing output from the assembler. By itself,
+`-a' requests high-level, assembly, and symbols listing. You can use
+other letters to select specific options for the list: `-ah' requests a
+high-level language listing, `-al' requests an output-program assembly
+listing, and `-as' requests a symbol table listing. High-level
+listings require that a compiler debugging option like `-g' be used,
+and that assembly listings (`-al') be requested also.
+
+ Use the `-ag' option to print a first section with general assembly
+information, like as version, switches passed, or time stamp.
+
+ Use the `-ac' option to omit false conditionals from a listing. Any
+lines which are not assembled because of a false `.if' (or `.ifdef', or
+any other conditional), or a true `.if' followed by an `.else', will be
+omitted from the listing.
+
+ Use the `-ad' option to omit debugging directives from the listing.
+
+ Once you have specified one of these options, you can further control
+listing output and its appearance using the directives `.list',
+`.nolist', `.psize', `.eject', `.title', and `.sbttl'. The `-an'
+option turns off all forms processing. If you do not request listing
+output with one of the `-a' options, the listing-control directives
+have no effect.
+
+ The letters after `-a' may be combined into one option, _e.g._,
+`-aln'.
+
+ Note if the assembler source is coming from the standard input (e.g.,
+because it is being created by `gcc' and the `-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.
+
+
+File: as.info, Node: alternate, Next: D, Prev: a, Up: Invoking
+
+2.2 `--alternate'
+=================
+
+Begin in alternate macro mode, see *Note `.altmacro': Altmacro.
+
+
+File: as.info, Node: D, Next: f, Prev: alternate, Up: Invoking
+
+2.3 `-D'
+========
+
+This option has no effect whatsoever, but it is accepted to make it more
+likely that scripts written for other assemblers also work with `as'.
+
+
+File: as.info, Node: f, Next: I, Prev: D, Up: Invoking
+
+2.4 Work Faster: `-f'
+=====================
+
+`-f' should only be used when assembling programs written by a
+(trusted) compiler. `-f' stops the assembler from doing whitespace and
+comment preprocessing on the input file(s) before assembling them.
+*Note Preprocessing: Preprocessing.
+
+ _Warning:_ if you use `-f' when the files actually need to be
+ preprocessed (if they contain comments, for example), `as' does
+ not work correctly.
+
+
+File: as.info, Node: I, Next: K, Prev: f, Up: Invoking
+
+2.5 `.include' Search Path: `-I' PATH
+=====================================
+
+Use this option to add a PATH to the list of directories `as' searches
+for files specified in `.include' directives (*note `.include':
+Include.). You may use `-I' as many times as necessary to include a
+variety of paths. The current working directory is always searched
+first; after that, `as' searches any `-I' directories in the same order
+as they were specified (left to right) on the command line.
+
+
+File: as.info, Node: K, Next: L, Prev: I, Up: Invoking
+
+2.6 Difference Tables: `-K'
+===========================
+
+`as' sometimes alters the code emitted for directives of the form
+`.word SYM1-SYM2'. *Note `.word': Word. You can use the `-K' option
+if you want a warning issued when this is done.
+
+
+File: as.info, Node: L, Next: listing, Prev: K, Up: Invoking
+
+2.7 Include Local Symbols: `-L'
+===============================
+
+Symbols beginning with system-specific local label prefixes, typically
+`.L' for ELF systems or `L' for traditional a.out systems, are called
+"local symbols". *Note Symbol Names::. Normally you do not see such
+symbols when debugging, because they are intended for the use of
+programs (like compilers) that compose assembler programs, not for your
+notice. Normally both `as' and `ld' discard such symbols, so you do
+not normally debug with them.
+
+ This option tells `as' to retain those local symbols in the object
+file. Usually if you do this you also tell the linker `ld' to preserve
+those symbols.
+
+
+File: as.info, Node: listing, Next: M, Prev: L, Up: Invoking
+
+2.8 Configuring listing output: `--listing'
+===========================================
+
+The listing feature of the assembler can be enabled via the command
+line switch `-a' (*note 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 directives inside the assembler source
+(i.e., `.list' (*note List::), `.title' (*note Title::), `.sbttl'
+(*note Sbttl::), `.psize' (*note Psize::), and `.eject' (*note Eject::)
+and also by the following switches:
+
+`--listing-lhs-width=`number''
+ 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.
+
+`--listing-lhs-width2=`number''
+ Sets the maximum width, in words, of any further lines of the hex
+ byte dump for a given input source line. If this value is not
+ specified, it defaults to being the same as the value specified
+ for `--listing-lhs-width'. If neither switch is used the default
+ is to one.
+
+`--listing-rhs-width=`number''
+ 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.
+
+`--listing-cont-lines=`number''
+ 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.
+
+
+File: as.info, Node: M, Next: MD, Prev: listing, Up: Invoking
+
+2.9 Assemble in MRI Compatibility Mode: `-M'
+============================================
+
+The `-M' or `--mri' option selects MRI compatibility mode. This
+changes the syntax and pseudo-op handling of `as' to make it compatible
+with the `ASM68K' or the `ASM960' (depending upon the configured
+target) assembler from Microtec Research. The exact nature of the MRI
+syntax will not be documented here; see the MRI manuals for more
+information. Note in particular that the handling of macros and macro
+arguments is somewhat different. The purpose of this option is to
+permit assembling existing MRI assembler code using `as'.
+
+ The MRI compatibility is not complete. Certain operations of the
+MRI assembler depend upon its object file format, and can not be
+supported using other object file formats. Supporting these would
+require enhancing each object file format individually. These are:
+
+ * global symbols in common section
+
+ The m68k MRI assembler supports common sections which are merged
+ by the linker. Other object file formats do not support this.
+ `as' handles common sections by treating them as a single common
+ symbol. It permits local symbols to be defined within a common
+ section, but it can not support global symbols, since it has no
+ way to describe them.
+
+ * complex relocations
+
+ The MRI assemblers support relocations against a negated section
+ address, and relocations which combine the start addresses of two
+ or more sections. These are not support by other object file
+ formats.
+
+ * `END' pseudo-op specifying start address
+
+ The MRI `END' pseudo-op permits the specification of a start
+ address. This is not supported by other object file formats. The
+ start address may instead be specified using the `-e' option to
+ the linker, or in a linker script.
+
+ * `IDNT', `.ident' and `NAME' pseudo-ops
+
+ The MRI `IDNT', `.ident' and `NAME' pseudo-ops assign a module
+ name to the output file. This is not supported by other object
+ file formats.
+
+ * `ORG' pseudo-op
+
+ The m68k MRI `ORG' pseudo-op begins an absolute section at a given
+ address. This differs from the usual `as' `.org' pseudo-op, which
+ changes the location within the current section. Absolute
+ sections are not supported by other object file formats. The
+ address of a section may be assigned within a linker script.
+
+ There are some other features of the MRI assembler which are not
+supported by `as', typically either because they are difficult or
+because they seem of little consequence. Some of these may be
+supported in future releases.
+
+ * EBCDIC strings
+
+ EBCDIC strings are not supported.
+
+ * packed binary coded decimal
+
+ Packed binary coded decimal is not supported. This means that the
+ `DC.P' and `DCB.P' pseudo-ops are not supported.
+
+ * `FEQU' pseudo-op
+
+ The m68k `FEQU' pseudo-op is not supported.
+
+ * `NOOBJ' pseudo-op
+
+ The m68k `NOOBJ' pseudo-op is not supported.
+
+ * `OPT' branch control options
+
+ The m68k `OPT' branch control options--`B', `BRS', `BRB', `BRL',
+ and `BRW'--are ignored. `as' automatically relaxes all branches,
+ whether forward or backward, to an appropriate size, so these
+ options serve no purpose.
+
+ * `OPT' list control options
+
+ The following m68k `OPT' list control options are ignored: `C',
+ `CEX', `CL', `CRE', `E', `G', `I', `M', `MEX', `MC', `MD', `X'.
+
+ * other `OPT' options
+
+ The following m68k `OPT' options are ignored: `NEST', `O', `OLD',
+ `OP', `P', `PCO', `PCR', `PCS', `R'.
+
+ * `OPT' `D' option is default
+
+ The m68k `OPT' `D' option is the default, unlike the MRI assembler.
+ `OPT NOD' may be used to turn it off.
+
+ * `XREF' pseudo-op.
+
+ The m68k `XREF' pseudo-op is ignored.
+
+ * `.debug' pseudo-op
+
+ The i960 `.debug' pseudo-op is not supported.
+
+ * `.extended' pseudo-op
+
+ The i960 `.extended' pseudo-op is not supported.
+
+ * `.list' pseudo-op.
+
+ The various options of the i960 `.list' pseudo-op are not
+ supported.
+
+ * `.optimize' pseudo-op
+
+ The i960 `.optimize' pseudo-op is not supported.
+
+ * `.output' pseudo-op
+
+ The i960 `.output' pseudo-op is not supported.
+
+ * `.setreal' pseudo-op
+
+ The i960 `.setreal' pseudo-op is not supported.
+
+
+
+File: as.info, Node: MD, Next: o, Prev: M, Up: Invoking
+
+2.10 Dependency Tracking: `--MD'
+================================
+
+`as' can generate a dependency file for the file it creates. This file
+consists of a single rule suitable for `make' describing the
+dependencies of the main source file.
+
+ The rule is written to the file named in its argument.
+
+ This feature is used in the automatic updating of makefiles.
+
+
+File: as.info, Node: o, Next: R, Prev: MD, Up: Invoking
+
+2.11 Name the Object File: `-o'
+===============================
+
+There is always one object file output when you run `as'. By default
+it has the name `a.out' (or `b.out', for Intel 960 targets only). You
+use this option (which takes exactly one filename) to give the object
+file a different name.
+
+ Whatever the object file is called, `as' overwrites any existing
+file of the same name.
+
+
+File: as.info, Node: R, Next: statistics, Prev: o, Up: Invoking
+
+2.12 Join Data and Text Sections: `-R'
+======================================
+
+`-R' tells `as' to write the object file as if all data-section data
+lives in the text section. This is only done at the very last moment:
+your binary data are the same, but data section parts are relocated
+differently. The data section part of your object file is zero bytes
+long because all its bytes are appended to the text section. (*Note
+Sections and Relocation: Sections.)
+
+ When you specify `-R' it would be possible to generate shorter
+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 `as'. In future, `-R' may work this way.
+
+ When `as' is configured for COFF or ELF output, this option is only
+useful if you use sections named `.text' and `.data'.
+
+ `-R' is not supported for any of the HPPA targets. Using `-R'
+generates a warning from `as'.
+
+
+File: as.info, Node: statistics, Next: traditional-format, Prev: R, Up: Invoking
+
+2.13 Display Assembly Statistics: `--statistics'
+================================================
+
+Use `--statistics' to display two statistics about the resources used by
+`as': the maximum amount of space allocated during the assembly (in
+bytes), and the total execution time taken for the assembly (in CPU
+seconds).
+
+
+File: as.info, Node: traditional-format, Next: v, Prev: statistics, Up: Invoking
+
+2.14 Compatible Output: `--traditional-format'
+==============================================
+
+For some targets, the output of `as' is different in some ways from the
+output of some existing assembler. This switch requests `as' to use
+the traditional format instead.
+
+ For example, it disables the exception frame optimizations which
+`as' normally does by default on `gcc' output.
+
+
+File: as.info, Node: v, Next: W, Prev: traditional-format, Up: Invoking
+
+2.15 Announce Version: `-v'
+===========================
+
+You can find out what version of as is running by including the option
+`-v' (which you can also spell as `-version') on the command line.
+
+
+File: as.info, Node: W, Next: Z, Prev: v, Up: Invoking
+
+2.16 Control Warnings: `-W', `--warn', `--no-warn', `--fatal-warnings'
+======================================================================
+
+`as' should never give a warning or error message when assembling
+compiler output. But programs written by people often cause `as' to
+give a warning that a particular assumption was made. All such
+warnings are directed to the standard error file.
+
+ If you use the `-W' and `--no-warn' options, no warnings are issued.
+This only affects the warning messages: it does not change any
+particular of how `as' assembles your file. Errors, which stop the
+assembly, are still reported.
+
+ If you use the `--fatal-warnings' option, `as' considers files that
+generate warnings to be in error.
+
+ You can switch these options off again by specifying `--warn', which
+causes warnings to be output as usual.
+
+
+File: as.info, Node: Z, Prev: W, Up: Invoking
+
+2.17 Generate Object File in Spite of Errors: `-Z'
+==================================================
+
+After an error message, `as' normally produces no output. If for some
+reason you are interested in object file output even after `as' gives
+an error message on your program, use the `-Z' option. If there are
+any errors, `as' continues anyways, and writes an object file after a
+final warning message of the form `N errors, M warnings, generating bad
+object file.'
+
+
+File: as.info, Node: Syntax, Next: Sections, Prev: Invoking, Up: Top
+
+3 Syntax
+********
+
+This chapter describes the machine-independent syntax allowed in a
+source file. `as' syntax is similar to what many other assemblers use;
+it is inspired by the BSD 4.2 assembler, except that `as' does not
+assemble Vax bit-fields.
+
+* Menu:
+
+* Preprocessing:: Preprocessing
+* Whitespace:: Whitespace
+* Comments:: Comments
+* Symbol Intro:: Symbols
+* Statements:: Statements
+* Constants:: Constants
+
+
+File: as.info, Node: Preprocessing, Next: Whitespace, Up: Syntax
+
+3.1 Preprocessing
+=================
+
+The `as' internal preprocessor:
+ * adjusts and removes extra whitespace. It leaves one space or tab
+ before the keywords on a line, and turns any other whitespace on
+ the line into a single space.
+
+ * removes all comments, replacing them with a single space, or an
+ appropriate number of newlines.
+
+ * converts character constants into the appropriate numeric values.
+
+ 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 `.include' directive (*note
+`.include': Include.). You can use the GNU C compiler driver to get
+other "CPP" style preprocessing by giving the input file a `.S' suffix.
+*Note Options Controlling the Kind of Output: (gcc.info)Overall
+Options.
+
+ Excess whitespace, comments, and character constants cannot be used
+in the portions of the input text that are not preprocessed.
+
+ If the first line of an input file is `#NO_APP' or if you use the
+`-f' option, whitespace and comments are not removed from the input
+file. Within an input file, you can ask for whitespace and comment
+removal in specific portions of the by putting a line that says `#APP'
+before the text that may contain whitespace or comments, and putting a
+line that says `#NO_APP' after this text. This feature is mainly
+intend to support `asm' statements in compilers whose output is
+otherwise free of comments and whitespace.
+
+
+File: as.info, Node: Whitespace, Next: Comments, Prev: Preprocessing, Up: Syntax
+
+3.2 Whitespace
+==============
+
+"Whitespace" is one or more blanks or tabs, in any order. Whitespace
+is used to separate symbols, and to make programs neater for people to
+read. Unless within character constants (*note Character Constants:
+Characters.), any whitespace means the same as exactly one space.
+
+
+File: as.info, Node: Comments, Next: Symbol Intro, Prev: Whitespace, Up: Syntax
+
+3.3 Comments
+============
+
+There are two ways of rendering comments to `as'. In both cases the
+comment is equivalent to one space.
+
+ Anything from `/*' through the next `*/' is a comment. This means
+you may not nest these comments.
+
+ /*
+ The only way to include a newline ('\n') in a comment
+ is to use this sort of comment.
+ */
+
+ /* This sort of comment does not nest. */
+
+ Anything from a "line comment" character up to the next newline is
+considered a comment and is ignored. The line comment character is
+target specific, and some targets multiple comment characters. Some
+targets also have line comment characters that only work if they are
+the first character on a line. Some targets use a sequence of two
+characters to introduce a line comment. Some targets can also change
+their line comment characters depending upon command line options that
+have been used. For more details see the _Syntax_ section in the
+documentation for individual targets.
+
+ If the line comment character is the hash sign (`#') then it still
+has the special ability to enable and disable preprocessing (*note
+Preprocessing::) and to specify logical line numbers:
+
+ To be compatible with past assemblers, lines that begin with `#'
+have a special interpretation. Following the `#' should be an absolute
+expression (*note Expressions::): the logical line number of the _next_
+line. Then a string (*note Strings: Strings.) is allowed: if present
+it is a new logical file name. The rest of the line, if any, should be
+whitespace.
+
+ If the first non-whitespace characters on the line are not numeric,
+the line is ignored. (Just like a comment.)
+
+ # This is an ordinary comment.
+ # 42-6 "new_file_name" # New logical file name
+ # This is logical line # 36.
+ This feature is deprecated, and may disappear from future versions
+of `as'.
+
+
+File: as.info, Node: Symbol Intro, Next: Statements, Prev: Comments, Up: Syntax
+
+3.4 Symbols
+===========
+
+A "symbol" is one or more characters chosen from the set of all letters
+(both upper and lower case), digits and the three characters `_.$'. On
+most machines, you can also use `$' in symbol names; exceptions are
+noted in *Note Machine Dependencies::. No symbol may begin with a
+digit. Case is significant. There is no length limit: all characters
+are significant. Symbols are delimited by characters not in that set,
+or by the beginning of a file (since the source program must end with a
+newline, the end of a file is not a possible symbol delimiter). *Note
+Symbols::.
+
+
+File: as.info, Node: Statements, Next: Constants, Prev: Symbol Intro, Up: Syntax
+
+3.5 Statements
+==============
+
+A "statement" ends at a newline character (`\n') or a "line separator
+character". The line separator character is target specific and
+described in the _Syntax_ section of each target's documentation. Not
+all targets support a line separator character. The newline or line
+separator character is considered to be part of the preceding
+statement. Newlines and separators within character constants are an
+exception: they do not end statements.
+
+ It is an error to end any statement with end-of-file: the last
+character of any input file should be a newline.
+
+ An empty statement is allowed, and may include whitespace. It is
+ignored.
+
+ A statement begins with zero or more labels, optionally followed by a
+key symbol which determines what kind of statement it is. The key
+symbol determines the syntax of the rest of the statement. If the
+symbol begins with a dot `.' then the statement is an assembler
+directive: typically valid for any computer. If the symbol begins with
+a letter the statement is an assembly language "instruction": it
+assembles into a machine language instruction. Different versions of
+`as' for different computers recognize different instructions. In
+fact, the same symbol may represent a different instruction in a
+different computer's assembly language.
+
+ A label is a symbol immediately followed by a colon (`:').
+Whitespace before a label or after a colon is permitted, but you may not
+have whitespace between a label's symbol and its colon. *Note Labels::.
+
+ For HPPA targets, labels need not be immediately followed by a
+colon, but the definition of a label must begin in column zero. This
+also implies that only one label may be defined on each line.
+
+ label: .directive followed by something
+ another_label: # This is an empty statement.
+ instruction operand_1, operand_2, ...
+
+
+File: as.info, Node: Constants, Prev: Statements, Up: Syntax
+
+3.6 Constants
+=============
+
+A constant is a number, written so that its value is known by
+inspection, without knowing any context. Like this:
+ .byte 74, 0112, 092, 0x4A, 0X4a, 'J, '\J # All the same value.
+ .ascii "Ring the bell\7" # A string constant.
+ .octa 0x123456789abcdef0123456789ABCDEF0 # A bignum.
+ .float 0f-314159265358979323846264338327\
+ 95028841971.693993751E-40 # - pi, a flonum.
+
+* Menu:
+
+* Characters:: Character Constants
+* Numbers:: Number Constants
+
+
+File: as.info, Node: Characters, Next: Numbers, Up: Constants
+
+3.6.1 Character Constants
+-------------------------
+
+There are two kinds of character constants. A "character" stands for
+one character in one byte and its value may be used in numeric
+expressions. String constants (properly called string _literals_) are
+potentially many bytes and their values may not be used in arithmetic
+expressions.
+
+* Menu:
+
+* Strings:: Strings
+* Chars:: Characters
+
+
+File: as.info, Node: Strings, Next: Chars, Up: Characters
+
+3.6.1.1 Strings
+...............
+
+A "string" is written between double-quotes. It may contain
+double-quotes or null characters. The way to get special characters
+into a string is to "escape" these characters: precede them with a
+backslash `\' character. For example `\\' represents one backslash:
+the first `\' is an escape which tells `as' to interpret the second
+character literally as a backslash (which prevents `as' from
+recognizing the second `\' as an escape character). The complete list
+of escapes follows.
+
+`\b'
+ Mnemonic for backspace; for ASCII this is octal code 010.
+
+`\f'
+ Mnemonic for FormFeed; for ASCII this is octal code 014.
+
+`\n'
+ Mnemonic for newline; for ASCII this is octal code 012.
+
+`\r'
+ Mnemonic for carriage-Return; for ASCII this is octal code 015.
+
+`\t'
+ Mnemonic for horizontal Tab; for ASCII this is octal code 011.
+
+`\ DIGIT DIGIT DIGIT'
+ An octal character code. The numeric code is 3 octal digits. For
+ compatibility with other Unix systems, 8 and 9 are accepted as
+ digits: for example, `\008' has the value 010, and `\009' the
+ value 011.
+
+`\`x' HEX-DIGITS...'
+ A hex character code. All trailing hex digits are combined.
+ Either upper or lower case `x' works.
+
+`\\'
+ Represents one `\' character.
+
+`\"'
+ Represents one `"' character. Needed in strings to represent this
+ character, because an unescaped `"' would end the string.
+
+`\ ANYTHING-ELSE'
+ Any other character when escaped by `\' gives a warning, but
+ assembles as if the `\' was not present. The idea is that if you
+ used an escape sequence you clearly didn't want the literal
+ interpretation of the following character. However `as' has no
+ other interpretation, so `as' knows it is giving you the wrong
+ code and warns you of the fact.
+
+ Which characters are escapable, and what those escapes represent,
+varies widely among assemblers. The current set is what we think the
+BSD 4.2 assembler recognizes, and is a subset of what most C compilers
+recognize. If you are in doubt, do not use an escape sequence.
+
+
+File: as.info, Node: Chars, Prev: Strings, Up: Characters
+
+3.6.1.2 Characters
+..................
+
+A single character may be written as a single quote immediately
+followed by that character. The same escapes apply to characters as to
+strings. So if you want to write the character backslash, you must
+write `'\\' where the first `\' escapes the second `\'. As you can
+see, the quote is an acute accent, not a grave accent. A newline
+immediately following an acute accent is taken as a literal character
+and does not count as the end of a statement. The value of a character
+constant in a numeric expression is the machine's byte-wide code for
+that character. `as' assumes your character code is ASCII: `'A' means
+65, `'B' means 66, and so on.
+
+
+File: as.info, Node: Numbers, Prev: Characters, Up: Constants
+
+3.6.2 Number Constants
+----------------------
+
+`as' distinguishes three kinds of numbers according to how they are
+stored in the target machine. _Integers_ are numbers that would fit
+into an `int' in the C language. _Bignums_ are integers, but they are
+stored in more than 32 bits. _Flonums_ are floating point numbers,
+described below.
+
+* Menu:
+
+* Integers:: Integers
+* Bignums:: Bignums
+* Flonums:: Flonums
+
+
+File: as.info, Node: Integers, Next: Bignums, Up: Numbers
+
+3.6.2.1 Integers
+................
+
+A binary integer is `0b' or `0B' followed by zero or more of the binary
+digits `01'.
+
+ An octal integer is `0' followed by zero or more of the octal digits
+(`01234567').
+
+ A decimal integer starts with a non-zero digit followed by zero or
+more digits (`0123456789').
+
+ A hexadecimal integer is `0x' or `0X' followed by one or more
+hexadecimal digits chosen from `0123456789abcdefABCDEF'.
+
+ Integers have the usual values. To denote a negative integer, use
+the prefix operator `-' discussed under expressions (*note Prefix
+Operators: Prefix Ops.).
+
+
+File: as.info, Node: Bignums, Next: Flonums, Prev: Integers, Up: Numbers
+
+3.6.2.2 Bignums
+...............
+
+A "bignum" has the same syntax and semantics as an integer except that
+the number (or its negative) takes more than 32 bits to represent in
+binary. The distinction is made because in some places integers are
+permitted while bignums are not.
+
+
+File: as.info, Node: Flonums, Prev: Bignums, Up: Numbers
+
+3.6.2.3 Flonums
+...............
+
+A "flonum" represents a floating point number. The translation is
+indirect: a decimal floating point number from the text is converted by
+`as' to a generic binary floating point number of more than sufficient
+precision. This generic floating point number is converted to a
+particular computer's floating point format (or formats) by a portion
+of `as' specialized to that computer.
+
+ A flonum is written by writing (in order)
+ * The digit `0'. (`0' is optional on the HPPA.)
+
+ * A letter, to tell `as' the rest of the number is a flonum. `e' is
+ recommended. Case is not important.
+
+ On the H8/300, Renesas / SuperH SH, and AMD 29K architectures, the
+ letter must be one of the letters `DFPRSX' (in upper or lower
+ case).
+
+ On the ARC, the letter must be one of the letters `DFRS' (in upper
+ or lower case).
+
+ On the Intel 960 architecture, the letter must be one of the
+ letters `DFT' (in upper or lower case).
+
+ On the HPPA architecture, the letter must be `E' (upper case only).
+
+ * An optional sign: either `+' or `-'.
+
+ * An optional "integer part": zero or more decimal digits.
+
+ * An optional "fractional part": `.' followed by zero or more
+ decimal digits.
+
+ * An optional exponent, consisting of:
+
+ * An `E' or `e'.
+
+ * Optional sign: either `+' or `-'.
+
+ * One or more decimal digits.
+
+
+ At least one of the integer part or the fractional part must be
+present. The floating point number has the usual base-10 value.
+
+ `as' does all processing using integers. Flonums are computed
+independently of any floating point hardware in the computer running
+`as'.
+
+
+File: as.info, Node: Sections, Next: Symbols, Prev: Syntax, Up: Top
+
+4 Sections and Relocation
+*************************
+
+* Menu:
+
+* Secs Background:: Background
+* Ld Sections:: Linker Sections
+* As Sections:: Assembler Internal Sections
+* Sub-Sections:: Sub-Sections
+* bss:: bss Section
+
+
+File: as.info, Node: Secs Background, Next: Ld Sections, Up: Sections
+
+4.1 Background
+==============
+
+Roughly, a section is a range of addresses, with no gaps; all data "in"
+those addresses is treated the same for some particular purpose. For
+example there may be a "read only" section.
+
+ The linker `ld' reads many object files (partial programs) and
+combines their contents to form a runnable program. When `as' emits an
+object file, the partial program is assumed to start at address 0.
+`ld' assigns the final addresses for the partial program, so that
+different partial programs do not overlap. This is actually an
+oversimplification, but it suffices to explain how `as' uses sections.
+
+ `ld' moves blocks of bytes of your program to their run-time
+addresses. These blocks slide to their run-time addresses as rigid
+units; their length does not change and neither does the order of bytes
+within them. Such a rigid unit is called a _section_. Assigning
+run-time addresses to sections is called "relocation". It includes the
+task of adjusting mentions of object-file addresses so they refer to
+the proper run-time addresses. For the H8/300, and for the Renesas /
+SuperH SH, `as' pads sections if needed to ensure they end on a word
+(sixteen bit) boundary.
+
+ An object file written by `as' has at least three sections, any of
+which may be empty. These are named "text", "data" and "bss" sections.
+
+ When it generates COFF or ELF output, `as' can also generate
+whatever other named sections you specify using the `.section'
+directive (*note `.section': Section.). If you do not use any
+directives that place output in the `.text' or `.data' sections, these
+sections still exist, but are empty.
+
+ When `as' generates SOM or ELF output for the HPPA, `as' can also
+generate whatever other named sections you specify using the `.space'
+and `.subspace' directives. See `HP9000 Series 800 Assembly Language
+Reference Manual' (HP 92432-90001) for details on the `.space' and
+`.subspace' assembler directives.
+
+ Additionally, `as' uses different names for the standard text, data,
+and bss sections when generating SOM output. Program text is placed
+into the `$CODE$' section, data into `$DATA$', and BSS into `$BSS$'.
+
+ Within the object file, the text section starts at address `0', the
+data section follows, and the bss section follows the data section.
+
+ When generating either SOM or ELF output files on the HPPA, the text
+section starts at address `0', the data section at address `0x4000000',
+and the bss section follows the data section.
+
+ To let `ld' know which data changes when the sections are relocated,
+and how to change that data, `as' also writes to the object file
+details of the relocation needed. To perform relocation `ld' must
+know, each time an address in the object file is mentioned:
+ * Where in the object file is the beginning of this reference to an
+ address?
+
+ * How long (in bytes) is this reference?
+
+ * Which section does the address refer to? What is the numeric
+ value of
+ (ADDRESS) - (START-ADDRESS OF SECTION)?
+
+ * Is the reference to an address "Program-Counter relative"?
+
+ In fact, every address `as' ever uses is expressed as
+ (SECTION) + (OFFSET INTO SECTION)
+ Further, most expressions `as' computes have this section-relative
+nature. (For some object formats, such as SOM for the HPPA, some
+expressions are symbol-relative instead.)
+
+ In this manual we use the notation {SECNAME N} to mean "offset N
+into section SECNAME."
+
+ Apart from text, data and bss sections you need to know about the
+"absolute" section. When `ld' mixes partial programs, addresses in the
+absolute section remain unchanged. For example, address `{absolute 0}'
+is "relocated" to run-time address 0 by `ld'. Although the linker
+never arranges two partial programs' data sections with overlapping
+addresses after linking, _by definition_ their absolute sections must
+overlap. Address `{absolute 239}' in one part of a program is always
+the same address when the program is running as address `{absolute
+239}' in any other part of the program.
+
+ The idea of sections is extended to the "undefined" section. Any
+address whose section is unknown at assembly time is by definition
+rendered {undefined U}--where U is filled in later. Since numbers are
+always defined, the only way to generate an undefined address is to
+mention an undefined symbol. A reference to a named common block would
+be such a symbol: its value is unknown at assembly time so it has
+section _undefined_.
+
+ By analogy the word _section_ is used to describe groups of sections
+in the linked program. `ld' puts all partial programs' text sections
+in contiguous addresses in the linked program. It is customary to
+refer to the _text section_ of a program, meaning all the addresses of
+all partial programs' text sections. Likewise for data and bss
+sections.
+
+ Some sections are manipulated by `ld'; others are invented for use
+of `as' and have no meaning except during assembly.
+
+
+File: as.info, Node: Ld Sections, Next: As Sections, Prev: Secs Background, Up: Sections
+
+4.2 Linker Sections
+===================
+
+`ld' deals with just four kinds of sections, summarized below.
+
+*named sections*
+*text section*
+*data section*
+ These sections hold your program. `as' and `ld' treat them as
+ separate but equal sections. Anything you can say of one section
+ is true of another. 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.
+
+*bss section*
+ This section contains zeroed bytes when your program begins
+ running. It 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 those explicit zeros from
+ object files.
+
+*absolute section*
+ Address 0 of this section is always "relocated" to runtime address
+ 0. This is useful if you want to refer to an address that `ld'
+ must not change when relocating. In this sense we speak of
+ absolute addresses being "unrelocatable": they do not change
+ during relocation.
+
+*undefined section*
+ This "section" is a catch-all for address references to objects
+ not in the preceding sections.
+
+ An idealized example of three relocatable sections follows. The
+example uses the traditional section names `.text' and `.data'. Memory
+addresses are on the horizontal axis.
+
+ +-----+----+--+
+ partial program # 1: |ttttt|dddd|00|
+ +-----+----+--+
+
+ text data bss
+ seg. seg. seg.
+
+ +---+---+---+
+ partial program # 2: |TTT|DDD|000|
+ +---+---+---+
+
+ +--+---+-----+--+----+---+-----+~~
+ linked program: | |TTT|ttttt| |dddd|DDD|00000|
+ +--+---+-----+--+----+---+-----+~~
+
+ addresses: 0 ...
+
+
+File: as.info, Node: As Sections, Next: Sub-Sections, Prev: Ld Sections, Up: Sections
+
+4.3 Assembler Internal Sections
+===============================
+
+These sections are meant only for the internal use of `as'. They have
+no meaning at run-time. You do not really need to know about these
+sections for most purposes; but they can be mentioned in `as' warning
+messages, so it might be helpful to have an idea of their meanings to
+`as'. These sections are used to permit the value of every expression
+in your assembly language program to be a section-relative address.
+
+ASSEMBLER-INTERNAL-LOGIC-ERROR!
+ An internal assembler logic error has been found. This means
+ there is a bug in the assembler.
+
+expr section
+ The assembler stores complex expression internally as combinations
+ of symbols. When it needs to represent an expression as a symbol,
+ it puts it in the expr section.
+
+
+File: as.info, Node: Sub-Sections, Next: bss, Prev: As Sections, Up: Sections
+
+4.4 Sub-Sections
+================
+
+Assembled bytes conventionally fall into two sections: text and data.
+You may have separate groups of data in named sections that you want to
+end up near to each other in the object file, even though they are not
+contiguous in the assembler source. `as' allows you to use
+"subsections" for this purpose. Within each section, there can be
+numbered subsections with values from 0 to 8192. Objects assembled
+into the same subsection go into the object file together with other
+objects in the same subsection. For example, a compiler might want to
+store constants in the text section, but might not want to have them
+interspersed with the program being assembled. In this case, the
+compiler could issue a `.text 0' before each section of code being
+output, and a `.text 1' before each group of constants being output.
+
+Subsections are optional. If you do not use subsections, everything
+goes in subsection number zero.
+
+ Each subsection is zero-padded up to a multiple of four bytes.
+(Subsections may be padded a different amount on different flavors of
+`as'.)
+
+ Subsections appear in your object file in numeric order, lowest
+numbered to highest. (All this to be compatible with other people's
+assemblers.) The object file contains no representation of
+subsections; `ld' and other programs that manipulate object files see
+no trace of them. They just see all your text subsections as a text
+section, and all your 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 `.text EXPRESSION' or
+a `.data EXPRESSION' statement. When generating COFF output, you can
+also use an extra subsection argument with arbitrary named sections:
+`.section NAME, EXPRESSION'. When generating ELF output, you can also
+use the `.subsection' directive (*note SubSection::) to specify a
+subsection: `.subsection EXPRESSION'. EXPRESSION should be an absolute
+expression (*note Expressions::). If you just say `.text' then `.text
+0' is assumed. Likewise `.data' means `.data 0'. Assembly begins in
+`text 0'. For instance:
+ .text 0 # The default subsection is text 0 anyway.
+ .ascii "This lives in the first text subsection. *"
+ .text 1
+ .ascii "But this lives in the second text subsection."
+ .data 0
+ .ascii "This lives in the data section,"
+ .ascii "in the first data subsection."
+ .text 0
+ .ascii "This lives in the first text section,"
+ .ascii "immediately following the asterisk (*)."
+
+ Each section has a "location counter" incremented by one for every
+byte assembled into that section. Because subsections are merely a
+convenience restricted to `as' there is no concept of a subsection
+location counter. There is no way to directly manipulate a location
+counter--but the `.align' directive changes it, and any label
+definition captures its current value. The location counter of the
+section where statements are being assembled is said to be the "active"
+location counter.
+
+
+File: as.info, Node: bss, Prev: Sub-Sections, Up: Sections
+
+4.5 bss Section
+===============
+
+The bss section is used for local common variable storage. You may
+allocate address space in the bss section, but you may not dictate data
+to load into it before your program executes. When your program starts
+running, all the contents of the bss section are zeroed bytes.
+
+ The `.lcomm' pseudo-op defines a symbol in the bss section; see
+*Note `.lcomm': Lcomm.
+
+ The `.comm' pseudo-op may be used to declare a common symbol, which
+is another form of uninitialized symbol; see *Note `.comm': Comm.
+
+ When assembling for a target which supports multiple sections, such
+as ELF or COFF, you may switch into the `.bss' section and define
+symbols as usual; see *Note `.section': Section. You may only assemble
+zero values into the section. Typically the section will only contain
+symbol definitions and `.skip' directives (*note `.skip': Skip.).
+
+
+File: as.info, Node: Symbols, Next: Expressions, Prev: Sections, Up: Top
+
+5 Symbols
+*********
+
+Symbols are a central concept: the programmer uses symbols to name
+things, the linker uses symbols to link, and the debugger uses symbols
+to debug.
+
+ _Warning:_ `as' does not place symbols in the object file in the
+ same order they were declared. This may break some debuggers.
+
+* Menu:
+
+* Labels:: Labels
+* Setting Symbols:: Giving Symbols Other Values
+* Symbol Names:: Symbol Names
+* Dot:: The Special Dot Symbol
+* Symbol Attributes:: Symbol Attributes
+
+
+File: as.info, Node: Labels, Next: Setting Symbols, Up: Symbols
+
+5.1 Labels
+==========
+
+A "label" is written as a symbol immediately followed by a colon `:'.
+The symbol then represents the current value of the active location
+counter, and is, for example, a suitable instruction operand. You are
+warned if you use the same symbol to represent two different locations:
+the first definition overrides any other definitions.
+
+ On the HPPA, the usual form for a label need not be immediately
+followed by a colon, but instead must start in column zero. Only one
+label may be defined on a single line. To work around this, the HPPA
+version of `as' also provides a special directive `.label' for defining
+labels more flexibly.
+
+
+File: as.info, Node: Setting Symbols, Next: Symbol Names, Prev: Labels, Up: Symbols
+
+5.2 Giving Symbols Other Values
+===============================
+
+A symbol can be given an arbitrary value by writing a symbol, followed
+by an equals sign `=', followed by an expression (*note Expressions::).
+This is equivalent to using the `.set' directive. *Note `.set': Set.
+In the same way, using a double equals sign `='`=' here represents an
+equivalent of the `.eqv' directive. *Note `.eqv': Eqv.
+
+ Blackfin does not support symbol assignment with `='.
+
+
+File: as.info, Node: Symbol Names, Next: Dot, Prev: Setting Symbols, Up: Symbols
+
+5.3 Symbol Names
+================
+
+Symbol names begin with a letter or with one of `._'. On most
+machines, you can also use `$' in symbol names; exceptions are noted in
+*Note Machine Dependencies::. That character may be followed by any
+string of digits, letters, dollar signs (unless otherwise noted for a
+particular target machine), and underscores.
+
+Case of letters is significant: `foo' is a different symbol name than
+`Foo'.
+
+ Each symbol has exactly one name. Each name in an assembly language
+program refers to exactly one symbol. You may use that symbol name any
+number of times in a program.
+
+Local Symbol Names
+------------------
+
+A local symbol is any symbol beginning with certain local label
+prefixes. By default, the local label prefix is `.L' for ELF systems or
+`L' for traditional a.out systems, but each target may have its own set
+of local label prefixes. On the HPPA local symbols begin with `L$'.
+
+ Local symbols are defined and used within the assembler, but they are
+normally not saved in object files. Thus, they are not visible when
+debugging. You may use the `-L' option (*note Include Local Symbols:
+`-L': L.) to retain the local symbols in the object files.
+
+Local Labels
+------------
+
+Local labels help compilers and programmers use names temporarily.
+They create symbols which are guaranteed to be unique over the entire
+scope of the input source code and which can be referred to by a simple
+notation. To define a local label, write a label of the form `N:'
+(where N represents any positive integer). To refer to the most recent
+previous definition of that label write `Nb', using the same number as
+when you defined the label. To refer to the next definition of a local
+label, write `Nf'--the `b' stands for "backwards" and the `f' stands
+for "forwards".
+
+ There is no restriction on how you can use these labels, and you can
+reuse them too. So that it is possible to repeatedly define the same
+local label (using the same number `N'), although you can only refer to
+the most recently defined local label of that number (for a backwards
+reference) or the next definition of a specific local label for a
+forward reference. It is also worth noting that the first 10 local
+labels (`0:'...`9:') are implemented in a slightly more efficient
+manner than the others.
+
+ Here is an example:
+
+ 1: branch 1f
+ 2: branch 1b
+ 1: branch 2f
+ 2: branch 1b
+
+ Which is the equivalent of:
+
+ label_1: branch label_3
+ label_2: branch label_1
+ label_3: branch label_4
+ label_4: branch label_3
+
+ Local label names are only a notational device. They are immediately
+transformed into more conventional symbol names before the assembler
+uses them. The symbol names are stored in the symbol table, appear in
+error messages, and are optionally emitted to the object file. The
+names are constructed using these parts:
+
+`_local label prefix_'
+ All local symbols begin with the system-specific local label
+ prefix. Normally both `as' and `ld' forget symbols that start
+ with the local label prefix. These labels are used for symbols
+ you are never intended to see. If you use the `-L' option then
+ `as' retains these symbols in the object file. If you also
+ instruct `ld' to retain these symbols, you may use them in
+ debugging.
+
+`NUMBER'
+ This is the number that was used in the local label definition.
+ So if the label is written `55:' then the number is `55'.
+
+`C-B'
+ This unusual character is included so you do not accidentally
+ invent a symbol of the same name. The character has ASCII value
+ of `\002' (control-B).
+
+`_ordinal number_'
+ This is a serial number to keep the labels distinct. The first
+ definition of `0:' gets the number `1'. The 15th definition of
+ `0:' gets the number `15', and so on. Likewise the first
+ definition of `1:' gets the number `1' and its 15th definition
+ gets `15' as well.
+
+ So for example, the first `1:' may be named `.L1C-B1', and the 44th
+`3:' may be named `.L3C-B44'.
+
+Dollar Local Labels
+-------------------
+
+`as' also supports an even more local form of local labels called
+dollar labels. These labels go out of scope (i.e., they become
+undefined) as soon as a non-local label is defined. Thus they remain
+valid for only a small region of the input source code. Normal local
+labels, by contrast, remain in scope for the entire file, or until they
+are redefined by another occurrence of the same local label.
+
+ Dollar labels are defined in exactly the same way as ordinary local
+labels, except that they have a dollar sign suffix to their numeric
+value, e.g., `55$:'.
+
+ They can also be distinguished from ordinary local labels by their
+transformed names which use ASCII character `\001' (control-A) as the
+magic character to distinguish them from ordinary labels. For example,
+the fifth definition of `6$' may be named `.L6C-A5'.
+
+
+File: as.info, Node: Dot, Next: Symbol Attributes, Prev: Symbol Names, Up: Symbols
+
+5.4 The Special Dot Symbol
+==========================
+
+The special symbol `.' refers to the current address that `as' is
+assembling into. Thus, the expression `melvin: .long .' defines
+`melvin' to contain its own address. Assigning a value to `.' is
+treated the same as a `.org' directive. Thus, the expression `.=.+4'
+is the same as saying `.space 4'.
+
+
+File: as.info, Node: Symbol Attributes, Prev: Dot, Up: Symbols
+
+5.5 Symbol Attributes
+=====================
+
+Every symbol has, as well as its name, the attributes "Value" and
+"Type". Depending on output format, symbols can also have auxiliary
+attributes.
+
+ If you use a symbol without defining it, `as' assumes zero for all
+these attributes, and probably won't warn you. This makes the symbol
+an externally defined symbol, which is generally what you would want.
+
+* Menu:
+
+* Symbol Value:: Value
+* Symbol Type:: Type
+
+
+* a.out Symbols:: Symbol Attributes: `a.out'
+
+* COFF Symbols:: Symbol Attributes for COFF
+
+* SOM Symbols:: Symbol Attributes for SOM
+
+
+File: as.info, Node: Symbol Value, Next: Symbol Type, Up: Symbol Attributes
+
+5.5.1 Value
+-----------
+
+The value of a symbol is (usually) 32 bits. For a symbol which labels a
+location in the text, data, bss or absolute sections the value is the
+number of addresses from the start of that section to the label.
+Naturally for text, data and bss sections the value of a symbol changes
+as `ld' changes section base addresses during linking. Absolute
+symbols' values do not change during linking: that is why they are
+called absolute.
+
+ The value of an undefined symbol is treated in a special way. If it
+is 0 then the symbol is not defined in this assembler source file, and
+`ld' tries to determine its value from other files linked into the same
+program. You make this kind of symbol simply by mentioning a symbol
+name without defining it. A non-zero value represents a `.comm' common
+declaration. The value is how much common storage to reserve, in bytes
+(addresses). The symbol refers to the first address of the allocated
+storage.
+
+
+File: as.info, Node: Symbol Type, Next: a.out Symbols, Prev: Symbol Value, Up: Symbol Attributes
+
+5.5.2 Type
+----------
+
+The type attribute of a symbol contains relocation (section)
+information, any flag settings indicating that a symbol is external, and
+(optionally), other information for linkers and debuggers. The exact
+format depends on the object-code output format in use.
+
+
+File: as.info, Node: a.out Symbols, Next: COFF Symbols, Prev: Symbol Type, Up: Symbol Attributes
+
+5.5.3 Symbol Attributes: `a.out'
+--------------------------------
+
+* Menu:
+
+* Symbol Desc:: Descriptor
+* Symbol Other:: Other
+
+
+File: as.info, Node: Symbol Desc, Next: Symbol Other, Up: a.out Symbols
+
+5.5.3.1 Descriptor
+..................
+
+This is an arbitrary 16-bit value. You may establish a symbol's
+descriptor value by using a `.desc' statement (*note `.desc': Desc.).
+A descriptor value means nothing to `as'.
+
+
+File: as.info, Node: Symbol Other, Prev: Symbol Desc, Up: a.out Symbols
+
+5.5.3.2 Other
+.............
+
+This is an arbitrary 8-bit value. It means nothing to `as'.
+
+
+File: as.info, Node: COFF Symbols, Next: SOM Symbols, Prev: a.out Symbols, Up: Symbol Attributes
+
+5.5.4 Symbol Attributes for COFF
+--------------------------------
+
+The COFF format supports a multitude of auxiliary symbol attributes;
+like the primary symbol attributes, they are set between `.def' and
+`.endef' directives.
+
+5.5.4.1 Primary Attributes
+..........................
+
+The symbol name is set with `.def'; the value and type, respectively,
+with `.val' and `.type'.
+
+5.5.4.2 Auxiliary Attributes
+............................
+
+The `as' directives `.dim', `.line', `.scl', `.size', `.tag', and
+`.weak' can generate auxiliary symbol table information for COFF.
+
+
+File: as.info, Node: SOM Symbols, Prev: COFF Symbols, Up: Symbol Attributes
+
+5.5.5 Symbol Attributes for SOM
+-------------------------------
+
+The SOM format for the HPPA supports a multitude of symbol attributes
+set with the `.EXPORT' and `.IMPORT' directives.
+
+ The attributes are described in `HP9000 Series 800 Assembly Language
+Reference Manual' (HP 92432-90001) under the `IMPORT' and `EXPORT'
+assembler directive documentation.
+
+
+File: as.info, Node: Expressions, Next: Pseudo Ops, Prev: Symbols, Up: Top
+
+6 Expressions
+*************
+
+An "expression" specifies an address or numeric value. Whitespace may
+precede and/or follow an expression.
+
+ The result of an expression must be an absolute number, or else an
+offset into a particular section. If an expression is not absolute,
+and there is not enough information when `as' sees the expression to
+know its section, a second pass over the source program might be
+necessary to interpret the expression--but the second pass is currently
+not implemented. `as' aborts with an error message in this situation.
+
+* Menu:
+
+* Empty Exprs:: Empty Expressions
+* Integer Exprs:: Integer Expressions
+
+
+File: as.info, Node: Empty Exprs, Next: Integer Exprs, Up: Expressions
+
+6.1 Empty Expressions
+=====================
+
+An empty expression has no value: it is just whitespace or null.
+Wherever an absolute expression is required, you may omit the
+expression, and `as' assumes a value of (absolute) 0. This is
+compatible with other assemblers.
+
+
+File: as.info, Node: Integer Exprs, Prev: Empty Exprs, Up: Expressions
+
+6.2 Integer Expressions
+=======================
+
+An "integer expression" is one or more _arguments_ delimited by
+_operators_.
+
+* Menu:
+
+* Arguments:: Arguments
+* Operators:: Operators
+* Prefix Ops:: Prefix Operators
+* Infix Ops:: Infix Operators
+
+
+File: as.info, Node: Arguments, Next: Operators, Up: Integer Exprs
+
+6.2.1 Arguments
+---------------
+
+"Arguments" are symbols, numbers or subexpressions. In other contexts
+arguments are sometimes called "arithmetic operands". In this manual,
+to avoid confusing them with the "instruction operands" of the machine
+language, we use the term "argument" to refer to parts of expressions
+only, reserving the word "operand" to refer only to machine instruction
+operands.
+
+ Symbols are evaluated to yield {SECTION NNN} where SECTION is one of
+text, data, bss, absolute, or undefined. NNN is a signed, 2's
+complement 32 bit integer.
+
+ Numbers are usually integers.
+
+ A number can be a flonum or bignum. In this case, you are warned
+that only the low order 32 bits are used, and `as' pretends these 32
+bits are an integer. You may write integer-manipulating instructions
+that act on exotic constants, compatible with other assemblers.
+
+ Subexpressions are a left parenthesis `(' followed by an integer
+expression, followed by a right parenthesis `)'; or a prefix operator
+followed by an argument.
+
+
+File: as.info, Node: Operators, Next: Prefix Ops, Prev: Arguments, Up: Integer Exprs
+
+6.2.2 Operators
+---------------
+
+"Operators" are arithmetic functions, like `+' or `%'. Prefix
+operators are followed by an argument. Infix operators appear between
+their arguments. Operators may be preceded and/or followed by
+whitespace.
+
+
+File: as.info, Node: Prefix Ops, Next: Infix Ops, Prev: Operators, Up: Integer Exprs
+
+6.2.3 Prefix Operator
+---------------------
+
+`as' has the following "prefix operators". They each take one
+argument, which must be absolute.
+
+`-'
+ "Negation". Two's complement negation.
+
+`~'
+ "Complementation". Bitwise not.
+
+
+File: as.info, Node: Infix Ops, Prev: Prefix Ops, Up: Integer Exprs
+
+6.2.4 Infix Operators
+---------------------
+
+"Infix operators" take two arguments, one on either side. Operators
+have precedence, but operations with equal precedence are performed left
+to right. Apart from `+' or `-', both arguments must be absolute, and
+the result is absolute.
+
+ 1. Highest Precedence
+
+ `*'
+ "Multiplication".
+
+ `/'
+ "Division". Truncation is the same as the C operator `/'
+
+ `%'
+ "Remainder".
+
+ `<<'
+ "Shift Left". Same as the C operator `<<'.
+
+ `>>'
+ "Shift Right". Same as the C operator `>>'.
+
+ 2. Intermediate precedence
+
+ `|'
+ "Bitwise Inclusive Or".
+
+ `&'
+ "Bitwise And".
+
+ `^'
+ "Bitwise Exclusive Or".
+
+ `!'
+ "Bitwise Or Not".
+
+ 3. Low Precedence
+
+ `+'
+ "Addition". If either argument is absolute, the result has
+ the section of the other argument. You may not add together
+ arguments from different sections.
+
+ `-'
+ "Subtraction". If the right argument is absolute, the 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.
+
+ `=='
+ "Is Equal To"
+
+ `<>'
+ `!='
+ "Is Not Equal To"
+
+ `<'
+ "Is Less Than"
+
+ `>'
+ "Is Greater Than"
+
+ `>='
+ "Is Greater Than Or Equal To"
+
+ `<='
+ "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.
+
+ 4. Lowest Precedence
+
+ `&&'
+ "Logical And".
+
+ `||'
+ "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.
+
+
+ In short, it's only meaningful to add or subtract the _offsets_ in an
+address; you can only have a defined section in one of the two
+arguments.
+
+
+File: as.info, Node: Pseudo Ops, Next: Object Attributes, Prev: Expressions, Up: Top
+
+7 Assembler Directives
+**********************
+
+All assembler directives have names that begin with a period (`.').
+The rest of the name is letters, usually in lower case.
+
+ This chapter discusses directives that are available regardless of
+the target machine configuration for the GNU assembler. Some machine
+configurations provide additional directives. *Note Machine
+Dependencies::.
+
+* Menu:
+
+* Abort:: `.abort'
+
+* ABORT (COFF):: `.ABORT'
+
+* Align:: `.align ABS-EXPR , ABS-EXPR'
+* Altmacro:: `.altmacro'
+* Ascii:: `.ascii "STRING"'...
+* Asciz:: `.asciz "STRING"'...
+* Balign:: `.balign ABS-EXPR , ABS-EXPR'
+* Byte:: `.byte EXPRESSIONS'
+* CFI directives:: `.cfi_startproc [simple]', `.cfi_endproc', etc.
+* Comm:: `.comm SYMBOL , LENGTH '
+* Data:: `.data SUBSECTION'
+
+* Def:: `.def NAME'
+
+* Desc:: `.desc SYMBOL, ABS-EXPRESSION'
+
+* Dim:: `.dim'
+
+* Double:: `.double FLONUMS'
+* Eject:: `.eject'
+* Else:: `.else'
+* Elseif:: `.elseif'
+* End:: `.end'
+
+* Endef:: `.endef'
+
+* Endfunc:: `.endfunc'
+* Endif:: `.endif'
+* Equ:: `.equ SYMBOL, EXPRESSION'
+* Equiv:: `.equiv SYMBOL, EXPRESSION'
+* Eqv:: `.eqv SYMBOL, EXPRESSION'
+* Err:: `.err'
+* Error:: `.error STRING'
+* Exitm:: `.exitm'
+* Extern:: `.extern'
+* Fail:: `.fail'
+* File:: `.file'
+* Fill:: `.fill REPEAT , SIZE , VALUE'
+* Float:: `.float FLONUMS'
+* Func:: `.func'
+* Global:: `.global SYMBOL', `.globl SYMBOL'
+
+* Gnu_attribute:: `.gnu_attribute TAG,VALUE'
+* Hidden:: `.hidden NAMES'
+
+* hword:: `.hword EXPRESSIONS'
+* Ident:: `.ident'
+* If:: `.if ABSOLUTE EXPRESSION'
+* Incbin:: `.incbin "FILE"[,SKIP[,COUNT]]'
+* Include:: `.include "FILE"'
+* Int:: `.int EXPRESSIONS'
+
+* Internal:: `.internal NAMES'
+
+* Irp:: `.irp SYMBOL,VALUES'...
+* Irpc:: `.irpc SYMBOL,VALUES'...
+* Lcomm:: `.lcomm SYMBOL , LENGTH'
+* Lflags:: `.lflags'
+
+* Line:: `.line LINE-NUMBER'
+
+* Linkonce:: `.linkonce [TYPE]'
+* List:: `.list'
+* Ln:: `.ln LINE-NUMBER'
+* Loc:: `.loc FILENO LINENO'
+* Loc_mark_labels:: `.loc_mark_labels ENABLE'
+
+* Local:: `.local NAMES'
+
+* Long:: `.long EXPRESSIONS'
+
+* Macro:: `.macro NAME ARGS'...
+* MRI:: `.mri VAL'
+* Noaltmacro:: `.noaltmacro'
+* Nolist:: `.nolist'
+* Octa:: `.octa BIGNUMS'
+* Offset:: `.offset LOC'
+* Org:: `.org NEW-LC, FILL'
+* P2align:: `.p2align ABS-EXPR, ABS-EXPR, ABS-EXPR'
+
+* PopSection:: `.popsection'
+* Previous:: `.previous'
+
+* Print:: `.print STRING'
+
+* Protected:: `.protected NAMES'
+
+* Psize:: `.psize LINES, COLUMNS'
+* Purgem:: `.purgem NAME'
+
+* PushSection:: `.pushsection NAME'
+
+* Quad:: `.quad BIGNUMS'
+* Reloc:: `.reloc OFFSET, RELOC_NAME[, EXPRESSION]'
+* Rept:: `.rept COUNT'
+* Sbttl:: `.sbttl "SUBHEADING"'
+
+* Scl:: `.scl CLASS'
+
+* Section:: `.section NAME[, FLAGS]'
+
+* Set:: `.set SYMBOL, EXPRESSION'
+* Short:: `.short EXPRESSIONS'
+* Single:: `.single FLONUMS'
+
+* Size:: `.size [NAME , EXPRESSION]'
+
+* Skip:: `.skip SIZE , FILL'
+
+* Sleb128:: `.sleb128 EXPRESSIONS'
+
+* Space:: `.space SIZE , FILL'
+
+* Stab:: `.stabd, .stabn, .stabs'
+
+* String:: `.string "STR"', `.string8 "STR"', `.string16 "STR"', `.string32 "STR"', `.string64 "STR"'
+* Struct:: `.struct EXPRESSION'
+
+* SubSection:: `.subsection'
+* Symver:: `.symver NAME,NAME2@NODENAME'
+
+
+* Tag:: `.tag STRUCTNAME'
+
+* Text:: `.text SUBSECTION'
+* Title:: `.title "HEADING"'
+
+* Type:: `.type <INT | NAME , TYPE DESCRIPTION>'
+
+* Uleb128:: `.uleb128 EXPRESSIONS'
+
+* Val:: `.val ADDR'
+
+
+* Version:: `.version "STRING"'
+* VTableEntry:: `.vtable_entry TABLE, OFFSET'
+* VTableInherit:: `.vtable_inherit CHILD, PARENT'
+
+* Warning:: `.warning STRING'
+* Weak:: `.weak NAMES'
+* Weakref:: `.weakref ALIAS, SYMBOL'
+* Word:: `.word EXPRESSIONS'
+* Deprecated:: Deprecated Directives
+
+
+File: as.info, Node: Abort, Next: ABORT (COFF), Up: Pseudo Ops
+
+7.1 `.abort'
+============
+
+This directive stops the assembly immediately. It is for compatibility
+with other assemblers. The original idea was that the assembly
+language source would be piped into the assembler. If the sender of
+the source quit, it could use this directive tells `as' to quit also.
+One day `.abort' will not be supported.
+
+
+File: as.info, Node: ABORT (COFF), Next: Align, Prev: Abort, Up: Pseudo Ops
+
+7.2 `.ABORT' (COFF)
+===================
+
+When producing COFF output, `as' accepts this directive as a synonym
+for `.abort'.
+
+
+File: as.info, Node: Align, Next: Altmacro, Prev: ABORT (COFF), Up: Pseudo Ops
+
+7.3 `.align ABS-EXPR, ABS-EXPR, ABS-EXPR'
+=========================================
+
+Pad the location counter (in the current subsection) to a particular
+storage boundary. The first expression (which must be absolute) is the
+alignment required, as described below.
+
+ The second expression (also absolute) gives the fill value to be
+stored in the padding bytes. It (and the comma) may be omitted. If it
+is omitted, the padding bytes are normally zero. However, on some
+systems, if the section is marked as containing code and the fill value
+is omitted, the space is filled with no-op instructions.
+
+ The third expression is also absolute, and is also optional. If it
+is present, it is the maximum number of bytes that should be skipped by
+this alignment directive. If doing the alignment would require
+skipping more bytes than the specified maximum, then the alignment is
+not done at all. You can omit the fill value (the second argument)
+entirely by simply using two commas after the 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 arc, hppa, i386 using ELF, i860, iq2000, m68k, or32,
+s390, sparc, tic4x, tic80 and xtensa, the first expression is the
+alignment request in bytes. For example `.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. For the tic54x, the
+first expression is the alignment request in words.
+
+ For other systems, including ppc, i386 using a.out format, arm and
+strongarm, it is the number of low-order zero bits the location counter
+must have after advancement. For example `.align 3' advances the
+location counter until it a multiple of 8. If the location counter is
+already a multiple of 8, no change is needed.
+
+ This inconsistency is due to the different behaviors of the various
+native assemblers for these systems which GAS must emulate. GAS also
+provides `.balign' and `.p2align' directives, described later, which
+have a consistent behavior across all architectures (but are specific
+to GAS).
+
+
+File: as.info, Node: Altmacro, Next: Ascii, Prev: Align, Up: Pseudo Ops
+
+7.4 `.altmacro'
+===============
+
+Enable alternate macro mode, enabling:
+
+`LOCAL NAME [ , ... ]'
+ One additional directive, `LOCAL', is available. It is used to
+ generate a string replacement for each of the NAME arguments, and
+ replace any instances of NAME in each macro expansion. The
+ replacement string is unique in the assembly, and different for
+ each separate macro expansion. `LOCAL' allows you to write macros
+ that define symbols, without fear of conflict between separate
+ macro expansions.
+
+`String delimiters'
+ You can write strings delimited in these other ways besides
+ `"STRING"':
+
+ `'STRING''
+ You can delimit strings with single-quote characters.
+
+ `<STRING>'
+ You can delimit strings with matching angle brackets.
+
+`single-character string escape'
+ To include any single character literally in a string (even if the
+ character would otherwise have some special meaning), you can
+ prefix the character with `!' (an exclamation mark). For example,
+ you can write `<4.3 !> 5.4!!>' to get the literal text `4.3 >
+ 5.4!'.
+
+`Expression results as strings'
+ You can write `%EXPR' to evaluate the expression EXPR and use the
+ result as a string.
+
+
+File: as.info, Node: Ascii, Next: Asciz, Prev: Altmacro, Up: Pseudo Ops
+
+7.5 `.ascii "STRING"'...
+========================
+
+`.ascii' expects zero or more string literals (*note Strings::)
+separated by commas. It assembles each string (with no automatic
+trailing zero byte) into consecutive addresses.
+
+
+File: as.info, Node: Asciz, Next: Balign, Prev: Ascii, Up: Pseudo Ops
+
+7.6 `.asciz "STRING"'...
+========================
+
+`.asciz' is just like `.ascii', but each string is followed by a zero
+byte. The "z" in `.asciz' stands for "zero".
+
+
+File: as.info, Node: Balign, Next: Byte, Prev: Asciz, Up: Pseudo Ops
+
+7.7 `.balign[wl] ABS-EXPR, ABS-EXPR, ABS-EXPR'
+==============================================
+
+Pad the location counter (in the current subsection) to a particular
+storage boundary. The first expression (which must be absolute) is the
+alignment request in bytes. For example `.balign 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.
+
+ The second expression (also absolute) gives the fill value to be
+stored in the padding bytes. It (and the comma) may be omitted. If it
+is omitted, the padding bytes are normally zero. However, on some
+systems, if the section is marked as containing code and the fill value
+is omitted, the space is filled with no-op instructions.
+
+ The third expression is also absolute, and is also optional. If it
+is present, it is the maximum number of bytes that should be skipped by
+this alignment directive. If doing the alignment would require
+skipping more bytes than the specified maximum, then the alignment is
+not done at all. You can omit the fill value (the second argument)
+entirely by simply using two commas after the required alignment; this
+can be useful if you want the alignment to be filled with no-op
+instructions when appropriate.
+
+ The `.balignw' and `.balignl' directives are variants of the
+`.balign' directive. The `.balignw' directive treats the fill pattern
+as a two byte word value. The `.balignl' directives treats the fill
+pattern as a four byte longword value. For example, `.balignw
+4,0x368d' will align to a multiple of 4. If it skips two bytes, they
+will be filled in with the value 0x368d (the exact placement of the
+bytes depends upon the endianness of the processor). If it skips 1 or
+3 bytes, the fill value is undefined.
+
+
+File: as.info, Node: Byte, Next: CFI directives, Prev: Balign, Up: Pseudo Ops
+
+7.8 `.byte EXPRESSIONS'
+=======================
+
+`.byte' expects zero or more expressions, separated by commas. Each
+expression is assembled into the next byte.
+
+
+File: as.info, Node: CFI directives, Next: Comm, Prev: Byte, Up: Pseudo Ops
+
+7.9 `.cfi_sections SECTION_LIST'
+================================
+
+`.cfi_sections' may be used to specify whether CFI directives should
+emit `.eh_frame' section and/or `.debug_frame' section. If
+SECTION_LIST is `.eh_frame', `.eh_frame' is emitted, if SECTION_LIST is
+`.debug_frame', `.debug_frame' is emitted. To emit both use
+`.eh_frame, .debug_frame'. The default if this directive is not used
+is `.cfi_sections .eh_frame'.
+
+7.10 `.cfi_startproc [simple]'
+==============================
+
+`.cfi_startproc' is used at the beginning of each function that should
+have an entry in `.eh_frame'. It initializes some internal data
+structures. Don't forget to close the function by `.cfi_endproc'.
+
+ Unless `.cfi_startproc' is used along with parameter `simple' it
+also emits some architecture dependent initial CFI instructions.
+
+7.11 `.cfi_endproc'
+===================
+
+`.cfi_endproc' is used at the end of a function where it closes its
+unwind entry previously opened by `.cfi_startproc', and emits it to
+`.eh_frame'.
+
+7.12 `.cfi_personality ENCODING [, EXP]'
+========================================
+
+`.cfi_personality' defines personality routine and its encoding.
+ENCODING must be a constant determining how the personality should be
+encoded. If it is 255 (`DW_EH_PE_omit'), second argument is not
+present, otherwise second argument should be a constant or a symbol
+name. When using indirect encodings, the symbol provided should be the
+location where personality can be loaded from, not the personality
+routine itself. The default after `.cfi_startproc' is
+`.cfi_personality 0xff', no personality routine.
+
+7.13 `.cfi_lsda ENCODING [, EXP]'
+=================================
+
+`.cfi_lsda' defines LSDA and its encoding. ENCODING must be a constant
+determining how the LSDA should be encoded. If it is 255
+(`DW_EH_PE_omit'), second argument is not present, otherwise second
+argument should be a constant or a symbol name. The default after
+`.cfi_startproc' is `.cfi_lsda 0xff', no LSDA.
+
+7.14 `.cfi_def_cfa REGISTER, OFFSET'
+====================================
+
+`.cfi_def_cfa' defines a rule for computing CFA as: take address from
+REGISTER and add OFFSET to it.
+
+7.15 `.cfi_def_cfa_register REGISTER'
+=====================================
+
+`.cfi_def_cfa_register' modifies a rule for computing CFA. From now on
+REGISTER will be used instead of the old one. Offset remains the same.
+
+7.16 `.cfi_def_cfa_offset OFFSET'
+=================================
+
+`.cfi_def_cfa_offset' modifies a rule for computing CFA. Register
+remains the same, but OFFSET is new. Note that it is the absolute
+offset that will be added to a defined register to compute CFA address.
+
+7.17 `.cfi_adjust_cfa_offset OFFSET'
+====================================
+
+Same as `.cfi_def_cfa_offset' but OFFSET is a relative value that is
+added/substracted from the previous offset.
+
+7.18 `.cfi_offset REGISTER, OFFSET'
+===================================
+
+Previous value of REGISTER is saved at offset OFFSET from CFA.
+
+7.19 `.cfi_rel_offset REGISTER, OFFSET'
+=======================================
+
+Previous value of REGISTER is saved at offset OFFSET from the current
+CFA register. This is transformed to `.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.
+
+7.20 `.cfi_register REGISTER1, REGISTER2'
+=========================================
+
+Previous value of REGISTER1 is saved in register REGISTER2.
+
+7.21 `.cfi_restore REGISTER'
+============================
+
+`.cfi_restore' says that the rule for REGISTER is now the same as it
+was at the beginning of the function, after all initial instruction
+added by `.cfi_startproc' were executed.
+
+7.22 `.cfi_undefined REGISTER'
+==============================
+
+From now on the previous value of REGISTER can't be restored anymore.
+
+7.23 `.cfi_same_value REGISTER'
+===============================
+
+Current value of REGISTER is the same like in the previous frame, i.e.
+no restoration needed.
+
+7.24 `.cfi_remember_state',
+===========================
+
+First save all current rules for all registers by `.cfi_remember_state',
+then totally screw them up by subsequent `.cfi_*' directives and when
+everything is hopelessly bad, use `.cfi_restore_state' to restore the
+previous saved state.
+
+7.25 `.cfi_return_column REGISTER'
+==================================
+
+Change return column REGISTER, i.e. the return address is either
+directly in REGISTER or can be accessed by rules for REGISTER.
+
+7.26 `.cfi_signal_frame'
+========================
+
+Mark current function as signal trampoline.
+
+7.27 `.cfi_window_save'
+=======================
+
+SPARC register window has been saved.
+
+7.28 `.cfi_escape' EXPRESSION[, ...]
+====================================
+
+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.
+
+7.29 `.cfi_val_encoded_addr REGISTER, ENCODING, LABEL'
+======================================================
+
+The current value of REGISTER is LABEL. The value of LABEL will be
+encoded in the output file according to ENCODING; see the description
+of `.cfi_personality' for details on this encoding.
+
+ The usefulness of equating a register to a fixed label is probably
+limited to the return address register. Here, it can be useful to mark
+a code segment that has only one return address which is reached by a
+direct branch and no copy of the return address exists in memory or
+another register.
+
+
+File: as.info, Node: Comm, Next: Data, Prev: CFI directives, Up: Pseudo Ops
+
+7.30 `.comm SYMBOL , LENGTH '
+=============================
+
+`.comm' declares a common symbol named SYMBOL. When linking, a common
+symbol in one object file may be merged with a defined or common symbol
+of the same name in another object file. If `ld' does not see a
+definition for the symbol-just one or more common symbols-then it will
+allocate LENGTH bytes of uninitialized memory. LENGTH must be an
+absolute expression. If `ld' sees multiple common symbols with the
+same name, and they do not all have the same size, it will allocate
+space using the largest size.
+
+ When using ELF or (as a GNU extension) PE, the `.comm' directive
+takes an optional third argument. This is the desired alignment of the
+symbol, specified for ELF as a byte boundary (for example, an alignment
+of 16 means that the least significant 4 bits of the address should be
+zero), and for PE as a power of two (for example, an alignment of 5
+means aligned to a 32-byte boundary). The alignment must be an
+absolute expression, and it must be a power of two. If `ld' allocates
+uninitialized memory for the common symbol, it will use the alignment
+when placing the symbol. If no alignment is specified, `as' will set
+the alignment to the largest power of two less than or equal to the
+size of the symbol, up to a maximum of 16 on ELF, or the default
+section alignment of 4 on PE(1).
+
+ The syntax for `.comm' differs slightly on the HPPA. The syntax is
+`SYMBOL .comm, LENGTH'; SYMBOL is optional.
+
+ ---------- Footnotes ----------
+
+ (1) This is not the same as the executable image file alignment
+controlled by `ld''s `--section-alignment' option; image file sections
+in PE are aligned to multiples of 4096, which is far too large an
+alignment for ordinary variables. It is rather the default alignment
+for (non-debug) sections within object (`*.o') files, which are less
+strictly aligned.
+
+
+File: as.info, Node: Data, Next: Def, Prev: Comm, Up: Pseudo Ops
+
+7.31 `.data SUBSECTION'
+=======================
+
+`.data' tells `as' to assemble the following statements onto the end of
+the data subsection numbered SUBSECTION (which is an absolute
+expression). If SUBSECTION is omitted, it defaults to zero.
+
+
+File: as.info, Node: Def, Next: Desc, Prev: Data, Up: Pseudo Ops
+
+7.32 `.def NAME'
+================
+
+Begin defining debugging information for a symbol NAME; the definition
+extends until the `.endef' directive is encountered.
+
+
+File: as.info, Node: Desc, Next: Dim, Prev: Def, Up: Pseudo Ops
+
+7.33 `.desc SYMBOL, ABS-EXPRESSION'
+===================================
+
+This directive sets the descriptor of the symbol (*note Symbol
+Attributes::) to the low 16 bits of an absolute expression.
+
+ The `.desc' directive is not available when `as' is configured for
+COFF output; it is only for `a.out' or `b.out' object format. For the
+sake of compatibility, `as' accepts it, but produces no output, when
+configured for COFF.
+
+
+File: as.info, Node: Dim, Next: Double, Prev: Desc, Up: Pseudo Ops
+
+7.34 `.dim'
+===========
+
+This directive is generated by compilers to include auxiliary debugging
+information in the symbol table. It is only permitted inside
+`.def'/`.endef' pairs.
+
+
+File: as.info, Node: Double, Next: Eject, Prev: Dim, Up: Pseudo Ops
+
+7.35 `.double FLONUMS'
+======================
+
+`.double' expects zero or more flonums, separated by commas. It
+assembles floating point numbers. The exact kind of floating point
+numbers emitted depends on how `as' is configured. *Note Machine
+Dependencies::.
+
+
+File: as.info, Node: Eject, Next: Else, Prev: Double, Up: Pseudo Ops
+
+7.36 `.eject'
+=============
+
+Force a page break at this point, when generating assembly listings.
+
+
+File: as.info, Node: Else, Next: Elseif, Prev: Eject, Up: Pseudo Ops
+
+7.37 `.else'
+============
+
+`.else' is part of the `as' support for conditional assembly; see *Note
+`.if': If. It marks the beginning of a section of code to be assembled
+if the condition for the preceding `.if' was false.
+
+
+File: as.info, Node: Elseif, Next: End, Prev: Else, Up: Pseudo Ops
+
+7.38 `.elseif'
+==============
+
+`.elseif' is part of the `as' support for conditional assembly; see
+*Note `.if': If. It is shorthand for beginning a new `.if' block that
+would otherwise fill the entire `.else' section.
+
+
+File: as.info, Node: End, Next: Endef, Prev: Elseif, Up: Pseudo Ops
+
+7.39 `.end'
+===========
+
+`.end' marks the end of the assembly file. `as' does not process
+anything in the file past the `.end' directive.
+
+
+File: as.info, Node: Endef, Next: Endfunc, Prev: End, Up: Pseudo Ops
+
+7.40 `.endef'
+=============
+
+This directive flags the end of a symbol definition begun with `.def'.
+
+
+File: as.info, Node: Endfunc, Next: Endif, Prev: Endef, Up: Pseudo Ops
+
+7.41 `.endfunc'
+===============
+
+`.endfunc' marks the end of a function specified with `.func'.
+
+
+File: as.info, Node: Endif, Next: Equ, Prev: Endfunc, Up: Pseudo Ops
+
+7.42 `.endif'
+=============
+
+`.endif' is part of the `as' support for conditional assembly; it marks
+the end of a block of code that is only assembled conditionally. *Note
+`.if': If.
+
+
+File: as.info, Node: Equ, Next: Equiv, Prev: Endif, Up: Pseudo Ops
+
+7.43 `.equ SYMBOL, EXPRESSION'
+==============================
+
+This directive sets the value of SYMBOL to EXPRESSION. It is
+synonymous with `.set'; see *Note `.set': Set.
+
+ The syntax for `equ' on the HPPA is `SYMBOL .equ EXPRESSION'.
+
+ The syntax for `equ' on the Z80 is `SYMBOL equ EXPRESSION'. On the
+Z80 it is an eror if SYMBOL is already defined, but the symbol is not
+protected from later redefinition. Compare *Note Equiv::.
+
+
+File: as.info, Node: Equiv, Next: Eqv, Prev: Equ, Up: Pseudo Ops
+
+7.44 `.equiv SYMBOL, EXPRESSION'
+================================
+
+The `.equiv' directive is like `.equ' and `.set', except that the
+assembler will signal an error if 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
+ .ifdef SYM
+ .err
+ .endif
+ .equ SYM,VAL
+ plus it protects the symbol from later redefinition.
+
+
+File: as.info, Node: Eqv, Next: Err, Prev: Equiv, Up: Pseudo Ops
+
+7.45 `.eqv SYMBOL, EXPRESSION'
+==============================
+
+The `.eqv' directive is like `.equiv', but no attempt is made to
+evaluate the expression or any part of it immediately. Instead each
+time the resulting symbol is used in an expression, a snapshot of its
+current value is taken.
+
+
+File: as.info, Node: Err, Next: Error, Prev: Eqv, Up: Pseudo Ops
+
+7.46 `.err'
+===========
+
+If `as' assembles a `.err' directive, it will print an error message
+and, unless the `-Z' option was used, it will not generate an object
+file. This can be used to signal an error in conditionally compiled
+code.
+
+
+File: as.info, Node: Error, Next: Exitm, Prev: Err, Up: Pseudo Ops
+
+7.47 `.error "STRING"'
+======================
+
+Similarly to `.err', this directive emits an error, but you can specify
+a string that will be emitted as the error message. If you don't
+specify the message, it defaults to `".error directive invoked in
+source file"'. *Note Error and Warning Messages: Errors.
+
+ .error "This code has not been assembled and tested."
+
+
+File: as.info, Node: Exitm, Next: Extern, Prev: Error, Up: Pseudo Ops
+
+7.48 `.exitm'
+=============
+
+Exit early from the current macro definition. *Note Macro::.
+
+
+File: as.info, Node: Extern, Next: Fail, Prev: Exitm, Up: Pseudo Ops
+
+7.49 `.extern'
+==============
+
+`.extern' is accepted in the source program--for compatibility with
+other assemblers--but it is ignored. `as' treats all undefined symbols
+as external.
+
+
+File: as.info, Node: Fail, Next: File, Prev: Extern, Up: Pseudo Ops
+
+7.50 `.fail EXPRESSION'
+=======================
+
+Generates an error or a warning. If the value of the EXPRESSION is 500
+or more, `as' will print a warning message. If the value is less than
+500, `as' will print an error message. The message will include the
+value of EXPRESSION. This can occasionally be useful inside complex
+nested macros or conditional assembly.
+
+
+File: as.info, Node: File, Next: Fill, Prev: Fail, Up: Pseudo Ops
+
+7.51 `.file'
+============
+
+There are two different versions of the `.file' directive. Targets
+that support DWARF2 line number information use the DWARF2 version of
+`.file'. Other targets use the default version.
+
+Default Version
+---------------
+
+This version of the `.file' directive tells `as' that we are about to
+start a new logical file. The syntax is:
+
+ .file STRING
+
+ STRING is the new file name. In general, the filename is recognized
+whether or not it is surrounded by quotes `"'; but if you wish to
+specify an empty file name, you must give the quotes-`""'. This
+statement may go away in future: it is only recognized to be compatible
+with old `as' programs.
+
+DWARF2 Version
+--------------
+
+When emitting DWARF2 line number information, `.file' assigns filenames
+to the `.debug_line' file name table. The syntax is:
+
+ .file FILENO FILENAME
+
+ The FILENO operand should be a unique positive integer to use as the
+index of the entry in the table. The FILENAME operand is a C string
+literal.
+
+ The detail of filename indices is exposed to the user because the
+filename table is shared with the `.debug_info' section of the DWARF2
+debugging information, and thus the user must know the exact indices
+that table entries will have.
+
+
+File: as.info, Node: Fill, Next: Float, Prev: File, Up: Pseudo Ops
+
+7.52 `.fill REPEAT , SIZE , VALUE'
+==================================
+
+REPEAT, SIZE and VALUE are absolute expressions. This emits REPEAT
+copies of SIZE bytes. REPEAT may be zero or more. SIZE may be zero or
+more, but if it is more than 8, then it is deemed to have the value 8,
+compatible with other people's assemblers. The contents of each REPEAT
+bytes is taken from an 8-byte number. The highest order 4 bytes are
+zero. The lowest order 4 bytes are VALUE rendered in the byte-order of
+an integer on the computer `as' is assembling for. Each SIZE bytes in
+a repetition is taken from the lowest order SIZE bytes of this number.
+Again, this bizarre behavior is compatible with other people's
+assemblers.
+
+ SIZE and VALUE are optional. If the second comma and VALUE are
+absent, VALUE is assumed zero. If the first comma and following tokens
+are absent, SIZE is assumed to be 1.
+
+
+File: as.info, Node: Float, Next: Func, Prev: Fill, Up: Pseudo Ops
+
+7.53 `.float FLONUMS'
+=====================
+
+This directive assembles zero or more flonums, separated by commas. It
+has the same effect as `.single'. The exact kind of floating point
+numbers emitted depends on how `as' is configured. *Note Machine
+Dependencies::.
+
+
+File: as.info, Node: Func, Next: Global, Prev: Float, Up: Pseudo Ops
+
+7.54 `.func NAME[,LABEL]'
+=========================
+
+`.func' emits debugging information to denote function NAME, and is
+ignored unless the file is assembled with debugging enabled. Only
+`--gstabs[+]' is currently supported. LABEL is the entry point of the
+function and if omitted NAME prepended with the `leading char' is used.
+`leading char' is usually `_' or nothing, depending on the target. All
+functions are currently defined to have `void' return type. The
+function must be terminated with `.endfunc'.
+
+
+File: as.info, Node: Global, Next: Gnu_attribute, Prev: Func, Up: Pseudo Ops
+
+7.55 `.global SYMBOL', `.globl SYMBOL'
+======================================
+
+`.global' makes the symbol visible to `ld'. If you define SYMBOL in
+your partial program, its value is made available to other partial
+programs that are linked with it. Otherwise, SYMBOL takes its
+attributes from a symbol of the same name from another file linked into
+the same program.
+
+ Both spellings (`.globl' and `.global') are accepted, for
+compatibility with other assemblers.
+
+ On the HPPA, `.global' is not always enough to make it accessible to
+other partial programs. You may need the HPPA-only `.EXPORT' directive
+as well. *Note HPPA Assembler Directives: HPPA Directives.
+
+
+File: as.info, Node: Gnu_attribute, Next: Hidden, Prev: Global, Up: Pseudo Ops
+
+7.56 `.gnu_attribute TAG,VALUE'
+===============================
+
+Record a GNU object attribute for this file. *Note Object Attributes::.
+
+
+File: as.info, Node: Hidden, Next: hword, Prev: Gnu_attribute, Up: Pseudo Ops
+
+7.57 `.hidden NAMES'
+====================
+
+This is one of the ELF visibility directives. The other two are
+`.internal' (*note `.internal': Internal.) and `.protected' (*note
+`.protected': 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 `hidden' which means that the symbols are not visible
+to other components. Such symbols are always considered to be
+`protected' as well.
+
+
+File: as.info, Node: hword, Next: Ident, Prev: Hidden, Up: Pseudo Ops
+
+7.58 `.hword EXPRESSIONS'
+=========================
+
+This expects zero or more EXPRESSIONS, and emits a 16 bit number for
+each.
+
+ This directive is a synonym for `.short'; depending on the target
+architecture, it may also be a synonym for `.word'.
+
+
+File: as.info, Node: Ident, Next: If, Prev: hword, Up: Pseudo Ops
+
+7.59 `.ident'
+=============
+
+This directive is used by some assemblers to place tags in object
+files. The behavior of this directive varies depending on the target.
+When using the a.out object file format, `as' simply accepts the
+directive for source-file compatibility with existing assemblers, but
+does not emit anything for it. When using COFF, comments are emitted
+to the `.comment' or `.rdata' section, depending on the target. When
+using ELF, comments are emitted to the `.comment' section.
+
+
+File: as.info, Node: If, Next: Incbin, Prev: Ident, Up: Pseudo Ops
+
+7.60 `.if ABSOLUTE EXPRESSION'
+==============================
+
+`.if' marks the beginning of a section of code which is only considered
+part of the source program being assembled if the argument (which must
+be an ABSOLUTE EXPRESSION) is non-zero. The end of the conditional
+section of code must be marked by `.endif' (*note `.endif': Endif.);
+optionally, you may include code for the alternative condition, flagged
+by `.else' (*note `.else': Else.). If you have several conditions to
+check, `.elseif' may be used to avoid nesting blocks if/else within
+each subsequent `.else' block.
+
+ The following variants of `.if' are also supported:
+`.ifdef SYMBOL'
+ Assembles the following section of code if the specified SYMBOL
+ has been defined. Note a symbol which has been referenced but not
+ yet defined is considered to be undefined.
+
+`.ifb TEXT'
+ Assembles the following section of code if the operand is blank
+ (empty).
+
+`.ifc STRING1,STRING2'
+ Assembles the following section of code if the two strings are the
+ same. The strings may be optionally quoted with single quotes.
+ If they are not quoted, the first string stops at the first comma,
+ and the second string stops at the end of the line. Strings which
+ contain whitespace should be quoted. The string comparison is
+ case sensitive.
+
+`.ifeq ABSOLUTE EXPRESSION'
+ Assembles the following section of code if the argument is zero.
+
+`.ifeqs STRING1,STRING2'
+ Another form of `.ifc'. The strings must be quoted using double
+ quotes.
+
+`.ifge ABSOLUTE EXPRESSION'
+ Assembles the following section of code if the argument is greater
+ than or equal to zero.
+
+`.ifgt ABSOLUTE EXPRESSION'
+ Assembles the following section of code if the argument is greater
+ than zero.
+
+`.ifle ABSOLUTE EXPRESSION'
+ Assembles the following section of code if the argument is less
+ than or equal to zero.
+
+`.iflt ABSOLUTE EXPRESSION'
+ Assembles the following section of code if the argument is less
+ than zero.
+
+`.ifnb TEXT'
+ Like `.ifb', but the sense of the test is reversed: this assembles
+ the following section of code if the operand is non-blank
+ (non-empty).
+
+`.ifnc STRING1,STRING2.'
+ Like `.ifc', but the sense of the test is reversed: this assembles
+ the following section of code if the two strings are not the same.
+
+`.ifndef SYMBOL'
+`.ifnotdef SYMBOL'
+ Assembles the following section of code if the specified SYMBOL
+ 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.
+
+`.ifne ABSOLUTE EXPRESSION'
+ Assembles the following section of code if the argument is not
+ equal to zero (in other words, this is equivalent to `.if').
+
+`.ifnes STRING1,STRING2'
+ Like `.ifeqs', but the sense of the test is reversed: this
+ assembles the following section of code if the two strings are not
+ the same.
+
+
+File: as.info, Node: Incbin, Next: Include, Prev: If, Up: Pseudo Ops
+
+7.61 `.incbin "FILE"[,SKIP[,COUNT]]'
+====================================
+
+The `incbin' directive includes FILE verbatim at the current location.
+You can control the search paths used with the `-I' command-line option
+(*note Command-Line Options: Invoking.). Quotation marks are required
+around FILE.
+
+ The SKIP argument skips a number of bytes from the start of the
+FILE. The COUNT argument indicates the maximum number of bytes to
+read. Note that the data is not aligned in any way, so it is the user's
+responsibility to make sure that proper alignment is provided both
+before and after the `incbin' directive.
+
+
+File: as.info, Node: Include, Next: Int, Prev: Incbin, Up: Pseudo Ops
+
+7.62 `.include "FILE"'
+======================
+
+This directive provides a way to include supporting files at specified
+points in your source program. The code from FILE is assembled as if
+it followed the point of the `.include'; when the end of the included
+file is reached, assembly of the original file continues. You can
+control the search paths used with the `-I' command-line option (*note
+Command-Line Options: Invoking.). Quotation marks are required around
+FILE.
+
+
+File: as.info, Node: Int, Next: Internal, Prev: Include, Up: Pseudo Ops
+
+7.63 `.int EXPRESSIONS'
+=======================
+
+Expect zero or more EXPRESSIONS, of any section, separated by commas.
+For each expression, emit a number that, at run time, is the value of
+that expression. The byte order and bit size of the number depends on
+what kind of target the assembly is for.
+
+
+File: as.info, Node: Internal, Next: Irp, Prev: Int, Up: Pseudo Ops
+
+7.64 `.internal NAMES'
+======================
+
+This is one of the ELF visibility directives. The other two are
+`.hidden' (*note `.hidden': Hidden.) and `.protected' (*note
+`.protected': 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 `internal' which means that the symbols are
+considered to be `hidden' (i.e., not visible to other components), and
+that some extra, processor specific processing must also be performed
+upon the symbols as well.
+
+
+File: as.info, Node: Irp, Next: Irpc, Prev: Internal, Up: Pseudo Ops
+
+7.65 `.irp SYMBOL,VALUES'...
+============================
+
+Evaluate a sequence of statements assigning different values to SYMBOL.
+The sequence of statements starts at the `.irp' directive, and is
+terminated by an `.endr' directive. For each VALUE, SYMBOL is set to
+VALUE, and the sequence of statements is assembled. If no VALUE is
+listed, the sequence of statements is assembled once, with SYMBOL set
+to the null string. To refer to SYMBOL within the sequence of
+statements, use \SYMBOL.
+
+ For example, assembling
+
+ .irp param,1,2,3
+ move d\param,sp@-
+ .endr
+
+ is equivalent to assembling
+
+ move d1,sp@-
+ move d2,sp@-
+ move d3,sp@-
+
+ For some caveats with the spelling of SYMBOL, see also *Note Macro::.
+
+
+File: as.info, Node: Irpc, Next: Lcomm, Prev: Irp, Up: Pseudo Ops
+
+7.66 `.irpc SYMBOL,VALUES'...
+=============================
+
+Evaluate a sequence of statements assigning different values to SYMBOL.
+The sequence of statements starts at the `.irpc' directive, and is
+terminated by an `.endr' directive. For each character in VALUE,
+SYMBOL is set to the character, and the sequence of statements is
+assembled. If no VALUE is listed, the sequence of statements is
+assembled once, with SYMBOL set to the null string. To refer to SYMBOL
+within the sequence of statements, use \SYMBOL.
+
+ For example, assembling
+
+ .irpc param,123
+ move d\param,sp@-
+ .endr
+
+ is equivalent to assembling
+
+ move d1,sp@-
+ move d2,sp@-
+ move d3,sp@-
+
+ For some caveats with the spelling of SYMBOL, see also the discussion
+at *Note Macro::.
+
+
+File: as.info, Node: Lcomm, Next: Lflags, Prev: Irpc, Up: Pseudo Ops
+
+7.67 `.lcomm SYMBOL , LENGTH'
+=============================
+
+Reserve LENGTH (an absolute expression) bytes for a local common
+denoted by SYMBOL. The section and value of SYMBOL are those of the
+new local common. The addresses are allocated in the bss section, so
+that at run-time the bytes start off zeroed. SYMBOL is not declared
+global (*note `.global': Global.), so is normally not visible to `ld'.
+
+ Some targets permit a third argument to be used with `.lcomm'. This
+argument specifies the desired alignment of the symbol in the bss
+section.
+
+ The syntax for `.lcomm' differs slightly on the HPPA. The syntax is
+`SYMBOL .lcomm, LENGTH'; SYMBOL is optional.
+
+
+File: as.info, Node: Lflags, Next: Line, Prev: Lcomm, Up: Pseudo Ops
+
+7.68 `.lflags'
+==============
+
+`as' accepts this directive, for compatibility with other assemblers,
+but ignores it.
+
+
+File: as.info, Node: Line, Next: Linkonce, Prev: Lflags, Up: Pseudo Ops
+
+7.69 `.line LINE-NUMBER'
+========================
+
+Change the logical line number. LINE-NUMBER must be an absolute
+expression. The next line has that logical line number. Therefore any
+other statements on the current line (after a statement separator
+character) are reported as on logical line number LINE-NUMBER - 1. One
+day `as' will no longer support this directive: it is recognized only
+for compatibility with existing assembler programs.
+
+Even though this is a directive associated with the `a.out' or `b.out'
+object-code formats, `as' still recognizes it when producing COFF
+output, and treats `.line' as though it were the COFF `.ln' _if_ it is
+found outside a `.def'/`.endef' pair.
+
+ Inside a `.def', `.line' is, instead, one of the directives used by
+compilers to generate auxiliary symbol information for debugging.
+
+
+File: as.info, Node: Linkonce, Next: List, Prev: Line, Up: Pseudo Ops
+
+7.70 `.linkonce [TYPE]'
+=======================
+
+Mark the current section so that the linker only includes a single copy
+of it. This may be used to include the same section in several
+different object files, but ensure that the linker will only include it
+once in the final output file. The `.linkonce' pseudo-op must be used
+for each instance of the section. Duplicate sections are detected
+based on the section name, so it should be unique.
+
+ This directive is only supported by a few object file formats; as of
+this writing, the only object file format which supports it is the
+Portable Executable format used on Windows NT.
+
+ The TYPE argument is optional. If specified, it must be one of the
+following strings. For example:
+ .linkonce same_size
+ Not all types may be supported on all object file formats.
+
+`discard'
+ Silently discard duplicate sections. This is the default.
+
+`one_only'
+ Warn if there are duplicate sections, but still keep only one copy.
+
+`same_size'
+ Warn if any of the duplicates have different sizes.
+
+`same_contents'
+ Warn if any of the duplicates do not have exactly the same
+ contents.
+
+
+File: as.info, Node: List, Next: Ln, Prev: Linkonce, Up: Pseudo Ops
+
+7.71 `.list'
+============
+
+Control (in conjunction with the `.nolist' directive) whether or not
+assembly listings are generated. These two directives maintain an
+internal counter (which is zero initially). `.list' increments the
+counter, and `.nolist' decrements it. Assembly listings are generated
+whenever the counter is greater than zero.
+
+ By default, listings are disabled. When you enable them (with the
+`-a' command line option; *note Command-Line Options: Invoking.), the
+initial value of the listing counter is one.
+
+
+File: as.info, Node: Ln, Next: Loc, Prev: List, Up: Pseudo Ops
+
+7.72 `.ln LINE-NUMBER'
+======================
+
+`.ln' is a synonym for `.line'.
+
+
+File: as.info, Node: Loc, Next: Loc_mark_labels, Prev: Ln, Up: Pseudo Ops
+
+7.73 `.loc FILENO LINENO [COLUMN] [OPTIONS]'
+============================================
+
+When emitting DWARF2 line number information, the `.loc' directive will
+add a row to the `.debug_line' line number matrix corresponding to the
+immediately following assembly instruction. The FILENO, LINENO, and
+optional COLUMN arguments will be applied to the `.debug_line' state
+machine before the row is added.
+
+ The OPTIONS are a sequence of the following tokens in any order:
+
+`basic_block'
+ This option will set the `basic_block' register in the
+ `.debug_line' state machine to `true'.
+
+`prologue_end'
+ This option will set the `prologue_end' register in the
+ `.debug_line' state machine to `true'.
+
+`epilogue_begin'
+ This option will set the `epilogue_begin' register in the
+ `.debug_line' state machine to `true'.
+
+`is_stmt VALUE'
+ This option will set the `is_stmt' register in the `.debug_line'
+ state machine to `value', which must be either 0 or 1.
+
+`isa VALUE'
+ This directive will set the `isa' register in the `.debug_line'
+ state machine to VALUE, which must be an unsigned integer.
+
+`discriminator VALUE'
+ This directive will set the `discriminator' register in the
+ `.debug_line' state machine to VALUE, which must be an unsigned
+ integer.
+
+
+
+File: as.info, Node: Loc_mark_labels, Next: Local, Prev: Loc, Up: Pseudo Ops
+
+7.74 `.loc_mark_labels ENABLE'
+==============================
+
+When emitting DWARF2 line number information, the `.loc_mark_labels'
+directive makes the assembler emit an entry to the `.debug_line' line
+number matrix with the `basic_block' register in the state machine set
+whenever a code label is seen. The ENABLE argument should be either 1
+or 0, to enable or disable this function respectively.
+
+
+File: as.info, Node: Local, Next: Long, Prev: Loc_mark_labels, Up: Pseudo Ops
+
+7.75 `.local NAMES'
+===================
+
+This directive, which is available for ELF targets, marks each symbol in
+the comma-separated list of `names' as a local symbol so that it will
+not be externally visible. If the symbols do not already exist, they
+will be created.
+
+ For targets where the `.lcomm' directive (*note Lcomm::) does not
+accept an alignment argument, which is the case for most ELF targets,
+the `.local' directive can be used in combination with `.comm' (*note
+Comm::) to define aligned local common data.
+
+
+File: as.info, Node: Long, Next: Macro, Prev: Local, Up: Pseudo Ops
+
+7.76 `.long EXPRESSIONS'
+========================
+
+`.long' is the same as `.int'. *Note `.int': Int.
+
+
+File: as.info, Node: Macro, Next: MRI, Prev: Long, Up: Pseudo Ops
+
+7.77 `.macro'
+=============
+
+The commands `.macro' and `.endm' allow you to define macros that
+generate assembly output. For example, this definition specifies a
+macro `sum' that puts a sequence of numbers into memory:
+
+ .macro sum from=0, to=5
+ .long \from
+ .if \to-\from
+ sum "(\from+1)",\to
+ .endif
+ .endm
+
+With that definition, `SUM 0,5' is equivalent to this assembly input:
+
+ .long 0
+ .long 1
+ .long 2
+ .long 3
+ .long 4
+ .long 5
+
+`.macro MACNAME'
+`.macro MACNAME MACARGS ...'
+ Begin the definition of a macro called MACNAME. If your macro
+ definition requires arguments, specify their names after the macro
+ name, separated by commas or spaces. You can qualify the macro
+ argument to indicate whether all invocations must specify a
+ non-blank value (through `:`req''), or whether it takes all of the
+ remaining arguments (through `:`vararg''). You can supply a
+ default value for any macro argument by following the name with
+ `=DEFLT'. You cannot define two macros with the same MACNAME
+ unless it has been subject to the `.purgem' directive (*note
+ Purgem::) between the two definitions. For example, these are all
+ valid `.macro' statements:
+
+ `.macro comm'
+ Begin the definition of a macro called `comm', which takes no
+ arguments.
+
+ `.macro plus1 p, p1'
+ `.macro plus1 p p1'
+ Either statement begins the definition of a macro called
+ `plus1', which takes two arguments; within the macro
+ definition, write `\p' or `\p1' to evaluate the arguments.
+
+ `.macro reserve_str p1=0 p2'
+ Begin the definition of a macro called `reserve_str', with two
+ arguments. The first argument has a default value, but not
+ the second. After the definition is complete, you can call
+ the macro either as `reserve_str A,B' (with `\p1' evaluating
+ to A and `\p2' evaluating to B), or as `reserve_str ,B' (with
+ `\p1' evaluating as the default, in this case `0', and `\p2'
+ evaluating to B).
+
+ `.macro m p1:req, p2=0, p3:vararg'
+ Begin the definition of a macro called `m', with at least
+ three arguments. The first argument must always have a value
+ specified, but not the second, which instead has a default
+ value. The third formal will get assigned all remaining
+ arguments specified at invocation time.
+
+ When you call a macro, you can specify the argument values
+ either by position, or by keyword. For example, `sum 9,17'
+ is equivalent to `sum to=17, from=9'.
+
+
+ Note that since each of the MACARGS can be an identifier exactly
+ as any other one permitted by the target architecture, there may be
+ occasional problems if the target hand-crafts special meanings to
+ certain characters when they occur in a special position. For
+ example, if the colon (`:') is generally permitted to be part of a
+ symbol name, but the architecture specific code special-cases it
+ when occurring as the final character of a symbol (to denote a
+ label), then the macro parameter replacement code will have no way
+ of knowing that and consider the whole construct (including the
+ colon) an identifier, and check only this identifier for being the
+ subject to parameter substitution. So for example this macro
+ definition:
+
+ .macro label l
+ \l:
+ .endm
+
+ might not work as expected. Invoking `label foo' might not create
+ a label called `foo' but instead just insert the text `\l:' into
+ the assembler source, probably generating an error about an
+ unrecognised identifier.
+
+ Similarly problems might occur with the period character (`.')
+ which is often allowed inside opcode names (and hence identifier
+ names). So for example constructing a macro to build an opcode
+ from a base name and a length specifier like this:
+
+ .macro opcode base length
+ \base.\length
+ .endm
+
+ and invoking it as `opcode store l' will not create a `store.l'
+ instruction but instead generate some kind of error as the
+ assembler tries to interpret the text `\base.\length'.
+
+ There are several possible ways around this problem:
+
+ `Insert white space'
+ If it is possible to use white space characters then this is
+ the simplest solution. eg:
+
+ .macro label l
+ \l :
+ .endm
+
+ `Use `\()''
+ The string `\()' can be used to separate the end of a macro
+ argument from the following text. eg:
+
+ .macro opcode base length
+ \base\().\length
+ .endm
+
+ `Use the alternate macro syntax mode'
+ In the alternative macro syntax mode the ampersand character
+ (`&') can be used as a separator. eg:
+
+ .altmacro
+ .macro label l
+ l&:
+ .endm
+
+ Note: this problem of correctly identifying string parameters to
+ pseudo ops also applies to the identifiers used in `.irp' (*note
+ Irp::) and `.irpc' (*note Irpc::) as well.
+
+`.endm'
+ Mark the end of a macro definition.
+
+`.exitm'
+ Exit early from the current macro definition.
+
+`\@'
+ `as' maintains a counter of how many macros it has executed in
+ this pseudo-variable; you can copy that number to your output with
+ `\@', but _only within a macro definition_.
+
+`LOCAL NAME [ , ... ]'
+ _Warning: `LOCAL' is only available if you select "alternate macro
+ syntax" with `--alternate' or `.altmacro'._ *Note `.altmacro':
+ Altmacro.
+
+
+File: as.info, Node: MRI, Next: Noaltmacro, Prev: Macro, Up: Pseudo Ops
+
+7.78 `.mri VAL'
+===============
+
+If VAL is non-zero, this tells `as' to enter MRI mode. If VAL is zero,
+this tells `as' to exit MRI mode. This change affects code assembled
+until the next `.mri' directive, or until the end of the file. *Note
+MRI mode: M.
+
+
+File: as.info, Node: Noaltmacro, Next: Nolist, Prev: MRI, Up: Pseudo Ops
+
+7.79 `.noaltmacro'
+==================
+
+Disable alternate macro mode. *Note Altmacro::.
+
+
+File: as.info, Node: Nolist, Next: Octa, Prev: Noaltmacro, Up: Pseudo Ops
+
+7.80 `.nolist'
+==============
+
+Control (in conjunction with the `.list' directive) whether or not
+assembly listings are generated. These two directives maintain an
+internal counter (which is zero initially). `.list' increments the
+counter, and `.nolist' decrements it. Assembly listings are generated
+whenever the counter is greater than zero.
+
+
+File: as.info, Node: Octa, Next: Offset, Prev: Nolist, Up: Pseudo Ops
+
+7.81 `.octa BIGNUMS'
+====================
+
+This directive expects zero or more bignums, separated by commas. For
+each bignum, it emits a 16-byte integer.
+
+ The term "octa" comes from contexts in which a "word" is two bytes;
+hence _octa_-word for 16 bytes.
+
+
+File: as.info, Node: Offset, Next: Org, Prev: Octa, Up: Pseudo Ops
+
+7.82 `.offset LOC'
+==================
+
+Set the location counter to LOC in the absolute section. LOC must be
+an absolute expression. This directive may be useful for defining
+symbols with absolute values. Do not confuse it with the `.org'
+directive.
+
+
+File: as.info, Node: Org, Next: P2align, Prev: Offset, Up: Pseudo Ops
+
+7.83 `.org NEW-LC , FILL'
+=========================
+
+Advance the location counter of the current section to NEW-LC. NEW-LC
+is either an absolute expression or an expression with the same section
+as the current subsection. That is, you can't use `.org' to cross
+sections: if NEW-LC has the wrong section, the `.org' directive is
+ignored. To be compatible with former assemblers, if the section of
+NEW-LC is absolute, `as' issues a warning, then pretends the section of
+NEW-LC is the same as the current subsection.
+
+ `.org' may only increase the location counter, or leave it
+unchanged; you cannot use `.org' to move the location counter backwards.
+
+ Because `as' tries to assemble programs in one pass, NEW-LC may not
+be undefined. If you really detest this restriction we eagerly await a
+chance to share your improved assembler.
+
+ Beware that the origin is relative to the start of the section, not
+to the start of the subsection. This is compatible with other people's
+assemblers.
+
+ When the location counter (of the current subsection) is advanced,
+the intervening bytes are filled with FILL which should be an absolute
+expression. If the comma and FILL are omitted, FILL defaults to zero.
+
+
+File: as.info, Node: P2align, Next: PopSection, Prev: Org, Up: Pseudo Ops
+
+7.84 `.p2align[wl] ABS-EXPR, ABS-EXPR, ABS-EXPR'
+================================================
+
+Pad the location counter (in the current subsection) to a particular
+storage boundary. The first expression (which must be absolute) is the
+number of low-order zero bits the location counter must have after
+advancement. For example `.p2align 3' advances the location counter
+until it a multiple of 8. If the location counter is already a
+multiple of 8, no change is needed.
+
+ The second expression (also absolute) gives the fill value to be
+stored in the padding bytes. It (and the comma) may be omitted. If it
+is omitted, the padding bytes are normally zero. However, on some
+systems, if the section is marked as containing code and the fill value
+is omitted, the space is filled with no-op instructions.
+
+ The third expression is also absolute, and is also optional. If it
+is present, it is the maximum number of bytes that should be skipped by
+this alignment directive. If doing the alignment would require
+skipping more bytes than the specified maximum, then the alignment is
+not done at all. You can omit the fill value (the second argument)
+entirely by simply using two commas after the required alignment; this
+can be useful if you want the alignment to be filled with no-op
+instructions when appropriate.
+
+ The `.p2alignw' and `.p2alignl' directives are variants of the
+`.p2align' directive. The `.p2alignw' directive treats the fill
+pattern as a two byte word value. The `.p2alignl' directives treats the
+fill pattern as a four byte longword value. For example, `.p2alignw
+2,0x368d' will align to a multiple of 4. If it skips two bytes, they
+will be filled in with the value 0x368d (the exact placement of the
+bytes depends upon the endianness of the processor). If it skips 1 or
+3 bytes, the fill value is undefined.
+
+
+File: as.info, Node: PopSection, Next: Previous, Prev: P2align, Up: Pseudo Ops
+
+7.85 `.popsection'
+==================
+
+This is one of the ELF section stack manipulation directives. The
+others are `.section' (*note Section::), `.subsection' (*note
+SubSection::), `.pushsection' (*note PushSection::), and `.previous'
+(*note 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 stack.
+
+
+File: as.info, Node: Previous, Next: Print, Prev: PopSection, Up: Pseudo Ops
+
+7.86 `.previous'
+================
+
+This is one of the ELF section stack manipulation directives. The
+others are `.section' (*note Section::), `.subsection' (*note
+SubSection::), `.pushsection' (*note PushSection::), and `.popsection'
+(*note PopSection::).
+
+ This directive swaps the current section (and subsection) with most
+recently referenced section/subsection pair prior to this one. Multiple
+`.previous' directives in a row will flip between two sections (and
+their subsections). For example:
+
+ .section A
+ .subsection 1
+ .word 0x1234
+ .subsection 2
+ .word 0x5678
+ .previous
+ .word 0x9abc
+
+ Will place 0x1234 and 0x9abc into subsection 1 and 0x5678 into
+subsection 2 of section A. Whilst:
+
+ .section A
+ .subsection 1
+ # Now in section A subsection 1
+ .word 0x1234
+ .section B
+ .subsection 0
+ # Now in section B subsection 0
+ .word 0x5678
+ .subsection 1
+ # Now in section B subsection 1
+ .word 0x9abc
+ .previous
+ # Now in section B subsection 0
+ .word 0xdef0
+
+ Will place 0x1234 into section A, 0x5678 and 0xdef0 into subsection
+0 of section B and 0x9abc into subsection 1 of section B.
+
+ In terms of the section stack, this directive swaps the current
+section with the top section on the section stack.
+
+
+File: as.info, Node: Print, Next: Protected, Prev: Previous, Up: Pseudo Ops
+
+7.87 `.print STRING'
+====================
+
+`as' will print STRING on the standard output during assembly. You
+must put STRING in double quotes.
+
+
+File: as.info, Node: Protected, Next: Psize, Prev: Print, Up: Pseudo Ops
+
+7.88 `.protected NAMES'
+=======================
+
+This is one of the ELF visibility directives. The other two are
+`.hidden' (*note Hidden::) and `.internal' (*note 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 `protected' which means that any references to the
+symbols from within the components that defines them must be resolved
+to the definition in that component, even if a definition in another
+component would normally preempt this.
+
+
+File: as.info, Node: Psize, Next: Purgem, Prev: Protected, Up: Pseudo Ops
+
+7.89 `.psize LINES , COLUMNS'
+=============================
+
+Use this directive to declare the number of lines--and, optionally, the
+number of columns--to use for each page, when generating listings.
+
+ If you do not use `.psize', listings use a default line-count of 60.
+You may omit the comma and COLUMNS specification; the default width is
+200 columns.
+
+ `as' generates formfeeds whenever the specified number of lines is
+exceeded (or whenever you explicitly request one, using `.eject').
+
+ If you specify LINES as `0', no formfeeds are generated save those
+explicitly specified with `.eject'.
+
+
+File: as.info, Node: Purgem, Next: PushSection, Prev: Psize, Up: Pseudo Ops
+
+7.90 `.purgem NAME'
+===================
+
+Undefine the macro NAME, so that later uses of the string will not be
+expanded. *Note Macro::.
+
+
+File: as.info, Node: PushSection, Next: Quad, Prev: Purgem, Up: Pseudo Ops
+
+7.91 `.pushsection NAME [, SUBSECTION] [, "FLAGS"[, @TYPE[,ARGUMENTS]]]'
+========================================================================
+
+This is one of the ELF section stack manipulation directives. The
+others are `.section' (*note Section::), `.subsection' (*note
+SubSection::), `.popsection' (*note PopSection::), and `.previous'
+(*note Previous::).
+
+ This directive pushes the current section (and subsection) onto the
+top of the section stack, and then replaces the current section and
+subsection with `name' and `subsection'. The optional `flags', `type'
+and `arguments' are treated the same as in the `.section' (*note
+Section::) directive.
+
+
+File: as.info, Node: Quad, Next: Reloc, Prev: PushSection, Up: Pseudo Ops
+
+7.92 `.quad BIGNUMS'
+====================
+
+`.quad' expects zero or more bignums, separated by commas. For each
+bignum, it emits an 8-byte integer. If the bignum won't fit in 8
+bytes, it prints a warning message; and just takes the lowest order 8
+bytes of the bignum.
+
+ The term "quad" comes from contexts in which a "word" is two bytes;
+hence _quad_-word for 8 bytes.
+
+
+File: as.info, Node: Reloc, Next: Rept, Prev: Quad, Up: Pseudo Ops
+
+7.93 `.reloc OFFSET, RELOC_NAME[, EXPRESSION]'
+==============================================
+
+Generate a relocation at OFFSET of type RELOC_NAME with value
+EXPRESSION. If OFFSET is a number, the relocation is generated in the
+current section. If OFFSET is an expression that resolves to a symbol
+plus offset, the relocation is generated in the given symbol's section.
+EXPRESSION, if present, must resolve to a symbol plus addend or to an
+absolute value, but note that not all targets support an addend. e.g.
+ELF REL targets such as i386 store an addend in the section contents
+rather than in the relocation. This low level interface does not
+support addends stored in the section.
+
+
+File: as.info, Node: Rept, Next: Sbttl, Prev: Reloc, Up: Pseudo Ops
+
+7.94 `.rept COUNT'
+==================
+
+Repeat the sequence of lines between the `.rept' directive and the next
+`.endr' directive COUNT times.
+
+ For example, assembling
+
+ .rept 3
+ .long 0
+ .endr
+
+ is equivalent to assembling
+
+ .long 0
+ .long 0
+ .long 0
+
+
+File: as.info, Node: Sbttl, Next: Scl, Prev: Rept, Up: Pseudo Ops
+
+7.95 `.sbttl "SUBHEADING"'
+==========================
+
+Use SUBHEADING as the title (third line, immediately after the title
+line) 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.
+
+
+File: as.info, Node: Scl, Next: Section, Prev: Sbttl, Up: Pseudo Ops
+
+7.96 `.scl CLASS'
+=================
+
+Set the storage-class value for a symbol. This directive may only be
+used inside a `.def'/`.endef' pair. Storage class may flag whether a
+symbol is static or external, or it may record further symbolic
+debugging information.
+
+
+File: as.info, Node: Section, Next: Set, Prev: Scl, Up: Pseudo Ops
+
+7.97 `.section NAME'
+====================
+
+Use the `.section' directive to assemble the following code into a
+section named NAME.
+
+ This directive is only supported for targets that actually support
+arbitrarily named sections; on `a.out' targets, for example, it is not
+accepted, even with a standard `a.out' section name.
+
+COFF Version
+------------
+
+ For COFF targets, the `.section' directive is used in one of the
+following ways:
+
+ .section NAME[, "FLAGS"]
+ .section NAME[, SUBSECTION]
+
+ If the optional argument is quoted, it is taken as flags to use for
+the section. Each flag is a single character. The following flags are
+recognized:
+`b'
+ bss section (uninitialized data)
+
+`n'
+ section is not loaded
+
+`w'
+ writable section
+
+`d'
+ data section
+
+`r'
+ read-only section
+
+`x'
+ executable section
+
+`s'
+ shared section (meaningful for PE targets)
+
+`a'
+ ignored. (For compatibility with the ELF version)
+
+`y'
+ section is not readable (meaningful for PE targets)
+
+`0-9'
+ single-digit power-of-two section alignment (GNU extension)
+
+ 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. Note the `n' and `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 `.section' directive is not quoted,
+it is taken as a subsection number (*note Sub-Sections::).
+
+ELF Version
+-----------
+
+ This is one of the ELF section stack manipulation directives. The
+others are `.subsection' (*note SubSection::), `.pushsection' (*note
+PushSection::), `.popsection' (*note PopSection::), and `.previous'
+(*note Previous::).
+
+ For ELF targets, the `.section' directive is used like this:
+
+ .section NAME [, "FLAGS"[, @TYPE[,FLAG_SPECIFIC_ARGUMENTS]]]
+
+ The optional FLAGS argument is a quoted string which may contain any
+combination of the following characters:
+`a'
+ section is allocatable
+
+`e'
+ section is excluded from executable and shared library.
+
+`w'
+ section is writable
+
+`x'
+ section is executable
+
+`M'
+ section is mergeable
+
+`S'
+ section contains zero terminated strings
+
+`G'
+ section is a member of a section group
+
+`T'
+ section is used for thread-local-storage
+
+`?'
+ section is a member of the previously-current section's group, if
+ any
+
+ The optional TYPE argument may contain one of the following
+constants:
+`@progbits'
+ section contains data
+
+`@nobits'
+ section does not contain data (i.e., section only occupies space)
+
+`@note'
+ section contains data which is used by things other than the
+ program
+
+`@init_array'
+ section contains an array of pointers to init functions
+
+`@fini_array'
+ section contains an array of pointers to finish functions
+
+`@preinit_array'
+ section contains an array of pointers to pre-init functions
+
+ Many targets only support the first three section types.
+
+ Note on targets where the `@' character is the start of a comment (eg
+ARM) then another character is used instead. For example the ARM port
+uses the `%' character.
+
+ If FLAGS contains the `M' symbol then the TYPE argument must be
+specified as well as an extra argument--ENTSIZE--like this:
+
+ .section NAME , "FLAGS"M, @TYPE, ENTSIZE
+
+ Sections with the `M' flag but not `S' flag must contain fixed size
+constants, each ENTSIZE octets long. Sections with both `M' and `S'
+must contain zero terminated strings where each character is ENTSIZE
+bytes long. The linker may remove duplicates within sections with the
+same name, same entity size and same flags. ENTSIZE must be an
+absolute expression. For sections with both `M' and `S', a string
+which is a suffix of a larger string is considered a duplicate. Thus
+`"def"' will be merged with `"abcdef"'; A reference to the first
+`"def"' will be changed to a reference to `"abcdef"+3'.
+
+ If FLAGS contains the `G' symbol then the TYPE argument must be
+present along with an additional field like this:
+
+ .section NAME , "FLAGS"G, @TYPE, GROUPNAME[, LINKAGE]
+
+ The GROUPNAME field specifies the name of the section group to which
+this particular section belongs. The optional linkage field can
+contain:
+`comdat'
+ indicates that only one copy of this section should be retained
+
+`.gnu.linkonce'
+ an alias for comdat
+
+ Note: if both the M and G flags are present then the fields for the
+Merge flag should come first, like this:
+
+ .section NAME , "FLAGS"MG, @TYPE, ENTSIZE, GROUPNAME[, LINKAGE]
+
+ If FLAGS contains the `?' symbol then it may not also contain the
+`G' symbol and the GROUPNAME or LINKAGE fields should not be present.
+Instead, `?' says to consider the section that's current before this
+directive. If that section used `G', then the new section will use `G'
+with those same GROUPNAME and LINKAGE fields implicitly. If not, then
+the `?' symbol has no effect.
+
+ If no flags are specified, the default flags depend upon the section
+name. If the section name is not recognized, the default will be for
+the section to have none of the above flags: it will not be allocated
+in memory, nor writable, nor executable. The section will contain data.
+
+ For ELF targets, the assembler supports another type of `.section'
+directive for compatibility with the Solaris assembler:
+
+ .section "NAME"[, FLAGS...]
+
+ Note that the section name is quoted. There may be a sequence of
+comma separated flags:
+`#alloc'
+ section is allocatable
+
+`#write'
+ section is writable
+
+`#execinstr'
+ section is executable
+
+`#exclude'
+ section is excluded from executable and shared library.
+
+`#tls'
+ section is used for thread local storage
+
+ This directive replaces the current section and subsection. See the
+contents of the gas testsuite directory `gas/testsuite/gas/elf' for
+some examples of how this directive and the other section stack
+directives work.
+
+
+File: as.info, Node: Set, Next: Short, Prev: Section, Up: Pseudo Ops
+
+7.98 `.set SYMBOL, EXPRESSION'
+==============================
+
+Set the value of SYMBOL to EXPRESSION. This changes SYMBOL's value and
+type to conform to EXPRESSION. If SYMBOL was flagged as external, it
+remains flagged (*note Symbol Attributes::).
+
+ You may `.set' a symbol many times in the same assembly.
+
+ If you `.set' a global symbol, the value stored in the object file
+is the last value stored into it.
+
+ On Z80 `set' is a real instruction, use `SYMBOL defl EXPRESSION'
+instead.
+
+
+File: as.info, Node: Short, Next: Single, Prev: Set, Up: Pseudo Ops
+
+7.99 `.short EXPRESSIONS'
+=========================
+
+`.short' is normally the same as `.word'. *Note `.word': Word.
+
+ In some configurations, however, `.short' and `.word' generate
+numbers of different lengths. *Note Machine Dependencies::.
+
+
+File: as.info, Node: Single, Next: Size, Prev: Short, Up: Pseudo Ops
+
+7.100 `.single FLONUMS'
+=======================
+
+This directive assembles zero or more flonums, separated by commas. It
+has the same effect as `.float'. The exact kind of floating point
+numbers emitted depends on how `as' is configured. *Note Machine
+Dependencies::.
+
+
+File: as.info, Node: Size, Next: Skip, Prev: Single, Up: Pseudo Ops
+
+7.101 `.size'
+=============
+
+This directive is used to set the size associated with a symbol.
+
+COFF Version
+------------
+
+ For COFF targets, the `.size' directive is only permitted inside
+`.def'/`.endef' pairs. It is used like this:
+
+ .size EXPRESSION
+
+ELF Version
+-----------
+
+ For ELF targets, the `.size' directive is used like this:
+
+ .size NAME , EXPRESSION
+
+ This directive sets the size associated with a symbol NAME. The
+size in bytes is computed from EXPRESSION which can make use of label
+arithmetic. This directive is typically used to set the size of
+function symbols.
+
+
+File: as.info, Node: Skip, Next: Sleb128, Prev: Size, Up: Pseudo Ops
+
+7.102 `.skip SIZE , FILL'
+=========================
+
+This directive emits SIZE bytes, each of value FILL. Both SIZE and
+FILL are absolute expressions. If the comma and FILL are omitted, FILL
+is assumed to be zero. This is the same as `.space'.
+
+
+File: as.info, Node: Sleb128, Next: Space, Prev: Skip, Up: Pseudo Ops
+
+7.103 `.sleb128 EXPRESSIONS'
+============================
+
+SLEB128 stands for "signed little endian base 128." This is a compact,
+variable length representation of numbers used by the DWARF symbolic
+debugging format. *Note `.uleb128': Uleb128.
+
+
+File: as.info, Node: Space, Next: Stab, Prev: Sleb128, Up: Pseudo Ops
+
+7.104 `.space SIZE , FILL'
+==========================
+
+This directive emits SIZE bytes, each of value FILL. Both SIZE and
+FILL are absolute expressions. If the comma and FILL are omitted, FILL
+is assumed to be zero. This is the same as `.skip'.
+
+ _Warning:_ `.space' has a completely different meaning for HPPA
+ targets; use `.block' as a substitute. See `HP9000 Series 800
+ Assembly Language Reference Manual' (HP 92432-90001) for the
+ meaning of the `.space' directive. *Note HPPA Assembler
+ Directives: HPPA Directives, for a summary.
+
+
+File: as.info, Node: Stab, Next: String, Prev: Space, Up: Pseudo Ops
+
+7.105 `.stabd, .stabn, .stabs'
+==============================
+
+There are three directives that begin `.stab'. All emit symbols (*note
+Symbols::), for use by symbolic debuggers. The symbols are not entered
+in the `as' hash table: they cannot be referenced elsewhere in the
+source file. Up to five fields are required:
+
+STRING
+ This is the symbol's name. It may contain any character except
+ `\000', so is more general than ordinary symbol names. Some
+ debuggers used to code arbitrarily complex structures into symbol
+ names using this field.
+
+TYPE
+ An absolute expression. The symbol's type is set to the low 8
+ bits of this expression. Any bit pattern is permitted, but `ld'
+ and debuggers choke on silly bit patterns.
+
+OTHER
+ An absolute expression. The symbol's "other" attribute is set to
+ the low 8 bits of this expression.
+
+DESC
+ An absolute expression. The symbol's descriptor is set to the low
+ 16 bits of this expression.
+
+VALUE
+ An absolute expression which becomes the symbol's value.
+
+ If a warning is detected while reading a `.stabd', `.stabn', or
+`.stabs' statement, the symbol has probably already been created; you
+get a half-formed symbol in your object file. This is compatible with
+earlier assemblers!
+
+`.stabd TYPE , OTHER , DESC'
+ The "name" of the symbol generated is not even an empty string.
+ It is a null pointer, for compatibility. Older assemblers used a
+ null pointer so they didn't waste space in object files with empty
+ strings.
+
+ The symbol's value is set to the location counter, relocatably.
+ When your program is linked, the value of this symbol is the
+ address of the location counter when the `.stabd' was assembled.
+
+`.stabn TYPE , OTHER , DESC , VALUE'
+ The name of the symbol is set to the empty string `""'.
+
+`.stabs STRING , TYPE , OTHER , DESC , VALUE'
+ All five fields are specified.
+
+
+File: as.info, Node: String, Next: Struct, Prev: Stab, Up: Pseudo Ops
+
+7.106 `.string' "STR", `.string8' "STR", `.string16'
+====================================================
+
+"STR", `.string32' "STR", `.string64' "STR"
+
+ Copy the characters in STR to the object file. You may specify more
+than one string to copy, separated by commas. Unless otherwise
+specified for a particular machine, the assembler marks the end of each
+string with a 0 byte. You can use any of the escape sequences
+described in *Note Strings: Strings.
+
+ The variants `string16', `string32' and `string64' differ from the
+`string' pseudo opcode in that each 8-bit character from STR is copied
+and expanded to 16, 32 or 64 bits respectively. The expanded characters
+are stored in target endianness byte order.
+
+ Example:
+ .string32 "BYE"
+ expands to:
+ .string "B\0\0\0Y\0\0\0E\0\0\0" /* On little endian targets. */
+ .string "\0\0\0B\0\0\0Y\0\0\0E" /* On big endian targets. */
+
+
+File: as.info, Node: Struct, Next: SubSection, Prev: String, Up: Pseudo Ops
+
+7.107 `.struct EXPRESSION'
+==========================
+
+Switch to the absolute section, and set the section offset to
+EXPRESSION, which must be an absolute expression. You might use this
+as follows:
+ .struct 0
+ field1:
+ .struct field1 + 4
+ field2:
+ .struct field2 + 4
+ field3:
+ This would define the symbol `field1' to have the value 0, the symbol
+`field2' to have the value 4, and the symbol `field3' to have the value
+8. Assembly would be left in the absolute section, and you would need
+to use a `.section' directive of some sort to change to some other
+section before further assembly.
+
+
+File: as.info, Node: SubSection, Next: Symver, Prev: Struct, Up: Pseudo Ops
+
+7.108 `.subsection NAME'
+========================
+
+This is one of the ELF section stack manipulation directives. The
+others are `.section' (*note Section::), `.pushsection' (*note
+PushSection::), `.popsection' (*note PopSection::), and `.previous'
+(*note Previous::).
+
+ This directive replaces the current subsection with `name'. The
+current section is not changed. The replaced subsection is put onto
+the section stack in place of the then current top of stack subsection.
+
+
+File: as.info, Node: Symver, Next: Tag, Prev: SubSection, Up: Pseudo Ops
+
+7.109 `.symver'
+===============
+
+Use the `.symver' directive to bind symbols to specific version nodes
+within a source file. This is only supported on ELF platforms, and is
+typically used when assembling files to be linked into a shared library.
+There are cases where it may make sense to use this in objects to be
+bound into an application itself so as to override a versioned symbol
+from a shared library.
+
+ For ELF targets, the `.symver' directive can be used like this:
+ .symver NAME, NAME2@NODENAME
+ If the symbol NAME is defined within the file being assembled, the
+`.symver' directive effectively creates a symbol alias with the name
+NAME2@NODENAME, and in fact the main reason that we just don't try and
+create a regular alias is that the @ character isn't permitted in
+symbol names. The NAME2 part of the name is the actual name of the
+symbol by which it will be externally referenced. The name NAME itself
+is merely a name of convenience that is used so that it is possible to
+have definitions for multiple versions of a function within a single
+source file, and so that the compiler can unambiguously know which
+version of a function is being mentioned. The NODENAME portion of the
+alias should be the name of a node specified in the version script
+supplied to the linker when building a shared library. If you are
+attempting to override a versioned symbol from a shared library, then
+NODENAME should correspond to the nodename of the symbol you are trying
+to override.
+
+ If the symbol NAME is not defined within the file being assembled,
+all references to NAME will be changed to NAME2@NODENAME. If no
+reference to NAME is made, NAME2@NODENAME will be removed from the
+symbol table.
+
+ Another usage of the `.symver' directive is:
+ .symver NAME, NAME2@@NODENAME
+ In this case, the symbol NAME must exist and be defined within the
+file being assembled. It is similar to NAME2@NODENAME. The difference
+is NAME2@@NODENAME will also be used to resolve references to NAME2 by
+the linker.
+
+ The third usage of the `.symver' directive is:
+ .symver NAME, NAME2@@@NODENAME
+ When NAME is not defined within the file being assembled, it is
+treated as NAME2@NODENAME. When NAME is defined within the file being
+assembled, the symbol name, NAME, will be changed to NAME2@@NODENAME.
+
+
+File: as.info, Node: Tag, Next: Text, Prev: Symver, Up: Pseudo Ops
+
+7.110 `.tag STRUCTNAME'
+=======================
+
+This directive is generated by compilers to include auxiliary debugging
+information in the symbol table. It is only permitted inside
+`.def'/`.endef' pairs. Tags are used to link structure definitions in
+the symbol table with instances of those structures.
+
+
+File: as.info, Node: Text, Next: Title, Prev: Tag, Up: Pseudo Ops
+
+7.111 `.text SUBSECTION'
+========================
+
+Tells `as' to assemble the following statements onto the end of the
+text subsection numbered SUBSECTION, which is an absolute expression.
+If SUBSECTION is omitted, subsection number zero is used.
+
+
+File: as.info, Node: Title, Next: Type, Prev: Text, Up: Pseudo Ops
+
+7.112 `.title "HEADING"'
+========================
+
+Use HEADING as the title (second line, immediately after the 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.
+
+
+File: as.info, Node: Type, Next: Uleb128, Prev: Title, Up: Pseudo Ops
+
+7.113 `.type'
+=============
+
+This directive is used to set the type of a symbol.
+
+COFF Version
+------------
+
+ For COFF targets, this directive is permitted only within
+`.def'/`.endef' pairs. It is used like this:
+
+ .type INT
+
+ This records the integer INT as the type attribute of a symbol table
+entry.
+
+ELF Version
+-----------
+
+ For ELF targets, the `.type' directive is used like this:
+
+ .type NAME , TYPE DESCRIPTION
+
+ This sets the type of symbol NAME to be either a function symbol or
+an object symbol. There are five different syntaxes supported for the
+TYPE DESCRIPTION field, in order to provide compatibility with various
+other assemblers.
+
+ Because some of the characters used in these syntaxes (such as `@'
+and `#') are comment characters for some architectures, some of the
+syntaxes below do not work on all architectures. The first variant
+will be accepted by the GNU assembler on all architectures so that
+variant should be used for maximum portability, if you do not need to
+assemble your code with other assemblers.
+
+ The syntaxes supported are:
+
+ .type <name> STT_<TYPE_IN_UPPER_CASE>
+ .type <name>,#<type>
+ .type <name>,@<type>
+ .type <name>,%<type>
+ .type <name>,"<type>"
+
+ The types supported are:
+
+`STT_FUNC'
+`function'
+ Mark the symbol as being a function name.
+
+`STT_GNU_IFUNC'
+`gnu_indirect_function'
+ Mark the symbol as an indirect function when evaluated during reloc
+ processing. (This is only supported on assemblers targeting GNU
+ systems).
+
+`STT_OBJECT'
+`object'
+ Mark the symbol as being a data object.
+
+`STT_TLS'
+`tls_object'
+ Mark the symbol as being a thead-local data object.
+
+`STT_COMMON'
+`common'
+ Mark the symbol as being a common data object.
+
+`STT_NOTYPE'
+`notype'
+ Does not mark the symbol in any way. It is supported just for
+ completeness.
+
+`gnu_unique_object'
+ Marks the symbol as being a globally unique data object. The
+ dynamic linker will make sure that in the entire process there is
+ just one symbol with this name and type in use. (This is only
+ supported on assemblers targeting GNU systems).
+
+
+ Note: Some targets support extra types in addition to those listed
+above.
+
+
+File: as.info, Node: Uleb128, Next: Val, Prev: Type, Up: Pseudo Ops
+
+7.114 `.uleb128 EXPRESSIONS'
+============================
+
+ULEB128 stands for "unsigned little endian base 128." This is a
+compact, variable length representation of numbers used by the DWARF
+symbolic debugging format. *Note `.sleb128': Sleb128.
+
+
+File: as.info, Node: Val, Next: Version, Prev: Uleb128, Up: Pseudo Ops
+
+7.115 `.val ADDR'
+=================
+
+This directive, permitted only within `.def'/`.endef' pairs, records
+the address ADDR as the value attribute of a symbol table entry.
+
+
+File: as.info, Node: Version, Next: VTableEntry, Prev: Val, Up: Pseudo Ops
+
+7.116 `.version "STRING"'
+=========================
+
+This directive creates a `.note' section and places into it an ELF
+formatted note of type NT_VERSION. The note's name is set to `string'.
+
+
+File: as.info, Node: VTableEntry, Next: VTableInherit, Prev: Version, Up: Pseudo Ops
+
+7.117 `.vtable_entry TABLE, OFFSET'
+===================================
+
+This directive finds or creates a symbol `table' and creates a
+`VTABLE_ENTRY' relocation for it with an addend of `offset'.
+
+
+File: as.info, Node: VTableInherit, Next: Warning, Prev: VTableEntry, Up: Pseudo Ops
+
+7.118 `.vtable_inherit CHILD, PARENT'
+=====================================
+
+This directive finds the symbol `child' and finds or creates the symbol
+`parent' and then creates a `VTABLE_INHERIT' relocation for the parent
+whose addend is the value of the child symbol. As a special case the
+parent name of `0' is treated as referring to the `*ABS*' section.
+
+
+File: as.info, Node: Warning, Next: Weak, Prev: VTableInherit, Up: Pseudo Ops
+
+7.119 `.warning "STRING"'
+=========================
+
+Similar to the directive `.error' (*note `.error "STRING"': Error.),
+but just emits a warning.
+
+
+File: as.info, Node: Weak, Next: Weakref, Prev: Warning, Up: Pseudo Ops
+
+7.120 `.weak NAMES'
+===================
+
+This directive sets the weak attribute on the comma separated list of
+symbol `names'. If the symbols do not already exist, they will be
+created.
+
+ On COFF targets other than PE, weak symbols are a GNU extension.
+This directive sets the weak attribute on the comma separated list of
+symbol `names'. If the symbols do not already exist, they will be
+created.
+
+ On the PE target, weak symbols are supported natively as weak
+aliases. When a weak symbol is created that is not an alias, GAS
+creates an alternate symbol to hold the default value.
+
+
+File: as.info, Node: Weakref, Next: Word, Prev: Weak, Up: Pseudo Ops
+
+7.121 `.weakref ALIAS, TARGET'
+==============================
+
+This directive creates an alias to the target symbol that enables the
+symbol to be referenced with weak-symbol semantics, but without
+actually making it weak. If direct references or definitions of the
+symbol are present, then the symbol will not be weak, but if all
+references to it are through weak references, the symbol will be marked
+as weak in the symbol table.
+
+ The effect is equivalent to moving all references to the alias to a
+separate assembly source file, renaming the alias to the symbol in it,
+declaring the symbol as weak there, and running a reloadable link to
+merge the object files resulting from the assembly of the new source
+file and the old source file that had the references to the alias
+removed.
+
+ The alias itself never makes to the symbol table, and is entirely
+handled within the assembler.
+
+
+File: as.info, Node: Word, Next: Deprecated, Prev: Weakref, Up: Pseudo Ops
+
+7.122 `.word EXPRESSIONS'
+=========================
+
+This directive expects zero or more EXPRESSIONS, of any section,
+separated by commas.
+
+ The size of the number emitted, and its byte order, depend on what
+target computer the assembly is for.
+
+ _Warning: Special Treatment to support Compilers_
+
+ Machines with a 32-bit address space, but that do less than 32-bit
+addressing, require the following special treatment. If the machine of
+interest to you does 32-bit addressing (or doesn't require it; *note
+Machine Dependencies::), you can ignore this issue.
+
+ In order to assemble compiler output into something that works, `as'
+occasionally does strange things to `.word' directives. Directives of
+the form `.word sym1-sym2' are often emitted by compilers as part of
+jump tables. Therefore, when `as' assembles a directive of the form
+`.word sym1-sym2', and the difference between `sym1' and `sym2' does
+not fit in 16 bits, `as' creates a "secondary jump table", immediately
+before the next label. This secondary jump table is preceded by a
+short-jump to the first byte after the secondary table. This
+short-jump prevents the flow of control from accidentally falling into
+the new table. Inside the table is a long-jump to `sym2'. The
+original `.word' contains `sym1' minus the address of the long-jump to
+`sym2'.
+
+ If there were several occurrences of `.word sym1-sym2' before the
+secondary jump table, all of them are adjusted. If there was a `.word
+sym3-sym4', that also did not fit in sixteen bits, a long-jump to
+`sym4' is included in the secondary jump table, and the `.word'
+directives are adjusted to contain `sym3' minus the address of the
+long-jump to `sym4'; and so on, for as many entries in the original
+jump table as necessary.
+
+
+File: as.info, Node: Deprecated, Prev: Word, Up: Pseudo Ops
+
+7.123 Deprecated Directives
+===========================
+
+One day these directives won't work. They are included for
+compatibility with older assemblers.
+.abort
+
+.line
+
+
+File: as.info, Node: Object Attributes, Next: Machine Dependencies, Prev: Pseudo Ops, Up: Top
+
+8 Object Attributes
+*******************
+
+`as' assembles source files written for a specific architecture into
+object files for that architecture. But not all object files are alike.
+Many architectures support incompatible variations. For instance,
+floating point arguments might be passed in floating point registers if
+the object file requires hardware floating point support--or floating
+point arguments might be passed in integer registers if the object file
+supports processors with no hardware floating point unit. Or, if two
+objects are built for different generations of the same architecture,
+the combination may require the newer generation at run-time.
+
+ This information is useful during and after linking. At link time,
+`ld' can warn about incompatible object files. After link time, tools
+like `gdb' can use it to process the linked file correctly.
+
+ Compatibility information is recorded as a series of object
+attributes. Each attribute has a "vendor", "tag", and "value". The
+vendor is a string, and indicates who sets the meaning of the tag. The
+tag is an integer, and indicates what property the attribute describes.
+The value may be a string or an integer, and indicates how the
+property affects this object. Missing attributes are the same as
+attributes with a zero value or empty string value.
+
+ Object attributes were developed as part of the ABI for the ARM
+Architecture. The file format is documented in `ELF for the ARM
+Architecture'.
+
+* Menu:
+
+* GNU Object Attributes:: GNU Object Attributes
+* Defining New Object Attributes:: Defining New Object Attributes
+
+
+File: as.info, Node: GNU Object Attributes, Next: Defining New Object Attributes, Up: Object Attributes
+
+8.1 GNU Object Attributes
+=========================
+
+The `.gnu_attribute' directive records an object attribute with vendor
+`gnu'.
+
+ Except for `Tag_compatibility', which has both an integer and a
+string for its value, GNU attributes have a string value if the tag
+number is odd and an integer value if the tag number is even. The
+second bit (`TAG & 2' is set for architecture-independent attributes
+and clear for architecture-dependent ones.
+
+8.1.1 Common GNU attributes
+---------------------------
+
+These attributes are valid on all architectures.
+
+Tag_compatibility (32)
+ The compatibility attribute takes an integer flag value and a
+ vendor name. If the flag value is 0, the file is compatible with
+ other toolchains. If it is 1, then the file is only compatible
+ with the named toolchain. If it is greater than 1, the file can
+ only be processed by other toolchains under some private
+ arrangement indicated by the flag value and the vendor name.
+
+8.1.2 MIPS Attributes
+---------------------
+
+Tag_GNU_MIPS_ABI_FP (4)
+ The floating-point ABI used by this object file. The value will
+ be:
+
+ * 0 for files not affected by the floating-point ABI.
+
+ * 1 for files using the hardware floating-point with a standard
+ double-precision FPU.
+
+ * 2 for files using the hardware floating-point ABI with a
+ single-precision FPU.
+
+ * 3 for files using the software floating-point ABI.
+
+ * 4 for files using the hardware floating-point ABI with 64-bit
+ wide double-precision floating-point registers and 32-bit
+ wide general purpose registers.
+
+8.1.3 PowerPC Attributes
+------------------------
+
+Tag_GNU_Power_ABI_FP (4)
+ The floating-point ABI used by this object file. The value will
+ be:
+
+ * 0 for files not affected by the floating-point ABI.
+
+ * 1 for files using double-precision hardware floating-point
+ ABI.
+
+ * 2 for files using the software floating-point ABI.
+
+ * 3 for files using single-precision hardware floating-point
+ ABI.
+
+Tag_GNU_Power_ABI_Vector (8)
+ The vector ABI used by this object file. The value will be:
+
+ * 0 for files not affected by the vector ABI.
+
+ * 1 for files using general purpose registers to pass vectors.
+
+ * 2 for files using AltiVec registers to pass vectors.
+
+ * 3 for files using SPE registers to pass vectors.
+
+
+File: as.info, Node: Defining New Object Attributes, Prev: GNU Object Attributes, Up: Object Attributes
+
+8.2 Defining New Object Attributes
+==================================
+
+If you want to define a new GNU object attribute, here are the places
+you will need to modify. New attributes should be discussed on the
+`binutils' mailing list.
+
+ * This manual, which is the official register of attributes.
+
+ * The header for your architecture `include/elf', to define the tag.
+
+ * The `bfd' support file for your architecture, to merge the
+ attribute and issue any appropriate link warnings.
+
+ * Test cases in `ld/testsuite' for merging and link warnings.
+
+ * `binutils/readelf.c' to display your attribute.
+
+ * GCC, if you want the compiler to mark the attribute automatically.
+
+
+File: as.info, Node: Machine Dependencies, Next: Reporting Bugs, Prev: Object Attributes, Up: Top
+
+9 Machine Dependent Features
+****************************
+
+The machine instruction sets are (almost by definition) different on
+each machine where `as' runs. Floating point representations vary as
+well, and `as' often supports a few additional directives or
+command-line options for compatibility with other assemblers on a
+particular platform. Finally, some versions of `as' support special
+pseudo-instructions for branch optimization.
+
+ This chapter discusses most of these differences, though it does not
+include details on any machine's instruction set. For details on that
+subject, see the hardware manufacturer's manual.
+
+* Menu:
+
+
+* Alpha-Dependent:: Alpha Dependent Features
+
+* ARC-Dependent:: ARC Dependent Features
+
+* ARM-Dependent:: ARM Dependent Features
+
+* AVR-Dependent:: AVR Dependent Features
+
+* Blackfin-Dependent:: Blackfin Dependent Features
+
+* CR16-Dependent:: CR16 Dependent Features
+
+* CRIS-Dependent:: CRIS Dependent Features
+
+* D10V-Dependent:: D10V Dependent Features
+
+* D30V-Dependent:: D30V Dependent Features
+
+* H8/300-Dependent:: Renesas H8/300 Dependent Features
+
+* HPPA-Dependent:: HPPA Dependent Features
+
+* ESA/390-Dependent:: IBM ESA/390 Dependent Features
+
+* i386-Dependent:: Intel 80386 and AMD x86-64 Dependent Features
+
+* i860-Dependent:: Intel 80860 Dependent Features
+
+* i960-Dependent:: Intel 80960 Dependent Features
+
+* IA-64-Dependent:: Intel IA-64 Dependent Features
+
+* IP2K-Dependent:: IP2K Dependent Features
+
+* LM32-Dependent:: LM32 Dependent Features
+
+* M32C-Dependent:: M32C Dependent Features
+
+* M32R-Dependent:: M32R Dependent Features
+
+* M68K-Dependent:: M680x0 Dependent Features
+
+* M68HC11-Dependent:: M68HC11 and 68HC12 Dependent Features
+
+* MicroBlaze-Dependent:: MICROBLAZE Dependent Features
+
+* MIPS-Dependent:: MIPS Dependent Features
+
+* MMIX-Dependent:: MMIX Dependent Features
+
+* MSP430-Dependent:: MSP430 Dependent Features
+
+* NS32K-Dependent:: NS32K Dependent Features
+
+* SH-Dependent:: Renesas / SuperH SH Dependent Features
+* SH64-Dependent:: SuperH SH64 Dependent Features
+
+* PDP-11-Dependent:: PDP-11 Dependent Features
+
+* PJ-Dependent:: picoJava Dependent Features
+
+* PPC-Dependent:: PowerPC Dependent Features
+
+* RX-Dependent:: RX Dependent Features
+
+* S/390-Dependent:: IBM S/390 Dependent Features
+
+* SCORE-Dependent:: SCORE Dependent Features
+
+* Sparc-Dependent:: SPARC Dependent Features
+
+* TIC54X-Dependent:: TI TMS320C54x Dependent Features
+
+* TIC6X-Dependent :: TI TMS320C6x Dependent Features
+
+* TILE-Gx-Dependent :: Tilera TILE-Gx Dependent Features
+
+* TILEPro-Dependent :: Tilera TILEPro Dependent Features
+
+* V850-Dependent:: V850 Dependent Features
+
+* XSTORMY16-Dependent:: XStormy16 Dependent Features
+
+* Xtensa-Dependent:: Xtensa Dependent Features
+
+* Z80-Dependent:: Z80 Dependent Features
+
+* Z8000-Dependent:: Z8000 Dependent Features
+
+* Vax-Dependent:: VAX Dependent Features
+
+
+File: as.info, Node: Alpha-Dependent, Next: ARC-Dependent, Up: Machine Dependencies
+
+9.1 Alpha Dependent Features
+============================
+
+* Menu:
+
+* Alpha Notes:: Notes
+* Alpha Options:: Options
+* Alpha Syntax:: Syntax
+* Alpha Floating Point:: Floating Point
+* Alpha Directives:: Alpha Machine Directives
+* Alpha Opcodes:: Opcodes
+
+
+File: as.info, Node: Alpha Notes, Next: Alpha Options, Up: Alpha-Dependent
+
+9.1.1 Notes
+-----------
+
+The documentation here is primarily for the ELF object format. `as'
+also supports the ECOFF and EVAX formats, but features specific to
+these formats are not yet documented.
+
+
+File: as.info, Node: Alpha Options, Next: Alpha Syntax, Prev: Alpha Notes, Up: Alpha-Dependent
+
+9.1.2 Options
+-------------
+
+`-mCPU'
+ This option specifies the target processor. If an attempt is made
+ to assemble an instruction which will not execute on the target
+ processor, the assembler may either expand the instruction as a
+ macro or issue an error message. This option is equivalent to the
+ `.arch' directive.
+
+ The following processor names are recognized: `21064', `21064a',
+ `21066', `21068', `21164', `21164a', `21164pc', `21264', `21264a',
+ `21264b', `ev4', `ev5', `lca45', `ev5', `ev56', `pca56', `ev6',
+ `ev67', `ev68'. The special name `all' may be used to allow the
+ assembler to accept instructions valid for any Alpha processor.
+
+ In order to support existing practice in OSF/1 with respect to
+ `.arch', and existing practice within `MILO' (the Linux ARC
+ bootloader), the numbered processor names (e.g. 21064) enable the
+ processor-specific PALcode instructions, while the
+ "electro-vlasic" names (e.g. `ev4') do not.
+
+`-mdebug'
+`-no-mdebug'
+ Enables or disables the generation of `.mdebug' encapsulation for
+ stabs directives and procedure descriptors. The default is to
+ automatically enable `.mdebug' when the first stabs directive is
+ seen.
+
+`-relax'
+ This option forces all relocations to be put into the object file,
+ instead of saving space and resolving some relocations at assembly
+ time. Note that this option does not propagate all symbol
+ arithmetic into the object file, because not all symbol arithmetic
+ can be represented. However, the option can still be useful in
+ specific applications.
+
+`-replace'
+`-noreplace'
+ Enables or disables the optimization of procedure calls, both at
+ assemblage and at link time. These options are only available for
+ VMS targets and `-replace' is the default. See section 1.4.1 of
+ the OpenVMS Linker Utility Manual.
+
+`-g'
+ This option is used when the compiler generates debug information.
+ When `gcc' is using `mips-tfile' to generate debug information
+ for ECOFF, local labels must be passed through to the object file.
+ Otherwise this option has no effect.
+
+`-GSIZE'
+ A local common symbol larger than SIZE is placed in `.bss', while
+ smaller symbols are placed in `.sbss'.
+
+`-F'
+`-32addr'
+ These options are ignored for backward compatibility.
+
+
+File: as.info, Node: Alpha Syntax, Next: Alpha Floating Point, Prev: Alpha Options, Up: Alpha-Dependent
+
+9.1.3 Syntax
+------------
+
+The assembler syntax closely follow the Alpha Reference Manual;
+assembler directives and general syntax closely follow the OSF/1 and
+OpenVMS syntax, with a few differences for ELF.
+
+* Menu:
+
+* Alpha-Chars:: Special Characters
+* Alpha-Regs:: Register Names
+* Alpha-Relocs:: Relocations
+
+
+File: as.info, Node: Alpha-Chars, Next: Alpha-Regs, Up: Alpha Syntax
+
+9.1.3.1 Special Characters
+..........................
+
+`#' is the line comment character. Note that if `#' is the first
+character on a line then it can also be a logical line number directive
+(*note Comments::) or a preprocessor control command (*note
+Preprocessing::).
+
+ `;' can be used instead of a newline to separate statements.
+
+
+File: as.info, Node: Alpha-Regs, Next: Alpha-Relocs, Prev: Alpha-Chars, Up: Alpha Syntax
+
+9.1.3.2 Register Names
+......................
+
+The 32 integer registers are referred to as `$N' or `$rN'. In
+addition, registers 15, 28, 29, and 30 may be referred to by the
+symbols `$fp', `$at', `$gp', and `$sp' respectively.
+
+ The 32 floating-point registers are referred to as `$fN'.
+
+
+File: as.info, Node: Alpha-Relocs, Prev: Alpha-Regs, Up: Alpha Syntax
+
+9.1.3.3 Relocations
+...................
+
+Some of these relocations are available for ECOFF, but mostly only for
+ELF. They are modeled after the relocation format introduced in
+Digital Unix 4.0, but there are additions.
+
+ The format is `!TAG' or `!TAG!NUMBER' where TAG is the name of the
+relocation. In some cases NUMBER is used to relate specific
+instructions.
+
+ The relocation is placed at the end of the instruction like so:
+
+ ldah $0,a($29) !gprelhigh
+ lda $0,a($0) !gprellow
+ ldq $1,b($29) !literal!100
+ ldl $2,0($1) !lituse_base!100
+
+`!literal'
+`!literal!N'
+ Used with an `ldq' instruction to load the address of a symbol
+ from the GOT.
+
+ A sequence number N is optional, and if present is used to pair
+ `lituse' relocations with this `literal' relocation. The `lituse'
+ relocations are used by the linker to optimize the code based on
+ the final location of the symbol.
+
+ Note that these optimizations are dependent on the data flow of the
+ program. Therefore, if _any_ `lituse' is paired with a `literal'
+ relocation, then _all_ uses of the register set by the `literal'
+ instruction must also be marked with `lituse' relocations. This
+ is because the original `literal' instruction may be deleted or
+ transformed into another instruction.
+
+ Also note that there may be a one-to-many relationship between
+ `literal' and `lituse', but not a many-to-one. That is, if there
+ are two code paths that load up the same address and feed the
+ value to a single use, then the use may not use a `lituse'
+ relocation.
+
+`!lituse_base!N'
+ Used with any memory format instruction (e.g. `ldl') to indicate
+ that the literal is used for an address load. The offset field of
+ the instruction must be zero. During relaxation, the code may be
+ altered to use a gp-relative load.
+
+`!lituse_jsr!N'
+ Used with a register branch format instruction (e.g. `jsr') to
+ indicate that the literal is used for a call. During relaxation,
+ the code may be altered to use a direct branch (e.g. `bsr').
+
+`!lituse_jsrdirect!N'
+ Similar to `lituse_jsr', but also that this call cannot be vectored
+ through a PLT entry. This is useful for functions with special
+ calling conventions which do not allow the normal call-clobbered
+ registers to be clobbered.
+
+`!lituse_bytoff!N'
+ Used with a byte mask instruction (e.g. `extbl') to indicate that
+ only the low 3 bits of the address are relevant. During
+ relaxation, the code may be altered to use an immediate instead of
+ a register shift.
+
+`!lituse_addr!N'
+ Used with any other instruction to indicate that the original
+ address is in fact used, and the original `ldq' instruction may
+ not be altered or deleted. This is useful in conjunction with
+ `lituse_jsr' to test whether a weak symbol is defined.
+
+ ldq $27,foo($29) !literal!1
+ beq $27,is_undef !lituse_addr!1
+ jsr $26,($27),foo !lituse_jsr!1
+
+`!lituse_tlsgd!N'
+ Used with a register branch format instruction to indicate that the
+ literal is the call to `__tls_get_addr' used to compute the
+ address of the thread-local storage variable whose descriptor was
+ loaded with `!tlsgd!N'.
+
+`!lituse_tlsldm!N'
+ Used with a register branch format instruction to indicate that the
+ literal is the call to `__tls_get_addr' used to compute the
+ address of the base of the thread-local storage block for the
+ current module. The descriptor for the module must have been
+ loaded with `!tlsldm!N'.
+
+`!gpdisp!N'
+ Used with `ldah' and `lda' to load the GP from the current
+ address, a-la the `ldgp' macro. The source register for the
+ `ldah' instruction must contain the address of the `ldah'
+ instruction. There must be exactly one `lda' instruction paired
+ with the `ldah' instruction, though it may appear anywhere in the
+ instruction stream. The immediate operands must be zero.
+
+ bsr $26,foo
+ ldah $29,0($26) !gpdisp!1
+ lda $29,0($29) !gpdisp!1
+
+`!gprelhigh'
+ Used with an `ldah' instruction to add the high 16 bits of a
+ 32-bit displacement from the GP.
+
+`!gprellow'
+ Used with any memory format instruction to add the low 16 bits of a
+ 32-bit displacement from the GP.
+
+`!gprel'
+ Used with any memory format instruction to add a 16-bit
+ displacement from the GP.
+
+`!samegp'
+ Used with any branch format instruction to skip the GP load at the
+ target address. The referenced symbol must have the same GP as the
+ source object file, and it must be declared to either not use `$27'
+ or perform a standard GP load in the first two instructions via the
+ `.prologue' directive.
+
+`!tlsgd'
+`!tlsgd!N'
+ Used with an `lda' instruction to load the address of a TLS
+ descriptor for a symbol in the GOT.
+
+ The sequence number N is optional, and if present it used to pair
+ the descriptor load with both the `literal' loading the address of
+ the `__tls_get_addr' function and the `lituse_tlsgd' marking the
+ call to that function.
+
+ For proper relaxation, both the `tlsgd', `literal' and `lituse'
+ relocations must be in the same extended basic block. That is,
+ the relocation with the lowest address must be executed first at
+ runtime.
+
+`!tlsldm'
+`!tlsldm!N'
+ Used with an `lda' instruction to load the address of a TLS
+ descriptor for the current module in the GOT.
+
+ Similar in other respects to `tlsgd'.
+
+`!gotdtprel'
+ Used with an `ldq' instruction to load the offset of the TLS
+ symbol within its module's thread-local storage block. Also known
+ as the dynamic thread pointer offset or dtp-relative offset.
+
+`!dtprelhi'
+`!dtprello'
+`!dtprel'
+ Like `gprel' relocations except they compute dtp-relative offsets.
+
+`!gottprel'
+ Used with an `ldq' instruction to load the offset of the TLS
+ symbol from the thread pointer. Also known as the tp-relative
+ offset.
+
+`!tprelhi'
+`!tprello'
+`!tprel'
+ Like `gprel' relocations except they compute tp-relative offsets.
+
+
+File: as.info, Node: Alpha Floating Point, Next: Alpha Directives, Prev: Alpha Syntax, Up: Alpha-Dependent
+
+9.1.4 Floating Point
+--------------------
+
+The Alpha family uses both IEEE and VAX floating-point numbers.
+
+
+File: as.info, Node: Alpha Directives, Next: Alpha Opcodes, Prev: Alpha Floating Point, Up: Alpha-Dependent
+
+9.1.5 Alpha Assembler Directives
+--------------------------------
+
+`as' for the Alpha supports many additional directives for
+compatibility with the native assembler. This section describes them
+only briefly.
+
+ These are the additional directives in `as' for the Alpha:
+
+`.arch CPU'
+ Specifies the target processor. This is equivalent to the `-mCPU'
+ command-line option. *Note Options: Alpha Options, for a list of
+ values for CPU.
+
+`.ent FUNCTION[, N]'
+ Mark the beginning of FUNCTION. An optional number may follow for
+ compatibility with the OSF/1 assembler, but is ignored. When
+ generating `.mdebug' information, this will create a procedure
+ descriptor for the function. In ELF, it will mark the symbol as a
+ function a-la the generic `.type' directive.
+
+`.end FUNCTION'
+ Mark the end of FUNCTION. In ELF, it will set the size of the
+ symbol a-la the generic `.size' directive.
+
+`.mask MASK, OFFSET'
+ Indicate which of the integer registers are saved in the current
+ function's stack frame. MASK is interpreted a bit mask in which
+ bit N set indicates that register N is saved. The registers are
+ saved in a block located OFFSET bytes from the "canonical frame
+ address" (CFA) which is the value of the stack pointer on entry to
+ the function. The registers are saved sequentially, except that
+ the return address register (normally `$26') is saved first.
+
+ This and the other directives that describe the stack frame are
+ currently only used when generating `.mdebug' information. They
+ may in the future be used to generate DWARF2 `.debug_frame' unwind
+ information for hand written assembly.
+
+`.fmask MASK, OFFSET'
+ Indicate which of the floating-point registers are saved in the
+ current stack frame. The MASK and OFFSET parameters are
+ interpreted as with `.mask'.
+
+`.frame FRAMEREG, FRAMEOFFSET, RETREG[, ARGOFFSET]'
+ Describes the shape of the stack frame. The frame pointer in use
+ is FRAMEREG; normally this is either `$fp' or `$sp'. The frame
+ pointer is FRAMEOFFSET bytes below the CFA. The return address is
+ initially located in RETREG until it is saved as indicated in
+ `.mask'. For compatibility with OSF/1 an optional ARGOFFSET
+ parameter is accepted and ignored. It is believed to indicate the
+ offset from the CFA to the saved argument registers.
+
+`.prologue N'
+ Indicate that the stack frame is set up and all registers have been
+ spilled. The argument N indicates whether and how the function
+ uses the incoming "procedure vector" (the address of the called
+ function) in `$27'. 0 indicates that `$27' is not used; 1
+ indicates that the first two instructions of the function use `$27'
+ to perform a load of the GP register; 2 indicates that `$27' is
+ used in some non-standard way and so the linker cannot elide the
+ load of the procedure vector during relaxation.
+
+`.usepv FUNCTION, WHICH'
+ Used to indicate the use of the `$27' register, similar to
+ `.prologue', but without the other semantics of needing to be
+ inside an open `.ent'/`.end' block.
+
+ The WHICH argument should be either `no', indicating that `$27' is
+ not used, or `std', indicating that the first two instructions of
+ the function perform a GP load.
+
+ One might use this directive instead of `.prologue' if you are
+ also using dwarf2 CFI directives.
+
+`.gprel32 EXPRESSION'
+ Computes the difference between the address in EXPRESSION and the
+ GP for the current object file, and stores it in 4 bytes. In
+ addition to being smaller than a full 8 byte address, this also
+ does not require a dynamic relocation when used in a shared
+ library.
+
+`.t_floating EXPRESSION'
+ Stores EXPRESSION as an IEEE double precision value.
+
+`.s_floating EXPRESSION'
+ Stores EXPRESSION as an IEEE single precision value.
+
+`.f_floating EXPRESSION'
+ Stores EXPRESSION as a VAX F format value.
+
+`.g_floating EXPRESSION'
+ Stores EXPRESSION as a VAX G format value.
+
+`.d_floating EXPRESSION'
+ Stores EXPRESSION as a VAX D format value.
+
+`.set FEATURE'
+ Enables or disables various assembler features. Using the positive
+ name of the feature enables while using `noFEATURE' disables.
+
+ `at'
+ Indicates that macro expansions may clobber the "assembler
+ temporary" (`$at' or `$28') register. Some macros may not be
+ expanded without this and will generate an error message if
+ `noat' is in effect. When `at' is in effect, a warning will
+ be generated if `$at' is used by the programmer.
+
+ `macro'
+ Enables the expansion of macro instructions. Note that
+ variants of real instructions, such as `br label' vs `br
+ $31,label' are considered alternate forms and not macros.
+
+ `move'
+ `reorder'
+ `volatile'
+ These control whether and how the assembler may re-order
+ instructions. Accepted for compatibility with the OSF/1
+ assembler, but `as' does not do instruction scheduling, so
+ these features are ignored.
+
+ The following directives are recognized for compatibility with the
+OSF/1 assembler but are ignored.
+
+ .proc .aproc
+ .reguse .livereg
+ .option .aent
+ .ugen .eflag
+ .alias .noalias
+
+
+File: as.info, Node: Alpha Opcodes, Prev: Alpha Directives, Up: Alpha-Dependent
+
+9.1.6 Opcodes
+-------------
+
+For detailed information on the Alpha machine instruction set, see the
+Alpha Architecture Handbook
+(ftp://ftp.digital.com/pub/Digital/info/semiconductor/literature/alphaahb.pdf).
+
+
+File: as.info, Node: ARC-Dependent, Next: ARM-Dependent, Prev: Alpha-Dependent, Up: Machine Dependencies
+
+9.2 ARC Dependent Features
+==========================
+
+* Menu:
+
+* ARC Options:: Options
+* ARC Syntax:: Syntax
+* ARC Floating Point:: Floating Point
+* ARC Directives:: ARC Machine Directives
+* ARC Opcodes:: Opcodes
+
+
+File: as.info, Node: ARC Options, Next: ARC Syntax, Up: ARC-Dependent
+
+9.2.1 Options
+-------------
+
+`-marc[5|6|7|8]'
+ This option selects the core processor variant. Using `-marc' is
+ the same as `-marc6', which is also the default.
+
+ `arc5'
+ Base instruction set.
+
+ `arc6'
+ Jump-and-link (jl) instruction. No requirement of an
+ instruction between setting flags and conditional jump. For
+ example:
+
+ mov.f r0,r1
+ beq foo
+
+ `arc7'
+ Break (brk) and sleep (sleep) instructions.
+
+ `arc8'
+ Software interrupt (swi) instruction.
+
+
+ Note: the `.option' directive can to be used to select a core
+ variant from within assembly code.
+
+`-EB'
+ This option specifies that the output generated by the assembler
+ should be marked as being encoded for a big-endian processor.
+
+`-EL'
+ This option specifies that the output generated by the assembler
+ should be marked as being encoded for a little-endian processor -
+ this is the default.
+
+
+
+File: as.info, Node: ARC Syntax, Next: ARC Floating Point, Prev: ARC Options, Up: ARC-Dependent
+
+9.2.2 Syntax
+------------
+
+* Menu:
+
+* ARC-Chars:: Special Characters
+* ARC-Regs:: Register Names
+
+
+File: as.info, Node: ARC-Chars, Next: ARC-Regs, Up: ARC Syntax
+
+9.2.2.1 Special Characters
+..........................
+
+The presence of a `#' on a line indicates the start of a comment that
+extends to the end of the current line. Note that if a line starts
+with a `#' character then it can also be a logical line number
+directive (*note Comments::) or a preprocessor control command (*note
+Preprocessing::).
+
+ The ARC assembler does not support a line separator character.
+
+
+File: as.info, Node: ARC-Regs, Prev: ARC-Chars, Up: ARC Syntax
+
+9.2.2.2 Register Names
+......................
+
+*TODO*
+
+
+File: as.info, Node: ARC Floating Point, Next: ARC Directives, Prev: ARC Syntax, Up: ARC-Dependent
+
+9.2.3 Floating Point
+--------------------
+
+The ARC core does not currently have hardware floating point support.
+Software floating point support is provided by `GCC' and uses IEEE
+floating-point numbers.
+
+
+File: as.info, Node: ARC Directives, Next: ARC Opcodes, Prev: ARC Floating Point, Up: ARC-Dependent
+
+9.2.4 ARC Machine Directives
+----------------------------
+
+The ARC version of `as' supports the following additional machine
+directives:
+
+`.2byte EXPRESSIONS'
+ *TODO*
+
+`.3byte EXPRESSIONS'
+ *TODO*
+
+`.4byte EXPRESSIONS'
+ *TODO*
+
+`.extAuxRegister NAME,ADDRESS,MODE'
+ The ARCtangent A4 has extensible auxiliary register space. The
+ auxiliary registers can be defined in the assembler source code by
+ using this directive. The first parameter is the NAME of the new
+ auxiallry register. The second parameter is the ADDRESS of the
+ register in the auxiliary register memory map for the variant of
+ the ARC. The third parameter specifies the MODE in which the
+ register can be operated is and it can be one of:
+
+ `r (readonly)'
+
+ `w (write only)'
+
+ `r|w (read or write)'
+
+ For example:
+
+ .extAuxRegister mulhi,0x12,w
+
+ This specifies an extension auxiliary register called _mulhi_
+ which is at address 0x12 in the memory space and which is only
+ writable.
+
+`.extCondCode SUFFIX,VALUE'
+ The condition codes on the ARCtangent A4 are extensible and can be
+ specified by means of this assembler directive. They are specified
+ by the suffix and the value for the condition code. They can be
+ used to specify extra condition codes with any values. For
+ example:
+
+ .extCondCode is_busy,0x14
+
+ add.is_busy r1,r2,r3
+ bis_busy _main
+
+`.extCoreRegister NAME,REGNUM,MODE,SHORTCUT'
+ Specifies an extension core register NAME for the application.
+ This allows a register NAME with a valid REGNUM between 0 and 60,
+ with the following as valid values for MODE
+
+ `_r_ (readonly)'
+
+ `_w_ (write only)'
+
+ `_r|w_ (read or write)'
+
+ The other parameter gives a description of the register having a
+ SHORTCUT in the pipeline. The valid values are:
+
+ `can_shortcut'
+
+ `cannot_shortcut'
+
+ For example:
+
+ .extCoreRegister mlo,57,r,can_shortcut
+
+ This defines an extension core register mlo with the value 57 which
+ can shortcut the pipeline.
+
+`.extInstruction NAME,OPCODE,SUBOPCODE,SUFFIXCLASS,SYNTAXCLASS'
+ The ARCtangent A4 allows the user to specify extension
+ instructions. The extension instructions are not macros. The
+ assembler creates encodings for use of these instructions
+ according to the specification by the user. The parameters are:
+
+ *NAME
+ Name of the extension instruction
+
+ *OPCODE
+ Opcode to be used. (Bits 27:31 in the encoding). Valid values
+ 0x10-0x1f or 0x03
+
+ *SUBOPCODE
+ Subopcode to be used. Valid values are from 0x09-0x3f.
+ However the correct value also depends on SYNTAXCLASS
+
+ *SUFFIXCLASS
+ Determines the kinds of suffixes to be allowed. Valid values
+ are `SUFFIX_NONE', `SUFFIX_COND', `SUFFIX_FLAG' which
+ indicates the absence or presence of conditional suffixes and
+ flag setting by the extension instruction. It is also
+ possible to specify that an instruction sets the flags and is
+ conditional by using `SUFFIX_CODE' | `SUFFIX_FLAG'.
+
+ *SYNTAXCLASS
+ Determines the syntax class for the instruction. It can have
+ the following values:
+
+ ``SYNTAX_2OP':'
+ 2 Operand Instruction
+
+ ``SYNTAX_3OP':'
+ 3 Operand Instruction
+
+ In addition there could be modifiers for the syntax class as
+ described below:
+
+ Syntax Class Modifiers are:
+
+ - `OP1_MUST_BE_IMM': Modifies syntax class SYNTAX_3OP,
+ specifying that the first operand of a three-operand
+ instruction must be an immediate (i.e., the result is
+ discarded). OP1_MUST_BE_IMM is used by bitwise ORing it
+ with SYNTAX_3OP as given in the example below. This
+ could usually be used to set the flags using specific
+ instructions and not retain results.
+
+ - `OP1_IMM_IMPLIED': Modifies syntax class SYNTAX_20P, it
+ specifies that there is an implied immediate destination
+ operand which does not appear in the syntax. For
+ example, if the source code contains an instruction like:
+
+ inst r1,r2
+
+ it really means that the first argument is an implied
+ immediate (that is, the result is discarded). This is
+ the same as though the source code were: inst 0,r1,r2.
+ You use OP1_IMM_IMPLIED by bitwise ORing it with
+ SYNTAX_20P.
+
+
+ For example, defining 64-bit multiplier with immediate operands:
+
+ .extInstruction mp64,0x14,0x0,SUFFIX_COND | SUFFIX_FLAG ,
+ SYNTAX_3OP|OP1_MUST_BE_IMM
+
+ The above specifies an extension instruction called mp64 which has
+ 3 operands, sets the flags, can be used with a condition code, for
+ which the first operand is an immediate. (Equivalent to
+ discarding the result of the operation).
+
+ .extInstruction mul64,0x14,0x00,SUFFIX_COND, SYNTAX_2OP|OP1_IMM_IMPLIED
+
+ This describes a 2 operand instruction with an implicit first
+ immediate operand. The result of this operation would be
+ discarded.
+
+`.half EXPRESSIONS'
+ *TODO*
+
+`.long EXPRESSIONS'
+ *TODO*
+
+`.option ARC|ARC5|ARC6|ARC7|ARC8'
+ The `.option' directive must be followed by the desired core
+ version. Again `arc' is an alias for `arc6'.
+
+ Note: the `.option' directive overrides the command line option
+ `-marc'; a warning is emitted when the version is not consistent
+ between the two - even for the implicit default core version
+ (arc6).
+
+`.short EXPRESSIONS'
+ *TODO*
+
+`.word EXPRESSIONS'
+ *TODO*
+
+
+
+File: as.info, Node: ARC Opcodes, Prev: ARC Directives, Up: ARC-Dependent
+
+9.2.5 Opcodes
+-------------
+
+For information on the ARC instruction set, see `ARC Programmers
+Reference Manual', ARC International (www.arc.com)
+
+
+File: as.info, Node: ARM-Dependent, Next: AVR-Dependent, Prev: ARC-Dependent, Up: Machine Dependencies
+
+9.3 ARM Dependent Features
+==========================
+
+* Menu:
+
+* ARM Options:: Options
+* ARM Syntax:: Syntax
+* ARM Floating Point:: Floating Point
+* ARM Directives:: ARM Machine Directives
+* ARM Opcodes:: Opcodes
+* ARM Mapping Symbols:: Mapping Symbols
+* ARM Unwinding Tutorial:: Unwinding
+
+
+File: as.info, Node: ARM Options, Next: ARM Syntax, Up: ARM-Dependent
+
+9.3.1 Options
+-------------
+
+`-mcpu=PROCESSOR[+EXTENSION...]'
+ This option specifies the target processor. The assembler will
+ issue an error message if an attempt is made to assemble an
+ instruction which will not execute on the target processor. The
+ following processor names are recognized: `arm1', `arm2', `arm250',
+ `arm3', `arm6', `arm60', `arm600', `arm610', `arm620', `arm7',
+ `arm7m', `arm7d', `arm7dm', `arm7di', `arm7dmi', `arm70', `arm700',
+ `arm700i', `arm710', `arm710t', `arm720', `arm720t', `arm740t',
+ `arm710c', `arm7100', `arm7500', `arm7500fe', `arm7t', `arm7tdmi',
+ `arm7tdmi-s', `arm8', `arm810', `strongarm', `strongarm1',
+ `strongarm110', `strongarm1100', `strongarm1110', `arm9', `arm920',
+ `arm920t', `arm922t', `arm940t', `arm9tdmi', `fa526' (Faraday
+ FA526 processor), `fa626' (Faraday FA626 processor), `arm9e',
+ `arm926e', `arm926ej-s', `arm946e-r0', `arm946e', `arm946e-s',
+ `arm966e-r0', `arm966e', `arm966e-s', `arm968e-s', `arm10t',
+ `arm10tdmi', `arm10e', `arm1020', `arm1020t', `arm1020e',
+ `arm1022e', `arm1026ej-s', `fa606te' (Faraday FA606TE processor),
+ `fa616te' (Faraday FA616TE processor), `fa626te' (Faraday FA626TE
+ processor), `fmp626' (Faraday FMP626 processor), `fa726te'
+ (Faraday FA726TE processor), `arm1136j-s', `arm1136jf-s',
+ `arm1156t2-s', `arm1156t2f-s', `arm1176jz-s', `arm1176jzf-s',
+ `mpcore', `mpcorenovfp', `cortex-a5', `cortex-a7', `cortex-a8',
+ `cortex-a9', `cortex-a15', `cortex-r4', `cortex-r4f', `cortex-m4',
+ `cortex-m3', `cortex-m1', `cortex-m0', `ep9312' (ARM920 with
+ Cirrus Maverick coprocessor), `i80200' (Intel XScale processor)
+ `iwmmxt' (Intel(r) XScale processor with Wireless MMX(tm)
+ technology coprocessor) and `xscale'. The special name `all' may
+ be used to allow the assembler to accept instructions valid for
+ any ARM processor.
+
+ In addition to the basic instruction set, the assembler can be
+ told to accept various extension mnemonics that extend the
+ processor using the co-processor instruction space. For example,
+ `-mcpu=arm920+maverick' is equivalent to specifying `-mcpu=ep9312'.
+
+ Multiple extensions may be specified, separated by a `+'. The
+ extensions should be specified in ascending alphabetical order.
+
+ Some extensions may be restricted to particular architectures;
+ this is documented in the list of extensions below.
+
+ Extension mnemonics may also be removed from those the assembler
+ accepts. This is done be prepending `no' to the option that adds
+ the extension. Extensions that are removed should be listed after
+ all extensions which have been added, again in ascending
+ alphabetical order. For example, `-mcpu=ep9312+nomaverick' is
+ equivalent to specifying `-mcpu=arm920'.
+
+ The following extensions are currently supported: `idiv', (Integer
+ Divide Extensions for v7-A and v7-R architectures), `iwmmxt',
+ `iwmmxt2', `maverick', `mp' (Multiprocessing Extensions for v7-A
+ and v7-R architectures), `os' (Operating System for v6M
+ architecture), `sec' (Security Extensions for v6K and v7-A
+ architectures), `virt' (Virtualization Extensions for v7-A
+ architecture, implies `idiv'), and `xscale'.
+
+`-march=ARCHITECTURE[+EXTENSION...]'
+ This option specifies the target architecture. The assembler will
+ issue an error message if an attempt is made to assemble an
+ instruction which will not execute on the target architecture.
+ The following architecture names are recognized: `armv1', `armv2',
+ `armv2a', `armv2s', `armv3', `armv3m', `armv4', `armv4xm',
+ `armv4t', `armv4txm', `armv5', `armv5t', `armv5txm', `armv5te',
+ `armv5texp', `armv6', `armv6j', `armv6k', `armv6z', `armv6zk',
+ `armv6-m', `armv6s-m', `armv7', `armv7-a', `armv7-r', `armv7-m',
+ `armv7e-m', `iwmmxt' and `xscale'. If both `-mcpu' and `-march'
+ are specified, the assembler will use the setting for `-mcpu'.
+
+ The architecture option can be extended with the same instruction
+ set extension options as the `-mcpu' option.
+
+`-mfpu=FLOATING-POINT-FORMAT'
+ This option specifies the floating point format to assemble for.
+ The assembler will issue an error message if an attempt is made to
+ assemble an instruction which will not execute on the target
+ floating point unit. The following format options are recognized:
+ `softfpa', `fpe', `fpe2', `fpe3', `fpa', `fpa10', `fpa11',
+ `arm7500fe', `softvfp', `softvfp+vfp', `vfp', `vfp10', `vfp10-r0',
+ `vfp9', `vfpxd', `vfpv2', `vfpv3', `vfpv3-fp16', `vfpv3-d16',
+ `vfpv3-d16-fp16', `vfpv3xd', `vfpv3xd-d16', `vfpv4', `vfpv4-d16',
+ `fpv4-sp-d16', `arm1020t', `arm1020e', `arm1136jf-s', `maverick',
+ `neon', and `neon-vfpv4'.
+
+ In addition to determining which instructions are assembled, this
+ option also affects the way in which the `.double' assembler
+ directive behaves when assembling little-endian code.
+
+ The default is dependent on the processor selected. For
+ Architecture 5 or later, the default is to assembler for VFP
+ instructions; for earlier architectures the default is to assemble
+ for FPA instructions.
+
+`-mthumb'
+ This option specifies that the assembler should start assembling
+ Thumb instructions; that is, it should behave as though the file
+ starts with a `.code 16' directive.
+
+`-mthumb-interwork'
+ This option specifies that the output generated by the assembler
+ should be marked as supporting interworking.
+
+`-mimplicit-it=never'
+`-mimplicit-it=always'
+`-mimplicit-it=arm'
+`-mimplicit-it=thumb'
+ The `-mimplicit-it' option controls the behavior of the assembler
+ when conditional instructions are not enclosed in IT blocks.
+ There are four possible behaviors. If `never' is specified, such
+ constructs cause a warning in ARM code and an error in Thumb-2
+ code. If `always' is specified, such constructs are accepted in
+ both ARM and Thumb-2 code, where the IT instruction is added
+ implicitly. If `arm' is specified, such constructs are accepted
+ in ARM code and cause an error in Thumb-2 code. If `thumb' is
+ specified, such constructs cause a warning in ARM code and are
+ accepted in Thumb-2 code. If you omit this option, the behavior
+ is equivalent to `-mimplicit-it=arm'.
+
+`-mapcs-26'
+`-mapcs-32'
+ These options specify that the output generated by the assembler
+ should be marked as supporting the indicated version of the Arm
+ Procedure. Calling Standard.
+
+`-matpcs'
+ This option specifies that the output generated by the assembler
+ should be marked as supporting the Arm/Thumb Procedure Calling
+ Standard. If enabled this option will cause the assembler to
+ create an empty debugging section in the object file called
+ .arm.atpcs. Debuggers can use this to determine the ABI being
+ used by.
+
+`-mapcs-float'
+ This indicates the floating point variant of the APCS should be
+ used. In this variant floating point arguments are passed in FP
+ registers rather than integer registers.
+
+`-mapcs-reentrant'
+ This indicates that the reentrant variant of the APCS should be
+ used. This variant supports position independent code.
+
+`-mfloat-abi=ABI'
+ This option specifies that the output generated by the assembler
+ should be marked as using specified floating point ABI. The
+ following values are recognized: `soft', `softfp' and `hard'.
+
+`-meabi=VER'
+ This option specifies which EABI version the produced object files
+ should conform to. The following values are recognized: `gnu', `4'
+ and `5'.
+
+`-EB'
+ This option specifies that the output generated by the assembler
+ should be marked as being encoded for a big-endian processor.
+
+`-EL'
+ This option specifies that the output generated by the assembler
+ should be marked as being encoded for a little-endian processor.
+
+`-k'
+ This option specifies that the output of the assembler should be
+ marked as position-independent code (PIC).
+
+`--fix-v4bx'
+ Allow `BX' instructions in ARMv4 code. This is intended for use
+ with the linker option of the same name.
+
+`-mwarn-deprecated'
+`-mno-warn-deprecated'
+ Enable or disable warnings about using deprecated options or
+ features. The default is to warn.
+
+
+
+File: as.info, Node: ARM Syntax, Next: ARM Floating Point, Prev: ARM Options, Up: ARM-Dependent
+
+9.3.2 Syntax
+------------
+
+* Menu:
+
+* ARM-Instruction-Set:: Instruction Set
+* ARM-Chars:: Special Characters
+* ARM-Regs:: Register Names
+* ARM-Relocations:: Relocations
+* ARM-Neon-Alignment:: NEON Alignment Specifiers
+
+
+File: as.info, Node: ARM-Instruction-Set, Next: ARM-Chars, Up: ARM Syntax
+
+9.3.2.1 Instruction Set Syntax
+..............................
+
+Two slightly different syntaxes are support for ARM and THUMB
+instructions. The default, `divided', uses the old style where ARM and
+THUMB instructions had their own, separate syntaxes. The new,
+`unified' syntax, which can be selected via the `.syntax' directive,
+and has the following main features:
+
+*
+ Immediate operands do not require a `#' prefix.
+
+*
+ The `IT' instruction may appear, and if it does it is validated
+ against subsequent conditional affixes. In ARM mode it does not
+ generate machine code, in THUMB mode it does.
+
+*
+ For ARM instructions the conditional affixes always appear at the
+ end of the instruction. For THUMB instructions conditional
+ affixes can be used, but only inside the scope of an `IT'
+ instruction.
+
+*
+ All of the instructions new to the V6T2 architecture (and later)
+ are available. (Only a few such instructions can be written in the
+ `divided' syntax).
+
+*
+ The `.N' and `.W' suffixes are recognized and honored.
+
+*
+ All instructions set the flags if and only if they have an `s'
+ affix.
+
+
+File: as.info, Node: ARM-Chars, Next: ARM-Regs, Prev: ARM-Instruction-Set, Up: ARM Syntax
+
+9.3.2.2 Special Characters
+..........................
+
+The presence of a `@' anywhere on a line indicates the start of a
+comment that extends to the end of that line.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line could also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ The `;' character can be used instead of a newline to separate
+statements.
+
+ Either `#' or `$' can be used to indicate immediate operands.
+
+ *TODO* Explain about /data modifier on symbols.
+
+
+File: as.info, Node: ARM-Regs, Next: ARM-Relocations, Prev: ARM-Chars, Up: ARM Syntax
+
+9.3.2.3 Register Names
+......................
+
+*TODO* Explain about ARM register naming, and the predefined names.
+
+
+File: as.info, Node: ARM-Neon-Alignment, Prev: ARM-Relocations, Up: ARM Syntax
+
+9.3.2.4 NEON Alignment Specifiers
+.................................
+
+Some NEON load/store instructions allow an optional address alignment
+qualifier. The ARM documentation specifies that this is indicated by
+`@ ALIGN'. However GAS already interprets the `@' character as a "line
+comment" start, so `: ALIGN' is used instead. For example:
+
+ vld1.8 {q0}, [r0, :128]
+
+
+File: as.info, Node: ARM Floating Point, Next: ARM Directives, Prev: ARM Syntax, Up: ARM-Dependent
+
+9.3.3 Floating Point
+--------------------
+
+The ARM family uses IEEE floating-point numbers.
+
+
+File: as.info, Node: ARM-Relocations, Next: ARM-Neon-Alignment, Prev: ARM-Regs, Up: ARM Syntax
+
+9.3.3.1 ARM relocation generation
+.................................
+
+Specific data relocations can be generated by putting the relocation
+name in parentheses after the symbol name. For example:
+
+ .word foo(TARGET1)
+
+ This will generate an `R_ARM_TARGET1' relocation against the symbol
+FOO. The following relocations are supported: `GOT', `GOTOFF',
+`TARGET1', `TARGET2', `SBREL', `TLSGD', `TLSLDM', `TLSLDO', `TLSDESC',
+`TLSCALL', `GOTTPOFF', `GOT_PREL' and `TPOFF'.
+
+ For compatibility with older toolchains the assembler also accepts
+`(PLT)' after branch targets. This will generate the deprecated
+`R_ARM_PLT32' relocation.
+
+ Relocations for `MOVW' and `MOVT' instructions can be generated by
+prefixing the value with `#:lower16:' and `#:upper16' respectively.
+For example to load the 32-bit address of foo into r0:
+
+ MOVW r0, #:lower16:foo
+ MOVT r0, #:upper16:foo
+
+
+File: as.info, Node: ARM Directives, Next: ARM Opcodes, Prev: ARM Floating Point, Up: ARM-Dependent
+
+9.3.4 ARM Machine Directives
+----------------------------
+
+`.2byte EXPRESSION [, EXPRESSION]*'
+`.4byte EXPRESSION [, EXPRESSION]*'
+`.8byte EXPRESSION [, EXPRESSION]*'
+ These directives write 2, 4 or 8 byte values to the output section.
+
+`.align EXPRESSION [, EXPRESSION]'
+ This is the generic .ALIGN directive. For the ARM however if the
+ first argument is zero (ie no alignment is needed) the assembler
+ will behave as if the argument had been 2 (ie pad to the next four
+ byte boundary). This is for compatibility with ARM's own
+ assembler.
+
+`.arch NAME'
+ Select the target architecture. Valid values for NAME are the
+ same as for the `-march' commandline option.
+
+ Specifying `.arch' clears any previously selected architecture
+ extensions.
+
+`.arch_extension NAME'
+ Add or remove an architecture extension to the target
+ architecture. Valid values for NAME are the same as those
+ accepted as architectural extensions by the `-mcpu' commandline
+ option.
+
+ `.arch_extension' may be used multiple times to add or remove
+ extensions incrementally to the architecture being compiled for.
+
+`.arm'
+ This performs the same action as .CODE 32.
+
+`.pad #COUNT'
+ Generate unwinder annotations for a stack adjustment of COUNT
+ bytes. A positive value indicates the function prologue allocated
+ stack space by decrementing the stack pointer.
+
+`.bss'
+ This directive switches to the `.bss' section.
+
+`.cantunwind'
+ Prevents unwinding through the current function. No personality
+ routine or exception table data is required or permitted.
+
+`.code `[16|32]''
+ This directive selects the instruction set being generated. The
+ value 16 selects Thumb, with the value 32 selecting ARM.
+
+`.cpu NAME'
+ Select the target processor. Valid values for NAME are the same as
+ for the `-mcpu' commandline option.
+
+ Specifying `.cpu' clears any previously selected architecture
+ extensions.
+
+`NAME .dn REGISTER NAME [.TYPE] [[INDEX]]'
+`NAME .qn REGISTER NAME [.TYPE] [[INDEX]]'
+ The `dn' and `qn' directives are used to create typed and/or
+ indexed register aliases for use in Advanced SIMD Extension (Neon)
+ instructions. The former should be used to create aliases of
+ double-precision registers, and the latter to create aliases of
+ quad-precision registers.
+
+ If these directives are used to create typed aliases, those
+ aliases can be used in Neon instructions instead of writing types
+ after the mnemonic or after each operand. For example:
+
+ x .dn d2.f32
+ y .dn d3.f32
+ z .dn d4.f32[1]
+ vmul x,y,z
+
+ This is equivalent to writing the following:
+
+ vmul.f32 d2,d3,d4[1]
+
+ Aliases created using `dn' or `qn' can be destroyed using `unreq'.
+
+`.eabi_attribute TAG, VALUE'
+ Set the EABI object attribute TAG to VALUE.
+
+ The TAG is either an attribute number, or one of the following:
+ `Tag_CPU_raw_name', `Tag_CPU_name', `Tag_CPU_arch',
+ `Tag_CPU_arch_profile', `Tag_ARM_ISA_use', `Tag_THUMB_ISA_use',
+ `Tag_FP_arch', `Tag_WMMX_arch', `Tag_Advanced_SIMD_arch',
+ `Tag_PCS_config', `Tag_ABI_PCS_R9_use', `Tag_ABI_PCS_RW_data',
+ `Tag_ABI_PCS_RO_data', `Tag_ABI_PCS_GOT_use',
+ `Tag_ABI_PCS_wchar_t', `Tag_ABI_FP_rounding',
+ `Tag_ABI_FP_denormal', `Tag_ABI_FP_exceptions',
+ `Tag_ABI_FP_user_exceptions', `Tag_ABI_FP_number_model',
+ `Tag_ABI_align_needed', `Tag_ABI_align_preserved',
+ `Tag_ABI_enum_size', `Tag_ABI_HardFP_use', `Tag_ABI_VFP_args',
+ `Tag_ABI_WMMX_args', `Tag_ABI_optimization_goals',
+ `Tag_ABI_FP_optimization_goals', `Tag_compatibility',
+ `Tag_CPU_unaligned_access', `Tag_FP_HP_extension',
+ `Tag_ABI_FP_16bit_format', `Tag_MPextension_use', `Tag_DIV_use',
+ `Tag_nodefaults', `Tag_also_compatible_with', `Tag_conformance',
+ `Tag_T2EE_use', `Tag_Virtualization_use'
+
+ The VALUE is either a `number', `"string"', or `number, "string"'
+ depending on the tag.
+
+ Note - the following legacy values are also accepted by TAG:
+ `Tag_VFP_arch', `Tag_ABI_align8_needed',
+ `Tag_ABI_align8_preserved', `Tag_VFP_HP_extension',
+
+`.even'
+ This directive aligns to an even-numbered address.
+
+`.extend EXPRESSION [, EXPRESSION]*'
+`.ldouble EXPRESSION [, EXPRESSION]*'
+ These directives write 12byte long double floating-point values to
+ the output section. These are not compatible with current ARM
+ processors or ABIs.
+
+`.fnend'
+ Marks the end of a function with an unwind table entry. The
+ unwind index table entry is created when this directive is
+ processed.
+
+ If no personality routine has been specified then standard
+ personality routine 0 or 1 will be used, depending on the number
+ of unwind opcodes required.
+
+`.fnstart'
+ Marks the start of a function with an unwind table entry.
+
+`.force_thumb'
+ This directive forces the selection of Thumb instructions, even if
+ the target processor does not support those instructions
+
+`.fpu NAME'
+ Select the floating-point unit to assemble for. Valid values for
+ NAME are the same as for the `-mfpu' commandline option.
+
+`.handlerdata'
+ Marks the end of the current function, and the start of the
+ exception table entry for that function. Anything between this
+ directive and the `.fnend' directive will be added to the
+ exception table entry.
+
+ Must be preceded by a `.personality' or `.personalityindex'
+ directive.
+
+`.inst OPCODE [ , ... ]'
+`.inst.n OPCODE [ , ... ]'
+`.inst.w OPCODE [ , ... ]'
+ Generates the instruction corresponding to the numerical value
+ OPCODE. `.inst.n' and `.inst.w' allow the Thumb instruction size
+ to be specified explicitly, overriding the normal encoding rules.
+
+`.ldouble EXPRESSION [, EXPRESSION]*'
+ See `.extend'.
+
+`.ltorg'
+ This directive causes the current contents of the literal pool to
+ be dumped into the current section (which is assumed to be the
+ .text section) at the current location (aligned to a word
+ boundary). `GAS' maintains a separate literal pool for each
+ section and each sub-section. The `.ltorg' directive will only
+ affect the literal pool of the current section and sub-section.
+ At the end of assembly all remaining, un-empty literal pools will
+ automatically be dumped.
+
+ Note - older versions of `GAS' would dump the current literal pool
+ any time a section change occurred. This is no longer done, since
+ it prevents accurate control of the placement of literal pools.
+
+`.movsp REG [, #OFFSET]'
+ Tell the unwinder that REG contains an offset from the current
+ stack pointer. If OFFSET is not specified then it is assumed to be
+ zero.
+
+`.object_arch NAME'
+ Override the architecture recorded in the EABI object attribute
+ section. Valid values for NAME are the same as for the `.arch'
+ directive. Typically this is useful when code uses runtime
+ detection of CPU features.
+
+`.packed EXPRESSION [, EXPRESSION]*'
+ This directive writes 12-byte packed floating-point values to the
+ output section. These are not compatible with current ARM
+ processors or ABIs.
+
+`.pad #COUNT'
+ Generate unwinder annotations for a stack adjustment of COUNT
+ bytes. A positive value indicates the function prologue allocated
+ stack space by decrementing the stack pointer.
+
+`.personality NAME'
+ Sets the personality routine for the current function to NAME.
+
+`.personalityindex INDEX'
+ Sets the personality routine for the current function to the EABI
+ standard routine number INDEX
+
+`.pool'
+ This is a synonym for .ltorg.
+
+`NAME .req REGISTER NAME'
+ This creates an alias for REGISTER NAME called NAME. For example:
+
+ foo .req r0
+
+`.save REGLIST'
+ Generate unwinder annotations to restore the registers in REGLIST.
+ The format of REGLIST is the same as the corresponding
+ store-multiple instruction.
+
+ _core registers_
+ .save {r4, r5, r6, lr}
+ stmfd sp!, {r4, r5, r6, lr}
+ _FPA registers_
+ .save f4, 2
+ sfmfd f4, 2, [sp]!
+ _VFP registers_
+ .save {d8, d9, d10}
+ fstmdx sp!, {d8, d9, d10}
+ _iWMMXt registers_
+ .save {wr10, wr11}
+ wstrd wr11, [sp, #-8]!
+ wstrd wr10, [sp, #-8]!
+ or
+ .save wr11
+ wstrd wr11, [sp, #-8]!
+ .save wr10
+ wstrd wr10, [sp, #-8]!
+
+`.setfp FPREG, SPREG [, #OFFSET]'
+ Make all unwinder annotations relative to a frame pointer.
+ Without this the unwinder will use offsets from the stack pointer.
+
+ The syntax of this directive is the same as the `add' or `mov'
+ instruction used to set the frame pointer. SPREG must be either
+ `sp' or mentioned in a previous `.movsp' directive.
+
+ .movsp ip
+ mov ip, sp
+ ...
+ .setfp fp, ip, #4
+ add fp, ip, #4
+
+`.secrel32 EXPRESSION [, EXPRESSION]*'
+ This directive emits relocations that evaluate to the
+ section-relative offset of each expression's symbol. This
+ directive is only supported for PE targets.
+
+`.syntax [`unified' | `divided']'
+ This directive sets the Instruction Set Syntax as described in the
+ *Note ARM-Instruction-Set:: section.
+
+`.thumb'
+ This performs the same action as .CODE 16.
+
+`.thumb_func'
+ This directive specifies that the following symbol is the name of a
+ Thumb encoded function. This information is necessary in order to
+ allow the assembler and linker to generate correct code for
+ interworking between Arm and Thumb instructions and should be used
+ even if interworking is not going to be performed. The presence
+ of this directive also implies `.thumb'
+
+ This directive is not neccessary when generating EABI objects. On
+ these targets the encoding is implicit when generating Thumb code.
+
+`.thumb_set'
+ This performs the equivalent of a `.set' directive in that it
+ creates a symbol which is an alias for another symbol (possibly
+ not yet defined). This directive also has the added property in
+ that it marks the aliased symbol as being a thumb function entry
+ point, in the same way that the `.thumb_func' directive does.
+
+`.tlsdescseq TLS-VARIABLE'
+ This directive is used to annotate parts of an inlined TLS
+ descriptor trampoline. Normally the trampoline is provided by the
+ linker, and this directive is not needed.
+
+`.unreq ALIAS-NAME'
+ This undefines a register alias which was previously defined using
+ the `req', `dn' or `qn' directives. For example:
+
+ foo .req r0
+ .unreq foo
+
+ An error occurs if the name is undefined. Note - this pseudo op
+ can be used to delete builtin in register name aliases (eg 'r0').
+ This should only be done if it is really necessary.
+
+`.unwind_raw OFFSET, BYTE1, ...'
+ Insert one of more arbitary unwind opcode bytes, which are known
+ to adjust the stack pointer by OFFSET bytes.
+
+ For example `.unwind_raw 4, 0xb1, 0x01' is equivalent to `.save
+ {r0}'
+
+`.vsave VFP-REGLIST'
+ Generate unwinder annotations to restore the VFP registers in
+ VFP-REGLIST using FLDMD. Also works for VFPv3 registers that are
+ to be restored using VLDM. The format of VFP-REGLIST is the same
+ as the corresponding store-multiple instruction.
+
+ _VFP registers_
+ .vsave {d8, d9, d10}
+ fstmdd sp!, {d8, d9, d10}
+ _VFPv3 registers_
+ .vsave {d15, d16, d17}
+ vstm sp!, {d15, d16, d17}
+
+ Since FLDMX and FSTMX are now deprecated, this directive should be
+ used in favour of `.save' for saving VFP registers for ARMv6 and
+ above.
+
+
+
+File: as.info, Node: ARM Opcodes, Next: ARM Mapping Symbols, Prev: ARM Directives, Up: ARM-Dependent
+
+9.3.5 Opcodes
+-------------
+
+`as' implements all the standard ARM opcodes. It also implements
+several pseudo opcodes, including several synthetic load instructions.
+
+`NOP'
+ nop
+
+ This pseudo op will always evaluate to a legal ARM instruction
+ that does nothing. Currently it will evaluate to MOV r0, r0.
+
+`LDR'
+ ldr <register> , = <expression>
+
+ If expression evaluates to a numeric constant then a MOV or MVN
+ instruction will be used in place of the LDR instruction, if the
+ constant can be generated by either of these instructions.
+ Otherwise the constant will be placed into the nearest literal
+ pool (if it not already there) and a PC relative LDR instruction
+ will be generated.
+
+`ADR'
+ adr <register> <label>
+
+ This instruction will load the address of LABEL into the indicated
+ register. The instruction will evaluate to a PC relative ADD or
+ SUB instruction depending upon where the label is located. If the
+ label is out of range, or if it is not defined in the same file
+ (and section) as the ADR instruction, then an error will be
+ generated. This instruction will not make use of the literal pool.
+
+`ADRL'
+ adrl <register> <label>
+
+ This instruction will load the address of LABEL into the indicated
+ register. The instruction will evaluate to one or two PC relative
+ ADD or SUB instructions depending upon where the label is located.
+ If a second instruction is not needed a NOP instruction will be
+ generated in its place, so that this instruction is always 8 bytes
+ long.
+
+ If the label is out of range, or if it is not defined in the same
+ file (and section) as the ADRL instruction, then an error will be
+ generated. This instruction will not make use of the literal pool.
+
+
+ For information on the ARM or Thumb instruction sets, see `ARM
+Software Development Toolkit Reference Manual', Advanced RISC Machines
+Ltd.
+
+
+File: as.info, Node: ARM Mapping Symbols, Next: ARM Unwinding Tutorial, Prev: ARM Opcodes, Up: ARM-Dependent
+
+9.3.6 Mapping Symbols
+---------------------
+
+The ARM ELF specification requires that special symbols be inserted
+into object files to mark certain features:
+
+`$a'
+ At the start of a region of code containing ARM instructions.
+
+`$t'
+ At the start of a region of code containing THUMB instructions.
+
+`$d'
+ At the start of a region of data.
+
+
+ The assembler will automatically insert these symbols for you - there
+is no need to code them yourself. Support for tagging symbols ($b, $f,
+$p and $m) which is also mentioned in the current ARM ELF specification
+is not implemented. This is because they have been dropped from the
+new EABI and so tools cannot rely upon their presence.
+
+
+File: as.info, Node: ARM Unwinding Tutorial, Prev: ARM Mapping Symbols, Up: ARM-Dependent
+
+9.3.7 Unwinding
+---------------
+
+The ABI for the ARM Architecture specifies a standard format for
+exception unwind information. This information is used when an
+exception is thrown to determine where control should be transferred.
+In particular, the unwind information is used to determine which
+function called the function that threw the exception, and which
+function called that one, and so forth. This information is also used
+to restore the values of callee-saved registers in the function
+catching the exception.
+
+ If you are writing functions in assembly code, and those functions
+call other functions that throw exceptions, you must use assembly
+pseudo ops to ensure that appropriate exception unwind information is
+generated. Otherwise, if one of the functions called by your assembly
+code throws an exception, the run-time library will be unable to unwind
+the stack through your assembly code and your program will not behave
+correctly.
+
+ To illustrate the use of these pseudo ops, we will examine the code
+that G++ generates for the following C++ input:
+
+
+void callee (int *);
+
+int
+caller ()
+{
+ int i;
+ callee (&i);
+ return i;
+}
+
+ This example does not show how to throw or catch an exception from
+assembly code. That is a much more complex operation and should always
+be done in a high-level language, such as C++, that directly supports
+exceptions.
+
+ The code generated by one particular version of G++ when compiling
+the example above is:
+
+
+_Z6callerv:
+ .fnstart
+.LFB2:
+ @ Function supports interworking.
+ @ args = 0, pretend = 0, frame = 8
+ @ frame_needed = 1, uses_anonymous_args = 0
+ stmfd sp!, {fp, lr}
+ .save {fp, lr}
+.LCFI0:
+ .setfp fp, sp, #4
+ add fp, sp, #4
+.LCFI1:
+ .pad #8
+ sub sp, sp, #8
+.LCFI2:
+ sub r3, fp, #8
+ mov r0, r3
+ bl _Z6calleePi
+ ldr r3, [fp, #-8]
+ mov r0, r3
+ sub sp, fp, #4
+ ldmfd sp!, {fp, lr}
+ bx lr
+.LFE2:
+ .fnend
+
+ Of course, the sequence of instructions varies based on the options
+you pass to GCC and on the version of GCC in use. The exact
+instructions are not important since we are focusing on the pseudo ops
+that are used to generate unwind information.
+
+ An important assumption made by the unwinder is that the stack frame
+does not change during the body of the function. In particular, since
+we assume that the assembly code does not itself throw an exception,
+the only point where an exception can be thrown is from a call, such as
+the `bl' instruction above. At each call site, the same saved
+registers (including `lr', which indicates the return address) must be
+located in the same locations relative to the frame pointer.
+
+ The `.fnstart' (*note .fnstart pseudo op: arm_fnstart.) pseudo op
+appears immediately before the first instruction of the function while
+the `.fnend' (*note .fnend pseudo op: arm_fnend.) pseudo op appears
+immediately after the last instruction of the function. These pseudo
+ops specify the range of the function.
+
+ Only the order of the other pseudos ops (e.g., `.setfp' or `.pad')
+matters; their exact locations are irrelevant. In the example above,
+the compiler emits the pseudo ops with particular instructions. That
+makes it easier to understand the code, but it is not required for
+correctness. It would work just as well to emit all of the pseudo ops
+other than `.fnend' in the same order, but immediately after `.fnstart'.
+
+ The `.save' (*note .save pseudo op: arm_save.) pseudo op indicates
+registers that have been saved to the stack so that they can be
+restored before the function returns. The argument to the `.save'
+pseudo op is a list of registers to save. If a register is
+"callee-saved" (as specified by the ABI) and is modified by the
+function you are writing, then your code must save the value before it
+is modified and restore the original value before the function returns.
+If an exception is thrown, the run-time library restores the values of
+these registers from their locations on the stack before returning
+control to the exception handler. (Of course, if an exception is not
+thrown, the function that contains the `.save' pseudo op restores these
+registers in the function epilogue, as is done with the `ldmfd'
+instruction above.)
+
+ You do not have to save callee-saved registers at the very beginning
+of the function and you do not need to use the `.save' pseudo op
+immediately following the point at which the registers are saved.
+However, if you modify a callee-saved register, you must save it on the
+stack before modifying it and before calling any functions which might
+throw an exception. And, you must use the `.save' pseudo op to
+indicate that you have done so.
+
+ The `.pad' (*note .pad: arm_pad.) pseudo op indicates a modification
+of the stack pointer that does not save any registers. The argument is
+the number of bytes (in decimal) that are subtracted from the stack
+pointer. (On ARM CPUs, the stack grows downwards, so subtracting from
+the stack pointer increases the size of the stack.)
+
+ The `.setfp' (*note .setfp pseudo op: arm_setfp.) pseudo op
+indicates the register that contains the frame pointer. The first
+argument is the register that is set, which is typically `fp'. The
+second argument indicates the register from which the frame pointer
+takes its value. The third argument, if present, is the value (in
+decimal) added to the register specified by the second argument to
+compute the value of the frame pointer. You should not modify the
+frame pointer in the body of the function.
+
+ If you do not use a frame pointer, then you should not use the
+`.setfp' pseudo op. If you do not use a frame pointer, then you should
+avoid modifying the stack pointer outside of the function prologue.
+Otherwise, the run-time library will be unable to find saved registers
+when it is unwinding the stack.
+
+ The pseudo ops described above are sufficient for writing assembly
+code that calls functions which may throw exceptions. If you need to
+know more about the object-file format used to represent unwind
+information, you may consult the `Exception Handling ABI for the ARM
+Architecture' available from `http://infocenter.arm.com'.
+
+
+File: as.info, Node: AVR-Dependent, Next: Blackfin-Dependent, Prev: ARM-Dependent, Up: Machine Dependencies
+
+9.4 AVR Dependent Features
+==========================
+
+* Menu:
+
+* AVR Options:: Options
+* AVR Syntax:: Syntax
+* AVR Opcodes:: Opcodes
+
+
+File: as.info, Node: AVR Options, Next: AVR Syntax, Up: AVR-Dependent
+
+9.4.1 Options
+-------------
+
+`-mmcu=MCU'
+ Specify ATMEL AVR instruction set or MCU type.
+
+ Instruction set avr1 is for the minimal AVR core, not supported by
+ the C compiler, only for assembler programs (MCU types: at90s1200,
+ attiny11, attiny12, attiny15, attiny28).
+
+ Instruction set avr2 (default) is for the classic AVR core with up
+ to 8K program memory space (MCU types: at90s2313, at90s2323,
+ at90s2333, at90s2343, attiny22, attiny26, at90s4414, at90s4433,
+ at90s4434, at90s8515, at90c8534, at90s8535).
+
+ Instruction set avr25 is for the classic AVR core with up to 8K
+ program memory space plus the MOVW instruction (MCU types:
+ attiny13, attiny13a, attiny2313, attiny2313a, attiny24, attiny24a,
+ attiny4313, attiny44, attiny44a, attiny84, attiny84a, attiny25,
+ attiny45, attiny85, attiny261, attiny261a, attiny461, attiny461a,
+ attiny861, attiny861a, attiny87, attiny43u, attiny48, attiny88,
+ at86rf401, ata6289).
+
+ Instruction set avr3 is for the classic AVR core with up to 128K
+ program memory space (MCU types: at43usb355, at76c711).
+
+ Instruction set avr31 is for the classic AVR core with exactly
+ 128K program memory space (MCU types: atmega103, at43usb320).
+
+ Instruction set avr35 is for classic AVR core plus MOVW, CALL, and
+ JMP instructions (MCU types: attiny167, at90usb82, at90usb162,
+ atmega8u2, atmega16u2, atmega32u2).
+
+ Instruction set avr4 is for the enhanced AVR core with up to 8K
+ program memory space (MCU types: atmega48, atmega48a, atmega48p,
+ atmega8, atmega88, atmega88a, atmega88p, atmega88pa, atmega8515,
+ atmega8535, atmega8hva, at90pwm1, at90pwm2, at90pwm2b, at90pwm3,
+ at90pwm3b, at90pwm81).
+
+ Instruction set avr5 is for the enhanced AVR core with up to 128K
+ program memory space (MCU types: atmega16, atmega16a, atmega161,
+ atmega162, atmega163, atmega164a, atmega164p, atmega165,
+ atmega165a, atmega165p, atmega168, atmega168a, atmega168p,
+ atmega169, atmega169a, atmega169p, atmega169pa, atmega32,
+ atmega323, atmega324a, atmega324p, atmega325, atmega325a,
+ atmega325p, atmega325pa, atmega3250, atmega3250a, atmega3250p,
+ atmega3250pa, atmega328, atmega328p, atmega329, atmega329a,
+ atmega329p, atmega329pa, atmega3290, atmega3290a, atmega3290p,
+ atmega3290pa, atmega406, atmega64, atmega640, atmega644,
+ atmega644a, atmega644p, atmega644pa, atmega645, atmega645a,
+ atmega645p, atmega6450, atmega6450a, atmega6450p, atmega649,
+ atmega649a, atmega649p, atmega6490, atmega6490a, atmega6490p,
+ atmega16hva, atmega16hva2, atmega16hvb, atmega16hvbrevb,
+ atmega32hvb, atmega32hvbrevb, atmega64hve, at90can32, at90can64,
+ at90pwm161, at90pwm216, at90pwm316, atmega32c1, atmega64c1,
+ atmega16m1, atmega32m1, atmega64m1, atmega16u4, atmega32u4,
+ atmega32u6, at90usb646, at90usb647, at94k, at90scr100).
+
+ Instruction set avr51 is for the enhanced AVR core with exactly
+ 128K program memory space (MCU types: atmega128, atmega1280,
+ atmega1281, atmega1284p, atmega128rfa1, at90can128, at90usb1286,
+ at90usb1287, m3000).
+
+ Instruction set avr6 is for the enhanced AVR core with a 3-byte PC
+ (MCU types: atmega2560, atmega2561).
+
+ Instruction set avrxmega2 is for the XMEGA AVR core with 8K to 64K
+ program memory space and less than 64K data space (MCU types:
+ atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4, atxmega32d4,
+ atxmega32x1).
+
+ Instruction set avrxmega3 is for the XMEGA AVR core with 8K to 64K
+ program memory space and greater than 64K data space (MCU types:
+ none).
+
+ Instruction set avrxmega4 is for the XMEGA AVR core with up to 64K
+ program memory space and less than 64K data space (MCU types:
+ atxmega64a3, atxmega64d3).
+
+ Instruction set avrxmega5 is for the XMEGA AVR core with up to 64K
+ program memory space and greater than 64K data space (MCU types:
+ atxmega64a1, atxmega64a1u).
+
+ Instruction set avrxmega6 is for the XMEGA AVR core with up to
+ 256K program memory space and less than 64K data space (MCU types:
+ atxmega128a3, atxmega128d3, atxmega192a3, atxmega128b1,
+ atxmega192d3, atxmega256a3, atxmega256a3b, atxmega256a3bu,
+ atxmega192d3).
+
+ Instruction set avrxmega7 is for the XMEGA AVR core with up to
+ 256K program memory space and greater than 64K data space (MCU
+ types: atxmega128a1, atxmega128a1u).
+
+`-mall-opcodes'
+ Accept all AVR opcodes, even if not supported by `-mmcu'.
+
+`-mno-skip-bug'
+ This option disable warnings for skipping two-word instructions.
+
+`-mno-wrap'
+ This option reject `rjmp/rcall' instructions with 8K wrap-around.
+
+
+
+File: as.info, Node: AVR Syntax, Next: AVR Opcodes, Prev: AVR Options, Up: AVR-Dependent
+
+9.4.2 Syntax
+------------
+
+* Menu:
+
+* AVR-Chars:: Special Characters
+* AVR-Regs:: Register Names
+* AVR-Modifiers:: Relocatable Expression Modifiers
+
+
+File: as.info, Node: AVR-Chars, Next: AVR-Regs, Up: AVR Syntax
+
+9.4.2.1 Special Characters
+..........................
+
+The presence of a `;' anywhere on a line indicates the start of a
+comment that extends to the end of that line.
+
+ If a `#' appears as the first character of a line, the whole line is
+treated as a comment, but in this case the line can also be a logical
+line number directive (*note Comments::) or a preprocessor control
+command (*note Preprocessing::).
+
+ The `$' character can be used instead of a newline to separate
+statements.
+
+
+File: as.info, Node: AVR-Regs, Next: AVR-Modifiers, Prev: AVR-Chars, Up: AVR Syntax
+
+9.4.2.2 Register Names
+......................
+
+The AVR has 32 x 8-bit general purpose working registers `r0', `r1',
+... `r31'. Six of the 32 registers can be used as three 16-bit
+indirect address register pointers for Data Space addressing. One of
+the these address pointers can also be used as an address pointer for
+look up tables in Flash program memory. These added function registers
+are the 16-bit `X', `Y' and `Z' - registers.
+
+ X = r26:r27
+ Y = r28:r29
+ Z = r30:r31
+
+
+File: as.info, Node: AVR-Modifiers, Prev: AVR-Regs, Up: AVR Syntax
+
+9.4.2.3 Relocatable Expression Modifiers
+........................................
+
+The assembler supports several modifiers when using relocatable
+addresses in AVR instruction operands. The general syntax is the
+following:
+
+ modifier(relocatable-expression)
+
+`lo8'
+ This modifier allows you to use bits 0 through 7 of an address
+ expression as 8 bit relocatable expression.
+
+`hi8'
+ This modifier allows you to use bits 7 through 15 of an address
+ expression as 8 bit relocatable expression. This is useful with,
+ for example, the AVR `ldi' instruction and `lo8' modifier.
+
+ For example
+
+ ldi r26, lo8(sym+10)
+ ldi r27, hi8(sym+10)
+
+`hh8'
+ This modifier allows you to use bits 16 through 23 of an address
+ expression as 8 bit relocatable expression. Also, can be useful
+ for loading 32 bit constants.
+
+`hlo8'
+ Synonym of `hh8'.
+
+`hhi8'
+ This modifier allows you to use bits 24 through 31 of an
+ expression as 8 bit expression. This is useful with, for example,
+ the AVR `ldi' instruction and `lo8', `hi8', `hlo8', `hhi8',
+ modifier.
+
+ For example
+
+ ldi r26, lo8(285774925)
+ ldi r27, hi8(285774925)
+ ldi r28, hlo8(285774925)
+ ldi r29, hhi8(285774925)
+ ; r29,r28,r27,r26 = 285774925
+
+`pm_lo8'
+ This modifier allows you to use bits 0 through 7 of an address
+ expression as 8 bit relocatable expression. This modifier useful
+ for addressing data or code from Flash/Program memory. The using
+ of `pm_lo8' similar to `lo8'.
+
+`pm_hi8'
+ This modifier allows you to use bits 8 through 15 of an address
+ expression as 8 bit relocatable expression. This modifier useful
+ for addressing data or code from Flash/Program memory.
+
+`pm_hh8'
+ This modifier allows you to use bits 15 through 23 of an address
+ expression as 8 bit relocatable expression. This modifier useful
+ for addressing data or code from Flash/Program memory.
+
+
+
+File: as.info, Node: AVR Opcodes, Prev: AVR Syntax, Up: AVR-Dependent
+
+9.4.3 Opcodes
+-------------
+
+For detailed information on the AVR machine instruction set, see
+`www.atmel.com/products/AVR'.
+
+ `as' implements all the standard AVR opcodes. The following table
+summarizes the AVR opcodes, and their arguments.
+
+ Legend:
+ r any register
+ d `ldi' register (r16-r31)
+ v `movw' even register (r0, r2, ..., r28, r30)
+ a `fmul' register (r16-r23)
+ w `adiw' register (r24,r26,r28,r30)
+ e pointer registers (X,Y,Z)
+ b base pointer register and displacement ([YZ]+disp)
+ z Z pointer register (for [e]lpm Rd,Z[+])
+ M immediate value from 0 to 255
+ n immediate value from 0 to 255 ( n = ~M ). Relocation impossible
+ s immediate value from 0 to 7
+ P Port address value from 0 to 63. (in, out)
+ p Port address value from 0 to 31. (cbi, sbi, sbic, sbis)
+ K immediate value from 0 to 63 (used in `adiw', `sbiw')
+ i immediate value
+ l signed pc relative offset from -64 to 63
+ L signed pc relative offset from -2048 to 2047
+ h absolute code address (call, jmp)
+ S immediate value from 0 to 7 (S = s << 4)
+ ? use this opcode entry if no parameters, else use next opcode entry
+
+ 1001010010001000 clc
+ 1001010011011000 clh
+ 1001010011111000 cli
+ 1001010010101000 cln
+ 1001010011001000 cls
+ 1001010011101000 clt
+ 1001010010111000 clv
+ 1001010010011000 clz
+ 1001010000001000 sec
+ 1001010001011000 seh
+ 1001010001111000 sei
+ 1001010000101000 sen
+ 1001010001001000 ses
+ 1001010001101000 set
+ 1001010000111000 sev
+ 1001010000011000 sez
+ 100101001SSS1000 bclr S
+ 100101000SSS1000 bset S
+ 1001010100001001 icall
+ 1001010000001001 ijmp
+ 1001010111001000 lpm ?
+ 1001000ddddd010+ lpm r,z
+ 1001010111011000 elpm ?
+ 1001000ddddd011+ elpm r,z
+ 0000000000000000 nop
+ 1001010100001000 ret
+ 1001010100011000 reti
+ 1001010110001000 sleep
+ 1001010110011000 break
+ 1001010110101000 wdr
+ 1001010111101000 spm
+ 000111rdddddrrrr adc r,r
+ 000011rdddddrrrr add r,r
+ 001000rdddddrrrr and r,r
+ 000101rdddddrrrr cp r,r
+ 000001rdddddrrrr cpc r,r
+ 000100rdddddrrrr cpse r,r
+ 001001rdddddrrrr eor r,r
+ 001011rdddddrrrr mov r,r
+ 100111rdddddrrrr mul r,r
+ 001010rdddddrrrr or r,r
+ 000010rdddddrrrr sbc r,r
+ 000110rdddddrrrr sub r,r
+ 001001rdddddrrrr clr r
+ 000011rdddddrrrr lsl r
+ 000111rdddddrrrr rol r
+ 001000rdddddrrrr tst r
+ 0111KKKKddddKKKK andi d,M
+ 0111KKKKddddKKKK cbr d,n
+ 1110KKKKddddKKKK ldi d,M
+ 11101111dddd1111 ser d
+ 0110KKKKddddKKKK ori d,M
+ 0110KKKKddddKKKK sbr d,M
+ 0011KKKKddddKKKK cpi d,M
+ 0100KKKKddddKKKK sbci d,M
+ 0101KKKKddddKKKK subi d,M
+ 1111110rrrrr0sss sbrc r,s
+ 1111111rrrrr0sss sbrs r,s
+ 1111100ddddd0sss bld r,s
+ 1111101ddddd0sss bst r,s
+ 10110PPdddddPPPP in r,P
+ 10111PPrrrrrPPPP out P,r
+ 10010110KKddKKKK adiw w,K
+ 10010111KKddKKKK sbiw w,K
+ 10011000pppppsss cbi p,s
+ 10011010pppppsss sbi p,s
+ 10011001pppppsss sbic p,s
+ 10011011pppppsss sbis p,s
+ 111101lllllll000 brcc l
+ 111100lllllll000 brcs l
+ 111100lllllll001 breq l
+ 111101lllllll100 brge l
+ 111101lllllll101 brhc l
+ 111100lllllll101 brhs l
+ 111101lllllll111 brid l
+ 111100lllllll111 brie l
+ 111100lllllll000 brlo l
+ 111100lllllll100 brlt l
+ 111100lllllll010 brmi l
+ 111101lllllll001 brne l
+ 111101lllllll010 brpl l
+ 111101lllllll000 brsh l
+ 111101lllllll110 brtc l
+ 111100lllllll110 brts l
+ 111101lllllll011 brvc l
+ 111100lllllll011 brvs l
+ 111101lllllllsss brbc s,l
+ 111100lllllllsss brbs s,l
+ 1101LLLLLLLLLLLL rcall L
+ 1100LLLLLLLLLLLL rjmp L
+ 1001010hhhhh111h call h
+ 1001010hhhhh110h jmp h
+ 1001010rrrrr0101 asr r
+ 1001010rrrrr0000 com r
+ 1001010rrrrr1010 dec r
+ 1001010rrrrr0011 inc r
+ 1001010rrrrr0110 lsr r
+ 1001010rrrrr0001 neg r
+ 1001000rrrrr1111 pop r
+ 1001001rrrrr1111 push r
+ 1001010rrrrr0111 ror r
+ 1001010rrrrr0010 swap r
+ 00000001ddddrrrr movw v,v
+ 00000010ddddrrrr muls d,d
+ 000000110ddd0rrr mulsu a,a
+ 000000110ddd1rrr fmul a,a
+ 000000111ddd0rrr fmuls a,a
+ 000000111ddd1rrr fmulsu a,a
+ 1001001ddddd0000 sts i,r
+ 1001000ddddd0000 lds r,i
+ 10o0oo0dddddbooo ldd r,b
+ 100!000dddddee-+ ld r,e
+ 10o0oo1rrrrrbooo std b,r
+ 100!001rrrrree-+ st e,r
+ 1001010100011001 eicall
+ 1001010000011001 eijmp
+
+
+File: as.info, Node: Blackfin-Dependent, Next: CR16-Dependent, Prev: AVR-Dependent, Up: Machine Dependencies
+
+9.5 Blackfin Dependent Features
+===============================
+
+* Menu:
+
+* Blackfin Options:: Blackfin Options
+* Blackfin Syntax:: Blackfin Syntax
+* Blackfin Directives:: Blackfin Directives
+
+
+File: as.info, Node: Blackfin Options, Next: Blackfin Syntax, Up: Blackfin-Dependent
+
+9.5.1 Options
+-------------
+
+`-mcpu=PROCESSOR[-SIREVISION]'
+ This option specifies the target processor. The optional
+ SIREVISION is not used in assembler. It's here such that GCC can
+ easily pass down its `-mcpu=' option. The assembler will issue an
+ error message if an attempt is made to assemble an instruction
+ which will not execute on the target processor. The following
+ processor names are recognized: `bf504', `bf506', `bf512', `bf514',
+ `bf516', `bf518', `bf522', `bf523', `bf524', `bf525', `bf526',
+ `bf527', `bf531', `bf532', `bf533', `bf534', `bf535' (not
+ implemented yet), `bf536', `bf537', `bf538', `bf539', `bf542',
+ `bf542m', `bf544', `bf544m', `bf547', `bf547m', `bf548', `bf548m',
+ `bf549', `bf549m', `bf561', and `bf592'.
+
+`-mfdpic'
+ Assemble for the FDPIC ABI.
+
+`-mno-fdpic'
+`-mnopic'
+ Disable -mfdpic.
+
+
+File: as.info, Node: Blackfin Syntax, Next: Blackfin Directives, Prev: Blackfin Options, Up: Blackfin-Dependent
+
+9.5.2 Syntax
+------------
+
+`Special Characters'
+ Assembler input is free format and may appear anywhere on the line.
+ One instruction may extend across multiple lines or more than one
+ instruction may appear on the same line. White space (space, tab,
+ comments or newline) may appear anywhere between tokens. A token
+ must not have embedded spaces. Tokens include numbers, register
+ names, keywords, user identifiers, and also some multicharacter
+ special symbols like "+=", "/*" or "||".
+
+ Comments are introduced by the `#' character and extend to the end
+ of the current line. If the `#' appears as the first character of
+ a line, the whole line is treated as a comment, but in this case
+ the line can also be a logical line number directive (*note
+ Comments::) or a preprocessor control command (*note
+ Preprocessing::).
+
+`Instruction Delimiting'
+ A semicolon must terminate every instruction. Sometimes a complete
+ instruction will consist of more than one operation. There are two
+ cases where this occurs. The first is when two general operations
+ are combined. Normally a comma separates the different parts, as
+ in
+
+ a0= r3.h * r2.l, a1 = r3.l * r2.h ;
+
+ The second case occurs when a general instruction is combined with
+ one or two memory references for joint issue. The latter portions
+ are set off by a "||" token.
+
+ a0 = r3.h * r2.l || r1 = [p3++] || r4 = [i2++];
+
+ Multiple instructions can occur on the same line. Each must be
+ terminated by a semicolon character.
+
+`Register Names'
+ The assembler treats register names and instruction keywords in a
+ case insensitive manner. User identifiers are case sensitive.
+ Thus, R3.l, R3.L, r3.l and r3.L are all equivalent input to the
+ assembler.
+
+ Register names are reserved and may not be used as program
+ identifiers.
+
+ Some operations (such as "Move Register") require a register pair.
+ Register pairs are always data registers and are denoted using a
+ colon, eg., R3:2. The larger number must be written firsts. Note
+ that the hardware only supports odd-even pairs, eg., R7:6, R5:4,
+ R3:2, and R1:0.
+
+ Some instructions (such as -SP (Push Multiple)) require a group of
+ adjacent registers. Adjacent registers are denoted in the syntax
+ by the range enclosed in parentheses and separated by a colon,
+ eg., (R7:3). Again, the larger number appears first.
+
+ Portions of a particular register may be individually specified.
+ This is written with a dot (".") following the register name and
+ then a letter denoting the desired portion. For 32-bit registers,
+ ".H" denotes the most significant ("High") portion. ".L" denotes
+ the least-significant portion. The subdivisions of the 40-bit
+ registers are described later.
+
+`Accumulators'
+ The set of 40-bit registers A1 and A0 that normally contain data
+ that is being manipulated. Each accumulator can be accessed in
+ four ways.
+
+ `one 40-bit register'
+ The register will be referred to as A1 or A0.
+
+ `one 32-bit register'
+ The registers are designated as A1.W or A0.W.
+
+ `two 16-bit registers'
+ The registers are designated as A1.H, A1.L, A0.H or A0.L.
+
+ `one 8-bit register'
+ The registers are designated as A1.X or A0.X for the bits that
+ extend beyond bit 31.
+
+`Data Registers'
+ The set of 32-bit registers (R0, R1, R2, R3, R4, R5, R6 and R7)
+ that normally contain data for manipulation. These are
+ abbreviated as D-register or Dreg. Data registers can be accessed
+ as 32-bit registers or as two independent 16-bit registers. The
+ least significant 16 bits of each register is called the "low"
+ half and is designated with ".L" following the register name. The
+ most significant 16 bits are called the "high" half and is
+ designated with ".H" following the name.
+
+ R7.L, r2.h, r4.L, R0.H
+
+`Pointer Registers'
+ The set of 32-bit registers (P0, P1, P2, P3, P4, P5, SP and FP)
+ that normally contain byte addresses of data structures. These are
+ abbreviated as P-register or Preg.
+
+ p2, p5, fp, sp
+
+`Stack Pointer SP'
+ The stack pointer contains the 32-bit address of the last occupied
+ byte location in the stack. The stack grows by decrementing the
+ stack pointer.
+
+`Frame Pointer FP'
+ The frame pointer contains the 32-bit address of the previous frame
+ pointer in the stack. It is located at the top of a frame.
+
+`Loop Top'
+ LT0 and LT1. These registers contain the 32-bit address of the
+ top of a zero overhead loop.
+
+`Loop Count'
+ LC0 and LC1. These registers contain the 32-bit counter of the
+ zero overhead loop executions.
+
+`Loop Bottom'
+ LB0 and LB1. These registers contain the 32-bit address of the
+ bottom of a zero overhead loop.
+
+`Index Registers'
+ The set of 32-bit registers (I0, I1, I2, I3) that normally contain
+ byte addresses of data structures. Abbreviated I-register or Ireg.
+
+`Modify Registers'
+ The set of 32-bit registers (M0, M1, M2, M3) that normally contain
+ offset values that are added and subtracted to one of the index
+ registers. Abbreviated as Mreg.
+
+`Length Registers'
+ The set of 32-bit registers (L0, L1, L2, L3) that normally contain
+ the length in bytes of the circular buffer. Abbreviated as Lreg.
+ Clear the Lreg to disable circular addressing for the
+ corresponding Ireg.
+
+`Base Registers'
+ The set of 32-bit registers (B0, B1, B2, B3) that normally contain
+ the base address in bytes of the circular buffer. Abbreviated as
+ Breg.
+
+`Floating Point'
+ The Blackfin family has no hardware floating point but the .float
+ directive generates ieee floating point numbers for use with
+ software floating point libraries.
+
+`Blackfin Opcodes'
+ For detailed information on the Blackfin machine instruction set,
+ see the Blackfin(r) Processor Instruction Set Reference.
+
+
+
+File: as.info, Node: Blackfin Directives, Prev: Blackfin Syntax, Up: Blackfin-Dependent
+
+9.5.3 Directives
+----------------
+
+The following directives are provided for compatibility with the VDSP
+assembler.
+
+`.byte2'
+ Initializes a two byte data object.
+
+ This maps to the `.short' directive.
+
+`.byte4'
+ Initializes a four byte data object.
+
+ This maps to the `.int' directive.
+
+`.db'
+ Initializes a single byte data object.
+
+ This directive is a synonym for `.byte'.
+
+`.dw'
+ Initializes a two byte data object.
+
+ This directive is a synonym for `.byte2'.
+
+`.dd'
+ Initializes a four byte data object.
+
+ This directive is a synonym for `.byte4'.
+
+`.var'
+ Define and initialize a 32 bit data object.
+
+
+File: as.info, Node: CR16-Dependent, Next: CRIS-Dependent, Prev: Blackfin-Dependent, Up: Machine Dependencies
+
+9.6 CR16 Dependent Features
+===========================
+
+* Menu:
+
+* CR16 Operand Qualifiers:: CR16 Machine Operand Qualifiers
+* CR16 Syntax:: Syntax for the CR16
+
+
+File: as.info, Node: CR16 Operand Qualifiers, Next: CR16 Syntax, Up: CR16-Dependent
+
+9.6.1 CR16 Operand Qualifiers
+-----------------------------
+
+The National Semiconductor CR16 target of `as' has a few machine
+dependent operand qualifiers.
+
+ Operand expression type qualifier is an optional field in the
+instruction operand, to determines the type of the expression field of
+an operand. The `@' is required. CR16 architecture uses one of the
+following expression qualifiers:
+
+`s'
+ - `Specifies expression operand type as small'
+
+`m'
+ - `Specifies expression operand type as medium'
+
+`l'
+ - `Specifies expression operand type as large'
+
+`c'
+ - `Specifies the CR16 Assembler generates a relocation entry for
+ the operand, where pc has implied bit, the expression is adjusted
+ accordingly. The linker uses the relocation entry to update the
+ operand address at link time.'
+
+`got/GOT'
+ - `Specifies the CR16 Assembler generates a relocation entry for
+ the operand, offset from Global Offset Table. The linker uses this
+ relocation entry to update the operand address at link time'
+
+`cgot/cGOT'
+ - `Specifies the CompactRISC Assembler generates a relocation
+ entry for the operand, where pc has implied bit, the expression is
+ adjusted accordingly. The linker uses the relocation entry to
+ update the operand address at link time.'
+
+ CR16 target operand qualifiers and its size (in bits):
+
+`Immediate Operand'
+ - s --- 4 bits
+
+`'
+ - m --- 16 bits, for movb and movw instructions.
+
+`'
+ - m --- 20 bits, movd instructions.
+
+`'
+ - l --- 32 bits
+
+`Absolute Operand'
+ - s --- Illegal specifier for this operand.
+
+`'
+ - m --- 20 bits, movd instructions.
+
+`Displacement Operand'
+ - s --- 8 bits
+
+`'
+ - m --- 16 bits
+
+`'
+ - l --- 24 bits
+
+ For example:
+ 1 `movw $_myfun@c,r1'
+
+ This loads the address of _myfun, shifted right by 1, into r1.
+
+ 2 `movd $_myfun@c,(r2,r1)'
+
+ This loads the address of _myfun, shifted right by 1, into register-pair r2-r1.
+
+ 3 `_myfun_ptr:'
+ `.long _myfun@c'
+ `loadd _myfun_ptr, (r1,r0)'
+ `jal (r1,r0)'
+
+ This .long directive, the address of _myfunc, shifted right by 1 at link time.
+
+ 4 `loadd _data1@GOT(r12), (r1,r0)'
+
+ This loads the address of _data1, into global offset table (ie GOT) and its offset value from GOT loads into register-pair r2-r1.
+
+ 5 `loadd _myfunc@cGOT(r12), (r1,r0)'
+
+ This loads the address of _myfun, shifted right by 1, into global offset table (ie GOT) and its offset value from GOT loads into register-pair r1-r0.
+
+
+File: as.info, Node: CR16 Syntax, Prev: CR16 Operand Qualifiers, Up: CR16-Dependent
+
+9.6.2 CR16 Syntax
+-----------------
+
+* Menu:
+
+* CR16-Chars:: Special Characters
+
+
+File: as.info, Node: CR16-Chars, Up: CR16 Syntax
+
+9.6.2.1 Special Characters
+..........................
+
+The presence of a `#' on a line indicates the start of a comment that
+extends to the end of the current line. If the `#' appears as the
+first character of a line, the whole line is treated as a comment, but
+in this case the line can also be a logical line number directive
+(*note Comments::) or a preprocessor control command (*note
+Preprocessing::).
+
+ The `;' character can be used to separate statements on the same
+line.
+
+
+File: as.info, Node: CRIS-Dependent, Next: D10V-Dependent, Prev: CR16-Dependent, Up: Machine Dependencies
+
+9.7 CRIS Dependent Features
+===========================
+
+* Menu:
+
+* CRIS-Opts:: Command-line Options
+* CRIS-Expand:: Instruction expansion
+* CRIS-Symbols:: Symbols
+* CRIS-Syntax:: Syntax
+
+
+File: as.info, Node: CRIS-Opts, Next: CRIS-Expand, Up: CRIS-Dependent
+
+9.7.1 Command-line Options
+--------------------------
+
+The CRIS version of `as' has these machine-dependent command-line
+options.
+
+ The format of the generated object files can be either ELF or a.out,
+specified by the command-line options `--emulation=crisaout' and
+`--emulation=criself'. The default is ELF (criself), unless `as' has
+been configured specifically for a.out by using the configuration name
+`cris-axis-aout'.
+
+ There are two different link-incompatible ELF object file variants
+for CRIS, for use in environments where symbols are expected to be
+prefixed by a leading `_' character and for environments without such a
+symbol prefix. The variant used for GNU/Linux port has no symbol
+prefix. Which variant to produce is specified by either of the options
+`--underscore' and `--no-underscore'. The default is `--underscore'.
+Since symbols in CRIS a.out objects are expected to have a `_' prefix,
+specifying `--no-underscore' when generating a.out objects is an error.
+Besides the object format difference, the effect of this option is to
+parse register names differently (*note crisnous::). The
+`--no-underscore' option makes a `$' register prefix mandatory.
+
+ The option `--pic' must be passed to `as' in order to recognize the
+symbol syntax used for ELF (SVR4 PIC) position-independent-code (*note
+crispic::). This will also affect expansion of instructions. The
+expansion with `--pic' will use PC-relative rather than (slightly
+faster) absolute addresses in those expansions. This option is only
+valid when generating ELF format object files.
+
+ The option `--march=ARCHITECTURE' specifies the recognized
+instruction set and recognized register names. It also controls the
+architecture type of the object file. Valid values for ARCHITECTURE
+are:
+`v0_v10'
+ All instructions and register names for any architecture variant
+ in the set v0...v10 are recognized. This is the default if the
+ target is configured as cris-*.
+
+`v10'
+ Only instructions and register names for CRIS v10 (as found in
+ ETRAX 100 LX) are recognized. This is the default if the target
+ is configured as crisv10-*.
+
+`v32'
+ Only instructions and register names for CRIS v32 (code name
+ Guinness) are recognized. This is the default if the target is
+ configured as crisv32-*. This value implies `--no-mul-bug-abort'.
+ (A subsequent `--mul-bug-abort' will turn it back on.)
+
+`common_v10_v32'
+ Only instructions with register names and addressing modes with
+ opcodes common to the v10 and v32 are recognized.
+
+ When `-N' is specified, `as' will emit a warning when a 16-bit
+branch instruction is expanded into a 32-bit multiple-instruction
+construct (*note CRIS-Expand::).
+
+ Some versions of the CRIS v10, for example in the Etrax 100 LX,
+contain a bug that causes destabilizing memory accesses when a multiply
+instruction is executed with certain values in the first operand just
+before a cache-miss. When the `--mul-bug-abort' command line option is
+active (the default value), `as' will refuse to assemble a file
+containing a multiply instruction at a dangerous offset, one that could
+be the last on a cache-line, or is in a section with insufficient
+alignment. This placement checking does not catch any case where the
+multiply instruction is dangerously placed because it is located in a
+delay-slot. The `--mul-bug-abort' command line option turns off the
+checking.
+
+
+File: as.info, Node: CRIS-Expand, Next: CRIS-Symbols, Prev: CRIS-Opts, Up: CRIS-Dependent
+
+9.7.2 Instruction expansion
+---------------------------
+
+`as' will silently choose an instruction that fits the operand size for
+`[register+constant]' operands. For example, the offset `127' in
+`move.d [r3+127],r4' fits in an instruction using a signed-byte offset.
+Similarly, `move.d [r2+32767],r1' will generate an instruction using a
+16-bit offset. For symbolic expressions and constants that do not fit
+in 16 bits including the sign bit, a 32-bit offset is generated.
+
+ For branches, `as' will expand from a 16-bit branch instruction into
+a sequence of instructions that can reach a full 32-bit address. Since
+this does not correspond to a single instruction, such expansions can
+optionally be warned about. *Note CRIS-Opts::.
+
+ If the operand is found to fit the range, a `lapc' mnemonic will
+translate to a `lapcq' instruction. Use `lapc.d' to force the 32-bit
+`lapc' instruction.
+
+ Similarly, the `addo' mnemonic will translate to the shortest
+fitting instruction of `addoq', `addo.w' and `addo.d', when used with a
+operand that is a constant known at assembly time.
+
+
+File: as.info, Node: CRIS-Symbols, Next: CRIS-Syntax, Prev: CRIS-Expand, Up: CRIS-Dependent
+
+9.7.3 Symbols
+-------------
+
+Some symbols are defined by the assembler. They're intended to be used
+in conditional assembly, for example:
+ .if ..asm.arch.cris.v32
+ CODE FOR CRIS V32
+ .elseif ..asm.arch.cris.common_v10_v32
+ CODE COMMON TO CRIS V32 AND CRIS V10
+ .elseif ..asm.arch.cris.v10 | ..asm.arch.cris.any_v0_v10
+ CODE FOR V10
+ .else
+ .error "Code needs to be added here."
+ .endif
+
+ These symbols are defined in the assembler, reflecting command-line
+options, either when specified or the default. They are always
+defined, to 0 or 1.
+`..asm.arch.cris.any_v0_v10'
+ This symbol is non-zero when `--march=v0_v10' is specified or the
+ default.
+
+`..asm.arch.cris.common_v10_v32'
+ Set according to the option `--march=common_v10_v32'.
+
+`..asm.arch.cris.v10'
+ Reflects the option `--march=v10'.
+
+`..asm.arch.cris.v32'
+ Corresponds to `--march=v10'.
+
+ Speaking of symbols, when a symbol is used in code, it can have a
+suffix modifying its value for use in position-independent code. *Note
+CRIS-Pic::.
+
+
+File: as.info, Node: CRIS-Syntax, Prev: CRIS-Symbols, Up: CRIS-Dependent
+
+9.7.4 Syntax
+------------
+
+There are different aspects of the CRIS assembly syntax.
+
+* Menu:
+
+* CRIS-Chars:: Special Characters
+* CRIS-Pic:: Position-Independent Code Symbols
+* CRIS-Regs:: Register Names
+* CRIS-Pseudos:: Assembler Directives
+
+
+File: as.info, Node: CRIS-Chars, Next: CRIS-Pic, Up: CRIS-Syntax
+
+9.7.4.1 Special Characters
+..........................
+
+The character `#' is a line comment character. It starts a comment if
+and only if it is placed at the beginning of a line.
+
+ A `;' character starts a comment anywhere on the line, causing all
+characters up to the end of the line to be ignored.
+
+ A `@' character is handled as a line separator equivalent to a
+logical new-line character (except in a comment), so separate
+instructions can be specified on a single line.
+
+
+File: as.info, Node: CRIS-Pic, Next: CRIS-Regs, Prev: CRIS-Chars, Up: CRIS-Syntax
+
+9.7.4.2 Symbols in position-independent code
+............................................
+
+When generating position-independent code (SVR4 PIC) for use in
+cris-axis-linux-gnu or crisv32-axis-linux-gnu shared libraries, symbol
+suffixes are used to specify what kind of run-time symbol lookup will
+be used, expressed in the object as different _relocation types_.
+Usually, all absolute symbol values must be located in a table, the
+_global offset table_, leaving the code position-independent;
+independent of values of global symbols and independent of the address
+of the code. The suffix modifies the value of the symbol, into for
+example an index into the global offset table where the real symbol
+value is entered, or a PC-relative value, or a value relative to the
+start of the global offset table. All symbol suffixes start with the
+character `:' (omitted in the list below). Every symbol use in code or
+a read-only section must therefore have a PIC suffix to enable a useful
+shared library to be created. Usually, these constructs must not be
+used with an additive constant offset as is usually allowed, i.e. no 4
+as in `symbol + 4' is allowed. This restriction is checked at
+link-time, not at assembly-time.
+
+`GOT'
+ Attaching this suffix to a symbol in an instruction causes the
+ symbol to be entered into the global offset table. The value is a
+ 32-bit index for that symbol into the global offset table. The
+ name of the corresponding relocation is `R_CRIS_32_GOT'. Example:
+ `move.d [$r0+extsym:GOT],$r9'
+
+`GOT16'
+ Same as for `GOT', but the value is a 16-bit index into the global
+ offset table. The corresponding relocation is `R_CRIS_16_GOT'.
+ Example: `move.d [$r0+asymbol:GOT16],$r10'
+
+`PLT'
+ This suffix is used for function symbols. It causes a _procedure
+ linkage table_, an array of code stubs, to be created at the time
+ the shared object is created or linked against, together with a
+ global offset table entry. The value is a pc-relative offset to
+ the corresponding stub code in the procedure linkage table. This
+ arrangement causes the run-time symbol resolver to be called to
+ look up and set the value of the symbol the first time the
+ function is called (at latest; depending environment variables).
+ It is only safe to leave the symbol unresolved this way if all
+ references are function calls. The name of the relocation is
+ `R_CRIS_32_PLT_PCREL'. Example: `add.d fnname:PLT,$pc'
+
+`PLTG'
+ Like PLT, but the value is relative to the beginning of the global
+ offset table. The relocation is `R_CRIS_32_PLT_GOTREL'. Example:
+ `move.d fnname:PLTG,$r3'
+
+`GOTPLT'
+ Similar to `PLT', but the value of the symbol is a 32-bit index
+ into the global offset table. This is somewhat of a mix between
+ the effect of the `GOT' and the `PLT' suffix; the difference to
+ `GOT' is that there will be a procedure linkage table entry
+ created, and that the symbol is assumed to be a function entry and
+ will be resolved by the run-time resolver as with `PLT'. The
+ relocation is `R_CRIS_32_GOTPLT'. Example: `jsr
+ [$r0+fnname:GOTPLT]'
+
+`GOTPLT16'
+ A variant of `GOTPLT' giving a 16-bit value. Its relocation name
+ is `R_CRIS_16_GOTPLT'. Example: `jsr [$r0+fnname:GOTPLT16]'
+
+`GOTOFF'
+ This suffix must only be attached to a local symbol, but may be
+ used in an expression adding an offset. The value is the address
+ of the symbol relative to the start of the global offset table.
+ The relocation name is `R_CRIS_32_GOTREL'. Example: `move.d
+ [$r0+localsym:GOTOFF],r3'
+
+
+File: as.info, Node: CRIS-Regs, Next: CRIS-Pseudos, Prev: CRIS-Pic, Up: CRIS-Syntax
+
+9.7.4.3 Register names
+......................
+
+A `$' character may always prefix a general or special register name in
+an instruction operand but is mandatory when the option
+`--no-underscore' is specified or when the `.syntax register_prefix'
+directive is in effect (*note crisnous::). Register names are
+case-insensitive.
+
+
+File: as.info, Node: CRIS-Pseudos, Prev: CRIS-Regs, Up: CRIS-Syntax
+
+9.7.4.4 Assembler Directives
+............................
+
+There are a few CRIS-specific pseudo-directives in addition to the
+generic ones. *Note Pseudo Ops::. Constants emitted by
+pseudo-directives are in little-endian order for CRIS. There is no
+support for floating-point-specific directives for CRIS.
+
+`.dword EXPRESSIONS'
+ The `.dword' directive is a synonym for `.int', expecting zero or
+ more EXPRESSIONS, separated by commas. For each expression, a
+ 32-bit little-endian constant is emitted.
+
+`.syntax ARGUMENT'
+ The `.syntax' directive takes as ARGUMENT one of the following
+ case-sensitive choices.
+
+ `no_register_prefix'
+ The `.syntax no_register_prefix' directive makes a `$'
+ character prefix on all registers optional. It overrides a
+ previous setting, including the corresponding effect of the
+ option `--no-underscore'. If this directive is used when
+ ordinary symbols do not have a `_' character prefix, care
+ must be taken to avoid ambiguities whether an operand is a
+ register or a symbol; using symbols with names the same as
+ general or special registers then invoke undefined behavior.
+
+ `register_prefix'
+ This directive makes a `$' character prefix on all registers
+ mandatory. It overrides a previous setting, including the
+ corresponding effect of the option `--underscore'.
+
+ `leading_underscore'
+ This is an assertion directive, emitting an error if the
+ `--no-underscore' option is in effect.
+
+ `no_leading_underscore'
+ This is the opposite of the `.syntax leading_underscore'
+ directive and emits an error if the option `--underscore' is
+ in effect.
+
+`.arch ARGUMENT'
+ This is an assertion directive, giving an error if the specified
+ ARGUMENT is not the same as the specified or default value for the
+ `--march=ARCHITECTURE' option (*note march-option::).
+
+
+
+File: as.info, Node: D10V-Dependent, Next: D30V-Dependent, Prev: CRIS-Dependent, Up: Machine Dependencies
+
+9.8 D10V Dependent Features
+===========================
+
+* Menu:
+
+* D10V-Opts:: D10V Options
+* D10V-Syntax:: Syntax
+* D10V-Float:: Floating Point
+* D10V-Opcodes:: Opcodes
+
+
+File: as.info, Node: D10V-Opts, Next: D10V-Syntax, Up: D10V-Dependent
+
+9.8.1 D10V Options
+------------------
+
+The Mitsubishi D10V version of `as' has a few machine dependent options.
+
+`-O'
+ The D10V can often execute two sub-instructions in parallel. When
+ this option is used, `as' will attempt to optimize its output by
+ detecting when instructions can be executed in parallel.
+
+`--nowarnswap'
+ To optimize execution performance, `as' will sometimes swap the
+ order of instructions. Normally this generates a warning. When
+ this option is used, no warning will be generated when
+ instructions are swapped.
+
+`--gstabs-packing'
+`--no-gstabs-packing'
+ `as' packs adjacent short instructions into a single packed
+ instruction. `--no-gstabs-packing' turns instruction packing off if
+ `--gstabs' is specified as well; `--gstabs-packing' (the default)
+ turns instruction packing on even when `--gstabs' is specified.
+
+
+File: as.info, Node: D10V-Syntax, Next: D10V-Float, Prev: D10V-Opts, Up: D10V-Dependent
+
+9.8.2 Syntax
+------------
+
+The D10V syntax is based on the syntax in Mitsubishi's D10V
+architecture manual. The differences are detailed below.
+
+* Menu:
+
+* D10V-Size:: Size Modifiers
+* D10V-Subs:: Sub-Instructions
+* D10V-Chars:: Special Characters
+* D10V-Regs:: Register Names
+* D10V-Addressing:: Addressing Modes
+* D10V-Word:: @WORD Modifier
+
+
+File: as.info, Node: D10V-Size, Next: D10V-Subs, Up: D10V-Syntax
+
+9.8.2.1 Size Modifiers
+......................
+
+The D10V version of `as' uses the instruction names in the D10V
+Architecture Manual. However, the names in the manual are sometimes
+ambiguous. There are instruction names that can assemble to a short or
+long form opcode. How does the assembler pick the correct form? `as'
+will always pick the smallest form if it can. When dealing with a
+symbol that is not defined yet when a line is being assembled, it will
+always use the long form. If you need to force the assembler to use
+either the short or long form of the instruction, you can append either
+`.s' (short) or `.l' (long) to it. For example, if you are writing an
+assembly program and you want to do a branch to a symbol that is
+defined later in your program, you can write `bra.s foo'. Objdump
+and GDB will always append `.s' or `.l' to instructions which have both
+short and long forms.
+
+
+File: as.info, Node: D10V-Subs, Next: D10V-Chars, Prev: D10V-Size, Up: D10V-Syntax
+
+9.8.2.2 Sub-Instructions
+........................
+
+The D10V assembler takes as input a series of instructions, either
+one-per-line, or in the special two-per-line format described in the
+next section. Some of these instructions will be short-form or
+sub-instructions. These sub-instructions can be packed into a single
+instruction. The assembler will do this automatically. It will also
+detect when it should not pack instructions. For example, when a label
+is defined, the next instruction will never be packaged with the
+previous one. Whenever a branch and link instruction is called, it
+will not be packaged with the next instruction so the return address
+will be valid. Nops are automatically inserted when necessary.
+
+ If you do not want the assembler automatically making these
+decisions, you can control the packaging and execution type (parallel
+or sequential) with the special execution symbols described in the next
+section.
+
+
+File: as.info, Node: D10V-Chars, Next: D10V-Regs, Prev: D10V-Subs, Up: D10V-Syntax
+
+9.8.2.3 Special Characters
+..........................
+
+A semicolon (`;') can be used anywhere on a line to start a comment
+that extends to the end of the line.
+
+ If a `#' appears as the first character of a line, the whole line is
+treated as a comment, but in this case the line could also be a logical
+line number directive (*note Comments::) or a preprocessor control
+command (*note Preprocessing::).
+
+ Sub-instructions may be executed in order, in reverse-order, or in
+parallel. Instructions listed in the standard one-per-line format will
+be executed sequentially. To specify the executing order, use the
+following symbols:
+`->'
+ Sequential with instruction on the left first.
+
+`<-'
+ Sequential with instruction on the right first.
+
+`||'
+ Parallel
+ The D10V syntax allows either one instruction per line, one
+instruction per line with the execution symbol, or two instructions per
+line. For example
+`abs a1 -> abs r0'
+ Execute these sequentially. The instruction on the right is in
+ the right container and is executed second.
+
+`abs r0 <- abs a1'
+ Execute these reverse-sequentially. The instruction on the right
+ is in the right container, and is executed first.
+
+`ld2w r2,@r8+ || mac a0,r0,r7'
+ Execute these in parallel.
+
+`ld2w r2,@r8+ ||'
+`mac a0,r0,r7'
+ Two-line format. Execute these in parallel.
+
+`ld2w r2,@r8+'
+`mac a0,r0,r7'
+ Two-line format. Execute these sequentially. Assembler will put
+ them in the proper containers.
+
+`ld2w r2,@r8+ ->'
+`mac a0,r0,r7'
+ Two-line format. Execute these sequentially. Same as above but
+ second instruction will always go into right container.
+ Since `$' has no special meaning, you may use it in symbol names.
+
+
+File: as.info, Node: D10V-Regs, Next: D10V-Addressing, Prev: D10V-Chars, Up: D10V-Syntax
+
+9.8.2.4 Register Names
+......................
+
+You can use the predefined symbols `r0' through `r15' to refer to the
+D10V registers. You can also use `sp' as an alias for `r15'. The
+accumulators are `a0' and `a1'. There are special register-pair names
+that may optionally be used in opcodes that require even-numbered
+registers. Register names are not case sensitive.
+
+ Register Pairs
+`r0-r1'
+
+`r2-r3'
+
+`r4-r5'
+
+`r6-r7'
+
+`r8-r9'
+
+`r10-r11'
+
+`r12-r13'
+
+`r14-r15'
+
+ The D10V also has predefined symbols for these control registers and
+status bits:
+`psw'
+ Processor Status Word
+
+`bpsw'
+ Backup Processor Status Word
+
+`pc'
+ Program Counter
+
+`bpc'
+ Backup Program Counter
+
+`rpt_c'
+ Repeat Count
+
+`rpt_s'
+ Repeat Start address
+
+`rpt_e'
+ Repeat End address
+
+`mod_s'
+ Modulo Start address
+
+`mod_e'
+ Modulo End address
+
+`iba'
+ Instruction Break Address
+
+`f0'
+ Flag 0
+
+`f1'
+ Flag 1
+
+`c'
+ Carry flag
+
+
+File: as.info, Node: D10V-Addressing, Next: D10V-Word, Prev: D10V-Regs, Up: D10V-Syntax
+
+9.8.2.5 Addressing Modes
+........................
+
+`as' understands the following addressing modes for the D10V. `RN' in
+the following refers to any of the numbered registers, but _not_ the
+control registers.
+`RN'
+ Register direct
+
+`@RN'
+ Register indirect
+
+`@RN+'
+ Register indirect with post-increment
+
+`@RN-'
+ Register indirect with post-decrement
+
+`@-SP'
+ Register indirect with pre-decrement
+
+`@(DISP, RN)'
+ Register indirect with displacement
+
+`ADDR'
+ PC relative address (for branch or rep).
+
+`#IMM'
+ Immediate data (the `#' is optional and ignored)
+
+
+File: as.info, Node: D10V-Word, Prev: D10V-Addressing, Up: D10V-Syntax
+
+9.8.2.6 @WORD Modifier
+......................
+
+Any symbol followed by `@word' will be replaced by the symbol's value
+shifted right by 2. This is used in situations such as loading a
+register with the address of a function (or any other code fragment).
+For example, if you want to load a register with the location of the
+function `main' then jump to that function, you could do it as follows:
+ ldi r2, main@word
+ jmp r2
+
+
+File: as.info, Node: D10V-Float, Next: D10V-Opcodes, Prev: D10V-Syntax, Up: D10V-Dependent
+
+9.8.3 Floating Point
+--------------------
+
+The D10V has no hardware floating point, but the `.float' and `.double'
+directives generates IEEE floating-point numbers for compatibility with
+other development tools.
+
+
+File: as.info, Node: D10V-Opcodes, Prev: D10V-Float, Up: D10V-Dependent
+
+9.8.4 Opcodes
+-------------
+
+For detailed information on the D10V machine instruction set, see `D10V
+Architecture: A VLIW Microprocessor for Multimedia Applications'
+(Mitsubishi Electric Corp.). `as' implements all the standard D10V
+opcodes. The only changes are those described in the section on size
+modifiers
+
+
+File: as.info, Node: D30V-Dependent, Next: H8/300-Dependent, Prev: D10V-Dependent, Up: Machine Dependencies
+
+9.9 D30V Dependent Features
+===========================
+
+* Menu:
+
+* D30V-Opts:: D30V Options
+* D30V-Syntax:: Syntax
+* D30V-Float:: Floating Point
+* D30V-Opcodes:: Opcodes
+
+
+File: as.info, Node: D30V-Opts, Next: D30V-Syntax, Up: D30V-Dependent
+
+9.9.1 D30V Options
+------------------
+
+The Mitsubishi D30V version of `as' has a few machine dependent options.
+
+`-O'
+ The D30V can often execute two sub-instructions in parallel. When
+ this option is used, `as' will attempt to optimize its output by
+ detecting when instructions can be executed in parallel.
+
+`-n'
+ When this option is used, `as' will issue a warning every time it
+ adds a nop instruction.
+
+`-N'
+ When this option is used, `as' will issue a warning if it needs to
+ insert a nop after a 32-bit multiply before a load or 16-bit
+ multiply instruction.
+
+
+File: as.info, Node: D30V-Syntax, Next: D30V-Float, Prev: D30V-Opts, Up: D30V-Dependent
+
+9.9.2 Syntax
+------------
+
+The D30V syntax is based on the syntax in Mitsubishi's D30V
+architecture manual. The differences are detailed below.
+
+* Menu:
+
+* D30V-Size:: Size Modifiers
+* D30V-Subs:: Sub-Instructions
+* D30V-Chars:: Special Characters
+* D30V-Guarded:: Guarded Execution
+* D30V-Regs:: Register Names
+* D30V-Addressing:: Addressing Modes
+
+
+File: as.info, Node: D30V-Size, Next: D30V-Subs, Up: D30V-Syntax
+
+9.9.2.1 Size Modifiers
+......................
+
+The D30V version of `as' uses the instruction names in the D30V
+Architecture Manual. However, the names in the manual are sometimes
+ambiguous. There are instruction names that can assemble to a short or
+long form opcode. How does the assembler pick the correct form? `as'
+will always pick the smallest form if it can. When dealing with a
+symbol that is not defined yet when a line is being assembled, it will
+always use the long form. If you need to force the assembler to use
+either the short or long form of the instruction, you can append either
+`.s' (short) or `.l' (long) to it. For example, if you are writing an
+assembly program and you want to do a branch to a symbol that is
+defined later in your program, you can write `bra.s foo'. Objdump and
+GDB will always append `.s' or `.l' to instructions which have both
+short and long forms.
+
+
+File: as.info, Node: D30V-Subs, Next: D30V-Chars, Prev: D30V-Size, Up: D30V-Syntax
+
+9.9.2.2 Sub-Instructions
+........................
+
+The D30V assembler takes as input a series of instructions, either
+one-per-line, or in the special two-per-line format described in the
+next section. Some of these instructions will be short-form or
+sub-instructions. These sub-instructions can be packed into a single
+instruction. The assembler will do this automatically. It will also
+detect when it should not pack instructions. For example, when a label
+is defined, the next instruction will never be packaged with the
+previous one. Whenever a branch and link instruction is called, it
+will not be packaged with the next instruction so the return address
+will be valid. Nops are automatically inserted when necessary.
+
+ If you do not want the assembler automatically making these
+decisions, you can control the packaging and execution type (parallel
+or sequential) with the special execution symbols described in the next
+section.
+
+
+File: as.info, Node: D30V-Chars, Next: D30V-Guarded, Prev: D30V-Subs, Up: D30V-Syntax
+
+9.9.2.3 Special Characters
+..........................
+
+A semicolon (`;') can be used anywhere on a line to start a comment
+that extends to the end of the line.
+
+ If a `#' appears as the first character of a line, the whole line is
+treated as a comment, but in this case the line could also be a logical
+line number directive (*note Comments::) or a preprocessor control
+command (*note Preprocessing::).
+
+ Sub-instructions may be executed in order, in reverse-order, or in
+parallel. Instructions listed in the standard one-per-line format will
+be executed sequentially unless you use the `-O' option.
+
+ To specify the executing order, use the following symbols:
+`->'
+ Sequential with instruction on the left first.
+
+`<-'
+ Sequential with instruction on the right first.
+
+`||'
+ Parallel
+
+ The D30V syntax allows either one instruction per line, one
+instruction per line with the execution symbol, or two instructions per
+line. For example
+`abs r2,r3 -> abs r4,r5'
+ Execute these sequentially. The instruction on the right is in
+ the right container and is executed second.
+
+`abs r2,r3 <- abs r4,r5'
+ Execute these reverse-sequentially. The instruction on the right
+ is in the right container, and is executed first.
+
+`abs r2,r3 || abs r4,r5'
+ Execute these in parallel.
+
+`ldw r2,@(r3,r4) ||'
+`mulx r6,r8,r9'
+ Two-line format. Execute these in parallel.
+
+`mulx a0,r8,r9'
+`stw r2,@(r3,r4)'
+ Two-line format. Execute these sequentially unless `-O' option is
+ used. If the `-O' option is used, the assembler will determine if
+ the instructions could be done in parallel (the above two
+ instructions can be done in parallel), and if so, emit them as
+ parallel instructions. The assembler will put them in the proper
+ containers. In the above example, the assembler will put the
+ `stw' instruction in left container and the `mulx' instruction in
+ the right container.
+
+`stw r2,@(r3,r4) ->'
+`mulx a0,r8,r9'
+ Two-line format. Execute the `stw' instruction followed by the
+ `mulx' instruction sequentially. The first instruction goes in the
+ left container and the second instruction goes into right
+ container. The assembler will give an error if the machine
+ ordering constraints are violated.
+
+`stw r2,@(r3,r4) <-'
+`mulx a0,r8,r9'
+ Same as previous example, except that the `mulx' instruction is
+ executed before the `stw' instruction.
+
+ Since `$' has no special meaning, you may use it in symbol names.
+
+
+File: as.info, Node: D30V-Guarded, Next: D30V-Regs, Prev: D30V-Chars, Up: D30V-Syntax
+
+9.9.2.4 Guarded Execution
+.........................
+
+`as' supports the full range of guarded execution directives for each
+instruction. Just append the directive after the instruction proper.
+The directives are:
+
+`/tx'
+ Execute the instruction if flag f0 is true.
+
+`/fx'
+ Execute the instruction if flag f0 is false.
+
+`/xt'
+ Execute the instruction if flag f1 is true.
+
+`/xf'
+ Execute the instruction if flag f1 is false.
+
+`/tt'
+ Execute the instruction if both flags f0 and f1 are true.
+
+`/tf'
+ Execute the instruction if flag f0 is true and flag f1 is false.
+
+
+File: as.info, Node: D30V-Regs, Next: D30V-Addressing, Prev: D30V-Guarded, Up: D30V-Syntax
+
+9.9.2.5 Register Names
+......................
+
+You can use the predefined symbols `r0' through `r63' to refer to the
+D30V registers. You can also use `sp' as an alias for `r63' and `link'
+as an alias for `r62'. The accumulators are `a0' and `a1'.
+
+ The D30V also has predefined symbols for these control registers and
+status bits:
+`psw'
+ Processor Status Word
+
+`bpsw'
+ Backup Processor Status Word
+
+`pc'
+ Program Counter
+
+`bpc'
+ Backup Program Counter
+
+`rpt_c'
+ Repeat Count
+
+`rpt_s'
+ Repeat Start address
+
+`rpt_e'
+ Repeat End address
+
+`mod_s'
+ Modulo Start address
+
+`mod_e'
+ Modulo End address
+
+`iba'
+ Instruction Break Address
+
+`f0'
+ Flag 0
+
+`f1'
+ Flag 1
+
+`f2'
+ Flag 2
+
+`f3'
+ Flag 3
+
+`f4'
+ Flag 4
+
+`f5'
+ Flag 5
+
+`f6'
+ Flag 6
+
+`f7'
+ Flag 7
+
+`s'
+ Same as flag 4 (saturation flag)
+
+`v'
+ Same as flag 5 (overflow flag)
+
+`va'
+ Same as flag 6 (sticky overflow flag)
+
+`c'
+ Same as flag 7 (carry/borrow flag)
+
+`b'
+ Same as flag 7 (carry/borrow flag)
+
+
+File: as.info, Node: D30V-Addressing, Prev: D30V-Regs, Up: D30V-Syntax
+
+9.9.2.6 Addressing Modes
+........................
+
+`as' understands the following addressing modes for the D30V. `RN' in
+the following refers to any of the numbered registers, but _not_ the
+control registers.
+`RN'
+ Register direct
+
+`@RN'
+ Register indirect
+
+`@RN+'
+ Register indirect with post-increment
+
+`@RN-'
+ Register indirect with post-decrement
+
+`@-SP'
+ Register indirect with pre-decrement
+
+`@(DISP, RN)'
+ Register indirect with displacement
+
+`ADDR'
+ PC relative address (for branch or rep).
+
+`#IMM'
+ Immediate data (the `#' is optional and ignored)
+
+
+File: as.info, Node: D30V-Float, Next: D30V-Opcodes, Prev: D30V-Syntax, Up: D30V-Dependent
+
+9.9.3 Floating Point
+--------------------
+
+The D30V has no hardware floating point, but the `.float' and `.double'
+directives generates IEEE floating-point numbers for compatibility with
+other development tools.
+
+
+File: as.info, Node: D30V-Opcodes, Prev: D30V-Float, Up: D30V-Dependent
+
+9.9.4 Opcodes
+-------------
+
+For detailed information on the D30V machine instruction set, see `D30V
+Architecture: A VLIW Microprocessor for Multimedia Applications'
+(Mitsubishi Electric Corp.). `as' implements all the standard D30V
+opcodes. The only changes are those described in the section on size
+modifiers
+
+
+File: as.info, Node: H8/300-Dependent, Next: HPPA-Dependent, Prev: D30V-Dependent, Up: Machine Dependencies
+
+9.10 H8/300 Dependent Features
+==============================
+
+* Menu:
+
+* H8/300 Options:: Options
+* H8/300 Syntax:: Syntax
+* H8/300 Floating Point:: Floating Point
+* H8/300 Directives:: H8/300 Machine Directives
+* H8/300 Opcodes:: Opcodes
+
+
+File: as.info, Node: H8/300 Options, Next: H8/300 Syntax, Up: H8/300-Dependent
+
+9.10.1 Options
+--------------
+
+The Renesas H8/300 version of `as' has one machine-dependent option:
+
+`-h-tick-hex'
+ Support H'00 style hex constants in addition to 0x00 style.
+
+
+
+File: as.info, Node: H8/300 Syntax, Next: H8/300 Floating Point, Prev: H8/300 Options, Up: H8/300-Dependent
+
+9.10.2 Syntax
+-------------
+
+* Menu:
+
+* H8/300-Chars:: Special Characters
+* H8/300-Regs:: Register Names
+* H8/300-Addressing:: Addressing Modes
+
+
+File: as.info, Node: H8/300-Chars, Next: H8/300-Regs, Up: H8/300 Syntax
+
+9.10.2.1 Special Characters
+...........................
+
+`;' is the line comment character.
+
+ `$' can be used instead of a newline to separate statements.
+Therefore _you may not use `$' in symbol names_ on the H8/300.
+
+
+File: as.info, Node: H8/300-Regs, Next: H8/300-Addressing, Prev: H8/300-Chars, Up: H8/300 Syntax
+
+9.10.2.2 Register Names
+.......................
+
+You can use predefined symbols of the form `rNh' and `rNl' to refer to
+the H8/300 registers as sixteen 8-bit general-purpose registers. N is
+a digit from `0' to `7'); for instance, both `r0h' and `r7l' are valid
+register names.
+
+ You can also use the eight predefined symbols `rN' to refer to the
+H8/300 registers as 16-bit registers (you must use this form for
+addressing).
+
+ On the H8/300H, you can also use the eight predefined symbols `erN'
+(`er0' ... `er7') to refer to the 32-bit general purpose registers.
+
+ The two control registers are called `pc' (program counter; a 16-bit
+register, except on the H8/300H where it is 24 bits) and `ccr'
+(condition code register; an 8-bit register). `r7' is used as the
+stack pointer, and can also be called `sp'.
+
+
+File: as.info, Node: H8/300-Addressing, Prev: H8/300-Regs, Up: H8/300 Syntax
+
+9.10.2.3 Addressing Modes
+.........................
+
+as understands the following addressing modes for the H8/300:
+`rN'
+ Register direct
+
+`@rN'
+ Register indirect
+
+`@(D, rN)'
+`@(D:16, rN)'
+`@(D:24, rN)'
+ Register indirect: 16-bit or 24-bit displacement D from register
+ N. (24-bit displacements are only meaningful on the H8/300H.)
+
+`@rN+'
+ Register indirect with post-increment
+
+`@-rN'
+ Register indirect with pre-decrement
+
+``@'AA'
+``@'AA:8'
+``@'AA:16'
+``@'AA:24'
+ Absolute address `aa'. (The address size `:24' only makes sense
+ on the H8/300H.)
+
+`#XX'
+`#XX:8'
+`#XX:16'
+`#XX:32'
+ Immediate data XX. You may specify the `:8', `:16', or `:32' for
+ clarity, if you wish; but `as' neither requires this nor uses
+ it--the data size required is taken from context.
+
+``@'`@'AA'
+``@'`@'AA:8'
+ Memory indirect. You may specify the `:8' for clarity, if you
+ wish; but `as' neither requires this nor uses it.
+
+
+File: as.info, Node: H8/300 Floating Point, Next: H8/300 Directives, Prev: H8/300 Syntax, Up: H8/300-Dependent
+
+9.10.3 Floating Point
+---------------------
+
+The H8/300 family has no hardware floating point, but the `.float'
+directive generates IEEE floating-point numbers for compatibility with
+other development tools.
+
+
+File: as.info, Node: H8/300 Directives, Next: H8/300 Opcodes, Prev: H8/300 Floating Point, Up: H8/300-Dependent
+
+9.10.4 H8/300 Machine Directives
+--------------------------------
+
+`as' has the following machine-dependent directives for the H8/300:
+
+`.h8300h'
+ Recognize and emit additional instructions for the H8/300H
+ variant, and also make `.int' emit 32-bit numbers rather than the
+ usual (16-bit) for the H8/300 family.
+
+`.h8300s'
+ Recognize and emit additional instructions for the H8S variant, and
+ also make `.int' emit 32-bit numbers rather than the usual (16-bit)
+ for the H8/300 family.
+
+`.h8300hn'
+ Recognize and emit additional instructions for the H8/300H variant
+ in normal mode, and also make `.int' emit 32-bit numbers rather
+ than the usual (16-bit) for the H8/300 family.
+
+`.h8300sn'
+ Recognize and emit additional instructions for the H8S variant in
+ normal mode, and also make `.int' emit 32-bit numbers rather than
+ the usual (16-bit) for the H8/300 family.
+
+ On the H8/300 family (including the H8/300H) `.word' directives
+generate 16-bit numbers.
+
+
+File: as.info, Node: H8/300 Opcodes, Prev: H8/300 Directives, Up: H8/300-Dependent
+
+9.10.5 Opcodes
+--------------
+
+For detailed information on the H8/300 machine instruction set, see
+`H8/300 Series Programming Manual'. For information specific to the
+H8/300H, see `H8/300H Series Programming Manual' (Renesas).
+
+ `as' implements all the standard H8/300 opcodes. No additional
+pseudo-instructions are needed on this family.
+
+ The following table summarizes the H8/300 opcodes, and their
+arguments. Entries marked `*' are opcodes used only on the H8/300H.
+
+ Legend:
+ Rs source register
+ Rd destination register
+ abs absolute address
+ imm immediate data
+ disp:N N-bit displacement from a register
+ pcrel:N N-bit displacement relative to program counter
+
+ add.b #imm,rd * andc #imm,ccr
+ add.b rs,rd band #imm,rd
+ add.w rs,rd band #imm,@rd
+ * add.w #imm,rd band #imm,@abs:8
+ * add.l rs,rd bra pcrel:8
+ * add.l #imm,rd * bra pcrel:16
+ adds #imm,rd bt pcrel:8
+ addx #imm,rd * bt pcrel:16
+ addx rs,rd brn pcrel:8
+ and.b #imm,rd * brn pcrel:16
+ and.b rs,rd bf pcrel:8
+ * and.w rs,rd * bf pcrel:16
+ * and.w #imm,rd bhi pcrel:8
+ * and.l #imm,rd * bhi pcrel:16
+ * and.l rs,rd bls pcrel:8
+
+ * bls pcrel:16 bld #imm,rd
+ bcc pcrel:8 bld #imm,@rd
+ * bcc pcrel:16 bld #imm,@abs:8
+ bhs pcrel:8 bnot #imm,rd
+ * bhs pcrel:16 bnot #imm,@rd
+ bcs pcrel:8 bnot #imm,@abs:8
+ * bcs pcrel:16 bnot rs,rd
+ blo pcrel:8 bnot rs,@rd
+ * blo pcrel:16 bnot rs,@abs:8
+ bne pcrel:8 bor #imm,rd
+ * bne pcrel:16 bor #imm,@rd
+ beq pcrel:8 bor #imm,@abs:8
+ * beq pcrel:16 bset #imm,rd
+ bvc pcrel:8 bset #imm,@rd
+ * bvc pcrel:16 bset #imm,@abs:8
+ bvs pcrel:8 bset rs,rd
+ * bvs pcrel:16 bset rs,@rd
+ bpl pcrel:8 bset rs,@abs:8
+ * bpl pcrel:16 bsr pcrel:8
+ bmi pcrel:8 bsr pcrel:16
+ * bmi pcrel:16 bst #imm,rd
+ bge pcrel:8 bst #imm,@rd
+ * bge pcrel:16 bst #imm,@abs:8
+ blt pcrel:8 btst #imm,rd
+ * blt pcrel:16 btst #imm,@rd
+ bgt pcrel:8 btst #imm,@abs:8
+ * bgt pcrel:16 btst rs,rd
+ ble pcrel:8 btst rs,@rd
+ * ble pcrel:16 btst rs,@abs:8
+ bclr #imm,rd bxor #imm,rd
+ bclr #imm,@rd bxor #imm,@rd
+ bclr #imm,@abs:8 bxor #imm,@abs:8
+ bclr rs,rd cmp.b #imm,rd
+ bclr rs,@rd cmp.b rs,rd
+ bclr rs,@abs:8 cmp.w rs,rd
+ biand #imm,rd cmp.w rs,rd
+ biand #imm,@rd * cmp.w #imm,rd
+ biand #imm,@abs:8 * cmp.l #imm,rd
+ bild #imm,rd * cmp.l rs,rd
+ bild #imm,@rd daa rs
+ bild #imm,@abs:8 das rs
+ bior #imm,rd dec.b rs
+ bior #imm,@rd * dec.w #imm,rd
+ bior #imm,@abs:8 * dec.l #imm,rd
+ bist #imm,rd divxu.b rs,rd
+ bist #imm,@rd * divxu.w rs,rd
+ bist #imm,@abs:8 * divxs.b rs,rd
+ bixor #imm,rd * divxs.w rs,rd
+ bixor #imm,@rd eepmov
+ bixor #imm,@abs:8 * eepmovw
+
+ * exts.w rd mov.w rs,@abs:16
+ * exts.l rd * mov.l #imm,rd
+ * extu.w rd * mov.l rs,rd
+ * extu.l rd * mov.l @rs,rd
+ inc rs * mov.l @(disp:16,rs),rd
+ * inc.w #imm,rd * mov.l @(disp:24,rs),rd
+ * inc.l #imm,rd * mov.l @rs+,rd
+ jmp @rs * mov.l @abs:16,rd
+ jmp abs * mov.l @abs:24,rd
+ jmp @@abs:8 * mov.l rs,@rd
+ jsr @rs * mov.l rs,@(disp:16,rd)
+ jsr abs * mov.l rs,@(disp:24,rd)
+ jsr @@abs:8 * mov.l rs,@-rd
+ ldc #imm,ccr * mov.l rs,@abs:16
+ ldc rs,ccr * mov.l rs,@abs:24
+ * ldc @abs:16,ccr movfpe @abs:16,rd
+ * ldc @abs:24,ccr movtpe rs,@abs:16
+ * ldc @(disp:16,rs),ccr mulxu.b rs,rd
+ * ldc @(disp:24,rs),ccr * mulxu.w rs,rd
+ * ldc @rs+,ccr * mulxs.b rs,rd
+ * ldc @rs,ccr * mulxs.w rs,rd
+ * mov.b @(disp:24,rs),rd neg.b rs
+ * mov.b rs,@(disp:24,rd) * neg.w rs
+ mov.b @abs:16,rd * neg.l rs
+ mov.b rs,rd nop
+ mov.b @abs:8,rd not.b rs
+ mov.b rs,@abs:8 * not.w rs
+ mov.b rs,rd * not.l rs
+ mov.b #imm,rd or.b #imm,rd
+ mov.b @rs,rd or.b rs,rd
+ mov.b @(disp:16,rs),rd * or.w #imm,rd
+ mov.b @rs+,rd * or.w rs,rd
+ mov.b @abs:8,rd * or.l #imm,rd
+ mov.b rs,@rd * or.l rs,rd
+ mov.b rs,@(disp:16,rd) orc #imm,ccr
+ mov.b rs,@-rd pop.w rs
+ mov.b rs,@abs:8 * pop.l rs
+ mov.w rs,@rd push.w rs
+ * mov.w @(disp:24,rs),rd * push.l rs
+ * mov.w rs,@(disp:24,rd) rotl.b rs
+ * mov.w @abs:24,rd * rotl.w rs
+ * mov.w rs,@abs:24 * rotl.l rs
+ mov.w rs,rd rotr.b rs
+ mov.w #imm,rd * rotr.w rs
+ mov.w @rs,rd * rotr.l rs
+ mov.w @(disp:16,rs),rd rotxl.b rs
+ mov.w @rs+,rd * rotxl.w rs
+ mov.w @abs:16,rd * rotxl.l rs
+ mov.w rs,@(disp:16,rd) rotxr.b rs
+ mov.w rs,@-rd * rotxr.w rs
+
+ * rotxr.l rs * stc ccr,@(disp:24,rd)
+ bpt * stc ccr,@-rd
+ rte * stc ccr,@abs:16
+ rts * stc ccr,@abs:24
+ shal.b rs sub.b rs,rd
+ * shal.w rs sub.w rs,rd
+ * shal.l rs * sub.w #imm,rd
+ shar.b rs * sub.l rs,rd
+ * shar.w rs * sub.l #imm,rd
+ * shar.l rs subs #imm,rd
+ shll.b rs subx #imm,rd
+ * shll.w rs subx rs,rd
+ * shll.l rs * trapa #imm
+ shlr.b rs xor #imm,rd
+ * shlr.w rs xor rs,rd
+ * shlr.l rs * xor.w #imm,rd
+ sleep * xor.w rs,rd
+ stc ccr,rd * xor.l #imm,rd
+ * stc ccr,@rs * xor.l rs,rd
+ * stc ccr,@(disp:16,rd) xorc #imm,ccr
+
+ Four H8/300 instructions (`add', `cmp', `mov', `sub') are defined
+with variants using the suffixes `.b', `.w', and `.l' to specify the
+size of a memory operand. `as' supports these suffixes, but does not
+require them; since one of the operands is always a register, `as' can
+deduce the correct size.
+
+ For example, since `r0' refers to a 16-bit register,
+ mov r0,@foo
+is equivalent to
+ mov.w r0,@foo
+
+ If you use the size suffixes, `as' issues a warning when the suffix
+and the register size do not match.
+
+
+File: as.info, Node: HPPA-Dependent, Next: ESA/390-Dependent, Prev: H8/300-Dependent, Up: Machine Dependencies
+
+9.11 HPPA Dependent Features
+============================
+
+* Menu:
+
+* HPPA Notes:: Notes
+* HPPA Options:: Options
+* HPPA Syntax:: Syntax
+* HPPA Floating Point:: Floating Point
+* HPPA Directives:: HPPA Machine Directives
+* HPPA Opcodes:: Opcodes
+
+
+File: as.info, Node: HPPA Notes, Next: HPPA Options, Up: HPPA-Dependent
+
+9.11.1 Notes
+------------
+
+As a back end for GNU CC `as' has been throughly tested and should work
+extremely well. We have tested it only minimally on hand written
+assembly code and no one has tested it much on the assembly output from
+the HP compilers.
+
+ The format of the debugging sections has changed since the original
+`as' port (version 1.3X) was released; therefore, you must rebuild all
+HPPA objects and libraries with the new assembler so that you can debug
+the final executable.
+
+ The HPPA `as' port generates a small subset of the relocations
+available in the SOM and ELF object file formats. Additional relocation
+support will be added as it becomes necessary.
+
+
+File: as.info, Node: HPPA Options, Next: HPPA Syntax, Prev: HPPA Notes, Up: HPPA-Dependent
+
+9.11.2 Options
+--------------
+
+`as' has no machine-dependent command-line options for the HPPA.
+
+
+File: as.info, Node: HPPA Syntax, Next: HPPA Floating Point, Prev: HPPA Options, Up: HPPA-Dependent
+
+9.11.3 Syntax
+-------------
+
+The assembler syntax closely follows the HPPA instruction set reference
+manual; assembler directives and general syntax closely follow the HPPA
+assembly language reference manual, with a few noteworthy differences.
+
+ First, a colon may immediately follow a label definition. This is
+simply for compatibility with how most assembly language programmers
+write code.
+
+ Some obscure expression parsing problems may affect hand written
+code which uses the `spop' instructions, or code which makes significant
+use of the `!' line separator.
+
+ `as' is much less forgiving about missing arguments and other
+similar oversights than the HP assembler. `as' notifies you of missing
+arguments as syntax errors; this is regarded as a feature, not a bug.
+
+ Finally, `as' allows you to use an external symbol without
+explicitly importing the symbol. _Warning:_ in the future this will be
+an error for HPPA targets.
+
+ Special characters for HPPA targets include:
+
+ `;' is the line comment character.
+
+ `!' can be used instead of a newline to separate statements.
+
+ Since `$' has no special meaning, you may use it in symbol names.
+
+
+File: as.info, Node: HPPA Floating Point, Next: HPPA Directives, Prev: HPPA Syntax, Up: HPPA-Dependent
+
+9.11.4 Floating Point
+---------------------
+
+The HPPA family uses IEEE floating-point numbers.
+
+
+File: as.info, Node: HPPA Directives, Next: HPPA Opcodes, Prev: HPPA Floating Point, Up: HPPA-Dependent
+
+9.11.5 HPPA Assembler Directives
+--------------------------------
+
+`as' for the HPPA supports many additional directives for compatibility
+with the native assembler. This section describes them only briefly.
+For detailed information on HPPA-specific assembler directives, see
+`HP9000 Series 800 Assembly Language Reference Manual' (HP 92432-90001).
+
+ `as' does _not_ support the following assembler directives described
+in the HP manual:
+
+ .endm .liston
+ .enter .locct
+ .leave .macro
+ .listoff
+
+ Beyond those implemented for compatibility, `as' supports one
+additional assembler directive for the HPPA: `.param'. It conveys
+register argument locations for static functions. Its syntax closely
+follows the `.export' directive.
+
+ These are the additional directives in `as' for the HPPA:
+
+`.block N'
+`.blockz N'
+ Reserve N bytes of storage, and initialize them to zero.
+
+`.call'
+ Mark the beginning of a procedure call. Only the special case
+ with _no arguments_ is allowed.
+
+`.callinfo [ PARAM=VALUE, ... ] [ FLAG, ... ]'
+ Specify a number of parameters and flags that define the
+ environment for a procedure.
+
+ PARAM may be any of `frame' (frame size), `entry_gr' (end of
+ general register range), `entry_fr' (end of float register range),
+ `entry_sr' (end of space register range).
+
+ The values for FLAG are `calls' or `caller' (proc has
+ subroutines), `no_calls' (proc does not call subroutines),
+ `save_rp' (preserve return pointer), `save_sp' (proc preserves
+ stack pointer), `no_unwind' (do not unwind this proc), `hpux_int'
+ (proc is interrupt routine).
+
+`.code'
+ Assemble into the standard section called `$TEXT$', subsection
+ `$CODE$'.
+
+`.copyright "STRING"'
+ In the SOM object format, insert STRING into the object code,
+ marked as a copyright string.
+
+`.copyright "STRING"'
+ In the ELF object format, insert STRING into the object code,
+ marked as a version string.
+
+`.enter'
+ Not yet supported; the assembler rejects programs containing this
+ directive.
+
+`.entry'
+ Mark the beginning of a procedure.
+
+`.exit'
+ Mark the end of a procedure.
+
+`.export NAME [ ,TYP ] [ ,PARAM=R ]'
+ Make a procedure NAME available to callers. TYP, if present, must
+ be one of `absolute', `code' (ELF only, not SOM), `data', `entry',
+ `data', `entry', `millicode', `plabel', `pri_prog', or `sec_prog'.
+
+ PARAM, if present, provides either relocation information for the
+ procedure arguments and result, or a privilege level. PARAM may be
+ `argwN' (where N ranges from `0' to `3', and indicates one of four
+ one-word arguments); `rtnval' (the procedure's result); or
+ `priv_lev' (privilege level). For arguments or the result, R
+ specifies how to relocate, and must be one of `no' (not
+ relocatable), `gr' (argument is in general register), `fr' (in
+ floating point register), or `fu' (upper half of float register).
+ For `priv_lev', R is an integer.
+
+`.half N'
+ Define a two-byte integer constant N; synonym for the portable
+ `as' directive `.short'.
+
+`.import NAME [ ,TYP ]'
+ Converse of `.export'; make a procedure available to call. The
+ arguments use the same conventions as the first two arguments for
+ `.export'.
+
+`.label NAME'
+ Define NAME as a label for the current assembly location.
+
+`.leave'
+ Not yet supported; the assembler rejects programs containing this
+ directive.
+
+`.origin LC'
+ Advance location counter to LC. Synonym for the `as' portable
+ directive `.org'.
+
+`.param NAME [ ,TYP ] [ ,PARAM=R ]'
+ Similar to `.export', but used for static procedures.
+
+`.proc'
+ Use preceding the first statement of a procedure.
+
+`.procend'
+ Use following the last statement of a procedure.
+
+`LABEL .reg EXPR'
+ Synonym for `.equ'; define LABEL with the absolute expression EXPR
+ as its value.
+
+`.space SECNAME [ ,PARAMS ]'
+ Switch to section SECNAME, creating a new section by that name if
+ necessary. You may only use PARAMS when creating a new section,
+ not when switching to an existing one. SECNAME may identify a
+ section by number rather than by name.
+
+ If specified, the list PARAMS declares attributes of the section,
+ identified by keywords. The keywords recognized are `spnum=EXP'
+ (identify this section by the number EXP, an absolute expression),
+ `sort=EXP' (order sections according to this sort key when linking;
+ EXP is an absolute expression), `unloadable' (section contains no
+ loadable data), `notdefined' (this section defined elsewhere), and
+ `private' (data in this section not available to other programs).
+
+`.spnum SECNAM'
+ Allocate four bytes of storage, and initialize them with the
+ section number of the section named SECNAM. (You can define the
+ section number with the HPPA `.space' directive.)
+
+`.string "STR"'
+ Copy the characters in the string STR to the object file. *Note
+ Strings: Strings, for information on escape sequences you can use
+ in `as' strings.
+
+ _Warning!_ The HPPA version of `.string' differs from the usual
+ `as' definition: it does _not_ write a zero byte after copying STR.
+
+`.stringz "STR"'
+ Like `.string', but appends a zero byte after copying STR to object
+ file.
+
+`.subspa NAME [ ,PARAMS ]'
+`.nsubspa NAME [ ,PARAMS ]'
+ Similar to `.space', but selects a subsection NAME within the
+ current section. You may only specify PARAMS when you create a
+ subsection (in the first instance of `.subspa' for this NAME).
+
+ If specified, the list PARAMS declares attributes of the
+ subsection, identified by keywords. The keywords recognized are
+ `quad=EXPR' ("quadrant" for this subsection), `align=EXPR'
+ (alignment for beginning of this subsection; a power of two),
+ `access=EXPR' (value for "access rights" field), `sort=EXPR'
+ (sorting order for this subspace in link), `code_only' (subsection
+ contains only code), `unloadable' (subsection cannot be loaded
+ into memory), `comdat' (subsection is comdat), `common'
+ (subsection is common block), `dup_comm' (subsection may have
+ duplicate names), or `zero' (subsection is all zeros, do not write
+ in object file).
+
+ `.nsubspa' always creates a new subspace with the given name, even
+ if one with the same name already exists.
+
+ `comdat', `common' and `dup_comm' can be used to implement various
+ flavors of one-only support when using the SOM linker. The SOM
+ linker only supports specific combinations of these flags. The
+ details are not documented. A brief description is provided here.
+
+ `comdat' provides a form of linkonce support. It is useful for
+ both code and data subspaces. A `comdat' subspace has a key symbol
+ marked by the `is_comdat' flag or `ST_COMDAT'. Only the first
+ subspace for any given key is selected. The key symbol becomes
+ universal in shared links. This is similar to the behavior of
+ `secondary_def' symbols.
+
+ `common' provides Fortran named common support. It is only useful
+ for data subspaces. Symbols with the flag `is_common' retain this
+ flag in shared links. Referencing a `is_common' symbol in a shared
+ library from outside the library doesn't work. Thus, `is_common'
+ symbols must be output whenever they are needed.
+
+ `common' and `dup_comm' together provide Cobol common support.
+ The subspaces in this case must all be the same length.
+ Otherwise, this support is similar to the Fortran common support.
+
+ `dup_comm' by itself provides a type of one-only support for code.
+ Only the first `dup_comm' subspace is selected. There is a rather
+ complex algorithm to compare subspaces. Code symbols marked with
+ the `dup_common' flag are hidden. This support was intended for
+ "C++ duplicate inlines".
+
+ A simplified technique is used to mark the flags of symbols based
+ on the flags of their subspace. A symbol with the scope
+ SS_UNIVERSAL and type ST_ENTRY, ST_CODE or ST_DATA is marked with
+ the corresponding settings of `comdat', `common' and `dup_comm'
+ from the subspace, respectively. This avoids having to introduce
+ additional directives to mark these symbols. The HP assembler
+ sets `is_common' from `common'. However, it doesn't set the
+ `dup_common' from `dup_comm'. It doesn't have `comdat' support.
+
+`.version "STR"'
+ Write STR as version identifier in object code.
+
+
+File: as.info, Node: HPPA Opcodes, Prev: HPPA Directives, Up: HPPA-Dependent
+
+9.11.6 Opcodes
+--------------
+
+For detailed information on the HPPA machine instruction set, see
+`PA-RISC Architecture and Instruction Set Reference Manual' (HP
+09740-90039).
+
+
+File: as.info, Node: ESA/390-Dependent, Next: i386-Dependent, Prev: HPPA-Dependent, Up: Machine Dependencies
+
+9.12 ESA/390 Dependent Features
+===============================
+
+* Menu:
+
+* ESA/390 Notes:: Notes
+* ESA/390 Options:: Options
+* ESA/390 Syntax:: Syntax
+* ESA/390 Floating Point:: Floating Point
+* ESA/390 Directives:: ESA/390 Machine Directives
+* ESA/390 Opcodes:: Opcodes
+
+
+File: as.info, Node: ESA/390 Notes, Next: ESA/390 Options, Up: ESA/390-Dependent
+
+9.12.1 Notes
+------------
+
+The ESA/390 `as' port is currently intended to be a back-end for the
+GNU CC compiler. It is not HLASM compatible, although it does support
+a subset of some of the HLASM directives. The only supported binary
+file format is ELF; none of the usual MVS/VM/OE/USS object file
+formats, such as ESD or XSD, are supported.
+
+ When used with the GNU CC compiler, the ESA/390 `as' will produce
+correct, fully relocated, functional binaries, and has been used to
+compile and execute large projects. However, many aspects should still
+be considered experimental; these include shared library support,
+dynamically loadable objects, and any relocation other than the 31-bit
+relocation.
+
+
+File: as.info, Node: ESA/390 Options, Next: ESA/390 Syntax, Prev: ESA/390 Notes, Up: ESA/390-Dependent
+
+9.12.2 Options
+--------------
+
+`as' has no machine-dependent command-line options for the ESA/390.
+
+
+File: as.info, Node: ESA/390 Syntax, Next: ESA/390 Floating Point, Prev: ESA/390 Options, Up: ESA/390-Dependent
+
+9.12.3 Syntax
+-------------
+
+The opcode/operand syntax follows the ESA/390 Principles of Operation
+manual; assembler directives and general syntax are loosely based on the
+prevailing AT&T/SVR4/ELF/Solaris style notation. HLASM-style directives
+are _not_ supported for the most part, with the exception of those
+described herein.
+
+ A leading dot in front of directives is optional, and the case of
+directives is ignored; thus for example, .using and USING have the same
+effect.
+
+ A colon may immediately follow a label definition. This is simply
+for compatibility with how most assembly language programmers write
+code.
+
+ `#' is the line comment character.
+
+ `;' can be used instead of a newline to separate statements.
+
+ Since `$' has no special meaning, you may use it in symbol names.
+
+ Registers can be given the symbolic names r0..r15, fp0, fp2, fp4,
+fp6. By using thesse symbolic names, `as' can detect simple syntax
+errors. The name rarg or r.arg is a synonym for r11, rtca or r.tca for
+r12, sp, r.sp, dsa r.dsa for r13, lr or r.lr for r14, rbase or r.base
+for r3 and rpgt or r.pgt for r4.
+
+ `*' is the current location counter. Unlike `.' it is always
+relative to the last USING directive. Note that this means that
+expressions cannot use multiplication, as any occurrence of `*' will be
+interpreted as a location counter.
+
+ All labels are relative to the last USING. Thus, branches to a label
+always imply the use of base+displacement.
+
+ Many of the usual forms of address constants / address literals are
+supported. Thus,
+ .using *,r3
+ L r15,=A(some_routine)
+ LM r6,r7,=V(some_longlong_extern)
+ A r1,=F'12'
+ AH r0,=H'42'
+ ME r6,=E'3.1416'
+ MD r6,=D'3.14159265358979'
+ O r6,=XL4'cacad0d0'
+ .ltorg
+ should all behave as expected: that is, an entry in the literal pool
+will be created (or reused if it already exists), and the instruction
+operands will be the displacement into the literal pool using the
+current base register (as last declared with the `.using' directive).
+
+
+File: as.info, Node: ESA/390 Floating Point, Next: ESA/390 Directives, Prev: ESA/390 Syntax, Up: ESA/390-Dependent
+
+9.12.4 Floating Point
+---------------------
+
+The assembler generates only IEEE floating-point numbers. The older
+floating point formats are not supported.
+
+
+File: as.info, Node: ESA/390 Directives, Next: ESA/390 Opcodes, Prev: ESA/390 Floating Point, Up: ESA/390-Dependent
+
+9.12.5 ESA/390 Assembler Directives
+-----------------------------------
+
+`as' for the ESA/390 supports all of the standard ELF/SVR4 assembler
+directives that are documented in the main part of this documentation.
+Several additional directives are supported in order to implement the
+ESA/390 addressing model. The most important of these are `.using' and
+`.ltorg'
+
+ These are the additional directives in `as' for the ESA/390:
+
+`.dc'
+ A small subset of the usual DC directive is supported.
+
+`.drop REGNO'
+ Stop using REGNO as the base register. The REGNO must have been
+ previously declared with a `.using' directive in the same section
+ as the current section.
+
+`.ebcdic STRING'
+ Emit the EBCDIC equivalent of the indicated string. The emitted
+ string will be null terminated. Note that the directives
+ `.string' etc. emit ascii strings by default.
+
+`EQU'
+ The standard HLASM-style EQU directive is not supported; however,
+ the standard `as' directive .equ can be used to the same effect.
+
+`.ltorg'
+ Dump the literal pool accumulated so far; begin a new literal pool.
+ The literal pool will be written in the current section; in order
+ to generate correct assembly, a `.using' must have been previously
+ specified in the same section.
+
+`.using EXPR,REGNO'
+ Use REGNO as the base register for all subsequent RX, RS, and SS
+ form instructions. The EXPR will be evaluated to obtain the base
+ address; usually, EXPR will merely be `*'.
+
+ This assembler allows two `.using' directives to be simultaneously
+ outstanding, one in the `.text' section, and one in another section
+ (typically, the `.data' section). This feature allows dynamically
+ loaded objects to be implemented in a relatively straightforward
+ way. A `.using' directive must always be specified in the `.text'
+ section; this will specify the base register that will be used for
+ branches in the `.text' section. A second `.using' may be
+ specified in another section; this will specify the base register
+ that is used for non-label address literals. When a second
+ `.using' is specified, then the subsequent `.ltorg' must be put in
+ the same section; otherwise an error will result.
+
+ Thus, for example, the following code uses `r3' to address branch
+ targets and `r4' to address the literal pool, which has been
+ written to the `.data' section. The is, the constants
+ `=A(some_routine)', `=H'42'' and `=E'3.1416'' will all appear in
+ the `.data' section.
+
+ .data
+ .using LITPOOL,r4
+ .text
+ BASR r3,0
+ .using *,r3
+ B START
+ .long LITPOOL
+ START:
+ L r4,4(,r3)
+ L r15,=A(some_routine)
+ LTR r15,r15
+ BNE LABEL
+ AH r0,=H'42'
+ LABEL:
+ ME r6,=E'3.1416'
+ .data
+ LITPOOL:
+ .ltorg
+
+ Note that this dual-`.using' directive semantics extends and is
+ not compatible with HLASM semantics. Note that this assembler
+ directive does not support the full range of HLASM semantics.
+
+
+
+File: as.info, Node: ESA/390 Opcodes, Prev: ESA/390 Directives, Up: ESA/390-Dependent
+
+9.12.6 Opcodes
+--------------
+
+For detailed information on the ESA/390 machine instruction set, see
+`ESA/390 Principles of Operation' (IBM Publication Number DZ9AR004).
+
+
+File: as.info, Node: i386-Dependent, Next: i860-Dependent, Prev: ESA/390-Dependent, Up: Machine Dependencies
+
+9.13 80386 Dependent Features
+=============================
+
+ The i386 version `as' supports both the original Intel 386
+architecture in both 16 and 32-bit mode as well as AMD x86-64
+architecture extending the Intel architecture to 64-bits.
+
+* Menu:
+
+* i386-Options:: Options
+* i386-Directives:: X86 specific directives
+* i386-Syntax:: Syntactical considerations
+* i386-Mnemonics:: Instruction Naming
+* i386-Regs:: Register Naming
+* i386-Prefixes:: Instruction Prefixes
+* i386-Memory:: Memory References
+* i386-Jumps:: Handling of Jump Instructions
+* i386-Float:: Floating Point
+* i386-SIMD:: Intel's MMX and AMD's 3DNow! SIMD Operations
+* i386-LWP:: AMD's Lightweight Profiling Instructions
+* i386-BMI:: Bit Manipulation Instruction
+* i386-TBM:: AMD's Trailing Bit Manipulation Instructions
+* i386-16bit:: Writing 16-bit Code
+* i386-Arch:: Specifying an x86 CPU architecture
+* i386-Bugs:: AT&T Syntax bugs
+* i386-Notes:: Notes
+
+
+File: as.info, Node: i386-Options, Next: i386-Directives, Up: i386-Dependent
+
+9.13.1 Options
+--------------
+
+The i386 version of `as' has a few machine dependent options:
+
+`--32 | --x32 | --64'
+ Select the word size, either 32 bits or 64 bits. `--32' implies
+ Intel i386 architecture, while `--x32' and `--64' imply AMD x86-64
+ architecture with 32-bit or 64-bit word-size respectively.
+
+ These options are only available with the ELF object file format,
+ and require that the necessary BFD support has been included (on a
+ 32-bit platform you have to add -enable-64-bit-bfd to configure
+ enable 64-bit usage and use x86-64 as target platform).
+
+`-n'
+ By default, x86 GAS replaces multiple nop instructions used for
+ alignment within code sections with multi-byte nop instructions
+ such as leal 0(%esi,1),%esi. This switch disables the
+ optimization.
+
+`--divide'
+ On SVR4-derived platforms, the character `/' is treated as a
+ comment character, which means that it cannot be used in
+ expressions. The `--divide' option turns `/' into a normal
+ character. This does not disable `/' at the beginning of a line
+ starting a comment, or affect using `#' for starting a comment.
+
+`-march=CPU[+EXTENSION...]'
+ This option specifies the target processor. The assembler will
+ issue an error message if an attempt is made to assemble an
+ instruction which will not execute on the target processor. The
+ following processor names are recognized: `i8086', `i186', `i286',
+ `i386', `i486', `i586', `i686', `pentium', `pentiumpro',
+ `pentiumii', `pentiumiii', `pentium4', `prescott', `nocona',
+ `core', `core2', `corei7', `l1om', `k1om', `k6', `k6_2', `athlon',
+ `opteron', `k8', `amdfam10', `bdver1', `bdver2', `generic32' and
+ `generic64'.
+
+ In addition to the basic instruction set, the assembler can be
+ told to accept various extension mnemonics. For example,
+ `-march=i686+sse4+vmx' extends I686 with SSE4 and VMX. The
+ following extensions are currently supported: `8087', `287', `387',
+ `no87', `mmx', `nommx', `sse', `sse2', `sse3', `ssse3', `sse4.1',
+ `sse4.2', `sse4', `nosse', `avx', `avx2', `noavx', `vmx', `smx',
+ `xsave', `xsaveopt', `aes', `pclmul', `fsgsbase', `rdrnd', `f16c',
+ `bmi2', `fma', `movbe', `ept', `lzcnt', `invpcid', `clflush',
+ `lwp', `fma4', `xop', `syscall', `rdtscp', `3dnow', `3dnowa',
+ `sse4a', `sse5', `svme', `abm' and `padlock'. Note that rather
+ than extending a basic instruction set, the extension mnemonics
+ starting with `no' revoke the respective functionality.
+
+ When the `.arch' directive is used with `-march', the `.arch'
+ directive will take precedent.
+
+`-mtune=CPU'
+ This option specifies a processor to optimize for. When used in
+ conjunction with the `-march' option, only instructions of the
+ processor specified by the `-march' option will be generated.
+
+ Valid CPU values are identical to the processor list of
+ `-march=CPU'.
+
+`-msse2avx'
+ This option specifies that the assembler should encode SSE
+ instructions with VEX prefix.
+
+`-msse-check=NONE'
+`-msse-check=WARNING'
+`-msse-check=ERROR'
+ These options control if the assembler should check SSE
+ intructions. `-msse-check=NONE' will make the assembler not to
+ check SSE instructions, which is the default.
+ `-msse-check=WARNING' will make the assembler issue a warning for
+ any SSE intruction. `-msse-check=ERROR' will make the assembler
+ issue an error for any SSE intruction.
+
+`-mavxscalar=128'
+`-mavxscalar=256'
+ These options control how the assembler should encode scalar AVX
+ instructions. `-mavxscalar=128' will encode scalar AVX
+ instructions with 128bit vector length, which is the default.
+ `-mavxscalar=256' will encode scalar AVX instructions with 256bit
+ vector length.
+
+`-mmnemonic=ATT'
+`-mmnemonic=INTEL'
+ This option specifies instruction mnemonic for matching
+ instructions. The `.att_mnemonic' and `.intel_mnemonic'
+ directives will take precedent.
+
+`-msyntax=ATT'
+`-msyntax=INTEL'
+ This option specifies instruction syntax when processing
+ instructions. The `.att_syntax' and `.intel_syntax' directives
+ will take precedent.
+
+`-mnaked-reg'
+ This opetion specifies that registers don't require a `%' prefix.
+ The `.att_syntax' and `.intel_syntax' directives will take
+ precedent.
+
+
+
+File: as.info, Node: i386-Directives, Next: i386-Syntax, Prev: i386-Options, Up: i386-Dependent
+
+9.13.2 x86 specific Directives
+------------------------------
+
+`.lcomm SYMBOL , LENGTH[, ALIGNMENT]'
+ Reserve LENGTH (an absolute expression) bytes for a local common
+ denoted by SYMBOL. The section and value of SYMBOL are those of
+ the new local common. The addresses are allocated in the bss
+ section, so that at run-time the bytes start off zeroed. Since
+ SYMBOL is not declared global, it is normally not visible to `ld'.
+ The optional third parameter, ALIGNMENT, specifies the desired
+ alignment of the symbol in the bss section.
+
+ This directive is only available for COFF based x86 targets.
+
+
+
+File: as.info, Node: i386-Syntax, Next: i386-Mnemonics, Prev: i386-Directives, Up: i386-Dependent
+
+9.13.3 i386 Syntactical Considerations
+--------------------------------------
+
+* Menu:
+
+* i386-Variations:: AT&T Syntax versus Intel Syntax
+* i386-Chars:: Special Characters
+
+
+File: as.info, Node: i386-Variations, Next: i386-Chars, Up: i386-Syntax
+
+9.13.3.1 AT&T Syntax versus Intel Syntax
+........................................
+
+`as' now supports assembly using Intel assembler syntax.
+`.intel_syntax' selects Intel mode, and `.att_syntax' switches back to
+the usual AT&T mode for compatibility with the output of `gcc'. Either
+of these directives may have an optional argument, `prefix', or
+`noprefix' specifying whether registers require a `%' prefix. AT&T
+System V/386 assembler syntax is quite different from Intel syntax. We
+mention these differences because almost all 80386 documents use Intel
+syntax. Notable differences between the two syntaxes are:
+
+ * AT&T immediate operands are preceded by `$'; Intel immediate
+ operands are undelimited (Intel `push 4' is AT&T `pushl $4').
+ AT&T register operands are preceded by `%'; Intel register operands
+ are undelimited. AT&T absolute (as opposed to PC relative)
+ jump/call operands are prefixed by `*'; they are undelimited in
+ Intel syntax.
+
+ * AT&T and Intel syntax use the opposite order for source and
+ destination operands. Intel `add eax, 4' is `addl $4, %eax'. The
+ `source, dest' convention is maintained for compatibility with
+ previous Unix assemblers. Note that `bound', `invlpga', and
+ instructions with 2 immediate operands, such as the `enter'
+ instruction, do _not_ have reversed order. *Note i386-Bugs::.
+
+ * In AT&T syntax the size of memory operands is determined from the
+ last character of the instruction mnemonic. Mnemonic suffixes of
+ `b', `w', `l' and `q' specify byte (8-bit), word (16-bit), long
+ (32-bit) and quadruple word (64-bit) memory references. Intel
+ syntax accomplishes this by prefixing memory operands (_not_ the
+ instruction mnemonics) with `byte ptr', `word ptr', `dword ptr'
+ and `qword ptr'. Thus, Intel `mov al, byte ptr FOO' is `movb FOO,
+ %al' in AT&T syntax.
+
+ In 64-bit code, `movabs' can be used to encode the `mov'
+ instruction with the 64-bit displacement or immediate operand.
+
+ * Immediate form long jumps and calls are `lcall/ljmp $SECTION,
+ $OFFSET' in AT&T syntax; the Intel syntax is `call/jmp far
+ SECTION:OFFSET'. Also, the far return instruction is `lret
+ $STACK-ADJUST' in AT&T syntax; Intel syntax is `ret far
+ STACK-ADJUST'.
+
+ * The AT&T assembler does not provide support for multiple section
+ programs. Unix style systems expect all programs to be single
+ sections.
+
+
+File: as.info, Node: i386-Chars, Prev: i386-Variations, Up: i386-Syntax
+
+9.13.3.2 Special Characters
+...........................
+
+The presence of a `#' appearing anywhere on a line indicates the start
+of a comment that extends to the end of that line.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line can also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ If the `--divide' command line option has not been specified then
+the `/' character appearing anywhere on a line also introduces a line
+comment.
+
+ The `;' character can be used to separate statements on the same
+line.
+
+
+File: as.info, Node: i386-Mnemonics, Next: i386-Regs, Prev: i386-Syntax, Up: i386-Dependent
+
+9.13.4 Instruction Naming
+-------------------------
+
+Instruction mnemonics are suffixed with one character modifiers which
+specify the size of operands. The letters `b', `w', `l' and `q'
+specify byte, word, long and quadruple word operands. If no suffix is
+specified by an instruction then `as' tries to fill in the missing
+suffix based on the destination register operand (the last one by
+convention). Thus, `mov %ax, %bx' is equivalent to `movw %ax, %bx';
+also, `mov $1, %bx' is equivalent to `movw $1, bx'. Note that this is
+incompatible with the AT&T Unix assembler which assumes that a missing
+mnemonic suffix implies long operand size. (This incompatibility does
+not affect compiler output since compilers always explicitly specify
+the mnemonic suffix.)
+
+ Almost all instructions have the same names in AT&T and Intel format.
+There are a few exceptions. The sign extend and zero extend
+instructions need two sizes to specify them. They need a size to
+sign/zero extend _from_ and a size to zero extend _to_. This is
+accomplished by using two instruction mnemonic suffixes in AT&T syntax.
+Base names for sign extend and zero extend are `movs...' and `movz...'
+in AT&T syntax (`movsx' and `movzx' in Intel syntax). The instruction
+mnemonic suffixes are tacked on to this base name, the _from_ suffix
+before the _to_ suffix. Thus, `movsbl %al, %edx' is AT&T syntax for
+"move sign extend _from_ %al _to_ %edx." Possible suffixes, thus, are
+`bl' (from byte to long), `bw' (from byte to word), `wl' (from word to
+long), `bq' (from byte to quadruple word), `wq' (from word to quadruple
+word), and `lq' (from long to quadruple word).
+
+ Different encoding options can be specified via optional mnemonic
+suffix. `.s' suffix swaps 2 register operands in encoding when moving
+from one register to another. `.d32' suffix forces 32bit displacement
+in encoding.
+
+ The Intel-syntax conversion instructions
+
+ * `cbw' -- sign-extend byte in `%al' to word in `%ax',
+
+ * `cwde' -- sign-extend word in `%ax' to long in `%eax',
+
+ * `cwd' -- sign-extend word in `%ax' to long in `%dx:%ax',
+
+ * `cdq' -- sign-extend dword in `%eax' to quad in `%edx:%eax',
+
+ * `cdqe' -- sign-extend dword in `%eax' to quad in `%rax' (x86-64
+ only),
+
+ * `cqo' -- sign-extend quad in `%rax' to octuple in `%rdx:%rax'
+ (x86-64 only),
+
+are called `cbtw', `cwtl', `cwtd', `cltd', `cltq', and `cqto' in AT&T
+naming. `as' accepts either naming for these instructions.
+
+ Far call/jump instructions are `lcall' and `ljmp' in AT&T syntax,
+but are `call far' and `jump far' in Intel convention.
+
+9.13.5 AT&T Mnemonic versus Intel Mnemonic
+------------------------------------------
+
+`as' supports assembly using Intel mnemonic. `.intel_mnemonic' selects
+Intel mnemonic with Intel syntax, and `.att_mnemonic' switches back to
+the usual AT&T mnemonic with AT&T syntax for compatibility with the
+output of `gcc'. Several x87 instructions, `fadd', `fdiv', `fdivp',
+`fdivr', `fdivrp', `fmul', `fsub', `fsubp', `fsubr' and `fsubrp', are
+implemented in AT&T System V/386 assembler with different mnemonics
+from those in Intel IA32 specification. `gcc' generates those
+instructions with AT&T mnemonic.
+
+
+File: as.info, Node: i386-Regs, Next: i386-Prefixes, Prev: i386-Mnemonics, Up: i386-Dependent
+
+9.13.6 Register Naming
+----------------------
+
+Register operands are always prefixed with `%'. The 80386 registers
+consist of
+
+ * the 8 32-bit registers `%eax' (the accumulator), `%ebx', `%ecx',
+ `%edx', `%edi', `%esi', `%ebp' (the frame pointer), and `%esp'
+ (the stack pointer).
+
+ * the 8 16-bit low-ends of these: `%ax', `%bx', `%cx', `%dx', `%di',
+ `%si', `%bp', and `%sp'.
+
+ * the 8 8-bit registers: `%ah', `%al', `%bh', `%bl', `%ch', `%cl',
+ `%dh', and `%dl' (These are the high-bytes and low-bytes of `%ax',
+ `%bx', `%cx', and `%dx')
+
+ * the 6 section registers `%cs' (code section), `%ds' (data
+ section), `%ss' (stack section), `%es', `%fs', and `%gs'.
+
+ * the 3 processor control registers `%cr0', `%cr2', and `%cr3'.
+
+ * the 6 debug registers `%db0', `%db1', `%db2', `%db3', `%db6', and
+ `%db7'.
+
+ * the 2 test registers `%tr6' and `%tr7'.
+
+ * the 8 floating point register stack `%st' or equivalently
+ `%st(0)', `%st(1)', `%st(2)', `%st(3)', `%st(4)', `%st(5)',
+ `%st(6)', and `%st(7)'. These registers are overloaded by 8 MMX
+ registers `%mm0', `%mm1', `%mm2', `%mm3', `%mm4', `%mm5', `%mm6'
+ and `%mm7'.
+
+ * the 8 SSE registers registers `%xmm0', `%xmm1', `%xmm2', `%xmm3',
+ `%xmm4', `%xmm5', `%xmm6' and `%xmm7'.
+
+ The AMD x86-64 architecture extends the register set by:
+
+ * enhancing the 8 32-bit registers to 64-bit: `%rax' (the
+ accumulator), `%rbx', `%rcx', `%rdx', `%rdi', `%rsi', `%rbp' (the
+ frame pointer), `%rsp' (the stack pointer)
+
+ * the 8 extended registers `%r8'-`%r15'.
+
+ * the 8 32-bit low ends of the extended registers: `%r8d'-`%r15d'
+
+ * the 8 16-bit low ends of the extended registers: `%r8w'-`%r15w'
+
+ * the 8 8-bit low ends of the extended registers: `%r8b'-`%r15b'
+
+ * the 4 8-bit registers: `%sil', `%dil', `%bpl', `%spl'.
+
+ * the 8 debug registers: `%db8'-`%db15'.
+
+ * the 8 SSE registers: `%xmm8'-`%xmm15'.
+
+
+File: as.info, Node: i386-Prefixes, Next: i386-Memory, Prev: i386-Regs, Up: i386-Dependent
+
+9.13.7 Instruction Prefixes
+---------------------------
+
+Instruction prefixes are used to modify the following instruction. They
+are used to repeat string instructions, to provide section overrides, to
+perform bus lock operations, and to change operand and address sizes.
+(Most instructions that normally operate on 32-bit operands will use
+16-bit operands if the instruction has an "operand size" prefix.)
+Instruction prefixes are best written on the same line as the
+instruction they act upon. For example, the `scas' (scan string)
+instruction is repeated with:
+
+ repne scas %es:(%edi),%al
+
+ You may also place prefixes on the lines immediately preceding the
+instruction, but this circumvents checks that `as' does with prefixes,
+and will not work with all prefixes.
+
+ Here is a list of instruction prefixes:
+
+ * Section override prefixes `cs', `ds', `ss', `es', `fs', `gs'.
+ These are automatically added by specifying using the
+ SECTION:MEMORY-OPERAND form for memory references.
+
+ * Operand/Address size prefixes `data16' and `addr16' change 32-bit
+ operands/addresses into 16-bit operands/addresses, while `data32'
+ and `addr32' change 16-bit ones (in a `.code16' section) into
+ 32-bit operands/addresses. These prefixes _must_ appear on the
+ same line of code as the instruction they modify. For example, in
+ a 16-bit `.code16' section, you might write:
+
+ addr32 jmpl *(%ebx)
+
+ * The bus lock prefix `lock' inhibits interrupts during execution of
+ the instruction it precedes. (This is only valid with certain
+ instructions; see a 80386 manual for details).
+
+ * The wait for coprocessor prefix `wait' waits for the coprocessor to
+ complete the current instruction. This should never be needed for
+ the 80386/80387 combination.
+
+ * The `rep', `repe', and `repne' prefixes are added to string
+ instructions to make them repeat `%ecx' times (`%cx' times if the
+ current address size is 16-bits).
+
+ * The `rex' family of prefixes is used by x86-64 to encode
+ extensions to i386 instruction set. The `rex' prefix has four
+ bits -- an operand size overwrite (`64') used to change operand
+ size from 32-bit to 64-bit and X, Y and Z extensions bits used to
+ extend the register set.
+
+ You may write the `rex' prefixes directly. The `rex64xyz'
+ instruction emits `rex' prefix with all the bits set. By omitting
+ the `64', `x', `y' or `z' you may write other prefixes as well.
+ Normally, there is no need to write the prefixes explicitly, since
+ gas will automatically generate them based on the instruction
+ operands.
+
+
+File: as.info, Node: i386-Memory, Next: i386-Jumps, Prev: i386-Prefixes, Up: i386-Dependent
+
+9.13.8 Memory References
+------------------------
+
+An Intel syntax indirect memory reference of the form
+
+ SECTION:[BASE + INDEX*SCALE + DISP]
+
+is translated into the AT&T syntax
+
+ SECTION:DISP(BASE, INDEX, SCALE)
+
+where BASE and INDEX are the optional 32-bit base and index registers,
+DISP is the optional displacement, and SCALE, taking the values 1, 2,
+4, and 8, multiplies INDEX to calculate the address of the operand. If
+no SCALE is specified, SCALE is taken to be 1. SECTION specifies the
+optional section register for the memory operand, and may override the
+default section register (see a 80386 manual for section register
+defaults). Note that section overrides in AT&T syntax _must_ be
+preceded by a `%'. If you specify a section override which coincides
+with the default section register, `as' does _not_ output any section
+register override prefixes to assemble the given instruction. Thus,
+section overrides can be specified to emphasize which section register
+is used for a given memory operand.
+
+ Here are some examples of Intel and AT&T style memory references:
+
+AT&T: `-4(%ebp)', Intel: `[ebp - 4]'
+ BASE is `%ebp'; DISP is `-4'. SECTION is missing, and the default
+ section is used (`%ss' for addressing with `%ebp' as the base
+ register). INDEX, SCALE are both missing.
+
+AT&T: `foo(,%eax,4)', Intel: `[foo + eax*4]'
+ INDEX is `%eax' (scaled by a SCALE 4); DISP is `foo'. All other
+ fields are missing. The section register here defaults to `%ds'.
+
+AT&T: `foo(,1)'; Intel `[foo]'
+ This uses the value pointed to by `foo' as a memory operand. Note
+ that BASE and INDEX are both missing, but there is only _one_ `,'.
+ This is a syntactic exception.
+
+AT&T: `%gs:foo'; Intel `gs:foo'
+ This selects the contents of the variable `foo' with section
+ register SECTION being `%gs'.
+
+ Absolute (as opposed to PC relative) call and jump operands must be
+prefixed with `*'. If no `*' is specified, `as' always chooses PC
+relative addressing for jump/call labels.
+
+ Any instruction that has a memory operand, but no register operand,
+_must_ specify its size (byte, word, long, or quadruple) with an
+instruction mnemonic suffix (`b', `w', `l' or `q', respectively).
+
+ The x86-64 architecture adds an RIP (instruction pointer relative)
+addressing. This addressing mode is specified by using `rip' as a base
+register. Only constant offsets are valid. For example:
+
+AT&T: `1234(%rip)', Intel: `[rip + 1234]'
+ Points to the address 1234 bytes past the end of the current
+ instruction.
+
+AT&T: `symbol(%rip)', Intel: `[rip + symbol]'
+ Points to the `symbol' in RIP relative way, this is shorter than
+ the default absolute addressing.
+
+ Other addressing modes remain unchanged in x86-64 architecture,
+except registers used are 64-bit instead of 32-bit.
+
+
+File: as.info, Node: i386-Jumps, Next: i386-Float, Prev: i386-Memory, Up: i386-Dependent
+
+9.13.9 Handling of Jump Instructions
+------------------------------------
+
+Jump instructions are always optimized to use the smallest possible
+displacements. This is accomplished by using byte (8-bit) displacement
+jumps whenever the target is sufficiently close. If a byte displacement
+is insufficient a long displacement is used. We do not support word
+(16-bit) displacement jumps in 32-bit mode (i.e. prefixing the jump
+instruction with the `data16' instruction prefix), since the 80386
+insists upon masking `%eip' to 16 bits after the word displacement is
+added. (See also *note i386-Arch::)
+
+ Note that the `jcxz', `jecxz', `loop', `loopz', `loope', `loopnz'
+and `loopne' instructions only come in byte displacements, so that if
+you use these instructions (`gcc' does not use them) you may get an
+error message (and incorrect code). The AT&T 80386 assembler tries to
+get around this problem by expanding `jcxz foo' to
+
+ jcxz cx_zero
+ jmp cx_nonzero
+ cx_zero: jmp foo
+ cx_nonzero:
+
+
+File: as.info, Node: i386-Float, Next: i386-SIMD, Prev: i386-Jumps, Up: i386-Dependent
+
+9.13.10 Floating Point
+----------------------
+
+All 80387 floating point types except packed BCD are supported. (BCD
+support may be added without much difficulty). These data types are
+16-, 32-, and 64- bit integers, and single (32-bit), double (64-bit),
+and extended (80-bit) precision floating point. Each supported type
+has an instruction mnemonic suffix and a constructor associated with
+it. Instruction mnemonic suffixes specify the operand's data type.
+Constructors build these data types into memory.
+
+ * Floating point constructors are `.float' or `.single', `.double',
+ and `.tfloat' for 32-, 64-, and 80-bit formats. These correspond
+ to instruction mnemonic suffixes `s', `l', and `t'. `t' stands for
+ 80-bit (ten byte) real. The 80387 only supports this format via
+ the `fldt' (load 80-bit real to stack top) and `fstpt' (store
+ 80-bit real and pop stack) instructions.
+
+ * Integer constructors are `.word', `.long' or `.int', and `.quad'
+ for the 16-, 32-, and 64-bit integer formats. The corresponding
+ instruction mnemonic suffixes are `s' (single), `l' (long), and
+ `q' (quad). As with the 80-bit real format, the 64-bit `q' format
+ is only present in the `fildq' (load quad integer to stack top)
+ and `fistpq' (store quad integer and pop stack) instructions.
+
+ Register to register operations should not use instruction mnemonic
+suffixes. `fstl %st, %st(1)' will give a warning, and be assembled as
+if you wrote `fst %st, %st(1)', since all register to register
+operations use 80-bit floating point operands. (Contrast this with
+`fstl %st, mem', which converts `%st' from 80-bit to 64-bit floating
+point format, then stores the result in the 4 byte location `mem')
+
+
+File: as.info, Node: i386-SIMD, Next: i386-LWP, Prev: i386-Float, Up: i386-Dependent
+
+9.13.11 Intel's MMX and AMD's 3DNow! SIMD Operations
+----------------------------------------------------
+
+`as' supports Intel's MMX instruction set (SIMD instructions for
+integer data), available on Intel's Pentium MMX processors and Pentium
+II processors, AMD's K6 and K6-2 processors, Cyrix' M2 processor, and
+probably others. It also supports AMD's 3DNow! instruction set (SIMD
+instructions for 32-bit floating point data) available on AMD's K6-2
+processor and possibly others in the future.
+
+ Currently, `as' does not support Intel's floating point SIMD, Katmai
+(KNI).
+
+ The eight 64-bit MMX operands, also used by 3DNow!, are called
+`%mm0', `%mm1', ... `%mm7'. They contain eight 8-bit integers, four
+16-bit integers, two 32-bit integers, one 64-bit integer, or two 32-bit
+floating point values. The MMX registers cannot be used at the same
+time as the floating point stack.
+
+ See Intel and AMD documentation, keeping in mind that the operand
+order in instructions is reversed from the Intel syntax.
+
+
+File: as.info, Node: i386-LWP, Next: i386-BMI, Prev: i386-SIMD, Up: i386-Dependent
+
+9.13.12 AMD's Lightweight Profiling Instructions
+------------------------------------------------
+
+`as' supports AMD's Lightweight Profiling (LWP) instruction set,
+available on AMD's Family 15h (Orochi) processors.
+
+ LWP enables applications to collect and manage performance data, and
+react to performance events. The collection of performance data
+requires no context switches. LWP runs in the context of a thread and
+so several counters can be used independently across multiple threads.
+LWP can be used in both 64-bit and legacy 32-bit modes.
+
+ For detailed information on the LWP instruction set, see the `AMD
+Lightweight Profiling Specification' available at Lightweight Profiling
+Specification (http://developer.amd.com/cpu/LWP).
+
+
+File: as.info, Node: i386-BMI, Next: i386-TBM, Prev: i386-LWP, Up: i386-Dependent
+
+9.13.13 Bit Manipulation Instructions
+-------------------------------------
+
+`as' supports the Bit Manipulation (BMI) instruction set.
+
+ BMI instructions provide several instructions implementing individual
+bit manipulation operations such as isolation, masking, setting, or
+resetting.
+
+
+File: as.info, Node: i386-TBM, Next: i386-16bit, Prev: i386-BMI, Up: i386-Dependent
+
+9.13.14 AMD's Trailing Bit Manipulation Instructions
+----------------------------------------------------
+
+`as' supports AMD's Trailing Bit Manipulation (TBM) instruction set,
+available on AMD's BDVER2 processors (Trinity and Viperfish).
+
+ TBM instructions provide instructions implementing individual bit
+manipulation operations such as isolating, masking, setting, resetting,
+complementing, and operations on trailing zeros and ones.
+
+
+File: as.info, Node: i386-16bit, Next: i386-Arch, Prev: i386-TBM, Up: i386-Dependent
+
+9.13.15 Writing 16-bit Code
+---------------------------
+
+While `as' normally writes only "pure" 32-bit i386 code or 64-bit
+x86-64 code depending on the default configuration, it also supports
+writing code to run in real mode or in 16-bit protected mode code
+segments. To do this, put a `.code16' or `.code16gcc' directive before
+the assembly language instructions to be run in 16-bit mode. You can
+switch `as' to writing 32-bit code with the `.code32' directive or
+64-bit code with the `.code64' directive.
+
+ `.code16gcc' provides experimental support for generating 16-bit
+code from gcc, and differs from `.code16' in that `call', `ret',
+`enter', `leave', `push', `pop', `pusha', `popa', `pushf', and `popf'
+instructions default to 32-bit size. This is so that the stack pointer
+is manipulated in the same way over function calls, allowing access to
+function parameters at the same stack offsets as in 32-bit mode.
+`.code16gcc' also automatically adds address size prefixes where
+necessary to use the 32-bit addressing modes that gcc generates.
+
+ The code which `as' generates in 16-bit mode will not necessarily
+run on a 16-bit pre-80386 processor. To write code that runs on such a
+processor, you must refrain from using _any_ 32-bit constructs which
+require `as' to output address or operand size prefixes.
+
+ Note that writing 16-bit code instructions by explicitly specifying a
+prefix or an instruction mnemonic suffix within a 32-bit code section
+generates different machine instructions than those generated for a
+16-bit code segment. In a 32-bit code section, the following code
+generates the machine opcode bytes `66 6a 04', which pushes the value
+`4' onto the stack, decrementing `%esp' by 2.
+
+ pushw $4
+
+ The same code in a 16-bit code section would generate the machine
+opcode bytes `6a 04' (i.e., without the operand size prefix), which is
+correct since the processor default operand size is assumed to be 16
+bits in a 16-bit code section.
+
+
+File: as.info, Node: i386-Bugs, Next: i386-Notes, Prev: i386-Arch, Up: i386-Dependent
+
+9.13.16 AT&T Syntax bugs
+------------------------
+
+The UnixWare assembler, and probably other AT&T derived ix86 Unix
+assemblers, generate floating point instructions with reversed source
+and destination registers in certain cases. Unfortunately, gcc and
+possibly many other programs use this reversed syntax, so we're stuck
+with it.
+
+ For example
+
+ fsub %st,%st(3)
+ results in `%st(3)' being updated to `%st - %st(3)' rather than the
+expected `%st(3) - %st'. This happens with all the non-commutative
+arithmetic floating point operations with two register operands where
+the source register is `%st' and the destination register is `%st(i)'.
+
+
+File: as.info, Node: i386-Arch, Next: i386-Bugs, Prev: i386-16bit, Up: i386-Dependent
+
+9.13.17 Specifying CPU Architecture
+-----------------------------------
+
+`as' may be told to assemble for a particular CPU (sub-)architecture
+with the `.arch CPU_TYPE' directive. This directive enables a warning
+when gas detects an instruction that is not supported on the CPU
+specified. The choices for CPU_TYPE are:
+
+`i8086' `i186' `i286' `i386'
+`i486' `i586' `i686' `pentium'
+`pentiumpro' `pentiumii' `pentiumiii' `pentium4'
+`prescott' `nocona' `core' `core2'
+`corei7' `l1om' `k1om'
+`k6' `k6_2' `athlon' `k8'
+`amdfam10' `bdver1' `bdver2'
+`generic32' `generic64'
+`.mmx' `.sse' `.sse2' `.sse3'
+`.ssse3' `.sse4.1' `.sse4.2' `.sse4'
+`.avx' `.vmx' `.smx' `.ept'
+`.clflush' `.movbe' `.xsave' `.xsaveopt'
+`.aes' `.pclmul' `.fma' `.fsgsbase'
+`.rdrnd' `.f16c' `.avx2' `.bmi2'
+`.lzcnt' `.invpcid'
+`.3dnow' `.3dnowa' `.sse4a' `.sse5'
+`.syscall' `.rdtscp' `.svme' `.abm'
+`.lwp' `.fma4' `.xop'
+`.padlock'
+
+ Apart from the warning, there are only two other effects on `as'
+operation; Firstly, if you specify a CPU other than `i486', then shift
+by one instructions such as `sarl $1, %eax' will automatically use a
+two byte opcode sequence. The larger three byte opcode sequence is
+used on the 486 (and when no architecture is specified) because it
+executes faster on the 486. Note that you can explicitly request the
+two byte opcode by writing `sarl %eax'. Secondly, if you specify
+`i8086', `i186', or `i286', _and_ `.code16' or `.code16gcc' then byte
+offset conditional jumps will be promoted when necessary to a two
+instruction sequence consisting of a conditional jump of the opposite
+sense around an unconditional jump to the target.
+
+ Following the CPU architecture (but not a sub-architecture, which
+are those starting with a dot), you may specify `jumps' or `nojumps' to
+control automatic promotion of conditional jumps. `jumps' is the
+default, and enables jump promotion; All external jumps will be of the
+long variety, and file-local jumps will be promoted as necessary.
+(*note i386-Jumps::) `nojumps' leaves external conditional jumps as
+byte offset jumps, and warns about file-local conditional jumps that
+`as' promotes. Unconditional jumps are treated as for `jumps'.
+
+ For example
+
+ .arch i8086,nojumps
+
+
+File: as.info, Node: i386-Notes, Prev: i386-Bugs, Up: i386-Dependent
+
+9.13.18 Notes
+-------------
+
+There is some trickery concerning the `mul' and `imul' instructions
+that deserves mention. The 16-, 32-, 64- and 128-bit expanding
+multiplies (base opcode `0xf6'; extension 4 for `mul' and 5 for `imul')
+can be output only in the one operand form. Thus, `imul %ebx, %eax'
+does _not_ select the expanding multiply; the expanding multiply would
+clobber the `%edx' register, and this would confuse `gcc' output. Use
+`imul %ebx' to get the 64-bit product in `%edx:%eax'.
+
+ We have added a two operand form of `imul' when the first operand is
+an immediate mode expression and the second operand is a register.
+This is just a shorthand, so that, multiplying `%eax' by 69, for
+example, can be done with `imul $69, %eax' rather than `imul $69, %eax,
+%eax'.
+
+
+File: as.info, Node: i860-Dependent, Next: i960-Dependent, Prev: i386-Dependent, Up: Machine Dependencies
+
+9.14 Intel i860 Dependent Features
+==================================
+
+* Menu:
+
+* Notes-i860:: i860 Notes
+* Options-i860:: i860 Command-line Options
+* Directives-i860:: i860 Machine Directives
+* Opcodes for i860:: i860 Opcodes
+* Syntax of i860:: i860 Syntax
+
+
+File: as.info, Node: Notes-i860, Next: Options-i860, Up: i860-Dependent
+
+9.14.1 i860 Notes
+-----------------
+
+This is a fairly complete i860 assembler which is compatible with the
+UNIX System V/860 Release 4 assembler. However, it does not currently
+support SVR4 PIC (i.e., `@GOT, @GOTOFF, @PLT').
+
+ Like the SVR4/860 assembler, the output object format is ELF32.
+Currently, this is the only supported object format. If there is
+sufficient interest, other formats such as COFF may be implemented.
+
+ Both the Intel and AT&T/SVR4 syntaxes are supported, with the latter
+being the default. One difference is that AT&T syntax requires the '%'
+prefix on register names while Intel syntax does not. Another
+difference is in the specification of relocatable expressions. The
+Intel syntax is `ha%expression' whereas the SVR4 syntax is
+`[expression]@ha' (and similarly for the "l" and "h" selectors).
+
+
+File: as.info, Node: Options-i860, Next: Directives-i860, Prev: Notes-i860, Up: i860-Dependent
+
+9.14.2 i860 Command-line Options
+--------------------------------
+
+9.14.2.1 SVR4 compatibility options
+...................................
+
+`-V'
+ Print assembler version.
+
+`-Qy'
+ Ignored.
+
+`-Qn'
+ Ignored.
+
+9.14.2.2 Other options
+......................
+
+`-EL'
+ Select little endian output (this is the default).
+
+`-EB'
+ Select big endian output. Note that the i860 always reads
+ instructions as little endian data, so this option only effects
+ data and not instructions.
+
+`-mwarn-expand'
+ Emit a warning message if any pseudo-instruction expansions
+ occurred. For example, a `or' instruction with an immediate
+ larger than 16-bits will be expanded into two instructions. This
+ is a very undesirable feature to rely on, so this flag can help
+ detect any code where it happens. One use of it, for instance, has
+ been to find and eliminate any place where `gcc' may emit these
+ pseudo-instructions.
+
+`-mxp'
+ Enable support for the i860XP instructions and control registers.
+ By default, this option is disabled so that only the base
+ instruction set (i.e., i860XR) is supported.
+
+`-mintel-syntax'
+ The i860 assembler defaults to AT&T/SVR4 syntax. This option
+ enables the Intel syntax.
+
+
+File: as.info, Node: Directives-i860, Next: Opcodes for i860, Prev: Options-i860, Up: i860-Dependent
+
+9.14.3 i860 Machine Directives
+------------------------------
+
+`.dual'
+ Enter dual instruction mode. While this directive is supported, the
+ preferred way to use dual instruction mode is to explicitly code
+ the dual bit with the `d.' prefix.
+
+`.enddual'
+ Exit dual instruction mode. While this directive is supported, the
+ preferred way to use dual instruction mode is to explicitly code
+ the dual bit with the `d.' prefix.
+
+`.atmp'
+ Change the temporary register used when expanding pseudo
+ operations. The default register is `r31'.
+
+ The `.dual', `.enddual', and `.atmp' directives are available only
+in the Intel syntax mode.
+
+ Both syntaxes allow for the standard `.align' directive. However,
+the Intel syntax additionally allows keywords for the alignment
+parameter: "`.align type'", where `type' is one of `.short', `.long',
+`.quad', `.single', `.double' representing alignments of 2, 4, 16, 4,
+and 8, respectively.
+
+
+File: as.info, Node: Opcodes for i860, Next: Syntax of i860, Prev: Directives-i860, Up: i860-Dependent
+
+9.14.4 i860 Opcodes
+-------------------
+
+All of the Intel i860XR and i860XP machine instructions are supported.
+Please see either _i860 Microprocessor Programmer's Reference Manual_
+or _i860 Microprocessor Architecture_ for more information.
+
+9.14.4.1 Other instruction support (pseudo-instructions)
+........................................................
+
+For compatibility with some other i860 assemblers, a number of
+pseudo-instructions are supported. While these are supported, they are
+a very undesirable feature that should be avoided - in particular, when
+they result in an expansion to multiple actual i860 instructions. Below
+are the pseudo-instructions that result in expansions.
+ * Load large immediate into general register:
+
+ The pseudo-instruction `mov imm,%rn' (where the immediate does not
+ fit within a signed 16-bit field) will be expanded into:
+ orh large_imm@h,%r0,%rn
+ or large_imm@l,%rn,%rn
+
+ * Load/store with relocatable address expression:
+
+ For example, the pseudo-instruction `ld.b addr_exp(%rx),%rn' will
+ be expanded into:
+ orh addr_exp@ha,%rx,%r31
+ ld.l addr_exp@l(%r31),%rn
+
+ The analogous expansions apply to `ld.x, st.x, fld.x, pfld.x,
+ fst.x', and `pst.x' as well.
+
+ * Signed large immediate with add/subtract:
+
+ If any of the arithmetic operations `adds, addu, subs, subu' are
+ used with an immediate larger than 16-bits (signed), then they
+ will be expanded. For instance, the pseudo-instruction `adds
+ large_imm,%rx,%rn' expands to:
+ orh large_imm@h,%r0,%r31
+ or large_imm@l,%r31,%r31
+ adds %r31,%rx,%rn
+
+ * Unsigned large immediate with logical operations:
+
+ Logical operations (`or, andnot, or, xor') also result in
+ expansions. The pseudo-instruction `or large_imm,%rx,%rn' results
+ in:
+ orh large_imm@h,%rx,%r31
+ or large_imm@l,%r31,%rn
+
+ Similarly for the others, except for `and' which expands to:
+ andnot (-1 - large_imm)@h,%rx,%r31
+ andnot (-1 - large_imm)@l,%r31,%rn
+
+
+File: as.info, Node: Syntax of i860, Prev: Opcodes for i860, Up: i860-Dependent
+
+9.14.5 i860 Syntax
+------------------
+
+* Menu:
+
+* i860-Chars:: Special Characters
+
+
+File: as.info, Node: i860-Chars, Up: Syntax of i860
+
+9.14.5.1 Special Characters
+...........................
+
+The presence of a `#' appearing anywhere on a line indicates the start
+of a comment that extends to the end of that line.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line can also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ The `;' character can be used to separate statements on the same
+line.
+
+
+File: as.info, Node: i960-Dependent, Next: IA-64-Dependent, Prev: i860-Dependent, Up: Machine Dependencies
+
+9.15 Intel 80960 Dependent Features
+===================================
+
+* Menu:
+
+* Options-i960:: i960 Command-line Options
+* Floating Point-i960:: Floating Point
+* Directives-i960:: i960 Machine Directives
+* Opcodes for i960:: i960 Opcodes
+* Syntax of i960:: i960 Syntax
+
+
+File: as.info, Node: Options-i960, Next: Floating Point-i960, Up: i960-Dependent
+
+9.15.1 i960 Command-line Options
+--------------------------------
+
+`-ACA | -ACA_A | -ACB | -ACC | -AKA | -AKB | -AKC | -AMC'
+ Select the 80960 architecture. Instructions or features not
+ supported by the selected architecture cause fatal errors.
+
+ `-ACA' is equivalent to `-ACA_A'; `-AKC' is equivalent to `-AMC'.
+ Synonyms are provided for compatibility with other tools.
+
+ If you do not specify any of these options, `as' generates code
+ for any instruction or feature that is supported by _some_ version
+ of the 960 (even if this means mixing architectures!). In
+ principle, `as' attempts to deduce the minimal sufficient
+ processor type if none is specified; depending on the object code
+ format, the processor type may be recorded in the object file. If
+ it is critical that the `as' output match a specific architecture,
+ specify that architecture explicitly.
+
+`-b'
+ Add code to collect information about conditional branches taken,
+ for later optimization using branch prediction bits. (The
+ conditional branch instructions have branch prediction bits in the
+ CA, CB, and CC architectures.) If BR represents a conditional
+ branch instruction, the following represents the code generated by
+ the assembler when `-b' is specified:
+
+ call INCREMENT ROUTINE
+ .word 0 # pre-counter
+ Label: BR
+ call INCREMENT ROUTINE
+ .word 0 # post-counter
+
+ The counter following a branch records the number of times that
+ branch was _not_ taken; the difference between the two counters is
+ the number of times the branch _was_ taken.
+
+ A table of every such `Label' is also generated, so that the
+ external postprocessor `gbr960' (supplied by Intel) can locate all
+ the counters. This table is always labeled `__BRANCH_TABLE__';
+ this is a local symbol to permit collecting statistics for many
+ separate object files. The table is word aligned, and begins with
+ a two-word header. The first word, initialized to 0, is used in
+ maintaining linked lists of branch tables. The second word is a
+ count of the number of entries in the table, which follow
+ immediately: each is a word, pointing to one of the labels
+ illustrated above.
+
+ +------------+------------+------------+ ... +------------+
+ | | | | | |
+ | *NEXT | COUNT: N | *BRLAB 1 | | *BRLAB N |
+ | | | | | |
+ +------------+------------+------------+ ... +------------+
+
+ __BRANCH_TABLE__ layout
+
+ The first word of the header is used to locate multiple branch
+ tables, since each object file may contain one. Normally the links
+ are maintained with a call to an initialization routine, placed at
+ the beginning of each function in the file. The GNU C compiler
+ generates these calls automatically when you give it a `-b' option.
+ For further details, see the documentation of `gbr960'.
+
+`-no-relax'
+ Normally, Compare-and-Branch instructions with targets that require
+ displacements greater than 13 bits (or that have external targets)
+ are replaced with the corresponding compare (or `chkbit') and
+ branch instructions. You can use the `-no-relax' option to
+ specify that `as' should generate errors instead, if the target
+ displacement is larger than 13 bits.
+
+ This option does not affect the Compare-and-Jump instructions; the
+ code emitted for them is _always_ adjusted when necessary
+ (depending on displacement size), regardless of whether you use
+ `-no-relax'.
+
+
+File: as.info, Node: Floating Point-i960, Next: Directives-i960, Prev: Options-i960, Up: i960-Dependent
+
+9.15.2 Floating Point
+---------------------
+
+`as' generates IEEE floating-point numbers for the directives `.float',
+`.double', `.extended', and `.single'.
+
+
+File: as.info, Node: Directives-i960, Next: Opcodes for i960, Prev: Floating Point-i960, Up: i960-Dependent
+
+9.15.3 i960 Machine Directives
+------------------------------
+
+`.bss SYMBOL, LENGTH, ALIGN'
+ Reserve LENGTH bytes in the bss section for a local SYMBOL,
+ aligned to the power of two specified by ALIGN. LENGTH and ALIGN
+ must be positive absolute expressions. This directive differs
+ from `.lcomm' only in that it permits you to specify an alignment.
+ *Note `.lcomm': Lcomm.
+
+`.extended FLONUMS'
+ `.extended' expects zero or more flonums, separated by commas; for
+ each flonum, `.extended' emits an IEEE extended-format (80-bit)
+ floating-point number.
+
+`.leafproc CALL-LAB, BAL-LAB'
+ You can use the `.leafproc' directive in conjunction with the
+ optimized `callj' instruction to enable faster calls of leaf
+ procedures. If a procedure is known to call no other procedures,
+ you may define an entry point that skips procedure prolog code
+ (and that does not depend on system-supplied saved context), and
+ declare it as the BAL-LAB using `.leafproc'. If the procedure
+ also has an entry point that goes through the normal prolog, you
+ can specify that entry point as CALL-LAB.
+
+ A `.leafproc' declaration is meant for use in conjunction with the
+ optimized call instruction `callj'; the directive records the data
+ needed later to choose between converting the `callj' into a `bal'
+ or a `call'.
+
+ CALL-LAB is optional; if only one argument is present, or if the
+ two arguments are identical, the single argument is assumed to be
+ the `bal' entry point.
+
+`.sysproc NAME, INDEX'
+ The `.sysproc' directive defines a name for a system procedure.
+ After you define it using `.sysproc', you can use NAME to refer to
+ the system procedure identified by INDEX when calling procedures
+ with the optimized call instruction `callj'.
+
+ Both arguments are required; INDEX must be between 0 and 31
+ (inclusive).
+
+
+File: as.info, Node: Opcodes for i960, Next: Syntax of i960, Prev: Directives-i960, Up: i960-Dependent
+
+9.15.4 i960 Opcodes
+-------------------
+
+All Intel 960 machine instructions are supported; *note i960
+Command-line Options: Options-i960. for a discussion of selecting the
+instruction subset for a particular 960 architecture.
+
+ Some opcodes are processed beyond simply emitting a single
+corresponding instruction: `callj', and Compare-and-Branch or
+Compare-and-Jump instructions with target displacements larger than 13
+bits.
+
+* Menu:
+
+* callj-i960:: `callj'
+* Compare-and-branch-i960:: Compare-and-Branch
+
+
+File: as.info, Node: callj-i960, Next: Compare-and-branch-i960, Up: Opcodes for i960
+
+9.15.4.1 `callj'
+................
+
+You can write `callj' to have the assembler or the linker determine the
+most appropriate form of subroutine call: `call', `bal', or `calls'.
+If the assembly source contains enough information--a `.leafproc' or
+`.sysproc' directive defining the operand--then `as' translates the
+`callj'; if not, it simply emits the `callj', leaving it for the linker
+to resolve.
+
+
+File: as.info, Node: Compare-and-branch-i960, Prev: callj-i960, Up: Opcodes for i960
+
+9.15.4.2 Compare-and-Branch
+...........................
+
+The 960 architectures provide combined Compare-and-Branch instructions
+that permit you to store the branch target in the lower 13 bits of the
+instruction word itself. However, if you specify a branch target far
+enough away that its address won't fit in 13 bits, the assembler can
+either issue an error, or convert your Compare-and-Branch instruction
+into separate instructions to do the compare and the branch.
+
+ Whether `as' gives an error or expands the instruction depends on
+two choices you can make: whether you use the `-no-relax' option, and
+whether you use a "Compare and Branch" instruction or a "Compare and
+Jump" instruction. The "Jump" instructions are _always_ expanded if
+necessary; the "Branch" instructions are expanded when necessary
+_unless_ you specify `-no-relax'--in which case `as' gives an error
+instead.
+
+ These are the Compare-and-Branch instructions, their "Jump" variants,
+and the instruction pairs they may expand into:
+
+ Compare and
+ Branch Jump Expanded to
+ ------ ------ ------------
+ bbc chkbit; bno
+ bbs chkbit; bo
+ cmpibe cmpije cmpi; be
+ cmpibg cmpijg cmpi; bg
+ cmpibge cmpijge cmpi; bge
+ cmpibl cmpijl cmpi; bl
+ cmpible cmpijle cmpi; ble
+ cmpibno cmpijno cmpi; bno
+ cmpibne cmpijne cmpi; bne
+ cmpibo cmpijo cmpi; bo
+ cmpobe cmpoje cmpo; be
+ cmpobg cmpojg cmpo; bg
+ cmpobge cmpojge cmpo; bge
+ cmpobl cmpojl cmpo; bl
+ cmpoble cmpojle cmpo; ble
+ cmpobne cmpojne cmpo; bne
+
+
+File: as.info, Node: Syntax of i960, Prev: Opcodes for i960, Up: i960-Dependent
+
+9.15.5 Syntax for the i960
+--------------------------
+
+* Menu:
+
+* i960-Chars:: Special Characters
+
+
+File: as.info, Node: i960-Chars, Up: Syntax of i960
+
+9.15.5.1 Special Characters
+...........................
+
+The presence of a `#' on a line indicates the start of a comment that
+extends to the end of the current line.
+
+ If a `#' appears as the first character of a line, the whole line is
+treated as a comment, but in this case the line can also be a logical
+line number directive (*note Comments::) or a preprocessor control
+command (*note Preprocessing::).
+
+ The `;' character can be used to separate statements on the same
+line.
+
+
+File: as.info, Node: IA-64-Dependent, Next: IP2K-Dependent, Prev: i960-Dependent, Up: Machine Dependencies
+
+9.16 IA-64 Dependent Features
+=============================
+
+* Menu:
+
+* IA-64 Options:: Options
+* IA-64 Syntax:: Syntax
+* IA-64 Opcodes:: Opcodes
+
+
+File: as.info, Node: IA-64 Options, Next: IA-64 Syntax, Up: IA-64-Dependent
+
+9.16.1 Options
+--------------
+
+`-mconstant-gp'
+ This option instructs the assembler to mark the resulting object
+ file as using the "constant GP" model. With this model, it is
+ assumed that the entire program uses a single global pointer (GP)
+ value. Note that this option does not in any fashion affect the
+ machine code emitted by the assembler. All it does is turn on the
+ EF_IA_64_CONS_GP flag in the ELF file header.
+
+`-mauto-pic'
+ This option instructs the assembler to mark the resulting object
+ file as using the "constant GP without function descriptor" data
+ model. This model is like the "constant GP" model, except that it
+ additionally does away with function descriptors. What this means
+ is that the address of a function refers directly to the
+ function's code entry-point. Normally, such an address would
+ refer to a function descriptor, which contains both the code
+ entry-point and the GP-value needed by the function. Note that
+ this option does not in any fashion affect the machine code
+ emitted by the assembler. All it does is turn on the
+ EF_IA_64_NOFUNCDESC_CONS_GP flag in the ELF file header.
+
+`-milp32'
+`-milp64'
+`-mlp64'
+`-mp64'
+ These options select the data model. The assembler defaults to
+ `-mlp64' (LP64 data model).
+
+`-mle'
+`-mbe'
+ These options select the byte order. The `-mle' option selects
+ little-endian byte order (default) and `-mbe' selects big-endian
+ byte order. Note that IA-64 machine code always uses
+ little-endian byte order.
+
+`-mtune=itanium1'
+`-mtune=itanium2'
+ Tune for a particular IA-64 CPU, ITANIUM1 or ITANIUM2. The default
+ is ITANIUM2.
+
+`-munwind-check=warning'
+`-munwind-check=error'
+ These options control what the assembler will do when performing
+ consistency checks on unwind directives. `-munwind-check=warning'
+ will make the assembler issue a warning when an unwind directive
+ check fails. This is the default. `-munwind-check=error' will
+ make the assembler issue an error when an unwind directive check
+ fails.
+
+`-mhint.b=ok'
+`-mhint.b=warning'
+`-mhint.b=error'
+ These options control what the assembler will do when the `hint.b'
+ instruction is used. `-mhint.b=ok' will make the assembler accept
+ `hint.b'. `-mint.b=warning' will make the assembler issue a
+ warning when `hint.b' is used. `-mhint.b=error' will make the
+ assembler treat `hint.b' as an error, which is the default.
+
+`-x'
+`-xexplicit'
+ These options turn on dependency violation checking.
+
+`-xauto'
+ This option instructs the assembler to automatically insert stop
+ bits where necessary to remove dependency violations. This is the
+ default mode.
+
+`-xnone'
+ This option turns off dependency violation checking.
+
+`-xdebug'
+ This turns on debug output intended to help tracking down bugs in
+ the dependency violation checker.
+
+`-xdebugn'
+ This is a shortcut for -xnone -xdebug.
+
+`-xdebugx'
+ This is a shortcut for -xexplicit -xdebug.
+
+
+
+File: as.info, Node: IA-64 Syntax, Next: IA-64 Opcodes, Prev: IA-64 Options, Up: IA-64-Dependent
+
+9.16.2 Syntax
+-------------
+
+The assembler syntax closely follows the IA-64 Assembly Language
+Reference Guide.
+
+* Menu:
+
+* IA-64-Chars:: Special Characters
+* IA-64-Regs:: Register Names
+* IA-64-Bits:: Bit Names
+* IA-64-Relocs:: Relocations
+
+
+File: as.info, Node: IA-64-Chars, Next: IA-64-Regs, Up: IA-64 Syntax
+
+9.16.2.1 Special Characters
+...........................
+
+`//' is the line comment token.
+
+ `;' can be used instead of a newline to separate statements.
+
+
+File: as.info, Node: IA-64-Regs, Next: IA-64-Bits, Prev: IA-64-Chars, Up: IA-64 Syntax
+
+9.16.2.2 Register Names
+.......................
+
+The 128 integer registers are referred to as `rN'. The 128
+floating-point registers are referred to as `fN'. The 128 application
+registers are referred to as `arN'. The 128 control registers are
+referred to as `crN'. The 64 one-bit predicate registers are referred
+to as `pN'. The 8 branch registers are referred to as `bN'. In
+addition, the assembler defines a number of aliases: `gp' (`r1'), `sp'
+(`r12'), `rp' (`b0'), `ret0' (`r8'), `ret1' (`r9'), `ret2' (`r10'),
+`ret3' (`r9'), `fargN' (`f8+N'), and `fretN' (`f8+N').
+
+ For convenience, the assembler also defines aliases for all named
+application and control registers. For example, `ar.bsp' refers to the
+register backing store pointer (`ar17'). Similarly, `cr.eoi' refers to
+the end-of-interrupt register (`cr67').
+
+
+File: as.info, Node: IA-64-Bits, Next: IA-64-Relocs, Prev: IA-64-Regs, Up: IA-64 Syntax
+
+9.16.2.3 IA-64 Processor-Status-Register (PSR) Bit Names
+........................................................
+
+The assembler defines bit masks for each of the bits in the IA-64
+processor status register. For example, `psr.ic' corresponds to a
+value of 0x2000. These masks are primarily intended for use with the
+`ssm'/`sum' and `rsm'/`rum' instructions, but they can be used anywhere
+else where an integer constant is expected.
+
+
+File: as.info, Node: IA-64-Relocs, Prev: IA-64-Bits, Up: IA-64 Syntax
+
+9.16.2.4 Relocations
+....................
+
+In addition to the standard IA-64 relocations, the following
+relocations are implemented by `as':
+
+`@slotcount(V)'
+ Convert the address offset V into a slot count. This pseudo
+ function is available only on VMS. The expression V must be known
+ at assembly time: it can't reference undefined symbols or symbols
+ in different sections.
+
+
+File: as.info, Node: IA-64 Opcodes, Prev: IA-64 Syntax, Up: IA-64-Dependent
+
+9.16.3 Opcodes
+--------------
+
+For detailed information on the IA-64 machine instruction set, see the
+IA-64 Architecture Handbook
+(http://developer.intel.com/design/itanium/arch_spec.htm).
+
+
+File: as.info, Node: IP2K-Dependent, Next: LM32-Dependent, Prev: IA-64-Dependent, Up: Machine Dependencies
+
+9.17 IP2K Dependent Features
+============================
+
+* Menu:
+
+* IP2K-Opts:: IP2K Options
+* IP2K-Syntax:: IP2K Syntax
+
+
+File: as.info, Node: IP2K-Opts, Next: IP2K-Syntax, Up: IP2K-Dependent
+
+9.17.1 IP2K Options
+-------------------
+
+The Ubicom IP2K version of `as' has a few machine dependent options:
+
+`-mip2022ext'
+ `as' can assemble the extended IP2022 instructions, but it will
+ only do so if this is specifically allowed via this command line
+ option.
+
+`-mip2022'
+ This option restores the assembler's default behaviour of not
+ permitting the extended IP2022 instructions to be assembled.
+
+
+
+File: as.info, Node: IP2K-Syntax, Prev: IP2K-Opts, Up: IP2K-Dependent
+
+9.17.2 IP2K Syntax
+------------------
+
+* Menu:
+
+* IP2K-Chars:: Special Characters
+
+
+File: as.info, Node: IP2K-Chars, Up: IP2K-Syntax
+
+9.17.2.1 Special Characters
+...........................
+
+The presence of a `;' on a line indicates the start of a comment that
+extends to the end of the current line.
+
+ If a `#' appears as the first character of a line, the whole line is
+treated as a comment, but in this case the line can also be a logical
+line number directive (*note Comments::) or a preprocessor control
+command (*note Preprocessing::).
+
+ The IP2K assembler does not currently support a line separator
+character.
+
+
+File: as.info, Node: LM32-Dependent, Next: M32C-Dependent, Prev: IP2K-Dependent, Up: Machine Dependencies
+
+9.18 LM32 Dependent Features
+============================
+
+* Menu:
+
+* LM32 Options:: Options
+* LM32 Syntax:: Syntax
+* LM32 Opcodes:: Opcodes
+
+
+File: as.info, Node: LM32 Options, Next: LM32 Syntax, Up: LM32-Dependent
+
+9.18.1 Options
+--------------
+
+`-mmultiply-enabled'
+ Enable multiply instructions.
+
+`-mdivide-enabled'
+ Enable divide instructions.
+
+`-mbarrel-shift-enabled'
+ Enable barrel-shift instructions.
+
+`-msign-extend-enabled'
+ Enable sign extend instructions.
+
+`-muser-enabled'
+ Enable user defined instructions.
+
+`-micache-enabled'
+ Enable instruction cache related CSRs.
+
+`-mdcache-enabled'
+ Enable data cache related CSRs.
+
+`-mbreak-enabled'
+ Enable break instructions.
+
+`-mall-enabled'
+ Enable all instructions and CSRs.
+
+
+
+File: as.info, Node: LM32 Syntax, Next: LM32 Opcodes, Prev: LM32 Options, Up: LM32-Dependent
+
+9.18.2 Syntax
+-------------
+
+* Menu:
+
+* LM32-Regs:: Register Names
+* LM32-Modifiers:: Relocatable Expression Modifiers
+* LM32-Chars:: Special Characters
+
+
+File: as.info, Node: LM32-Regs, Next: LM32-Modifiers, Up: LM32 Syntax
+
+9.18.2.1 Register Names
+.......................
+
+LM32 has 32 x 32-bit general purpose registers `r0', `r1', ... `r31'.
+
+ The following aliases are defined: `gp' - `r26', `fp' - `r27', `sp'
+- `r28', `ra' - `r29', `ea' - `r30', `ba' - `r31'.
+
+ LM32 has the following Control and Status Registers (CSRs).
+
+`IE'
+ Interrupt enable.
+
+`IM'
+ Interrupt mask.
+
+`IP'
+ Interrupt pending.
+
+`ICC'
+ Instruction cache control.
+
+`DCC'
+ Data cache control.
+
+`CC'
+ Cycle counter.
+
+`CFG'
+ Configuration.
+
+`EBA'
+ Exception base address.
+
+`DC'
+ Debug control.
+
+`DEBA'
+ Debug exception base address.
+
+`JTX'
+ JTAG transmit.
+
+`JRX'
+ JTAG receive.
+
+`BP0'
+ Breakpoint 0.
+
+`BP1'
+ Breakpoint 1.
+
+`BP2'
+ Breakpoint 2.
+
+`BP3'
+ Breakpoint 3.
+
+`WP0'
+ Watchpoint 0.
+
+`WP1'
+ Watchpoint 1.
+
+`WP2'
+ Watchpoint 2.
+
+`WP3'
+ Watchpoint 3.
+
+
+File: as.info, Node: LM32-Modifiers, Next: LM32-Chars, Prev: LM32-Regs, Up: LM32 Syntax
+
+9.18.2.2 Relocatable Expression Modifiers
+.........................................
+
+The assembler supports several modifiers when using relocatable
+addresses in LM32 instruction operands. The general syntax is the
+following:
+
+ modifier(relocatable-expression)
+
+`lo'
+ This modifier allows you to use bits 0 through 15 of an address
+ expression as 16 bit relocatable expression.
+
+`hi'
+ This modifier allows you to use bits 16 through 23 of an address
+ expression as 16 bit relocatable expression.
+
+ For example
+
+ ori r4, r4, lo(sym+10)
+ orhi r4, r4, hi(sym+10)
+
+`gp'
+ This modified creates a 16-bit relocatable expression that is the
+ offset of the symbol from the global pointer.
+
+ mva r4, gp(sym)
+
+`got'
+ This modifier places a symbol in the GOT and creates a 16-bit
+ relocatable expression that is the offset into the GOT of this
+ symbol.
+
+ lw r4, (gp+got(sym))
+
+`gotofflo16'
+ This modifier allows you to use the bits 0 through 15 of an
+ address which is an offset from the GOT.
+
+`gotoffhi16'
+ This modifier allows you to use the bits 16 through 31 of an
+ address which is an offset from the GOT.
+
+ orhi r4, r4, gotoffhi16(lsym)
+ addi r4, r4, gotofflo16(lsym)
+
+
+
+File: as.info, Node: LM32-Chars, Prev: LM32-Modifiers, Up: LM32 Syntax
+
+9.18.2.3 Special Characters
+...........................
+
+The presence of a `#' on a line indicates the start of a comment that
+extends to the end of the current line. Note that if a line starts
+with a `#' character then it can also be a logical line number
+directive (*note Comments::) or a preprocessor control command (*note
+Preprocessing::).
+
+ A semicolon (`;') can be used to separate multiple statements on the
+same line.
+
+
+File: as.info, Node: LM32 Opcodes, Prev: LM32 Syntax, Up: LM32-Dependent
+
+9.18.3 Opcodes
+--------------
+
+For detailed information on the LM32 machine instruction set, see
+`http://www.latticesemi.com/products/intellectualproperty/ipcores/mico32/'.
+
+ `as' implements all the standard LM32 opcodes.
+
+
+File: as.info, Node: M32C-Dependent, Next: M32R-Dependent, Prev: LM32-Dependent, Up: Machine Dependencies
+
+9.19 M32C Dependent Features
+============================
+
+ `as' can assemble code for several different members of the Renesas
+M32C family. Normally the default is to assemble code for the M16C
+microprocessor. The `-m32c' option may be used to change the default
+to the M32C microprocessor.
+
+* Menu:
+
+* M32C-Opts:: M32C Options
+* M32C-Syntax:: M32C Syntax
+
+
+File: as.info, Node: M32C-Opts, Next: M32C-Syntax, Up: M32C-Dependent
+
+9.19.1 M32C Options
+-------------------
+
+The Renesas M32C version of `as' has these machine-dependent options:
+
+`-m32c'
+ Assemble M32C instructions.
+
+`-m16c'
+ Assemble M16C instructions (default).
+
+`-relax'
+ Enable support for link-time relaxations.
+
+`-h-tick-hex'
+ Support H'00 style hex constants in addition to 0x00 style.
+
+
+
+File: as.info, Node: M32C-Syntax, Prev: M32C-Opts, Up: M32C-Dependent
+
+9.19.2 M32C Syntax
+------------------
+
+* Menu:
+
+* M32C-Modifiers:: Symbolic Operand Modifiers
+* M32C-Chars:: Special Characters
+
+
+File: as.info, Node: M32C-Modifiers, Next: M32C-Chars, Up: M32C-Syntax
+
+9.19.2.1 Symbolic Operand Modifiers
+...................................
+
+The assembler supports several modifiers when using symbol addresses in
+M32C instruction operands. The general syntax is the following:
+
+ %modifier(symbol)
+
+`%dsp8'
+`%dsp16'
+ These modifiers override the assembler's assumptions about how big
+ a symbol's address is. Normally, when it sees an operand like
+ `sym[a0]' it assumes `sym' may require the widest displacement
+ field (16 bits for `-m16c', 24 bits for `-m32c'). These modifiers
+ tell it to assume the address will fit in an 8 or 16 bit
+ (respectively) unsigned displacement. Note that, of course, if it
+ doesn't actually fit you will get linker errors. Example:
+
+ mov.w %dsp8(sym)[a0],r1
+ mov.b #0,%dsp8(sym)[a0]
+
+`%hi8'
+ This modifier allows you to load bits 16 through 23 of a 24 bit
+ address into an 8 bit register. This is useful with, for example,
+ the M16C `smovf' instruction, which expects a 20 bit address in
+ `r1h' and `a0'. Example:
+
+ mov.b #%hi8(sym),r1h
+ mov.w #%lo16(sym),a0
+ smovf.b
+
+`%lo16'
+ Likewise, this modifier allows you to load bits 0 through 15 of a
+ 24 bit address into a 16 bit register.
+
+`%hi16'
+ This modifier allows you to load bits 16 through 31 of a 32 bit
+ address into a 16 bit register. While the M32C family only has 24
+ bits of address space, it does support addresses in pairs of 16 bit
+ registers (like `a1a0' for the `lde' instruction). This modifier
+ is for loading the upper half in such cases. Example:
+
+ mov.w #%hi16(sym),a1
+ mov.w #%lo16(sym),a0
+ ...
+ lde.w [a1a0],r1
+
+
+
+File: as.info, Node: M32C-Chars, Prev: M32C-Modifiers, Up: M32C-Syntax
+
+9.19.2.2 Special Characters
+...........................
+
+The presence of a `;' character on a line indicates the start of a
+comment that extends to the end of that line.
+
+ If a `#' appears as the first character of a line, the whole line is
+treated as a comment, but in this case the line can also be a logical
+line number directive (*note Comments::) or a preprocessor control
+command (*note Preprocessing::).
+
+ The `|' character can be used to separate statements on the same
+line.
+
+
+File: as.info, Node: M32R-Dependent, Next: M68K-Dependent, Prev: M32C-Dependent, Up: Machine Dependencies
+
+9.20 M32R Dependent Features
+============================
+
+* Menu:
+
+* M32R-Opts:: M32R Options
+* M32R-Directives:: M32R Directives
+* M32R-Warnings:: M32R Warnings
+
+
+File: as.info, Node: M32R-Opts, Next: M32R-Directives, Up: M32R-Dependent
+
+9.20.1 M32R Options
+-------------------
+
+The Renease M32R version of `as' has a few machine dependent options:
+
+`-m32rx'
+ `as' can assemble code for several different members of the
+ Renesas M32R family. Normally the default is to assemble code for
+ the M32R microprocessor. This option may be used to change the
+ default to the M32RX microprocessor, which adds some more
+ instructions to the basic M32R instruction set, and some
+ additional parameters to some of the original instructions.
+
+`-m32r2'
+ This option changes the target processor to the the M32R2
+ microprocessor.
+
+`-m32r'
+ This option can be used to restore the assembler's default
+ behaviour of assembling for the M32R microprocessor. This can be
+ useful if the default has been changed by a previous command line
+ option.
+
+`-little'
+ This option tells the assembler to produce little-endian code and
+ data. The default is dependent upon how the toolchain was
+ configured.
+
+`-EL'
+ This is a synonym for _-little_.
+
+`-big'
+ This option tells the assembler to produce big-endian code and
+ data.
+
+`-EB'
+ This is a synonum for _-big_.
+
+`-KPIC'
+ This option specifies that the output of the assembler should be
+ marked as position-independent code (PIC).
+
+`-parallel'
+ This option tells the assembler to attempts to combine two
+ sequential instructions into a single, parallel instruction, where
+ it is legal to do so.
+
+`-no-parallel'
+ This option disables a previously enabled _-parallel_ option.
+
+`-no-bitinst'
+ This option disables the support for the extended bit-field
+ instructions provided by the M32R2. If this support needs to be
+ re-enabled the _-bitinst_ switch can be used to restore it.
+
+`-O'
+ This option tells the assembler to attempt to optimize the
+ instructions that it produces. This includes filling delay slots
+ and converting sequential instructions into parallel ones. This
+ option implies _-parallel_.
+
+`-warn-explicit-parallel-conflicts'
+ Instructs `as' to produce warning messages when questionable
+ parallel instructions are encountered. This option is enabled by
+ default, but `gcc' disables it when it invokes `as' directly.
+ Questionable instructions are those whose behaviour would be
+ different if they were executed sequentially. For example the
+ code fragment `mv r1, r2 || mv r3, r1' produces a different result
+ from `mv r1, r2 \n mv r3, r1' since the former moves r1 into r3
+ and then r2 into r1, whereas the later moves r2 into r1 and r3.
+
+`-Wp'
+ This is a shorter synonym for the
+ _-warn-explicit-parallel-conflicts_ option.
+
+`-no-warn-explicit-parallel-conflicts'
+ Instructs `as' not to produce warning messages when questionable
+ parallel instructions are encountered.
+
+`-Wnp'
+ This is a shorter synonym for the
+ _-no-warn-explicit-parallel-conflicts_ option.
+
+`-ignore-parallel-conflicts'
+ This option tells the assembler's to stop checking parallel
+ instructions for constraint violations. This ability is provided
+ for hardware vendors testing chip designs and should not be used
+ under normal circumstances.
+
+`-no-ignore-parallel-conflicts'
+ This option restores the assembler's default behaviour of checking
+ parallel instructions to detect constraint violations.
+
+`-Ip'
+ This is a shorter synonym for the _-ignore-parallel-conflicts_
+ option.
+
+`-nIp'
+ This is a shorter synonym for the _-no-ignore-parallel-conflicts_
+ option.
+
+`-warn-unmatched-high'
+ This option tells the assembler to produce a warning message if a
+ `.high' pseudo op is encountered without a matching `.low' pseudo
+ op. The presence of such an unmatched pseudo op usually indicates
+ a programming error.
+
+`-no-warn-unmatched-high'
+ Disables a previously enabled _-warn-unmatched-high_ option.
+
+`-Wuh'
+ This is a shorter synonym for the _-warn-unmatched-high_ option.
+
+`-Wnuh'
+ This is a shorter synonym for the _-no-warn-unmatched-high_ option.
+
+
+
+File: as.info, Node: M32R-Directives, Next: M32R-Warnings, Prev: M32R-Opts, Up: M32R-Dependent
+
+9.20.2 M32R Directives
+----------------------
+
+The Renease M32R version of `as' has a few architecture specific
+directives:
+
+`low EXPRESSION'
+ The `low' directive computes the value of its expression and
+ places the lower 16-bits of the result into the immediate-field of
+ the instruction. For example:
+
+ or3 r0, r0, #low(0x12345678) ; compute r0 = r0 | 0x5678
+ add3, r0, r0, #low(fred) ; compute r0 = r0 + low 16-bits of address of fred
+
+`high EXPRESSION'
+ The `high' directive computes the value of its expression and
+ places the upper 16-bits of the result into the immediate-field of
+ the instruction. For example:
+
+ seth r0, #high(0x12345678) ; compute r0 = 0x12340000
+ seth, r0, #high(fred) ; compute r0 = upper 16-bits of address of fred
+
+`shigh EXPRESSION'
+ The `shigh' directive is very similar to the `high' directive. It
+ also computes the value of its expression and places the upper
+ 16-bits of the result into the immediate-field of the instruction.
+ The difference is that `shigh' also checks to see if the lower
+ 16-bits could be interpreted as a signed number, and if so it
+ assumes that a borrow will occur from the upper-16 bits. To
+ compensate for this the `shigh' directive pre-biases the upper 16
+ bit value by adding one to it. For example:
+
+ For example:
+
+ seth r0, #shigh(0x12345678) ; compute r0 = 0x12340000
+ seth r0, #shigh(0x00008000) ; compute r0 = 0x00010000
+
+ In the second example the lower 16-bits are 0x8000. If these are
+ treated as a signed value and sign extended to 32-bits then the
+ value becomes 0xffff8000. If this value is then added to
+ 0x00010000 then the result is 0x00008000.
+
+ This behaviour is to allow for the different semantics of the
+ `or3' and `add3' instructions. The `or3' instruction treats its
+ 16-bit immediate argument as unsigned whereas the `add3' treats
+ its 16-bit immediate as a signed value. So for example:
+
+ seth r0, #shigh(0x00008000)
+ add3 r0, r0, #low(0x00008000)
+
+ Produces the correct result in r0, whereas:
+
+ seth r0, #shigh(0x00008000)
+ or3 r0, r0, #low(0x00008000)
+
+ Stores 0xffff8000 into r0.
+
+ Note - the `shigh' directive does not know where in the assembly
+ source code the lower 16-bits of the value are going set, so it
+ cannot check to make sure that an `or3' instruction is being used
+ rather than an `add3' instruction. It is up to the programmer to
+ make sure that correct directives are used.
+
+`.m32r'
+ The directive performs a similar thing as the _-m32r_ command line
+ option. It tells the assembler to only accept M32R instructions
+ from now on. An instructions from later M32R architectures are
+ refused.
+
+`.m32rx'
+ The directive performs a similar thing as the _-m32rx_ command
+ line option. It tells the assembler to start accepting the extra
+ instructions in the M32RX ISA as well as the ordinary M32R ISA.
+
+`.m32r2'
+ The directive performs a similar thing as the _-m32r2_ command
+ line option. It tells the assembler to start accepting the extra
+ instructions in the M32R2 ISA as well as the ordinary M32R ISA.
+
+`.little'
+ The directive performs a similar thing as the _-little_ command
+ line option. It tells the assembler to start producing
+ little-endian code and data. This option should be used with care
+ as producing mixed-endian binary files is fraught with danger.
+
+`.big'
+ The directive performs a similar thing as the _-big_ command line
+ option. It tells the assembler to start producing big-endian code
+ and data. This option should be used with care as producing
+ mixed-endian binary files is fraught with danger.
+
+
+
+File: as.info, Node: M32R-Warnings, Prev: M32R-Directives, Up: M32R-Dependent
+
+9.20.3 M32R Warnings
+--------------------
+
+There are several warning and error messages that can be produced by
+`as' which are specific to the M32R:
+
+`output of 1st instruction is the same as an input to 2nd instruction - is this intentional ?'
+ This message is only produced if warnings for explicit parallel
+ conflicts have been enabled. It indicates that the assembler has
+ encountered a parallel instruction in which the destination
+ register of the left hand instruction is used as an input register
+ in the right hand instruction. For example in this code fragment
+ `mv r1, r2 || neg r3, r1' register r1 is the destination of the
+ move instruction and the input to the neg instruction.
+
+`output of 2nd instruction is the same as an input to 1st instruction - is this intentional ?'
+ This message is only produced if warnings for explicit parallel
+ conflicts have been enabled. It indicates that the assembler has
+ encountered a parallel instruction in which the destination
+ register of the right hand instruction is used as an input
+ register in the left hand instruction. For example in this code
+ fragment `mv r1, r2 || neg r2, r3' register r2 is the destination
+ of the neg instruction and the input to the move instruction.
+
+`instruction `...' is for the M32RX only'
+ This message is produced when the assembler encounters an
+ instruction which is only supported by the M32Rx processor, and
+ the `-m32rx' command line flag has not been specified to allow
+ assembly of such instructions.
+
+`unknown instruction `...''
+ This message is produced when the assembler encounters an
+ instruction which it does not recognize.
+
+`only the NOP instruction can be issued in parallel on the m32r'
+ This message is produced when the assembler encounters a parallel
+ instruction which does not involve a NOP instruction and the
+ `-m32rx' command line flag has not been specified. Only the M32Rx
+ processor is able to execute two instructions in parallel.
+
+`instruction `...' cannot be executed in parallel.'
+ This message is produced when the assembler encounters a parallel
+ instruction which is made up of one or two instructions which
+ cannot be executed in parallel.
+
+`Instructions share the same execution pipeline'
+ This message is produced when the assembler encounters a parallel
+ instruction whoes components both use the same execution pipeline.
+
+`Instructions write to the same destination register.'
+ This message is produced when the assembler encounters a parallel
+ instruction where both components attempt to modify the same
+ register. For example these code fragments will produce this
+ message: `mv r1, r2 || neg r1, r3' `jl r0 || mv r14, r1' `st r2,
+ @-r1 || mv r1, r3' `mv r1, r2 || ld r0, @r1+' `cmp r1, r2 || addx
+ r3, r4' (Both write to the condition bit)
+
+
+
+File: as.info, Node: M68K-Dependent, Next: M68HC11-Dependent, Prev: M32R-Dependent, Up: Machine Dependencies
+
+9.21 M680x0 Dependent Features
+==============================
+
+* Menu:
+
+* M68K-Opts:: M680x0 Options
+* M68K-Syntax:: Syntax
+* M68K-Moto-Syntax:: Motorola Syntax
+* M68K-Float:: Floating Point
+* M68K-Directives:: 680x0 Machine Directives
+* M68K-opcodes:: Opcodes
+
+
+File: as.info, Node: M68K-Opts, Next: M68K-Syntax, Up: M68K-Dependent
+
+9.21.1 M680x0 Options
+---------------------
+
+The Motorola 680x0 version of `as' has a few machine dependent options:
+
+`-march=ARCHITECTURE'
+ This option specifies a target architecture. The following
+ architectures are recognized: `68000', `68010', `68020', `68030',
+ `68040', `68060', `cpu32', `isaa', `isaaplus', `isab', `isac' and
+ `cfv4e'.
+
+`-mcpu=CPU'
+ This option specifies a target cpu. When used in conjunction with
+ the `-march' option, the cpu must be within the specified
+ architecture. Also, the generic features of the architecture are
+ used for instruction generation, rather than those of the specific
+ chip.
+
+`-m[no-]68851'
+`-m[no-]68881'
+`-m[no-]div'
+`-m[no-]usp'
+`-m[no-]float'
+`-m[no-]mac'
+`-m[no-]emac'
+ Enable or disable various architecture specific features. If a
+ chip or architecture by default supports an option (for instance
+ `-march=isaaplus' includes the `-mdiv' option), explicitly
+ disabling the option will override the default.
+
+`-l'
+ You can use the `-l' option to shorten the size of references to
+ undefined symbols. If you do not use the `-l' option, references
+ to undefined symbols are wide enough for a full `long' (32 bits).
+ (Since `as' cannot know where these symbols end up, `as' can only
+ allocate space for the linker to fill in later. Since `as' does
+ not know how far away these symbols are, it allocates as much
+ space as it can.) If you use this option, the references are only
+ one word wide (16 bits). This may be useful if you want the
+ object file to be as small as possible, and you know that the
+ relevant symbols are always less than 17 bits away.
+
+`--register-prefix-optional'
+ For some configurations, especially those where the compiler
+ normally does not prepend an underscore to the names of user
+ variables, the assembler requires a `%' before any use of a
+ register name. This is intended to let the assembler distinguish
+ between C variables and functions named `a0' through `a7', and so
+ on. The `%' is always accepted, but is not required for certain
+ configurations, notably `sun3'. The `--register-prefix-optional'
+ option may be used to permit omitting the `%' even for
+ configurations for which it is normally required. If this is
+ done, it will generally be impossible to refer to C variables and
+ functions with the same names as register names.
+
+`--bitwise-or'
+ Normally the character `|' is treated as a comment character, which
+ means that it can not be used in expressions. The `--bitwise-or'
+ option turns `|' into a normal character. In this mode, you must
+ either use C style comments, or start comments with a `#' character
+ at the beginning of a line.
+
+`--base-size-default-16 --base-size-default-32'
+ If you use an addressing mode with a base register without
+ specifying the size, `as' will normally use the full 32 bit value.
+ For example, the addressing mode `%a0@(%d0)' is equivalent to
+ `%a0@(%d0:l)'. You may use the `--base-size-default-16' option to
+ tell `as' to default to using the 16 bit value. In this case,
+ `%a0@(%d0)' is equivalent to `%a0@(%d0:w)'. You may use the
+ `--base-size-default-32' option to restore the default behaviour.
+
+`--disp-size-default-16 --disp-size-default-32'
+ If you use an addressing mode with a displacement, and the value
+ of the displacement is not known, `as' will normally assume that
+ the value is 32 bits. For example, if the symbol `disp' has not
+ been defined, `as' will assemble the addressing mode
+ `%a0@(disp,%d0)' as though `disp' is a 32 bit value. You may use
+ the `--disp-size-default-16' option to tell `as' to instead assume
+ that the displacement is 16 bits. In this case, `as' will
+ assemble `%a0@(disp,%d0)' as though `disp' is a 16 bit value. You
+ may use the `--disp-size-default-32' option to restore the default
+ behaviour.
+
+`--pcrel'
+ Always keep branches PC-relative. In the M680x0 architecture all
+ branches are defined as PC-relative. However, on some processors
+ they are limited to word displacements maximum. When `as' needs a
+ long branch that is not available, it normally emits an absolute
+ jump instead. This option disables this substitution. When this
+ option is given and no long branches are available, only word
+ branches will be emitted. An error message will be generated if a
+ word branch cannot reach its target. This option has no effect on
+ 68020 and other processors that have long branches. *note Branch
+ Improvement: M68K-Branch.
+
+`-m68000'
+ `as' can assemble code for several different members of the
+ Motorola 680x0 family. The default depends upon how `as' was
+ configured when it was built; normally, the default is to assemble
+ code for the 68020 microprocessor. The following options may be
+ used to change the default. These options control which
+ instructions and addressing modes are permitted. The members of
+ the 680x0 family are very similar. For detailed information about
+ the differences, see the Motorola manuals.
+
+ `-m68000'
+ `-m68ec000'
+ `-m68hc000'
+ `-m68hc001'
+ `-m68008'
+ `-m68302'
+ `-m68306'
+ `-m68307'
+ `-m68322'
+ `-m68356'
+ Assemble for the 68000. `-m68008', `-m68302', and so on are
+ synonyms for `-m68000', since the chips are the same from the
+ point of view of the assembler.
+
+ `-m68010'
+ Assemble for the 68010.
+
+ `-m68020'
+ `-m68ec020'
+ Assemble for the 68020. This is normally the default.
+
+ `-m68030'
+ `-m68ec030'
+ Assemble for the 68030.
+
+ `-m68040'
+ `-m68ec040'
+ Assemble for the 68040.
+
+ `-m68060'
+ `-m68ec060'
+ Assemble for the 68060.
+
+ `-mcpu32'
+ `-m68330'
+ `-m68331'
+ `-m68332'
+ `-m68333'
+ `-m68334'
+ `-m68336'
+ `-m68340'
+ `-m68341'
+ `-m68349'
+ `-m68360'
+ Assemble for the CPU32 family of chips.
+
+ `-m5200'
+ `-m5202'
+ `-m5204'
+ `-m5206'
+ `-m5206e'
+ `-m521x'
+ `-m5249'
+ `-m528x'
+ `-m5307'
+ `-m5407'
+ `-m547x'
+ `-m548x'
+ `-mcfv4'
+ `-mcfv4e'
+ Assemble for the ColdFire family of chips.
+
+ `-m68881'
+ `-m68882'
+ Assemble 68881 floating point instructions. This is the
+ default for the 68020, 68030, and the CPU32. The 68040 and
+ 68060 always support floating point instructions.
+
+ `-mno-68881'
+ Do not assemble 68881 floating point instructions. This is
+ the default for 68000 and the 68010. The 68040 and 68060
+ always support floating point instructions, even if this
+ option is used.
+
+ `-m68851'
+ Assemble 68851 MMU instructions. This is the default for the
+ 68020, 68030, and 68060. The 68040 accepts a somewhat
+ different set of MMU instructions; `-m68851' and `-m68040'
+ should not be used together.
+
+ `-mno-68851'
+ Do not assemble 68851 MMU instructions. This is the default
+ for the 68000, 68010, and the CPU32. The 68040 accepts a
+ somewhat different set of MMU instructions.
+
+
+File: as.info, Node: M68K-Syntax, Next: M68K-Moto-Syntax, Prev: M68K-Opts, Up: M68K-Dependent
+
+9.21.2 Syntax
+-------------
+
+This syntax for the Motorola 680x0 was developed at MIT.
+
+ The 680x0 version of `as' uses instructions names and syntax
+compatible with the Sun assembler. Intervening periods are ignored;
+for example, `movl' is equivalent to `mov.l'.
+
+ In the following table APC stands for any of the address registers
+(`%a0' through `%a7'), the program counter (`%pc'), the zero-address
+relative to the program counter (`%zpc'), a suppressed address register
+(`%za0' through `%za7'), or it may be omitted entirely. The use of
+SIZE means one of `w' or `l', and it may be omitted, along with the
+leading colon, unless a scale is also specified. The use of SCALE
+means one of `1', `2', `4', or `8', and it may always be omitted along
+with the leading colon.
+
+ The following addressing modes are understood:
+"Immediate"
+ `#NUMBER'
+
+"Data Register"
+ `%d0' through `%d7'
+
+"Address Register"
+ `%a0' through `%a7'
+ `%a7' is also known as `%sp', i.e., the Stack Pointer. `%a6' is
+ also known as `%fp', the Frame Pointer.
+
+"Address Register Indirect"
+ `%a0@' through `%a7@'
+
+"Address Register Postincrement"
+ `%a0@+' through `%a7@+'
+
+"Address Register Predecrement"
+ `%a0@-' through `%a7@-'
+
+"Indirect Plus Offset"
+ `APC@(NUMBER)'
+
+"Index"
+ `APC@(NUMBER,REGISTER:SIZE:SCALE)'
+
+ The NUMBER may be omitted.
+
+"Postindex"
+ `APC@(NUMBER)@(ONUMBER,REGISTER:SIZE:SCALE)'
+
+ The ONUMBER or the REGISTER, but not both, may be omitted.
+
+"Preindex"
+ `APC@(NUMBER,REGISTER:SIZE:SCALE)@(ONUMBER)'
+
+ The NUMBER may be omitted. Omitting the REGISTER produces the
+ Postindex addressing mode.
+
+"Absolute"
+ `SYMBOL', or `DIGITS', optionally followed by `:b', `:w', or `:l'.
+
+
+File: as.info, Node: M68K-Moto-Syntax, Next: M68K-Float, Prev: M68K-Syntax, Up: M68K-Dependent
+
+9.21.3 Motorola Syntax
+----------------------
+
+The standard Motorola syntax for this chip differs from the syntax
+already discussed (*note Syntax: M68K-Syntax.). `as' can accept
+Motorola syntax for operands, even if MIT syntax is used for other
+operands in the same instruction. The two kinds of syntax are fully
+compatible.
+
+ In the following table APC stands for any of the address registers
+(`%a0' through `%a7'), the program counter (`%pc'), the zero-address
+relative to the program counter (`%zpc'), or a suppressed address
+register (`%za0' through `%za7'). The use of SIZE means one of `w' or
+`l', and it may always be omitted along with the leading dot. The use
+of SCALE means one of `1', `2', `4', or `8', and it may always be
+omitted along with the leading asterisk.
+
+ The following additional addressing modes are understood:
+
+"Address Register Indirect"
+ `(%a0)' through `(%a7)'
+ `%a7' is also known as `%sp', i.e., the Stack Pointer. `%a6' is
+ also known as `%fp', the Frame Pointer.
+
+"Address Register Postincrement"
+ `(%a0)+' through `(%a7)+'
+
+"Address Register Predecrement"
+ `-(%a0)' through `-(%a7)'
+
+"Indirect Plus Offset"
+ `NUMBER(%A0)' through `NUMBER(%A7)', or `NUMBER(%PC)'.
+
+ The NUMBER may also appear within the parentheses, as in
+ `(NUMBER,%A0)'. When used with the PC, the NUMBER may be omitted
+ (with an address register, omitting the NUMBER produces Address
+ Register Indirect mode).
+
+"Index"
+ `NUMBER(APC,REGISTER.SIZE*SCALE)'
+
+ The NUMBER may be omitted, or it may appear within the
+ parentheses. The APC may be omitted. The REGISTER and the APC
+ may appear in either order. If both APC and REGISTER are address
+ registers, and the SIZE and SCALE are omitted, then the first
+ register is taken as the base register, and the second as the
+ index register.
+
+"Postindex"
+ `([NUMBER,APC],REGISTER.SIZE*SCALE,ONUMBER)'
+
+ The ONUMBER, or the REGISTER, or both, may be omitted. Either the
+ NUMBER or the APC may be omitted, but not both.
+
+"Preindex"
+ `([NUMBER,APC,REGISTER.SIZE*SCALE],ONUMBER)'
+
+ The NUMBER, or the APC, or the REGISTER, or any two of them, may
+ be omitted. The ONUMBER may be omitted. The REGISTER and the APC
+ may appear in either order. If both APC and REGISTER are address
+ registers, and the SIZE and SCALE are omitted, then the first
+ register is taken as the base register, and the second as the
+ index register.
+
+
+File: as.info, Node: M68K-Float, Next: M68K-Directives, Prev: M68K-Moto-Syntax, Up: M68K-Dependent
+
+9.21.4 Floating Point
+---------------------
+
+Packed decimal (P) format floating literals are not supported. Feel
+free to add the code!
+
+ The floating point formats generated by directives are these.
+
+`.float'
+ `Single' precision floating point constants.
+
+`.double'
+ `Double' precision floating point constants.
+
+`.extend'
+`.ldouble'
+ `Extended' precision (`long double') floating point constants.
+
+
+File: as.info, Node: M68K-Directives, Next: M68K-opcodes, Prev: M68K-Float, Up: M68K-Dependent
+
+9.21.5 680x0 Machine Directives
+-------------------------------
+
+In order to be compatible with the Sun assembler the 680x0 assembler
+understands the following directives.
+
+`.data1'
+ This directive is identical to a `.data 1' directive.
+
+`.data2'
+ This directive is identical to a `.data 2' directive.
+
+`.even'
+ This directive is a special case of the `.align' directive; it
+ aligns the output to an even byte boundary.
+
+`.skip'
+ This directive is identical to a `.space' directive.
+
+`.arch NAME'
+ Select the target architecture and extension features. Valid
+ values for NAME are the same as for the `-march' command line
+ option. This directive cannot be specified after any instructions
+ have been assembled. If it is given multiple times, or in
+ conjunction with the `-march' option, all uses must be for the
+ same architecture and extension set.
+
+`.cpu NAME'
+ Select the target cpu. Valid valuse for NAME are the same as for
+ the `-mcpu' command line option. This directive cannot be
+ specified after any instructions have been assembled. If it is
+ given multiple times, or in conjunction with the `-mopt' option,
+ all uses must be for the same cpu.
+
+
+
+File: as.info, Node: M68K-opcodes, Prev: M68K-Directives, Up: M68K-Dependent
+
+9.21.6 Opcodes
+--------------
+
+* Menu:
+
+* M68K-Branch:: Branch Improvement
+* M68K-Chars:: Special Characters
+
+
+File: as.info, Node: M68K-Branch, Next: M68K-Chars, Up: M68K-opcodes
+
+9.21.6.1 Branch Improvement
+...........................
+
+Certain pseudo opcodes are permitted for branch instructions. They
+expand to the shortest branch instruction that reach the target.
+Generally these mnemonics are made by substituting `j' for `b' at the
+start of a Motorola mnemonic.
+
+ The following table summarizes the pseudo-operations. A `*' flags
+cases that are more fully described after the table:
+
+ Displacement
+ +------------------------------------------------------------
+ | 68020 68000/10, not PC-relative OK
+ Pseudo-Op |BYTE WORD LONG ABSOLUTE LONG JUMP **
+ +------------------------------------------------------------
+ jbsr |bsrs bsrw bsrl jsr
+ jra |bras braw bral jmp
+ * jXX |bXXs bXXw bXXl bNXs;jmp
+ * dbXX | N/A dbXXw dbXX;bras;bral dbXX;bras;jmp
+ fjXX | N/A fbXXw fbXXl N/A
+
+ XX: condition
+ NX: negative of condition XX
+ `*'--see full description below
+ `**'--this expansion mode is disallowed by `--pcrel'
+
+`jbsr'
+`jra'
+ These are the simplest jump pseudo-operations; they always map to
+ one particular machine instruction, depending on the displacement
+ to the branch target. This instruction will be a byte or word
+ branch is that is sufficient. Otherwise, a long branch will be
+ emitted if available. If no long branches are available and the
+ `--pcrel' option is not given, an absolute long jump will be
+ emitted instead. If no long branches are available, the `--pcrel'
+ option is given, and a word branch cannot reach the target, an
+ error message is generated.
+
+ In addition to standard branch operands, `as' allows these
+ pseudo-operations to have all operands that are allowed for jsr
+ and jmp, substituting these instructions if the operand given is
+ not valid for a branch instruction.
+
+`jXX'
+ Here, `jXX' stands for an entire family of pseudo-operations,
+ where XX is a conditional branch or condition-code test. The full
+ list of pseudo-ops in this family is:
+ jhi jls jcc jcs jne jeq jvc
+ jvs jpl jmi jge jlt jgt jle
+
+ Usually, each of these pseudo-operations expands to a single branch
+ instruction. However, if a word branch is not sufficient, no long
+ branches are available, and the `--pcrel' option is not given, `as'
+ issues a longer code fragment in terms of NX, the opposite
+ condition to XX. For example, under these conditions:
+ jXX foo
+ gives
+ bNXs oof
+ jmp foo
+ oof:
+
+`dbXX'
+ The full family of pseudo-operations covered here is
+ dbhi dbls dbcc dbcs dbne dbeq dbvc
+ dbvs dbpl dbmi dbge dblt dbgt dble
+ dbf dbra dbt
+
+ Motorola `dbXX' instructions allow word displacements only. When
+ a word displacement is sufficient, each of these pseudo-operations
+ expands to the corresponding Motorola instruction. When a word
+ displacement is not sufficient and long branches are available,
+ when the source reads `dbXX foo', `as' emits
+ dbXX oo1
+ bras oo2
+ oo1:bral foo
+ oo2:
+
+ If, however, long branches are not available and the `--pcrel'
+ option is not given, `as' emits
+ dbXX oo1
+ bras oo2
+ oo1:jmp foo
+ oo2:
+
+`fjXX'
+ This family includes
+ fjne fjeq fjge fjlt fjgt fjle fjf
+ fjt fjgl fjgle fjnge fjngl fjngle fjngt
+ fjnle fjnlt fjoge fjogl fjogt fjole fjolt
+ fjor fjseq fjsf fjsne fjst fjueq fjuge
+ fjugt fjule fjult fjun
+
+ Each of these pseudo-operations always expands to a single Motorola
+ coprocessor branch instruction, word or long. All Motorola
+ coprocessor branch instructions allow both word and long
+ displacements.
+
+
+
+File: as.info, Node: M68K-Chars, Prev: M68K-Branch, Up: M68K-opcodes
+
+9.21.6.2 Special Characters
+...........................
+
+Line comments are introduced by the `|' character appearing anywhere on
+a line, unless the `--bitwise-or' command line option has been
+specified.
+
+ An asterisk (`*') as the first character on a line marks the start
+of a line comment as well.
+
+ A hash character (`#') as the first character on a line also marks
+the start of a line comment, but in this case it could also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::). If the hash character appears
+elsewhere on a line it is used to introduce an immediate value. (This
+is for compatibility with Sun's assembler).
+
+ Multiple statements on the same line can appear if they are separated
+by the `;' character.
+
+
+File: as.info, Node: M68HC11-Dependent, Next: MicroBlaze-Dependent, Prev: M68K-Dependent, Up: Machine Dependencies
+
+9.22 M68HC11 and M68HC12 Dependent Features
+===========================================
+
+* Menu:
+
+* M68HC11-Opts:: M68HC11 and M68HC12 Options
+* M68HC11-Syntax:: Syntax
+* M68HC11-Modifiers:: Symbolic Operand Modifiers
+* M68HC11-Directives:: Assembler Directives
+* M68HC11-Float:: Floating Point
+* M68HC11-opcodes:: Opcodes
+
+
+File: as.info, Node: M68HC11-Opts, Next: M68HC11-Syntax, Up: M68HC11-Dependent
+
+9.22.1 M68HC11 and M68HC12 Options
+----------------------------------
+
+The Motorola 68HC11 and 68HC12 version of `as' have a few machine
+dependent options.
+
+`-m68hc11'
+ This option switches the assembler in the M68HC11 mode. In this
+ mode, the assembler only accepts 68HC11 operands and mnemonics. It
+ produces code for the 68HC11.
+
+`-m68hc12'
+ This option switches the assembler in the M68HC12 mode. In this
+ mode, the assembler also accepts 68HC12 operands and mnemonics. It
+ produces code for the 68HC12. A few 68HC11 instructions are
+ replaced by some 68HC12 instructions as recommended by Motorola
+ specifications.
+
+`-m68hcs12'
+ This option switches the assembler in the M68HCS12 mode. This
+ mode is similar to `-m68hc12' but specifies to assemble for the
+ 68HCS12 series. The only difference is on the assembling of the
+ `movb' and `movw' instruction when a PC-relative operand is used.
+
+`-mshort'
+ This option controls the ABI and indicates to use a 16-bit integer
+ ABI. It has no effect on the assembled instructions. This is the
+ default.
+
+`-mlong'
+ This option controls the ABI and indicates to use a 32-bit integer
+ ABI.
+
+`-mshort-double'
+ This option controls the ABI and indicates to use a 32-bit float
+ ABI. This is the default.
+
+`-mlong-double'
+ This option controls the ABI and indicates to use a 64-bit float
+ ABI.
+
+`--strict-direct-mode'
+ You can use the `--strict-direct-mode' option to disable the
+ automatic translation of direct page mode addressing into extended
+ mode when the instruction does not support direct mode. For
+ example, the `clr' instruction does not support direct page mode
+ addressing. When it is used with the direct page mode, `as' will
+ ignore it and generate an absolute addressing. This option
+ prevents `as' from doing this, and the wrong usage of the direct
+ page mode will raise an error.
+
+`--short-branches'
+ The `--short-branches' option turns off the translation of
+ relative branches into absolute branches when the branch offset is
+ out of range. By default `as' transforms the relative branch
+ (`bsr', `bgt', `bge', `beq', `bne', `ble', `blt', `bhi', `bcc',
+ `bls', `bcs', `bmi', `bvs', `bvs', `bra') into an absolute branch
+ when the offset is out of the -128 .. 127 range. In that case,
+ the `bsr' instruction is translated into a `jsr', the `bra'
+ instruction is translated into a `jmp' and the conditional
+ branches instructions are inverted and followed by a `jmp'. This
+ option disables these translations and `as' will generate an error
+ if a relative branch is out of range. This option does not affect
+ the optimization associated to the `jbra', `jbsr' and `jbXX'
+ pseudo opcodes.
+
+`--force-long-branches'
+ The `--force-long-branches' option forces the translation of
+ relative branches into absolute branches. This option does not
+ affect the optimization associated to the `jbra', `jbsr' and
+ `jbXX' pseudo opcodes.
+
+`--print-insn-syntax'
+ You can use the `--print-insn-syntax' option to obtain the syntax
+ description of the instruction when an error is detected.
+
+`--print-opcodes'
+ The `--print-opcodes' option prints the list of all the
+ instructions with their syntax. The first item of each line
+ represents the instruction name and the rest of the line indicates
+ the possible operands for that instruction. The list is printed in
+ alphabetical order. Once the list is printed `as' exits.
+
+`--generate-example'
+ The `--generate-example' option is similar to `--print-opcodes'
+ but it generates an example for each instruction instead.
+
+
+File: as.info, Node: M68HC11-Syntax, Next: M68HC11-Modifiers, Prev: M68HC11-Opts, Up: M68HC11-Dependent
+
+9.22.2 Syntax
+-------------
+
+In the M68HC11 syntax, the instruction name comes first and it may be
+followed by one or several operands (up to three). Operands are
+separated by comma (`,'). In the normal mode, `as' will complain if too
+many operands are specified for a given instruction. In the MRI mode
+(turned on with `-M' option), it will treat them as comments. Example:
+
+ inx
+ lda #23
+ bset 2,x #4
+ brclr *bot #8 foo
+
+ The presence of a `;' character or a `!' character anywhere on a
+line indicates the start of a comment that extends to the end of that
+line.
+
+ A `*' or a `#' character at the start of a line also introduces a
+line comment, but these characters do not work elsewhere on the line.
+If the first character of the line is a `#' then as well as starting a
+comment, the line could also be logical line number directive (*note
+Comments::) or a preprocessor control command (*note Preprocessing::).
+
+ The M68HC11 assembler does not currently support a line separator
+character.
+
+ The following addressing modes are understood for 68HC11 and 68HC12:
+"Immediate"
+ `#NUMBER'
+
+"Address Register"
+ `NUMBER,X', `NUMBER,Y'
+
+ The NUMBER may be omitted in which case 0 is assumed.
+
+"Direct Addressing mode"
+ `*SYMBOL', or `*DIGITS'
+
+"Absolute"
+ `SYMBOL', or `DIGITS'
+
+ The M68HC12 has other more complex addressing modes. All of them are
+supported and they are represented below:
+
+"Constant Offset Indexed Addressing Mode"
+ `NUMBER,REG'
+
+ The NUMBER may be omitted in which case 0 is assumed. The
+ register can be either `X', `Y', `SP' or `PC'. The assembler will
+ use the smaller post-byte definition according to the constant
+ value (5-bit constant offset, 9-bit constant offset or 16-bit
+ constant offset). If the constant is not known by the assembler
+ it will use the 16-bit constant offset post-byte and the value
+ will be resolved at link time.
+
+"Offset Indexed Indirect"
+ `[NUMBER,REG]'
+
+ The register can be either `X', `Y', `SP' or `PC'.
+
+"Auto Pre-Increment/Pre-Decrement/Post-Increment/Post-Decrement"
+ `NUMBER,-REG' `NUMBER,+REG' `NUMBER,REG-' `NUMBER,REG+'
+
+ The number must be in the range `-8'..`+8' and must not be 0. The
+ register can be either `X', `Y', `SP' or `PC'.
+
+"Accumulator Offset"
+ `ACC,REG'
+
+ The accumulator register can be either `A', `B' or `D'. The
+ register can be either `X', `Y', `SP' or `PC'.
+
+"Accumulator D offset indexed-indirect"
+ `[D,REG]'
+
+ The register can be either `X', `Y', `SP' or `PC'.
+
+
+ For example:
+
+ ldab 1024,sp
+ ldd [10,x]
+ orab 3,+x
+ stab -2,y-
+ ldx a,pc
+ sty [d,sp]
+
+
+File: as.info, Node: M68HC11-Modifiers, Next: M68HC11-Directives, Prev: M68HC11-Syntax, Up: M68HC11-Dependent
+
+9.22.3 Symbolic Operand Modifiers
+---------------------------------
+
+The assembler supports several modifiers when using symbol addresses in
+68HC11 and 68HC12 instruction operands. The general syntax is the
+following:
+
+ %modifier(symbol)
+
+`%addr'
+ This modifier indicates to the assembler and linker to use the
+ 16-bit physical address corresponding to the symbol. This is
+ intended to be used on memory window systems to map a symbol in
+ the memory bank window. If the symbol is in a memory expansion
+ part, the physical address corresponds to the symbol address
+ within the memory bank window. If the symbol is not in a memory
+ expansion part, this is the symbol address (using or not using the
+ %addr modifier has no effect in that case).
+
+`%page'
+ This modifier indicates to use the memory page number corresponding
+ to the symbol. If the symbol is in a memory expansion part, its
+ page number is computed by the linker as a number used to map the
+ page containing the symbol in the memory bank window. If the
+ symbol is not in a memory expansion part, the page number is 0.
+
+`%hi'
+ This modifier indicates to use the 8-bit high part of the physical
+ address of the symbol.
+
+`%lo'
+ This modifier indicates to use the 8-bit low part of the physical
+ address of the symbol.
+
+
+ For example a 68HC12 call to a function `foo_example' stored in
+memory expansion part could be written as follows:
+
+ call %addr(foo_example),%page(foo_example)
+
+ and this is equivalent to
+
+ call foo_example
+
+ And for 68HC11 it could be written as follows:
+
+ ldab #%page(foo_example)
+ stab _page_switch
+ jsr %addr(foo_example)
+
+
+File: as.info, Node: M68HC11-Directives, Next: M68HC11-Float, Prev: M68HC11-Modifiers, Up: M68HC11-Dependent
+
+9.22.4 Assembler Directives
+---------------------------
+
+The 68HC11 and 68HC12 version of `as' have the following specific
+assembler directives:
+
+`.relax'
+ The relax directive is used by the `GNU Compiler' to emit a
+ specific relocation to mark a group of instructions for linker
+ relaxation. The sequence of instructions within the group must be
+ known to the linker so that relaxation can be performed.
+
+`.mode [mshort|mlong|mshort-double|mlong-double]'
+ This directive specifies the ABI. It overrides the `-mshort',
+ `-mlong', `-mshort-double' and `-mlong-double' options.
+
+`.far SYMBOL'
+ This directive marks the symbol as a `far' symbol meaning that it
+ uses a `call/rtc' calling convention as opposed to `jsr/rts'.
+ During a final link, the linker will identify references to the
+ `far' symbol and will verify the proper calling convention.
+
+`.interrupt SYMBOL'
+ This directive marks the symbol as an interrupt entry point. This
+ information is then used by the debugger to correctly unwind the
+ frame across interrupts.
+
+`.xrefb SYMBOL'
+ This directive is defined for compatibility with the
+ `Specification for Motorola 8 and 16-Bit Assembly Language Input
+ Standard' and is ignored.
+
+
+
+File: as.info, Node: M68HC11-Float, Next: M68HC11-opcodes, Prev: M68HC11-Directives, Up: M68HC11-Dependent
+
+9.22.5 Floating Point
+---------------------
+
+Packed decimal (P) format floating literals are not supported. Feel
+free to add the code!
+
+ The floating point formats generated by directives are these.
+
+`.float'
+ `Single' precision floating point constants.
+
+`.double'
+ `Double' precision floating point constants.
+
+`.extend'
+`.ldouble'
+ `Extended' precision (`long double') floating point constants.
+
+
+File: as.info, Node: M68HC11-opcodes, Prev: M68HC11-Float, Up: M68HC11-Dependent
+
+9.22.6 Opcodes
+--------------
+
+* Menu:
+
+* M68HC11-Branch:: Branch Improvement
+
+
+File: as.info, Node: M68HC11-Branch, Up: M68HC11-opcodes
+
+9.22.6.1 Branch Improvement
+...........................
+
+Certain pseudo opcodes are permitted for branch instructions. They
+expand to the shortest branch instruction that reach the target.
+Generally these mnemonics are made by prepending `j' to the start of
+Motorola mnemonic. These pseudo opcodes are not affected by the
+`--short-branches' or `--force-long-branches' options.
+
+ The following table summarizes the pseudo-operations.
+
+ Displacement Width
+ +-------------------------------------------------------------+
+ | Options |
+ | --short-branches --force-long-branches |
+ +--------------------------+----------------------------------+
+ Op |BYTE WORD | BYTE WORD |
+ +--------------------------+----------------------------------+
+ bsr | bsr <pc-rel> <error> | jsr <abs> |
+ bra | bra <pc-rel> <error> | jmp <abs> |
+ jbsr | bsr <pc-rel> jsr <abs> | bsr <pc-rel> jsr <abs> |
+ jbra | bra <pc-rel> jmp <abs> | bra <pc-rel> jmp <abs> |
+ bXX | bXX <pc-rel> <error> | bNX +3; jmp <abs> |
+ jbXX | bXX <pc-rel> bNX +3; | bXX <pc-rel> bNX +3; jmp <abs> |
+ | jmp <abs> | |
+ +--------------------------+----------------------------------+
+ XX: condition
+ NX: negative of condition XX
+
+`jbsr'
+`jbra'
+ These are the simplest jump pseudo-operations; they always map to
+ one particular machine instruction, depending on the displacement
+ to the branch target.
+
+`jbXX'
+ Here, `jbXX' stands for an entire family of pseudo-operations,
+ where XX is a conditional branch or condition-code test. The full
+ list of pseudo-ops in this family is:
+ jbcc jbeq jbge jbgt jbhi jbvs jbpl jblo
+ jbcs jbne jblt jble jbls jbvc jbmi
+
+ For the cases of non-PC relative displacements and long
+ displacements, `as' issues a longer code fragment in terms of NX,
+ the opposite condition to XX. For example, for the non-PC
+ relative case:
+ jbXX foo
+ gives
+ bNXs oof
+ jmp foo
+ oof:
+
+
+
+File: as.info, Node: MicroBlaze-Dependent, Next: MIPS-Dependent, Prev: M68HC11-Dependent, Up: Machine Dependencies
+
+9.23 MicroBlaze Dependent Features
+==================================
+
+ The Xilinx MicroBlaze processor family includes several variants,
+all using the same core instruction set. This chapter covers features
+of the GNU assembler that are specific to the MicroBlaze architecture.
+For details about the MicroBlaze instruction set, please see the
+`MicroBlaze Processor Reference Guide (UG081)' available at
+www.xilinx.com.
+
+* Menu:
+
+* MicroBlaze Directives:: Directives for MicroBlaze Processors.
+* MicroBlaze Syntax:: Syntax for the MicroBlaze
+
+
+File: as.info, Node: MicroBlaze Directives, Next: MicroBlaze Syntax, Up: MicroBlaze-Dependent
+
+9.23.1 Directives
+-----------------
+
+A number of assembler directives are available for MicroBlaze.
+
+`.data8 EXPRESSION,...'
+ This directive is an alias for `.byte'. Each expression is
+ assembled into an eight-bit value.
+
+`.data16 EXPRESSION,...'
+ This directive is an alias for `.hword'. Each expression is
+ assembled into an 16-bit value.
+
+`.data32 EXPRESSION,...'
+ This directive is an alias for `.word'. Each expression is
+ assembled into an 32-bit value.
+
+`.ent NAME[,LABEL]'
+ This directive is an alias for `.func' denoting the start of
+ function NAME at (optional) LABEL.
+
+`.end NAME[,LABEL]'
+ This directive is an alias for `.endfunc' denoting the end of
+ function NAME.
+
+`.gpword LABEL,...'
+ This directive is an alias for `.rva'. The resolved address of
+ LABEL is stored in the data section.
+
+`.weakext LABEL'
+ Declare that LABEL is a weak external symbol.
+
+`.rodata'
+ Switch to .rodata section. Equivalent to `.section .rodata'
+
+`.sdata2'
+ Switch to .sdata2 section. Equivalent to `.section .sdata2'
+
+`.sdata'
+ Switch to .sdata section. Equivalent to `.section .sdata'
+
+`.bss'
+ Switch to .bss section. Equivalent to `.section .bss'
+
+`.sbss'
+ Switch to .sbss section. Equivalent to `.section .sbss'
+
+
+File: as.info, Node: MicroBlaze Syntax, Prev: MicroBlaze Directives, Up: MicroBlaze-Dependent
+
+9.23.2 Syntax for the MicroBlaze
+--------------------------------
+
+* Menu:
+
+* MicroBlaze-Chars:: Special Characters
+
+
+File: as.info, Node: MicroBlaze-Chars, Up: MicroBlaze Syntax
+
+9.23.2.1 Special Characters
+...........................
+
+The presence of a `#' on a line indicates the start of a comment that
+extends to the end of the current line.
+
+ If a `#' appears as the first character of a line, the whole line is
+treated as a comment, but in this case the line can also be a logical
+line number directive (*note Comments::) or a preprocessor control
+command (*note Preprocessing::).
+
+ The `;' character can be used to separate statements on the same
+line.
+
+
+File: as.info, Node: MIPS-Dependent, Next: MMIX-Dependent, Prev: MicroBlaze-Dependent, Up: Machine Dependencies
+
+9.24 MIPS Dependent Features
+============================
+
+ GNU `as' for MIPS architectures supports several different MIPS
+processors, and MIPS ISA levels I through V, MIPS32, and MIPS64. For
+information about the MIPS instruction set, see `MIPS RISC
+Architecture', by Kane and Heindrich (Prentice-Hall). For an overview
+of MIPS assembly conventions, see "Appendix D: Assembly Language
+Programming" in the same work.
+
+* Menu:
+
+* MIPS Opts:: Assembler options
+* MIPS Object:: ECOFF object code
+* MIPS Stabs:: Directives for debugging information
+* MIPS ISA:: Directives to override the ISA level
+* MIPS symbol sizes:: Directives to override the size of symbols
+* MIPS autoextend:: Directives for extending MIPS 16 bit instructions
+* MIPS insn:: Directive to mark data as an instruction
+* MIPS option stack:: Directives to save and restore options
+* MIPS ASE instruction generation overrides:: Directives to control
+ generation of MIPS ASE instructions
+* MIPS floating-point:: Directives to override floating-point options
+* MIPS Syntax:: MIPS specific syntactical considerations
+
+
+File: as.info, Node: MIPS Opts, Next: MIPS Object, Up: MIPS-Dependent
+
+9.24.1 Assembler options
+------------------------
+
+The MIPS configurations of GNU `as' support these special options:
+
+`-G NUM'
+ This option sets the largest size of an object that can be
+ referenced implicitly with the `gp' register. It is only accepted
+ for targets that use ECOFF format. The default value is 8.
+
+`-EB'
+`-EL'
+ Any MIPS configuration of `as' can select big-endian or
+ little-endian output at run time (unlike the other GNU development
+ tools, which must be configured for one or the other). Use `-EB'
+ to select big-endian output, and `-EL' for little-endian.
+
+`-KPIC'
+ Generate SVR4-style PIC. This option tells the assembler to
+ generate SVR4-style position-independent macro expansions. It
+ also tells the assembler to mark the output file as PIC.
+
+`-mvxworks-pic'
+ Generate VxWorks PIC. This option tells the assembler to generate
+ VxWorks-style position-independent macro expansions.
+
+`-mips1'
+`-mips2'
+`-mips3'
+`-mips4'
+`-mips5xo'
+`-mips32'
+`-mips32r2'
+`-mips64'
+`-mips64r2'
+ Generate code for a particular MIPS Instruction Set Architecture
+ level. `-mips1' corresponds to the R2000 and R3000 processors,
+ `-mips2' to the R6000 processor, `-mips3' to the R4000 processor,
+ and `-mips4' to the R8000 and R10000 processors. `-mips5',
+ `-mips32', `-mips32r2', `-mips64', and `-mips64r2' correspond to
+ generic MIPS V, MIPS32, MIPS32 RELEASE 2, MIPS64, and MIPS64
+ RELEASE 2 ISA processors, respectively. You can also switch
+ instruction sets during the assembly; see *Note Directives to
+ override the ISA level: MIPS ISA.
+
+`-mgp32'
+`-mfp32'
+ Some macros have different expansions for 32-bit and 64-bit
+ registers. The register sizes are normally inferred from the ISA
+ and ABI, but these flags force a certain group of registers to be
+ treated as 32 bits wide at all times. `-mgp32' controls the size
+ of general-purpose registers and `-mfp32' controls the size of
+ floating-point registers.
+
+ The `.set gp=32' and `.set fp=32' directives allow the size of
+ registers to be changed for parts of an object. The default value
+ is restored by `.set gp=default' and `.set fp=default'.
+
+ On some MIPS variants there is a 32-bit mode flag; when this flag
+ is set, 64-bit instructions generate a trap. Also, some 32-bit
+ OSes only save the 32-bit registers on a context switch, so it is
+ essential never to use the 64-bit registers.
+
+`-mgp64'
+`-mfp64'
+ Assume that 64-bit registers are available. This is provided in
+ the interests of symmetry with `-mgp32' and `-mfp32'.
+
+ The `.set gp=64' and `.set fp=64' directives allow the size of
+ registers to be changed for parts of an object. The default value
+ is restored by `.set gp=default' and `.set fp=default'.
+
+`-mips16'
+`-no-mips16'
+ Generate code for the MIPS 16 processor. This is equivalent to
+ putting `.set mips16' at the start of the assembly file.
+ `-no-mips16' turns off this option.
+
+`-mmicromips'
+`-mno-micromips'
+ Generate code for the microMIPS processor. This is equivalent to
+ putting `.set micromips' at the start of the assembly file.
+ `-mno-micromips' turns off this option. This is equivalent to
+ putting `.set nomicromips' at the start of the assembly file.
+
+`-msmartmips'
+`-mno-smartmips'
+ Enables the SmartMIPS extensions to the MIPS32 instruction set,
+ which provides a number of new instructions which target smartcard
+ and cryptographic applications. This is equivalent to putting
+ `.set smartmips' at the start of the assembly file.
+ `-mno-smartmips' turns off this option.
+
+`-mips3d'
+`-no-mips3d'
+ Generate code for the MIPS-3D Application Specific Extension.
+ This tells the assembler to accept MIPS-3D instructions.
+ `-no-mips3d' turns off this option.
+
+`-mdmx'
+`-no-mdmx'
+ Generate code for the MDMX Application Specific Extension. This
+ tells the assembler to accept MDMX instructions. `-no-mdmx' turns
+ off this option.
+
+`-mdsp'
+`-mno-dsp'
+ Generate code for the DSP Release 1 Application Specific Extension.
+ This tells the assembler to accept DSP Release 1 instructions.
+ `-mno-dsp' turns off this option.
+
+`-mdspr2'
+`-mno-dspr2'
+ Generate code for the DSP Release 2 Application Specific Extension.
+ This option implies -mdsp. This tells the assembler to accept DSP
+ Release 2 instructions. `-mno-dspr2' turns off this option.
+
+`-mmt'
+`-mno-mt'
+ Generate code for the MT Application Specific Extension. This
+ tells the assembler to accept MT instructions. `-mno-mt' turns
+ off this option.
+
+`-mmcu'
+`-mno-mcu'
+ Generate code for the MCU Application Specific Extension. This
+ tells the assembler to accept MCU instructions. `-mno-mcu' turns
+ off this option.
+
+`-mfix7000'
+`-mno-fix7000'
+ Cause nops to be inserted if the read of the destination register
+ of an mfhi or mflo instruction occurs in the following two
+ instructions.
+
+`-mfix-loongson2f-jump'
+`-mno-fix-loongson2f-jump'
+ Eliminate instruction fetch from outside 256M region to work
+ around the Loongson2F `jump' instructions. Without it, under
+ extreme cases, the kernel may crash. The issue has been solved in
+ latest processor batches, but this fix has no side effect to them.
+
+`-mfix-loongson2f-nop'
+`-mno-fix-loongson2f-nop'
+ Replace nops by `or at,at,zero' to work around the Loongson2F
+ `nop' errata. Without it, under extreme cases, cpu might
+ deadlock. The issue has been solved in latest loongson2f batches,
+ but this fix has no side effect to them.
+
+`-mfix-vr4120'
+`-mno-fix-vr4120'
+ Insert nops to work around certain VR4120 errata. This option is
+ intended to be used on GCC-generated code: it is not designed to
+ catch all problems in hand-written assembler code.
+
+`-mfix-vr4130'
+`-mno-fix-vr4130'
+ Insert nops to work around the VR4130 `mflo'/`mfhi' errata.
+
+`-mfix-24k'
+`-no-mfix-24k'
+ Insert nops to work around the 24K `eret'/`deret' errata.
+
+`-mfix-cn63xxp1'
+`-mno-fix-cn63xxp1'
+ Replace `pref' hints 0 - 4 and 6 - 24 with hint 28 to work around
+ certain CN63XXP1 errata.
+
+`-m4010'
+`-no-m4010'
+ Generate code for the LSI R4010 chip. This tells the assembler to
+ accept the R4010 specific instructions (`addciu', `ffc', etc.),
+ and to not schedule `nop' instructions around accesses to the `HI'
+ and `LO' registers. `-no-m4010' turns off this option.
+
+`-m4650'
+`-no-m4650'
+ Generate code for the MIPS R4650 chip. This tells the assembler
+ to accept the `mad' and `madu' instruction, and to not schedule
+ `nop' instructions around accesses to the `HI' and `LO' registers.
+ `-no-m4650' turns off this option.
+
+`-m3900'
+`-no-m3900'
+`-m4100'
+`-no-m4100'
+ For each option `-mNNNN', generate code for the MIPS RNNNN chip.
+ This tells the assembler to accept instructions specific to that
+ chip, and to schedule for that chip's hazards.
+
+`-march=CPU'
+ Generate code for a particular MIPS cpu. It is exactly equivalent
+ to `-mCPU', except that there are more value of CPU understood.
+ Valid CPU value are:
+
+ 2000, 3000, 3900, 4000, 4010, 4100, 4111, vr4120, vr4130,
+ vr4181, 4300, 4400, 4600, 4650, 5000, rm5200, rm5230, rm5231,
+ rm5261, rm5721, vr5400, vr5500, 6000, rm7000, 8000, rm9000,
+ 10000, 12000, 14000, 16000, 4kc, 4km, 4kp, 4ksc, 4kec, 4kem,
+ 4kep, 4ksd, m4k, m4kp, m14k, m14kc, 24kc, 24kf2_1, 24kf,
+ 24kf1_1, 24kec, 24kef2_1, 24kef, 24kef1_1, 34kc, 34kf2_1,
+ 34kf, 34kf1_1, 74kc, 74kf2_1, 74kf, 74kf1_1, 74kf3_2, 1004kc,
+ 1004kf2_1, 1004kf, 1004kf1_1, 5kc, 5kf, 20kc, 25kf, sb1, sb1a,
+ loongson2e, loongson2f, loongson3a, octeon, xlr
+
+ For compatibility reasons, `Nx' and `Bfx' are accepted as synonyms
+ for `Nf1_1'. These values are deprecated.
+
+`-mtune=CPU'
+ Schedule and tune for a particular MIPS cpu. Valid CPU values are
+ identical to `-march=CPU'.
+
+`-mabi=ABI'
+ Record which ABI the source code uses. The recognized arguments
+ are: `32', `n32', `o64', `64' and `eabi'.
+
+`-msym32'
+`-mno-sym32'
+ Equivalent to adding `.set sym32' or `.set nosym32' to the
+ beginning of the assembler input. *Note MIPS symbol sizes::.
+
+`-nocpp'
+ This option is ignored. It is accepted for command-line
+ compatibility with other assemblers, which use it to turn off C
+ style preprocessing. With GNU `as', there is no need for
+ `-nocpp', because the GNU assembler itself never runs the C
+ preprocessor.
+
+`-msoft-float'
+`-mhard-float'
+ Disable or enable floating-point instructions. Note that by
+ default floating-point instructions are always allowed even with
+ CPU targets that don't have support for these instructions.
+
+`-msingle-float'
+`-mdouble-float'
+ Disable or enable double-precision floating-point operations. Note
+ that by default double-precision floating-point operations are
+ always allowed even with CPU targets that don't have support for
+ these operations.
+
+`--construct-floats'
+`--no-construct-floats'
+ The `--no-construct-floats' option disables the construction of
+ double width floating point constants by loading the two halves of
+ the value into the two single width floating point registers that
+ make up the double width register. This feature is useful if the
+ processor support the FR bit in its status register, and this bit
+ is known (by the programmer) to be set. This bit prevents the
+ aliasing of the double width register by the single width
+ registers.
+
+ By default `--construct-floats' is selected, allowing construction
+ of these floating point constants.
+
+`--trap'
+`--no-break'
+ `as' automatically macro expands certain division and
+ multiplication instructions to check for overflow and division by
+ zero. This option causes `as' to generate code to take a trap
+ exception rather than a break exception when an error is detected.
+ The trap instructions are only supported at Instruction Set
+ Architecture level 2 and higher.
+
+`--break'
+`--no-trap'
+ Generate code to take a break exception rather than a trap
+ exception when an error is detected. This is the default.
+
+`-mpdr'
+`-mno-pdr'
+ Control generation of `.pdr' sections. Off by default on IRIX, on
+ elsewhere.
+
+`-mshared'
+`-mno-shared'
+ When generating code using the Unix calling conventions (selected
+ by `-KPIC' or `-mcall_shared'), gas will normally generate code
+ which can go into a shared library. The `-mno-shared' option
+ tells gas to generate code which uses the calling convention, but
+ can not go into a shared library. The resulting code is slightly
+ more efficient. This option only affects the handling of the
+ `.cpload' and `.cpsetup' pseudo-ops.
+
+
+File: as.info, Node: MIPS Object, Next: MIPS Stabs, Prev: MIPS Opts, Up: MIPS-Dependent
+
+9.24.2 MIPS ECOFF object code
+-----------------------------
+
+Assembling for a MIPS ECOFF target supports some additional sections
+besides the usual `.text', `.data' and `.bss'. The additional sections
+are `.rdata', used for read-only data, `.sdata', used for small data,
+and `.sbss', used for small common objects.
+
+ When assembling for ECOFF, the assembler uses the `$gp' (`$28')
+register to form the address of a "small object". Any object in the
+`.sdata' or `.sbss' sections is considered "small" in this sense. For
+external objects, or for objects in the `.bss' section, you can use the
+`gcc' `-G' option to control the size of objects addressed via `$gp';
+the default value is 8, meaning that a reference to any object eight
+bytes or smaller uses `$gp'. Passing `-G 0' to `as' prevents it from
+using the `$gp' register on the basis of object size (but the assembler
+uses `$gp' for objects in `.sdata' or `sbss' in any case). The size of
+an object in the `.bss' section is set by the `.comm' or `.lcomm'
+directive that defines it. The size of an external object may be set
+with the `.extern' directive. For example, `.extern sym,4' declares
+that the object at `sym' is 4 bytes in length, whie leaving `sym'
+otherwise undefined.
+
+ Using small ECOFF objects requires linker support, and assumes that
+the `$gp' register is correctly initialized (normally done
+automatically by the startup code). MIPS ECOFF assembly code must not
+modify the `$gp' register.
+
+
+File: as.info, Node: MIPS Stabs, Next: MIPS ISA, Prev: MIPS Object, Up: MIPS-Dependent
+
+9.24.3 Directives for debugging information
+-------------------------------------------
+
+MIPS ECOFF `as' supports several directives used for generating
+debugging information which are not support by traditional MIPS
+assemblers. These are `.def', `.endef', `.dim', `.file', `.scl',
+`.size', `.tag', `.type', `.val', `.stabd', `.stabn', and `.stabs'.
+The debugging information generated by the three `.stab' directives can
+only be read by GDB, not by traditional MIPS debuggers (this
+enhancement is required to fully support C++ debugging). These
+directives are primarily used by compilers, not assembly language
+programmers!
+
+
+File: as.info, Node: MIPS symbol sizes, Next: MIPS autoextend, Prev: MIPS ISA, Up: MIPS-Dependent
+
+9.24.4 Directives to override the size of symbols
+-------------------------------------------------
+
+The n64 ABI allows symbols to have any 64-bit value. Although this
+provides a great deal of flexibility, it means that some macros have
+much longer expansions than their 32-bit counterparts. For example,
+the non-PIC expansion of `dla $4,sym' is usually:
+
+ lui $4,%highest(sym)
+ lui $1,%hi(sym)
+ daddiu $4,$4,%higher(sym)
+ daddiu $1,$1,%lo(sym)
+ dsll32 $4,$4,0
+ daddu $4,$4,$1
+
+ whereas the 32-bit expansion is simply:
+
+ lui $4,%hi(sym)
+ daddiu $4,$4,%lo(sym)
+
+ n64 code is sometimes constructed in such a way that all symbolic
+constants are known to have 32-bit values, and in such cases, it's
+preferable to use the 32-bit expansion instead of the 64-bit expansion.
+
+ You can use the `.set sym32' directive to tell the assembler that,
+from this point on, all expressions of the form `SYMBOL' or `SYMBOL +
+OFFSET' have 32-bit values. For example:
+
+ .set sym32
+ dla $4,sym
+ lw $4,sym+16
+ sw $4,sym+0x8000($4)
+
+ will cause the assembler to treat `sym', `sym+16' and `sym+0x8000'
+as 32-bit values. The handling of non-symbolic addresses is not
+affected.
+
+ The directive `.set nosym32' ends a `.set sym32' block and reverts
+to the normal behavior. It is also possible to change the symbol size
+using the command-line options `-msym32' and `-mno-sym32'.
+
+ These options and directives are always accepted, but at present,
+they have no effect for anything other than n64.
+
+
+File: as.info, Node: MIPS ISA, Next: MIPS symbol sizes, Prev: MIPS Stabs, Up: MIPS-Dependent
+
+9.24.5 Directives to override the ISA level
+-------------------------------------------
+
+GNU `as' supports an additional directive to change the MIPS
+Instruction Set Architecture level on the fly: `.set mipsN'. N should
+be a number from 0 to 5, or 32, 32r2, 64 or 64r2. The values other
+than 0 make the assembler accept instructions for the corresponding ISA
+level, from that point on in the assembly. `.set mipsN' affects not
+only which instructions are permitted, but also how certain macros are
+expanded. `.set mips0' restores the ISA level to its original level:
+either the level you selected with command line options, or the default
+for your configuration. You can use this feature to permit specific
+MIPS3 instructions while assembling in 32 bit mode. Use this directive
+with care!
+
+ The `.set arch=CPU' directive provides even finer control. It
+changes the effective CPU target and allows the assembler to use
+instructions specific to a particular CPU. All CPUs supported by the
+`-march' command line option are also selectable by this directive.
+The original value is restored by `.set arch=default'.
+
+ The directive `.set mips16' puts the assembler into MIPS 16 mode, in
+which it will assemble instructions for the MIPS 16 processor. Use
+`.set nomips16' to return to normal 32 bit mode.
+
+ Traditional MIPS assemblers do not support this directive.
+
+ The directive `.set micromips' puts the assembler into microMIPS
+mode, in which it will assemble instructions for the microMIPS
+processor. Use `.set nomicromips' to return to normal 32 bit mode.
+
+ Traditional MIPS assemblers do not support this directive.
+
+
+File: as.info, Node: MIPS autoextend, Next: MIPS insn, Prev: MIPS symbol sizes, Up: MIPS-Dependent
+
+9.24.6 Directives for extending MIPS 16 bit instructions
+--------------------------------------------------------
+
+By default, MIPS 16 instructions are automatically extended to 32 bits
+when necessary. The directive `.set noautoextend' will turn this off.
+When `.set noautoextend' is in effect, any 32 bit instruction must be
+explicitly extended with the `.e' modifier (e.g., `li.e $4,1000'). The
+directive `.set autoextend' may be used to once again automatically
+extend instructions when necessary.
+
+ This directive is only meaningful when in MIPS 16 mode. Traditional
+MIPS assemblers do not support this directive.
+
+
+File: as.info, Node: MIPS insn, Next: MIPS option stack, Prev: MIPS autoextend, Up: MIPS-Dependent
+
+9.24.7 Directive to mark data as an instruction
+-----------------------------------------------
+
+The `.insn' directive tells `as' that the following data is actually
+instructions. This makes a difference in MIPS 16 and microMIPS modes:
+when loading the address of a label which precedes instructions, `as'
+automatically adds 1 to the value, so that jumping to the loaded
+address will do the right thing.
+
+ The `.global' and `.globl' directives supported by `as' will by
+default mark the symbol as pointing to a region of data not code. This
+means that, for example, any instructions following such a symbol will
+not be disassembled by `objdump' as it will regard them as data. To
+change this behaviour an optional section name can be placed after the
+symbol name in the `.global' directive. If this section exists and is
+known to be a code section, then the symbol will be marked as poiting at
+code not data. Ie the syntax for the directive is:
+
+ `.global SYMBOL[ SECTION][, SYMBOL[ SECTION]] ...',
+
+ Here is a short example:
+
+ .global foo .text, bar, baz .data
+ foo:
+ nop
+ bar:
+ .word 0x0
+ baz:
+ .word 0x1
+
+
+File: as.info, Node: MIPS option stack, Next: MIPS ASE instruction generation overrides, Prev: MIPS insn, Up: MIPS-Dependent
+
+9.24.8 Directives to save and restore options
+---------------------------------------------
+
+The directives `.set push' and `.set pop' may be used to save and
+restore the current settings for all the options which are controlled
+by `.set'. The `.set push' directive saves the current settings on a
+stack. The `.set pop' directive pops the stack and restores the
+settings.
+
+ These directives can be useful inside an macro which must change an
+option such as the ISA level or instruction reordering but does not want
+to change the state of the code which invoked the macro.
+
+ Traditional MIPS assemblers do not support these directives.
+
+
+File: as.info, Node: MIPS ASE instruction generation overrides, Next: MIPS floating-point, Prev: MIPS option stack, Up: MIPS-Dependent
+
+9.24.9 Directives to control generation of MIPS ASE instructions
+----------------------------------------------------------------
+
+The directive `.set mips3d' makes the assembler accept instructions
+from the MIPS-3D Application Specific Extension from that point on in
+the assembly. The `.set nomips3d' directive prevents MIPS-3D
+instructions from being accepted.
+
+ The directive `.set smartmips' makes the assembler accept
+instructions from the SmartMIPS Application Specific Extension to the
+MIPS32 ISA from that point on in the assembly. The `.set nosmartmips'
+directive prevents SmartMIPS instructions from being accepted.
+
+ The directive `.set mdmx' makes the assembler accept instructions
+from the MDMX Application Specific Extension from that point on in the
+assembly. The `.set nomdmx' directive prevents MDMX instructions from
+being accepted.
+
+ The directive `.set dsp' makes the assembler accept instructions
+from the DSP Release 1 Application Specific Extension from that point
+on in the assembly. The `.set nodsp' directive prevents DSP Release 1
+instructions from being accepted.
+
+ The directive `.set dspr2' makes the assembler accept instructions
+from the DSP Release 2 Application Specific Extension from that point
+on in the assembly. This dirctive implies `.set dsp'. The `.set
+nodspr2' directive prevents DSP Release 2 instructions from being
+accepted.
+
+ The directive `.set mt' makes the assembler accept instructions from
+the MT Application Specific Extension from that point on in the
+assembly. The `.set nomt' directive prevents MT instructions from
+being accepted.
+
+ The directive `.set mcu' makes the assembler accept instructions
+from the MCU Application Specific Extension from that point on in the
+assembly. The `.set nomcu' directive prevents MCU instructions from
+being accepted.
+
+ Traditional MIPS assemblers do not support these directives.
+
+
+File: as.info, Node: MIPS floating-point, Next: MIPS Syntax, Prev: MIPS ASE instruction generation overrides, Up: MIPS-Dependent
+
+9.24.10 Directives to override floating-point options
+-----------------------------------------------------
+
+The directives `.set softfloat' and `.set hardfloat' provide finer
+control of disabling and enabling float-point instructions. These
+directives always override the default (that hard-float instructions
+are accepted) or the command-line options (`-msoft-float' and
+`-mhard-float').
+
+ The directives `.set singlefloat' and `.set doublefloat' provide
+finer control of disabling and enabling double-precision float-point
+operations. These directives always override the default (that
+double-precision operations are accepted) or the command-line options
+(`-msingle-float' and `-mdouble-float').
+
+ Traditional MIPS assemblers do not support these directives.
+
+
+File: as.info, Node: MIPS Syntax, Prev: MIPS floating-point, Up: MIPS-Dependent
+
+9.24.11 Syntactical considerations for the MIPS assembler
+---------------------------------------------------------
+
+* Menu:
+
+* MIPS-Chars:: Special Characters
+
+
+File: as.info, Node: MIPS-Chars, Up: MIPS Syntax
+
+9.24.11.1 Special Characters
+............................
+
+The presence of a `#' on a line indicates the start of a comment that
+extends to the end of the current line.
+
+ If a `#' appears as the first character of a line, the whole line is
+treated as a comment, but in this case the line can also be a logical
+line number directive (*note Comments::) or a preprocessor control
+command (*note Preprocessing::).
+
+ The `;' character can be used to separate statements on the same
+line.
+
+
+File: as.info, Node: MMIX-Dependent, Next: MSP430-Dependent, Prev: MIPS-Dependent, Up: Machine Dependencies
+
+9.25 MMIX Dependent Features
+============================
+
+* Menu:
+
+* MMIX-Opts:: Command-line Options
+* MMIX-Expand:: Instruction expansion
+* MMIX-Syntax:: Syntax
+* MMIX-mmixal:: Differences to `mmixal' syntax and semantics
+
+
+File: as.info, Node: MMIX-Opts, Next: MMIX-Expand, Up: MMIX-Dependent
+
+9.25.1 Command-line Options
+---------------------------
+
+The MMIX version of `as' has some machine-dependent options.
+
+ When `--fixed-special-register-names' is specified, only the register
+names specified in *Note MMIX-Regs:: are recognized in the instructions
+`PUT' and `GET'.
+
+ You can use the `--globalize-symbols' to make all symbols global.
+This option is useful when splitting up a `mmixal' program into several
+files.
+
+ The `--gnu-syntax' turns off most syntax compatibility with
+`mmixal'. Its usability is currently doubtful.
+
+ The `--relax' option is not fully supported, but will eventually make
+the object file prepared for linker relaxation.
+
+ If you want to avoid inadvertently calling a predefined symbol and
+would rather get an error, for example when using `as' with a compiler
+or other machine-generated code, specify `--no-predefined-syms'. This
+turns off built-in predefined definitions of all such symbols,
+including rounding-mode symbols, segment symbols, `BIT' symbols, and
+`TRAP' symbols used in `mmix' "system calls". It also turns off
+predefined special-register names, except when used in `PUT' and `GET'
+instructions.
+
+ By default, some instructions are expanded to fit the size of the
+operand or an external symbol (*note MMIX-Expand::). By passing
+`--no-expand', no such expansion will be done, instead causing errors
+at link time if the operand does not fit.
+
+ The `mmixal' documentation (*note mmixsite::) specifies that global
+registers allocated with the `GREG' directive (*note MMIX-greg::) and
+initialized to the same non-zero value, will refer to the same global
+register. This isn't strictly enforceable in `as' since the final
+addresses aren't known until link-time, but it will do an effort unless
+the `--no-merge-gregs' option is specified. (Register merging isn't
+yet implemented in `ld'.)
+
+ `as' will warn every time it expands an instruction to fit an
+operand unless the option `-x' is specified. It is believed that this
+behaviour is more useful than just mimicking `mmixal''s behaviour, in
+which instructions are only expanded if the `-x' option is specified,
+and assembly fails otherwise, when an instruction needs to be expanded.
+It needs to be kept in mind that `mmixal' is both an assembler and
+linker, while `as' will expand instructions that at link stage can be
+contracted. (Though linker relaxation isn't yet implemented in `ld'.)
+The option `-x' also imples `--linker-allocated-gregs'.
+
+ If instruction expansion is enabled, `as' can expand a `PUSHJ'
+instruction into a series of instructions. The shortest expansion is
+to not expand it, but just mark the call as redirectable to a stub,
+which `ld' creates at link-time, but only if the original `PUSHJ'
+instruction is found not to reach the target. The stub consists of the
+necessary instructions to form a jump to the target. This happens if
+`as' can assert that the `PUSHJ' instruction can reach such a stub.
+The option `--no-pushj-stubs' disables this shorter expansion, and the
+longer series of instructions is then created at assembly-time. The
+option `--no-stubs' is a synonym, intended for compatibility with
+future releases, where generation of stubs for other instructions may
+be implemented.
+
+ Usually a two-operand-expression (*note GREG-base::) without a
+matching `GREG' directive is treated as an error by `as'. When the
+option `--linker-allocated-gregs' is in effect, they are instead passed
+through to the linker, which will allocate as many global registers as
+is needed.
+
+
+File: as.info, Node: MMIX-Expand, Next: MMIX-Syntax, Prev: MMIX-Opts, Up: MMIX-Dependent
+
+9.25.2 Instruction expansion
+----------------------------
+
+When `as' encounters an instruction with an operand that is either not
+known or does not fit the operand size of the instruction, `as' (and
+`ld') will expand the instruction into a sequence of instructions
+semantically equivalent to the operand fitting the instruction.
+Expansion will take place for the following instructions:
+
+`GETA'
+ Expands to a sequence of four instructions: `SETL', `INCML',
+ `INCMH' and `INCH'. The operand must be a multiple of four.
+
+Conditional branches
+ A branch instruction is turned into a branch with the complemented
+ condition and prediction bit over five instructions; four
+ instructions setting `$255' to the operand value, which like with
+ `GETA' must be a multiple of four, and a final `GO $255,$255,0'.
+
+`PUSHJ'
+ Similar to expansion for conditional branches; four instructions
+ set `$255' to the operand value, followed by a `PUSHGO
+ $255,$255,0'.
+
+`JMP'
+ Similar to conditional branches and `PUSHJ'. The final instruction
+ is `GO $255,$255,0'.
+
+ The linker `ld' is expected to shrink these expansions for code
+assembled with `--relax' (though not currently implemented).
+
+
+File: as.info, Node: MMIX-Syntax, Next: MMIX-mmixal, Prev: MMIX-Expand, Up: MMIX-Dependent
+
+9.25.3 Syntax
+-------------
+
+The assembly syntax is supposed to be upward compatible with that
+described in Sections 1.3 and 1.4 of `The Art of Computer Programming,
+Volume 1'. Draft versions of those chapters as well as other MMIX
+information is located at
+`http://www-cs-faculty.stanford.edu/~knuth/mmix-news.html'. Most code
+examples from the mmixal package located there should work unmodified
+when assembled and linked as single files, with a few noteworthy
+exceptions (*note MMIX-mmixal::).
+
+ Before an instruction is emitted, the current location is aligned to
+the next four-byte boundary. If a label is defined at the beginning of
+the line, its value will be the aligned value.
+
+ In addition to the traditional hex-prefix `0x', a hexadecimal number
+can also be specified by the prefix character `#'.
+
+ After all operands to an MMIX instruction or directive have been
+specified, the rest of the line is ignored, treated as a comment.
+
+* Menu:
+
+* MMIX-Chars:: Special Characters
+* MMIX-Symbols:: Symbols
+* MMIX-Regs:: Register Names
+* MMIX-Pseudos:: Assembler Directives
+
+
+File: as.info, Node: MMIX-Chars, Next: MMIX-Symbols, Up: MMIX-Syntax
+
+9.25.3.1 Special Characters
+...........................
+
+The characters `*' and `#' are line comment characters; each start a
+comment at the beginning of a line, but only at the beginning of a
+line. A `#' prefixes a hexadecimal number if found elsewhere on a
+line. If a `#' appears at the start of a line the whole line is
+treated as a comment, but the line can also act as a logical line
+number directive (*note Comments::) or a preprocessor control command
+(*note Preprocessing::).
+
+ Two other characters, `%' and `!', each start a comment anywhere on
+the line. Thus you can't use the `modulus' and `not' operators in
+expressions normally associated with these two characters.
+
+ A `;' is a line separator, treated as a new-line, so separate
+instructions can be specified on a single line.
+
+
+File: as.info, Node: MMIX-Symbols, Next: MMIX-Regs, Prev: MMIX-Chars, Up: MMIX-Syntax
+
+9.25.3.2 Symbols
+................
+
+The character `:' is permitted in identifiers. There are two
+exceptions to it being treated as any other symbol character: if a
+symbol begins with `:', it means that the symbol is in the global
+namespace and that the current prefix should not be prepended to that
+symbol (*note MMIX-prefix::). The `:' is then not considered part of
+the symbol. For a symbol in the label position (first on a line), a `:'
+at the end of a symbol is silently stripped off. A label is permitted,
+but not required, to be followed by a `:', as with many other assembly
+formats.
+
+ The character `@' in an expression, is a synonym for `.', the
+current location.
+
+ In addition to the common forward and backward local symbol formats
+(*note Symbol Names::), they can be specified with upper-case `B' and
+`F', as in `8B' and `9F'. A local label defined for the current
+position is written with a `H' appended to the number:
+ 3H LDB $0,$1,2
+ This and traditional local-label formats cannot be mixed: a label
+must be defined and referred to using the same format.
+
+ There's a minor caveat: just as for the ordinary local symbols, the
+local symbols are translated into ordinary symbols using control
+characters are to hide the ordinal number of the symbol.
+Unfortunately, these symbols are not translated back in error messages.
+Thus you may see confusing error messages when local symbols are used.
+Control characters `\003' (control-C) and `\004' (control-D) are used
+for the MMIX-specific local-symbol syntax.
+
+ The symbol `Main' is handled specially; it is always global.
+
+ By defining the symbols `__.MMIX.start..text' and
+`__.MMIX.start..data', the address of respectively the `.text' and
+`.data' segments of the final program can be defined, though when
+linking more than one object file, the code or data in the object file
+containing the symbol is not guaranteed to be start at that position;
+just the final executable. *Note MMIX-loc::.
+
+
+File: as.info, Node: MMIX-Regs, Next: MMIX-Pseudos, Prev: MMIX-Symbols, Up: MMIX-Syntax
+
+9.25.3.3 Register names
+.......................
+
+Local and global registers are specified as `$0' to `$255'. The
+recognized special register names are `rJ', `rA', `rB', `rC', `rD',
+`rE', `rF', `rG', `rH', `rI', `rK', `rL', `rM', `rN', `rO', `rP', `rQ',
+`rR', `rS', `rT', `rU', `rV', `rW', `rX', `rY', `rZ', `rBB', `rTT',
+`rWW', `rXX', `rYY' and `rZZ'. A leading `:' is optional for special
+register names.
+
+ Local and global symbols can be equated to register names and used in
+place of ordinary registers.
+
+ Similarly for special registers, local and global symbols can be
+used. Also, symbols equated from numbers and constant expressions are
+allowed in place of a special register, except when either of the
+options `--no-predefined-syms' and `--fixed-special-register-names' are
+specified. Then only the special register names above are allowed for
+the instructions having a special register operand; `GET' and `PUT'.
+
+
+File: as.info, Node: MMIX-Pseudos, Prev: MMIX-Regs, Up: MMIX-Syntax
+
+9.25.3.4 Assembler Directives
+.............................
+
+`LOC'
+ The `LOC' directive sets the current location to the value of the
+ operand field, which may include changing sections. If the
+ operand is a constant, the section is set to either `.data' if the
+ value is `0x2000000000000000' or larger, else it is set to `.text'.
+ Within a section, the current location may only be changed to
+ monotonically higher addresses. A LOC expression must be a
+ previously defined symbol or a "pure" constant.
+
+ An example, which sets the label PREV to the current location, and
+ updates the current location to eight bytes forward:
+ prev LOC @+8
+
+ When a LOC has a constant as its operand, a symbol
+ `__.MMIX.start..text' or `__.MMIX.start..data' is defined
+ depending on the address as mentioned above. Each such symbol is
+ interpreted as special by the linker, locating the section at that
+ address. Note that if multiple files are linked, the first object
+ file with that section will be mapped to that address (not
+ necessarily the file with the LOC definition).
+
+`LOCAL'
+ Example:
+ LOCAL external_symbol
+ LOCAL 42
+ .local asymbol
+
+ This directive-operation generates a link-time assertion that the
+ operand does not correspond to a global register. The operand is
+ an expression that at link-time resolves to a register symbol or a
+ number. A number is treated as the register having that number.
+ There is one restriction on the use of this directive: the
+ pseudo-directive must be placed in a section with contents, code
+ or data.
+
+`IS'
+ The `IS' directive:
+ asymbol IS an_expression
+ sets the symbol `asymbol' to `an_expression'. A symbol may not be
+ set more than once using this directive. Local labels may be set
+ using this directive, for example:
+ 5H IS @+4
+
+`GREG'
+ This directive reserves a global register, gives it an initial
+ value and optionally gives it a symbolic name. Some examples:
+
+ areg GREG
+ breg GREG data_value
+ GREG data_buffer
+ .greg creg, another_data_value
+
+ The symbolic register name can be used in place of a (non-special)
+ register. If a value isn't provided, it defaults to zero. Unless
+ the option `--no-merge-gregs' is specified, non-zero registers
+ allocated with this directive may be eliminated by `as'; another
+ register with the same value used in its place. Any of the
+ instructions `CSWAP', `GO', `LDA', `LDBU', `LDB', `LDHT', `LDOU',
+ `LDO', `LDSF', `LDTU', `LDT', `LDUNC', `LDVTS', `LDWU', `LDW',
+ `PREGO', `PRELD', `PREST', `PUSHGO', `STBU', `STB', `STCO', `STHT',
+ `STOU', `STSF', `STTU', `STT', `STUNC', `SYNCD', `SYNCID', can
+ have a value nearby an initial value in place of its second and
+ third operands. Here, "nearby" is defined as within the range
+ 0...255 from the initial value of such an allocated register.
+
+ buffer1 BYTE 0,0,0,0,0
+ buffer2 BYTE 0,0,0,0,0
+ ...
+ GREG buffer1
+ LDOU $42,buffer2
+ In the example above, the `Y' field of the `LDOUI' instruction
+ (LDOU with a constant Z) will be replaced with the global register
+ allocated for `buffer1', and the `Z' field will have the value 5,
+ the offset from `buffer1' to `buffer2'. The result is equivalent
+ to this code:
+ buffer1 BYTE 0,0,0,0,0
+ buffer2 BYTE 0,0,0,0,0
+ ...
+ tmpreg GREG buffer1
+ LDOU $42,tmpreg,(buffer2-buffer1)
+
+ Global registers allocated with this directive are allocated in
+ order higher-to-lower within a file. Other than that, the exact
+ order of register allocation and elimination is undefined. For
+ example, the order is undefined when more than one file with such
+ directives are linked together. With the options `-x' and
+ `--linker-allocated-gregs', `GREG' directives for two-operand
+ cases like the one mentioned above can be omitted. Sufficient
+ global registers will then be allocated by the linker.
+
+`BYTE'
+ The `BYTE' directive takes a series of operands separated by a
+ comma. If an operand is a string (*note Strings::), each
+ character of that string is emitted as a byte. Other operands
+ must be constant expressions without forward references, in the
+ range 0...255. If you need operands having expressions with
+ forward references, use `.byte' (*note Byte::). An operand can be
+ omitted, defaulting to a zero value.
+
+`WYDE'
+`TETRA'
+`OCTA'
+ The directives `WYDE', `TETRA' and `OCTA' emit constants of two,
+ four and eight bytes size respectively. Before anything else
+ happens for the directive, the current location is aligned to the
+ respective constant-size boundary. If a label is defined at the
+ beginning of the line, its value will be that after the alignment.
+ A single operand can be omitted, defaulting to a zero value
+ emitted for the directive. Operands can be expressed as strings
+ (*note Strings::), in which case each character in the string is
+ emitted as a separate constant of the size indicated by the
+ directive.
+
+`PREFIX'
+ The `PREFIX' directive sets a symbol name prefix to be prepended to
+ all symbols (except local symbols, *note MMIX-Symbols::), that are
+ not prefixed with `:', until the next `PREFIX' directive. Such
+ prefixes accumulate. For example,
+ PREFIX a
+ PREFIX b
+ c IS 0
+ defines a symbol `abc' with the value 0.
+
+`BSPEC'
+`ESPEC'
+ A pair of `BSPEC' and `ESPEC' directives delimit a section of
+ special contents (without specified semantics). Example:
+ BSPEC 42
+ TETRA 1,2,3
+ ESPEC
+ The single operand to `BSPEC' must be number in the range 0...255.
+ The `BSPEC' number 80 is used by the GNU binutils implementation.
+
+
+File: as.info, Node: MMIX-mmixal, Prev: MMIX-Syntax, Up: MMIX-Dependent
+
+9.25.4 Differences to `mmixal'
+------------------------------
+
+The binutils `as' and `ld' combination has a few differences in
+function compared to `mmixal' (*note mmixsite::).
+
+ The replacement of a symbol with a GREG-allocated register (*note
+GREG-base::) is not handled the exactly same way in `as' as in
+`mmixal'. This is apparent in the `mmixal' example file `inout.mms',
+where different registers with different offsets, eventually yielding
+the same address, are used in the first instruction. This type of
+difference should however not affect the function of any program unless
+it has specific assumptions about the allocated register number.
+
+ Line numbers (in the `mmo' object format) are currently not
+supported.
+
+ Expression operator precedence is not that of mmixal: operator
+precedence is that of the C programming language. It's recommended to
+use parentheses to explicitly specify wanted operator precedence
+whenever more than one type of operators are used.
+
+ The serialize unary operator `&', the fractional division operator
+`//', the logical not operator `!' and the modulus operator `%' are not
+available.
+
+ Symbols are not global by default, unless the option
+`--globalize-symbols' is passed. Use the `.global' directive to
+globalize symbols (*note Global::).
+
+ Operand syntax is a bit stricter with `as' than `mmixal'. For
+example, you can't say `addu 1,2,3', instead you must write `addu
+$1,$2,3'.
+
+ You can't LOC to a lower address than those already visited (i.e.,
+"backwards").
+
+ A LOC directive must come before any emitted code.
+
+ Predefined symbols are visible as file-local symbols after use. (In
+the ELF file, that is--the linked mmo file has no notion of a file-local
+symbol.)
+
+ Some mapping of constant expressions to sections in LOC expressions
+is attempted, but that functionality is easily confused and should be
+avoided unless compatibility with `mmixal' is required. A LOC
+expression to `0x2000000000000000' or higher, maps to the `.data'
+section and lower addresses map to the `.text' section (*note
+MMIX-loc::).
+
+ The code and data areas are each contiguous. Sparse programs with
+far-away LOC directives will take up the same amount of space as a
+contiguous program with zeros filled in the gaps between the LOC
+directives. If you need sparse programs, you might try and get the
+wanted effect with a linker script and splitting up the code parts into
+sections (*note Section::). Assembly code for this, to be compatible
+with `mmixal', would look something like:
+ .if 0
+ LOC away_expression
+ .else
+ .section away,"ax"
+ .fi
+ `as' will not execute the LOC directive and `mmixal' ignores the
+lines with `.'. This construct can be used generally to help
+compatibility.
+
+ Symbols can't be defined twice-not even to the same value.
+
+ Instruction mnemonics are recognized case-insensitive, though the
+`IS' and `GREG' pseudo-operations must be specified in upper-case
+characters.
+
+ There's no unicode support.
+
+ The following is a list of programs in `mmix.tar.gz', available at
+`http://www-cs-faculty.stanford.edu/~knuth/mmix-news.html', last
+checked with the version dated 2001-08-25 (md5sum
+c393470cfc86fac040487d22d2bf0172) that assemble with `mmixal' but do
+not assemble with `as':
+
+`silly.mms'
+ LOC to a previous address.
+
+`sim.mms'
+ Redefines symbol `Done'.
+
+`test.mms'
+ Uses the serial operator `&'.
+
+
+File: as.info, Node: MSP430-Dependent, Next: NS32K-Dependent, Prev: MMIX-Dependent, Up: Machine Dependencies
+
+9.26 MSP 430 Dependent Features
+===============================
+
+* Menu:
+
+* MSP430 Options:: Options
+* MSP430 Syntax:: Syntax
+* MSP430 Floating Point:: Floating Point
+* MSP430 Directives:: MSP 430 Machine Directives
+* MSP430 Opcodes:: Opcodes
+* MSP430 Profiling Capability:: Profiling Capability
+
+
+File: as.info, Node: MSP430 Options, Next: MSP430 Syntax, Up: MSP430-Dependent
+
+9.26.1 Options
+--------------
+
+`-m'
+ select the mpu arch. Currently has no effect.
+
+`-mP'
+ enables polymorph instructions handler.
+
+`-mQ'
+ enables relaxation at assembly time. DANGEROUS!
+
+
+
+File: as.info, Node: MSP430 Syntax, Next: MSP430 Floating Point, Prev: MSP430 Options, Up: MSP430-Dependent
+
+9.26.2 Syntax
+-------------
+
+* Menu:
+
+* MSP430-Macros:: Macros
+* MSP430-Chars:: Special Characters
+* MSP430-Regs:: Register Names
+* MSP430-Ext:: Assembler Extensions
+
+
+File: as.info, Node: MSP430-Macros, Next: MSP430-Chars, Up: MSP430 Syntax
+
+9.26.2.1 Macros
+...............
+
+The macro syntax used on the MSP 430 is like that described in the MSP
+430 Family Assembler Specification. Normal `as' macros should still
+work.
+
+ Additional built-in macros are:
+
+`llo(exp)'
+ Extracts least significant word from 32-bit expression 'exp'.
+
+`lhi(exp)'
+ Extracts most significant word from 32-bit expression 'exp'.
+
+`hlo(exp)'
+ Extracts 3rd word from 64-bit expression 'exp'.
+
+`hhi(exp)'
+ Extracts 4rd word from 64-bit expression 'exp'.
+
+
+ They normally being used as an immediate source operand.
+ mov #llo(1), r10 ; == mov #1, r10
+ mov #lhi(1), r10 ; == mov #0, r10
+
+
+File: as.info, Node: MSP430-Chars, Next: MSP430-Regs, Prev: MSP430-Macros, Up: MSP430 Syntax
+
+9.26.2.2 Special Characters
+...........................
+
+A semicolon (`;') appearing anywhere on a line starts a comment that
+extends to the end of that line.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but it can also be a logical line number
+directive (*note Comments::) or a preprocessor control command (*note
+Preprocessing::).
+
+ Multiple statements can appear on the same line provided that they
+are separated by the `{' character.
+
+ The character `$' in jump instructions indicates current location and
+implemented only for TI syntax compatibility.
+
+
+File: as.info, Node: MSP430-Regs, Next: MSP430-Ext, Prev: MSP430-Chars, Up: MSP430 Syntax
+
+9.26.2.3 Register Names
+.......................
+
+General-purpose registers are represented by predefined symbols of the
+form `rN' (for global registers), where N represents a number between
+`0' and `15'. The leading letters may be in either upper or lower
+case; for example, `r13' and `R7' are both valid register names.
+
+ Register names `PC', `SP' and `SR' cannot be used as register names
+and will be treated as variables. Use `r0', `r1', and `r2' instead.
+
+
+File: as.info, Node: MSP430-Ext, Prev: MSP430-Regs, Up: MSP430 Syntax
+
+9.26.2.4 Assembler Extensions
+.............................
+
+`@rN'
+ As destination operand being treated as `0(rn)'
+
+`0(rN)'
+ As source operand being treated as `@rn'
+
+`jCOND +N'
+ Skips next N bytes followed by jump instruction and equivalent to
+ `jCOND $+N+2'
+
+
+ Also, there are some instructions, which cannot be found in other
+assemblers. These are branch instructions, which has different opcodes
+upon jump distance. They all got PC relative addressing mode.
+
+`beq label'
+ A polymorph instruction which is `jeq label' in case if jump
+ distance within allowed range for cpu's jump instruction. If not,
+ this unrolls into a sequence of
+ jne $+6
+ br label
+
+`bne label'
+ A polymorph instruction which is `jne label' or `jeq +4; br label'
+
+`blt label'
+ A polymorph instruction which is `jl label' or `jge +4; br label'
+
+`bltn label'
+ A polymorph instruction which is `jn label' or `jn +2; jmp +4; br
+ label'
+
+`bltu label'
+ A polymorph instruction which is `jlo label' or `jhs +2; br label'
+
+`bge label'
+ A polymorph instruction which is `jge label' or `jl +4; br label'
+
+`bgeu label'
+ A polymorph instruction which is `jhs label' or `jlo +4; br label'
+
+`bgt label'
+ A polymorph instruction which is `jeq +2; jge label' or `jeq +6;
+ jl +4; br label'
+
+`bgtu label'
+ A polymorph instruction which is `jeq +2; jhs label' or `jeq +6;
+ jlo +4; br label'
+
+`bleu label'
+ A polymorph instruction which is `jeq label; jlo label' or `jeq
+ +2; jhs +4; br label'
+
+`ble label'
+ A polymorph instruction which is `jeq label; jl label' or `jeq
+ +2; jge +4; br label'
+
+`jump label'
+ A polymorph instruction which is `jmp label' or `br label'
+
+
+File: as.info, Node: MSP430 Floating Point, Next: MSP430 Directives, Prev: MSP430 Syntax, Up: MSP430-Dependent
+
+9.26.3 Floating Point
+---------------------
+
+The MSP 430 family uses IEEE 32-bit floating-point numbers.
+
+
+File: as.info, Node: MSP430 Directives, Next: MSP430 Opcodes, Prev: MSP430 Floating Point, Up: MSP430-Dependent
+
+9.26.4 MSP 430 Machine Directives
+---------------------------------
+
+`.file'
+ This directive is ignored; it is accepted for compatibility with
+ other MSP 430 assemblers.
+
+ _Warning:_ in other versions of the GNU assembler, `.file' is
+ used for the directive called `.app-file' in the MSP 430
+ support.
+
+`.line'
+ This directive is ignored; it is accepted for compatibility with
+ other MSP 430 assemblers.
+
+`.arch'
+ Currently this directive is ignored; it is accepted for
+ compatibility with other MSP 430 assemblers.
+
+`.profiler'
+ This directive instructs assembler to add new profile entry to the
+ object file.
+
+
+
+File: as.info, Node: MSP430 Opcodes, Next: MSP430 Profiling Capability, Prev: MSP430 Directives, Up: MSP430-Dependent
+
+9.26.5 Opcodes
+--------------
+
+`as' implements all the standard MSP 430 opcodes. No additional
+pseudo-instructions are needed on this family.
+
+ For information on the 430 machine instruction set, see `MSP430
+User's Manual, document slau049d', Texas Instrument, Inc.
+
+
+File: as.info, Node: MSP430 Profiling Capability, Prev: MSP430 Opcodes, Up: MSP430-Dependent
+
+9.26.6 Profiling Capability
+---------------------------
+
+It is a performance hit to use gcc's profiling approach for this tiny
+target. Even more - jtag hardware facility does not perform any
+profiling functions. However we've got gdb's built-in simulator where
+we can do anything.
+
+ We define new section `.profiler' which holds all profiling
+information. We define new pseudo operation `.profiler' which will
+instruct assembler to add new profile entry to the object file. Profile
+should take place at the present address.
+
+ Pseudo operation format:
+
+ `.profiler flags,function_to_profile [, cycle_corrector, extra]'
+
+ where:
+
+ `flags' is a combination of the following characters:
+
+ `s'
+ function entry
+
+ `x'
+ function exit
+
+ `i'
+ function is in init section
+
+ `f'
+ function is in fini section
+
+ `l'
+ library call
+
+ `c'
+ libc standard call
+
+ `d'
+ stack value demand
+
+ `I'
+ interrupt service routine
+
+ `P'
+ prologue start
+
+ `p'
+ prologue end
+
+ `E'
+ epilogue start
+
+ `e'
+ epilogue end
+
+ `j'
+ long jump / sjlj unwind
+
+ `a'
+ an arbitrary code fragment
+
+ `t'
+ extra parameter saved (a constant value like frame size)
+
+`function_to_profile'
+ a function address
+
+`cycle_corrector'
+ a value which should be added to the cycle counter, zero if
+ omitted.
+
+`extra'
+ any extra parameter, zero if omitted.
+
+
+ For example:
+ .global fxx
+ .type fxx,@function
+ fxx:
+ .LFrameOffset_fxx=0x08
+ .profiler "scdP", fxx ; function entry.
+ ; we also demand stack value to be saved
+ push r11
+ push r10
+ push r9
+ push r8
+ .profiler "cdpt",fxx,0, .LFrameOffset_fxx ; check stack value at this point
+ ; (this is a prologue end)
+ ; note, that spare var filled with
+ ; the farme size
+ mov r15,r8
+ ...
+ .profiler cdE,fxx ; check stack
+ pop r8
+ pop r9
+ pop r10
+ pop r11
+ .profiler xcde,fxx,3 ; exit adds 3 to the cycle counter
+ ret ; cause 'ret' insn takes 3 cycles
+
+
+File: as.info, Node: NS32K-Dependent, Next: SH-Dependent, Prev: MSP430-Dependent, Up: Machine Dependencies
+
+9.27 NS32K Dependent Features
+=============================
+
+* Menu:
+
+* NS32K Syntax:: Syntax
+
+
+File: as.info, Node: NS32K Syntax, Up: NS32K-Dependent
+
+9.27.1 Syntax
+-------------
+
+* Menu:
+
+* NS32K-Chars:: Special Characters
+
+
+File: as.info, Node: NS32K-Chars, Up: NS32K Syntax
+
+9.27.1.1 Special Characters
+...........................
+
+The presence of a `#' appearing anywhere on a line indicates the start
+of a comment that extends to the end of that line.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line can also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ If Sequent compatibility has been configured into the assembler then
+the `|' character appearing as the first character on a line will also
+indicate the start of a line comment.
+
+ The `;' character can be used to separate statements on the same
+line.
+
+
+File: as.info, Node: PDP-11-Dependent, Next: PJ-Dependent, Prev: SH64-Dependent, Up: Machine Dependencies
+
+9.28 PDP-11 Dependent Features
+==============================
+
+* Menu:
+
+* PDP-11-Options:: Options
+* PDP-11-Pseudos:: Assembler Directives
+* PDP-11-Syntax:: DEC Syntax versus BSD Syntax
+* PDP-11-Mnemonics:: Instruction Naming
+* PDP-11-Synthetic:: Synthetic Instructions
+
+
+File: as.info, Node: PDP-11-Options, Next: PDP-11-Pseudos, Up: PDP-11-Dependent
+
+9.28.1 Options
+--------------
+
+The PDP-11 version of `as' has a rich set of machine dependent options.
+
+9.28.1.1 Code Generation Options
+................................
+
+`-mpic | -mno-pic'
+ Generate position-independent (or position-dependent) code.
+
+ The default is to generate position-independent code.
+
+9.28.1.2 Instruction Set Extension Options
+..........................................
+
+These options enables or disables the use of extensions over the base
+line instruction set as introduced by the first PDP-11 CPU: the KA11.
+Most options come in two variants: a `-m'EXTENSION that enables
+EXTENSION, and a `-mno-'EXTENSION that disables EXTENSION.
+
+ The default is to enable all extensions.
+
+`-mall | -mall-extensions'
+ Enable all instruction set extensions.
+
+`-mno-extensions'
+ Disable all instruction set extensions.
+
+`-mcis | -mno-cis'
+ Enable (or disable) the use of the commercial instruction set,
+ which consists of these instructions: `ADDNI', `ADDN', `ADDPI',
+ `ADDP', `ASHNI', `ASHN', `ASHPI', `ASHP', `CMPCI', `CMPC',
+ `CMPNI', `CMPN', `CMPPI', `CMPP', `CVTLNI', `CVTLN', `CVTLPI',
+ `CVTLP', `CVTNLI', `CVTNL', `CVTNPI', `CVTNP', `CVTPLI', `CVTPL',
+ `CVTPNI', `CVTPN', `DIVPI', `DIVP', `L2DR', `L3DR', `LOCCI',
+ `LOCC', `MATCI', `MATC', `MOVCI', `MOVC', `MOVRCI', `MOVRC',
+ `MOVTCI', `MOVTC', `MULPI', `MULP', `SCANCI', `SCANC', `SKPCI',
+ `SKPC', `SPANCI', `SPANC', `SUBNI', `SUBN', `SUBPI', and `SUBP'.
+
+`-mcsm | -mno-csm'
+ Enable (or disable) the use of the `CSM' instruction.
+
+`-meis | -mno-eis'
+ Enable (or disable) the use of the extended instruction set, which
+ consists of these instructions: `ASHC', `ASH', `DIV', `MARK',
+ `MUL', `RTT', `SOB' `SXT', and `XOR'.
+
+`-mfis | -mkev11'
+`-mno-fis | -mno-kev11'
+ Enable (or disable) the use of the KEV11 floating-point
+ instructions: `FADD', `FDIV', `FMUL', and `FSUB'.
+
+`-mfpp | -mfpu | -mfp-11'
+`-mno-fpp | -mno-fpu | -mno-fp-11'
+ Enable (or disable) the use of FP-11 floating-point instructions:
+ `ABSF', `ADDF', `CFCC', `CLRF', `CMPF', `DIVF', `LDCFF', `LDCIF',
+ `LDEXP', `LDF', `LDFPS', `MODF', `MULF', `NEGF', `SETD', `SETF',
+ `SETI', `SETL', `STCFF', `STCFI', `STEXP', `STF', `STFPS', `STST',
+ `SUBF', and `TSTF'.
+
+`-mlimited-eis | -mno-limited-eis'
+ Enable (or disable) the use of the limited extended instruction
+ set: `MARK', `RTT', `SOB', `SXT', and `XOR'.
+
+ The -mno-limited-eis options also implies -mno-eis.
+
+`-mmfpt | -mno-mfpt'
+ Enable (or disable) the use of the `MFPT' instruction.
+
+`-mmultiproc | -mno-multiproc'
+ Enable (or disable) the use of multiprocessor instructions:
+ `TSTSET' and `WRTLCK'.
+
+`-mmxps | -mno-mxps'
+ Enable (or disable) the use of the `MFPS' and `MTPS' instructions.
+
+`-mspl | -mno-spl'
+ Enable (or disable) the use of the `SPL' instruction.
+
+ Enable (or disable) the use of the microcode instructions: `LDUB',
+ `MED', and `XFC'.
+
+9.28.1.3 CPU Model Options
+..........................
+
+These options enable the instruction set extensions supported by a
+particular CPU, and disables all other extensions.
+
+`-mka11'
+ KA11 CPU. Base line instruction set only.
+
+`-mkb11'
+ KB11 CPU. Enable extended instruction set and `SPL'.
+
+`-mkd11a'
+ KD11-A CPU. Enable limited extended instruction set.
+
+`-mkd11b'
+ KD11-B CPU. Base line instruction set only.
+
+`-mkd11d'
+ KD11-D CPU. Base line instruction set only.
+
+`-mkd11e'
+ KD11-E CPU. Enable extended instruction set, `MFPS', and `MTPS'.
+
+`-mkd11f | -mkd11h | -mkd11q'
+ KD11-F, KD11-H, or KD11-Q CPU. Enable limited extended
+ instruction set, `MFPS', and `MTPS'.
+
+`-mkd11k'
+ KD11-K CPU. Enable extended instruction set, `LDUB', `MED',
+ `MFPS', `MFPT', `MTPS', and `XFC'.
+
+`-mkd11z'
+ KD11-Z CPU. Enable extended instruction set, `CSM', `MFPS',
+ `MFPT', `MTPS', and `SPL'.
+
+`-mf11'
+ F11 CPU. Enable extended instruction set, `MFPS', `MFPT', and
+ `MTPS'.
+
+`-mj11'
+ J11 CPU. Enable extended instruction set, `CSM', `MFPS', `MFPT',
+ `MTPS', `SPL', `TSTSET', and `WRTLCK'.
+
+`-mt11'
+ T11 CPU. Enable limited extended instruction set, `MFPS', and
+ `MTPS'.
+
+9.28.1.4 Machine Model Options
+..............................
+
+These options enable the instruction set extensions supported by a
+particular machine model, and disables all other extensions.
+
+`-m11/03'
+ Same as `-mkd11f'.
+
+`-m11/04'
+ Same as `-mkd11d'.
+
+`-m11/05 | -m11/10'
+ Same as `-mkd11b'.
+
+`-m11/15 | -m11/20'
+ Same as `-mka11'.
+
+`-m11/21'
+ Same as `-mt11'.
+
+`-m11/23 | -m11/24'
+ Same as `-mf11'.
+
+`-m11/34'
+ Same as `-mkd11e'.
+
+`-m11/34a'
+ Ame as `-mkd11e' `-mfpp'.
+
+`-m11/35 | -m11/40'
+ Same as `-mkd11a'.
+
+`-m11/44'
+ Same as `-mkd11z'.
+
+`-m11/45 | -m11/50 | -m11/55 | -m11/70'
+ Same as `-mkb11'.
+
+`-m11/53 | -m11/73 | -m11/83 | -m11/84 | -m11/93 | -m11/94'
+ Same as `-mj11'.
+
+`-m11/60'
+ Same as `-mkd11k'.
+
+
+File: as.info, Node: PDP-11-Pseudos, Next: PDP-11-Syntax, Prev: PDP-11-Options, Up: PDP-11-Dependent
+
+9.28.2 Assembler Directives
+---------------------------
+
+The PDP-11 version of `as' has a few machine dependent assembler
+directives.
+
+`.bss'
+ Switch to the `bss' section.
+
+`.even'
+ Align the location counter to an even number.
+
+
+File: as.info, Node: PDP-11-Syntax, Next: PDP-11-Mnemonics, Prev: PDP-11-Pseudos, Up: PDP-11-Dependent
+
+9.28.3 PDP-11 Assembly Language Syntax
+--------------------------------------
+
+`as' supports both DEC syntax and BSD syntax. The only difference is
+that in DEC syntax, a `#' character is used to denote an immediate
+constants, while in BSD syntax the character for this purpose is `$'.
+
+ general-purpose registers are named `r0' through `r7'. Mnemonic
+alternatives for `r6' and `r7' are `sp' and `pc', respectively.
+
+ Floating-point registers are named `ac0' through `ac3', or
+alternatively `fr0' through `fr3'.
+
+ Comments are started with a `#' or a `/' character, and extend to
+the end of the line. (FIXME: clash with immediates?)
+
+ Multiple statements on the same line can be separated by the `;'
+character.
+
+
+File: as.info, Node: PDP-11-Mnemonics, Next: PDP-11-Synthetic, Prev: PDP-11-Syntax, Up: PDP-11-Dependent
+
+9.28.4 Instruction Naming
+-------------------------
+
+Some instructions have alternative names.
+
+`BCC'
+ `BHIS'
+
+`BCS'
+ `BLO'
+
+`L2DR'
+ `L2D'
+
+`L3DR'
+ `L3D'
+
+`SYS'
+ `TRAP'
+
+
+File: as.info, Node: PDP-11-Synthetic, Prev: PDP-11-Mnemonics, Up: PDP-11-Dependent
+
+9.28.5 Synthetic Instructions
+-----------------------------
+
+The `JBR' and `J'CC synthetic instructions are not supported yet.
+
+
+File: as.info, Node: PJ-Dependent, Next: PPC-Dependent, Prev: PDP-11-Dependent, Up: Machine Dependencies
+
+9.29 picoJava Dependent Features
+================================
+
+* Menu:
+
+* PJ Options:: Options
+* PJ Syntax:: PJ Syntax
+
+
+File: as.info, Node: PJ Options, Next: PJ Syntax, Up: PJ-Dependent
+
+9.29.1 Options
+--------------
+
+`as' has two additional command-line options for the picoJava
+architecture.
+`-ml'
+ This option selects little endian data output.
+
+`-mb'
+ This option selects big endian data output.
+
+
+File: as.info, Node: PJ Syntax, Prev: PJ Options, Up: PJ-Dependent
+
+9.29.2 PJ Syntax
+----------------
+
+* Menu:
+
+* PJ-Chars:: Special Characters
+
+
+File: as.info, Node: PJ-Chars, Up: PJ Syntax
+
+9.29.2.1 Special Characters
+...........................
+
+The presence of a `!' or `/' on a line indicates the start of a comment
+that extends to the end of the current line.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line could also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ The `;' character can be used to separate statements on the same
+line.
+
+
+File: as.info, Node: PPC-Dependent, Next: RX-Dependent, Prev: PJ-Dependent, Up: Machine Dependencies
+
+9.30 PowerPC Dependent Features
+===============================
+
+* Menu:
+
+* PowerPC-Opts:: Options
+* PowerPC-Pseudo:: PowerPC Assembler Directives
+* PowerPC-Syntax:: PowerPC Syntax
+
+
+File: as.info, Node: PowerPC-Opts, Next: PowerPC-Pseudo, Up: PPC-Dependent
+
+9.30.1 Options
+--------------
+
+The PowerPC chip family includes several successive levels, using the
+same core instruction set, but including a few additional instructions
+at each level. There are exceptions to this however. For details on
+what instructions each variant supports, please see the chip's
+architecture reference manual.
+
+ The following table lists all available PowerPC options.
+
+`-a32'
+ Generate ELF32 or XCOFF32.
+
+`-a64'
+ Generate ELF64 or XCOFF64.
+
+`-K PIC'
+ Set EF_PPC_RELOCATABLE_LIB in ELF flags.
+
+`-mpwrx | -mpwr2'
+ Generate code for POWER/2 (RIOS2).
+
+`-mpwr'
+ Generate code for POWER (RIOS1)
+
+`-m601'
+ Generate code for PowerPC 601.
+
+`-mppc, -mppc32, -m603, -m604'
+ Generate code for PowerPC 603/604.
+
+`-m403, -m405'
+ Generate code for PowerPC 403/405.
+
+`-m440'
+ Generate code for PowerPC 440. BookE and some 405 instructions.
+
+`-m464'
+ Generate code for PowerPC 464.
+
+`-m476'
+ Generate code for PowerPC 476.
+
+`-m7400, -m7410, -m7450, -m7455'
+ Generate code for PowerPC 7400/7410/7450/7455.
+
+`-m750cl'
+ Generate code for PowerPC 750CL.
+
+`-mppc64, -m620'
+ Generate code for PowerPC 620/625/630.
+
+`-me500, -me500x2'
+ Generate code for Motorola e500 core complex.
+
+`-me500mc'
+ Generate code for Freescale e500mc core complex.
+
+`-me500mc64'
+ Generate code for Freescale e500mc64 core complex.
+
+`-mspe'
+ Generate code for Motorola SPE instructions.
+
+`-mtitan'
+ Generate code for AppliedMicro Titan core complex.
+
+`-mppc64bridge'
+ Generate code for PowerPC 64, including bridge insns.
+
+`-mbooke'
+ Generate code for 32-bit BookE.
+
+`-ma2'
+ Generate code for A2 architecture.
+
+`-me300'
+ Generate code for PowerPC e300 family.
+
+`-maltivec'
+ Generate code for processors with AltiVec instructions.
+
+`-mvsx'
+ Generate code for processors with Vector-Scalar (VSX) instructions.
+
+`-mpower4, -mpwr4'
+ Generate code for Power4 architecture.
+
+`-mpower5, -mpwr5, -mpwr5x'
+ Generate code for Power5 architecture.
+
+`-mpower6, -mpwr6'
+ Generate code for Power6 architecture.
+
+`-mpower7, -mpwr7'
+ Generate code for Power7 architecture.
+
+`-mcell'
+ Generate code for Cell Broadband Engine architecture.
+
+`-mcom'
+ Generate code Power/PowerPC common instructions.
+
+`-many'
+ Generate code for any architecture (PWR/PWRX/PPC).
+
+`-mregnames'
+ Allow symbolic names for registers.
+
+`-mno-regnames'
+ Do not allow symbolic names for registers.
+
+`-mrelocatable'
+ Support for GCC's -mrelocatable option.
+
+`-mrelocatable-lib'
+ Support for GCC's -mrelocatable-lib option.
+
+`-memb'
+ Set PPC_EMB bit in ELF flags.
+
+`-mlittle, -mlittle-endian, -le'
+ Generate code for a little endian machine.
+
+`-mbig, -mbig-endian, -be'
+ Generate code for a big endian machine.
+
+`-msolaris'
+ Generate code for Solaris.
+
+`-mno-solaris'
+ Do not generate code for Solaris.
+
+`-nops=COUNT'
+ If an alignment directive inserts more than COUNT nops, put a
+ branch at the beginning to skip execution of the nops.
+
+
+File: as.info, Node: PowerPC-Pseudo, Next: PowerPC-Syntax, Prev: PowerPC-Opts, Up: PPC-Dependent
+
+9.30.2 PowerPC Assembler Directives
+-----------------------------------
+
+A number of assembler directives are available for PowerPC. The
+following table is far from complete.
+
+`.machine "string"'
+ This directive allows you to change the machine for which code is
+ generated. `"string"' may be any of the -m cpu selection options
+ (without the -m) enclosed in double quotes, `"push"', or `"pop"'.
+ `.machine "push"' saves the currently selected cpu, which may be
+ restored with `.machine "pop"'.
+
+
+File: as.info, Node: PowerPC-Syntax, Prev: PowerPC-Pseudo, Up: PPC-Dependent
+
+9.30.3 PowerPC Syntax
+---------------------
+
+* Menu:
+
+* PowerPC-Chars:: Special Characters
+
+
+File: as.info, Node: PowerPC-Chars, Up: PowerPC-Syntax
+
+9.30.3.1 Special Characters
+...........................
+
+The presence of a `#' on a line indicates the start of a comment that
+extends to the end of the current line.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line could also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ If the assembler has been configured for the ppc-*-solaris* target
+then the `!' character also acts as a line comment character. This can
+be disabled via the `-mno-solaris' command line option.
+
+ The `;' character can be used to separate statements on the same
+line.
+
+
+File: as.info, Node: RX-Dependent, Next: S/390-Dependent, Prev: PPC-Dependent, Up: Machine Dependencies
+
+9.31 RX Dependent Features
+==========================
+
+* Menu:
+
+* RX-Opts:: RX Assembler Command Line Options
+* RX-Modifiers:: Symbolic Operand Modifiers
+* RX-Directives:: Assembler Directives
+* RX-Float:: Floating Point
+* RX-Syntax:: Syntax
+
+
+File: as.info, Node: RX-Opts, Next: RX-Modifiers, Up: RX-Dependent
+
+9.31.1 RX Options
+-----------------
+
+The Renesas RX port of `as' has a few target specfic command line
+options:
+
+`-m32bit-doubles'
+ This option controls the ABI and indicates to use a 32-bit float
+ ABI. It has no effect on the assembled instructions, but it does
+ influence the behaviour of the `.double' pseudo-op. This is the
+ default.
+
+`-m64bit-doubles'
+ This option controls the ABI and indicates to use a 64-bit float
+ ABI. It has no effect on the assembled instructions, but it does
+ influence the behaviour of the `.double' pseudo-op.
+
+`-mbig-endian'
+ This option controls the ABI and indicates to use a big-endian data
+ ABI. It has no effect on the assembled instructions, but it does
+ influence the behaviour of the `.short', `.hword', `.int',
+ `.word', `.long', `.quad' and `.octa' pseudo-ops.
+
+`-mlittle-endian'
+ This option controls the ABI and indicates to use a little-endian
+ data ABI. It has no effect on the assembled instructions, but it
+ does influence the behaviour of the `.short', `.hword', `.int',
+ `.word', `.long', `.quad' and `.octa' pseudo-ops. This is the
+ default.
+
+`-muse-conventional-section-names'
+ This option controls the default names given to the code (.text),
+ initialised data (.data) and uninitialised data sections (.bss).
+
+`-muse-renesas-section-names'
+ This option controls the default names given to the code (.P),
+ initialised data (.D_1) and uninitialised data sections (.B_1).
+ This is the default.
+
+`-msmall-data-limit'
+ This option tells the assembler that the small data limit feature
+ of the RX port of GCC is being used. This results in the assembler
+ generating an undefined reference to a symbol called __gp for use
+ by the relocations that are needed to support the small data limit
+ feature. This option is not enabled by default as it would
+ otherwise pollute the symbol table.
+
+
+
+File: as.info, Node: RX-Modifiers, Next: RX-Directives, Prev: RX-Opts, Up: RX-Dependent
+
+9.31.2 Symbolic Operand Modifiers
+---------------------------------
+
+The assembler supports several modifiers when using symbol addresses in
+RX instruction operands. The general syntax is the following:
+
+ %modifier(symbol)
+
+`%gp'
+
+
+File: as.info, Node: RX-Directives, Next: RX-Float, Prev: RX-Modifiers, Up: RX-Dependent
+
+9.31.3 Assembler Directives
+---------------------------
+
+The RX version of `as' has the following specific assembler directives:
+
+`.3byte'
+ Inserts a 3-byte value into the output file at the current
+ location.
+
+
+
+File: as.info, Node: RX-Float, Next: RX-Syntax, Prev: RX-Directives, Up: RX-Dependent
+
+9.31.4 Floating Point
+---------------------
+
+The floating point formats generated by directives are these.
+
+`.float'
+ `Single' precision (32-bit) floating point constants.
+
+`.double'
+ If the `-m64bit-doubles' command line option has been specified
+ then then `double' directive generates `double' precision (64-bit)
+ floating point constants, otherwise it generates `single'
+ precision (32-bit) floating point constants. To force the
+ generation of 64-bit floating point constants used the `dc.d'
+ directive instead.
+
+
+
+File: as.info, Node: RX-Syntax, Prev: RX-Float, Up: RX-Dependent
+
+9.31.5 Syntax for the RX
+------------------------
+
+* Menu:
+
+* RX-Chars:: Special Characters
+
+
+File: as.info, Node: RX-Chars, Up: RX-Syntax
+
+9.31.5.1 Special Characters
+...........................
+
+The presence of a `;' appearing anywhere on a line indicates the start
+of a comment that extends to the end of that line.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line can also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ The `!' character can be used to separate statements on the same
+line.
+
+
+File: as.info, Node: S/390-Dependent, Next: SCORE-Dependent, Prev: RX-Dependent, Up: Machine Dependencies
+
+9.32 IBM S/390 Dependent Features
+=================================
+
+ The s390 version of `as' supports two architectures modes and seven
+chip levels. The architecture modes are the Enterprise System
+Architecture (ESA) and the newer z/Architecture mode. The chip levels
+are g5, g6, z900, z990, z9-109, z9-ec, z10 and z196.
+
+* Menu:
+
+* s390 Options:: Command-line Options.
+* s390 Characters:: Special Characters.
+* s390 Syntax:: Assembler Instruction syntax.
+* s390 Directives:: Assembler Directives.
+* s390 Floating Point:: Floating Point.
+
+
+File: as.info, Node: s390 Options, Next: s390 Characters, Up: S/390-Dependent
+
+9.32.1 Options
+--------------
+
+The following table lists all available s390 specific options:
+
+`-m31 | -m64'
+ Select 31- or 64-bit ABI implying a word size of 32- or 64-bit.
+
+ These options are only available with the ELF object file format,
+ and require that the necessary BFD support has been included (on a
+ 31-bit platform you must add -enable-64-bit-bfd on the call to the
+ configure script to enable 64-bit usage and use s390x as target
+ platform).
+
+`-mesa | -mzarch'
+ Select the architecture mode, either the Enterprise System
+ Architecture (esa) mode or the z/Architecture mode (zarch).
+
+ The 64-bit instructions are only available with the z/Architecture
+ mode. The combination of `-m64' and `-mesa' results in a warning
+ message.
+
+`-march=CPU'
+ This option specifies the target processor. The following
+ processor names are recognized: `g5', `g6', `z900', `z990',
+ `z9-109', `z9-ec', `z10' and `z196'. Assembling an instruction
+ that is not supported on the target processor results in an error
+ message. Do not specify `g5' or `g6' with `-mzarch'.
+
+`-mregnames'
+ Allow symbolic names for registers.
+
+`-mno-regnames'
+ Do not allow symbolic names for registers.
+
+`-mwarn-areg-zero'
+ Warn whenever the operand for a base or index register has been
+ specified but evaluates to zero. This can indicate the misuse of
+ general purpose register 0 as an address register.
+
+
+
+File: as.info, Node: s390 Characters, Next: s390 Syntax, Prev: s390 Options, Up: S/390-Dependent
+
+9.32.2 Special Characters
+-------------------------
+
+`#' is the line comment character.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line could also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ The `;' character can be used instead of a newline to separate
+statements.
+
+
+File: as.info, Node: s390 Syntax, Next: s390 Directives, Prev: s390 Characters, Up: S/390-Dependent
+
+9.32.3 Instruction syntax
+-------------------------
+
+The assembler syntax closely follows the syntax outlined in Enterprise
+Systems Architecture/390 Principles of Operation (SA22-7201) and the
+z/Architecture Principles of Operation (SA22-7832).
+
+ Each instruction has two major parts, the instruction mnemonic and
+the instruction operands. The instruction format varies.
+
+* Menu:
+
+* s390 Register:: Register Naming
+* s390 Mnemonics:: Instruction Mnemonics
+* s390 Operands:: Instruction Operands
+* s390 Formats:: Instruction Formats
+* s390 Aliases:: Instruction Aliases
+* s390 Operand Modifier:: Instruction Operand Modifier
+* s390 Instruction Marker:: Instruction Marker
+* s390 Literal Pool Entries:: Literal Pool Entries
+
+
+File: as.info, Node: s390 Register, Next: s390 Mnemonics, Up: s390 Syntax
+
+9.32.3.1 Register naming
+........................
+
+The `as' recognizes a number of predefined symbols for the various
+processor registers. A register specification in one of the instruction
+formats is an unsigned integer between 0 and 15. The specific
+instruction and the position of the register in the instruction format
+denotes the type of the register. The register symbols are prefixed with
+`%':
+
+ %rN the 16 general purpose registers, 0 <= N <= 15
+ %fN the 16 floating point registers, 0 <= N <= 15
+ %aN the 16 access registers, 0 <= N <= 15
+ %cN the 16 control registers, 0 <= N <= 15
+ %lit an alias for the general purpose register %r13
+ %sp an alias for the general purpose register %r15
+
+
+File: as.info, Node: s390 Mnemonics, Next: s390 Operands, Prev: s390 Register, Up: s390 Syntax
+
+9.32.3.2 Instruction Mnemonics
+..............................
+
+All instructions documented in the Principles of Operation are supported
+with the mnemonic and order of operands as described. The instruction
+mnemonic identifies the instruction format (*Note s390 Formats::) and
+the specific operation code for the instruction. For example, the `lr'
+mnemonic denotes the instruction format `RR' with the operation code
+`0x18'.
+
+ The definition of the various mnemonics follows a scheme, where the
+first character usually hint at the type of the instruction:
+
+ a add instruction, for example `al' for add logical 32-bit
+ b branch instruction, for example `bc' for branch on condition
+ c compare or convert instruction, for example `cr' for compare
+ register 32-bit
+ d divide instruction, for example `dlr' devide logical register
+ 64-bit to 32-bit
+ i insert instruction, for example `ic' insert character
+ l load instruction, for example `ltr' load and test register
+ mv move instruction, for example `mvc' move character
+ m multiply instruction, for example `mh' multiply halfword
+ n and instruction, for example `ni' and immediate
+ o or instruction, for example `oc' or character
+ sla, sll shift left single instruction
+ sra, srl shift right single instruction
+ st store instruction, for example `stm' store multiple
+ s subtract instruction, for example `slr' subtract
+ logical 32-bit
+ t test or translate instruction, of example `tm' test under mask
+ x exclusive or instruction, for example `xc' exclusive or
+ character
+
+ Certain characters at the end of the mnemonic may describe a property
+of the instruction:
+
+ c the instruction uses a 8-bit character operand
+ f the instruction extends a 32-bit operand to 64 bit
+ g the operands are treated as 64-bit values
+ h the operand uses a 16-bit halfword operand
+ i the instruction uses an immediate operand
+ l the instruction uses unsigned, logical operands
+ m the instruction uses a mask or operates on multiple values
+ r if r is the last character, the instruction operates on registers
+ y the instruction uses 20-bit displacements
+
+ There are many exceptions to the scheme outlined in the above lists,
+in particular for the priviledged instructions. For non-priviledged
+instruction it works quite well, for example the instruction `clgfr' c:
+compare instruction, l: unsigned operands, g: 64-bit operands, f: 32-
+to 64-bit extension, r: register operands. The instruction compares an
+64-bit value in a register with the zero extended 32-bit value from a
+second register. For a complete list of all mnemonics see appendix B
+in the Principles of Operation.
+
+
+File: as.info, Node: s390 Operands, Next: s390 Formats, Prev: s390 Mnemonics, Up: s390 Syntax
+
+9.32.3.3 Instruction Operands
+.............................
+
+Instruction operands can be grouped into three classes, operands located
+in registers, immediate operands, and operands in storage.
+
+ A register operand can be located in general, floating-point, access,
+or control register. The register is identified by a four-bit field.
+The field containing the register operand is called the R field.
+
+ Immediate operands are contained within the instruction and can have
+8, 16 or 32 bits. The field containing the immediate operand is called
+the I field. Dependent on the instruction the I field is either signed
+or unsigned.
+
+ A storage operand consists of an address and a length. The address
+of a storage operands can be specified in any of these ways:
+
+ * The content of a single general R
+
+ * The sum of the content of a general register called the base
+ register B plus the content of a displacement field D
+
+ * The sum of the contents of two general registers called the index
+ register X and the base register B plus the content of a
+ displacement field
+
+ * The sum of the current instruction address and a 32-bit signed
+ immediate field multiplied by two.
+
+ The length of a storage operand can be:
+
+ * Implied by the instruction
+
+ * Specified by a bitmask
+
+ * Specified by a four-bit or eight-bit length field L
+
+ * Specified by the content of a general register
+
+ The notation for storage operand addresses formed from multiple
+fields is as follows:
+
+`Dn(Bn)'
+ the address for operand number n is formed from the content of
+ general register Bn called the base register and the displacement
+ field Dn.
+
+`Dn(Xn,Bn)'
+ the address for operand number n is formed from the content of
+ general register Xn called the index register, general register Bn
+ called the base register and the displacement field Dn.
+
+`Dn(Ln,Bn)'
+ the address for operand number n is formed from the content of
+ general regiser Bn called the base register and the displacement
+ field Dn. The length of the operand n is specified by the field
+ Ln.
+
+ The base registers Bn and the index registers Xn of a storage
+operand can be skipped. If Bn and Xn are skipped, a zero will be stored
+to the operand field. The notation changes as follows:
+
+ full notation short notation
+ ------------------------------------------
+ Dn(0,Bn) Dn(Bn)
+ Dn(0,0) Dn
+ Dn(0) Dn
+ Dn(Ln,0) Dn(Ln)
+
+
+File: as.info, Node: s390 Formats, Next: s390 Aliases, Prev: s390 Operands, Up: s390 Syntax
+
+9.32.3.4 Instruction Formats
+............................
+
+The Principles of Operation manuals lists 26 instruction formats where
+some of the formats have multiple variants. For the `.insn' pseudo
+directive the assembler recognizes some of the formats. Typically, the
+most general variant of the instruction format is used by the `.insn'
+directive.
+
+ The following table lists the abbreviations used in the table of
+instruction formats:
+
+ OpCode / OpCd Part of the op code.
+ Bx Base register number for operand x.
+ Dx Displacement for operand x.
+ DLx Displacement lower 12 bits for operand x.
+ DHx Displacement higher 8-bits for operand x.
+ Rx Register number for operand x.
+ Xx Index register number for operand x.
+ Ix Signed immediate for operand x.
+ Ux Unsigned immediate for operand x.
+
+ An instruction is two, four, or six bytes in length and must be
+aligned on a 2 byte boundary. The first two bits of the instruction
+specify the length of the instruction, 00 indicates a two byte
+instruction, 01 and 10 indicates a four byte instruction, and 11
+indicates a six byte instruction.
+
+ The following table lists the s390 instruction formats that are
+available with the `.insn' pseudo directive:
+
+`E format'
+
+ +-------------+
+ | OpCode |
+ +-------------+
+ 0 15
+
+`RI format: <insn> R1,I2'
+
+ +--------+----+----+------------------+
+ | OpCode | R1 |OpCd| I2 |
+ +--------+----+----+------------------+
+ 0 8 12 16 31
+
+`RIE format: <insn> R1,R3,I2'
+
+ +--------+----+----+------------------+--------+--------+
+ | OpCode | R1 | R3 | I2 |////////| OpCode |
+ +--------+----+----+------------------+--------+--------+
+ 0 8 12 16 32 40 47
+
+`RIL format: <insn> R1,I2'
+
+ +--------+----+----+------------------------------------+
+ | OpCode | R1 |OpCd| I2 |
+ +--------+----+----+------------------------------------+
+ 0 8 12 16 47
+
+`RILU format: <insn> R1,U2'
+
+ +--------+----+----+------------------------------------+
+ | OpCode | R1 |OpCd| U2 |
+ +--------+----+----+------------------------------------+
+ 0 8 12 16 47
+
+`RIS format: <insn> R1,I2,M3,D4(B4)'
+
+ +--------+----+----+----+-------------+--------+--------+
+ | OpCode | R1 | M3 | B4 | D4 | I2 | Opcode |
+ +--------+----+----+----+-------------+--------+--------+
+ 0 8 12 16 20 32 36 47
+
+`RR format: <insn> R1,R2'
+
+ +--------+----+----+
+ | OpCode | R1 | R2 |
+ +--------+----+----+
+ 0 8 12 15
+
+`RRE format: <insn> R1,R2'
+
+ +------------------+--------+----+----+
+ | OpCode |////////| R1 | R2 |
+ +------------------+--------+----+----+
+ 0 16 24 28 31
+
+`RRF format: <insn> R1,R2,R3,M4'
+
+ +------------------+----+----+----+----+
+ | OpCode | R3 | M4 | R1 | R2 |
+ +------------------+----+----+----+----+
+ 0 16 20 24 28 31
+
+`RRS format: <insn> R1,R2,M3,D4(B4)'
+
+ +--------+----+----+----+-------------+----+----+--------+
+ | OpCode | R1 | R3 | B4 | D4 | M3 |////| OpCode |
+ +--------+----+----+----+-------------+----+----+--------+
+ 0 8 12 16 20 32 36 40 47
+
+`RS format: <insn> R1,R3,D2(B2)'
+
+ +--------+----+----+----+-------------+
+ | OpCode | R1 | R3 | B2 | D2 |
+ +--------+----+----+----+-------------+
+ 0 8 12 16 20 31
+
+`RSE format: <insn> R1,R3,D2(B2)'
+
+ +--------+----+----+----+-------------+--------+--------+
+ | OpCode | R1 | R3 | B2 | D2 |////////| OpCode |
+ +--------+----+----+----+-------------+--------+--------+
+ 0 8 12 16 20 32 40 47
+
+`RSI format: <insn> R1,R3,I2'
+
+ +--------+----+----+------------------------------------+
+ | OpCode | R1 | R3 | I2 |
+ +--------+----+----+------------------------------------+
+ 0 8 12 16 47
+
+`RSY format: <insn> R1,R3,D2(B2)'
+
+ +--------+----+----+----+-------------+--------+--------+
+ | OpCode | R1 | R3 | B2 | DL2 | DH2 | OpCode |
+ +--------+----+----+----+-------------+--------+--------+
+ 0 8 12 16 20 32 40 47
+
+`RX format: <insn> R1,D2(X2,B2)'
+
+ +--------+----+----+----+-------------+
+ | OpCode | R1 | X2 | B2 | D2 |
+ +--------+----+----+----+-------------+
+ 0 8 12 16 20 31
+
+`RXE format: <insn> R1,D2(X2,B2)'
+
+ +--------+----+----+----+-------------+--------+--------+
+ | OpCode | R1 | X2 | B2 | D2 |////////| OpCode |
+ +--------+----+----+----+-------------+--------+--------+
+ 0 8 12 16 20 32 40 47
+
+`RXF format: <insn> R1,R3,D2(X2,B2)'
+
+ +--------+----+----+----+-------------+----+---+--------+
+ | OpCode | R3 | X2 | B2 | D2 | R1 |///| OpCode |
+ +--------+----+----+----+-------------+----+---+--------+
+ 0 8 12 16 20 32 36 40 47
+
+`RXY format: <insn> R1,D2(X2,B2)'
+
+ +--------+----+----+----+-------------+--------+--------+
+ | OpCode | R1 | X2 | B2 | DL2 | DH2 | OpCode |
+ +--------+----+----+----+-------------+--------+--------+
+ 0 8 12 16 20 32 36 40 47
+
+`S format: <insn> D2(B2)'
+
+ +------------------+----+-------------+
+ | OpCode | B2 | D2 |
+ +------------------+----+-------------+
+ 0 16 20 31
+
+`SI format: <insn> D1(B1),I2'
+
+ +--------+---------+----+-------------+
+ | OpCode | I2 | B1 | D1 |
+ +--------+---------+----+-------------+
+ 0 8 16 20 31
+
+`SIY format: <insn> D1(B1),U2'
+
+ +--------+---------+----+-------------+--------+--------+
+ | OpCode | I2 | B1 | DL1 | DH1 | OpCode |
+ +--------+---------+----+-------------+--------+--------+
+ 0 8 16 20 32 36 40 47
+
+`SIL format: <insn> D1(B1),I2'
+
+ +------------------+----+-------------+-----------------+
+ | OpCode | B1 | D1 | I2 |
+ +------------------+----+-------------+-----------------+
+ 0 16 20 32 47
+
+`SS format: <insn> D1(R1,B1),D2(B3),R3'
+
+ +--------+----+----+----+-------------+----+------------+
+ | OpCode | R1 | R3 | B1 | D1 | B2 | D2 |
+ +--------+----+----+----+-------------+----+------------+
+ 0 8 12 16 20 32 36 47
+
+`SSE format: <insn> D1(B1),D2(B2)'
+
+ +------------------+----+-------------+----+------------+
+ | OpCode | B1 | D1 | B2 | D2 |
+ +------------------+----+-------------+----+------------+
+ 0 8 12 16 20 32 36 47
+
+`SSF format: <insn> D1(B1),D2(B2),R3'
+
+ +--------+----+----+----+-------------+----+------------+
+ | OpCode | R3 |OpCd| B1 | D1 | B2 | D2 |
+ +--------+----+----+----+-------------+----+------------+
+ 0 8 12 16 20 32 36 47
+
+
+ For the complete list of all instruction format variants see the
+Principles of Operation manuals.
+
+
+File: as.info, Node: s390 Aliases, Next: s390 Operand Modifier, Prev: s390 Formats, Up: s390 Syntax
+
+9.32.3.5 Instruction Aliases
+............................
+
+A specific bit pattern can have multiple mnemonics, for example the bit
+pattern `0xa7000000' has the mnemonics `tmh' and `tmlh'. In addition,
+there are a number of mnemonics recognized by `as' that are not present
+in the Principles of Operation. These are the short forms of the
+branch instructions, where the condition code mask operand is encoded
+in the mnemonic. This is relevant for the branch instructions, the
+compare and branch instructions, and the compare and trap instructions.
+
+ For the branch instructions there are 20 condition code strings that
+can be used as part of the mnemonic in place of a mask operand in the
+instruction format:
+
+ instruction short form
+ ------------------------------------------
+ bcr M1,R2 b<m>r R2
+ bc M1,D2(X2,B2) b<m> D2(X2,B2)
+ brc M1,I2 j<m> I2
+ brcl M1,I2 jg<m> I2
+
+ In the mnemonic for a branch instruction the condition code string
+<m> can be any of the following:
+
+ o jump on overflow / if ones
+ h jump on A high
+ p jump on plus
+ nle jump on not low or equal
+ l jump on A low
+ m jump on minus
+ nhe jump on not high or equal
+ lh jump on low or high
+ ne jump on A not equal B
+ nz jump on not zero / if not zeros
+ e jump on A equal B
+ z jump on zero / if zeroes
+ nlh jump on not low or high
+ he jump on high or equal
+ nl jump on A not low
+ nm jump on not minus / if not mixed
+ le jump on low or equal
+ nh jump on A not high
+ np jump on not plus
+ no jump on not overflow / if not ones
+
+ For the compare and branch, and compare and trap instructions there
+are 12 condition code strings that can be used as part of the mnemonic
+in place of a mask operand in the instruction format:
+
+ instruction short form
+ --------------------------------------------------------
+ crb R1,R2,M3,D4(B4) crb<m> R1,R2,D4(B4)
+ cgrb R1,R2,M3,D4(B4) cgrb<m> R1,R2,D4(B4)
+ crj R1,R2,M3,I4 crj<m> R1,R2,I4
+ cgrj R1,R2,M3,I4 cgrj<m> R1,R2,I4
+ cib R1,I2,M3,D4(B4) cib<m> R1,I2,D4(B4)
+ cgib R1,I2,M3,D4(B4) cgib<m> R1,I2,D4(B4)
+ cij R1,I2,M3,I4 cij<m> R1,I2,I4
+ cgij R1,I2,M3,I4 cgij<m> R1,I2,I4
+ crt R1,R2,M3 crt<m> R1,R2
+ cgrt R1,R2,M3 cgrt<m> R1,R2
+ cit R1,I2,M3 cit<m> R1,I2
+ cgit R1,I2,M3 cgit<m> R1,I2
+ clrb R1,R2,M3,D4(B4) clrb<m> R1,R2,D4(B4)
+ clgrb R1,R2,M3,D4(B4) clgrb<m> R1,R2,D4(B4)
+ clrj R1,R2,M3,I4 clrj<m> R1,R2,I4
+ clgrj R1,R2,M3,I4 clgrj<m> R1,R2,I4
+ clib R1,I2,M3,D4(B4) clib<m> R1,I2,D4(B4)
+ clgib R1,I2,M3,D4(B4) clgib<m> R1,I2,D4(B4)
+ clij R1,I2,M3,I4 clij<m> R1,I2,I4
+ clgij R1,I2,M3,I4 clgij<m> R1,I2,I4
+ clrt R1,R2,M3 clrt<m> R1,R2
+ clgrt R1,R2,M3 clgrt<m> R1,R2
+ clfit R1,I2,M3 clfit<m> R1,I2
+ clgit R1,I2,M3 clgit<m> R1,I2
+
+ In the mnemonic for a compare and branch and compare and trap
+instruction the condition code string <m> can be any of the following:
+
+ h jump on A high
+ nle jump on not low or equal
+ l jump on A low
+ nhe jump on not high or equal
+ ne jump on A not equal B
+ lh jump on low or high
+ e jump on A equal B
+ nlh jump on not low or high
+ nl jump on A not low
+ he jump on high or equal
+ nh jump on A not high
+ le jump on low or equal
+
+
+File: as.info, Node: s390 Operand Modifier, Next: s390 Instruction Marker, Prev: s390 Aliases, Up: s390 Syntax
+
+9.32.3.6 Instruction Operand Modifier
+.....................................
+
+If a symbol modifier is attached to a symbol in an expression for an
+instruction operand field, the symbol term is replaced with a reference
+to an object in the global offset table (GOT) or the procedure linkage
+table (PLT). The following expressions are allowed: `symbol@modifier +
+constant', `symbol@modifier + label + constant', and `symbol@modifier -
+label + constant'. The term `symbol' is the symbol that will be
+entered into the GOT or PLT, `label' is a local label, and `constant'
+is an arbitrary expression that the assembler can evaluate to a
+constant value.
+
+ The term `(symbol + constant1)@modifier +/- label + constant2' is
+also accepted but a warning message is printed and the term is
+converted to `symbol@modifier +/- label + constant1 + constant2'.
+
+`@got'
+`@got12'
+ The @got modifier can be used for displacement fields, 16-bit
+ immediate fields and 32-bit pc-relative immediate fields. The
+ @got12 modifier is synonym to @got. The symbol is added to the
+ GOT. For displacement fields and 16-bit immediate fields the
+ symbol term is replaced with the offset from the start of the GOT
+ to the GOT slot for the symbol. For a 32-bit pc-relative field
+ the pc-relative offset to the GOT slot from the current
+ instruction address is used.
+
+`@gotent'
+ The @gotent modifier can be used for 32-bit pc-relative immediate
+ fields. The symbol is added to the GOT and the symbol term is
+ replaced with the pc-relative offset from the current instruction
+ to the GOT slot for the symbol.
+
+`@gotoff'
+ The @gotoff modifier can be used for 16-bit immediate fields. The
+ symbol term is replaced with the offset from the start of the GOT
+ to the address of the symbol.
+
+`@gotplt'
+ The @gotplt modifier can be used for displacement fields, 16-bit
+ immediate fields, and 32-bit pc-relative immediate fields. A
+ procedure linkage table entry is generated for the symbol and a
+ jump slot for the symbol is added to the GOT. For displacement
+ fields and 16-bit immediate fields the symbol term is replaced
+ with the offset from the start of the GOT to the jump slot for the
+ symbol. For a 32-bit pc-relative field the pc-relative offset to
+ the jump slot from the current instruction address is used.
+
+`@plt'
+ The @plt modifier can be used for 16-bit and 32-bit pc-relative
+ immediate fields. A procedure linkage table entry is generated for
+ the symbol. The symbol term is replaced with the relative offset
+ from the current instruction to the PLT entry for the symbol.
+
+`@pltoff'
+ The @pltoff modifier can be used for 16-bit immediate fields. The
+ symbol term is replaced with the offset from the start of the PLT
+ to the address of the symbol.
+
+`@gotntpoff'
+ The @gotntpoff modifier can be used for displacement fields. The
+ symbol is added to the static TLS block and the negated offset to
+ the symbol in the static TLS block is added to the GOT. The symbol
+ term is replaced with the offset to the GOT slot from the start of
+ the GOT.
+
+`@indntpoff'
+ The @indntpoff modifier can be used for 32-bit pc-relative
+ immediate fields. The symbol is added to the static TLS block and
+ the negated offset to the symbol in the static TLS block is added
+ to the GOT. The symbol term is replaced with the pc-relative
+ offset to the GOT slot from the current instruction address.
+
+ For more information about the thread local storage modifiers
+`gotntpoff' and `indntpoff' see the ELF extension documentation `ELF
+Handling For Thread-Local Storage'.
+
+
+File: as.info, Node: s390 Instruction Marker, Next: s390 Literal Pool Entries, Prev: s390 Operand Modifier, Up: s390 Syntax
+
+9.32.3.7 Instruction Marker
+...........................
+
+The thread local storage instruction markers are used by the linker to
+perform code optimization.
+
+`:tls_load'
+ The :tls_load marker is used to flag the load instruction in the
+ initial exec TLS model that retrieves the offset from the thread
+ pointer to a thread local storage variable from the GOT.
+
+`:tls_gdcall'
+ The :tls_gdcall marker is used to flag the branch-and-save
+ instruction to the __tls_get_offset function in the global dynamic
+ TLS model.
+
+`:tls_ldcall'
+ The :tls_ldcall marker is used to flag the branch-and-save
+ instruction to the __tls_get_offset function in the local dynamic
+ TLS model.
+
+ For more information about the thread local storage instruction
+marker and the linker optimizations see the ELF extension documentation
+`ELF Handling For Thread-Local Storage'.
+
+
+File: as.info, Node: s390 Literal Pool Entries, Prev: s390 Instruction Marker, Up: s390 Syntax
+
+9.32.3.8 Literal Pool Entries
+.............................
+
+A literal pool is a collection of values. To access the values a pointer
+to the literal pool is loaded to a register, the literal pool register.
+Usually, register %r13 is used as the literal pool register (*Note s390
+Register::). Literal pool entries are created by adding the suffix
+:lit1, :lit2, :lit4, or :lit8 to the end of an expression for an
+instruction operand. The expression is added to the literal pool and the
+operand is replaced with the offset to the literal in the literal pool.
+
+`:lit1'
+ The literal pool entry is created as an 8-bit value. An operand
+ modifier must not be used for the original expression.
+
+`:lit2'
+ The literal pool entry is created as a 16 bit value. The operand
+ modifier @got may be used in the original expression. The term
+ `x@got:lit2' will put the got offset for the global symbol x to
+ the literal pool as 16 bit value.
+
+`:lit4'
+ The literal pool entry is created as a 32-bit value. The operand
+ modifier @got and @plt may be used in the original expression. The
+ term `x@got:lit4' will put the got offset for the global symbol x
+ to the literal pool as a 32-bit value. The term `x@plt:lit4' will
+ put the plt offset for the global symbol x to the literal pool as
+ a 32-bit value.
+
+`:lit8'
+ The literal pool entry is created as a 64-bit value. The operand
+ modifier @got and @plt may be used in the original expression. The
+ term `x@got:lit8' will put the got offset for the global symbol x
+ to the literal pool as a 64-bit value. The term `x@plt:lit8' will
+ put the plt offset for the global symbol x to the literal pool as
+ a 64-bit value.
+
+ The assembler directive `.ltorg' is used to emit all literal pool
+entries to the current position.
+
+
+File: as.info, Node: s390 Directives, Next: s390 Floating Point, Prev: s390 Syntax, Up: S/390-Dependent
+
+9.32.4 Assembler Directives
+---------------------------
+
+`as' for s390 supports all of the standard ELF assembler directives as
+outlined in the main part of this document. Some directives have been
+extended and there are some additional directives, which are only
+available for the s390 `as'.
+
+`.insn'
+ This directive permits the numeric representation of an
+ instructions and makes the assembler insert the operands according
+ to one of the instructions formats for `.insn' (*Note s390
+ Formats::). For example, the instruction `l %r1,24(%r15)' could
+ be written as `.insn rx,0x58000000,%r1,24(%r15)'.
+
+`.short'
+`.long'
+`.quad'
+ This directive places one or more 16-bit (.short), 32-bit (.long),
+ or 64-bit (.quad) values into the current section. If an ELF or
+ TLS modifier is used only the following expressions are allowed:
+ `symbol@modifier + constant', `symbol@modifier + label +
+ constant', and `symbol@modifier - label + constant'. The
+ following modifiers are available:
+ `@got'
+ `@got12'
+ The @got modifier can be used for .short, .long and .quad.
+ The @got12 modifier is synonym to @got. The symbol is added
+ to the GOT. The symbol term is replaced with offset from the
+ start of the GOT to the GOT slot for the symbol.
+
+ `@gotoff'
+ The @gotoff modifier can be used for .short, .long and .quad.
+ The symbol term is replaced with the offset from the start of
+ the GOT to the address of the symbol.
+
+ `@gotplt'
+ The @gotplt modifier can be used for .long and .quad. A
+ procedure linkage table entry is generated for the symbol and
+ a jump slot for the symbol is added to the GOT. The symbol
+ term is replaced with the offset from the start of the GOT to
+ the jump slot for the symbol.
+
+ `@plt'
+ The @plt modifier can be used for .long and .quad. A
+ procedure linkage table entry us generated for the symbol.
+ The symbol term is replaced with the address of the PLT entry
+ for the symbol.
+
+ `@pltoff'
+ The @pltoff modifier can be used for .short, .long and .quad.
+ The symbol term is replaced with the offset from the start of
+ the PLT to the address of the symbol.
+
+ `@tlsgd'
+ `@tlsldm'
+ The @tlsgd and @tlsldm modifier can be used for .long and
+ .quad. A tls_index structure for the symbol is added to the
+ GOT. The symbol term is replaced with the offset from the
+ start of the GOT to the tls_index structure.
+
+ `@gotntpoff'
+ `@indntpoff'
+ The @gotntpoff and @indntpoff modifier can be used for .long
+ and .quad. The symbol is added to the static TLS block and
+ the negated offset to the symbol in the static TLS block is
+ added to the GOT. For @gotntpoff the symbol term is replaced
+ with the offset from the start of the GOT to the GOT slot,
+ for @indntpoff the symbol term is replaced with the address
+ of the GOT slot.
+
+ `@dtpoff'
+ The @dtpoff modifier can be used for .long and .quad. The
+ symbol term is replaced with the offset of the symbol
+ relative to the start of the TLS block it is contained in.
+
+ `@ntpoff'
+ The @ntpoff modifier can be used for .long and .quad. The
+ symbol term is replaced with the offset of the symbol
+ relative to the TCB pointer.
+
+ For more information about the thread local storage modifiers see
+ the ELF extension documentation `ELF Handling For Thread-Local
+ Storage'.
+
+`.ltorg'
+ This directive causes the current contents of the literal pool to
+ be dumped to the current location (*Note s390 Literal Pool
+ Entries::).
+
+`.machine string'
+ This directive allows you to change the machine for which code is
+ generated. `string' may be any of the `-march=' selection options
+ (without the -march=), `push', or `pop'. `.machine push' saves
+ the currently selected cpu, which may be restored with `.machine
+ pop'. Be aware that the cpu string has to be put into double
+ quotes in case it contains characters not appropriate for
+ identifiers. So you have to write `"z9-109"' instead of just
+ `z9-109'.
+
+
+File: as.info, Node: s390 Floating Point, Prev: s390 Directives, Up: S/390-Dependent
+
+9.32.5 Floating Point
+---------------------
+
+The assembler recognizes both the IEEE floating-point instruction and
+the hexadecimal floating-point instructions. The floating-point
+constructors `.float', `.single', and `.double' always emit the IEEE
+format. To assemble hexadecimal floating-point constants the `.long'
+and `.quad' directives must be used.
+
+
+File: as.info, Node: SCORE-Dependent, Next: Sparc-Dependent, Prev: S/390-Dependent, Up: Machine Dependencies
+
+9.33 SCORE Dependent Features
+=============================
+
+* Menu:
+
+* SCORE-Opts:: Assembler options
+* SCORE-Pseudo:: SCORE Assembler Directives
+* SCORE-Syntax:: Syntax
+
+
+File: as.info, Node: SCORE-Opts, Next: SCORE-Pseudo, Up: SCORE-Dependent
+
+9.33.1 Options
+--------------
+
+The following table lists all available SCORE options.
+
+`-G NUM'
+ This option sets the largest size of an object that can be
+ referenced implicitly with the `gp' register. The default value is
+ 8.
+
+`-EB'
+ Assemble code for a big-endian cpu
+
+`-EL'
+ Assemble code for a little-endian cpu
+
+`-FIXDD'
+ Assemble code for fix data dependency
+
+`-NWARN'
+ Assemble code for no warning message for fix data dependency
+
+`-SCORE5'
+ Assemble code for target is SCORE5
+
+`-SCORE5U'
+ Assemble code for target is SCORE5U
+
+`-SCORE7'
+ Assemble code for target is SCORE7, this is default setting
+
+`-SCORE3'
+ Assemble code for target is SCORE3
+
+`-march=score7'
+ Assemble code for target is SCORE7, this is default setting
+
+`-march=score3'
+ Assemble code for target is SCORE3
+
+`-USE_R1'
+ Assemble code for no warning message when using temp register r1
+
+`-KPIC'
+ Generate code for PIC. This option tells the assembler to generate
+ score position-independent macro expansions. It also tells the
+ assembler to mark the output file as PIC.
+
+`-O0'
+ Assembler will not perform any optimizations
+
+`-V'
+ Sunplus release version
+
+
+
+File: as.info, Node: SCORE-Pseudo, Next: SCORE-Syntax, Prev: SCORE-Opts, Up: SCORE-Dependent
+
+9.33.2 SCORE Assembler Directives
+---------------------------------
+
+A number of assembler directives are available for SCORE. The
+following table is far from complete.
+
+`.set nwarn'
+ Let the assembler not to generate warnings if the source machine
+ language instructions happen data dependency.
+
+`.set fixdd'
+ Let the assembler to insert bubbles (32 bit nop instruction / 16
+ bit nop! Instruction) if the source machine language instructions
+ happen data dependency.
+
+`.set nofixdd'
+ Let the assembler to generate warnings if the source machine
+ language instructions happen data dependency. (Default)
+
+`.set r1'
+ Let the assembler not to generate warnings if the source program
+ uses r1. allow user to use r1
+
+`set nor1'
+ Let the assembler to generate warnings if the source program uses
+ r1. (Default)
+
+`.sdata'
+ Tell the assembler to add subsequent data into the sdata section
+
+`.rdata'
+ Tell the assembler to add subsequent data into the rdata section
+
+`.frame "frame-register", "offset", "return-pc-register"'
+ Describe a stack frame. "frame-register" is the frame register,
+ "offset" is the distance from the frame register to the virtual
+ frame pointer, "return-pc-register" is the return program register.
+ You must use ".ent" before ".frame" and only one ".frame" can be
+ used per ".ent".
+
+`.mask "bitmask", "frameoffset"'
+ Indicate which of the integer registers are saved in the current
+ function's stack frame, this is for the debugger to explain the
+ frame chain.
+
+`.ent "proc-name"'
+ Set the beginning of the procedure "proc_name". Use this directive
+ when you want to generate information for the debugger.
+
+`.end proc-name'
+ Set the end of a procedure. Use this directive to generate
+ information for the debugger.
+
+`.bss'
+ Switch the destination of following statements into the bss
+ section, which is used for data that is uninitialized anywhere.
+
+
+
+File: as.info, Node: SCORE-Syntax, Prev: SCORE-Pseudo, Up: SCORE-Dependent
+
+9.33.3 SCORE Syntax
+-------------------
+
+* Menu:
+
+* SCORE-Chars:: Special Characters
+
+
+File: as.info, Node: SCORE-Chars, Up: SCORE-Syntax
+
+9.33.3.1 Special Characters
+...........................
+
+The presence of a `#' appearing anywhere on a line indicates the start
+of a comment that extends to the end of that line.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line can also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ The `;' character can be used to separate statements on the same
+line.
+
+
+File: as.info, Node: SH-Dependent, Next: SH64-Dependent, Prev: NS32K-Dependent, Up: Machine Dependencies
+
+9.34 Renesas / SuperH SH Dependent Features
+===========================================
+
+* Menu:
+
+* SH Options:: Options
+* SH Syntax:: Syntax
+* SH Floating Point:: Floating Point
+* SH Directives:: SH Machine Directives
+* SH Opcodes:: Opcodes
+
+
+File: as.info, Node: SH Options, Next: SH Syntax, Up: SH-Dependent
+
+9.34.1 Options
+--------------
+
+`as' has following command-line options for the Renesas (formerly
+Hitachi) / SuperH SH family.
+
+`--little'
+ Generate little endian code.
+
+`--big'
+ Generate big endian code.
+
+`--relax'
+ Alter jump instructions for long displacements.
+
+`--small'
+ Align sections to 4 byte boundaries, not 16.
+
+`--dsp'
+ Enable sh-dsp insns, and disable sh3e / sh4 insns.
+
+`--renesas'
+ Disable optimization with section symbol for compatibility with
+ Renesas assembler.
+
+`--allow-reg-prefix'
+ Allow '$' as a register name prefix.
+
+`--fdpic'
+ Generate an FDPIC object file.
+
+`--isa=sh4 | sh4a'
+ Specify the sh4 or sh4a instruction set.
+
+`--isa=dsp'
+ Enable sh-dsp insns, and disable sh3e / sh4 insns.
+
+`--isa=fp'
+ Enable sh2e, sh3e, sh4, and sh4a insn sets.
+
+`--isa=all'
+ Enable sh1, sh2, sh2e, sh3, sh3e, sh4, sh4a, and sh-dsp insn sets.
+
+`-h-tick-hex'
+ Support H'00 style hex constants in addition to 0x00 style.
+
+
+
+File: as.info, Node: SH Syntax, Next: SH Floating Point, Prev: SH Options, Up: SH-Dependent
+
+9.34.2 Syntax
+-------------
+
+* Menu:
+
+* SH-Chars:: Special Characters
+* SH-Regs:: Register Names
+* SH-Addressing:: Addressing Modes
+
+
+File: as.info, Node: SH-Chars, Next: SH-Regs, Up: SH Syntax
+
+9.34.2.1 Special Characters
+...........................
+
+`!' is the line comment character.
+
+ You can use `;' instead of a newline to separate statements.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line could also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ Since `$' has no special meaning, you may use it in symbol names.
+
+
+File: as.info, Node: SH-Regs, Next: SH-Addressing, Prev: SH-Chars, Up: SH Syntax
+
+9.34.2.2 Register Names
+.......................
+
+You can use the predefined symbols `r0', `r1', `r2', `r3', `r4', `r5',
+`r6', `r7', `r8', `r9', `r10', `r11', `r12', `r13', `r14', and `r15' to
+refer to the SH registers.
+
+ The SH also has these control registers:
+
+`pr'
+ procedure register (holds return address)
+
+`pc'
+ program counter
+
+`mach'
+`macl'
+ high and low multiply accumulator registers
+
+`sr'
+ status register
+
+`gbr'
+ global base register
+
+`vbr'
+ vector base register (for interrupt vectors)
+
+
+File: as.info, Node: SH-Addressing, Prev: SH-Regs, Up: SH Syntax
+
+9.34.2.3 Addressing Modes
+.........................
+
+`as' understands the following addressing modes for the SH. `RN' in
+the following refers to any of the numbered registers, but _not_ the
+control registers.
+
+`RN'
+ Register direct
+
+`@RN'
+ Register indirect
+
+`@-RN'
+ Register indirect with pre-decrement
+
+`@RN+'
+ Register indirect with post-increment
+
+`@(DISP, RN)'
+ Register indirect with displacement
+
+`@(R0, RN)'
+ Register indexed
+
+`@(DISP, GBR)'
+ `GBR' offset
+
+`@(R0, GBR)'
+ GBR indexed
+
+`ADDR'
+`@(DISP, PC)'
+ PC relative address (for branch or for addressing memory). The
+ `as' implementation allows you to use the simpler form ADDR
+ anywhere a PC relative address is called for; the alternate form
+ is supported for compatibility with other assemblers.
+
+`#IMM'
+ Immediate data
+
+
+File: as.info, Node: SH Floating Point, Next: SH Directives, Prev: SH Syntax, Up: SH-Dependent
+
+9.34.3 Floating Point
+---------------------
+
+SH2E, SH3E and SH4 groups have on-chip floating-point unit (FPU). Other
+SH groups can use `.float' directive to generate IEEE floating-point
+numbers.
+
+ SH2E and SH3E support single-precision floating point calculations as
+well as entirely PCAPI compatible emulation of double-precision
+floating point calculations. SH2E and SH3E instructions are a subset of
+the floating point calculations conforming to the IEEE754 standard.
+
+ In addition to single-precision and double-precision floating-point
+operation capability, the on-chip FPU of SH4 has a 128-bit graphic
+engine that enables 32-bit floating-point data to be processed 128 bits
+at a time. It also supports 4 * 4 array operations and inner product
+operations. Also, a superscalar architecture is employed that enables
+simultaneous execution of two instructions (including FPU
+instructions), providing performance of up to twice that of
+conventional architectures at the same frequency.
+
+
+File: as.info, Node: SH Directives, Next: SH Opcodes, Prev: SH Floating Point, Up: SH-Dependent
+
+9.34.4 SH Machine Directives
+----------------------------
+
+`uaword'
+`ualong'
+ `as' will issue a warning when a misaligned `.word' or `.long'
+ directive is used. You may use `.uaword' or `.ualong' to indicate
+ that the value is intentionally misaligned.
+
+
+File: as.info, Node: SH Opcodes, Prev: SH Directives, Up: SH-Dependent
+
+9.34.5 Opcodes
+--------------
+
+For detailed information on the SH machine instruction set, see
+`SH-Microcomputer User's Manual' (Renesas) or `SH-4 32-bit CPU Core
+Architecture' (SuperH) and `SuperH (SH) 64-Bit RISC Series' (SuperH).
+
+ `as' implements all the standard SH opcodes. No additional
+pseudo-instructions are needed on this family. Note, however, that
+because `as' supports a simpler form of PC-relative addressing, you may
+simply write (for example)
+
+ mov.l bar,r0
+
+where other assemblers might require an explicit displacement to `bar'
+from the program counter:
+
+ mov.l @(DISP, PC)
+
+ Here is a summary of SH opcodes:
+
+ Legend:
+ Rn a numbered register
+ Rm another numbered register
+ #imm immediate data
+ disp displacement
+ disp8 8-bit displacement
+ disp12 12-bit displacement
+
+ add #imm,Rn lds.l @Rn+,PR
+ add Rm,Rn mac.w @Rm+,@Rn+
+ addc Rm,Rn mov #imm,Rn
+ addv Rm,Rn mov Rm,Rn
+ and #imm,R0 mov.b Rm,@(R0,Rn)
+ and Rm,Rn mov.b Rm,@-Rn
+ and.b #imm,@(R0,GBR) mov.b Rm,@Rn
+ bf disp8 mov.b @(disp,Rm),R0
+ bra disp12 mov.b @(disp,GBR),R0
+ bsr disp12 mov.b @(R0,Rm),Rn
+ bt disp8 mov.b @Rm+,Rn
+ clrmac mov.b @Rm,Rn
+ clrt mov.b R0,@(disp,Rm)
+ cmp/eq #imm,R0 mov.b R0,@(disp,GBR)
+ cmp/eq Rm,Rn mov.l Rm,@(disp,Rn)
+ cmp/ge Rm,Rn mov.l Rm,@(R0,Rn)
+ cmp/gt Rm,Rn mov.l Rm,@-Rn
+ cmp/hi Rm,Rn mov.l Rm,@Rn
+ cmp/hs Rm,Rn mov.l @(disp,Rn),Rm
+ cmp/pl Rn mov.l @(disp,GBR),R0
+ cmp/pz Rn mov.l @(disp,PC),Rn
+ cmp/str Rm,Rn mov.l @(R0,Rm),Rn
+ div0s Rm,Rn mov.l @Rm+,Rn
+ div0u mov.l @Rm,Rn
+ div1 Rm,Rn mov.l R0,@(disp,GBR)
+ exts.b Rm,Rn mov.w Rm,@(R0,Rn)
+ exts.w Rm,Rn mov.w Rm,@-Rn
+ extu.b Rm,Rn mov.w Rm,@Rn
+ extu.w Rm,Rn mov.w @(disp,Rm),R0
+ jmp @Rn mov.w @(disp,GBR),R0
+ jsr @Rn mov.w @(disp,PC),Rn
+ ldc Rn,GBR mov.w @(R0,Rm),Rn
+ ldc Rn,SR mov.w @Rm+,Rn
+ ldc Rn,VBR mov.w @Rm,Rn
+ ldc.l @Rn+,GBR mov.w R0,@(disp,Rm)
+ ldc.l @Rn+,SR mov.w R0,@(disp,GBR)
+ ldc.l @Rn+,VBR mova @(disp,PC),R0
+ lds Rn,MACH movt Rn
+ lds Rn,MACL muls Rm,Rn
+ lds Rn,PR mulu Rm,Rn
+ lds.l @Rn+,MACH neg Rm,Rn
+ lds.l @Rn+,MACL negc Rm,Rn
+
+ nop stc VBR,Rn
+ not Rm,Rn stc.l GBR,@-Rn
+ or #imm,R0 stc.l SR,@-Rn
+ or Rm,Rn stc.l VBR,@-Rn
+ or.b #imm,@(R0,GBR) sts MACH,Rn
+ rotcl Rn sts MACL,Rn
+ rotcr Rn sts PR,Rn
+ rotl Rn sts.l MACH,@-Rn
+ rotr Rn sts.l MACL,@-Rn
+ rte sts.l PR,@-Rn
+ rts sub Rm,Rn
+ sett subc Rm,Rn
+ shal Rn subv Rm,Rn
+ shar Rn swap.b Rm,Rn
+ shll Rn swap.w Rm,Rn
+ shll16 Rn tas.b @Rn
+ shll2 Rn trapa #imm
+ shll8 Rn tst #imm,R0
+ shlr Rn tst Rm,Rn
+ shlr16 Rn tst.b #imm,@(R0,GBR)
+ shlr2 Rn xor #imm,R0
+ shlr8 Rn xor Rm,Rn
+ sleep xor.b #imm,@(R0,GBR)
+ stc GBR,Rn xtrct Rm,Rn
+ stc SR,Rn
+
+
+File: as.info, Node: SH64-Dependent, Next: PDP-11-Dependent, Prev: SH-Dependent, Up: Machine Dependencies
+
+9.35 SuperH SH64 Dependent Features
+===================================
+
+* Menu:
+
+* SH64 Options:: Options
+* SH64 Syntax:: Syntax
+* SH64 Directives:: SH64 Machine Directives
+* SH64 Opcodes:: Opcodes
+
+
+File: as.info, Node: SH64 Options, Next: SH64 Syntax, Up: SH64-Dependent
+
+9.35.1 Options
+--------------
+
+`-isa=sh4 | sh4a'
+ Specify the sh4 or sh4a instruction set.
+
+`-isa=dsp'
+ Enable sh-dsp insns, and disable sh3e / sh4 insns.
+
+`-isa=fp'
+ Enable sh2e, sh3e, sh4, and sh4a insn sets.
+
+`-isa=all'
+ Enable sh1, sh2, sh2e, sh3, sh3e, sh4, sh4a, and sh-dsp insn sets.
+
+`-isa=shmedia | -isa=shcompact'
+ Specify the default instruction set. `SHmedia' specifies the
+ 32-bit opcodes, and `SHcompact' specifies the 16-bit opcodes
+ compatible with previous SH families. The default depends on the
+ ABI selected; the default for the 64-bit ABI is SHmedia, and the
+ default for the 32-bit ABI is SHcompact. If neither the ABI nor
+ the ISA is specified, the default is 32-bit SHcompact.
+
+ Note that the `.mode' pseudo-op is not permitted if the ISA is not
+ specified on the command line.
+
+`-abi=32 | -abi=64'
+ Specify the default ABI. If the ISA is specified and the ABI is
+ not, the default ABI depends on the ISA, with SHmedia defaulting
+ to 64-bit and SHcompact defaulting to 32-bit.
+
+ Note that the `.abi' pseudo-op is not permitted if the ABI is not
+ specified on the command line. When the ABI is specified on the
+ command line, any `.abi' pseudo-ops in the source must match it.
+
+`-shcompact-const-crange'
+ Emit code-range descriptors for constants in SHcompact code
+ sections.
+
+`-no-mix'
+ Disallow SHmedia code in the same section as constants and
+ SHcompact code.
+
+`-no-expand'
+ Do not expand MOVI, PT, PTA or PTB instructions.
+
+`-expand-pt32'
+ With -abi=64, expand PT, PTA and PTB instructions to 32 bits only.
+
+`-h-tick-hex'
+ Support H'00 style hex constants in addition to 0x00 style.
+
+
+
+File: as.info, Node: SH64 Syntax, Next: SH64 Directives, Prev: SH64 Options, Up: SH64-Dependent
+
+9.35.2 Syntax
+-------------
+
+* Menu:
+
+* SH64-Chars:: Special Characters
+* SH64-Regs:: Register Names
+* SH64-Addressing:: Addressing Modes
+
+
+File: as.info, Node: SH64-Chars, Next: SH64-Regs, Up: SH64 Syntax
+
+9.35.2.1 Special Characters
+...........................
+
+`!' is the line comment character.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line could also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ You can use `;' instead of a newline to separate statements.
+
+ Since `$' has no special meaning, you may use it in symbol names.
+
+
+File: as.info, Node: SH64-Regs, Next: SH64-Addressing, Prev: SH64-Chars, Up: SH64 Syntax
+
+9.35.2.2 Register Names
+.......................
+
+You can use the predefined symbols `r0' through `r63' to refer to the
+SH64 general registers, `cr0' through `cr63' for control registers,
+`tr0' through `tr7' for target address registers, `fr0' through `fr63'
+for single-precision floating point registers, `dr0' through `dr62'
+(even numbered registers only) for double-precision floating point
+registers, `fv0' through `fv60' (multiples of four only) for
+single-precision floating point vectors, `fp0' through `fp62' (even
+numbered registers only) for single-precision floating point pairs,
+`mtrx0' through `mtrx48' (multiples of 16 only) for 4x4 matrices of
+single-precision floating point registers, `pc' for the program
+counter, and `fpscr' for the floating point status and control register.
+
+ You can also refer to the control registers by the mnemonics `sr',
+`ssr', `pssr', `intevt', `expevt', `pexpevt', `tra', `spc', `pspc',
+`resvec', `vbr', `tea', `dcr', `kcr0', `kcr1', `ctc', and `usr'.
+
+
+File: as.info, Node: SH64-Addressing, Prev: SH64-Regs, Up: SH64 Syntax
+
+9.35.2.3 Addressing Modes
+.........................
+
+SH64 operands consist of either a register or immediate value. The
+immediate value can be a constant or label reference (or portion of a
+label reference), as in this example:
+
+ movi 4,r2
+ pt function, tr4
+ movi (function >> 16) & 65535,r0
+ shori function & 65535, r0
+ ld.l r0,4,r0
+
+ Instruction label references can reference labels in either SHmedia
+or SHcompact. To differentiate between the two, labels in SHmedia
+sections will always have the least significant bit set (i.e. they will
+be odd), which SHcompact labels will have the least significant bit
+reset (i.e. they will be even). If you need to reference the actual
+address of a label, you can use the `datalabel' modifier, as in this
+example:
+
+ .long function
+ .long datalabel function
+
+ In that example, the first longword may or may not have the least
+significant bit set depending on whether the label is an SHmedia label
+or an SHcompact label. The second longword will be the actual address
+of the label, regardless of what type of label it is.
+
+
+File: as.info, Node: SH64 Directives, Next: SH64 Opcodes, Prev: SH64 Syntax, Up: SH64-Dependent
+
+9.35.3 SH64 Machine Directives
+------------------------------
+
+In addition to the SH directives, the SH64 provides the following
+directives:
+
+`.mode [shmedia|shcompact]'
+`.isa [shmedia|shcompact]'
+ Specify the ISA for the following instructions (the two directives
+ are equivalent). Note that programs such as `objdump' rely on
+ symbolic labels to determine when such mode switches occur (by
+ checking the least significant bit of the label's address), so
+ such mode/isa changes should always be followed by a label (in
+ practice, this is true anyway). Note that you cannot use these
+ directives if you didn't specify an ISA on the command line.
+
+`.abi [32|64]'
+ Specify the ABI for the following instructions. Note that you
+ cannot use this directive unless you specified an ABI on the
+ command line, and the ABIs specified must match.
+
+`.uaquad'
+ Like .uaword and .ualong, this allows you to specify an
+ intentionally unaligned quadword (64 bit word).
+
+
+
+File: as.info, Node: SH64 Opcodes, Prev: SH64 Directives, Up: SH64-Dependent
+
+9.35.4 Opcodes
+--------------
+
+For detailed information on the SH64 machine instruction set, see
+`SuperH 64 bit RISC Series Architecture Manual' (SuperH, Inc.).
+
+ `as' implements all the standard SH64 opcodes. In addition, the
+following pseudo-opcodes may be expanded into one or more alternate
+opcodes:
+
+`movi'
+ If the value doesn't fit into a standard `movi' opcode, `as' will
+ replace the `movi' with a sequence of `movi' and `shori' opcodes.
+
+`pt'
+ This expands to a sequence of `movi' and `shori' opcode, followed
+ by a `ptrel' opcode, or to a `pta' or `ptb' opcode, depending on
+ the label referenced.
+
+
+
+File: as.info, Node: Sparc-Dependent, Next: TIC54X-Dependent, Prev: SCORE-Dependent, Up: Machine Dependencies
+
+9.36 SPARC Dependent Features
+=============================
+
+* Menu:
+
+* Sparc-Opts:: Options
+* Sparc-Aligned-Data:: Option to enforce aligned data
+* Sparc-Syntax:: Syntax
+* Sparc-Float:: Floating Point
+* Sparc-Directives:: Sparc Machine Directives
+
+
+File: as.info, Node: Sparc-Opts, Next: Sparc-Aligned-Data, Up: Sparc-Dependent
+
+9.36.1 Options
+--------------
+
+The SPARC chip family includes several successive versions, using the
+same core instruction set, but including a few additional instructions
+at each version. There are exceptions to this however. For details on
+what instructions each variant supports, please see the chip's
+architecture reference manual.
+
+ By default, `as' assumes the core instruction set (SPARC v6), but
+"bumps" the architecture level as needed: it switches to successively
+higher architectures as it encounters instructions that only exist in
+the higher levels.
+
+ If not configured for SPARC v9 (`sparc64-*-*') GAS will not bump
+past sparclite by default, an option must be passed to enable the v9
+instructions.
+
+ GAS treats sparclite as being compatible with v8, unless an
+architecture is explicitly requested. SPARC v9 is always incompatible
+with sparclite.
+
+`-Av6 | -Av7 | -Av8 | -Asparclet | -Asparclite'
+`-Av8plus | -Av8plusa | -Av8plusb | -Av8plusc | -Av8plusd | -Av8plusv'
+`-Av9 | -Av9a | -Av9b | -Av9c | -Av9d | -Av9v'
+`-Asparc | -Asparcvis | -Asparcvis2 | -Asparcfmaf | -Asparcima'
+`-Asparcvis3 | -Asparcvis3r'
+ Use one of the `-A' options to select one of the SPARC
+ architectures explicitly. If you select an architecture
+ explicitly, `as' reports a fatal error if it encounters an
+ instruction or feature requiring an incompatible or higher level.
+
+ `-Av8plus', `-Av8plusa', `-Av8plusb', `-Av8plusc', `-Av8plusd',
+ and `-Av8plusv' select a 32 bit environment.
+
+ `-Av9', `-Av9a', `-Av9b', `-Av9c', `-Av9d', and `-Av9v' select a
+ 64 bit environment and are not available unless GAS is explicitly
+ configured with 64 bit environment support.
+
+ `-Av8plusa' and `-Av9a' enable the SPARC V9 instruction set with
+ UltraSPARC VIS 1.0 extensions.
+
+ `-Av8plusb' and `-Av9b' enable the UltraSPARC VIS 2.0 instructions,
+ as well as the instructions enabled by `-Av8plusa' and `-Av9a'.
+
+ `-Av8plusc' and `-Av9c' enable the UltraSPARC Niagara instructions,
+ as well as the instructions enabled by `-Av8plusb' and `-Av9b'.
+
+ `-Av8plusd' and `-Av9d' enable the floating point fused
+ multiply-add, VIS 3.0, and HPC extension instructions, as well as
+ the instructions enabled by `-Av8plusc' and `-Av9c'.
+
+ `-Av8plusv' and `-Av9v' enable the 'random', transactional memory,
+ floating point unfused multiply-add, integer multiply-add, and
+ cache sparing store instructions, as well as the instructions
+ enabled by `-Av8plusd' and `-Av9d'.
+
+ `-Asparc' specifies a v9 environment. It is equivalent to `-Av9'
+ if the word size is 64-bit, and `-Av8plus' otherwise.
+
+ `-Asparcvis' specifies a v9a environment. It is equivalent to
+ `-Av9a' if the word size is 64-bit, and `-Av8plusa' otherwise.
+
+ `-Asparcvis2' specifies a v9b environment. It is equivalent to
+ `-Av9b' if the word size is 64-bit, and `-Av8plusb' otherwise.
+
+ `-Asparcfmaf' specifies a v9b environment with the floating point
+ fused multiply-add instructions enabled.
+
+ `-Asparcima' specifies a v9b environment with the integer
+ multiply-add instructions enabled.
+
+ `-Asparcvis3' specifies a v9b environment with the VIS 3.0, HPC ,
+ and floating point fused multiply-add instructions enabled.
+
+ `-Asparcvis3r' specifies a v9b environment with the VIS 3.0, HPC,
+ transactional memory, random, and floating point unfused
+ multiply-add instructions enabled.
+
+`-xarch=v8plus | -xarch=v8plusa | -xarch=v8plusb | -xarch=v8plusc'
+`-xarch=v8plusd | -xarch=v8plusv | -xarch=v9 | -xarch=v9a'
+`-xarch=v9b | -xarch=v9c | -xarch=v9d | -xarch=v9v'
+`-xarch=sparc | -xarch=sparcvis | -xarch=sparcvis2'
+`-xarch=sparcfmaf | -xarch=sparcima | -xarch=sparcvis3'
+`-xarch=sparcvis3r'
+ For compatibility with the SunOS v9 assembler. These options are
+ equivalent to -Av8plus, -Av8plusa, -Av8plusb, -Av8plusc, -Av8plusd,
+ -Av8plusv, -Av9, -Av9a, -Av9b, -Av9c, -Av9d, -Av9v, -Asparc,
+ -Asparcvis, -Asparcvis2, -Asparcfmaf, -Asparcima, -Asparcvis3, and
+ -Asparcvis3r, respectively.
+
+`-bump'
+ Warn whenever it is necessary to switch to another level. If an
+ architecture level is explicitly requested, GAS will not issue
+ warnings until that level is reached, and will then bump the level
+ as required (except between incompatible levels).
+
+`-32 | -64'
+ Select the word size, either 32 bits or 64 bits. These options
+ are only available with the ELF object file format, and require
+ that the necessary BFD support has been included.
+
+
+File: as.info, Node: Sparc-Aligned-Data, Next: Sparc-Syntax, Prev: Sparc-Opts, Up: Sparc-Dependent
+
+9.36.2 Enforcing aligned data
+-----------------------------
+
+SPARC GAS normally permits data to be misaligned. For example, it
+permits the `.long' pseudo-op to be used on a byte boundary. However,
+the native SunOS assemblers issue an error when they see misaligned
+data.
+
+ You can use the `--enforce-aligned-data' option to make SPARC GAS
+also issue an error about misaligned data, just as the SunOS assemblers
+do.
+
+ The `--enforce-aligned-data' option is not the default because gcc
+issues misaligned data pseudo-ops when it initializes certain packed
+data structures (structures defined using the `packed' attribute). You
+may have to assemble with GAS in order to initialize packed data
+structures in your own code.
+
+
+File: as.info, Node: Sparc-Syntax, Next: Sparc-Float, Prev: Sparc-Aligned-Data, Up: Sparc-Dependent
+
+9.36.3 Sparc Syntax
+-------------------
+
+The assembler syntax closely follows The Sparc Architecture Manual,
+versions 8 and 9, as well as most extensions defined by Sun for their
+UltraSPARC and Niagara line of processors.
+
+* Menu:
+
+* Sparc-Chars:: Special Characters
+* Sparc-Regs:: Register Names
+* Sparc-Constants:: Constant Names
+* Sparc-Relocs:: Relocations
+* Sparc-Size-Translations:: Size Translations
+
+
+File: as.info, Node: Sparc-Chars, Next: Sparc-Regs, Up: Sparc-Syntax
+
+9.36.3.1 Special Characters
+...........................
+
+A `!' character appearing anywhere on a line indicates the start of a
+comment that extends to the end of that line.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line could also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ `;' can be used instead of a newline to separate statements.
+
+
+File: as.info, Node: Sparc-Regs, Next: Sparc-Constants, Prev: Sparc-Chars, Up: Sparc-Syntax
+
+9.36.3.2 Register Names
+.......................
+
+The Sparc integer register file is broken down into global, outgoing,
+local, and incoming.
+
+ * The 8 global registers are referred to as `%gN'.
+
+ * The 8 outgoing registers are referred to as `%oN'.
+
+ * The 8 local registers are referred to as `%lN'.
+
+ * The 8 incoming registers are referred to as `%iN'.
+
+ * The frame pointer register `%i6' can be referenced using the alias
+ `%fp'.
+
+ * The stack pointer register `%o6' can be referenced using the alias
+ `%sp'.
+
+ Floating point registers are simply referred to as `%fN'. When
+assembling for pre-V9, only 32 floating point registers are available.
+For V9 and later there are 64, but there are restrictions when
+referencing the upper 32 registers. They can only be accessed as
+double or quad, and thus only even or quad numbered accesses are
+allowed. For example, `%f34' is a legal floating point register, but
+`%f35' is not.
+
+ Certain V9 instructions allow access to ancillary state registers.
+Most simply they can be referred to as `%asrN' where N can be from 16
+to 31. However, there are some aliases defined to reference ASR
+registers defined for various UltraSPARC processors:
+
+ * The tick compare register is referred to as `%tick_cmpr'.
+
+ * The system tick register is referred to as `%stick'. An alias,
+ `%sys_tick', exists but is deprecated and should not be used by
+ new software.
+
+ * The system tick compare register is referred to as `%stick_cmpr'.
+ An alias, `%sys_tick_cmpr', exists but is deprecated and should
+ not be used by new software.
+
+ * The software interrupt register is referred to as `%softint'.
+
+ * The set software interrupt register is referred to as
+ `%set_softint'. The mnemonic `%softint_set' is provided as an
+ alias.
+
+ * The clear software interrupt register is referred to as
+ `%clear_softint'. The mnemonic `%softint_clear' is provided as an
+ alias.
+
+ * The performance instrumentation counters register is referred to as
+ `%pic'.
+
+ * The performance control register is referred to as `%pcr'.
+
+ * The graphics status register is referred to as `%gsr'.
+
+ * The V9 dispatch control register is referred to as `%dcr'.
+
+ Various V9 branch and conditional move instructions allow
+specification of which set of integer condition codes to test. These
+are referred to as `%xcc' and `%icc'.
+
+ In V9, there are 4 sets of floating point condition codes which are
+referred to as `%fccN'.
+
+ Several special privileged and non-privileged registers exist:
+
+ * The V9 address space identifier register is referred to as `%asi'.
+
+ * The V9 restorable windows register is referred to as `%canrestore'.
+
+ * The V9 savable windows register is referred to as `%cansave'.
+
+ * The V9 clean windows register is referred to as `%cleanwin'.
+
+ * The V9 current window pointer register is referred to as `%cwp'.
+
+ * The floating-point queue register is referred to as `%fq'.
+
+ * The V8 co-processor queue register is referred to as `%cq'.
+
+ * The floating point status register is referred to as `%fsr'.
+
+ * The other windows register is referred to as `%otherwin'.
+
+ * The V9 program counter register is referred to as `%pc'.
+
+ * The V9 next program counter register is referred to as `%npc'.
+
+ * The V9 processor interrupt level register is referred to as `%pil'.
+
+ * The V9 processor state register is referred to as `%pstate'.
+
+ * The trap base address register is referred to as `%tba'.
+
+ * The V9 tick register is referred to as `%tick'.
+
+ * The V9 trap level is referred to as `%tl'.
+
+ * The V9 trap program counter is referred to as `%tpc'.
+
+ * The V9 trap next program counter is referred to as `%tnpc'.
+
+ * The V9 trap state is referred to as `%tstate'.
+
+ * The V9 trap type is referred to as `%tt'.
+
+ * The V9 condition codes is referred to as `%ccr'.
+
+ * The V9 floating-point registers state is referred to as `%fprs'.
+
+ * The V9 version register is referred to as `%ver'.
+
+ * The V9 window state register is referred to as `%wstate'.
+
+ * The Y register is referred to as `%y'.
+
+ * The V8 window invalid mask register is referred to as `%wim'.
+
+ * The V8 processor state register is referred to as `%psr'.
+
+ * The V9 global register level register is referred to as `%gl'.
+
+ Several special register names exist for hypervisor mode code:
+
+ * The hyperprivileged processor state register is referred to as
+ `%hpstate'.
+
+ * The hyperprivileged trap state register is referred to as
+ `%htstate'.
+
+ * The hyperprivileged interrupt pending register is referred to as
+ `%hintp'.
+
+ * The hyperprivileged trap base address register is referred to as
+ `%htba'.
+
+ * The hyperprivileged implementation version register is referred to
+ as `%hver'.
+
+ * The hyperprivileged system tick compare register is referred to as
+ `%hstick_cmpr'. Note that there is no `%hstick' register, the
+ normal `%stick' is used.
+
+
+File: as.info, Node: Sparc-Constants, Next: Sparc-Relocs, Prev: Sparc-Regs, Up: Sparc-Syntax
+
+9.36.3.3 Constants
+..................
+
+Several Sparc instructions take an immediate operand field for which
+mnemonic names exist. Two such examples are `membar' and `prefetch'.
+Another example are the set of V9 memory access instruction that allow
+specification of an address space identifier.
+
+ The `membar' instruction specifies a memory barrier that is the
+defined by the operand which is a bitmask. The supported mask
+mnemonics are:
+
+ * `#Sync' requests that all operations (including nonmemory
+ reference operations) appearing prior to the `membar' must have
+ been performed and the effects of any exceptions become visible
+ before any instructions after the `membar' may be initiated. This
+ corresponds to `membar' cmask field bit 2.
+
+ * `#MemIssue' requests that all memory reference operations
+ appearing prior to the `membar' must have been performed before
+ any memory operation after the `membar' may be initiated. This
+ corresponds to `membar' cmask field bit 1.
+
+ * `#Lookaside' requests that a store appearing prior to the `membar'
+ must complete before any load following the `membar' referencing
+ the same address can be initiated. This corresponds to `membar'
+ cmask field bit 0.
+
+ * `#StoreStore' defines that the effects of all stores appearing
+ prior to the `membar' instruction must be visible to all
+ processors before the effect of any stores following the `membar'.
+ Equivalent to the deprecated `stbar' instruction. This
+ corresponds to `membar' mmask field bit 3.
+
+ * `#LoadStore' defines all loads appearing prior to the `membar'
+ instruction must have been performed before the effect of any
+ stores following the `membar' is visible to any other processor.
+ This corresponds to `membar' mmask field bit 2.
+
+ * `#StoreLoad' defines that the effects of all stores appearing
+ prior to the `membar' instruction must be visible to all
+ processors before loads following the `membar' may be performed.
+ This corresponds to `membar' mmask field bit 1.
+
+ * `#LoadLoad' defines that all loads appearing prior to the `membar'
+ instruction must have been performed before any loads following
+ the `membar' may be performed. This corresponds to `membar' mmask
+ field bit 0.
+
+
+ These values can be ored together, for example:
+
+ membar #Sync
+ membar #StoreLoad | #LoadLoad
+ membar #StoreLoad | #StoreStore
+
+ The `prefetch' and `prefetcha' instructions take a prefetch function
+code. The following prefetch function code constant mnemonics are
+available:
+
+ * `#n_reads' requests a prefetch for several reads, and corresponds
+ to a prefetch function code of 0.
+
+ `#one_read' requests a prefetch for one read, and corresponds to a
+ prefetch function code of 1.
+
+ `#n_writes' requests a prefetch for several writes (and possibly
+ reads), and corresponds to a prefetch function code of 2.
+
+ `#one_write' requests a prefetch for one write, and corresponds to
+ a prefetch function code of 3.
+
+ `#page' requests a prefetch page, and corresponds to a prefetch
+ function code of 4.
+
+ `#invalidate' requests a prefetch invalidate, and corresponds to a
+ prefetch function code of 16.
+
+ `#unified' requests a prefetch to the nearest unified cache, and
+ corresponds to a prefetch function code of 17.
+
+ `#n_reads_strong' requests a strong prefetch for several reads,
+ and corresponds to a prefetch function code of 20.
+
+ `#one_read_strong' requests a strong prefetch for one read, and
+ corresponds to a prefetch function code of 21.
+
+ `#n_writes_strong' requests a strong prefetch for several writes,
+ and corresponds to a prefetch function code of 22.
+
+ `#one_write_strong' requests a strong prefetch for one write, and
+ corresponds to a prefetch function code of 23.
+
+ Onle one prefetch code may be specified. Here are some examples:
+
+ prefetch [%l0 + %l2], #one_read
+ prefetch [%g2 + 8], #n_writes
+ prefetcha [%g1] 0x8, #unified
+ prefetcha [%o0 + 0x10] %asi, #n_reads
+
+ The actual behavior of a given prefetch function code is processor
+ specific. If a processor does not implement a given prefetch
+ function code, it will treat the prefetch instruction as a nop.
+
+ For instructions that accept an immediate address space identifier,
+ `as' provides many mnemonics corresponding to V9 defined as well
+ as UltraSPARC and Niagara extended values. For example, `#ASI_P'
+ and `#ASI_BLK_INIT_QUAD_LDD_AIUS'. See the V9 and processor
+ specific manuals for details.
+
+
+
+File: as.info, Node: Sparc-Relocs, Next: Sparc-Size-Translations, Prev: Sparc-Constants, Up: Sparc-Syntax
+
+9.36.3.4 Relocations
+....................
+
+ELF relocations are available as defined in the 32-bit and 64-bit Sparc
+ELF specifications.
+
+ `R_SPARC_HI22' is obtained using `%hi' and `R_SPARC_LO10' is
+obtained using `%lo'. Likewise `R_SPARC_HIX22' is obtained from `%hix'
+and `R_SPARC_LOX10' is obtained using `%lox'. For example:
+
+ sethi %hi(symbol), %g1
+ or %g1, %lo(symbol), %g1
+
+ sethi %hix(symbol), %g1
+ xor %g1, %lox(symbol), %g1
+
+ These "high" mnemonics extract bits 31:10 of their operand, and the
+"low" mnemonics extract bits 9:0 of their operand.
+
+ V9 code model relocations can be requested as follows:
+
+ * `R_SPARC_HH22' is requested using `%hh'. It can also be generated
+ using `%uhi'.
+
+ * `R_SPARC_HM10' is requested using `%hm'. It can also be generated
+ using `%ulo'.
+
+ * `R_SPARC_LM22' is requested using `%lm'.
+
+ * `R_SPARC_H44' is requested using `%h44'.
+
+ * `R_SPARC_M44' is requested using `%m44'.
+
+ * `R_SPARC_L44' is requested using `%l44'.
+
+ The PC relative relocation `R_SPARC_PC22' can be obtained by
+enclosing an operand inside of `%pc22'. Likewise, the `R_SPARC_PC10'
+relocation can be obtained using `%pc10'. These are mostly used when
+assembling PIC code. For example, the standard PIC sequence on Sparc
+to get the base of the global offset table, PC relative, into a
+register, can be performed as:
+
+ sethi %pc22(_GLOBAL_OFFSET_TABLE_-4), %l7
+ add %l7, %pc10(_GLOBAL_OFFSET_TABLE_+4), %l7
+
+ Several relocations exist to allow the link editor to potentially
+optimize GOT data references. The `R_SPARC_GOTDATA_OP_HIX22'
+relocation can obtained by enclosing an operand inside of
+`%gdop_hix22'. The `R_SPARC_GOTDATA_OP_LOX10' relocation can obtained
+by enclosing an operand inside of `%gdop_lox10'. Likewise,
+`R_SPARC_GOTDATA_OP' can be obtained by enclosing an operand inside of
+`%gdop'. For example, assuming the GOT base is in register `%l7':
+
+ sethi %gdop_hix22(symbol), %l1
+ xor %l1, %gdop_lox10(symbol), %l1
+ ld [%l7 + %l1], %l2, %gdop(symbol)
+
+ There are many relocations that can be requested for access to
+thread local storage variables. All of the Sparc TLS mnemonics are
+supported:
+
+ * `R_SPARC_TLS_GD_HI22' is requested using `%tgd_hi22'.
+
+ * `R_SPARC_TLS_GD_LO10' is requested using `%tgd_lo10'.
+
+ * `R_SPARC_TLS_GD_ADD' is requested using `%tgd_add'.
+
+ * `R_SPARC_TLS_GD_CALL' is requested using `%tgd_call'.
+
+ * `R_SPARC_TLS_LDM_HI22' is requested using `%tldm_hi22'.
+
+ * `R_SPARC_TLS_LDM_LO10' is requested using `%tldm_lo10'.
+
+ * `R_SPARC_TLS_LDM_ADD' is requested using `%tldm_add'.
+
+ * `R_SPARC_TLS_LDM_CALL' is requested using `%tldm_call'.
+
+ * `R_SPARC_TLS_LDO_HIX22' is requested using `%tldo_hix22'.
+
+ * `R_SPARC_TLS_LDO_LOX10' is requested using `%tldo_lox10'.
+
+ * `R_SPARC_TLS_LDO_ADD' is requested using `%tldo_add'.
+
+ * `R_SPARC_TLS_IE_HI22' is requested using `%tie_hi22'.
+
+ * `R_SPARC_TLS_IE_LO10' is requested using `%tie_lo10'.
+
+ * `R_SPARC_TLS_IE_LD' is requested using `%tie_ld'.
+
+ * `R_SPARC_TLS_IE_LDX' is requested using `%tie_ldx'.
+
+ * `R_SPARC_TLS_IE_ADD' is requested using `%tie_add'.
+
+ * `R_SPARC_TLS_LE_HIX22' is requested using `%tle_hix22'.
+
+ * `R_SPARC_TLS_LE_LOX10' is requested using `%tle_lox10'.
+
+ Here are some example TLS model sequences.
+
+ First, General Dynamic:
+
+ sethi %tgd_hi22(symbol), %l1
+ add %l1, %tgd_lo10(symbol), %l1
+ add %l7, %l1, %o0, %tgd_add(symbol)
+ call __tls_get_addr, %tgd_call(symbol)
+ nop
+
+ Local Dynamic:
+
+ sethi %tldm_hi22(symbol), %l1
+ add %l1, %tldm_lo10(symbol), %l1
+ add %l7, %l1, %o0, %tldm_add(symbol)
+ call __tls_get_addr, %tldm_call(symbol)
+ nop
+
+ sethi %tldo_hix22(symbol), %l1
+ xor %l1, %tldo_lox10(symbol), %l1
+ add %o0, %l1, %l1, %tldo_add(symbol)
+
+ Initial Exec:
+
+ sethi %tie_hi22(symbol), %l1
+ add %l1, %tie_lo10(symbol), %l1
+ ld [%l7 + %l1], %o0, %tie_ld(symbol)
+ add %g7, %o0, %o0, %tie_add(symbol)
+
+ sethi %tie_hi22(symbol), %l1
+ add %l1, %tie_lo10(symbol), %l1
+ ldx [%l7 + %l1], %o0, %tie_ldx(symbol)
+ add %g7, %o0, %o0, %tie_add(symbol)
+
+ And finally, Local Exec:
+
+ sethi %tle_hix22(symbol), %l1
+ add %l1, %tle_lox10(symbol), %l1
+ add %g7, %l1, %l1
+
+ When assembling for 64-bit, and a secondary constant addend is
+specified in an address expression that would normally generate an
+`R_SPARC_LO10' relocation, the assembler will emit an `R_SPARC_OLO10'
+instead.
+
+
+File: as.info, Node: Sparc-Size-Translations, Prev: Sparc-Relocs, Up: Sparc-Syntax
+
+9.36.3.5 Size Translations
+..........................
+
+Often it is desirable to write code in an operand size agnostic manner.
+`as' provides support for this via operand size opcode translations.
+Translations are supported for loads, stores, shifts, compare-and-swap
+atomics, and the `clr' synthetic instruction.
+
+ If generating 32-bit code, `as' will generate the 32-bit opcode.
+Whereas if 64-bit code is being generated, the 64-bit opcode will be
+emitted. For example `ldn' will be transformed into `ld' for 32-bit
+code and `ldx' for 64-bit code.
+
+ Here is an example meant to demonstrate all the supported opcode
+translations:
+
+ ldn [%o0], %o1
+ ldna [%o0] %asi, %o2
+ stn %o1, [%o0]
+ stna %o2, [%o0] %asi
+ slln %o3, 3, %o3
+ srln %o4, 8, %o4
+ sran %o5, 12, %o5
+ casn [%o0], %o1, %o2
+ casna [%o0] %asi, %o1, %o2
+ clrn %g1
+
+ In 32-bit mode `as' will emit:
+
+ ld [%o0], %o1
+ lda [%o0] %asi, %o2
+ st %o1, [%o0]
+ sta %o2, [%o0] %asi
+ sll %o3, 3, %o3
+ srl %o4, 8, %o4
+ sra %o5, 12, %o5
+ cas [%o0], %o1, %o2
+ casa [%o0] %asi, %o1, %o2
+ clr %g1
+
+ And in 64-bit mode `as' will emit:
+
+ ldx [%o0], %o1
+ ldxa [%o0] %asi, %o2
+ stx %o1, [%o0]
+ stxa %o2, [%o0] %asi
+ sllx %o3, 3, %o3
+ srlx %o4, 8, %o4
+ srax %o5, 12, %o5
+ casx [%o0], %o1, %o2
+ casxa [%o0] %asi, %o1, %o2
+ clrx %g1
+
+ Finally, the `.nword' translating directive is supported as well.
+It is documented in the section on Sparc machine directives.
+
+
+File: as.info, Node: Sparc-Float, Next: Sparc-Directives, Prev: Sparc-Syntax, Up: Sparc-Dependent
+
+9.36.4 Floating Point
+---------------------
+
+The Sparc uses IEEE floating-point numbers.
+
+
+File: as.info, Node: Sparc-Directives, Prev: Sparc-Float, Up: Sparc-Dependent
+
+9.36.5 Sparc Machine Directives
+-------------------------------
+
+The Sparc version of `as' supports the following additional machine
+directives:
+
+`.align'
+ This must be followed by the desired alignment in bytes.
+
+`.common'
+ This must be followed by a symbol name, a positive number, and
+ `"bss"'. This behaves somewhat like `.comm', but the syntax is
+ different.
+
+`.half'
+ This is functionally identical to `.short'.
+
+`.nword'
+ On the Sparc, the `.nword' directive produces native word sized
+ value, ie. if assembling with -32 it is equivalent to `.word', if
+ assembling with -64 it is equivalent to `.xword'.
+
+`.proc'
+ This directive is ignored. Any text following it on the same line
+ is also ignored.
+
+`.register'
+ This directive declares use of a global application or system
+ register. It must be followed by a register name %g2, %g3, %g6 or
+ %g7, comma and the symbol name for that register. If symbol name
+ is `#scratch', it is a scratch register, if it is `#ignore', it
+ just suppresses any errors about using undeclared global register,
+ but does not emit any information about it into the object file.
+ This can be useful e.g. if you save the register before use and
+ restore it after.
+
+`.reserve'
+ This must be followed by a symbol name, a positive number, and
+ `"bss"'. This behaves somewhat like `.lcomm', but the syntax is
+ different.
+
+`.seg'
+ This must be followed by `"text"', `"data"', or `"data1"'. It
+ behaves like `.text', `.data', or `.data 1'.
+
+`.skip'
+ This is functionally identical to the `.space' directive.
+
+`.word'
+ On the Sparc, the `.word' directive produces 32 bit values,
+ instead of the 16 bit values it produces on many other machines.
+
+`.xword'
+ On the Sparc V9 processor, the `.xword' directive produces 64 bit
+ values.
+
+
+File: as.info, Node: TIC54X-Dependent, Next: TIC6X-Dependent, Prev: Sparc-Dependent, Up: Machine Dependencies
+
+9.37 TIC54X Dependent Features
+==============================
+
+* Menu:
+
+* TIC54X-Opts:: Command-line Options
+* TIC54X-Block:: Blocking
+* TIC54X-Env:: Environment Settings
+* TIC54X-Constants:: Constants Syntax
+* TIC54X-Subsyms:: String Substitution
+* TIC54X-Locals:: Local Label Syntax
+* TIC54X-Builtins:: Builtin Assembler Math Functions
+* TIC54X-Ext:: Extended Addressing Support
+* TIC54X-Directives:: Directives
+* TIC54X-Macros:: Macro Features
+* TIC54X-MMRegs:: Memory-mapped Registers
+* TIC54X-Syntax:: Syntax
+
+
+File: as.info, Node: TIC54X-Opts, Next: TIC54X-Block, Up: TIC54X-Dependent
+
+9.37.1 Options
+--------------
+
+The TMS320C54X version of `as' has a few machine-dependent options.
+
+ You can use the `-mfar-mode' option to enable extended addressing
+mode. All addresses will be assumed to be > 16 bits, and the
+appropriate relocation types will be used. This option is equivalent
+to using the `.far_mode' directive in the assembly code. If you do not
+use the `-mfar-mode' option, all references will be assumed to be 16
+bits. This option may be abbreviated to `-mf'.
+
+ You can use the `-mcpu' option to specify a particular CPU. This
+option is equivalent to using the `.version' directive in the assembly
+code. For recognized CPU codes, see *Note `.version':
+TIC54X-Directives. The default CPU version is `542'.
+
+ You can use the `-merrors-to-file' option to redirect error output
+to a file (this provided for those deficient environments which don't
+provide adequate output redirection). This option may be abbreviated to
+`-me'.
+
+
+File: as.info, Node: TIC54X-Block, Next: TIC54X-Env, Prev: TIC54X-Opts, Up: TIC54X-Dependent
+
+9.37.2 Blocking
+---------------
+
+A blocked section or memory block is guaranteed not to cross the
+blocking boundary (usually a page, or 128 words) if it is smaller than
+the blocking size, or to start on a page boundary if it is larger than
+the blocking size.
+
+
+File: as.info, Node: TIC54X-Env, Next: TIC54X-Constants, Prev: TIC54X-Block, Up: TIC54X-Dependent
+
+9.37.3 Environment Settings
+---------------------------
+
+`C54XDSP_DIR' and `A_DIR' are semicolon-separated paths which are added
+to the list of directories normally searched for source and include
+files. `C54XDSP_DIR' will override `A_DIR'.
+
+
+File: as.info, Node: TIC54X-Constants, Next: TIC54X-Subsyms, Prev: TIC54X-Env, Up: TIC54X-Dependent
+
+9.37.4 Constants Syntax
+-----------------------
+
+The TIC54X version of `as' allows the following additional constant
+formats, using a suffix to indicate the radix:
+
+ Binary `000000B, 011000b'
+ Octal `10Q, 224q'
+ Hexadecimal `45h, 0FH'
+
+
+File: as.info, Node: TIC54X-Subsyms, Next: TIC54X-Locals, Prev: TIC54X-Constants, Up: TIC54X-Dependent
+
+9.37.5 String Substitution
+--------------------------
+
+A subset of allowable symbols (which we'll call subsyms) may be assigned
+arbitrary string values. This is roughly equivalent to C preprocessor
+#define macros. When `as' encounters one of these symbols, the symbol
+is replaced in the input stream by its string value. Subsym names
+*must* begin with a letter.
+
+ Subsyms may be defined using the `.asg' and `.eval' directives
+(*Note `.asg': TIC54X-Directives, *Note `.eval': TIC54X-Directives.
+
+ Expansion is recursive until a previously encountered symbol is
+seen, at which point substitution stops.
+
+ In this example, x is replaced with SYM2; SYM2 is replaced with
+SYM1, and SYM1 is replaced with x. At this point, x has already been
+encountered and the substitution stops.
+
+ .asg "x",SYM1
+ .asg "SYM1",SYM2
+ .asg "SYM2",x
+ add x,a ; final code assembled is "add x, a"
+
+ Macro parameters are converted to subsyms; a side effect of this is
+the normal `as' '\ARG' dereferencing syntax is unnecessary. Subsyms
+defined within a macro will have global scope, unless the `.var'
+directive is used to identify the subsym as a local macro variable
+*note `.var': TIC54X-Directives.
+
+ Substitution may be forced in situations where replacement might be
+ambiguous by placing colons on either side of the subsym. The following
+code:
+
+ .eval "10",x
+ LAB:X: add #x, a
+
+ When assembled becomes:
+
+ LAB10 add #10, a
+
+ Smaller parts of the string assigned to a subsym may be accessed with
+the following syntax:
+
+``:SYMBOL(CHAR_INDEX):''
+ Evaluates to a single-character string, the character at
+ CHAR_INDEX.
+
+``:SYMBOL(START,LENGTH):''
+ Evaluates to a substring of SYMBOL beginning at START with length
+ LENGTH.
+
+
+File: as.info, Node: TIC54X-Locals, Next: TIC54X-Builtins, Prev: TIC54X-Subsyms, Up: TIC54X-Dependent
+
+9.37.6 Local Labels
+-------------------
+
+Local labels may be defined in two ways:
+
+ * $N, where N is a decimal number between 0 and 9
+
+ * LABEL?, where LABEL is any legal symbol name.
+
+ Local labels thus defined may be redefined or automatically
+generated. The scope of a local label is based on when it may be
+undefined or reset. This happens when one of the following situations
+is encountered:
+
+ * .newblock directive *note `.newblock': TIC54X-Directives.
+
+ * The current section is changed (.sect, .text, or .data)
+
+ * Entering or leaving an included file
+
+ * The macro scope where the label was defined is exited
+
+
+File: as.info, Node: TIC54X-Builtins, Next: TIC54X-Ext, Prev: TIC54X-Locals, Up: TIC54X-Dependent
+
+9.37.7 Math Builtins
+--------------------
+
+The following built-in functions may be used to generate a
+floating-point value. All return a floating-point value except `$cvi',
+`$int', and `$sgn', which return an integer value.
+
+``$acos(EXPR)''
+ Returns the floating point arccosine of EXPR.
+
+``$asin(EXPR)''
+ Returns the floating point arcsine of EXPR.
+
+``$atan(EXPR)''
+ Returns the floating point arctangent of EXPR.
+
+``$atan2(EXPR1,EXPR2)''
+ Returns the floating point arctangent of EXPR1 / EXPR2.
+
+``$ceil(EXPR)''
+ Returns the smallest integer not less than EXPR as floating point.
+
+``$cosh(EXPR)''
+ Returns the floating point hyperbolic cosine of EXPR.
+
+``$cos(EXPR)''
+ Returns the floating point cosine of EXPR.
+
+``$cvf(EXPR)''
+ Returns the integer value EXPR converted to floating-point.
+
+``$cvi(EXPR)''
+ Returns the floating point value EXPR converted to integer.
+
+``$exp(EXPR)''
+ Returns the floating point value e ^ EXPR.
+
+``$fabs(EXPR)''
+ Returns the floating point absolute value of EXPR.
+
+``$floor(EXPR)''
+ Returns the largest integer that is not greater than EXPR as
+ floating point.
+
+``$fmod(EXPR1,EXPR2)''
+ Returns the floating point remainder of EXPR1 / EXPR2.
+
+``$int(EXPR)''
+ Returns 1 if EXPR evaluates to an integer, zero otherwise.
+
+``$ldexp(EXPR1,EXPR2)''
+ Returns the floating point value EXPR1 * 2 ^ EXPR2.
+
+``$log10(EXPR)''
+ Returns the base 10 logarithm of EXPR.
+
+``$log(EXPR)''
+ Returns the natural logarithm of EXPR.
+
+``$max(EXPR1,EXPR2)''
+ Returns the floating point maximum of EXPR1 and EXPR2.
+
+``$min(EXPR1,EXPR2)''
+ Returns the floating point minimum of EXPR1 and EXPR2.
+
+``$pow(EXPR1,EXPR2)''
+ Returns the floating point value EXPR1 ^ EXPR2.
+
+``$round(EXPR)''
+ Returns the nearest integer to EXPR as a floating point number.
+
+``$sgn(EXPR)''
+ Returns -1, 0, or 1 based on the sign of EXPR.
+
+``$sin(EXPR)''
+ Returns the floating point sine of EXPR.
+
+``$sinh(EXPR)''
+ Returns the floating point hyperbolic sine of EXPR.
+
+``$sqrt(EXPR)''
+ Returns the floating point square root of EXPR.
+
+``$tan(EXPR)''
+ Returns the floating point tangent of EXPR.
+
+``$tanh(EXPR)''
+ Returns the floating point hyperbolic tangent of EXPR.
+
+``$trunc(EXPR)''
+ Returns the integer value of EXPR truncated towards zero as
+ floating point.
+
+
+
+File: as.info, Node: TIC54X-Ext, Next: TIC54X-Directives, Prev: TIC54X-Builtins, Up: TIC54X-Dependent
+
+9.37.8 Extended Addressing
+--------------------------
+
+The `LDX' pseudo-op is provided for loading the extended addressing bits
+of a label or address. For example, if an address `_label' resides in
+extended program memory, the value of `_label' may be loaded as follows:
+ ldx #_label,16,a ; loads extended bits of _label
+ or #_label,a ; loads lower 16 bits of _label
+ bacc a ; full address is in accumulator A
+
+
+File: as.info, Node: TIC54X-Directives, Next: TIC54X-Macros, Prev: TIC54X-Ext, Up: TIC54X-Dependent
+
+9.37.9 Directives
+-----------------
+
+`.align [SIZE]'
+`.even'
+ Align the section program counter on the next boundary, based on
+ SIZE. SIZE may be any power of 2. `.even' is equivalent to
+ `.align' with a SIZE of 2.
+ `1'
+ Align SPC to word boundary
+
+ `2'
+ Align SPC to longword boundary (same as .even)
+
+ `128'
+ Align SPC to page boundary
+
+`.asg STRING, NAME'
+ Assign NAME the string STRING. String replacement is performed on
+ STRING before assignment.
+
+`.eval STRING, NAME'
+ Evaluate the contents of string STRING and assign the result as a
+ string to the subsym NAME. String replacement is performed on
+ STRING before assignment.
+
+`.bss SYMBOL, SIZE [, [BLOCKING_FLAG] [,ALIGNMENT_FLAG]]'
+ Reserve space for SYMBOL in the .bss section. SIZE is in words.
+ If present, BLOCKING_FLAG indicates the allocated space should be
+ aligned on a page boundary if it would otherwise cross a page
+ boundary. If present, ALIGNMENT_FLAG causes the assembler to
+ allocate SIZE on a long word boundary.
+
+`.byte VALUE [,...,VALUE_N]'
+`.ubyte VALUE [,...,VALUE_N]'
+`.char VALUE [,...,VALUE_N]'
+`.uchar VALUE [,...,VALUE_N]'
+ Place one or more bytes into consecutive words of the current
+ section. The upper 8 bits of each word is zero-filled. If a
+ label is used, it points to the word allocated for the first byte
+ encountered.
+
+`.clink ["SECTION_NAME"]'
+ Set STYP_CLINK flag for this section, which indicates to the
+ linker that if no symbols from this section are referenced, the
+ section should not be included in the link. If SECTION_NAME is
+ omitted, the current section is used.
+
+`.c_mode'
+ TBD.
+
+`.copy "FILENAME" | FILENAME'
+`.include "FILENAME" | FILENAME'
+ Read source statements from FILENAME. The normal include search
+ path is used. Normally .copy will cause statements from the
+ included file to be printed in the assembly listing and .include
+ will not, but this distinction is not currently implemented.
+
+`.data'
+ Begin assembling code into the .data section.
+
+`.double VALUE [,...,VALUE_N]'
+`.ldouble VALUE [,...,VALUE_N]'
+`.float VALUE [,...,VALUE_N]'
+`.xfloat VALUE [,...,VALUE_N]'
+ Place an IEEE single-precision floating-point representation of
+ one or more floating-point values into the current section. All
+ but `.xfloat' align the result on a longword boundary. Values are
+ stored most-significant word first.
+
+`.drlist'
+`.drnolist'
+ Control printing of directives to the listing file. Ignored.
+
+`.emsg STRING'
+`.mmsg STRING'
+`.wmsg STRING'
+ Emit a user-defined error, message, or warning, respectively.
+
+`.far_mode'
+ Use extended addressing when assembling statements. This should
+ appear only once per file, and is equivalent to the -mfar-mode
+ option *note `-mfar-mode': TIC54X-Opts.
+
+`.fclist'
+`.fcnolist'
+ Control printing of false conditional blocks to the listing file.
+
+`.field VALUE [,SIZE]'
+ Initialize a bitfield of SIZE bits in the current section. If
+ VALUE is relocatable, then SIZE must be 16. SIZE defaults to 16
+ bits. If VALUE does not fit into SIZE bits, the value will be
+ truncated. Successive `.field' directives will pack starting at
+ the current word, filling the most significant bits first, and
+ aligning to the start of the next word if the field size does not
+ fit into the space remaining in the current word. A `.align'
+ directive with an operand of 1 will force the next `.field'
+ directive to begin packing into a new word. If a label is used, it
+ points to the word that contains the specified field.
+
+`.global SYMBOL [,...,SYMBOL_N]'
+`.def SYMBOL [,...,SYMBOL_N]'
+`.ref SYMBOL [,...,SYMBOL_N]'
+ `.def' nominally identifies a symbol defined in the current file
+ and available to other files. `.ref' identifies a symbol used in
+ the current file but defined elsewhere. Both map to the standard
+ `.global' directive.
+
+`.half VALUE [,...,VALUE_N]'
+`.uhalf VALUE [,...,VALUE_N]'
+`.short VALUE [,...,VALUE_N]'
+`.ushort VALUE [,...,VALUE_N]'
+`.int VALUE [,...,VALUE_N]'
+`.uint VALUE [,...,VALUE_N]'
+`.word VALUE [,...,VALUE_N]'
+`.uword VALUE [,...,VALUE_N]'
+ Place one or more values into consecutive words of the current
+ section. If a label is used, it points to the word allocated for
+ the first value encountered.
+
+`.label SYMBOL'
+ Define a special SYMBOL to refer to the load time address of the
+ current section program counter.
+
+`.length'
+`.width'
+ Set the page length and width of the output listing file. Ignored.
+
+`.list'
+`.nolist'
+ Control whether the source listing is printed. Ignored.
+
+`.long VALUE [,...,VALUE_N]'
+`.ulong VALUE [,...,VALUE_N]'
+`.xlong VALUE [,...,VALUE_N]'
+ Place one or more 32-bit values into consecutive words in the
+ current section. The most significant word is stored first.
+ `.long' and `.ulong' align the result on a longword boundary;
+ `xlong' does not.
+
+`.loop [COUNT]'
+`.break [CONDITION]'
+`.endloop'
+ Repeatedly assemble a block of code. `.loop' begins the block, and
+ `.endloop' marks its termination. COUNT defaults to 1024, and
+ indicates the number of times the block should be repeated.
+ `.break' terminates the loop so that assembly begins after the
+ `.endloop' directive. The optional CONDITION will cause the loop
+ to terminate only if it evaluates to zero.
+
+`MACRO_NAME .macro [PARAM1][,...PARAM_N]'
+`[.mexit]'
+`.endm'
+ See the section on macros for more explanation (*Note
+ TIC54X-Macros::.
+
+`.mlib "FILENAME" | FILENAME'
+ Load the macro library FILENAME. FILENAME must be an archived
+ library (BFD ar-compatible) of text files, expected to contain
+ only macro definitions. The standard include search path is used.
+
+`.mlist'
+`.mnolist'
+ Control whether to include macro and loop block expansions in the
+ listing output. Ignored.
+
+`.mmregs'
+ Define global symbolic names for the 'c54x registers. Supposedly
+ equivalent to executing `.set' directives for each register with
+ its memory-mapped value, but in reality is provided only for
+ compatibility and does nothing.
+
+`.newblock'
+ This directive resets any TIC54X local labels currently defined.
+ Normal `as' local labels are unaffected.
+
+`.option OPTION_LIST'
+ Set listing options. Ignored.
+
+`.sblock "SECTION_NAME" | SECTION_NAME [,"NAME_N" | NAME_N]'
+ Designate SECTION_NAME for blocking. Blocking guarantees that a
+ section will start on a page boundary (128 words) if it would
+ otherwise cross a page boundary. Only initialized sections may be
+ designated with this directive. See also *Note TIC54X-Block::.
+
+`.sect "SECTION_NAME"'
+ Define a named initialized section and make it the current section.
+
+`SYMBOL .set "VALUE"'
+`SYMBOL .equ "VALUE"'
+ Equate a constant VALUE to a SYMBOL, which is placed in the symbol
+ table. SYMBOL may not be previously defined.
+
+`.space SIZE_IN_BITS'
+`.bes SIZE_IN_BITS'
+ Reserve the given number of bits in the current section and
+ zero-fill them. If a label is used with `.space', it points to the
+ *first* word reserved. With `.bes', the label points to the
+ *last* word reserved.
+
+`.sslist'
+`.ssnolist'
+ Controls the inclusion of subsym replacement in the listing
+ output. Ignored.
+
+`.string "STRING" [,...,"STRING_N"]'
+`.pstring "STRING" [,...,"STRING_N"]'
+ Place 8-bit characters from STRING into the current section.
+ `.string' zero-fills the upper 8 bits of each word, while
+ `.pstring' puts two characters into each word, filling the
+ most-significant bits first. Unused space is zero-filled. If a
+ label is used, it points to the first word initialized.
+
+`[STAG] .struct [OFFSET]'
+`[NAME_1] element [COUNT_1]'
+`[NAME_2] element [COUNT_2]'
+`[TNAME] .tag STAGX [TCOUNT]'
+`...'
+`[NAME_N] element [COUNT_N]'
+`[SSIZE] .endstruct'
+`LABEL .tag [STAG]'
+ Assign symbolic offsets to the elements of a structure. STAG
+ defines a symbol to use to reference the structure. OFFSET
+ indicates a starting value to use for the first element
+ encountered; otherwise it defaults to zero. Each element can have
+ a named offset, NAME, which is a symbol assigned the value of the
+ element's offset into the structure. If STAG is missing, these
+ become global symbols. COUNT adjusts the offset that many times,
+ as if `element' were an array. `element' may be one of `.byte',
+ `.word', `.long', `.float', or any equivalent of those, and the
+ structure offset is adjusted accordingly. `.field' and `.string'
+ are also allowed; the size of `.field' is one bit, and `.string'
+ is considered to be one word in size. Only element descriptors,
+ structure/union tags, `.align' and conditional assembly directives
+ are allowed within `.struct'/`.endstruct'. `.align' aligns member
+ offsets to word boundaries only. SSIZE, if provided, will always
+ be assigned the size of the structure.
+
+ The `.tag' directive, in addition to being used to define a
+ structure/union element within a structure, may be used to apply a
+ structure to a symbol. Once applied to LABEL, the individual
+ structure elements may be applied to LABEL to produce the desired
+ offsets using LABEL as the structure base.
+
+`.tab'
+ Set the tab size in the output listing. Ignored.
+
+`[UTAG] .union'
+`[NAME_1] element [COUNT_1]'
+`[NAME_2] element [COUNT_2]'
+`[TNAME] .tag UTAGX[,TCOUNT]'
+`...'
+`[NAME_N] element [COUNT_N]'
+`[USIZE] .endstruct'
+`LABEL .tag [UTAG]'
+ Similar to `.struct', but the offset after each element is reset to
+ zero, and the USIZE is set to the maximum of all defined elements.
+ Starting offset for the union is always zero.
+
+`[SYMBOL] .usect "SECTION_NAME", SIZE, [,[BLOCKING_FLAG] [,ALIGNMENT_FLAG]]'
+ Reserve space for variables in a named, uninitialized section
+ (similar to .bss). `.usect' allows definitions sections
+ independent of .bss. SYMBOL points to the first location reserved
+ by this allocation. The symbol may be used as a variable name.
+ SIZE is the allocated size in words. BLOCKING_FLAG indicates
+ whether to block this section on a page boundary (128 words)
+ (*note TIC54X-Block::). ALIGNMENT FLAG indicates whether the
+ section should be longword-aligned.
+
+`.var SYM[,..., SYM_N]'
+ Define a subsym to be a local variable within a macro. See *Note
+ TIC54X-Macros::.
+
+`.version VERSION'
+ Set which processor to build instructions for. Though the
+ following values are accepted, the op is ignored.
+ `541'
+ `542'
+ `543'
+ `545'
+ `545LP'
+ `546LP'
+ `548'
+ `549'
+
+
+File: as.info, Node: TIC54X-Macros, Next: TIC54X-MMRegs, Prev: TIC54X-Directives, Up: TIC54X-Dependent
+
+9.37.10 Macros
+--------------
+
+Macros do not require explicit dereferencing of arguments (i.e., \ARG).
+
+ During macro expansion, the macro parameters are converted to
+subsyms. If the number of arguments passed the macro invocation
+exceeds the number of parameters defined, the last parameter is
+assigned the string equivalent of all remaining arguments. If fewer
+arguments are given than parameters, the missing parameters are
+assigned empty strings. To include a comma in an argument, you must
+enclose the argument in quotes.
+
+ The following built-in subsym functions allow examination of the
+string value of subsyms (or ordinary strings). The arguments are
+strings unless otherwise indicated (subsyms passed as args will be
+replaced by the strings they represent).
+``$symlen(STR)''
+ Returns the length of STR.
+
+``$symcmp(STR1,STR2)''
+ Returns 0 if STR1 == STR2, non-zero otherwise.
+
+``$firstch(STR,CH)''
+ Returns index of the first occurrence of character constant CH in
+ STR.
+
+``$lastch(STR,CH)''
+ Returns index of the last occurrence of character constant CH in
+ STR.
+
+``$isdefed(SYMBOL)''
+ Returns zero if the symbol SYMBOL is not in the symbol table,
+ non-zero otherwise.
+
+``$ismember(SYMBOL,LIST)''
+ Assign the first member of comma-separated string LIST to SYMBOL;
+ LIST is reassigned the remainder of the list. Returns zero if
+ LIST is a null string. Both arguments must be subsyms.
+
+``$iscons(EXPR)''
+ Returns 1 if string EXPR is binary, 2 if octal, 3 if hexadecimal,
+ 4 if a character, 5 if decimal, and zero if not an integer.
+
+``$isname(NAME)''
+ Returns 1 if NAME is a valid symbol name, zero otherwise.
+
+``$isreg(REG)''
+ Returns 1 if REG is a valid predefined register name (AR0-AR7
+ only).
+
+``$structsz(STAG)''
+ Returns the size of the structure or union represented by STAG.
+
+``$structacc(STAG)''
+ Returns the reference point of the structure or union represented
+ by STAG. Always returns zero.
+
+
+
+File: as.info, Node: TIC54X-MMRegs, Next: TIC54X-Syntax, Prev: TIC54X-Macros, Up: TIC54X-Dependent
+
+9.37.11 Memory-mapped Registers
+-------------------------------
+
+The following symbols are recognized as memory-mapped registers:
+
+
+
+File: as.info, Node: TIC54X-Syntax, Prev: TIC54X-MMRegs, Up: TIC54X-Dependent
+
+9.37.12 TIC54X Syntax
+---------------------
+
+* Menu:
+
+* TIC54X-Chars:: Special Characters
+
+
+File: as.info, Node: TIC54X-Chars, Up: TIC54X-Syntax
+
+9.37.12.1 Special Characters
+............................
+
+The presence of a `;' appearing anywhere on a line indicates the start
+of a comment that extends to the end of that line.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line can also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ The presence of an asterisk (`*') at the start of a line also
+indicates a comment that extends to the end of that line.
+
+ The TIC54X assembler does not currently support a line separator
+character.
+
+
+File: as.info, Node: TIC6X-Dependent, Next: TILE-Gx-Dependent, Prev: TIC54X-Dependent, Up: Machine Dependencies
+
+9.38 TIC6X Dependent Features
+=============================
+
+* Menu:
+
+* TIC6X Options:: Options
+* TIC6X Syntax:: Syntax
+* TIC6X Directives:: Directives
+
+
+File: as.info, Node: TIC6X Options, Next: TIC6X Syntax, Up: TIC6X-Dependent
+
+9.38.1 TIC6X Options
+--------------------
+
+`-march=ARCH'
+ Enable (only) instructions from architecture ARCH. By default,
+ all instructions are permitted.
+
+ The following values of ARCH are accepted: `c62x', `c64x',
+ `c64x+', `c67x', `c67x+', `c674x'.
+
+`-mdsbt'
+`-mno-dsbt'
+ The `-mdsbt' option causes the assembler to generate the
+ `Tag_ABI_DSBT' attribute with a value of 1, indicating that the
+ code is using DSBT addressing. The `-mno-dsbt' option, the
+ default, causes the tag to have a value of 0, indicating that the
+ code does not use DSBT addressing. The linker will emit a warning
+ if objects of different type (DSBT and non-DSBT) are linked
+ together.
+
+`-mpid=no'
+`-mpid=near'
+`-mpid=far'
+ The `-mpid=' option causes the assembler to generate the
+ `Tag_ABI_PID' attribute with a value indicating the form of data
+ addressing used by the code. `-mpid=no', the default, indicates
+ position-dependent data addressing, `-mpid=near' indicates
+ position-independent addressing with GOT accesses using near DP
+ addressing, and `-mpid=far' indicates position-independent
+ addressing with GOT accesses using far DP addressing. The linker
+ will emit a warning if objects built with different settings of
+ this option are linked together.
+
+`-mpic'
+`-mno-pic'
+ The `-mpic' option causes the assembler to generate the
+ `Tag_ABI_PIC' attribute with a value of 1, indicating that the
+ code is using position-independent code addressing, The
+ `-mno-pic' option, the default, causes the tag to have a value of
+ 0, indicating position-dependent code addressing. The linker will
+ emit a warning if objects of different type (position-dependent and
+ position-independent) are linked together.
+
+`-mbig-endian'
+`-mlittle-endian'
+ Generate code for the specified endianness. The default is
+ little-endian.
+
+
+
+File: as.info, Node: TIC6X Syntax, Next: TIC6X Directives, Prev: TIC6X Options, Up: TIC6X-Dependent
+
+9.38.2 TIC6X Syntax
+-------------------
+
+The presence of a `;' on a line indicates the start of a comment that
+extends to the end of the current line. If a `#' or `*' appears as the
+first character of a line, the whole line is treated as a comment.
+Note that if a line starts with a `#' character then it can also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ The `@' character can be used instead of a newline to separate
+statements.
+
+ Instruction, register and functional unit names are case-insensitive.
+`as' requires fully-specified functional unit names, such as `.S1',
+`.L1X' or `.D1T2', on all instructions using a functional unit.
+
+ For some instructions, there may be syntactic ambiguity between
+register or functional unit names and the names of labels or other
+symbols. To avoid this, enclose the ambiguous symbol name in
+parentheses; register and functional unit names may not be enclosed in
+parentheses.
+
+
+File: as.info, Node: TIC6X Directives, Prev: TIC6X Syntax, Up: TIC6X-Dependent
+
+9.38.3 TIC6X Directives
+-----------------------
+
+Directives controlling the set of instructions accepted by the
+assembler have effect for instructions between the directive and any
+subsequent directive overriding it.
+
+`.arch ARCH'
+ This has the same effect as `-march=ARCH'.
+
+`.cantunwind'
+ Prevents unwinding through the current function. No personality
+ routine or exception table data is required or permitted.
+
+ If this is not specified then frame unwinding information will be
+ constructed from CFI directives. *note CFI directives::.
+
+`.c6xabi_attribute TAG, VALUE'
+ Set the C6000 EABI build attribute TAG to VALUE.
+
+ The TAG is either an attribute number or one of `Tag_ISA',
+ `Tag_ABI_wchar_t', `Tag_ABI_stack_align_needed',
+ `Tag_ABI_stack_align_preserved', `Tag_ABI_DSBT', `Tag_ABI_PID',
+ `Tag_ABI_PIC', `TAG_ABI_array_object_alignment',
+ `TAG_ABI_array_object_align_expected', `Tag_ABI_compatibility' and
+ `Tag_ABI_conformance'. The VALUE is either a `number',
+ `"string"', or `number, "string"' depending on the tag.
+
+`.ehtype SYMBOL'
+ Output an exception type table reference to SYMBOL.
+
+`.endp'
+ Marks the end of and exception table or function. If preceeded by
+ a `.handlerdata' directive then this also switched back to the
+ previous text section.
+
+`.handlerdata'
+ Marks the end of the current function, and the start of the
+ exception table entry for that function. Anything between this
+ directive and the `.endp' directive will be added to the exception
+ table entry.
+
+ Must be preceded by a CFI block containing a `.cfi_lsda' directive.
+ directive.
+
+`.nocmp'
+ Disallow use of C64x+ compact instructions in the current text
+ section.
+
+`.personalityindex INDEX'
+ Sets the personality routine for the current function to the ABI
+ specified compact routine number INDEX
+
+`.personality NAME'
+ Sets the personality routine for the current function to NAME.
+
+`.scomm SYMBOL, SIZE, ALIGN'
+ Like `.comm', creating a common symbol SYMBOL with size SIZE and
+ alignment ALIGN, but unlike when using `.comm', this symbol will
+ be placed into the small BSS section by the linker.
+
+
+
+File: as.info, Node: TILE-Gx-Dependent, Next: TILEPro-Dependent, Prev: TIC6X-Dependent, Up: Machine Dependencies
+
+9.39 TILE-Gx Dependent Features
+===============================
+
+* Menu:
+
+* TILE-Gx Options:: TILE-Gx Options
+* TILE-Gx Syntax:: TILE-Gx Syntax
+* TILE-Gx Directives:: TILE-Gx Directives
+
+
+File: as.info, Node: TILE-Gx Options, Next: TILE-Gx Syntax, Up: TILE-Gx-Dependent
+
+9.39.1 Options
+--------------
+
+The following table lists all available TILE-Gx specific options:
+
+`-m32 | -m64'
+ Select the word size, either 32 bits or 64 bits.
+
+
+
+File: as.info, Node: TILE-Gx Syntax, Next: TILE-Gx Directives, Prev: TILE-Gx Options, Up: TILE-Gx-Dependent
+
+9.39.2 Syntax
+-------------
+
+Block comments are delimited by `/*' and `*/'. End of line comments
+may be introduced by `#'.
+
+ Instructions consist of a leading opcode or macro name followed by
+whitespace and an optional comma-separated list of operands:
+
+ OPCODE [OPERAND, ...]
+
+ Instructions must be separated by a newline or semicolon.
+
+ There are two ways to write code: either write naked instructions,
+which the assembler is free to combine into VLIW bundles, or specify
+the VLIW bundles explicitly.
+
+ Bundles are specified using curly braces:
+
+ { ADD r3,r4,r5 ; ADD r7,r8,r9 ; LW r10,r11 }
+
+ A bundle can span multiple lines. If you want to put multiple
+instructions on a line, whether in a bundle or not, you need to
+separate them with semicolons as in this example.
+
+ A bundle may contain one or more instructions, up to the limit
+specified by the ISA (currently three). If fewer instructions are
+specified than the hardware supports in a bundle, the assembler inserts
+`fnop' instructions automatically.
+
+ The assembler will prefer to preserve the ordering of instructions
+within the bundle, putting the first instruction in a lower-numbered
+pipeline than the next one, etc. This fact, combined with the optional
+use of explicit `fnop' or `nop' instructions, allows precise control
+over which pipeline executes each instruction.
+
+ If the instructions cannot be bundled in the listed order, the
+assembler will automatically try to find a valid pipeline assignment.
+If there is no way to bundle the instructions together, the assembler
+reports an error.
+
+ The assembler does not yet auto-bundle (automatically combine
+multiple instructions into one bundle), but it reserves the right to do
+so in the future. If you want to force an instruction to run by
+itself, put it in a bundle explicitly with curly braces and use `nop'
+instructions (not `fnop') to fill the remaining pipeline slots in that
+bundle.
+
+* Menu:
+
+* TILE-Gx Opcodes:: Opcode Naming Conventions.
+* TILE-Gx Registers:: Register Naming.
+* TILE-Gx Modifiers:: Symbolic Operand Modifiers.
+
+
+File: as.info, Node: TILE-Gx Opcodes, Next: TILE-Gx Registers, Up: TILE-Gx Syntax
+
+9.39.2.1 Opcode Names
+.....................
+
+For a complete list of opcodes and descriptions of their semantics, see
+`TILE-Gx Instruction Set Architecture', available upon request at
+www.tilera.com.
+
+
+File: as.info, Node: TILE-Gx Registers, Next: TILE-Gx Modifiers, Prev: TILE-Gx Opcodes, Up: TILE-Gx Syntax
+
+9.39.2.2 Register Names
+.......................
+
+General-purpose registers are represented by predefined symbols of the
+form `rN', where N represents a number between `0' and `63'. However,
+the following registers have canonical names that must be used instead:
+
+`r54'
+ sp
+
+`r55'
+ lr
+
+`r56'
+ sn
+
+`r57'
+ idn0
+
+`r58'
+ idn1
+
+`r59'
+ udn0
+
+`r60'
+ udn1
+
+`r61'
+ udn2
+
+`r62'
+ udn3
+
+`r63'
+ zero
+
+
+ The assembler will emit a warning if a numeric name is used instead
+of the non-numeric name. The `.no_require_canonical_reg_names'
+assembler pseudo-op turns off this warning.
+`.require_canonical_reg_names' turns it back on.
+
+
+File: as.info, Node: TILE-Gx Modifiers, Prev: TILE-Gx Registers, Up: TILE-Gx Syntax
+
+9.39.2.3 Symbolic Operand Modifiers
+...................................
+
+The assembler supports several modifiers when using symbol addresses in
+TILE-Gx instruction operands. The general syntax is the following:
+
+ modifier(symbol)
+
+ The following modifiers are supported:
+
+`hw0'
+ This modifier is used to load bits 0-15 of the symbol's address.
+
+`hw1'
+ This modifier is used to load bits 16-31 of the symbol's address.
+
+`hw2'
+ This modifier is used to load bits 32-47 of the symbol's address.
+
+`hw3'
+ This modifier is used to load bits 48-63 of the symbol's address.
+
+`hw0_last'
+ This modifier yields the same value as `hw0', but it also checks
+ that the value does not overflow.
+
+`hw1_last'
+ This modifier yields the same value as `hw1', but it also checks
+ that the value does not overflow.
+
+`hw2_last'
+ This modifier yields the same value as `hw2', but it also checks
+ that the value does not overflow.
+
+ A 48-bit symbolic value is constructed by using the following
+ idiom:
+
+ moveli r0, hw2_last(sym)
+ shl16insli r0, r0, hw1(sym)
+ shl16insli r0, r0, hw0(sym)
+
+`hw0_got'
+ This modifier is used to load bits 0-15 of the symbol's offset in
+ the GOT entry corresponding to the symbol.
+
+`hw1_got'
+ This modifier is used to load bits 16-31 of the symbol's offset in
+ the GOT entry corresponding to the symbol.
+
+`hw2_got'
+ This modifier is used to load bits 32-47 of the symbol's offset in
+ the GOT entry corresponding to the symbol.
+
+`hw3_got'
+ This modifier is used to load bits 48-63 of the symbol's offset in
+ the GOT entry corresponding to the symbol.
+
+`hw0_last_got'
+ This modifier yields the same value as `hw0_got', but it also
+ checks that the value does not overflow.
+
+`hw1_last_got'
+ This modifier yields the same value as `hw1_got', but it also
+ checks that the value does not overflow.
+
+`hw2_last_got'
+ This modifier yields the same value as `hw2_got', but it also
+ checks that the value does not overflow.
+
+`plt'
+ This modifier is used for function symbols. It causes a
+ _procedure linkage table_, an array of code stubs, to be created
+ at the time the shared object is created or linked against,
+ together with a global offset table entry. The value is a
+ pc-relative offset to the corresponding stub code in the procedure
+ linkage table. This arrangement causes the run-time symbol
+ resolver to be called to look up and set the value of the symbol
+ the first time the function is called (at latest; depending
+ environment variables). It is only safe to leave the symbol
+ unresolved this way if all references are function calls.
+
+`hw0_tls_gd'
+ This modifier is used to load bits 0-15 of the offset of the GOT
+ entry of the symbol's TLS descriptor, to be used for
+ general-dynamic TLS accesses.
+
+`hw1_tls_gd'
+ This modifier is used to load bits 16-31 of the offset of the GOT
+ entry of the symbol's TLS descriptor, to be used for
+ general-dynamic TLS accesses.
+
+`hw2_tls_gd'
+ This modifier is used to load bits 32-47 of the offset of the GOT
+ entry of the symbol's TLS descriptor, to be used for
+ general-dynamic TLS accesses.
+
+`hw3_tls_gd'
+ This modifier is used to load bits 48-63 of the offset of the GOT
+ entry of the symbol's TLS descriptor, to be used for
+ general-dynamic TLS accesses.
+
+`hw0_last_tls_gd'
+ This modifier yields the same value as `hw0_tls_gd', but it also
+ checks that the value does not overflow.
+
+`hw1_last_tls_gd'
+ This modifier yields the same value as `hw1_tls_gd', but it also
+ checks that the value does not overflow.
+
+`hw2_last_tls_gd'
+ This modifier yields the same value as `hw2_tls_gd', but it also
+ checks that the value does not overflow.
+
+`hw0_tls_ie'
+ This modifier is used to load bits 0-15 of the offset of the GOT
+ entry containing the offset of the symbol's address from the TCB,
+ to be used for initial-exec TLS accesses.
+
+`hw1_tls_ie'
+ This modifier is used to load bits 16-31 of the offset of the GOT
+ entry containing the offset of the symbol's address from the TCB,
+ to be used for initial-exec TLS accesses.
+
+`hw2_tls_ie'
+ This modifier is used to load bits 32-47 of the offset of the GOT
+ entry containing the offset of the symbol's address from the TCB,
+ to be used for initial-exec TLS accesses.
+
+`hw3_tls_ie'
+ This modifier is used to load bits 48-63 of the offset of the GOT
+ entry containing the offset of the symbol's address from the TCB,
+ to be used for initial-exec TLS accesses.
+
+`hw0_last_tls_ie'
+ This modifier yields the same value as `hw0_tls_ie', but it also
+ checks that the value does not overflow.
+
+`hw1_last_tls_ie'
+ This modifier yields the same value as `hw1_tls_ie', but it also
+ checks that the value does not overflow.
+
+`hw2_last_tls_ie'
+ This modifier yields the same value as `hw2_tls_ie', but it also
+ checks that the value does not overflow.
+
+
+
+File: as.info, Node: TILE-Gx Directives, Prev: TILE-Gx Syntax, Up: TILE-Gx-Dependent
+
+9.39.3 TILE-Gx Directives
+-------------------------
+
+`.align EXPRESSION [, EXPRESSION]'
+ This is the generic .ALIGN directive. The first argument is the
+ requested alignment in bytes.
+
+`.allow_suspicious_bundles'
+ Turns on error checking for combinations of instructions in a
+ bundle that probably indicate a programming error. This is on by
+ default.
+
+`.no_allow_suspicious_bundles'
+ Turns off error checking for combinations of instructions in a
+ bundle that probably indicate a programming error.
+
+`.require_canonical_reg_names'
+ Require that canonical register names be used, and emit a warning
+ if the numeric names are used. This is on by default.
+
+`.no_require_canonical_reg_names'
+ Permit the use of numeric names for registers that have canonical
+ names.
+
+
+
+File: as.info, Node: TILEPro-Dependent, Next: V850-Dependent, Prev: TILE-Gx-Dependent, Up: Machine Dependencies
+
+9.40 TILEPro Dependent Features
+===============================
+
+* Menu:
+
+* TILEPro Options:: TILEPro Options
+* TILEPro Syntax:: TILEPro Syntax
+* TILEPro Directives:: TILEPro Directives
+
+
+File: as.info, Node: TILEPro Options, Next: TILEPro Syntax, Up: TILEPro-Dependent
+
+9.40.1 Options
+--------------
+
+`as' has no machine-dependent command-line options for TILEPro.
+
+
+File: as.info, Node: TILEPro Syntax, Next: TILEPro Directives, Prev: TILEPro Options, Up: TILEPro-Dependent
+
+9.40.2 Syntax
+-------------
+
+Block comments are delimited by `/*' and `*/'. End of line comments
+may be introduced by `#'.
+
+ Instructions consist of a leading opcode or macro name followed by
+whitespace and an optional comma-separated list of operands:
+
+ OPCODE [OPERAND, ...]
+
+ Instructions must be separated by a newline or semicolon.
+
+ There are two ways to write code: either write naked instructions,
+which the assembler is free to combine into VLIW bundles, or specify
+the VLIW bundles explicitly.
+
+ Bundles are specified using curly braces:
+
+ { ADD r3,r4,r5 ; ADD r7,r8,r9 ; LW r10,r11 }
+
+ A bundle can span multiple lines. If you want to put multiple
+instructions on a line, whether in a bundle or not, you need to
+separate them with semicolons as in this example.
+
+ A bundle may contain one or more instructions, up to the limit
+specified by the ISA (currently three). If fewer instructions are
+specified than the hardware supports in a bundle, the assembler inserts
+`fnop' instructions automatically.
+
+ The assembler will prefer to preserve the ordering of instructions
+within the bundle, putting the first instruction in a lower-numbered
+pipeline than the next one, etc. This fact, combined with the optional
+use of explicit `fnop' or `nop' instructions, allows precise control
+over which pipeline executes each instruction.
+
+ If the instructions cannot be bundled in the listed order, the
+assembler will automatically try to find a valid pipeline assignment.
+If there is no way to bundle the instructions together, the assembler
+reports an error.
+
+ The assembler does not yet auto-bundle (automatically combine
+multiple instructions into one bundle), but it reserves the right to do
+so in the future. If you want to force an instruction to run by
+itself, put it in a bundle explicitly with curly braces and use `nop'
+instructions (not `fnop') to fill the remaining pipeline slots in that
+bundle.
+
+* Menu:
+
+* TILEPro Opcodes:: Opcode Naming Conventions.
+* TILEPro Registers:: Register Naming.
+* TILEPro Modifiers:: Symbolic Operand Modifiers.
+
+
+File: as.info, Node: TILEPro Opcodes, Next: TILEPro Registers, Up: TILEPro Syntax
+
+9.40.2.1 Opcode Names
+.....................
+
+For a complete list of opcodes and descriptions of their semantics, see
+`TILE Processor User Architecture Manual', available upon request at
+www.tilera.com.
+
+
+File: as.info, Node: TILEPro Registers, Next: TILEPro Modifiers, Prev: TILEPro Opcodes, Up: TILEPro Syntax
+
+9.40.2.2 Register Names
+.......................
+
+General-purpose registers are represented by predefined symbols of the
+form `rN', where N represents a number between `0' and `63'. However,
+the following registers have canonical names that must be used instead:
+
+`r54'
+ sp
+
+`r55'
+ lr
+
+`r56'
+ sn
+
+`r57'
+ idn0
+
+`r58'
+ idn1
+
+`r59'
+ udn0
+
+`r60'
+ udn1
+
+`r61'
+ udn2
+
+`r62'
+ udn3
+
+`r63'
+ zero
+
+
+ The assembler will emit a warning if a numeric name is used instead
+of the canonical name. The `.no_require_canonical_reg_names' assembler
+pseudo-op turns off this warning. `.require_canonical_reg_names' turns
+it back on.
+
+
+File: as.info, Node: TILEPro Modifiers, Prev: TILEPro Registers, Up: TILEPro Syntax
+
+9.40.2.3 Symbolic Operand Modifiers
+...................................
+
+The assembler supports several modifiers when using symbol addresses in
+TILEPro instruction operands. The general syntax is the following:
+
+ modifier(symbol)
+
+ The following modifiers are supported:
+
+`lo16'
+ This modifier is used to load the low 16 bits of the symbol's
+ address, sign-extended to a 32-bit value (sign-extension allows it
+ to be range-checked against signed 16 bit immediate operands
+ without complaint).
+
+`hi16'
+ This modifier is used to load the high 16 bits of the symbol's
+ address, also sign-extended to a 32-bit value.
+
+`ha16'
+ `ha16(N)' is identical to `hi16(N)', except if `lo16(N)' is
+ negative it adds one to the `hi16(N)' value. This way `lo16' and
+ `ha16' can be added to create any 32-bit value using `auli'. For
+ example, here is how you move an arbitrary 32-bit address into r3:
+
+ moveli r3, lo16(sym)
+ auli r3, r3, ha16(sym)
+
+`got'
+ This modifier is used to load the offset of the GOT entry
+ corresponding to the symbol.
+
+`got_lo16'
+ This modifier is used to load the sign-extended low 16 bits of the
+ offset of the GOT entry corresponding to the symbol.
+
+`got_hi16'
+ This modifier is used to load the sign-extended high 16 bits of the
+ offset of the GOT entry corresponding to the symbol.
+
+`got_ha16'
+ This modifier is like `got_hi16', but it adds one if `got_lo16' of
+ the input value is negative.
+
+`plt'
+ This modifier is used for function symbols. It causes a
+ _procedure linkage table_, an array of code stubs, to be created
+ at the time the shared object is created or linked against,
+ together with a global offset table entry. The value is a
+ pc-relative offset to the corresponding stub code in the procedure
+ linkage table. This arrangement causes the run-time symbol
+ resolver to be called to look up and set the value of the symbol
+ the first time the function is called (at latest; depending
+ environment variables). It is only safe to leave the symbol
+ unresolved this way if all references are function calls.
+
+`tls_gd'
+ This modifier is used to load the offset of the GOT entry of the
+ symbol's TLS descriptor, to be used for general-dynamic TLS
+ accesses.
+
+`tls_gd_lo16'
+ This modifier is used to load the sign-extended low 16 bits of the
+ offset of the GOT entry of the symbol's TLS descriptor, to be used
+ for general dynamic TLS accesses.
+
+`tls_gd_hi16'
+ This modifier is used to load the sign-extended high 16 bits of the
+ offset of the GOT entry of the symbol's TLS descriptor, to be used
+ for general dynamic TLS accesses.
+
+`tls_gd_ha16'
+ This modifier is like `tls_gd_hi16', but it adds one to the value
+ if `tls_gd_lo16' of the input value is negative.
+
+`tls_ie'
+ This modifier is used to load the offset of the GOT entry
+ containing the offset of the symbol's address from the TCB, to be
+ used for initial-exec TLS accesses.
+
+`tls_ie_lo16'
+ This modifier is used to load the low 16 bits of the offset of the
+ GOT entry containing the offset of the symbol's address from the
+ TCB, to be used for initial-exec TLS accesses.
+
+`tls_ie_hi16'
+ This modifier is used to load the high 16 bits of the offset of the
+ GOT entry containing the offset of the symbol's address from the
+ TCB, to be used for initial-exec TLS accesses.
+
+`tls_ie_ha16'
+ This modifier is like `tls_ie_hi16', but it adds one to the value
+ if `tls_ie_lo16' of the input value is negative.
+
+
+
+File: as.info, Node: TILEPro Directives, Prev: TILEPro Syntax, Up: TILEPro-Dependent
+
+9.40.3 TILEPro Directives
+-------------------------
+
+`.align EXPRESSION [, EXPRESSION]'
+ This is the generic .ALIGN directive. The first argument is the
+ requested alignment in bytes.
+
+`.allow_suspicious_bundles'
+ Turns on error checking for combinations of instructions in a
+ bundle that probably indicate a programming error. This is on by
+ default.
+
+`.no_allow_suspicious_bundles'
+ Turns off error checking for combinations of instructions in a
+ bundle that probably indicate a programming error.
+
+`.require_canonical_reg_names'
+ Require that canonical register names be used, and emit a warning
+ if the numeric names are used. This is on by default.
+
+`.no_require_canonical_reg_names'
+ Permit the use of numeric names for registers that have canonical
+ names.
+
+
+
+File: as.info, Node: Z80-Dependent, Next: Z8000-Dependent, Prev: Xtensa-Dependent, Up: Machine Dependencies
+
+9.41 Z80 Dependent Features
+===========================
+
+* Menu:
+
+* Z80 Options:: Options
+* Z80 Syntax:: Syntax
+* Z80 Floating Point:: Floating Point
+* Z80 Directives:: Z80 Machine Directives
+* Z80 Opcodes:: Opcodes
+
+
+File: as.info, Node: Z80 Options, Next: Z80 Syntax, Up: Z80-Dependent
+
+9.41.1 Options
+--------------
+
+The Zilog Z80 and Ascii R800 version of `as' have a few machine
+dependent options.
+`-z80'
+ Produce code for the Z80 processor. There are additional options to
+ request warnings and error messages for undocumented instructions.
+
+`-ignore-undocumented-instructions'
+`-Wnud'
+ Silently assemble undocumented Z80-instructions that have been
+ adopted as documented R800-instructions.
+
+`-ignore-unportable-instructions'
+`-Wnup'
+ Silently assemble all undocumented Z80-instructions.
+
+`-warn-undocumented-instructions'
+`-Wud'
+ Issue warnings for undocumented Z80-instructions that work on
+ R800, do not assemble other undocumented instructions without
+ warning.
+
+`-warn-unportable-instructions'
+`-Wup'
+ Issue warnings for other undocumented Z80-instructions, do not
+ treat any undocumented instructions as errors.
+
+`-forbid-undocumented-instructions'
+`-Fud'
+ Treat all undocumented z80-instructions as errors.
+
+`-forbid-unportable-instructions'
+`-Fup'
+ Treat undocumented z80-instructions that do not work on R800 as
+ errors.
+
+`-r800'
+ Produce code for the R800 processor. The assembler does not support
+ undocumented instructions for the R800. In line with common
+ practice, `as' uses Z80 instruction names for the R800 processor,
+ as far as they exist.
+
+
+File: as.info, Node: Z80 Syntax, Next: Z80 Floating Point, Prev: Z80 Options, Up: Z80-Dependent
+
+9.41.2 Syntax
+-------------
+
+The assembler syntax closely follows the 'Z80 family CPU User Manual' by
+Zilog. In expressions a single `=' may be used as "is equal to"
+comparison operator.
+
+ Suffices can be used to indicate the radix of integer constants; `H'
+or `h' for hexadecimal, `D' or `d' for decimal, `Q', `O', `q' or `o'
+for octal, and `B' for binary.
+
+ The suffix `b' denotes a backreference to local label.
+
+* Menu:
+
+* Z80-Chars:: Special Characters
+* Z80-Regs:: Register Names
+* Z80-Case:: Case Sensitivity
+
+
+File: as.info, Node: Z80-Chars, Next: Z80-Regs, Up: Z80 Syntax
+
+9.41.2.1 Special Characters
+...........................
+
+The semicolon `;' is the line comment character;
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line could also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ The Z80 assembler does not support a line separator character.
+
+ The dollar sign `$' can be used as a prefix for hexadecimal numbers
+and as a symbol denoting the current location counter.
+
+ A backslash `\' is an ordinary character for the Z80 assembler.
+
+ The single quote `'' must be followed by a closing quote. If there
+is one character in between, it is a character constant, otherwise it is
+a string constant.
+
+
+File: as.info, Node: Z80-Regs, Next: Z80-Case, Prev: Z80-Chars, Up: Z80 Syntax
+
+9.41.2.2 Register Names
+.......................
+
+The registers are referred to with the letters assigned to them by
+Zilog. In addition `as' recognizes `ixl' and `ixh' as the least and
+most significant octet in `ix', and similarly `iyl' and `iyh' as parts
+of `iy'.
+
+
+File: as.info, Node: Z80-Case, Prev: Z80-Regs, Up: Z80 Syntax
+
+9.41.2.3 Case Sensitivity
+.........................
+
+Upper and lower case are equivalent in register names, opcodes,
+condition codes and assembler directives. The case of letters is
+significant in labels and symbol names. The case is also important to
+distinguish the suffix `b' for a backward reference to a local label
+from the suffix `B' for a number in binary notation.
+
+
+File: as.info, Node: Z80 Floating Point, Next: Z80 Directives, Prev: Z80 Syntax, Up: Z80-Dependent
+
+9.41.3 Floating Point
+---------------------
+
+Floating-point numbers are not supported.
+
+
+File: as.info, Node: Z80 Directives, Next: Z80 Opcodes, Prev: Z80 Floating Point, Up: Z80-Dependent
+
+9.41.4 Z80 Assembler Directives
+-------------------------------
+
+`as' for the Z80 supports some additional directives for compatibility
+with other assemblers.
+
+ These are the additional directives in `as' for the Z80:
+
+`db EXPRESSION|STRING[,EXPRESSION|STRING...]'
+`defb EXPRESSION|STRING[,EXPRESSION|STRING...]'
+ For each STRING the characters are copied to the object file, for
+ each other EXPRESSION the value is stored in one byte. A warning
+ is issued in case of an overflow.
+
+`dw EXPRESSION[,EXPRESSION...]'
+`defw EXPRESSION[,EXPRESSION...]'
+ For each EXPRESSION the value is stored in two bytes, ignoring
+ overflow.
+
+`d24 EXPRESSION[,EXPRESSION...]'
+`def24 EXPRESSION[,EXPRESSION...]'
+ For each EXPRESSION the value is stored in three bytes, ignoring
+ overflow.
+
+`d32 EXPRESSION[,EXPRESSION...]'
+`def32 EXPRESSION[,EXPRESSION...]'
+ For each EXPRESSION the value is stored in four bytes, ignoring
+ overflow.
+
+`ds COUNT[, VALUE]'
+`defs COUNT[, VALUE]'
+ Fill COUNT bytes in the object file with VALUE, if VALUE is
+ omitted it defaults to zero.
+
+`SYMBOL equ EXPRESSION'
+`SYMBOL defl EXPRESSION'
+ These directives set the value of SYMBOL to EXPRESSION. If `equ'
+ is used, it is an error if SYMBOL is already defined. Symbols
+ defined with `equ' are not protected from redefinition.
+
+`set'
+ This is a normal instruction on Z80, and not an assembler
+ directive.
+
+`psect NAME'
+ A synonym for *Note Section::, no second argument should be given.
+
+
+
+File: as.info, Node: Z80 Opcodes, Prev: Z80 Directives, Up: Z80-Dependent
+
+9.41.5 Opcodes
+--------------
+
+In line with common practice, Z80 mnemonics are used for both the Z80
+and the R800.
+
+ In many instructions it is possible to use one of the half index
+registers (`ixl',`ixh',`iyl',`iyh') in stead of an 8-bit general
+purpose register. This yields instructions that are documented on the
+R800 and undocumented on the Z80. Similarly `in f,(c)' is documented
+on the R800 and undocumented on the Z80.
+
+ The assembler also supports the following undocumented
+Z80-instructions, that have not been adopted in the R800 instruction
+set:
+`out (c),0'
+ Sends zero to the port pointed to by register c.
+
+`sli M'
+ Equivalent to `M = (M<<1)+1', the operand M can be any operand
+ that is valid for `sla'. One can use `sll' as a synonym for `sli'.
+
+`OP (ix+D), R'
+ This is equivalent to
+
+ ld R, (ix+D)
+ OPC R
+ ld (ix+D), R
+
+ The operation `OPC' may be any of `res B,', `set B,', `rl', `rlc',
+ `rr', `rrc', `sla', `sli', `sra' and `srl', and the register `R'
+ may be any of `a', `b', `c', `d', `e', `h' and `l'.
+
+`OPC (iy+D), R'
+ As above, but with `iy' instead of `ix'.
+
+ The web site at `http://www.z80.info' is a good starting place to
+find more information on programming the Z80.
+
+
+File: as.info, Node: Z8000-Dependent, Next: Vax-Dependent, Prev: Z80-Dependent, Up: Machine Dependencies
+
+9.42 Z8000 Dependent Features
+=============================
+
+ The Z8000 as supports both members of the Z8000 family: the
+unsegmented Z8002, with 16 bit addresses, and the segmented Z8001 with
+24 bit addresses.
+
+ When the assembler is in unsegmented mode (specified with the
+`unsegm' directive), an address takes up one word (16 bit) sized
+register. When the assembler is in segmented mode (specified with the
+`segm' directive), a 24-bit address takes up a long (32 bit) register.
+*Note Assembler Directives for the Z8000: Z8000 Directives, for a list
+of other Z8000 specific assembler directives.
+
+* Menu:
+
+* Z8000 Options:: Command-line options for the Z8000
+* Z8000 Syntax:: Assembler syntax for the Z8000
+* Z8000 Directives:: Special directives for the Z8000
+* Z8000 Opcodes:: Opcodes
+
+
+File: as.info, Node: Z8000 Options, Next: Z8000 Syntax, Up: Z8000-Dependent
+
+9.42.1 Options
+--------------
+
+`-z8001'
+ Generate segmented code by default.
+
+`-z8002'
+ Generate unsegmented code by default.
+
+
+File: as.info, Node: Z8000 Syntax, Next: Z8000 Directives, Prev: Z8000 Options, Up: Z8000-Dependent
+
+9.42.2 Syntax
+-------------
+
+* Menu:
+
+* Z8000-Chars:: Special Characters
+* Z8000-Regs:: Register Names
+* Z8000-Addressing:: Addressing Modes
+
+
+File: as.info, Node: Z8000-Chars, Next: Z8000-Regs, Up: Z8000 Syntax
+
+9.42.2.1 Special Characters
+...........................
+
+`!' is the line comment character.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line could also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ You can use `;' instead of a newline to separate statements.
+
+
+File: as.info, Node: Z8000-Regs, Next: Z8000-Addressing, Prev: Z8000-Chars, Up: Z8000 Syntax
+
+9.42.2.2 Register Names
+.......................
+
+The Z8000 has sixteen 16 bit registers, numbered 0 to 15. You can refer
+to different sized groups of registers by register number, with the
+prefix `r' for 16 bit registers, `rr' for 32 bit registers and `rq' for
+64 bit registers. You can also refer to the contents of the first
+eight (of the sixteen 16 bit registers) by bytes. They are named `rlN'
+and `rhN'.
+
+_byte registers_
+ rl0 rh0 rl1 rh1 rl2 rh2 rl3 rh3
+ rl4 rh4 rl5 rh5 rl6 rh6 rl7 rh7
+
+_word registers_
+ r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15
+
+_long word registers_
+ rr0 rr2 rr4 rr6 rr8 rr10 rr12 rr14
+
+_quad word registers_
+ rq0 rq4 rq8 rq12
+
+
+File: as.info, Node: Z8000-Addressing, Prev: Z8000-Regs, Up: Z8000 Syntax
+
+9.42.2.3 Addressing Modes
+.........................
+
+as understands the following addressing modes for the Z8000:
+
+`rlN'
+`rhN'
+`rN'
+`rrN'
+`rqN'
+ Register direct: 8bit, 16bit, 32bit, and 64bit registers.
+
+`@rN'
+`@rrN'
+ Indirect register: @rrN in segmented mode, @rN in unsegmented
+ mode.
+
+`ADDR'
+ Direct: the 16 bit or 24 bit address (depending on whether the
+ assembler is in segmented or unsegmented mode) of the operand is
+ in the instruction.
+
+`address(rN)'
+ Indexed: the 16 or 24 bit address is added to the 16 bit register
+ to produce the final address in memory of the operand.
+
+`rN(#IMM)'
+`rrN(#IMM)'
+ Base Address: the 16 or 24 bit register is added to the 16 bit sign
+ extended immediate displacement to produce the final address in
+ memory of the operand.
+
+`rN(rM)'
+`rrN(rM)'
+ Base Index: the 16 or 24 bit register rN or rrN is added to the
+ sign extended 16 bit index register rM to produce the final
+ address in memory of the operand.
+
+`#XX'
+ Immediate data XX.
+
+
+File: as.info, Node: Z8000 Directives, Next: Z8000 Opcodes, Prev: Z8000 Syntax, Up: Z8000-Dependent
+
+9.42.3 Assembler Directives for the Z8000
+-----------------------------------------
+
+The Z8000 port of as includes additional assembler directives, for
+compatibility with other Z8000 assemblers. These do not begin with `.'
+(unlike the ordinary as directives).
+
+`segm'
+`.z8001'
+ Generate code for the segmented Z8001.
+
+`unsegm'
+`.z8002'
+ Generate code for the unsegmented Z8002.
+
+`name'
+ Synonym for `.file'
+
+`global'
+ Synonym for `.global'
+
+`wval'
+ Synonym for `.word'
+
+`lval'
+ Synonym for `.long'
+
+`bval'
+ Synonym for `.byte'
+
+`sval'
+ Assemble a string. `sval' expects one string literal, delimited by
+ single quotes. It assembles each byte of the string into
+ consecutive addresses. You can use the escape sequence `%XX'
+ (where XX represents a two-digit hexadecimal number) to represent
+ the character whose ASCII value is XX. Use this feature to
+ describe single quote and other characters that may not appear in
+ string literals as themselves. For example, the C statement
+ `char *a = "he said \"it's 50% off\"";' is represented in Z8000
+ assembly language (shown with the assembler output in hex at the
+ left) as
+
+ 68652073 sval 'he said %22it%27s 50%25 off%22%00'
+ 61696420
+ 22697427
+ 73203530
+ 25206F66
+ 662200
+
+`rsect'
+ synonym for `.section'
+
+`block'
+ synonym for `.space'
+
+`even'
+ special case of `.align'; aligns output to even byte boundary.
+
+
+File: as.info, Node: Z8000 Opcodes, Prev: Z8000 Directives, Up: Z8000-Dependent
+
+9.42.4 Opcodes
+--------------
+
+For detailed information on the Z8000 machine instruction set, see
+`Z8000 Technical Manual'.
+
+ The following table summarizes the opcodes and their arguments:
+
+ rs 16 bit source register
+ rd 16 bit destination register
+ rbs 8 bit source register
+ rbd 8 bit destination register
+ rrs 32 bit source register
+ rrd 32 bit destination register
+ rqs 64 bit source register
+ rqd 64 bit destination register
+ addr 16/24 bit address
+ imm immediate data
+
+ adc rd,rs clrb addr cpsir @rd,@rs,rr,cc
+ adcb rbd,rbs clrb addr(rd) cpsirb @rd,@rs,rr,cc
+ add rd,@rs clrb rbd dab rbd
+ add rd,addr com @rd dbjnz rbd,disp7
+ add rd,addr(rs) com addr dec @rd,imm4m1
+ add rd,imm16 com addr(rd) dec addr(rd),imm4m1
+ add rd,rs com rd dec addr,imm4m1
+ addb rbd,@rs comb @rd dec rd,imm4m1
+ addb rbd,addr comb addr decb @rd,imm4m1
+ addb rbd,addr(rs) comb addr(rd) decb addr(rd),imm4m1
+ addb rbd,imm8 comb rbd decb addr,imm4m1
+ addb rbd,rbs comflg flags decb rbd,imm4m1
+ addl rrd,@rs cp @rd,imm16 di i2
+ addl rrd,addr cp addr(rd),imm16 div rrd,@rs
+ addl rrd,addr(rs) cp addr,imm16 div rrd,addr
+ addl rrd,imm32 cp rd,@rs div rrd,addr(rs)
+ addl rrd,rrs cp rd,addr div rrd,imm16
+ and rd,@rs cp rd,addr(rs) div rrd,rs
+ and rd,addr cp rd,imm16 divl rqd,@rs
+ and rd,addr(rs) cp rd,rs divl rqd,addr
+ and rd,imm16 cpb @rd,imm8 divl rqd,addr(rs)
+ and rd,rs cpb addr(rd),imm8 divl rqd,imm32
+ andb rbd,@rs cpb addr,imm8 divl rqd,rrs
+ andb rbd,addr cpb rbd,@rs djnz rd,disp7
+ andb rbd,addr(rs) cpb rbd,addr ei i2
+ andb rbd,imm8 cpb rbd,addr(rs) ex rd,@rs
+ andb rbd,rbs cpb rbd,imm8 ex rd,addr
+ bit @rd,imm4 cpb rbd,rbs ex rd,addr(rs)
+ bit addr(rd),imm4 cpd rd,@rs,rr,cc ex rd,rs
+ bit addr,imm4 cpdb rbd,@rs,rr,cc exb rbd,@rs
+ bit rd,imm4 cpdr rd,@rs,rr,cc exb rbd,addr
+ bit rd,rs cpdrb rbd,@rs,rr,cc exb rbd,addr(rs)
+ bitb @rd,imm4 cpi rd,@rs,rr,cc exb rbd,rbs
+ bitb addr(rd),imm4 cpib rbd,@rs,rr,cc ext0e imm8
+ bitb addr,imm4 cpir rd,@rs,rr,cc ext0f imm8
+ bitb rbd,imm4 cpirb rbd,@rs,rr,cc ext8e imm8
+ bitb rbd,rs cpl rrd,@rs ext8f imm8
+ bpt cpl rrd,addr exts rrd
+ call @rd cpl rrd,addr(rs) extsb rd
+ call addr cpl rrd,imm32 extsl rqd
+ call addr(rd) cpl rrd,rrs halt
+ calr disp12 cpsd @rd,@rs,rr,cc in rd,@rs
+ clr @rd cpsdb @rd,@rs,rr,cc in rd,imm16
+ clr addr cpsdr @rd,@rs,rr,cc inb rbd,@rs
+ clr addr(rd) cpsdrb @rd,@rs,rr,cc inb rbd,imm16
+ clr rd cpsi @rd,@rs,rr,cc inc @rd,imm4m1
+ clrb @rd cpsib @rd,@rs,rr,cc inc addr(rd),imm4m1
+ inc addr,imm4m1 ldb rbd,rs(rx) mult rrd,addr(rs)
+ inc rd,imm4m1 ldb rd(imm16),rbs mult rrd,imm16
+ incb @rd,imm4m1 ldb rd(rx),rbs mult rrd,rs
+ incb addr(rd),imm4m1 ldctl ctrl,rs multl rqd,@rs
+ incb addr,imm4m1 ldctl rd,ctrl multl rqd,addr
+ incb rbd,imm4m1 ldd @rs,@rd,rr multl rqd,addr(rs)
+ ind @rd,@rs,ra lddb @rs,@rd,rr multl rqd,imm32
+ indb @rd,@rs,rba lddr @rs,@rd,rr multl rqd,rrs
+ inib @rd,@rs,ra lddrb @rs,@rd,rr neg @rd
+ inibr @rd,@rs,ra ldi @rd,@rs,rr neg addr
+ iret ldib @rd,@rs,rr neg addr(rd)
+ jp cc,@rd ldir @rd,@rs,rr neg rd
+ jp cc,addr ldirb @rd,@rs,rr negb @rd
+ jp cc,addr(rd) ldk rd,imm4 negb addr
+ jr cc,disp8 ldl @rd,rrs negb addr(rd)
+ ld @rd,imm16 ldl addr(rd),rrs negb rbd
+ ld @rd,rs ldl addr,rrs nop
+ ld addr(rd),imm16 ldl rd(imm16),rrs or rd,@rs
+ ld addr(rd),rs ldl rd(rx),rrs or rd,addr
+ ld addr,imm16 ldl rrd,@rs or rd,addr(rs)
+ ld addr,rs ldl rrd,addr or rd,imm16
+ ld rd(imm16),rs ldl rrd,addr(rs) or rd,rs
+ ld rd(rx),rs ldl rrd,imm32 orb rbd,@rs
+ ld rd,@rs ldl rrd,rrs orb rbd,addr
+ ld rd,addr ldl rrd,rs(imm16) orb rbd,addr(rs)
+ ld rd,addr(rs) ldl rrd,rs(rx) orb rbd,imm8
+ ld rd,imm16 ldm @rd,rs,n orb rbd,rbs
+ ld rd,rs ldm addr(rd),rs,n out @rd,rs
+ ld rd,rs(imm16) ldm addr,rs,n out imm16,rs
+ ld rd,rs(rx) ldm rd,@rs,n outb @rd,rbs
+ lda rd,addr ldm rd,addr(rs),n outb imm16,rbs
+ lda rd,addr(rs) ldm rd,addr,n outd @rd,@rs,ra
+ lda rd,rs(imm16) ldps @rs outdb @rd,@rs,rba
+ lda rd,rs(rx) ldps addr outib @rd,@rs,ra
+ ldar rd,disp16 ldps addr(rs) outibr @rd,@rs,ra
+ ldb @rd,imm8 ldr disp16,rs pop @rd,@rs
+ ldb @rd,rbs ldr rd,disp16 pop addr(rd),@rs
+ ldb addr(rd),imm8 ldrb disp16,rbs pop addr,@rs
+ ldb addr(rd),rbs ldrb rbd,disp16 pop rd,@rs
+ ldb addr,imm8 ldrl disp16,rrs popl @rd,@rs
+ ldb addr,rbs ldrl rrd,disp16 popl addr(rd),@rs
+ ldb rbd,@rs mbit popl addr,@rs
+ ldb rbd,addr mreq rd popl rrd,@rs
+ ldb rbd,addr(rs) mres push @rd,@rs
+ ldb rbd,imm8 mset push @rd,addr
+ ldb rbd,rbs mult rrd,@rs push @rd,addr(rs)
+ ldb rbd,rs(imm16) mult rrd,addr push @rd,imm16
+ push @rd,rs set addr,imm4 subl rrd,imm32
+ pushl @rd,@rs set rd,imm4 subl rrd,rrs
+ pushl @rd,addr set rd,rs tcc cc,rd
+ pushl @rd,addr(rs) setb @rd,imm4 tccb cc,rbd
+ pushl @rd,rrs setb addr(rd),imm4 test @rd
+ res @rd,imm4 setb addr,imm4 test addr
+ res addr(rd),imm4 setb rbd,imm4 test addr(rd)
+ res addr,imm4 setb rbd,rs test rd
+ res rd,imm4 setflg imm4 testb @rd
+ res rd,rs sinb rbd,imm16 testb addr
+ resb @rd,imm4 sinb rd,imm16 testb addr(rd)
+ resb addr(rd),imm4 sind @rd,@rs,ra testb rbd
+ resb addr,imm4 sindb @rd,@rs,rba testl @rd
+ resb rbd,imm4 sinib @rd,@rs,ra testl addr
+ resb rbd,rs sinibr @rd,@rs,ra testl addr(rd)
+ resflg imm4 sla rd,imm8 testl rrd
+ ret cc slab rbd,imm8 trdb @rd,@rs,rba
+ rl rd,imm1or2 slal rrd,imm8 trdrb @rd,@rs,rba
+ rlb rbd,imm1or2 sll rd,imm8 trib @rd,@rs,rbr
+ rlc rd,imm1or2 sllb rbd,imm8 trirb @rd,@rs,rbr
+ rlcb rbd,imm1or2 slll rrd,imm8 trtdrb @ra,@rb,rbr
+ rldb rbb,rba sout imm16,rs trtib @ra,@rb,rr
+ rr rd,imm1or2 soutb imm16,rbs trtirb @ra,@rb,rbr
+ rrb rbd,imm1or2 soutd @rd,@rs,ra trtrb @ra,@rb,rbr
+ rrc rd,imm1or2 soutdb @rd,@rs,rba tset @rd
+ rrcb rbd,imm1or2 soutib @rd,@rs,ra tset addr
+ rrdb rbb,rba soutibr @rd,@rs,ra tset addr(rd)
+ rsvd36 sra rd,imm8 tset rd
+ rsvd38 srab rbd,imm8 tsetb @rd
+ rsvd78 sral rrd,imm8 tsetb addr
+ rsvd7e srl rd,imm8 tsetb addr(rd)
+ rsvd9d srlb rbd,imm8 tsetb rbd
+ rsvd9f srll rrd,imm8 xor rd,@rs
+ rsvdb9 sub rd,@rs xor rd,addr
+ rsvdbf sub rd,addr xor rd,addr(rs)
+ sbc rd,rs sub rd,addr(rs) xor rd,imm16
+ sbcb rbd,rbs sub rd,imm16 xor rd,rs
+ sc imm8 sub rd,rs xorb rbd,@rs
+ sda rd,rs subb rbd,@rs xorb rbd,addr
+ sdab rbd,rs subb rbd,addr xorb rbd,addr(rs)
+ sdal rrd,rs subb rbd,addr(rs) xorb rbd,imm8
+ sdl rd,rs subb rbd,imm8 xorb rbd,rbs
+ sdlb rbd,rs subb rbd,rbs xorb rbd,rbs
+ sdll rrd,rs subl rrd,@rs
+ set @rd,imm4 subl rrd,addr
+ set addr(rd),imm4 subl rrd,addr(rs)
+
+
+File: as.info, Node: Vax-Dependent, Prev: Z8000-Dependent, Up: Machine Dependencies
+
+9.43 VAX Dependent Features
+===========================
+
+* Menu:
+
+* VAX-Opts:: VAX Command-Line Options
+* VAX-float:: VAX Floating Point
+* VAX-directives:: Vax Machine Directives
+* VAX-opcodes:: VAX Opcodes
+* VAX-branch:: VAX Branch Improvement
+* VAX-operands:: VAX Operands
+* VAX-no:: Not Supported on VAX
+* VAX-Syntax:: VAX Syntax
+
+
+File: as.info, Node: VAX-Opts, Next: VAX-float, Up: Vax-Dependent
+
+9.43.1 VAX Command-Line Options
+-------------------------------
+
+The Vax version of `as' accepts any of the following options, gives a
+warning message that the option was ignored and proceeds. These
+options are for compatibility with scripts designed for other people's
+assemblers.
+
+``-D' (Debug)'
+``-S' (Symbol Table)'
+``-T' (Token Trace)'
+ These are obsolete options used to debug old assemblers.
+
+``-d' (Displacement size for JUMPs)'
+ This option expects a number following the `-d'. Like options
+ that expect filenames, the number may immediately follow the `-d'
+ (old standard) or constitute the whole of the command line
+ argument that follows `-d' (GNU standard).
+
+``-V' (Virtualize Interpass Temporary File)'
+ Some other assemblers use a temporary file. This option commanded
+ them to keep the information in active memory rather than in a
+ disk file. `as' always does this, so this option is redundant.
+
+``-J' (JUMPify Longer Branches)'
+ Many 32-bit computers permit a variety of branch instructions to
+ do the same job. Some of these instructions are short (and fast)
+ but have a limited range; others are long (and slow) but can
+ branch anywhere in virtual memory. Often there are 3 flavors of
+ branch: short, medium and long. Some other assemblers would emit
+ short and medium branches, unless told by this option to emit
+ short and long branches.
+
+``-t' (Temporary File Directory)'
+ Some other assemblers may use a temporary file, and this option
+ takes a filename being the directory to site the temporary file.
+ Since `as' does not use a temporary disk file, this option makes
+ no difference. `-t' needs exactly one filename.
+
+ The Vax version of the assembler accepts additional options when
+compiled for VMS:
+
+`-h N'
+ External symbol or section (used for global variables) names are
+ not case sensitive on VAX/VMS and always mapped to upper case.
+ This is contrary to the C language definition which explicitly
+ distinguishes upper and lower case. To implement a standard
+ conforming C compiler, names must be changed (mapped) to preserve
+ the case information. The default mapping is to convert all lower
+ case characters to uppercase and adding an underscore followed by
+ a 6 digit hex value, representing a 24 digit binary value. The
+ one digits in the binary value represent which characters are
+ uppercase in the original symbol name.
+
+ The `-h N' option determines how we map names. This takes several
+ values. No `-h' switch at all allows case hacking as described
+ above. A value of zero (`-h0') implies names should be upper
+ case, and inhibits the case hack. A value of 2 (`-h2') implies
+ names should be all lower case, with no case hack. A value of 3
+ (`-h3') implies that case should be preserved. The value 1 is
+ unused. The `-H' option directs `as' to display every mapped
+ symbol during assembly.
+
+ Symbols whose names include a dollar sign `$' are exceptions to the
+ general name mapping. These symbols are normally only used to
+ reference VMS library names. Such symbols are always mapped to
+ upper case.
+
+`-+'
+ The `-+' option causes `as' to truncate any symbol name larger
+ than 31 characters. The `-+' option also prevents some code
+ following the `_main' symbol normally added to make the object
+ file compatible with Vax-11 "C".
+
+`-1'
+ This option is ignored for backward compatibility with `as'
+ version 1.x.
+
+`-H'
+ The `-H' option causes `as' to print every symbol which was
+ changed by case mapping.
+
+
+File: as.info, Node: VAX-float, Next: VAX-directives, Prev: VAX-Opts, Up: Vax-Dependent
+
+9.43.2 VAX Floating Point
+-------------------------
+
+Conversion of flonums to floating point is correct, and compatible with
+previous assemblers. Rounding is towards zero if the remainder is
+exactly half the least significant bit.
+
+ `D', `F', `G' and `H' floating point formats are understood.
+
+ Immediate floating literals (_e.g._ `S`$6.9') are rendered
+correctly. Again, rounding is towards zero in the boundary case.
+
+ The `.float' directive produces `f' format numbers. The `.double'
+directive produces `d' format numbers.
+
+
+File: as.info, Node: VAX-directives, Next: VAX-opcodes, Prev: VAX-float, Up: Vax-Dependent
+
+9.43.3 Vax Machine Directives
+-----------------------------
+
+The Vax version of the assembler supports four directives for
+generating Vax floating point constants. They are described in the
+table below.
+
+`.dfloat'
+ This expects zero or more flonums, separated by commas, and
+ assembles Vax `d' format 64-bit floating point constants.
+
+`.ffloat'
+ This expects zero or more flonums, separated by commas, and
+ assembles Vax `f' format 32-bit floating point constants.
+
+`.gfloat'
+ This expects zero or more flonums, separated by commas, and
+ assembles Vax `g' format 64-bit floating point constants.
+
+`.hfloat'
+ This expects zero or more flonums, separated by commas, and
+ assembles Vax `h' format 128-bit floating point constants.
+
+
+
+File: as.info, Node: VAX-opcodes, Next: VAX-branch, Prev: VAX-directives, Up: Vax-Dependent
+
+9.43.4 VAX Opcodes
+------------------
+
+All DEC mnemonics are supported. Beware that `case...' instructions
+have exactly 3 operands. The dispatch table that follows the `case...'
+instruction should be made with `.word' statements. This is compatible
+with all unix assemblers we know of.
+
+
+File: as.info, Node: VAX-branch, Next: VAX-operands, Prev: VAX-opcodes, Up: Vax-Dependent
+
+9.43.5 VAX Branch Improvement
+-----------------------------
+
+Certain pseudo opcodes are permitted. They are for branch
+instructions. They expand to the shortest branch instruction that
+reaches the target. Generally these mnemonics are made by substituting
+`j' for `b' at the start of a DEC mnemonic. This feature is included
+both for compatibility and to help compilers. If you do not need this
+feature, avoid these opcodes. Here are the mnemonics, and the code
+they can expand into.
+
+`jbsb'
+ `Jsb' is already an instruction mnemonic, so we chose `jbsb'.
+ (byte displacement)
+ `bsbb ...'
+
+ (word displacement)
+ `bsbw ...'
+
+ (long displacement)
+ `jsb ...'
+
+`jbr'
+`jr'
+ Unconditional branch.
+ (byte displacement)
+ `brb ...'
+
+ (word displacement)
+ `brw ...'
+
+ (long displacement)
+ `jmp ...'
+
+`jCOND'
+ COND may be any one of the conditional branches `neq', `nequ',
+ `eql', `eqlu', `gtr', `geq', `lss', `gtru', `lequ', `vc', `vs',
+ `gequ', `cc', `lssu', `cs'. COND may also be one of the bit tests
+ `bs', `bc', `bss', `bcs', `bsc', `bcc', `bssi', `bcci', `lbs',
+ `lbc'. NOTCOND is the opposite condition to COND.
+ (byte displacement)
+ `bCOND ...'
+
+ (word displacement)
+ `bNOTCOND foo ; brw ... ; foo:'
+
+ (long displacement)
+ `bNOTCOND foo ; jmp ... ; foo:'
+
+`jacbX'
+ X may be one of `b d f g h l w'.
+ (word displacement)
+ `OPCODE ...'
+
+ (long displacement)
+ OPCODE ..., foo ;
+ brb bar ;
+ foo: jmp ... ;
+ bar:
+
+`jaobYYY'
+ YYY may be one of `lss leq'.
+
+`jsobZZZ'
+ ZZZ may be one of `geq gtr'.
+ (byte displacement)
+ `OPCODE ...'
+
+ (word displacement)
+ OPCODE ..., foo ;
+ brb bar ;
+ foo: brw DESTINATION ;
+ bar:
+
+ (long displacement)
+ OPCODE ..., foo ;
+ brb bar ;
+ foo: jmp DESTINATION ;
+ bar:
+
+`aobleq'
+`aoblss'
+`sobgeq'
+`sobgtr'
+
+ (byte displacement)
+ `OPCODE ...'
+
+ (word displacement)
+ OPCODE ..., foo ;
+ brb bar ;
+ foo: brw DESTINATION ;
+ bar:
+
+ (long displacement)
+ OPCODE ..., foo ;
+ brb bar ;
+ foo: jmp DESTINATION ;
+ bar:
+
+
+File: as.info, Node: VAX-operands, Next: VAX-no, Prev: VAX-branch, Up: Vax-Dependent
+
+9.43.6 VAX Operands
+-------------------
+
+The immediate character is `$' for Unix compatibility, not `#' as DEC
+writes it.
+
+ The indirect character is `*' for Unix compatibility, not `@' as DEC
+writes it.
+
+ The displacement sizing character is ``' (an accent grave) for Unix
+compatibility, not `^' as DEC writes it. The letter preceding ``' may
+have either case. `G' is not understood, but all other letters (`b i l
+s w') are understood.
+
+ Register names understood are `r0 r1 r2 ... r15 ap fp sp pc'. Upper
+and lower case letters are equivalent.
+
+ For instance
+ tstb *w`$4(r5)
+
+ Any expression is permitted in an operand. Operands are comma
+separated.
+
+
+File: as.info, Node: VAX-no, Next: VAX-Syntax, Prev: VAX-operands, Up: Vax-Dependent
+
+9.43.7 Not Supported on VAX
+---------------------------
+
+Vax bit fields can not be assembled with `as'. Someone can add the
+required code if they really need it.
+
+
+File: as.info, Node: VAX-Syntax, Prev: VAX-no, Up: Vax-Dependent
+
+9.43.8 VAX Syntax
+-----------------
+
+* Menu:
+
+* VAX-Chars:: Special Characters
+
+
+File: as.info, Node: VAX-Chars, Up: VAX-Syntax
+
+9.43.8.1 Special Characters
+...........................
+
+The presence of a `#' appearing anywhere on a line indicates the start
+of a comment that extends to the end of that line.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line can also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ The `;' character can be used to separate statements on the same
+line.
+
+
+File: as.info, Node: V850-Dependent, Next: XSTORMY16-Dependent, Prev: TILEPro-Dependent, Up: Machine Dependencies
+
+9.44 v850 Dependent Features
+============================
+
+* Menu:
+
+* V850 Options:: Options
+* V850 Syntax:: Syntax
+* V850 Floating Point:: Floating Point
+* V850 Directives:: V850 Machine Directives
+* V850 Opcodes:: Opcodes
+
+
+File: as.info, Node: V850 Options, Next: V850 Syntax, Up: V850-Dependent
+
+9.44.1 Options
+--------------
+
+`as' supports the following additional command-line options for the
+V850 processor family:
+
+`-wsigned_overflow'
+ Causes warnings to be produced when signed immediate values
+ overflow the space available for then within their opcodes. By
+ default this option is disabled as it is possible to receive
+ spurious warnings due to using exact bit patterns as immediate
+ constants.
+
+`-wunsigned_overflow'
+ Causes warnings to be produced when unsigned immediate values
+ overflow the space available for then within their opcodes. By
+ default this option is disabled as it is possible to receive
+ spurious warnings due to using exact bit patterns as immediate
+ constants.
+
+`-mv850'
+ Specifies that the assembled code should be marked as being
+ targeted at the V850 processor. This allows the linker to detect
+ attempts to link such code with code assembled for other
+ processors.
+
+`-mv850e'
+ Specifies that the assembled code should be marked as being
+ targeted at the V850E processor. This allows the linker to detect
+ attempts to link such code with code assembled for other
+ processors.
+
+`-mv850e1'
+ Specifies that the assembled code should be marked as being
+ targeted at the V850E1 processor. This allows the linker to
+ detect attempts to link such code with code assembled for other
+ processors.
+
+`-mv850any'
+ Specifies that the assembled code should be marked as being
+ targeted at the V850 processor but support instructions that are
+ specific to the extended variants of the process. This allows the
+ production of binaries that contain target specific code, but
+ which are also intended to be used in a generic fashion. For
+ example libgcc.a contains generic routines used by the code
+ produced by GCC for all versions of the v850 architecture,
+ together with support routines only used by the V850E architecture.
+
+`-mv850e2'
+ Specifies that the assembled code should be marked as being
+ targeted at the V850E2 processor. This allows the linker to
+ detect attempts to link such code with code assembled for other
+ processors.
+
+`-mv850e2v3'
+ Specifies that the assembled code should be marked as being
+ targeted at the V850E2V3 processor. This allows the linker to
+ detect attempts to link such code with code assembled for other
+ processors.
+
+`-mrelax'
+ Enables relaxation. This allows the .longcall and .longjump pseudo
+ ops to be used in the assembler source code. These ops label
+ sections of code which are either a long function call or a long
+ branch. The assembler will then flag these sections of code and
+ the linker will attempt to relax them.
+
+
+
+File: as.info, Node: V850 Syntax, Next: V850 Floating Point, Prev: V850 Options, Up: V850-Dependent
+
+9.44.2 Syntax
+-------------
+
+* Menu:
+
+* V850-Chars:: Special Characters
+* V850-Regs:: Register Names
+
+
+File: as.info, Node: V850-Chars, Next: V850-Regs, Up: V850 Syntax
+
+9.44.2.1 Special Characters
+...........................
+
+`#' is the line comment character. If a `#' appears as the first
+character of a line, the whole line is treated as a comment, but in
+this case the line can also be a logical line number directive (*note
+Comments::) or a preprocessor control command (*note Preprocessing::).
+
+ Two dashes (`--') can also be used to start a line comment.
+
+ The `;' character can be used to separate statements on the same
+line.
+
+
+File: as.info, Node: V850-Regs, Prev: V850-Chars, Up: V850 Syntax
+
+9.44.2.2 Register Names
+.......................
+
+`as' supports the following names for registers:
+`general register 0'
+ r0, zero
+
+`general register 1'
+ r1
+
+`general register 2'
+ r2, hp
+
+`general register 3'
+ r3, sp
+
+`general register 4'
+ r4, gp
+
+`general register 5'
+ r5, tp
+
+`general register 6'
+ r6
+
+`general register 7'
+ r7
+
+`general register 8'
+ r8
+
+`general register 9'
+ r9
+
+`general register 10'
+ r10
+
+`general register 11'
+ r11
+
+`general register 12'
+ r12
+
+`general register 13'
+ r13
+
+`general register 14'
+ r14
+
+`general register 15'
+ r15
+
+`general register 16'
+ r16
+
+`general register 17'
+ r17
+
+`general register 18'
+ r18
+
+`general register 19'
+ r19
+
+`general register 20'
+ r20
+
+`general register 21'
+ r21
+
+`general register 22'
+ r22
+
+`general register 23'
+ r23
+
+`general register 24'
+ r24
+
+`general register 25'
+ r25
+
+`general register 26'
+ r26
+
+`general register 27'
+ r27
+
+`general register 28'
+ r28
+
+`general register 29'
+ r29
+
+`general register 30'
+ r30, ep
+
+`general register 31'
+ r31, lp
+
+`system register 0'
+ eipc
+
+`system register 1'
+ eipsw
+
+`system register 2'
+ fepc
+
+`system register 3'
+ fepsw
+
+`system register 4'
+ ecr
+
+`system register 5'
+ psw
+
+`system register 16'
+ ctpc
+
+`system register 17'
+ ctpsw
+
+`system register 18'
+ dbpc
+
+`system register 19'
+ dbpsw
+
+`system register 20'
+ ctbp
+
+
+File: as.info, Node: V850 Floating Point, Next: V850 Directives, Prev: V850 Syntax, Up: V850-Dependent
+
+9.44.3 Floating Point
+---------------------
+
+The V850 family uses IEEE floating-point numbers.
+
+
+File: as.info, Node: V850 Directives, Next: V850 Opcodes, Prev: V850 Floating Point, Up: V850-Dependent
+
+9.44.4 V850 Machine Directives
+------------------------------
+
+`.offset <EXPRESSION>'
+ Moves the offset into the current section to the specified amount.
+
+`.section "name", <type>'
+ This is an extension to the standard .section directive. It sets
+ the current section to be <type> and creates an alias for this
+ section called "name".
+
+`.v850'
+ Specifies that the assembled code should be marked as being
+ targeted at the V850 processor. This allows the linker to detect
+ attempts to link such code with code assembled for other
+ processors.
+
+`.v850e'
+ Specifies that the assembled code should be marked as being
+ targeted at the V850E processor. This allows the linker to detect
+ attempts to link such code with code assembled for other
+ processors.
+
+`.v850e1'
+ Specifies that the assembled code should be marked as being
+ targeted at the V850E1 processor. This allows the linker to
+ detect attempts to link such code with code assembled for other
+ processors.
+
+`.v850e2'
+ Specifies that the assembled code should be marked as being
+ targeted at the V850E2 processor. This allows the linker to
+ detect attempts to link such code with code assembled for other
+ processors.
+
+`.v850e2v3'
+ Specifies that the assembled code should be marked as being
+ targeted at the V850E2V3 processor. This allows the linker to
+ detect attempts to link such code with code assembled for other
+ processors.
+
+
+
+File: as.info, Node: V850 Opcodes, Prev: V850 Directives, Up: V850-Dependent
+
+9.44.5 Opcodes
+--------------
+
+`as' implements all the standard V850 opcodes.
+
+ `as' also implements the following pseudo ops:
+
+`hi0()'
+ Computes the higher 16 bits of the given expression and stores it
+ into the immediate operand field of the given instruction. For
+ example:
+
+ `mulhi hi0(here - there), r5, r6'
+
+ computes the difference between the address of labels 'here' and
+ 'there', takes the upper 16 bits of this difference, shifts it
+ down 16 bits and then multiplies it by the lower 16 bits in
+ register 5, putting the result into register 6.
+
+`lo()'
+ Computes the lower 16 bits of the given expression and stores it
+ into the immediate operand field of the given instruction. For
+ example:
+
+ `addi lo(here - there), r5, r6'
+
+ computes the difference between the address of labels 'here' and
+ 'there', takes the lower 16 bits of this difference and adds it to
+ register 5, putting the result into register 6.
+
+`hi()'
+ Computes the higher 16 bits of the given expression and then adds
+ the value of the most significant bit of the lower 16 bits of the
+ expression and stores the result into the immediate operand field
+ of the given instruction. For example the following code can be
+ used to compute the address of the label 'here' and store it into
+ register 6:
+
+ `movhi hi(here), r0, r6' `movea lo(here), r6, r6'
+
+ The reason for this special behaviour is that movea performs a sign
+ extension on its immediate operand. So for example if the address
+ of 'here' was 0xFFFFFFFF then without the special behaviour of the
+ hi() pseudo-op the movhi instruction would put 0xFFFF0000 into r6,
+ then the movea instruction would takes its immediate operand,
+ 0xFFFF, sign extend it to 32 bits, 0xFFFFFFFF, and then add it
+ into r6 giving 0xFFFEFFFF which is wrong (the fifth nibble is E).
+ With the hi() pseudo op adding in the top bit of the lo() pseudo
+ op, the movhi instruction actually stores 0 into r6 (0xFFFF + 1 =
+ 0x0000), so that the movea instruction stores 0xFFFFFFFF into r6 -
+ the right value.
+
+`hilo()'
+ Computes the 32 bit value of the given expression and stores it
+ into the immediate operand field of the given instruction (which
+ must be a mov instruction). For example:
+
+ `mov hilo(here), r6'
+
+ computes the absolute address of label 'here' and puts the result
+ into register 6.
+
+`sdaoff()'
+ Computes the offset of the named variable from the start of the
+ Small Data Area (whoes address is held in register 4, the GP
+ register) and stores the result as a 16 bit signed value in the
+ immediate operand field of the given instruction. For example:
+
+ `ld.w sdaoff(_a_variable)[gp],r6'
+
+ loads the contents of the location pointed to by the label
+ '_a_variable' into register 6, provided that the label is located
+ somewhere within +/- 32K of the address held in the GP register.
+ [Note the linker assumes that the GP register contains a fixed
+ address set to the address of the label called '__gp'. This can
+ either be set up automatically by the linker, or specifically set
+ by using the `--defsym __gp=<value>' command line option].
+
+`tdaoff()'
+ Computes the offset of the named variable from the start of the
+ Tiny Data Area (whoes address is held in register 30, the EP
+ register) and stores the result as a 4,5, 7 or 8 bit unsigned
+ value in the immediate operand field of the given instruction.
+ For example:
+
+ `sld.w tdaoff(_a_variable)[ep],r6'
+
+ loads the contents of the location pointed to by the label
+ '_a_variable' into register 6, provided that the label is located
+ somewhere within +256 bytes of the address held in the EP
+ register. [Note the linker assumes that the EP register contains
+ a fixed address set to the address of the label called '__ep'.
+ This can either be set up automatically by the linker, or
+ specifically set by using the `--defsym __ep=<value>' command line
+ option].
+
+`zdaoff()'
+ Computes the offset of the named variable from address 0 and
+ stores the result as a 16 bit signed value in the immediate
+ operand field of the given instruction. For example:
+
+ `movea zdaoff(_a_variable),zero,r6'
+
+ puts the address of the label '_a_variable' into register 6,
+ assuming that the label is somewhere within the first 32K of
+ memory. (Strictly speaking it also possible to access the last
+ 32K of memory as well, as the offsets are signed).
+
+`ctoff()'
+ Computes the offset of the named variable from the start of the
+ Call Table Area (whoes address is helg in system register 20, the
+ CTBP register) and stores the result a 6 or 16 bit unsigned value
+ in the immediate field of then given instruction or piece of data.
+ For example:
+
+ `callt ctoff(table_func1)'
+
+ will put the call the function whoes address is held in the call
+ table at the location labeled 'table_func1'.
+
+`.longcall `name''
+ Indicates that the following sequence of instructions is a long
+ call to function `name'. The linker will attempt to shorten this
+ call sequence if `name' is within a 22bit offset of the call. Only
+ valid if the `-mrelax' command line switch has been enabled.
+
+`.longjump `name''
+ Indicates that the following sequence of instructions is a long
+ jump to label `name'. The linker will attempt to shorten this code
+ sequence if `name' is within a 22bit offset of the jump. Only
+ valid if the `-mrelax' command line switch has been enabled.
+
+
+ For information on the V850 instruction set, see `V850 Family
+32-/16-Bit single-Chip Microcontroller Architecture Manual' from NEC.
+Ltd.
+
+
+File: as.info, Node: XSTORMY16-Dependent, Next: Xtensa-Dependent, Prev: V850-Dependent, Up: Machine Dependencies
+
+9.45 XStormy16 Dependent Features
+=================================
+
+* Menu:
+
+* XStormy16 Syntax:: Syntax
+* XStormy16 Directives:: Machine Directives
+* XStormy16 Opcodes:: Pseudo-Opcodes
+
+
+File: as.info, Node: XStormy16 Syntax, Next: XStormy16 Directives, Up: XSTORMY16-Dependent
+
+9.45.1 Syntax
+-------------
+
+* Menu:
+
+* XStormy16-Chars:: Special Characters
+
+
+File: as.info, Node: XStormy16-Chars, Up: XStormy16 Syntax
+
+9.45.1.1 Special Characters
+...........................
+
+`#' is the line comment character. If a `#' appears as the first
+character of a line, the whole line is treated as a comment, but in
+this case the line can also be a logical line number directive (*note
+Comments::) or a preprocessor control command (*note Preprocessing::).
+
+ A semicolon (`;') can be used to start a comment that extends from
+wherever the character appears on the line up to the end of the line.
+
+ The `|' character can be used to separate statements on the same
+line.
+
+
+File: as.info, Node: XStormy16 Directives, Next: XStormy16 Opcodes, Prev: XStormy16 Syntax, Up: XSTORMY16-Dependent
+
+9.45.2 XStormy16 Machine Directives
+-----------------------------------
+
+`.16bit_pointers'
+ Like the `--16bit-pointers' command line option this directive
+ indicates that the assembly code makes use of 16-bit pointers.
+
+`.32bit_pointers'
+ Like the `--32bit-pointers' command line option this directive
+ indicates that the assembly code makes use of 32-bit pointers.
+
+`.no_pointers'
+ Like the `--no-pointers' command line option this directive
+ indicates that the assembly code does not makes use pointers.
+
+
+
+File: as.info, Node: XStormy16 Opcodes, Prev: XStormy16 Directives, Up: XSTORMY16-Dependent
+
+9.45.3 XStormy16 Pseudo-Opcodes
+-------------------------------
+
+`as' implements all the standard XStormy16 opcodes.
+
+ `as' also implements the following pseudo ops:
+
+`@lo()'
+ Computes the lower 16 bits of the given expression and stores it
+ into the immediate operand field of the given instruction. For
+ example:
+
+ `add r6, @lo(here - there)'
+
+ computes the difference between the address of labels 'here' and
+ 'there', takes the lower 16 bits of this difference and adds it to
+ register 6.
+
+`@hi()'
+ Computes the higher 16 bits of the given expression and stores it
+ into the immediate operand field of the given instruction. For
+ example:
+
+ `addc r7, @hi(here - there)'
+
+ computes the difference between the address of labels 'here' and
+ 'there', takes the upper 16 bits of this difference, shifts it
+ down 16 bits and then adds it, along with the carry bit, to the
+ value in register 7.
+
+
+
+File: as.info, Node: Xtensa-Dependent, Next: Z80-Dependent, Prev: XSTORMY16-Dependent, Up: Machine Dependencies
+
+9.46 Xtensa Dependent Features
+==============================
+
+ This chapter covers features of the GNU assembler that are specific
+to the Xtensa architecture. For details about the Xtensa instruction
+set, please consult the `Xtensa Instruction Set Architecture (ISA)
+Reference Manual'.
+
+* Menu:
+
+* Xtensa Options:: Command-line Options.
+* Xtensa Syntax:: Assembler Syntax for Xtensa Processors.
+* Xtensa Optimizations:: Assembler Optimizations.
+* Xtensa Relaxation:: Other Automatic Transformations.
+* Xtensa Directives:: Directives for Xtensa Processors.
+
+
+File: as.info, Node: Xtensa Options, Next: Xtensa Syntax, Up: Xtensa-Dependent
+
+9.46.1 Command Line Options
+---------------------------
+
+`--text-section-literals | --no-text-section-literals'
+ Control the treatment of literal pools. The default is
+ `--no-text-section-literals', which places literals in separate
+ sections in the output file. This allows the literal pool to be
+ placed in a data RAM/ROM. With `--text-section-literals', the
+ literals are interspersed in the text section in order to keep
+ them as close as possible to their references. This may be
+ necessary for large assembly files, where the literals would
+ otherwise be out of range of the `L32R' instructions in the text
+ section. These options only affect literals referenced via
+ PC-relative `L32R' instructions; literals for absolute mode `L32R'
+ instructions are handled separately. *Note literal: Literal
+ Directive.
+
+`--absolute-literals | --no-absolute-literals'
+ Indicate to the assembler whether `L32R' instructions use absolute
+ or PC-relative addressing. If the processor includes the absolute
+ addressing option, the default is to use absolute `L32R'
+ relocations. Otherwise, only the PC-relative `L32R' relocations
+ can be used.
+
+`--target-align | --no-target-align'
+ Enable or disable automatic alignment to reduce branch penalties
+ at some expense in code size. *Note Automatic Instruction
+ Alignment: Xtensa Automatic Alignment. This optimization is
+ enabled by default. Note that the assembler will always align
+ instructions like `LOOP' that have fixed alignment requirements.
+
+`--longcalls | --no-longcalls'
+ Enable or disable transformation of call instructions to allow
+ calls across a greater range of addresses. *Note Function Call
+ Relaxation: Xtensa Call Relaxation. This option should be used
+ when call targets can potentially be out of range. It may degrade
+ both code size and performance, but the linker can generally
+ optimize away the unnecessary overhead when a call ends up within
+ range. The default is `--no-longcalls'.
+
+`--transform | --no-transform'
+ Enable or disable all assembler transformations of Xtensa
+ instructions, including both relaxation and optimization. The
+ default is `--transform'; `--no-transform' should only be used in
+ the rare cases when the instructions must be exactly as specified
+ in the assembly source. Using `--no-transform' causes out of range
+ instruction operands to be errors.
+
+`--rename-section OLDNAME=NEWNAME'
+ Rename the OLDNAME section to NEWNAME. This option can be used
+ multiple times to rename multiple sections.
+
+
+File: as.info, Node: Xtensa Syntax, Next: Xtensa Optimizations, Prev: Xtensa Options, Up: Xtensa-Dependent
+
+9.46.2 Assembler Syntax
+-----------------------
+
+Block comments are delimited by `/*' and `*/'. End of line comments
+may be introduced with either `#' or `//'.
+
+ If a `#' appears as the first character of a line then the whole
+line is treated as a comment, but in this case the line could also be a
+logical line number directive (*note Comments::) or a preprocessor
+control command (*note Preprocessing::).
+
+ Instructions consist of a leading opcode or macro name followed by
+whitespace and an optional comma-separated list of operands:
+
+ OPCODE [OPERAND, ...]
+
+ Instructions must be separated by a newline or semicolon (`;').
+
+ FLIX instructions, which bundle multiple opcodes together in a single
+instruction, are specified by enclosing the bundled opcodes inside
+braces:
+
+ {
+ [FORMAT]
+ OPCODE0 [OPERANDS]
+ OPCODE1 [OPERANDS]
+ OPCODE2 [OPERANDS]
+ ...
+ }
+
+ The opcodes in a FLIX instruction are listed in the same order as the
+corresponding instruction slots in the TIE format declaration.
+Directives and labels are not allowed inside the braces of a FLIX
+instruction. A particular TIE format name can optionally be specified
+immediately after the opening brace, but this is usually unnecessary.
+The assembler will automatically search for a format that can encode the
+specified opcodes, so the format name need only be specified in rare
+cases where there is more than one applicable format and where it
+matters which of those formats is used. A FLIX instruction can also be
+specified on a single line by separating the opcodes with semicolons:
+
+ { [FORMAT;] OPCODE0 [OPERANDS]; OPCODE1 [OPERANDS]; OPCODE2 [OPERANDS]; ... }
+
+ If an opcode can only be encoded in a FLIX instruction but is not
+specified as part of a FLIX bundle, the assembler will choose the
+smallest format where the opcode can be encoded and will fill unused
+instruction slots with no-ops.
+
+* Menu:
+
+* Xtensa Opcodes:: Opcode Naming Conventions.
+* Xtensa Registers:: Register Naming.
+
+
+File: as.info, Node: Xtensa Opcodes, Next: Xtensa Registers, Up: Xtensa Syntax
+
+9.46.2.1 Opcode Names
+.....................
+
+See the `Xtensa Instruction Set Architecture (ISA) Reference Manual'
+for a complete list of opcodes and descriptions of their semantics.
+
+ If an opcode name is prefixed with an underscore character (`_'),
+`as' will not transform that instruction in any way. The underscore
+prefix disables both optimization (*note Xtensa Optimizations: Xtensa
+Optimizations.) and relaxation (*note Xtensa Relaxation: Xtensa
+Relaxation.) for that particular instruction. Only use the underscore
+prefix when it is essential to select the exact opcode produced by the
+assembler. Using this feature unnecessarily makes the code less
+efficient by disabling assembler optimization and less flexible by
+disabling relaxation.
+
+ Note that this special handling of underscore prefixes only applies
+to Xtensa opcodes, not to either built-in macros or user-defined macros.
+When an underscore prefix is used with a macro (e.g., `_MOV'), it
+refers to a different macro. The assembler generally provides built-in
+macros both with and without the underscore prefix, where the underscore
+versions behave as if the underscore carries through to the instructions
+in the macros. For example, `_MOV' may expand to `_MOV.N'.
+
+ The underscore prefix only applies to individual instructions, not to
+series of instructions. For example, if a series of instructions have
+underscore prefixes, the assembler will not transform the individual
+instructions, but it may insert other instructions between them (e.g.,
+to align a `LOOP' instruction). To prevent the assembler from
+modifying a series of instructions as a whole, use the `no-transform'
+directive. *Note transform: Transform Directive.
+
+
+File: as.info, Node: Xtensa Registers, Prev: Xtensa Opcodes, Up: Xtensa Syntax
+
+9.46.2.2 Register Names
+.......................
+
+The assembly syntax for a register file entry is the "short" name for a
+TIE register file followed by the index into that register file. For
+example, the general-purpose `AR' register file has a short name of
+`a', so these registers are named `a0'...`a15'. As a special feature,
+`sp' is also supported as a synonym for `a1'. Additional registers may
+be added by processor configuration options and by designer-defined TIE
+extensions. An initial `$' character is optional in all register names.
+
+
+File: as.info, Node: Xtensa Optimizations, Next: Xtensa Relaxation, Prev: Xtensa Syntax, Up: Xtensa-Dependent
+
+9.46.3 Xtensa Optimizations
+---------------------------
+
+The optimizations currently supported by `as' are generation of density
+instructions where appropriate and automatic branch target alignment.
+
+* Menu:
+
+* Density Instructions:: Using Density Instructions.
+* Xtensa Automatic Alignment:: Automatic Instruction Alignment.
+
+
+File: as.info, Node: Density Instructions, Next: Xtensa Automatic Alignment, Up: Xtensa Optimizations
+
+9.46.3.1 Using Density Instructions
+...................................
+
+The Xtensa instruction set has a code density option that provides
+16-bit versions of some of the most commonly used opcodes. Use of these
+opcodes can significantly reduce code size. When possible, the
+assembler automatically translates instructions from the core Xtensa
+instruction set into equivalent instructions from the Xtensa code
+density option. This translation can be disabled by using underscore
+prefixes (*note Opcode Names: Xtensa Opcodes.), by using the
+`--no-transform' command-line option (*note Command Line Options:
+Xtensa Options.), or by using the `no-transform' directive (*note
+transform: Transform Directive.).
+
+ It is a good idea _not_ to use the density instructions directly.
+The assembler will automatically select dense instructions where
+possible. If you later need to use an Xtensa processor without the code
+density option, the same assembly code will then work without
+modification.
+
+
+File: as.info, Node: Xtensa Automatic Alignment, Prev: Density Instructions, Up: Xtensa Optimizations
+
+9.46.3.2 Automatic Instruction Alignment
+........................................
+
+The Xtensa assembler will automatically align certain instructions, both
+to optimize performance and to satisfy architectural requirements.
+
+ As an optimization to improve performance, the assembler attempts to
+align branch targets so they do not cross instruction fetch boundaries.
+(Xtensa processors can be configured with either 32-bit or 64-bit
+instruction fetch widths.) An instruction immediately following a call
+is treated as a branch target in this context, because it will be the
+target of a return from the call. This alignment has the potential to
+reduce branch penalties at some expense in code size. This
+optimization is enabled by default. You can disable it with the
+`--no-target-align' command-line option (*note Command Line Options:
+Xtensa Options.).
+
+ The target alignment optimization is done without adding instructions
+that could increase the execution time of the program. If there are
+density instructions in the code preceding a target, the assembler can
+change the target alignment by widening some of those instructions to
+the equivalent 24-bit instructions. Extra bytes of padding can be
+inserted immediately following unconditional jump and return
+instructions. This approach is usually successful in aligning many,
+but not all, branch targets.
+
+ The `LOOP' family of instructions must be aligned such that the
+first instruction in the loop body does not cross an instruction fetch
+boundary (e.g., with a 32-bit fetch width, a `LOOP' instruction must be
+on either a 1 or 2 mod 4 byte boundary). The assembler knows about
+this restriction and inserts the minimal number of 2 or 3 byte no-op
+instructions to satisfy it. When no-op instructions are added, any
+label immediately preceding the original loop will be moved in order to
+refer to the loop instruction, not the newly generated no-op
+instruction. To preserve binary compatibility across processors with
+different fetch widths, the assembler conservatively assumes a 32-bit
+fetch width when aligning `LOOP' instructions (except if the first
+instruction in the loop is a 64-bit instruction).
+
+ Previous versions of the assembler automatically aligned `ENTRY'
+instructions to 4-byte boundaries, but that alignment is now the
+programmer's responsibility.
+
+
+File: as.info, Node: Xtensa Relaxation, Next: Xtensa Directives, Prev: Xtensa Optimizations, Up: Xtensa-Dependent
+
+9.46.4 Xtensa Relaxation
+------------------------
+
+When an instruction operand is outside the range allowed for that
+particular instruction field, `as' can transform the code to use a
+functionally-equivalent instruction or sequence of instructions. This
+process is known as "relaxation". This is typically done for branch
+instructions because the distance of the branch targets is not known
+until assembly-time. The Xtensa assembler offers branch relaxation and
+also extends this concept to function calls, `MOVI' instructions and
+other instructions with immediate fields.
+
+* Menu:
+
+* Xtensa Branch Relaxation:: Relaxation of Branches.
+* Xtensa Call Relaxation:: Relaxation of Function Calls.
+* Xtensa Immediate Relaxation:: Relaxation of other Immediate Fields.
+
+
+File: as.info, Node: Xtensa Branch Relaxation, Next: Xtensa Call Relaxation, Up: Xtensa Relaxation
+
+9.46.4.1 Conditional Branch Relaxation
+......................................
+
+When the target of a branch is too far away from the branch itself,
+i.e., when the offset from the branch to the target is too large to fit
+in the immediate field of the branch instruction, it may be necessary to
+replace the branch with a branch around a jump. For example,
+
+ beqz a2, L
+
+ may result in:
+
+ bnez.n a2, M
+ j L
+ M:
+
+ (The `BNEZ.N' instruction would be used in this example only if the
+density option is available. Otherwise, `BNEZ' would be used.)
+
+ This relaxation works well because the unconditional jump instruction
+has a much larger offset range than the various conditional branches.
+However, an error will occur if a branch target is beyond the range of a
+jump instruction. `as' cannot relax unconditional jumps. Similarly,
+an error will occur if the original input contains an unconditional
+jump to a target that is out of range.
+
+ Branch relaxation is enabled by default. It can be disabled by using
+underscore prefixes (*note Opcode Names: Xtensa Opcodes.), the
+`--no-transform' command-line option (*note Command Line Options:
+Xtensa Options.), or the `no-transform' directive (*note transform:
+Transform Directive.).
+
+
+File: as.info, Node: Xtensa Call Relaxation, Next: Xtensa Immediate Relaxation, Prev: Xtensa Branch Relaxation, Up: Xtensa Relaxation
+
+9.46.4.2 Function Call Relaxation
+.................................
+
+Function calls may require relaxation because the Xtensa immediate call
+instructions (`CALL0', `CALL4', `CALL8' and `CALL12') provide a
+PC-relative offset of only 512 Kbytes in either direction. For larger
+programs, it may be necessary to use indirect calls (`CALLX0',
+`CALLX4', `CALLX8' and `CALLX12') where the target address is specified
+in a register. The Xtensa assembler can automatically relax immediate
+call instructions into indirect call instructions. This relaxation is
+done by loading the address of the called function into the callee's
+return address register and then using a `CALLX' instruction. So, for
+example:
+
+ call8 func
+
+ might be relaxed to:
+
+ .literal .L1, func
+ l32r a8, .L1
+ callx8 a8
+
+ Because the addresses of targets of function calls are not generally
+known until link-time, the assembler must assume the worst and relax all
+the calls to functions in other source files, not just those that really
+will be out of range. The linker can recognize calls that were
+unnecessarily relaxed, and it will remove the overhead introduced by the
+assembler for those cases where direct calls are sufficient.
+
+ Call relaxation is disabled by default because it can have a negative
+effect on both code size and performance, although the linker can
+usually eliminate the unnecessary overhead. If a program is too large
+and some of the calls are out of range, function call relaxation can be
+enabled using the `--longcalls' command-line option or the `longcalls'
+directive (*note longcalls: Longcalls Directive.).
+
+
+File: as.info, Node: Xtensa Immediate Relaxation, Prev: Xtensa Call Relaxation, Up: Xtensa Relaxation
+
+9.46.4.3 Other Immediate Field Relaxation
+.........................................
+
+The assembler normally performs the following other relaxations. They
+can be disabled by using underscore prefixes (*note Opcode Names:
+Xtensa Opcodes.), the `--no-transform' command-line option (*note
+Command Line Options: Xtensa Options.), or the `no-transform' directive
+(*note transform: Transform Directive.).
+
+ The `MOVI' machine instruction can only materialize values in the
+range from -2048 to 2047. Values outside this range are best
+materialized with `L32R' instructions. Thus:
+
+ movi a0, 100000
+
+ is assembled into the following machine code:
+
+ .literal .L1, 100000
+ l32r a0, .L1
+
+ The `L8UI' machine instruction can only be used with immediate
+offsets in the range from 0 to 255. The `L16SI' and `L16UI' machine
+instructions can only be used with offsets from 0 to 510. The `L32I'
+machine instruction can only be used with offsets from 0 to 1020. A
+load offset outside these ranges can be materialized with an `L32R'
+instruction if the destination register of the load is different than
+the source address register. For example:
+
+ l32i a1, a0, 2040
+
+ is translated to:
+
+ .literal .L1, 2040
+ l32r a1, .L1
+ add a1, a0, a1
+ l32i a1, a1, 0
+
+If the load destination and source address register are the same, an
+out-of-range offset causes an error.
+
+ The Xtensa `ADDI' instruction only allows immediate operands in the
+range from -128 to 127. There are a number of alternate instruction
+sequences for the `ADDI' operation. First, if the immediate is 0, the
+`ADDI' will be turned into a `MOV.N' instruction (or the equivalent
+`OR' instruction if the code density option is not available). If the
+`ADDI' immediate is outside of the range -128 to 127, but inside the
+range -32896 to 32639, an `ADDMI' instruction or `ADDMI'/`ADDI'
+sequence will be used. Finally, if the immediate is outside of this
+range and a free register is available, an `L32R'/`ADD' sequence will
+be used with a literal allocated from the literal pool.
+
+ For example:
+
+ addi a5, a6, 0
+ addi a5, a6, 512
+ addi a5, a6, 513
+ addi a5, a6, 50000
+
+ is assembled into the following:
+
+ .literal .L1, 50000
+ mov.n a5, a6
+ addmi a5, a6, 0x200
+ addmi a5, a6, 0x200
+ addi a5, a5, 1
+ l32r a5, .L1
+ add a5, a6, a5
+
+
+File: as.info, Node: Xtensa Directives, Prev: Xtensa Relaxation, Up: Xtensa-Dependent
+
+9.46.5 Directives
+-----------------
+
+The Xtensa assembler supports a region-based directive syntax:
+
+ .begin DIRECTIVE [OPTIONS]
+ ...
+ .end DIRECTIVE
+
+ All the Xtensa-specific directives that apply to a region of code use
+this syntax.
+
+ The directive applies to code between the `.begin' and the `.end'.
+The state of the option after the `.end' reverts to what it was before
+the `.begin'. A nested `.begin'/`.end' region can further change the
+state of the directive without having to be aware of its outer state.
+For example, consider:
+
+ .begin no-transform
+ L: add a0, a1, a2
+ .begin transform
+ M: add a0, a1, a2
+ .end transform
+ N: add a0, a1, a2
+ .end no-transform
+
+ The `ADD' opcodes at `L' and `N' in the outer `no-transform' region
+both result in `ADD' machine instructions, but the assembler selects an
+`ADD.N' instruction for the `ADD' at `M' in the inner `transform'
+region.
+
+ The advantage of this style is that it works well inside macros
+which can preserve the context of their callers.
+
+ The following directives are available:
+
+* Menu:
+
+* Schedule Directive:: Enable instruction scheduling.
+* Longcalls Directive:: Use Indirect Calls for Greater Range.
+* Transform Directive:: Disable All Assembler Transformations.
+* Literal Directive:: Intermix Literals with Instructions.
+* Literal Position Directive:: Specify Inline Literal Pool Locations.
+* Literal Prefix Directive:: Specify Literal Section Name Prefix.
+* Absolute Literals Directive:: Control PC-Relative vs. Absolute Literals.
+
+
+File: as.info, Node: Schedule Directive, Next: Longcalls Directive, Up: Xtensa Directives
+
+9.46.5.1 schedule
+.................
+
+The `schedule' directive is recognized only for compatibility with
+Tensilica's assembler.
+
+ .begin [no-]schedule
+ .end [no-]schedule
+
+ This directive is ignored and has no effect on `as'.
+
+
+File: as.info, Node: Longcalls Directive, Next: Transform Directive, Prev: Schedule Directive, Up: Xtensa Directives
+
+9.46.5.2 longcalls
+..................
+
+The `longcalls' directive enables or disables function call relaxation.
+*Note Function Call Relaxation: Xtensa Call Relaxation.
+
+ .begin [no-]longcalls
+ .end [no-]longcalls
+
+ Call relaxation is disabled by default unless the `--longcalls'
+command-line option is specified. The `longcalls' directive overrides
+the default determined by the command-line options.
+
+
+File: as.info, Node: Transform Directive, Next: Literal Directive, Prev: Longcalls Directive, Up: Xtensa Directives
+
+9.46.5.3 transform
+..................
+
+This directive enables or disables all assembler transformation,
+including relaxation (*note Xtensa Relaxation: Xtensa Relaxation.) and
+optimization (*note Xtensa Optimizations: Xtensa Optimizations.).
+
+ .begin [no-]transform
+ .end [no-]transform
+
+ Transformations are enabled by default unless the `--no-transform'
+option is used. The `transform' directive overrides the default
+determined by the command-line options. An underscore opcode prefix,
+disabling transformation of that opcode, always takes precedence over
+both directives and command-line flags.
+
+
+File: as.info, Node: Literal Directive, Next: Literal Position Directive, Prev: Transform Directive, Up: Xtensa Directives
+
+9.46.5.4 literal
+................
+
+The `.literal' directive is used to define literal pool data, i.e.,
+read-only 32-bit data accessed via `L32R' instructions.
+
+ .literal LABEL, VALUE[, VALUE...]
+
+ This directive is similar to the standard `.word' directive, except
+that the actual location of the literal data is determined by the
+assembler and linker, not by the position of the `.literal' directive.
+Using this directive gives the assembler freedom to locate the literal
+data in the most appropriate place and possibly to combine identical
+literals. For example, the code:
+
+ entry sp, 40
+ .literal .L1, sym
+ l32r a4, .L1
+
+ can be used to load a pointer to the symbol `sym' into register
+`a4'. The value of `sym' will not be placed between the `ENTRY' and
+`L32R' instructions; instead, the assembler puts the data in a literal
+pool.
+
+ Literal pools are placed by default in separate literal sections;
+however, when using the `--text-section-literals' option (*note Command
+Line Options: Xtensa Options.), the literal pools for PC-relative mode
+`L32R' instructions are placed in the current section.(1) These text
+section literal pools are created automatically before `ENTRY'
+instructions and manually after `.literal_position' directives (*note
+literal_position: Literal Position Directive.). If there are no
+preceding `ENTRY' instructions, explicit `.literal_position' directives
+must be used to place the text section literal pools; otherwise, `as'
+will report an error.
+
+ When literals are placed in separate sections, the literal section
+names are derived from the names of the sections where the literals are
+defined. The base literal section names are `.literal' for PC-relative
+mode `L32R' instructions and `.lit4' for absolute mode `L32R'
+instructions (*note absolute-literals: Absolute Literals Directive.).
+These base names are used for literals defined in the default `.text'
+section. For literals defined in other sections or within the scope of
+a `literal_prefix' directive (*note literal_prefix: Literal Prefix
+Directive.), the following rules determine the literal section name:
+
+ 1. If the current section is a member of a section group, the literal
+ section name includes the group name as a suffix to the base
+ `.literal' or `.lit4' name, with a period to separate the base
+ name and group name. The literal section is also made a member of
+ the group.
+
+ 2. If the current section name (or `literal_prefix' value) begins with
+ "`.gnu.linkonce.KIND.'", the literal section name is formed by
+ replacing "`.KIND'" with the base `.literal' or `.lit4' name. For
+ example, for literals defined in a section named
+ `.gnu.linkonce.t.func', the literal section will be
+ `.gnu.linkonce.literal.func' or `.gnu.linkonce.lit4.func'.
+
+ 3. If the current section name (or `literal_prefix' value) ends with
+ `.text', the literal section name is formed by replacing that
+ suffix with the base `.literal' or `.lit4' name. For example, for
+ literals defined in a section named `.iram0.text', the literal
+ section will be `.iram0.literal' or `.iram0.lit4'.
+
+ 4. If none of the preceding conditions apply, the literal section
+ name is formed by adding the base `.literal' or `.lit4' name as a
+ suffix to the current section name (or `literal_prefix' value).
+
+ ---------- Footnotes ----------
+
+ (1) Literals for the `.init' and `.fini' sections are always placed
+in separate sections, even when `--text-section-literals' is enabled.
+
+
+File: as.info, Node: Literal Position Directive, Next: Literal Prefix Directive, Prev: Literal Directive, Up: Xtensa Directives
+
+9.46.5.5 literal_position
+.........................
+
+When using `--text-section-literals' to place literals inline in the
+section being assembled, the `.literal_position' directive can be used
+to mark a potential location for a literal pool.
+
+ .literal_position
+
+ The `.literal_position' directive is ignored when the
+`--text-section-literals' option is not used or when `L32R'
+instructions use the absolute addressing mode.
+
+ The assembler will automatically place text section literal pools
+before `ENTRY' instructions, so the `.literal_position' directive is
+only needed to specify some other location for a literal pool. You may
+need to add an explicit jump instruction to skip over an inline literal
+pool.
+
+ For example, an interrupt vector does not begin with an `ENTRY'
+instruction so the assembler will be unable to automatically find a good
+place to put a literal pool. Moreover, the code for the interrupt
+vector must be at a specific starting address, so the literal pool
+cannot come before the start of the code. The literal pool for the
+vector must be explicitly positioned in the middle of the vector (before
+any uses of the literals, due to the negative offsets used by
+PC-relative `L32R' instructions). The `.literal_position' directive
+can be used to do this. In the following code, the literal for `M'
+will automatically be aligned correctly and is placed after the
+unconditional jump.
+
+ .global M
+ code_start:
+ j continue
+ .literal_position
+ .align 4
+ continue:
+ movi a4, M
+
+
+File: as.info, Node: Literal Prefix Directive, Next: Absolute Literals Directive, Prev: Literal Position Directive, Up: Xtensa Directives
+
+9.46.5.6 literal_prefix
+.......................
+
+The `literal_prefix' directive allows you to override the default
+literal section names, which are derived from the names of the sections
+where the literals are defined.
+
+ .begin literal_prefix [NAME]
+ .end literal_prefix
+
+ For literals defined within the delimited region, the literal section
+names are derived from the NAME argument instead of the name of the
+current section. The rules used to derive the literal section names do
+not change. *Note literal: Literal Directive. If the NAME argument is
+omitted, the literal sections revert to the defaults. This directive
+has no effect when using the `--text-section-literals' option (*note
+Command Line Options: Xtensa Options.).
+
+
+File: as.info, Node: Absolute Literals Directive, Prev: Literal Prefix Directive, Up: Xtensa Directives
+
+9.46.5.7 absolute-literals
+..........................
+
+The `absolute-literals' and `no-absolute-literals' directives control
+the absolute vs. PC-relative mode for `L32R' instructions. These are
+relevant only for Xtensa configurations that include the absolute
+addressing option for `L32R' instructions.
+
+ .begin [no-]absolute-literals
+ .end [no-]absolute-literals
+
+ These directives do not change the `L32R' mode--they only cause the
+assembler to emit the appropriate kind of relocation for `L32R'
+instructions and to place the literal values in the appropriate section.
+To change the `L32R' mode, the program must write the `LITBASE' special
+register. It is the programmer's responsibility to keep track of the
+mode and indicate to the assembler which mode is used in each region of
+code.
+
+ If the Xtensa configuration includes the absolute `L32R' addressing
+option, the default is to assume absolute `L32R' addressing unless the
+`--no-absolute-literals' command-line option is specified. Otherwise,
+the default is to assume PC-relative `L32R' addressing. The
+`absolute-literals' directive can then be used to override the default
+determined by the command-line options.
+
+
+File: as.info, Node: Reporting Bugs, Next: Acknowledgements, Prev: Machine Dependencies, Up: Top
+
+10 Reporting Bugs
+*****************
+
+Your bug reports play an essential role in making `as' reliable.
+
+ Reporting a bug may help you by bringing a solution to your problem,
+or it may not. But in any case the principal function of a bug report
+is to help the entire community by making the next version of `as' work
+better. Bug reports are your contribution to the maintenance of `as'.
+
+ In order for a bug report to serve its purpose, you must include the
+information that enables us to fix the bug.
+
+* Menu:
+
+* Bug Criteria:: Have you found a bug?
+* Bug Reporting:: How to report bugs
+
+
+File: as.info, Node: Bug Criteria, Next: Bug Reporting, Up: Reporting Bugs
+
+10.1 Have You Found a Bug?
+==========================
+
+If you are not sure whether you have found a bug, here are some
+guidelines:
+
+ * If the assembler gets a fatal signal, for any input whatever, that
+ is a `as' bug. Reliable assemblers never crash.
+
+ * If `as' produces an error message for valid input, that is a bug.
+
+ * If `as' does not produce an error message for invalid input, that
+ is a bug. However, you should note that your idea of "invalid
+ input" might be our idea of "an extension" or "support for
+ traditional practice".
+
+ * If you are an experienced user of assemblers, your suggestions for
+ improvement of `as' are welcome in any case.
+
+
+File: as.info, Node: Bug Reporting, Prev: Bug Criteria, Up: Reporting Bugs
+
+10.2 How to Report Bugs
+=======================
+
+A number of companies and individuals offer support for GNU products.
+If you obtained `as' from a support organization, we recommend you
+contact that organization first.
+
+ You can find contact information for many support companies and
+individuals in the file `etc/SERVICE' in the GNU Emacs distribution.
+
+ In any event, we also recommend that you send bug reports for `as'
+to `http://www.sourceware.org/bugzilla/'.
+
+ The fundamental principle of reporting bugs usefully is this:
+*report all the facts*. If you are not sure whether to state a fact or
+leave it out, state it!
+
+ Often people omit facts because they think they know what causes the
+problem and assume that some details do not matter. Thus, you might
+assume that the name of a symbol you use in an example does not matter.
+Well, probably it does not, but one cannot be sure. Perhaps the bug
+is a stray memory reference which happens to fetch from the location
+where that name is stored in memory; perhaps, if the name were
+different, the contents of that location would fool the assembler into
+doing the right thing despite the bug. Play it safe and give a
+specific, complete example. That is the easiest thing for you to do,
+and the most helpful.
+
+ Keep in mind that the purpose of a bug report is to enable us to fix
+the bug if 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?" 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:
+
+ * The version of `as'. `as' announces it if you start it with the
+ `--version' argument.
+
+ Without this, we will not know whether there is any point in
+ looking for the bug in the current version of `as'.
+
+ * Any patches you may have applied to the `as' source.
+
+ * The type of machine you are using, and the operating system name
+ and version number.
+
+ * What compiler (and its version) was used to compile `as'--e.g.
+ "`gcc-2.7'".
+
+ * The command arguments you gave the assembler to assemble your
+ example and observe the bug. To guarantee you will not omit
+ something important, list them all. A copy of the Makefile (or
+ the output from make) is sufficient.
+
+ If we were to try to guess the arguments, we would probably guess
+ wrong and then we might not encounter the bug.
+
+ * A complete input file that will reproduce the bug. If the bug is
+ observed when the assembler is invoked via a compiler, send the
+ assembler source, not the high level language source. Most
+ compilers will produce the assembler source when run with the `-S'
+ option. If you are using `gcc', use the options `-v
+ --save-temps'; this will save the assembler source in a file with
+ an extension of `.s', and also show you exactly how `as' is being
+ run.
+
+ * A description of what behavior you observe that you believe is
+ incorrect. For example, "It gets a fatal signal."
+
+ Of course, if the bug is that `as' gets a fatal signal, then we
+ will certainly notice it. But if the bug is incorrect output, we
+ might not notice unless it is glaringly wrong. You might as well
+ not give us a chance to make a mistake.
+
+ Even if the problem you experience is a fatal signal, you should
+ still say so explicitly. Suppose something strange is going on,
+ such as, your copy of `as' is out of sync, or you have encountered
+ a bug in the C library on your system. (This has happened!) Your
+ copy might crash and ours would not. If you told us to expect a
+ crash, then when ours fails to crash, we would know that the bug
+ was not happening for us. If you had not told us to expect a
+ crash, then we would not be able to draw any conclusion from our
+ observations.
+
+ * If you wish to suggest changes to the `as' source, send us context
+ diffs, as generated by `diff' with the `-u', `-c', or `-p' option.
+ Always send diffs from the old file to the new file. If you even
+ discuss something in the `as' source, refer to it by context, not
+ by line number.
+
+ The line numbers in our development sources will not match those
+ in your sources. Your line numbers would convey no useful
+ information to us.
+
+ Here are some things that are not necessary:
+
+ * A description of the envelope of the bug.
+
+ Often people who encounter a bug spend a lot of time investigating
+ which changes to the input file will make the bug go away and which
+ changes will not affect it.
+
+ This is often time consuming and not very useful, because the way
+ we will find the bug is by running a single example under the
+ debugger with breakpoints, not by pure deduction from a series of
+ examples. We recommend that you save your time for something else.
+
+ Of course, if you can find a simpler example to report _instead_
+ of the original one, that is a convenience for us. Errors in the
+ output will be easier to spot, running under the debugger will take
+ less time, and so on.
+
+ However, simplification is not vital; if you do not want to do
+ this, report the bug anyway and send us the entire test case you
+ used.
+
+ * A patch for the bug.
+
+ A patch for the bug does help us if it is a good one. But do not
+ omit the necessary information, such as the test case, on the
+ assumption that a patch is all we need. We might see problems
+ with your patch and decide to fix the problem another way, or we
+ might not understand it at all.
+
+ Sometimes with a program as complicated as `as' it is very hard to
+ construct an example that will make the program follow a certain
+ path through the code. If you do not send us the example, we will
+ not be able to construct one, so we will not be able to verify
+ that the bug is fixed.
+
+ And if we cannot understand what bug you are trying to fix, or why
+ your patch should be an improvement, we will not install it. A
+ test case will help us to understand.
+
+ * A guess about what the bug is or what it depends on.
+
+ Such guesses are usually wrong. Even we cannot guess right about
+ such things without first using the debugger to find the facts.
+
+
+File: as.info, Node: Acknowledgements, Next: GNU Free Documentation License, Prev: Reporting Bugs, Up: Top
+
+11 Acknowledgements
+*******************
+
+If you have contributed to GAS and your name isn't listed here, it is
+not meant as a slight. We just don't know about it. Send mail to the
+maintainer, and we'll correct the situation. Currently the maintainer
+is Ken Raeburn (email address `raeburn@cygnus.com').
+
+ Dean Elsner wrote the original GNU assembler for the VAX.(1)
+
+ Jay Fenlason maintained GAS for a while, adding support for
+GDB-specific debug information and the 68k series machines, most of the
+preprocessing pass, and extensive changes in `messages.c',
+`input-file.c', `write.c'.
+
+ K. Richard Pixley maintained GAS for a while, adding various
+enhancements and many bug fixes, including merging support for several
+processors, breaking GAS up to handle multiple object file format back
+ends (including heavy rewrite, testing, an integration of the coff and
+b.out back ends), adding configuration including heavy testing and
+verification of cross assemblers and file splits and renaming,
+converted GAS to strictly ANSI C including full prototypes, added
+support for m680[34]0 and cpu32, did considerable work on i960
+including a COFF port (including considerable amounts of reverse
+engineering), a SPARC opcode file rewrite, DECstation, rs6000, and
+hp300hpux host ports, updated "know" assertions and made them work,
+much other reorganization, cleanup, and lint.
+
+ Ken Raeburn wrote the high-level BFD interface code to replace most
+of the code in format-specific I/O modules.
+
+ The original VMS support was contributed by David L. Kashtan. Eric
+Youngdale has done much work with it since.
+
+ The Intel 80386 machine description was written by Eliot Dresselhaus.
+
+ Minh Tran-Le at IntelliCorp contributed some AIX 386 support.
+
+ The Motorola 88k machine description was contributed by Devon Bowen
+of Buffalo University and Torbjorn Granlund of the Swedish Institute of
+Computer Science.
+
+ Keith Knowles at the Open Software Foundation wrote the original
+MIPS back end (`tc-mips.c', `tc-mips.h'), and contributed Rose format
+support (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 Renesas H8/300 processors (tc-z8k,
+tc-h8300), and IEEE 695 object file format (obj-ieee), was written by
+Steve Chamberlain of Cygnus Support. Steve also modified the COFF back
+end to use BFD for some low-level operations, for use with the H8/300
+and AMD 29k targets.
+
+ John Gilmore built the AMD 29000 support, added `.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., `jsr'), while
+synthetic instructions remained shrinkable (`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.
+
+ Ian Lance Taylor of Cygnus Support merged the Motorola and MIT
+syntax for the 68k, completed support for some COFF targets (68k, i386
+SVR3, and SCO Unix), added support for MIPS ECOFF and ELF targets,
+wrote the initial RS/6000 and PowerPC assembler, and made a few other
+minor patches.
+
+ Steve Chamberlain made GAS able to generate listings.
+
+ Hewlett-Packard contributed support for the HP9000/300.
+
+ Jeff Law wrote GAS and BFD support for the native HPPA object format
+(SOM) along with a fairly extensive HPPA testsuite (for both SOM and
+ELF object formats). This work was supported by both the Center for
+Software Science at the University of Utah and Cygnus Support.
+
+ Support for ELF format files has been worked on by Mark Eichin of
+Cygnus Support (original, incomplete implementation for SPARC), Pete
+Hoogenboom and 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.
+
+ Richard Henderson rewrote the Alpha assembler. Klaus Kaempf wrote
+GAS and BFD 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.
+
+ Jon Beniston added support for the Lattice Mico32 architecture.
+
+ Many others have contributed large or small bugfixes and
+enhancements. If 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.
+
+ ---------- Footnotes ----------
+
+ (1) Any more details?
+
+
+File: as.info, Node: GNU Free Documentation License, Next: AS Index, Prev: Acknowledgements, Up: Top
+
+Appendix A GNU Free Documentation License
+*****************************************
+
+ Version 1.3, 3 November 2008
+
+ Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+ `http://fsf.org/'
+
+ 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
+ functional and useful 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, in any medium,
+ that contains a notice placed by the copyright holder saying it
+ can be distributed under the terms of this License. Such a notice
+ grants a world-wide, royalty-free license, unlimited in duration,
+ to use that work under the conditions stated herein. The
+ "Document", below, refers to any such manual or work. Any member
+ of the public is a licensee, and is addressed as "you". You
+ accept the license if you copy, modify or distribute the work in a
+ way requiring permission under copyright law.
+
+ 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. (Thus, 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. If a section does not fit the above definition of
+ Secondary then it is not allowed to be designated as Invariant.
+ The Document may contain zero Invariant Sections. If the Document
+ does not identify any Invariant Sections then there are none.
+
+ 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
+ Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+ be at most 25 words.
+
+ A "Transparent" copy of the Document means a machine-readable copy,
+ represented in a format whose specification is available to the
+ general public, that is suitable for revising the document
+ 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, or absence of
+ markup, has been arranged to thwart or discourage subsequent
+ modification by readers is not Transparent. An image format is
+ not Transparent if used for any substantial amount of text. 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, PostScript or PDF designed for
+ human modification. Examples of transparent image formats include
+ PNG, XCF and JPG. Opaque formats include 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, PostScript or PDF
+ 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.
+
+ The "publisher" means any person or entity that distributes copies
+ of the Document to the public.
+
+ A section "Entitled XYZ" means a named subunit of the Document
+ whose title either is precisely XYZ or contains XYZ in parentheses
+ following text that translates XYZ in another language. (Here XYZ
+ stands for a specific section name mentioned below, such as
+ "Acknowledgements", "Dedications", "Endorsements", or "History".)
+ To "Preserve the Title" of such a section when you modify the
+ Document means that it remains a section "Entitled XYZ" according
+ to this definition.
+
+ The Document may include Warranty Disclaimers next to the notice
+ which states that this License applies to the Document. These
+ Warranty Disclaimers are considered to be included by reference in
+ this License, but only as regards disclaiming warranties: any other
+ implication that these Warranty Disclaimers may have is void and
+ has no effect on the meaning of this License.
+
+ 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 (or copies in media that commonly
+ have printed covers) 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 computer-network location from
+ which the general network-using public has access to download
+ using public-standard network protocols a complete Transparent
+ copy of the Document, free of added material. 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 fewer than five), unless they release you
+ from this requirement.
+
+ 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", Preserve 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. For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, 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 to be Entitled
+ "Endorsements" or to conflict in title with any Invariant
+ Section.
+
+ O. Preserve any Warranty Disclaimers.
+
+ 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, and that you preserve all
+ their Warranty Disclaimers.
+
+ 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, is called an "aggregate" if the
+ copyright resulting from the compilation is not used to limit the
+ legal rights of the compilation's users beyond what the individual
+ works permit. When the Document is included in an aggregate, this
+ License does not apply to the other works in the aggregate which
+ 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 half
+ of the entire aggregate, the Document's Cover Texts may be placed
+ on covers that bracket the Document within the aggregate, or the
+ electronic equivalent of covers if the Document is in electronic
+ form. Otherwise they must appear on printed covers that bracket
+ 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, and all the license notices in the
+ Document, and any Warranty Disclaimers, provided that you also
+ include the original English version of this License and the
+ original versions of those notices and disclaimers. In case of a
+ disagreement between the translation and the original version of
+ this License or a notice or disclaimer, the original version will
+ prevail.
+
+ If a section in the Document is Entitled "Acknowledgements",
+ "Dedications", or "History", the requirement (section 4) to
+ Preserve its Title (section 1) will typically require changing the
+ actual title.
+
+ 9. TERMINATION
+
+ You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided under this License. Any attempt
+ otherwise to copy, modify, sublicense, or distribute it is void,
+ and will automatically terminate your rights under this License.
+
+ However, if you cease all violation of this License, then your
+ license from a particular copyright holder is reinstated (a)
+ provisionally, unless and until the copyright holder explicitly
+ and finally terminates your license, and (b) permanently, if the
+ copyright holder fails to notify you of the violation by some
+ reasonable means prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+ reinstated permanently if the copyright holder notifies you of the
+ violation by some reasonable means, this is the first time you have
+ received notice of violation of this License (for any work) from
+ that copyright holder, and you cure the violation prior to 30 days
+ after your receipt of the notice.
+
+ Termination of your rights under this section does not terminate
+ the licenses of parties who have received copies or rights from
+ you under this License. If your rights have been terminated and
+ not permanently reinstated, receipt of a copy of some or all of
+ the same material does not give you any rights to use it.
+
+ 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. If the Document specifies that a proxy
+ can decide which future versions of this License can be used, that
+ proxy's public statement of acceptance of a version permanently
+ authorizes you to choose that version for the Document.
+
+ 11. RELICENSING
+
+ "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+ World Wide Web server that publishes copyrightable works and also
+ provides prominent facilities for anybody to edit those works. A
+ public wiki that anybody can edit is an example of such a server.
+ A "Massive Multiauthor Collaboration" (or "MMC") contained in the
+ site means any set of copyrightable works thus published on the MMC
+ site.
+
+ "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+ license published by Creative Commons Corporation, a not-for-profit
+ corporation with a principal place of business in San Francisco,
+ California, as well as future copyleft versions of that license
+ published by that same organization.
+
+ "Incorporate" means to publish or republish a Document, in whole or
+ in part, as part of another Document.
+
+ An MMC is "eligible for relicensing" if it is licensed under this
+ License, and if all works that were first published under this
+ License somewhere other than this MMC, and subsequently
+ incorporated in whole or in part into the MMC, (1) had no cover
+ texts or invariant sections, and (2) were thus incorporated prior
+ to November 1, 2008.
+
+ The operator of an MMC Site may republish an MMC contained in the
+ site under CC-BY-SA on the same site at any time before August 1,
+ 2009, provided the MMC is eligible for relicensing.
+
+
+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:
+
+ 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.3
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+ Texts. A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+
+ If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with...Texts." line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with
+ the Front-Cover Texts being LIST, and with the Back-Cover Texts
+ being LIST.
+
+ If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+ 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.
+
+
+File: as.info, Node: AS Index, Prev: GNU Free Documentation License, Up: Top
+
+AS Index
+********
+
+
+* Menu:
+
+* #: Comments. (line 33)
+* #APP: Preprocessing. (line 27)
+* #NO_APP: Preprocessing. (line 27)
+* $ in symbol names <1>: D10V-Chars. (line 53)
+* $ in symbol names <2>: SH64-Chars. (line 15)
+* $ in symbol names <3>: D30V-Chars. (line 70)
+* $ in symbol names: SH-Chars. (line 15)
+* $a: ARM Mapping Symbols. (line 9)
+* $acos math builtin, TIC54X: TIC54X-Builtins. (line 10)
+* $asin math builtin, TIC54X: TIC54X-Builtins. (line 13)
+* $atan math builtin, TIC54X: TIC54X-Builtins. (line 16)
+* $atan2 math builtin, TIC54X: TIC54X-Builtins. (line 19)
+* $ceil math builtin, TIC54X: TIC54X-Builtins. (line 22)
+* $cos math builtin, TIC54X: TIC54X-Builtins. (line 28)
+* $cosh math builtin, TIC54X: TIC54X-Builtins. (line 25)
+* $cvf math builtin, TIC54X: TIC54X-Builtins. (line 31)
+* $cvi math builtin, TIC54X: TIC54X-Builtins. (line 34)
+* $d: ARM Mapping Symbols. (line 15)
+* $exp math builtin, TIC54X: TIC54X-Builtins. (line 37)
+* $fabs math builtin, TIC54X: TIC54X-Builtins. (line 40)
+* $firstch subsym builtin, TIC54X: TIC54X-Macros. (line 26)
+* $floor math builtin, TIC54X: TIC54X-Builtins. (line 43)
+* $fmod math builtin, TIC54X: TIC54X-Builtins. (line 47)
+* $int math builtin, TIC54X: TIC54X-Builtins. (line 50)
+* $iscons subsym builtin, TIC54X: TIC54X-Macros. (line 43)
+* $isdefed subsym builtin, TIC54X: TIC54X-Macros. (line 34)
+* $ismember subsym builtin, TIC54X: TIC54X-Macros. (line 38)
+* $isname subsym builtin, TIC54X: TIC54X-Macros. (line 47)
+* $isreg subsym builtin, TIC54X: TIC54X-Macros. (line 50)
+* $lastch subsym builtin, TIC54X: TIC54X-Macros. (line 30)
+* $ldexp math builtin, TIC54X: TIC54X-Builtins. (line 53)
+* $log math builtin, TIC54X: TIC54X-Builtins. (line 59)
+* $log10 math builtin, TIC54X: TIC54X-Builtins. (line 56)
+* $max math builtin, TIC54X: TIC54X-Builtins. (line 62)
+* $min math builtin, TIC54X: TIC54X-Builtins. (line 65)
+* $pow math builtin, TIC54X: TIC54X-Builtins. (line 68)
+* $round math builtin, TIC54X: TIC54X-Builtins. (line 71)
+* $sgn math builtin, TIC54X: TIC54X-Builtins. (line 74)
+* $sin math builtin, TIC54X: TIC54X-Builtins. (line 77)
+* $sinh math builtin, TIC54X: TIC54X-Builtins. (line 80)
+* $sqrt math builtin, TIC54X: TIC54X-Builtins. (line 83)
+* $structacc subsym builtin, TIC54X: TIC54X-Macros. (line 57)
+* $structsz subsym builtin, TIC54X: TIC54X-Macros. (line 54)
+* $symcmp subsym builtin, TIC54X: TIC54X-Macros. (line 23)
+* $symlen subsym builtin, TIC54X: TIC54X-Macros. (line 20)
+* $t: ARM Mapping Symbols. (line 12)
+* $tan math builtin, TIC54X: TIC54X-Builtins. (line 86)
+* $tanh math builtin, TIC54X: TIC54X-Builtins. (line 89)
+* $trunc math builtin, TIC54X: TIC54X-Builtins. (line 92)
+* -+ option, VAX/VMS: VAX-Opts. (line 71)
+* --: Command Line. (line 10)
+* --32 option, i386: i386-Options. (line 8)
+* --32 option, x86-64: i386-Options. (line 8)
+* --64 option, i386: i386-Options. (line 8)
+* --64 option, x86-64: i386-Options. (line 8)
+* --absolute-literals: Xtensa Options. (line 21)
+* --allow-reg-prefix: SH Options. (line 9)
+* --alternate: alternate. (line 6)
+* --base-size-default-16: M68K-Opts. (line 65)
+* --base-size-default-32: M68K-Opts. (line 65)
+* --big: SH Options. (line 9)
+* --bitwise-or option, M680x0: M68K-Opts. (line 58)
+* --disp-size-default-16: M68K-Opts. (line 74)
+* --disp-size-default-32: M68K-Opts. (line 74)
+* --divide option, i386: i386-Options. (line 24)
+* --dsp: SH Options. (line 9)
+* --emulation=crisaout command line option, CRIS: CRIS-Opts. (line 9)
+* --emulation=criself command line option, CRIS: CRIS-Opts. (line 9)
+* --enforce-aligned-data: Sparc-Aligned-Data. (line 11)
+* --fatal-warnings: W. (line 16)
+* --fdpic: SH Options. (line 31)
+* --fix-v4bx command line option, ARM: ARM Options. (line 168)
+* --fixed-special-register-names command line option, MMIX: MMIX-Opts.
+ (line 8)
+* --force-long-branches: M68HC11-Opts. (line 69)
+* --generate-example: M68HC11-Opts. (line 86)
+* --globalize-symbols command line option, MMIX: MMIX-Opts. (line 12)
+* --gnu-syntax command line option, MMIX: MMIX-Opts. (line 16)
+* --hash-size=NUMBER: Overview. (line 369)
+* --linker-allocated-gregs command line option, MMIX: MMIX-Opts.
+ (line 67)
+* --listing-cont-lines: listing. (line 34)
+* --listing-lhs-width: listing. (line 16)
+* --listing-lhs-width2: listing. (line 21)
+* --listing-rhs-width: listing. (line 28)
+* --little: SH Options. (line 9)
+* --longcalls: Xtensa Options. (line 35)
+* --march=ARCHITECTURE command line option, CRIS: CRIS-Opts. (line 34)
+* --MD: MD. (line 6)
+* --mul-bug-abort command line option, CRIS: CRIS-Opts. (line 62)
+* --no-absolute-literals: Xtensa Options. (line 21)
+* --no-expand command line option, MMIX: MMIX-Opts. (line 31)
+* --no-longcalls: Xtensa Options. (line 35)
+* --no-merge-gregs command line option, MMIX: MMIX-Opts. (line 36)
+* --no-mul-bug-abort command line option, CRIS: CRIS-Opts. (line 62)
+* --no-predefined-syms command line option, MMIX: MMIX-Opts. (line 22)
+* --no-pushj-stubs command line option, MMIX: MMIX-Opts. (line 54)
+* --no-stubs command line option, MMIX: MMIX-Opts. (line 54)
+* --no-target-align: Xtensa Options. (line 28)
+* --no-text-section-literals: Xtensa Options. (line 7)
+* --no-transform: Xtensa Options. (line 44)
+* --no-underscore command line option, CRIS: CRIS-Opts. (line 15)
+* --no-warn: W. (line 11)
+* --pcrel: M68K-Opts. (line 86)
+* --pic command line option, CRIS: CRIS-Opts. (line 27)
+* --print-insn-syntax: M68HC11-Opts. (line 75)
+* --print-opcodes: M68HC11-Opts. (line 79)
+* --register-prefix-optional option, M680x0: M68K-Opts. (line 45)
+* --relax: SH Options. (line 9)
+* --relax command line option, MMIX: MMIX-Opts. (line 19)
+* --rename-section: Xtensa Options. (line 52)
+* --renesas: SH Options. (line 9)
+* --short-branches: M68HC11-Opts. (line 54)
+* --small: SH Options. (line 9)
+* --statistics: statistics. (line 6)
+* --strict-direct-mode: M68HC11-Opts. (line 44)
+* --target-align: Xtensa Options. (line 28)
+* --text-section-literals: Xtensa Options. (line 7)
+* --traditional-format: traditional-format. (line 6)
+* --transform: Xtensa Options. (line 44)
+* --underscore command line option, CRIS: CRIS-Opts. (line 15)
+* --warn: W. (line 19)
+* --x32 option, i386: i386-Options. (line 8)
+* --x32 option, x86-64: i386-Options. (line 8)
+* -1 option, VAX/VMS: VAX-Opts. (line 77)
+* -32addr command line option, Alpha: Alpha Options. (line 57)
+* -a: a. (line 6)
+* -A options, i960: Options-i960. (line 6)
+* -ac: a. (line 6)
+* -ad: a. (line 6)
+* -ag: a. (line 6)
+* -ah: a. (line 6)
+* -al: a. (line 6)
+* -an: a. (line 6)
+* -as: a. (line 6)
+* -Asparc: Sparc-Opts. (line 25)
+* -Asparcfmaf: Sparc-Opts. (line 25)
+* -Asparcima: Sparc-Opts. (line 25)
+* -Asparclet: Sparc-Opts. (line 25)
+* -Asparclite: Sparc-Opts. (line 25)
+* -Asparcvis: Sparc-Opts. (line 25)
+* -Asparcvis2: Sparc-Opts. (line 25)
+* -Asparcvis3: Sparc-Opts. (line 25)
+* -Asparcvis3r: Sparc-Opts. (line 25)
+* -Av6: Sparc-Opts. (line 25)
+* -Av7: Sparc-Opts. (line 25)
+* -Av8: Sparc-Opts. (line 25)
+* -Av9: Sparc-Opts. (line 25)
+* -Av9a: Sparc-Opts. (line 25)
+* -Av9b: Sparc-Opts. (line 25)
+* -Av9c: Sparc-Opts. (line 25)
+* -Av9d: Sparc-Opts. (line 25)
+* -Av9v: Sparc-Opts. (line 25)
+* -b option, i960: Options-i960. (line 22)
+* -big option, M32R: M32R-Opts. (line 35)
+* -D: D. (line 6)
+* -D, ignored on VAX: VAX-Opts. (line 11)
+* -d, VAX option: VAX-Opts. (line 16)
+* -eabi= command line option, ARM: ARM Options. (line 151)
+* -EB command line option, ARC: ARC Options. (line 31)
+* -EB command line option, ARM: ARM Options. (line 156)
+* -EB option (MIPS): MIPS Opts. (line 13)
+* -EB option, M32R: M32R-Opts. (line 39)
+* -EL command line option, ARC: ARC Options. (line 35)
+* -EL command line option, ARM: ARM Options. (line 160)
+* -EL option (MIPS): MIPS Opts. (line 13)
+* -EL option, M32R: M32R-Opts. (line 32)
+* -f: f. (line 6)
+* -F command line option, Alpha: Alpha Options. (line 57)
+* -g command line option, Alpha: Alpha Options. (line 47)
+* -G command line option, Alpha: Alpha Options. (line 53)
+* -G option (MIPS): MIPS Opts. (line 8)
+* -H option, VAX/VMS: VAX-Opts. (line 81)
+* -h option, VAX/VMS: VAX-Opts. (line 45)
+* -I PATH: I. (line 6)
+* -ignore-parallel-conflicts option, M32RX: M32R-Opts. (line 87)
+* -Ip option, M32RX: M32R-Opts. (line 97)
+* -J, ignored on VAX: VAX-Opts. (line 27)
+* -K: K. (line 6)
+* -k command line option, ARM: ARM Options. (line 164)
+* -KPIC option, M32R: M32R-Opts. (line 42)
+* -KPIC option, MIPS: MIPS Opts. (line 21)
+* -L: L. (line 6)
+* -l option, M680x0: M68K-Opts. (line 33)
+* -little option, M32R: M32R-Opts. (line 27)
+* -M: M. (line 6)
+* -m11/03: PDP-11-Options. (line 140)
+* -m11/04: PDP-11-Options. (line 143)
+* -m11/05: PDP-11-Options. (line 146)
+* -m11/10: PDP-11-Options. (line 146)
+* -m11/15: PDP-11-Options. (line 149)
+* -m11/20: PDP-11-Options. (line 149)
+* -m11/21: PDP-11-Options. (line 152)
+* -m11/23: PDP-11-Options. (line 155)
+* -m11/24: PDP-11-Options. (line 155)
+* -m11/34: PDP-11-Options. (line 158)
+* -m11/34a: PDP-11-Options. (line 161)
+* -m11/35: PDP-11-Options. (line 164)
+* -m11/40: PDP-11-Options. (line 164)
+* -m11/44: PDP-11-Options. (line 167)
+* -m11/45: PDP-11-Options. (line 170)
+* -m11/50: PDP-11-Options. (line 170)
+* -m11/53: PDP-11-Options. (line 173)
+* -m11/55: PDP-11-Options. (line 170)
+* -m11/60: PDP-11-Options. (line 176)
+* -m11/70: PDP-11-Options. (line 170)
+* -m11/73: PDP-11-Options. (line 173)
+* -m11/83: PDP-11-Options. (line 173)
+* -m11/84: PDP-11-Options. (line 173)
+* -m11/93: PDP-11-Options. (line 173)
+* -m11/94: PDP-11-Options. (line 173)
+* -m16c option, M16C: M32C-Opts. (line 12)
+* -m31 option, s390: s390 Options. (line 8)
+* -m32 option, TILE-Gx: TILE-Gx Options. (line 8)
+* -m32bit-doubles: RX-Opts. (line 9)
+* -m32c option, M32C: M32C-Opts. (line 9)
+* -m32r option, M32R: M32R-Opts. (line 21)
+* -m32rx option, M32R2: M32R-Opts. (line 17)
+* -m32rx option, M32RX: M32R-Opts. (line 9)
+* -m64 option, s390: s390 Options. (line 8)
+* -m64 option, TILE-Gx: TILE-Gx Options. (line 8)
+* -m64bit-doubles: RX-Opts. (line 15)
+* -m68000 and related options: M68K-Opts. (line 98)
+* -m68hc11: M68HC11-Opts. (line 9)
+* -m68hc12: M68HC11-Opts. (line 14)
+* -m68hcs12: M68HC11-Opts. (line 21)
+* -m[no-]68851 command line option, M680x0: M68K-Opts. (line 21)
+* -m[no-]68881 command line option, M680x0: M68K-Opts. (line 21)
+* -m[no-]div command line option, M680x0: M68K-Opts. (line 21)
+* -m[no-]emac command line option, M680x0: M68K-Opts. (line 21)
+* -m[no-]float command line option, M680x0: M68K-Opts. (line 21)
+* -m[no-]mac command line option, M680x0: M68K-Opts. (line 21)
+* -m[no-]usp command line option, M680x0: M68K-Opts. (line 21)
+* -mall: PDP-11-Options. (line 26)
+* -mall-enabled command line option, LM32: LM32 Options. (line 30)
+* -mall-extensions: PDP-11-Options. (line 26)
+* -mall-opcodes command line option, AVR: AVR Options. (line 96)
+* -mapcs-26 command line option, ARM: ARM Options. (line 123)
+* -mapcs-32 command line option, ARM: ARM Options. (line 123)
+* -mapcs-float command line option, ARM: ARM Options. (line 137)
+* -mapcs-reentrant command line option, ARM: ARM Options. (line 142)
+* -marc[5|6|7|8] command line option, ARC: ARC Options. (line 6)
+* -march= command line option, ARM: ARM Options. (line 62)
+* -march= command line option, M680x0: M68K-Opts. (line 8)
+* -march= command line option, TIC6X: TIC6X Options. (line 6)
+* -march= option, i386: i386-Options. (line 31)
+* -march= option, s390: s390 Options. (line 25)
+* -march= option, x86-64: i386-Options. (line 31)
+* -matpcs command line option, ARM: ARM Options. (line 129)
+* -mavxscalar= option, i386: i386-Options. (line 80)
+* -mavxscalar= option, x86-64: i386-Options. (line 80)
+* -mbarrel-shift-enabled command line option, LM32: LM32 Options.
+ (line 12)
+* -mbig-endian: RX-Opts. (line 20)
+* -mbreak-enabled command line option, LM32: LM32 Options. (line 27)
+* -mcis: PDP-11-Options. (line 32)
+* -mconstant-gp command line option, IA-64: IA-64 Options. (line 6)
+* -mCPU command line option, Alpha: Alpha Options. (line 6)
+* -mcpu option, cpu: TIC54X-Opts. (line 15)
+* -mcpu= command line option, ARM: ARM Options. (line 6)
+* -mcpu= command line option, Blackfin: Blackfin Options. (line 6)
+* -mcpu= command line option, M680x0: M68K-Opts. (line 14)
+* -mcsm: PDP-11-Options. (line 43)
+* -mdcache-enabled command line option, LM32: LM32 Options. (line 24)
+* -mdebug command line option, Alpha: Alpha Options. (line 25)
+* -mdivide-enabled command line option, LM32: LM32 Options. (line 9)
+* -mdsbt command line option, TIC6X: TIC6X Options. (line 13)
+* -me option, stderr redirect: TIC54X-Opts. (line 20)
+* -meis: PDP-11-Options. (line 46)
+* -merrors-to-file option, stderr redirect: TIC54X-Opts. (line 20)
+* -mesa option, s390: s390 Options. (line 17)
+* -mf option, far-mode: TIC54X-Opts. (line 8)
+* -mf11: PDP-11-Options. (line 122)
+* -mfar-mode option, far-mode: TIC54X-Opts. (line 8)
+* -mfdpic command line option, Blackfin: Blackfin Options. (line 19)
+* -mfis: PDP-11-Options. (line 51)
+* -mfloat-abi= command line option, ARM: ARM Options. (line 146)
+* -mfp-11: PDP-11-Options. (line 56)
+* -mfpp: PDP-11-Options. (line 56)
+* -mfpu: PDP-11-Options. (line 56)
+* -mfpu= command line option, ARM: ARM Options. (line 77)
+* -micache-enabled command line option, LM32: LM32 Options. (line 21)
+* -mimplicit-it command line option, ARM: ARM Options. (line 107)
+* -mip2022 option, IP2K: IP2K-Opts. (line 14)
+* -mip2022ext option, IP2022: IP2K-Opts. (line 9)
+* -mj11: PDP-11-Options. (line 126)
+* -mka11: PDP-11-Options. (line 92)
+* -mkb11: PDP-11-Options. (line 95)
+* -mkd11a: PDP-11-Options. (line 98)
+* -mkd11b: PDP-11-Options. (line 101)
+* -mkd11d: PDP-11-Options. (line 104)
+* -mkd11e: PDP-11-Options. (line 107)
+* -mkd11f: PDP-11-Options. (line 110)
+* -mkd11h: PDP-11-Options. (line 110)
+* -mkd11k: PDP-11-Options. (line 114)
+* -mkd11q: PDP-11-Options. (line 110)
+* -mkd11z: PDP-11-Options. (line 118)
+* -mkev11: PDP-11-Options. (line 51)
+* -mlimited-eis: PDP-11-Options. (line 64)
+* -mlittle-endian: RX-Opts. (line 26)
+* -mlong: M68HC11-Opts. (line 32)
+* -mlong-double: M68HC11-Opts. (line 40)
+* -mmcu= command line option, AVR: AVR Options. (line 6)
+* -mmfpt: PDP-11-Options. (line 70)
+* -mmicrocode: PDP-11-Options. (line 83)
+* -mmnemonic= option, i386: i386-Options. (line 88)
+* -mmnemonic= option, x86-64: i386-Options. (line 88)
+* -mmultiply-enabled command line option, LM32: LM32 Options. (line 6)
+* -mmutiproc: PDP-11-Options. (line 73)
+* -mmxps: PDP-11-Options. (line 77)
+* -mnaked-reg option, i386: i386-Options. (line 100)
+* -mnaked-reg option, x86-64: i386-Options. (line 100)
+* -mno-cis: PDP-11-Options. (line 32)
+* -mno-csm: PDP-11-Options. (line 43)
+* -mno-dsbt command line option, TIC6X: TIC6X Options. (line 13)
+* -mno-eis: PDP-11-Options. (line 46)
+* -mno-extensions: PDP-11-Options. (line 29)
+* -mno-fdpic command line option, Blackfin: Blackfin Options. (line 22)
+* -mno-fis: PDP-11-Options. (line 51)
+* -mno-fp-11: PDP-11-Options. (line 56)
+* -mno-fpp: PDP-11-Options. (line 56)
+* -mno-fpu: PDP-11-Options. (line 56)
+* -mno-kev11: PDP-11-Options. (line 51)
+* -mno-limited-eis: PDP-11-Options. (line 64)
+* -mno-mfpt: PDP-11-Options. (line 70)
+* -mno-microcode: PDP-11-Options. (line 83)
+* -mno-mutiproc: PDP-11-Options. (line 73)
+* -mno-mxps: PDP-11-Options. (line 77)
+* -mno-pic: PDP-11-Options. (line 11)
+* -mno-pic command line option, TIC6X: TIC6X Options. (line 36)
+* -mno-regnames option, s390: s390 Options. (line 35)
+* -mno-skip-bug command line option, AVR: AVR Options. (line 99)
+* -mno-spl: PDP-11-Options. (line 80)
+* -mno-sym32: MIPS Opts. (line 221)
+* -mno-wrap command line option, AVR: AVR Options. (line 102)
+* -mnopic command line option, Blackfin: Blackfin Options. (line 22)
+* -mpic: PDP-11-Options. (line 11)
+* -mpic command line option, TIC6X: TIC6X Options. (line 36)
+* -mpid= command line option, TIC6X: TIC6X Options. (line 23)
+* -mregnames option, s390: s390 Options. (line 32)
+* -mrelax command line option, V850: V850 Options. (line 63)
+* -mshort: M68HC11-Opts. (line 27)
+* -mshort-double: M68HC11-Opts. (line 36)
+* -msign-extend-enabled command line option, LM32: LM32 Options.
+ (line 15)
+* -msmall-data-limit: RX-Opts. (line 42)
+* -mspl: PDP-11-Options. (line 80)
+* -msse-check= option, i386: i386-Options. (line 70)
+* -msse-check= option, x86-64: i386-Options. (line 70)
+* -msse2avx option, i386: i386-Options. (line 66)
+* -msse2avx option, x86-64: i386-Options. (line 66)
+* -msym32: MIPS Opts. (line 221)
+* -msyntax= option, i386: i386-Options. (line 94)
+* -msyntax= option, x86-64: i386-Options. (line 94)
+* -mt11: PDP-11-Options. (line 130)
+* -mthumb command line option, ARM: ARM Options. (line 98)
+* -mthumb-interwork command line option, ARM: ARM Options. (line 103)
+* -mtune= option, i386: i386-Options. (line 58)
+* -mtune= option, x86-64: i386-Options. (line 58)
+* -muse-conventional-section-names: RX-Opts. (line 33)
+* -muse-renesas-section-names: RX-Opts. (line 37)
+* -muser-enabled command line option, LM32: LM32 Options. (line 18)
+* -mv850 command line option, V850: V850 Options. (line 23)
+* -mv850any command line option, V850: V850 Options. (line 41)
+* -mv850e command line option, V850: V850 Options. (line 29)
+* -mv850e1 command line option, V850: V850 Options. (line 35)
+* -mv850e2 command line option, V850: V850 Options. (line 51)
+* -mv850e2v3 command line option, V850: V850 Options. (line 57)
+* -mvxworks-pic option, MIPS: MIPS Opts. (line 26)
+* -mwarn-areg-zero option, s390: s390 Options. (line 38)
+* -mwarn-deprecated command line option, ARM: ARM Options. (line 172)
+* -mzarch option, s390: s390 Options. (line 17)
+* -N command line option, CRIS: CRIS-Opts. (line 58)
+* -nIp option, M32RX: M32R-Opts. (line 101)
+* -no-bitinst, M32R2: M32R-Opts. (line 54)
+* -no-ignore-parallel-conflicts option, M32RX: M32R-Opts. (line 93)
+* -no-mdebug command line option, Alpha: Alpha Options. (line 25)
+* -no-parallel option, M32RX: M32R-Opts. (line 51)
+* -no-relax option, i960: Options-i960. (line 66)
+* -no-warn-explicit-parallel-conflicts option, M32RX: M32R-Opts.
+ (line 79)
+* -no-warn-unmatched-high option, M32R: M32R-Opts. (line 111)
+* -nocpp ignored (MIPS): MIPS Opts. (line 224)
+* -noreplace command line option, Alpha: Alpha Options. (line 40)
+* -o: o. (line 6)
+* -O option, M32RX: M32R-Opts. (line 59)
+* -parallel option, M32RX: M32R-Opts. (line 46)
+* -R: R. (line 6)
+* -r800 command line option, Z80: Z80 Options. (line 41)
+* -relax command line option, Alpha: Alpha Options. (line 32)
+* -replace command line option, Alpha: Alpha Options. (line 40)
+* -S, ignored on VAX: VAX-Opts. (line 11)
+* -T, ignored on VAX: VAX-Opts. (line 11)
+* -t, ignored on VAX: VAX-Opts. (line 36)
+* -v: v. (line 6)
+* -V, redundant on VAX: VAX-Opts. (line 22)
+* -version: v. (line 6)
+* -W: W. (line 11)
+* -warn-explicit-parallel-conflicts option, M32RX: M32R-Opts. (line 65)
+* -warn-unmatched-high option, M32R: M32R-Opts. (line 105)
+* -Wnp option, M32RX: M32R-Opts. (line 83)
+* -Wnuh option, M32RX: M32R-Opts. (line 117)
+* -Wp option, M32RX: M32R-Opts. (line 75)
+* -wsigned_overflow command line option, V850: V850 Options. (line 9)
+* -Wuh option, M32RX: M32R-Opts. (line 114)
+* -wunsigned_overflow command line option, V850: V850 Options.
+ (line 16)
+* -x command line option, MMIX: MMIX-Opts. (line 44)
+* -z80 command line option, Z80: Z80 Options. (line 8)
+* -z8001 command line option, Z8000: Z8000 Options. (line 6)
+* -z8002 command line option, Z8000: Z8000 Options. (line 9)
+* . (symbol): Dot. (line 6)
+* .2byte directive, ARM: ARM Directives. (line 6)
+* .4byte directive, ARM: ARM Directives. (line 6)
+* .8byte directive, ARM: ARM Directives. (line 6)
+* .align directive, ARM: ARM Directives. (line 11)
+* .align directive, TILE-Gx: TILE-Gx Directives. (line 6)
+* .align directive, TILEPro: TILEPro Directives. (line 6)
+* .allow_suspicious_bundles directive, TILE-Gx: TILE-Gx Directives.
+ (line 10)
+* .allow_suspicious_bundles directive, TILEPro: TILEPro Directives.
+ (line 10)
+* .arch directive, ARM: ARM Directives. (line 18)
+* .arch directive, TIC6X: TIC6X Directives. (line 10)
+* .arch_extension directive, ARM: ARM Directives. (line 25)
+* .arm directive, ARM: ARM Directives. (line 34)
+* .big directive, M32RX: M32R-Directives. (line 88)
+* .bss directive, ARM: ARM Directives. (line 42)
+* .c6xabi_attribute directive, TIC6X: TIC6X Directives. (line 20)
+* .cantunwind directive, ARM: ARM Directives. (line 45)
+* .cantunwind directive, TIC6X: TIC6X Directives. (line 13)
+* .code directive, ARM: ARM Directives. (line 49)
+* .cpu directive, ARM: ARM Directives. (line 53)
+* .dn and .qn directives, ARM: ARM Directives. (line 60)
+* .eabi_attribute directive, ARM: ARM Directives. (line 83)
+* .ehtype directive, TIC6X: TIC6X Directives. (line 31)
+* .endp directive, TIC6X: TIC6X Directives. (line 34)
+* .even directive, ARM: ARM Directives. (line 111)
+* .extend directive, ARM: ARM Directives. (line 114)
+* .fnend directive, ARM: ARM Directives. (line 120)
+* .fnstart directive, ARM: ARM Directives. (line 129)
+* .force_thumb directive, ARM: ARM Directives. (line 132)
+* .fpu directive, ARM: ARM Directives. (line 136)
+* .global: MIPS insn. (line 12)
+* .handlerdata directive, ARM: ARM Directives. (line 140)
+* .handlerdata directive, TIC6X: TIC6X Directives. (line 39)
+* .insn: MIPS insn. (line 6)
+* .insn directive, s390: s390 Directives. (line 11)
+* .inst directive, ARM: ARM Directives. (line 149)
+* .ldouble directive, ARM: ARM Directives. (line 114)
+* .little directive, M32RX: M32R-Directives. (line 82)
+* .long directive, s390: s390 Directives. (line 16)
+* .ltorg directive, ARM: ARM Directives. (line 159)
+* .ltorg directive, s390: s390 Directives. (line 88)
+* .m32r directive, M32R: M32R-Directives. (line 66)
+* .m32r2 directive, M32R2: M32R-Directives. (line 77)
+* .m32rx directive, M32RX: M32R-Directives. (line 72)
+* .machine directive, s390: s390 Directives. (line 93)
+* .movsp directive, ARM: ARM Directives. (line 173)
+* .no_pointers directive, XStormy16: XStormy16 Directives.
+ (line 14)
+* .nocmp directive, TIC6X: TIC6X Directives. (line 48)
+* .o: Object. (line 6)
+* .object_arch directive, ARM: ARM Directives. (line 178)
+* .packed directive, ARM: ARM Directives. (line 184)
+* .pad directive, ARM: ARM Directives. (line 37)
+* .param on HPPA: HPPA Directives. (line 19)
+* .personality directive, ARM: ARM Directives. (line 194)
+* .personality directive, TIC6X: TIC6X Directives. (line 56)
+* .personalityindex directive, ARM: ARM Directives. (line 197)
+* .personalityindex directive, TIC6X: TIC6X Directives. (line 52)
+* .pool directive, ARM: ARM Directives. (line 201)
+* .quad directive, s390: s390 Directives. (line 16)
+* .req directive, ARM: ARM Directives. (line 204)
+* .require_canonical_reg_names directive, TILE-Gx: TILE-Gx Directives.
+ (line 19)
+* .require_canonical_reg_names directive, TILEPro: TILEPro Directives.
+ (line 19)
+* .save directive, ARM: ARM Directives. (line 209)
+* .scomm directive, TIC6X: TIC6X Directives. (line 59)
+* .secrel32 directive, ARM: ARM Directives. (line 247)
+* .set arch=CPU: MIPS ISA. (line 18)
+* .set autoextend: MIPS autoextend. (line 6)
+* .set doublefloat: MIPS floating-point. (line 12)
+* .set dsp: MIPS ASE instruction generation overrides.
+ (line 21)
+* .set dspr2: MIPS ASE instruction generation overrides.
+ (line 26)
+* .set hardfloat: MIPS floating-point. (line 6)
+* .set mcu: MIPS ASE instruction generation overrides.
+ (line 37)
+* .set mdmx: MIPS ASE instruction generation overrides.
+ (line 16)
+* .set mips3d: MIPS ASE instruction generation overrides.
+ (line 6)
+* .set mipsN: MIPS ISA. (line 6)
+* .set mt: MIPS ASE instruction generation overrides.
+ (line 32)
+* .set noautoextend: MIPS autoextend. (line 6)
+* .set nodsp: MIPS ASE instruction generation overrides.
+ (line 21)
+* .set nodspr2: MIPS ASE instruction generation overrides.
+ (line 26)
+* .set nomcu: MIPS ASE instruction generation overrides.
+ (line 37)
+* .set nomdmx: MIPS ASE instruction generation overrides.
+ (line 16)
+* .set nomips3d: MIPS ASE instruction generation overrides.
+ (line 6)
+* .set nomt: MIPS ASE instruction generation overrides.
+ (line 32)
+* .set nosmartmips: MIPS ASE instruction generation overrides.
+ (line 11)
+* .set nosym32: MIPS symbol sizes. (line 6)
+* .set pop: MIPS option stack. (line 6)
+* .set push: MIPS option stack. (line 6)
+* .set singlefloat: MIPS floating-point. (line 12)
+* .set smartmips: MIPS ASE instruction generation overrides.
+ (line 11)
+* .set softfloat: MIPS floating-point. (line 6)
+* .set sym32: MIPS symbol sizes. (line 6)
+* .setfp directive, ARM: ARM Directives. (line 233)
+* .short directive, s390: s390 Directives. (line 16)
+* .syntax directive, ARM: ARM Directives. (line 252)
+* .thumb directive, ARM: ARM Directives. (line 256)
+* .thumb_func directive, ARM: ARM Directives. (line 259)
+* .thumb_set directive, ARM: ARM Directives. (line 270)
+* .tlsdescseq directive, ARM: ARM Directives. (line 277)
+* .unreq directive, ARM: ARM Directives. (line 282)
+* .unwind_raw directive, ARM: ARM Directives. (line 293)
+* .v850 directive, V850: V850 Directives. (line 14)
+* .v850e directive, V850: V850 Directives. (line 20)
+* .v850e1 directive, V850: V850 Directives. (line 26)
+* .v850e2 directive, V850: V850 Directives. (line 32)
+* .v850e2v3 directive, V850: V850 Directives. (line 38)
+* .vsave directive, ARM: ARM Directives. (line 300)
+* .z8001: Z8000 Directives. (line 11)
+* .z8002: Z8000 Directives. (line 15)
+* 16-bit code, i386: i386-16bit. (line 6)
+* 16bit_pointers directive, XStormy16: XStormy16 Directives.
+ (line 6)
+* 2byte directive, ARC: ARC Directives. (line 9)
+* 32bit_pointers directive, XStormy16: XStormy16 Directives.
+ (line 10)
+* 3byte directive, ARC: ARC Directives. (line 12)
+* 3DNow!, i386: i386-SIMD. (line 6)
+* 3DNow!, x86-64: i386-SIMD. (line 6)
+* 430 support: MSP430-Dependent. (line 6)
+* 4byte directive, ARC: ARC Directives. (line 15)
+* : (label): Statements. (line 31)
+* @hi pseudo-op, XStormy16: XStormy16 Opcodes. (line 21)
+* @lo pseudo-op, XStormy16: XStormy16 Opcodes. (line 10)
+* @word modifier, D10V: D10V-Word. (line 6)
+* \" (doublequote character): Strings. (line 43)
+* \\ (\ character): Strings. (line 40)
+* \b (backspace character): Strings. (line 15)
+* \DDD (octal character code): Strings. (line 30)
+* \f (formfeed character): Strings. (line 18)
+* \n (newline character): Strings. (line 21)
+* \r (carriage return character): Strings. (line 24)
+* \t (tab): Strings. (line 27)
+* \XD... (hex character code): Strings. (line 36)
+* _ opcode prefix: Xtensa Opcodes. (line 9)
+* a.out: Object. (line 6)
+* a.out symbol attributes: a.out Symbols. (line 6)
+* A_DIR environment variable, TIC54X: TIC54X-Env. (line 6)
+* ABI options, SH64: SH64 Options. (line 29)
+* ABORT directive: ABORT (COFF). (line 6)
+* abort directive: Abort. (line 6)
+* absolute section: Ld Sections. (line 29)
+* absolute-literals directive: Absolute Literals Directive.
+ (line 6)
+* ADDI instructions, relaxation: Xtensa Immediate Relaxation.
+ (line 43)
+* addition, permitted arguments: Infix Ops. (line 44)
+* addresses: Expressions. (line 6)
+* addresses, format of: Secs Background. (line 68)
+* addressing modes, D10V: D10V-Addressing. (line 6)
+* addressing modes, D30V: D30V-Addressing. (line 6)
+* addressing modes, H8/300: H8/300-Addressing. (line 6)
+* addressing modes, M680x0: M68K-Syntax. (line 21)
+* addressing modes, M68HC11: M68HC11-Syntax. (line 30)
+* addressing modes, SH: SH-Addressing. (line 6)
+* addressing modes, SH64: SH64-Addressing. (line 6)
+* addressing modes, Z8000: Z8000-Addressing. (line 6)
+* ADR reg,<label> pseudo op, ARM: ARM Opcodes. (line 25)
+* ADRL reg,<label> pseudo op, ARM: ARM Opcodes. (line 35)
+* advancing location counter: Org. (line 6)
+* align directive: Align. (line 6)
+* align directive, SPARC: Sparc-Directives. (line 9)
+* align directive, TIC54X: TIC54X-Directives. (line 6)
+* alignment for NEON instructions: ARM-Neon-Alignment. (line 6)
+* alignment of branch targets: Xtensa Automatic Alignment.
+ (line 6)
+* alignment of LOOP instructions: Xtensa Automatic Alignment.
+ (line 6)
+* Alpha floating point (IEEE): Alpha Floating Point.
+ (line 6)
+* Alpha line comment character: Alpha-Chars. (line 6)
+* Alpha line separator: Alpha-Chars. (line 11)
+* Alpha notes: Alpha Notes. (line 6)
+* Alpha options: Alpha Options. (line 6)
+* Alpha registers: Alpha-Regs. (line 6)
+* Alpha relocations: Alpha-Relocs. (line 6)
+* Alpha support: Alpha-Dependent. (line 6)
+* Alpha Syntax: Alpha Options. (line 61)
+* Alpha-only directives: Alpha Directives. (line 10)
+* altered difference tables: Word. (line 12)
+* alternate syntax for the 680x0: M68K-Moto-Syntax. (line 6)
+* ARC floating point (IEEE): ARC Floating Point. (line 6)
+* ARC line comment character: ARC-Chars. (line 6)
+* ARC line separator: ARC-Chars. (line 12)
+* ARC machine directives: ARC Directives. (line 6)
+* ARC opcodes: ARC Opcodes. (line 6)
+* ARC options (none): ARC Options. (line 6)
+* ARC register names: ARC-Regs. (line 6)
+* ARC support: ARC-Dependent. (line 6)
+* arc5 arc5, ARC: ARC Options. (line 10)
+* arc6 arc6, ARC: ARC Options. (line 13)
+* arc7 arc7, ARC: ARC Options. (line 21)
+* arc8 arc8, ARC: ARC Options. (line 24)
+* arch directive, i386: i386-Arch. (line 6)
+* arch directive, M680x0: M68K-Directives. (line 22)
+* arch directive, x86-64: i386-Arch. (line 6)
+* architecture options, i960: Options-i960. (line 6)
+* architecture options, IP2022: IP2K-Opts. (line 9)
+* architecture options, IP2K: IP2K-Opts. (line 14)
+* architecture options, M16C: M32C-Opts. (line 12)
+* architecture options, M32C: M32C-Opts. (line 9)
+* architecture options, M32R: M32R-Opts. (line 21)
+* architecture options, M32R2: M32R-Opts. (line 17)
+* architecture options, M32RX: M32R-Opts. (line 9)
+* architecture options, M680x0: M68K-Opts. (line 98)
+* Architecture variant option, CRIS: CRIS-Opts. (line 34)
+* architectures, PowerPC: PowerPC-Opts. (line 6)
+* architectures, SCORE: SCORE-Opts. (line 6)
+* architectures, SPARC: Sparc-Opts. (line 6)
+* arguments for addition: Infix Ops. (line 44)
+* arguments for subtraction: Infix Ops. (line 49)
+* arguments in expressions: Arguments. (line 6)
+* arithmetic functions: Operators. (line 6)
+* arithmetic operands: Arguments. (line 6)
+* ARM data relocations: ARM-Relocations. (line 6)
+* ARM floating point (IEEE): ARM Floating Point. (line 6)
+* ARM identifiers: ARM-Chars. (line 19)
+* ARM immediate character: ARM-Chars. (line 17)
+* ARM line comment character: ARM-Chars. (line 6)
+* ARM line separator: ARM-Chars. (line 14)
+* ARM machine directives: ARM Directives. (line 6)
+* ARM opcodes: ARM Opcodes. (line 6)
+* ARM options (none): ARM Options. (line 6)
+* ARM register names: ARM-Regs. (line 6)
+* ARM support: ARM-Dependent. (line 6)
+* ascii directive: Ascii. (line 6)
+* asciz directive: Asciz. (line 6)
+* asg directive, TIC54X: TIC54X-Directives. (line 20)
+* assembler bugs, reporting: Bug Reporting. (line 6)
+* assembler crash: Bug Criteria. (line 9)
+* assembler directive .3byte, RX: RX-Directives. (line 9)
+* assembler directive .arch, CRIS: CRIS-Pseudos. (line 45)
+* assembler directive .dword, CRIS: CRIS-Pseudos. (line 12)
+* assembler directive .far, M68HC11: M68HC11-Directives. (line 20)
+* assembler directive .interrupt, M68HC11: M68HC11-Directives.
+ (line 26)
+* assembler directive .mode, M68HC11: M68HC11-Directives. (line 16)
+* assembler directive .relax, M68HC11: M68HC11-Directives. (line 10)
+* assembler directive .syntax, CRIS: CRIS-Pseudos. (line 17)
+* assembler directive .xrefb, M68HC11: M68HC11-Directives. (line 31)
+* assembler directive BSPEC, MMIX: MMIX-Pseudos. (line 131)
+* assembler directive BYTE, MMIX: MMIX-Pseudos. (line 97)
+* assembler directive ESPEC, MMIX: MMIX-Pseudos. (line 131)
+* assembler directive GREG, MMIX: MMIX-Pseudos. (line 50)
+* assembler directive IS, MMIX: MMIX-Pseudos. (line 42)
+* assembler directive LOC, MMIX: MMIX-Pseudos. (line 7)
+* assembler directive LOCAL, MMIX: MMIX-Pseudos. (line 28)
+* assembler directive OCTA, MMIX: MMIX-Pseudos. (line 108)
+* assembler directive PREFIX, MMIX: MMIX-Pseudos. (line 120)
+* assembler directive TETRA, MMIX: MMIX-Pseudos. (line 108)
+* assembler directive WYDE, MMIX: MMIX-Pseudos. (line 108)
+* assembler directives, CRIS: CRIS-Pseudos. (line 6)
+* assembler directives, M68HC11: M68HC11-Directives. (line 6)
+* assembler directives, M68HC12: M68HC11-Directives. (line 6)
+* assembler directives, MMIX: MMIX-Pseudos. (line 6)
+* assembler directives, RX: RX-Directives. (line 6)
+* assembler internal logic error: As Sections. (line 13)
+* assembler version: v. (line 6)
+* assembler, and linker: Secs Background. (line 10)
+* assembly listings, enabling: a. (line 6)
+* assigning values to symbols <1>: Setting Symbols. (line 6)
+* assigning values to symbols: Equ. (line 6)
+* atmp directive, i860: Directives-i860. (line 16)
+* att_syntax pseudo op, i386: i386-Variations. (line 6)
+* att_syntax pseudo op, x86-64: i386-Variations. (line 6)
+* attributes, symbol: Symbol Attributes. (line 6)
+* auxiliary attributes, COFF symbols: COFF Symbols. (line 19)
+* auxiliary symbol information, COFF: Dim. (line 6)
+* AVR line comment character: AVR-Chars. (line 6)
+* AVR line separator: AVR-Chars. (line 14)
+* AVR modifiers: AVR-Modifiers. (line 6)
+* AVR opcode summary: AVR Opcodes. (line 6)
+* AVR options (none): AVR Options. (line 6)
+* AVR register names: AVR-Regs. (line 6)
+* AVR support: AVR-Dependent. (line 6)
+* backslash (\\): Strings. (line 40)
+* backspace (\b): Strings. (line 15)
+* balign directive: Balign. (line 6)
+* balignl directive: Balign. (line 27)
+* balignw directive: Balign. (line 27)
+* bes directive, TIC54X: TIC54X-Directives. (line 196)
+* big endian output, MIPS: Overview. (line 693)
+* big endian output, PJ: Overview. (line 600)
+* big-endian output, MIPS: MIPS Opts. (line 13)
+* big-endian output, TIC6X: TIC6X Options. (line 46)
+* bignums: Bignums. (line 6)
+* binary constants, TIC54X: TIC54X-Constants. (line 8)
+* binary files, including: Incbin. (line 6)
+* binary integers: Integers. (line 6)
+* bit names, IA-64: IA-64-Bits. (line 6)
+* bitfields, not supported on VAX: VAX-no. (line 6)
+* Blackfin directives: Blackfin Directives. (line 6)
+* Blackfin options (none): Blackfin Options. (line 6)
+* Blackfin support: Blackfin-Dependent. (line 6)
+* Blackfin syntax: Blackfin Syntax. (line 6)
+* block: Z8000 Directives. (line 55)
+* BMI, i386: i386-BMI. (line 6)
+* BMI, x86-64: i386-BMI. (line 6)
+* branch improvement, M680x0: M68K-Branch. (line 6)
+* branch improvement, M68HC11: M68HC11-Branch. (line 6)
+* branch improvement, VAX: VAX-branch. (line 6)
+* branch instructions, relaxation: Xtensa Branch Relaxation.
+ (line 6)
+* branch recording, i960: Options-i960. (line 22)
+* branch statistics table, i960: Options-i960. (line 40)
+* branch target alignment: Xtensa Automatic Alignment.
+ (line 6)
+* break directive, TIC54X: TIC54X-Directives. (line 143)
+* BSD syntax: PDP-11-Syntax. (line 6)
+* bss directive, i960: Directives-i960. (line 6)
+* bss directive, TIC54X: TIC54X-Directives. (line 29)
+* bss section <1>: Ld Sections. (line 20)
+* bss section: bss. (line 6)
+* bug criteria: Bug Criteria. (line 6)
+* bug reports: Bug Reporting. (line 6)
+* bugs in assembler: Reporting Bugs. (line 6)
+* Built-in symbols, CRIS: CRIS-Symbols. (line 6)
+* builtin math functions, TIC54X: TIC54X-Builtins. (line 6)
+* builtin subsym functions, TIC54X: TIC54X-Macros. (line 16)
+* bus lock prefixes, i386: i386-Prefixes. (line 36)
+* bval: Z8000 Directives. (line 30)
+* byte directive: Byte. (line 6)
+* byte directive, TIC54X: TIC54X-Directives. (line 36)
+* C54XDSP_DIR environment variable, TIC54X: TIC54X-Env. (line 6)
+* c_mode directive, TIC54X: TIC54X-Directives. (line 51)
+* call instructions, i386: i386-Mnemonics. (line 56)
+* call instructions, relaxation: Xtensa Call Relaxation.
+ (line 6)
+* call instructions, x86-64: i386-Mnemonics. (line 56)
+* callj, i960 pseudo-opcode: callj-i960. (line 6)
+* carriage return (\r): Strings. (line 24)
+* case sensitivity, Z80: Z80-Case. (line 6)
+* cfi_endproc directive: CFI directives. (line 26)
+* cfi_sections directive: CFI directives. (line 6)
+* cfi_startproc directive: CFI directives. (line 16)
+* char directive, TIC54X: TIC54X-Directives. (line 36)
+* character constant, Z80: Z80-Chars. (line 20)
+* character constants: Characters. (line 6)
+* character escape codes: Strings. (line 15)
+* character escapes, Z80: Z80-Chars. (line 18)
+* character, single: Chars. (line 6)
+* characters used in symbols: Symbol Intro. (line 6)
+* clink directive, TIC54X: TIC54X-Directives. (line 45)
+* code16 directive, i386: i386-16bit. (line 6)
+* code16gcc directive, i386: i386-16bit. (line 6)
+* code32 directive, i386: i386-16bit. (line 6)
+* code64 directive, i386: i386-16bit. (line 6)
+* code64 directive, x86-64: i386-16bit. (line 6)
+* COFF auxiliary symbol information: Dim. (line 6)
+* COFF structure debugging: Tag. (line 6)
+* COFF symbol attributes: COFF Symbols. (line 6)
+* COFF symbol descriptor: Desc. (line 6)
+* COFF symbol storage class: Scl. (line 6)
+* COFF symbol type: Type. (line 11)
+* COFF symbols, debugging: Def. (line 6)
+* COFF value attribute: Val. (line 6)
+* COMDAT: Linkonce. (line 6)
+* comm directive: Comm. (line 6)
+* command line conventions: Command Line. (line 6)
+* command line options, V850: V850 Options. (line 9)
+* command-line options ignored, VAX: VAX-Opts. (line 6)
+* comment character, XStormy16: XStormy16-Chars. (line 11)
+* comments: Comments. (line 6)
+* comments, M680x0: M68K-Chars. (line 6)
+* comments, removed by preprocessor: Preprocessing. (line 11)
+* common directive, SPARC: Sparc-Directives. (line 12)
+* common sections: Linkonce. (line 6)
+* common variable storage: bss. (line 6)
+* compare and jump expansions, i960: Compare-and-branch-i960.
+ (line 13)
+* compare/branch instructions, i960: Compare-and-branch-i960.
+ (line 6)
+* comparison expressions: Infix Ops. (line 55)
+* conditional assembly: If. (line 6)
+* constant, single character: Chars. (line 6)
+* constants: Constants. (line 6)
+* constants, bignum: Bignums. (line 6)
+* constants, character: Characters. (line 6)
+* constants, converted by preprocessor: Preprocessing. (line 14)
+* constants, floating point: Flonums. (line 6)
+* constants, integer: Integers. (line 6)
+* constants, number: Numbers. (line 6)
+* constants, Sparc: Sparc-Constants. (line 6)
+* constants, string: Strings. (line 6)
+* constants, TIC54X: TIC54X-Constants. (line 6)
+* conversion instructions, i386: i386-Mnemonics. (line 37)
+* conversion instructions, x86-64: i386-Mnemonics. (line 37)
+* coprocessor wait, i386: i386-Prefixes. (line 40)
+* copy directive, TIC54X: TIC54X-Directives. (line 54)
+* cpu directive, M680x0: M68K-Directives. (line 30)
+* CR16 line comment character: CR16-Chars. (line 6)
+* CR16 line separator: CR16-Chars. (line 13)
+* CR16 Operand Qualifiers: CR16 Operand Qualifiers.
+ (line 6)
+* CR16 support: CR16-Dependent. (line 6)
+* crash of assembler: Bug Criteria. (line 9)
+* CRIS --emulation=crisaout command line option: CRIS-Opts. (line 9)
+* CRIS --emulation=criself command line option: CRIS-Opts. (line 9)
+* CRIS --march=ARCHITECTURE command line option: CRIS-Opts. (line 34)
+* CRIS --mul-bug-abort command line option: CRIS-Opts. (line 62)
+* CRIS --no-mul-bug-abort command line option: CRIS-Opts. (line 62)
+* CRIS --no-underscore command line option: CRIS-Opts. (line 15)
+* CRIS --pic command line option: CRIS-Opts. (line 27)
+* CRIS --underscore command line option: CRIS-Opts. (line 15)
+* CRIS -N command line option: CRIS-Opts. (line 58)
+* CRIS architecture variant option: CRIS-Opts. (line 34)
+* CRIS assembler directive .arch: CRIS-Pseudos. (line 45)
+* CRIS assembler directive .dword: CRIS-Pseudos. (line 12)
+* CRIS assembler directive .syntax: CRIS-Pseudos. (line 17)
+* CRIS assembler directives: CRIS-Pseudos. (line 6)
+* CRIS built-in symbols: CRIS-Symbols. (line 6)
+* CRIS instruction expansion: CRIS-Expand. (line 6)
+* CRIS line comment characters: CRIS-Chars. (line 6)
+* CRIS options: CRIS-Opts. (line 6)
+* CRIS position-independent code: CRIS-Opts. (line 27)
+* CRIS pseudo-op .arch: CRIS-Pseudos. (line 45)
+* CRIS pseudo-op .dword: CRIS-Pseudos. (line 12)
+* CRIS pseudo-op .syntax: CRIS-Pseudos. (line 17)
+* CRIS pseudo-ops: CRIS-Pseudos. (line 6)
+* CRIS register names: CRIS-Regs. (line 6)
+* CRIS support: CRIS-Dependent. (line 6)
+* CRIS symbols in position-independent code: CRIS-Pic. (line 6)
+* ctbp register, V850: V850-Regs. (line 131)
+* ctoff pseudo-op, V850: V850 Opcodes. (line 111)
+* ctpc register, V850: V850-Regs. (line 119)
+* ctpsw register, V850: V850-Regs. (line 122)
+* current address: Dot. (line 6)
+* current address, advancing: Org. (line 6)
+* D10V @word modifier: D10V-Word. (line 6)
+* D10V addressing modes: D10V-Addressing. (line 6)
+* D10V floating point: D10V-Float. (line 6)
+* D10V line comment character: D10V-Chars. (line 6)
+* D10V opcode summary: D10V-Opcodes. (line 6)
+* D10V optimization: Overview. (line 469)
+* D10V options: D10V-Opts. (line 6)
+* D10V registers: D10V-Regs. (line 6)
+* D10V size modifiers: D10V-Size. (line 6)
+* D10V sub-instruction ordering: D10V-Chars. (line 14)
+* D10V sub-instructions: D10V-Subs. (line 6)
+* D10V support: D10V-Dependent. (line 6)
+* D10V syntax: D10V-Syntax. (line 6)
+* D30V addressing modes: D30V-Addressing. (line 6)
+* D30V floating point: D30V-Float. (line 6)
+* D30V Guarded Execution: D30V-Guarded. (line 6)
+* D30V line comment character: D30V-Chars. (line 6)
+* D30V nops: Overview. (line 477)
+* D30V nops after 32-bit multiply: Overview. (line 480)
+* D30V opcode summary: D30V-Opcodes. (line 6)
+* D30V optimization: Overview. (line 474)
+* D30V options: D30V-Opts. (line 6)
+* D30V registers: D30V-Regs. (line 6)
+* D30V size modifiers: D30V-Size. (line 6)
+* D30V sub-instruction ordering: D30V-Chars. (line 14)
+* D30V sub-instructions: D30V-Subs. (line 6)
+* D30V support: D30V-Dependent. (line 6)
+* D30V syntax: D30V-Syntax. (line 6)
+* data alignment on SPARC: Sparc-Aligned-Data. (line 6)
+* data and text sections, joining: R. (line 6)
+* data directive: Data. (line 6)
+* data directive, TIC54X: TIC54X-Directives. (line 61)
+* data relocations, ARM: ARM-Relocations. (line 6)
+* data section: Ld Sections. (line 9)
+* data1 directive, M680x0: M68K-Directives. (line 9)
+* data2 directive, M680x0: M68K-Directives. (line 12)
+* datalabel, SH64: SH64-Addressing. (line 16)
+* dbpc register, V850: V850-Regs. (line 125)
+* dbpsw register, V850: V850-Regs. (line 128)
+* debuggers, and symbol order: Symbols. (line 10)
+* debugging COFF symbols: Def. (line 6)
+* DEC syntax: PDP-11-Syntax. (line 6)
+* decimal integers: Integers. (line 12)
+* def directive: Def. (line 6)
+* def directive, TIC54X: TIC54X-Directives. (line 103)
+* density instructions: Density Instructions.
+ (line 6)
+* dependency tracking: MD. (line 6)
+* deprecated directives: Deprecated. (line 6)
+* desc directive: Desc. (line 6)
+* descriptor, of a.out symbol: Symbol Desc. (line 6)
+* dfloat directive, VAX: VAX-directives. (line 10)
+* difference tables altered: Word. (line 12)
+* difference tables, warning: K. (line 6)
+* differences, mmixal: MMIX-mmixal. (line 6)
+* dim directive: Dim. (line 6)
+* directives and instructions: Statements. (line 20)
+* directives for PowerPC: PowerPC-Pseudo. (line 6)
+* directives for SCORE: SCORE-Pseudo. (line 6)
+* directives, Blackfin: Blackfin Directives. (line 6)
+* directives, M32R: M32R-Directives. (line 6)
+* directives, M680x0: M68K-Directives. (line 6)
+* directives, machine independent: Pseudo Ops. (line 6)
+* directives, Xtensa: Xtensa Directives. (line 6)
+* directives, Z8000: Z8000 Directives. (line 6)
+* Disable floating-point instructions: MIPS floating-point. (line 6)
+* Disable single-precision floating-point operations: MIPS floating-point.
+ (line 12)
+* displacement sizing character, VAX: VAX-operands. (line 12)
+* dollar local symbols: Symbol Names. (line 105)
+* dot (symbol): Dot. (line 6)
+* double directive: Double. (line 6)
+* double directive, i386: i386-Float. (line 14)
+* double directive, M680x0: M68K-Float. (line 14)
+* double directive, M68HC11: M68HC11-Float. (line 14)
+* double directive, RX: RX-Float. (line 11)
+* double directive, TIC54X: TIC54X-Directives. (line 64)
+* double directive, VAX: VAX-float. (line 15)
+* double directive, x86-64: i386-Float. (line 14)
+* doublequote (\"): Strings. (line 43)
+* drlist directive, TIC54X: TIC54X-Directives. (line 73)
+* drnolist directive, TIC54X: TIC54X-Directives. (line 73)
+* dual directive, i860: Directives-i860. (line 6)
+* ECOFF sections: MIPS Object. (line 6)
+* ecr register, V850: V850-Regs. (line 113)
+* eight-byte integer: Quad. (line 9)
+* eipc register, V850: V850-Regs. (line 101)
+* eipsw register, V850: V850-Regs. (line 104)
+* eject directive: Eject. (line 6)
+* ELF symbol type: Type. (line 22)
+* else directive: Else. (line 6)
+* elseif directive: Elseif. (line 6)
+* empty expressions: Empty Exprs. (line 6)
+* emsg directive, TIC54X: TIC54X-Directives. (line 77)
+* emulation: Overview. (line 809)
+* encoding options, i386: i386-Mnemonics. (line 32)
+* encoding options, x86-64: i386-Mnemonics. (line 32)
+* end directive: End. (line 6)
+* enddual directive, i860: Directives-i860. (line 11)
+* endef directive: Endef. (line 6)
+* endfunc directive: Endfunc. (line 6)
+* endianness, MIPS: Overview. (line 693)
+* endianness, PJ: Overview. (line 600)
+* endif directive: Endif. (line 6)
+* endloop directive, TIC54X: TIC54X-Directives. (line 143)
+* endm directive: Macro. (line 138)
+* endm directive, TIC54X: TIC54X-Directives. (line 153)
+* endstruct directive, TIC54X: TIC54X-Directives. (line 216)
+* endunion directive, TIC54X: TIC54X-Directives. (line 250)
+* environment settings, TIC54X: TIC54X-Env. (line 6)
+* EOF, newline must precede: Statements. (line 14)
+* ep register, V850: V850-Regs. (line 95)
+* equ directive: Equ. (line 6)
+* equ directive, TIC54X: TIC54X-Directives. (line 191)
+* equiv directive: Equiv. (line 6)
+* eqv directive: Eqv. (line 6)
+* err directive: Err. (line 6)
+* error directive: Error. (line 6)
+* error messages: Errors. (line 6)
+* error on valid input: Bug Criteria. (line 12)
+* errors, caused by warnings: W. (line 16)
+* errors, continuing after: Z. (line 6)
+* ESA/390 floating point (IEEE): ESA/390 Floating Point.
+ (line 6)
+* ESA/390 support: ESA/390-Dependent. (line 6)
+* ESA/390 Syntax: ESA/390 Options. (line 8)
+* ESA/390-only directives: ESA/390 Directives. (line 12)
+* escape codes, character: Strings. (line 15)
+* eval directive, TIC54X: TIC54X-Directives. (line 24)
+* even: Z8000 Directives. (line 58)
+* even directive, M680x0: M68K-Directives. (line 15)
+* even directive, TIC54X: TIC54X-Directives. (line 6)
+* exitm directive: Macro. (line 141)
+* expr (internal section): As Sections. (line 17)
+* expression arguments: Arguments. (line 6)
+* expressions: Expressions. (line 6)
+* expressions, comparison: Infix Ops. (line 55)
+* expressions, empty: Empty Exprs. (line 6)
+* expressions, integer: Integer Exprs. (line 6)
+* extAuxRegister directive, ARC: ARC Directives. (line 18)
+* extCondCode directive, ARC: ARC Directives. (line 41)
+* extCoreRegister directive, ARC: ARC Directives. (line 53)
+* extend directive M680x0: M68K-Float. (line 17)
+* extend directive M68HC11: M68HC11-Float. (line 17)
+* extended directive, i960: Directives-i960. (line 13)
+* extern directive: Extern. (line 6)
+* extInstruction directive, ARC: ARC Directives. (line 78)
+* fail directive: Fail. (line 6)
+* far_mode directive, TIC54X: TIC54X-Directives. (line 82)
+* faster processing (-f): f. (line 6)
+* fatal signal: Bug Criteria. (line 9)
+* fclist directive, TIC54X: TIC54X-Directives. (line 87)
+* fcnolist directive, TIC54X: TIC54X-Directives. (line 87)
+* fepc register, V850: V850-Regs. (line 107)
+* fepsw register, V850: V850-Regs. (line 110)
+* ffloat directive, VAX: VAX-directives. (line 14)
+* field directive, TIC54X: TIC54X-Directives. (line 91)
+* file directive: File. (line 6)
+* file directive, MSP 430: MSP430 Directives. (line 6)
+* file name, logical: File. (line 13)
+* files, including: Include. (line 6)
+* files, input: Input Files. (line 6)
+* fill directive: Fill. (line 6)
+* filling memory <1>: Skip. (line 6)
+* filling memory: Space. (line 6)
+* FLIX syntax: Xtensa Syntax. (line 6)
+* float directive: Float. (line 6)
+* float directive, i386: i386-Float. (line 14)
+* float directive, M680x0: M68K-Float. (line 11)
+* float directive, M68HC11: M68HC11-Float. (line 11)
+* float directive, RX: RX-Float. (line 8)
+* float directive, TIC54X: TIC54X-Directives. (line 64)
+* float directive, VAX: VAX-float. (line 15)
+* float directive, x86-64: i386-Float. (line 14)
+* floating point numbers: Flonums. (line 6)
+* floating point numbers (double): Double. (line 6)
+* floating point numbers (single) <1>: Float. (line 6)
+* floating point numbers (single): Single. (line 6)
+* floating point, Alpha (IEEE): Alpha Floating Point.
+ (line 6)
+* floating point, ARC (IEEE): ARC Floating Point. (line 6)
+* floating point, ARM (IEEE): ARM Floating Point. (line 6)
+* floating point, D10V: D10V-Float. (line 6)
+* floating point, D30V: D30V-Float. (line 6)
+* floating point, ESA/390 (IEEE): ESA/390 Floating Point.
+ (line 6)
+* floating point, H8/300 (IEEE): H8/300 Floating Point.
+ (line 6)
+* floating point, HPPA (IEEE): HPPA Floating Point. (line 6)
+* floating point, i386: i386-Float. (line 6)
+* floating point, i960 (IEEE): Floating Point-i960. (line 6)
+* floating point, M680x0: M68K-Float. (line 6)
+* floating point, M68HC11: M68HC11-Float. (line 6)
+* floating point, MSP 430 (IEEE): MSP430 Floating Point.
+ (line 6)
+* floating point, RX: RX-Float. (line 6)
+* floating point, s390: s390 Floating Point. (line 6)
+* floating point, SH (IEEE): SH Floating Point. (line 6)
+* floating point, SPARC (IEEE): Sparc-Float. (line 6)
+* floating point, V850 (IEEE): V850 Floating Point. (line 6)
+* floating point, VAX: VAX-float. (line 6)
+* floating point, x86-64: i386-Float. (line 6)
+* floating point, Z80: Z80 Floating Point. (line 6)
+* flonums: Flonums. (line 6)
+* format of error messages: Errors. (line 24)
+* format of warning messages: Errors. (line 12)
+* formfeed (\f): Strings. (line 18)
+* func directive: Func. (line 6)
+* functions, in expressions: Operators. (line 6)
+* gbr960, i960 postprocessor: Options-i960. (line 40)
+* gfloat directive, VAX: VAX-directives. (line 18)
+* global: Z8000 Directives. (line 21)
+* global directive: Global. (line 6)
+* global directive, TIC54X: TIC54X-Directives. (line 103)
+* gp register, MIPS: MIPS Object. (line 11)
+* gp register, V850: V850-Regs. (line 17)
+* grouping data: Sub-Sections. (line 6)
+* H8/300 addressing modes: H8/300-Addressing. (line 6)
+* H8/300 floating point (IEEE): H8/300 Floating Point.
+ (line 6)
+* H8/300 line comment character: H8/300-Chars. (line 6)
+* H8/300 line separator: H8/300-Chars. (line 8)
+* H8/300 machine directives (none): H8/300 Directives. (line 6)
+* H8/300 opcode summary: H8/300 Opcodes. (line 6)
+* H8/300 options: H8/300 Options. (line 6)
+* H8/300 registers: H8/300-Regs. (line 6)
+* H8/300 size suffixes: H8/300 Opcodes. (line 163)
+* H8/300 support: H8/300-Dependent. (line 6)
+* H8/300H, assembling for: H8/300 Directives. (line 8)
+* half directive, ARC: ARC Directives. (line 156)
+* half directive, SPARC: Sparc-Directives. (line 17)
+* half directive, TIC54X: TIC54X-Directives. (line 111)
+* hex character code (\XD...): Strings. (line 36)
+* hexadecimal integers: Integers. (line 15)
+* hexadecimal prefix, Z80: Z80-Chars. (line 15)
+* hfloat directive, VAX: VAX-directives. (line 22)
+* hi pseudo-op, V850: V850 Opcodes. (line 33)
+* hi0 pseudo-op, V850: V850 Opcodes. (line 10)
+* hidden directive: Hidden. (line 6)
+* high directive, M32R: M32R-Directives. (line 18)
+* hilo pseudo-op, V850: V850 Opcodes. (line 55)
+* HPPA directives not supported: HPPA Directives. (line 11)
+* HPPA floating point (IEEE): HPPA Floating Point. (line 6)
+* HPPA Syntax: HPPA Options. (line 8)
+* HPPA-only directives: HPPA Directives. (line 24)
+* hword directive: hword. (line 6)
+* i370 support: ESA/390-Dependent. (line 6)
+* i386 16-bit code: i386-16bit. (line 6)
+* i386 arch directive: i386-Arch. (line 6)
+* i386 att_syntax pseudo op: i386-Variations. (line 6)
+* i386 conversion instructions: i386-Mnemonics. (line 37)
+* i386 floating point: i386-Float. (line 6)
+* i386 immediate operands: i386-Variations. (line 15)
+* i386 instruction naming: i386-Mnemonics. (line 6)
+* i386 instruction prefixes: i386-Prefixes. (line 6)
+* i386 intel_syntax pseudo op: i386-Variations. (line 6)
+* i386 jump optimization: i386-Jumps. (line 6)
+* i386 jump, call, return: i386-Variations. (line 41)
+* i386 jump/call operands: i386-Variations. (line 15)
+* i386 line comment character: i386-Chars. (line 6)
+* i386 line separator: i386-Chars. (line 18)
+* i386 memory references: i386-Memory. (line 6)
+* i386 mnemonic compatibility: i386-Mnemonics. (line 62)
+* i386 mul, imul instructions: i386-Notes. (line 6)
+* i386 options: i386-Options. (line 6)
+* i386 register operands: i386-Variations. (line 15)
+* i386 registers: i386-Regs. (line 6)
+* i386 sections: i386-Variations. (line 47)
+* i386 size suffixes: i386-Variations. (line 29)
+* i386 source, destination operands: i386-Variations. (line 22)
+* i386 support: i386-Dependent. (line 6)
+* i386 syntax compatibility: i386-Variations. (line 6)
+* i80386 support: i386-Dependent. (line 6)
+* i860 line comment character: i860-Chars. (line 6)
+* i860 line separator: i860-Chars. (line 14)
+* i860 machine directives: Directives-i860. (line 6)
+* i860 opcodes: Opcodes for i860. (line 6)
+* i860 support: i860-Dependent. (line 6)
+* i960 architecture options: Options-i960. (line 6)
+* i960 branch recording: Options-i960. (line 22)
+* i960 callj pseudo-opcode: callj-i960. (line 6)
+* i960 compare and jump expansions: Compare-and-branch-i960.
+ (line 13)
+* i960 compare/branch instructions: Compare-and-branch-i960.
+ (line 6)
+* i960 floating point (IEEE): Floating Point-i960. (line 6)
+* i960 line comment character: i960-Chars. (line 6)
+* i960 line separator: i960-Chars. (line 14)
+* i960 machine directives: Directives-i960. (line 6)
+* i960 opcodes: Opcodes for i960. (line 6)
+* i960 options: Options-i960. (line 6)
+* i960 support: i960-Dependent. (line 6)
+* IA-64 line comment character: IA-64-Chars. (line 6)
+* IA-64 line separator: IA-64-Chars. (line 8)
+* IA-64 options: IA-64 Options. (line 6)
+* IA-64 Processor-status-Register bit names: IA-64-Bits. (line 6)
+* IA-64 registers: IA-64-Regs. (line 6)
+* IA-64 relocations: IA-64-Relocs. (line 6)
+* IA-64 support: IA-64-Dependent. (line 6)
+* IA-64 Syntax: IA-64 Options. (line 87)
+* ident directive: Ident. (line 6)
+* identifiers, ARM: ARM-Chars. (line 19)
+* identifiers, MSP 430: MSP430-Chars. (line 17)
+* if directive: If. (line 6)
+* ifb directive: If. (line 21)
+* ifc directive: If. (line 25)
+* ifdef directive: If. (line 16)
+* ifeq directive: If. (line 33)
+* ifeqs directive: If. (line 36)
+* ifge directive: If. (line 40)
+* ifgt directive: If. (line 44)
+* ifle directive: If. (line 48)
+* iflt directive: If. (line 52)
+* ifnb directive: If. (line 56)
+* ifnc directive: If. (line 61)
+* ifndef directive: If. (line 65)
+* ifne directive: If. (line 72)
+* ifnes directive: If. (line 76)
+* ifnotdef directive: If. (line 65)
+* immediate character, ARM: ARM-Chars. (line 17)
+* immediate character, M680x0: M68K-Chars. (line 13)
+* immediate character, VAX: VAX-operands. (line 6)
+* immediate fields, relaxation: Xtensa Immediate Relaxation.
+ (line 6)
+* immediate operands, i386: i386-Variations. (line 15)
+* immediate operands, x86-64: i386-Variations. (line 15)
+* imul instruction, i386: i386-Notes. (line 6)
+* imul instruction, x86-64: i386-Notes. (line 6)
+* incbin directive: Incbin. (line 6)
+* include directive: Include. (line 6)
+* include directive search path: I. (line 6)
+* indirect character, VAX: VAX-operands. (line 9)
+* infix operators: Infix Ops. (line 6)
+* inhibiting interrupts, i386: i386-Prefixes. (line 36)
+* input: Input Files. (line 6)
+* input file linenumbers: Input Files. (line 35)
+* instruction aliases, s390: s390 Aliases. (line 6)
+* instruction expansion, CRIS: CRIS-Expand. (line 6)
+* instruction expansion, MMIX: MMIX-Expand. (line 6)
+* instruction formats, s390: s390 Formats. (line 6)
+* instruction marker, s390: s390 Instruction Marker.
+ (line 6)
+* instruction mnemonics, s390: s390 Mnemonics. (line 6)
+* instruction naming, i386: i386-Mnemonics. (line 6)
+* instruction naming, x86-64: i386-Mnemonics. (line 6)
+* instruction operand modifier, s390: s390 Operand Modifier.
+ (line 6)
+* instruction operands, s390: s390 Operands. (line 6)
+* instruction prefixes, i386: i386-Prefixes. (line 6)
+* instruction set, M680x0: M68K-opcodes. (line 6)
+* instruction set, M68HC11: M68HC11-opcodes. (line 6)
+* instruction summary, AVR: AVR Opcodes. (line 6)
+* instruction summary, D10V: D10V-Opcodes. (line 6)
+* instruction summary, D30V: D30V-Opcodes. (line 6)
+* instruction summary, H8/300: H8/300 Opcodes. (line 6)
+* instruction summary, LM32: LM32 Opcodes. (line 6)
+* instruction summary, SH: SH Opcodes. (line 6)
+* instruction summary, SH64: SH64 Opcodes. (line 6)
+* instruction summary, Z8000: Z8000 Opcodes. (line 6)
+* instruction syntax, s390: s390 Syntax. (line 6)
+* instructions and directives: Statements. (line 20)
+* int directive: Int. (line 6)
+* int directive, H8/300: H8/300 Directives. (line 6)
+* int directive, i386: i386-Float. (line 21)
+* int directive, TIC54X: TIC54X-Directives. (line 111)
+* int directive, x86-64: i386-Float. (line 21)
+* integer expressions: Integer Exprs. (line 6)
+* integer, 16-byte: Octa. (line 6)
+* integer, 8-byte: Quad. (line 9)
+* integers: Integers. (line 6)
+* integers, 16-bit: hword. (line 6)
+* integers, 32-bit: Int. (line 6)
+* integers, binary: Integers. (line 6)
+* integers, decimal: Integers. (line 12)
+* integers, hexadecimal: Integers. (line 15)
+* integers, octal: Integers. (line 9)
+* integers, one byte: Byte. (line 6)
+* intel_syntax pseudo op, i386: i386-Variations. (line 6)
+* intel_syntax pseudo op, x86-64: i386-Variations. (line 6)
+* internal assembler sections: As Sections. (line 6)
+* internal directive: Internal. (line 6)
+* invalid input: Bug Criteria. (line 14)
+* invocation summary: Overview. (line 6)
+* IP2K architecture options: IP2K-Opts. (line 9)
+* IP2K line comment character: IP2K-Chars. (line 6)
+* IP2K line separator: IP2K-Chars. (line 14)
+* IP2K options: IP2K-Opts. (line 6)
+* IP2K support: IP2K-Dependent. (line 6)
+* irp directive: Irp. (line 6)
+* irpc directive: Irpc. (line 6)
+* ISA options, SH64: SH64 Options. (line 6)
+* joining text and data sections: R. (line 6)
+* jump instructions, i386: i386-Mnemonics. (line 56)
+* jump instructions, x86-64: i386-Mnemonics. (line 56)
+* jump optimization, i386: i386-Jumps. (line 6)
+* jump optimization, x86-64: i386-Jumps. (line 6)
+* jump/call operands, i386: i386-Variations. (line 15)
+* jump/call operands, x86-64: i386-Variations. (line 15)
+* L16SI instructions, relaxation: Xtensa Immediate Relaxation.
+ (line 23)
+* L16UI instructions, relaxation: Xtensa Immediate Relaxation.
+ (line 23)
+* L32I instructions, relaxation: Xtensa Immediate Relaxation.
+ (line 23)
+* L8UI instructions, relaxation: Xtensa Immediate Relaxation.
+ (line 23)
+* label (:): Statements. (line 31)
+* label directive, TIC54X: TIC54X-Directives. (line 123)
+* labels: Labels. (line 6)
+* lcomm directive: Lcomm. (line 6)
+* lcomm directive, COFF: i386-Directives. (line 6)
+* ld: Object. (line 15)
+* ldouble directive M680x0: M68K-Float. (line 17)
+* ldouble directive M68HC11: M68HC11-Float. (line 17)
+* ldouble directive, TIC54X: TIC54X-Directives. (line 64)
+* LDR reg,=<label> pseudo op, ARM: ARM Opcodes. (line 15)
+* leafproc directive, i960: Directives-i960. (line 18)
+* length directive, TIC54X: TIC54X-Directives. (line 127)
+* length of symbols: Symbol Intro. (line 14)
+* lflags directive (ignored): Lflags. (line 6)
+* line comment character: Comments. (line 19)
+* line comment character, Alpha: Alpha-Chars. (line 6)
+* line comment character, ARC: ARC-Chars. (line 6)
+* line comment character, ARM: ARM-Chars. (line 6)
+* line comment character, AVR: AVR-Chars. (line 6)
+* line comment character, CR16: CR16-Chars. (line 6)
+* line comment character, D10V: D10V-Chars. (line 6)
+* line comment character, D30V: D30V-Chars. (line 6)
+* line comment character, H8/300: H8/300-Chars. (line 6)
+* line comment character, i386: i386-Chars. (line 6)
+* line comment character, i860: i860-Chars. (line 6)
+* line comment character, i960: i960-Chars. (line 6)
+* line comment character, IA-64: IA-64-Chars. (line 6)
+* line comment character, IP2K: IP2K-Chars. (line 6)
+* line comment character, LM32: LM32-Chars. (line 6)
+* line comment character, M32C: M32C-Chars. (line 6)
+* line comment character, M680x0: M68K-Chars. (line 6)
+* line comment character, M68HC11: M68HC11-Syntax. (line 17)
+* line comment character, MicroBlaze: MicroBlaze-Chars. (line 6)
+* line comment character, MIPS: MIPS-Chars. (line 6)
+* line comment character, MSP 430: MSP430-Chars. (line 6)
+* line comment character, NS32K: NS32K-Chars. (line 6)
+* line comment character, PJ: PJ-Chars. (line 6)
+* line comment character, PowerPC: PowerPC-Chars. (line 6)
+* line comment character, RX: RX-Chars. (line 6)
+* line comment character, s390: s390 Characters. (line 6)
+* line comment character, SCORE: SCORE-Chars. (line 6)
+* line comment character, SH: SH-Chars. (line 6)
+* line comment character, SH64: SH64-Chars. (line 6)
+* line comment character, Sparc: Sparc-Chars. (line 6)
+* line comment character, TIC54X: TIC54X-Chars. (line 6)
+* line comment character, TIC6X: TIC6X Syntax. (line 6)
+* line comment character, V850: V850-Chars. (line 6)
+* line comment character, VAX: VAX-Chars. (line 6)
+* line comment character, XStormy16: XStormy16-Chars. (line 6)
+* line comment character, Z80: Z80-Chars. (line 6)
+* line comment character, Z8000: Z8000-Chars. (line 6)
+* line comment characters, CRIS: CRIS-Chars. (line 6)
+* line comment characters, MMIX: MMIX-Chars. (line 6)
+* line directive: Line. (line 6)
+* line directive, MSP 430: MSP430 Directives. (line 14)
+* line numbers, in input files: Input Files. (line 35)
+* line numbers, in warnings/errors: Errors. (line 16)
+* line separator character: Statements. (line 6)
+* line separator, Alpha: Alpha-Chars. (line 11)
+* line separator, ARC: ARC-Chars. (line 12)
+* line separator, ARM: ARM-Chars. (line 14)
+* line separator, AVR: AVR-Chars. (line 14)
+* line separator, CR16: CR16-Chars. (line 13)
+* line separator, H8/300: H8/300-Chars. (line 8)
+* line separator, i386: i386-Chars. (line 18)
+* line separator, i860: i860-Chars. (line 14)
+* line separator, i960: i960-Chars. (line 14)
+* line separator, IA-64: IA-64-Chars. (line 8)
+* line separator, IP2K: IP2K-Chars. (line 14)
+* line separator, LM32: LM32-Chars. (line 12)
+* line separator, M32C: M32C-Chars. (line 14)
+* line separator, M680x0: M68K-Chars. (line 20)
+* line separator, M68HC11: M68HC11-Syntax. (line 27)
+* line separator, MicroBlaze: MicroBlaze-Chars. (line 14)
+* line separator, MIPS: MIPS-Chars. (line 14)
+* line separator, MSP 430: MSP430-Chars. (line 14)
+* line separator, NS32K: NS32K-Chars. (line 18)
+* line separator, PJ: PJ-Chars. (line 14)
+* line separator, PowerPC: PowerPC-Chars. (line 18)
+* line separator, RX: RX-Chars. (line 14)
+* line separator, s390: s390 Characters. (line 13)
+* line separator, SCORE: SCORE-Chars. (line 14)
+* line separator, SH: SH-Chars. (line 8)
+* line separator, SH64: SH64-Chars. (line 13)
+* line separator, Sparc: Sparc-Chars. (line 14)
+* line separator, TIC54X: TIC54X-Chars. (line 17)
+* line separator, TIC6X: TIC6X Syntax. (line 13)
+* line separator, V850: V850-Chars. (line 13)
+* line separator, VAX: VAX-Chars. (line 14)
+* line separator, XStormy16: XStormy16-Chars. (line 14)
+* line separator, Z80: Z80-Chars. (line 13)
+* line separator, Z8000: Z8000-Chars. (line 13)
+* lines starting with #: Comments. (line 33)
+* linker: Object. (line 15)
+* linker, and assembler: Secs Background. (line 10)
+* linkonce directive: Linkonce. (line 6)
+* list directive: List. (line 6)
+* list directive, TIC54X: TIC54X-Directives. (line 131)
+* listing control, turning off: Nolist. (line 6)
+* listing control, turning on: List. (line 6)
+* listing control: new page: Eject. (line 6)
+* listing control: paper size: Psize. (line 6)
+* listing control: subtitle: Sbttl. (line 6)
+* listing control: title line: Title. (line 6)
+* listings, enabling: a. (line 6)
+* literal directive: Literal Directive. (line 6)
+* literal pool entries, s390: s390 Literal Pool Entries.
+ (line 6)
+* literal_position directive: Literal Position Directive.
+ (line 6)
+* literal_prefix directive: Literal Prefix Directive.
+ (line 6)
+* little endian output, MIPS: Overview. (line 696)
+* little endian output, PJ: Overview. (line 603)
+* little-endian output, MIPS: MIPS Opts. (line 13)
+* little-endian output, TIC6X: TIC6X Options. (line 46)
+* LM32 line comment character: LM32-Chars. (line 6)
+* LM32 line separator: LM32-Chars. (line 12)
+* LM32 modifiers: LM32-Modifiers. (line 6)
+* LM32 opcode summary: LM32 Opcodes. (line 6)
+* LM32 options (none): LM32 Options. (line 6)
+* LM32 register names: LM32-Regs. (line 6)
+* LM32 support: LM32-Dependent. (line 6)
+* ln directive: Ln. (line 6)
+* lo pseudo-op, V850: V850 Opcodes. (line 22)
+* loc directive: Loc. (line 6)
+* loc_mark_labels directive: Loc_mark_labels. (line 6)
+* local common symbols: Lcomm. (line 6)
+* local directive: Local. (line 6)
+* local labels: Symbol Names. (line 35)
+* local symbol names: Symbol Names. (line 22)
+* local symbols, retaining in output: L. (line 6)
+* location counter: Dot. (line 6)
+* location counter, advancing: Org. (line 6)
+* location counter, Z80: Z80-Chars. (line 15)
+* logical file name: File. (line 13)
+* logical line number: Line. (line 6)
+* logical line numbers: Comments. (line 33)
+* long directive: Long. (line 6)
+* long directive, ARC: ARC Directives. (line 159)
+* long directive, i386: i386-Float. (line 21)
+* long directive, TIC54X: TIC54X-Directives. (line 135)
+* long directive, x86-64: i386-Float. (line 21)
+* longcall pseudo-op, V850: V850 Opcodes. (line 123)
+* longcalls directive: Longcalls Directive. (line 6)
+* longjump pseudo-op, V850: V850 Opcodes. (line 129)
+* loop directive, TIC54X: TIC54X-Directives. (line 143)
+* LOOP instructions, alignment: Xtensa Automatic Alignment.
+ (line 6)
+* low directive, M32R: M32R-Directives. (line 9)
+* lp register, V850: V850-Regs. (line 98)
+* lval: Z8000 Directives. (line 27)
+* LWP, i386: i386-LWP. (line 6)
+* LWP, x86-64: i386-LWP. (line 6)
+* M16C architecture option: M32C-Opts. (line 12)
+* M32C architecture option: M32C-Opts. (line 9)
+* M32C line comment character: M32C-Chars. (line 6)
+* M32C line separator: M32C-Chars. (line 14)
+* M32C modifiers: M32C-Modifiers. (line 6)
+* M32C options: M32C-Opts. (line 6)
+* M32C support: M32C-Dependent. (line 6)
+* M32R architecture options: M32R-Opts. (line 21)
+* M32R directives: M32R-Directives. (line 6)
+* M32R options: M32R-Opts. (line 6)
+* M32R support: M32R-Dependent. (line 6)
+* M32R warnings: M32R-Warnings. (line 6)
+* M680x0 addressing modes: M68K-Syntax. (line 21)
+* M680x0 architecture options: M68K-Opts. (line 98)
+* M680x0 branch improvement: M68K-Branch. (line 6)
+* M680x0 directives: M68K-Directives. (line 6)
+* M680x0 floating point: M68K-Float. (line 6)
+* M680x0 immediate character: M68K-Chars. (line 13)
+* M680x0 line comment character: M68K-Chars. (line 6)
+* M680x0 line separator: M68K-Chars. (line 20)
+* M680x0 opcodes: M68K-opcodes. (line 6)
+* M680x0 options: M68K-Opts. (line 6)
+* M680x0 pseudo-opcodes: M68K-Branch. (line 6)
+* M680x0 size modifiers: M68K-Syntax. (line 8)
+* M680x0 support: M68K-Dependent. (line 6)
+* M680x0 syntax: M68K-Syntax. (line 8)
+* M68HC11 addressing modes: M68HC11-Syntax. (line 30)
+* M68HC11 and M68HC12 support: M68HC11-Dependent. (line 6)
+* M68HC11 assembler directive .far: M68HC11-Directives. (line 20)
+* M68HC11 assembler directive .interrupt: M68HC11-Directives. (line 26)
+* M68HC11 assembler directive .mode: M68HC11-Directives. (line 16)
+* M68HC11 assembler directive .relax: M68HC11-Directives. (line 10)
+* M68HC11 assembler directive .xrefb: M68HC11-Directives. (line 31)
+* M68HC11 assembler directives: M68HC11-Directives. (line 6)
+* M68HC11 branch improvement: M68HC11-Branch. (line 6)
+* M68HC11 floating point: M68HC11-Float. (line 6)
+* M68HC11 line comment character: M68HC11-Syntax. (line 17)
+* M68HC11 line separator: M68HC11-Syntax. (line 27)
+* M68HC11 modifiers: M68HC11-Modifiers. (line 6)
+* M68HC11 opcodes: M68HC11-opcodes. (line 6)
+* M68HC11 options: M68HC11-Opts. (line 6)
+* M68HC11 pseudo-opcodes: M68HC11-Branch. (line 6)
+* M68HC11 syntax: M68HC11-Syntax. (line 6)
+* M68HC12 assembler directives: M68HC11-Directives. (line 6)
+* machine dependencies: Machine Dependencies.
+ (line 6)
+* machine directives, ARC: ARC Directives. (line 6)
+* machine directives, ARM: ARM Directives. (line 6)
+* machine directives, H8/300 (none): H8/300 Directives. (line 6)
+* machine directives, i860: Directives-i860. (line 6)
+* machine directives, i960: Directives-i960. (line 6)
+* machine directives, MSP 430: MSP430 Directives. (line 6)
+* machine directives, SH: SH Directives. (line 6)
+* machine directives, SH64: SH64 Directives. (line 9)
+* machine directives, SPARC: Sparc-Directives. (line 6)
+* machine directives, TIC54X: TIC54X-Directives. (line 6)
+* machine directives, TIC6X: TIC6X Directives. (line 6)
+* machine directives, TILE-Gx: TILE-Gx Directives. (line 6)
+* machine directives, TILEPro: TILEPro Directives. (line 6)
+* machine directives, V850: V850 Directives. (line 6)
+* machine directives, VAX: VAX-directives. (line 6)
+* machine directives, x86: i386-Directives. (line 6)
+* machine directives, XStormy16: XStormy16 Directives.
+ (line 6)
+* machine independent directives: Pseudo Ops. (line 6)
+* machine instructions (not covered): Manual. (line 14)
+* machine-independent syntax: Syntax. (line 6)
+* macro directive: Macro. (line 28)
+* macro directive, TIC54X: TIC54X-Directives. (line 153)
+* macros: Macro. (line 6)
+* macros, count executed: Macro. (line 143)
+* Macros, MSP 430: MSP430-Macros. (line 6)
+* macros, TIC54X: TIC54X-Macros. (line 6)
+* make rules: MD. (line 6)
+* manual, structure and purpose: Manual. (line 6)
+* math builtins, TIC54X: TIC54X-Builtins. (line 6)
+* Maximum number of continuation lines: listing. (line 34)
+* memory references, i386: i386-Memory. (line 6)
+* memory references, x86-64: i386-Memory. (line 6)
+* memory-mapped registers, TIC54X: TIC54X-MMRegs. (line 6)
+* merging text and data sections: R. (line 6)
+* messages from assembler: Errors. (line 6)
+* MicroBlaze architectures: MicroBlaze-Dependent.
+ (line 6)
+* MicroBlaze directives: MicroBlaze Directives.
+ (line 6)
+* MicroBlaze line comment character: MicroBlaze-Chars. (line 6)
+* MicroBlaze line separator: MicroBlaze-Chars. (line 14)
+* MicroBlaze support: MicroBlaze-Dependent.
+ (line 13)
+* minus, permitted arguments: Infix Ops. (line 49)
+* MIPS architecture options: MIPS Opts. (line 29)
+* MIPS big-endian output: MIPS Opts. (line 13)
+* MIPS CPU override: MIPS ISA. (line 18)
+* MIPS debugging directives: MIPS Stabs. (line 6)
+* MIPS DSP Release 1 instruction generation override: MIPS ASE instruction generation overrides.
+ (line 21)
+* MIPS DSP Release 2 instruction generation override: MIPS ASE instruction generation overrides.
+ (line 26)
+* MIPS ECOFF sections: MIPS Object. (line 6)
+* MIPS endianness: Overview. (line 693)
+* MIPS ISA: Overview. (line 699)
+* MIPS ISA override: MIPS ISA. (line 6)
+* MIPS line comment character: MIPS-Chars. (line 6)
+* MIPS line separator: MIPS-Chars. (line 14)
+* MIPS little-endian output: MIPS Opts. (line 13)
+* MIPS MCU instruction generation override: MIPS ASE instruction generation overrides.
+ (line 37)
+* MIPS MDMX instruction generation override: MIPS ASE instruction generation overrides.
+ (line 16)
+* MIPS MIPS-3D instruction generation override: MIPS ASE instruction generation overrides.
+ (line 6)
+* MIPS MT instruction generation override: MIPS ASE instruction generation overrides.
+ (line 32)
+* MIPS option stack: MIPS option stack. (line 6)
+* MIPS processor: MIPS-Dependent. (line 6)
+* MIT: M68K-Syntax. (line 6)
+* mlib directive, TIC54X: TIC54X-Directives. (line 159)
+* mlist directive, TIC54X: TIC54X-Directives. (line 164)
+* MMIX assembler directive BSPEC: MMIX-Pseudos. (line 131)
+* MMIX assembler directive BYTE: MMIX-Pseudos. (line 97)
+* MMIX assembler directive ESPEC: MMIX-Pseudos. (line 131)
+* MMIX assembler directive GREG: MMIX-Pseudos. (line 50)
+* MMIX assembler directive IS: MMIX-Pseudos. (line 42)
+* MMIX assembler directive LOC: MMIX-Pseudos. (line 7)
+* MMIX assembler directive LOCAL: MMIX-Pseudos. (line 28)
+* MMIX assembler directive OCTA: MMIX-Pseudos. (line 108)
+* MMIX assembler directive PREFIX: MMIX-Pseudos. (line 120)
+* MMIX assembler directive TETRA: MMIX-Pseudos. (line 108)
+* MMIX assembler directive WYDE: MMIX-Pseudos. (line 108)
+* MMIX assembler directives: MMIX-Pseudos. (line 6)
+* MMIX line comment characters: MMIX-Chars. (line 6)
+* MMIX options: MMIX-Opts. (line 6)
+* MMIX pseudo-op BSPEC: MMIX-Pseudos. (line 131)
+* MMIX pseudo-op BYTE: MMIX-Pseudos. (line 97)
+* MMIX pseudo-op ESPEC: MMIX-Pseudos. (line 131)
+* MMIX pseudo-op GREG: MMIX-Pseudos. (line 50)
+* MMIX pseudo-op IS: MMIX-Pseudos. (line 42)
+* MMIX pseudo-op LOC: MMIX-Pseudos. (line 7)
+* MMIX pseudo-op LOCAL: MMIX-Pseudos. (line 28)
+* MMIX pseudo-op OCTA: MMIX-Pseudos. (line 108)
+* MMIX pseudo-op PREFIX: MMIX-Pseudos. (line 120)
+* MMIX pseudo-op TETRA: MMIX-Pseudos. (line 108)
+* MMIX pseudo-op WYDE: MMIX-Pseudos. (line 108)
+* MMIX pseudo-ops: MMIX-Pseudos. (line 6)
+* MMIX register names: MMIX-Regs. (line 6)
+* MMIX support: MMIX-Dependent. (line 6)
+* mmixal differences: MMIX-mmixal. (line 6)
+* mmregs directive, TIC54X: TIC54X-Directives. (line 169)
+* mmsg directive, TIC54X: TIC54X-Directives. (line 77)
+* MMX, i386: i386-SIMD. (line 6)
+* MMX, x86-64: i386-SIMD. (line 6)
+* mnemonic compatibility, i386: i386-Mnemonics. (line 62)
+* mnemonic suffixes, i386: i386-Variations. (line 29)
+* mnemonic suffixes, x86-64: i386-Variations. (line 29)
+* mnemonics for opcodes, VAX: VAX-opcodes. (line 6)
+* mnemonics, AVR: AVR Opcodes. (line 6)
+* mnemonics, D10V: D10V-Opcodes. (line 6)
+* mnemonics, D30V: D30V-Opcodes. (line 6)
+* mnemonics, H8/300: H8/300 Opcodes. (line 6)
+* mnemonics, LM32: LM32 Opcodes. (line 6)
+* mnemonics, SH: SH Opcodes. (line 6)
+* mnemonics, SH64: SH64 Opcodes. (line 6)
+* mnemonics, Z8000: Z8000 Opcodes. (line 6)
+* mnolist directive, TIC54X: TIC54X-Directives. (line 164)
+* modifiers, M32C: M32C-Modifiers. (line 6)
+* Motorola syntax for the 680x0: M68K-Moto-Syntax. (line 6)
+* MOVI instructions, relaxation: Xtensa Immediate Relaxation.
+ (line 12)
+* MOVW and MOVT relocations, ARM: ARM-Relocations. (line 20)
+* MRI compatibility mode: M. (line 6)
+* mri directive: MRI. (line 6)
+* MRI mode, temporarily: MRI. (line 6)
+* MSP 430 floating point (IEEE): MSP430 Floating Point.
+ (line 6)
+* MSP 430 identifiers: MSP430-Chars. (line 17)
+* MSP 430 line comment character: MSP430-Chars. (line 6)
+* MSP 430 line separator: MSP430-Chars. (line 14)
+* MSP 430 machine directives: MSP430 Directives. (line 6)
+* MSP 430 macros: MSP430-Macros. (line 6)
+* MSP 430 opcodes: MSP430 Opcodes. (line 6)
+* MSP 430 options (none): MSP430 Options. (line 6)
+* MSP 430 profiling capability: MSP430 Profiling Capability.
+ (line 6)
+* MSP 430 register names: MSP430-Regs. (line 6)
+* MSP 430 support: MSP430-Dependent. (line 6)
+* MSP430 Assembler Extensions: MSP430-Ext. (line 6)
+* mul instruction, i386: i386-Notes. (line 6)
+* mul instruction, x86-64: i386-Notes. (line 6)
+* N32K support: NS32K-Dependent. (line 6)
+* name: Z8000 Directives. (line 18)
+* named section: Section. (line 6)
+* named sections: Ld Sections. (line 8)
+* names, symbol: Symbol Names. (line 6)
+* naming object file: o. (line 6)
+* new page, in listings: Eject. (line 6)
+* newblock directive, TIC54X: TIC54X-Directives. (line 175)
+* newline (\n): Strings. (line 21)
+* newline, required at file end: Statements. (line 14)
+* no-absolute-literals directive: Absolute Literals Directive.
+ (line 6)
+* no-longcalls directive: Longcalls Directive. (line 6)
+* no-schedule directive: Schedule Directive. (line 6)
+* no-transform directive: Transform Directive. (line 6)
+* nolist directive: Nolist. (line 6)
+* nolist directive, TIC54X: TIC54X-Directives. (line 131)
+* NOP pseudo op, ARM: ARM Opcodes. (line 9)
+* notes for Alpha: Alpha Notes. (line 6)
+* NS32K line comment character: NS32K-Chars. (line 6)
+* NS32K line separator: NS32K-Chars. (line 18)
+* null-terminated strings: Asciz. (line 6)
+* number constants: Numbers. (line 6)
+* number of macros executed: Macro. (line 143)
+* numbered subsections: Sub-Sections. (line 6)
+* numbers, 16-bit: hword. (line 6)
+* numeric values: Expressions. (line 6)
+* nword directive, SPARC: Sparc-Directives. (line 20)
+* object attributes: Object Attributes. (line 6)
+* object file: Object. (line 6)
+* object file format: Object Formats. (line 6)
+* object file name: o. (line 6)
+* object file, after errors: Z. (line 6)
+* obsolescent directives: Deprecated. (line 6)
+* octa directive: Octa. (line 6)
+* octal character code (\DDD): Strings. (line 30)
+* octal integers: Integers. (line 9)
+* offset directive: Offset. (line 6)
+* offset directive, V850: V850 Directives. (line 6)
+* opcode mnemonics, VAX: VAX-opcodes. (line 6)
+* opcode names, TILE-Gx: TILE-Gx Opcodes. (line 6)
+* opcode names, TILEPro: TILEPro Opcodes. (line 6)
+* opcode names, Xtensa: Xtensa Opcodes. (line 6)
+* opcode summary, AVR: AVR Opcodes. (line 6)
+* opcode summary, D10V: D10V-Opcodes. (line 6)
+* opcode summary, D30V: D30V-Opcodes. (line 6)
+* opcode summary, H8/300: H8/300 Opcodes. (line 6)
+* opcode summary, LM32: LM32 Opcodes. (line 6)
+* opcode summary, SH: SH Opcodes. (line 6)
+* opcode summary, SH64: SH64 Opcodes. (line 6)
+* opcode summary, Z8000: Z8000 Opcodes. (line 6)
+* opcodes for ARC: ARC Opcodes. (line 6)
+* opcodes for ARM: ARM Opcodes. (line 6)
+* opcodes for MSP 430: MSP430 Opcodes. (line 6)
+* opcodes for V850: V850 Opcodes. (line 6)
+* opcodes, i860: Opcodes for i860. (line 6)
+* opcodes, i960: Opcodes for i960. (line 6)
+* opcodes, M680x0: M68K-opcodes. (line 6)
+* opcodes, M68HC11: M68HC11-opcodes. (line 6)
+* operand delimiters, i386: i386-Variations. (line 15)
+* operand delimiters, x86-64: i386-Variations. (line 15)
+* operand notation, VAX: VAX-operands. (line 6)
+* operands in expressions: Arguments. (line 6)
+* operator precedence: Infix Ops. (line 11)
+* operators, in expressions: Operators. (line 6)
+* operators, permitted arguments: Infix Ops. (line 6)
+* optimization, D10V: Overview. (line 469)
+* optimization, D30V: Overview. (line 474)
+* optimizations: Xtensa Optimizations.
+ (line 6)
+* option directive, ARC: ARC Directives. (line 162)
+* option directive, TIC54X: TIC54X-Directives. (line 179)
+* option summary: Overview. (line 6)
+* options for Alpha: Alpha Options. (line 6)
+* options for ARC (none): ARC Options. (line 6)
+* options for ARM (none): ARM Options. (line 6)
+* options for AVR (none): AVR Options. (line 6)
+* options for Blackfin (none): Blackfin Options. (line 6)
+* options for i386: i386-Options. (line 6)
+* options for IA-64: IA-64 Options. (line 6)
+* options for LM32 (none): LM32 Options. (line 6)
+* options for MSP430 (none): MSP430 Options. (line 6)
+* options for PDP-11: PDP-11-Options. (line 6)
+* options for PowerPC: PowerPC-Opts. (line 6)
+* options for s390: s390 Options. (line 6)
+* options for SCORE: SCORE-Opts. (line 6)
+* options for SPARC: Sparc-Opts. (line 6)
+* options for TIC6X: TIC6X Options. (line 6)
+* options for V850 (none): V850 Options. (line 6)
+* options for VAX/VMS: VAX-Opts. (line 42)
+* options for x86-64: i386-Options. (line 6)
+* options for Z80: Z80 Options. (line 6)
+* options, all versions of assembler: Invoking. (line 6)
+* options, command line: Command Line. (line 13)
+* options, CRIS: CRIS-Opts. (line 6)
+* options, D10V: D10V-Opts. (line 6)
+* options, D30V: D30V-Opts. (line 6)
+* options, H8/300: H8/300 Options. (line 6)
+* options, i960: Options-i960. (line 6)
+* options, IP2K: IP2K-Opts. (line 6)
+* options, M32C: M32C-Opts. (line 6)
+* options, M32R: M32R-Opts. (line 6)
+* options, M680x0: M68K-Opts. (line 6)
+* options, M68HC11: M68HC11-Opts. (line 6)
+* options, MMIX: MMIX-Opts. (line 6)
+* options, PJ: PJ Options. (line 6)
+* options, RX: RX-Opts. (line 6)
+* options, SH: SH Options. (line 6)
+* options, SH64: SH64 Options. (line 6)
+* options, TIC54X: TIC54X-Opts. (line 6)
+* options, Z8000: Z8000 Options. (line 6)
+* org directive: Org. (line 6)
+* other attribute, of a.out symbol: Symbol Other. (line 6)
+* output file: Object. (line 6)
+* p2align directive: P2align. (line 6)
+* p2alignl directive: P2align. (line 28)
+* p2alignw directive: P2align. (line 28)
+* padding the location counter: Align. (line 6)
+* padding the location counter given a power of two: P2align. (line 6)
+* padding the location counter given number of bytes: Balign. (line 6)
+* page, in listings: Eject. (line 6)
+* paper size, for listings: Psize. (line 6)
+* paths for .include: I. (line 6)
+* patterns, writing in memory: Fill. (line 6)
+* PDP-11 comments: PDP-11-Syntax. (line 16)
+* PDP-11 floating-point register syntax: PDP-11-Syntax. (line 13)
+* PDP-11 general-purpose register syntax: PDP-11-Syntax. (line 10)
+* PDP-11 instruction naming: PDP-11-Mnemonics. (line 6)
+* PDP-11 line separator: PDP-11-Syntax. (line 19)
+* PDP-11 support: PDP-11-Dependent. (line 6)
+* PDP-11 syntax: PDP-11-Syntax. (line 6)
+* PIC code generation for ARM: ARM Options. (line 164)
+* PIC code generation for M32R: M32R-Opts. (line 42)
+* PIC selection, MIPS: MIPS Opts. (line 21)
+* PJ endianness: Overview. (line 600)
+* PJ line comment character: PJ-Chars. (line 6)
+* PJ line separator: PJ-Chars. (line 14)
+* PJ options: PJ Options. (line 6)
+* PJ support: PJ-Dependent. (line 6)
+* plus, permitted arguments: Infix Ops. (line 44)
+* popsection directive: PopSection. (line 6)
+* Position-independent code, CRIS: CRIS-Opts. (line 27)
+* Position-independent code, symbols in, CRIS: CRIS-Pic. (line 6)
+* PowerPC architectures: PowerPC-Opts. (line 6)
+* PowerPC directives: PowerPC-Pseudo. (line 6)
+* PowerPC line comment character: PowerPC-Chars. (line 6)
+* PowerPC line separator: PowerPC-Chars. (line 18)
+* PowerPC options: PowerPC-Opts. (line 6)
+* PowerPC support: PPC-Dependent. (line 6)
+* precedence of operators: Infix Ops. (line 11)
+* precision, floating point: Flonums. (line 6)
+* prefix operators: Prefix Ops. (line 6)
+* prefixes, i386: i386-Prefixes. (line 6)
+* preprocessing: Preprocessing. (line 6)
+* preprocessing, turning on and off: Preprocessing. (line 27)
+* previous directive: Previous. (line 6)
+* primary attributes, COFF symbols: COFF Symbols. (line 13)
+* print directive: Print. (line 6)
+* proc directive, SPARC: Sparc-Directives. (line 25)
+* profiler directive, MSP 430: MSP430 Directives. (line 22)
+* profiling capability for MSP 430: MSP430 Profiling Capability.
+ (line 6)
+* protected directive: Protected. (line 6)
+* pseudo-op .arch, CRIS: CRIS-Pseudos. (line 45)
+* pseudo-op .dword, CRIS: CRIS-Pseudos. (line 12)
+* pseudo-op .syntax, CRIS: CRIS-Pseudos. (line 17)
+* pseudo-op BSPEC, MMIX: MMIX-Pseudos. (line 131)
+* pseudo-op BYTE, MMIX: MMIX-Pseudos. (line 97)
+* pseudo-op ESPEC, MMIX: MMIX-Pseudos. (line 131)
+* pseudo-op GREG, MMIX: MMIX-Pseudos. (line 50)
+* pseudo-op IS, MMIX: MMIX-Pseudos. (line 42)
+* pseudo-op LOC, MMIX: MMIX-Pseudos. (line 7)
+* pseudo-op LOCAL, MMIX: MMIX-Pseudos. (line 28)
+* pseudo-op OCTA, MMIX: MMIX-Pseudos. (line 108)
+* pseudo-op PREFIX, MMIX: MMIX-Pseudos. (line 120)
+* pseudo-op TETRA, MMIX: MMIX-Pseudos. (line 108)
+* pseudo-op WYDE, MMIX: MMIX-Pseudos. (line 108)
+* pseudo-opcodes for XStormy16: XStormy16 Opcodes. (line 6)
+* pseudo-opcodes, M680x0: M68K-Branch. (line 6)
+* pseudo-opcodes, M68HC11: M68HC11-Branch. (line 6)
+* pseudo-ops for branch, VAX: VAX-branch. (line 6)
+* pseudo-ops, CRIS: CRIS-Pseudos. (line 6)
+* pseudo-ops, machine independent: Pseudo Ops. (line 6)
+* pseudo-ops, MMIX: MMIX-Pseudos. (line 6)
+* psize directive: Psize. (line 6)
+* PSR bits: IA-64-Bits. (line 6)
+* pstring directive, TIC54X: TIC54X-Directives. (line 208)
+* psw register, V850: V850-Regs. (line 116)
+* purgem directive: Purgem. (line 6)
+* purpose of GNU assembler: GNU Assembler. (line 12)
+* pushsection directive: PushSection. (line 6)
+* quad directive: Quad. (line 6)
+* quad directive, i386: i386-Float. (line 21)
+* quad directive, x86-64: i386-Float. (line 21)
+* real-mode code, i386: i386-16bit. (line 6)
+* ref directive, TIC54X: TIC54X-Directives. (line 103)
+* register directive, SPARC: Sparc-Directives. (line 29)
+* register names, Alpha: Alpha-Regs. (line 6)
+* register names, ARC: ARC-Regs. (line 6)
+* register names, ARM: ARM-Regs. (line 6)
+* register names, AVR: AVR-Regs. (line 6)
+* register names, CRIS: CRIS-Regs. (line 6)
+* register names, H8/300: H8/300-Regs. (line 6)
+* register names, IA-64: IA-64-Regs. (line 6)
+* register names, LM32: LM32-Regs. (line 6)
+* register names, MMIX: MMIX-Regs. (line 6)
+* register names, MSP 430: MSP430-Regs. (line 6)
+* register names, Sparc: Sparc-Regs. (line 6)
+* register names, TILE-Gx: TILE-Gx Registers. (line 6)
+* register names, TILEPro: TILEPro Registers. (line 6)
+* register names, V850: V850-Regs. (line 6)
+* register names, VAX: VAX-operands. (line 17)
+* register names, Xtensa: Xtensa Registers. (line 6)
+* register names, Z80: Z80-Regs. (line 6)
+* register naming, s390: s390 Register. (line 6)
+* register operands, i386: i386-Variations. (line 15)
+* register operands, x86-64: i386-Variations. (line 15)
+* registers, D10V: D10V-Regs. (line 6)
+* registers, D30V: D30V-Regs. (line 6)
+* registers, i386: i386-Regs. (line 6)
+* registers, SH: SH-Regs. (line 6)
+* registers, SH64: SH64-Regs. (line 6)
+* registers, TIC54X memory-mapped: TIC54X-MMRegs. (line 6)
+* registers, x86-64: i386-Regs. (line 6)
+* registers, Z8000: Z8000-Regs. (line 6)
+* relaxation: Xtensa Relaxation. (line 6)
+* relaxation of ADDI instructions: Xtensa Immediate Relaxation.
+ (line 43)
+* relaxation of branch instructions: Xtensa Branch Relaxation.
+ (line 6)
+* relaxation of call instructions: Xtensa Call Relaxation.
+ (line 6)
+* relaxation of immediate fields: Xtensa Immediate Relaxation.
+ (line 6)
+* relaxation of L16SI instructions: Xtensa Immediate Relaxation.
+ (line 23)
+* relaxation of L16UI instructions: Xtensa Immediate Relaxation.
+ (line 23)
+* relaxation of L32I instructions: Xtensa Immediate Relaxation.
+ (line 23)
+* relaxation of L8UI instructions: Xtensa Immediate Relaxation.
+ (line 23)
+* relaxation of MOVI instructions: Xtensa Immediate Relaxation.
+ (line 12)
+* reloc directive: Reloc. (line 6)
+* relocation: Sections. (line 6)
+* relocation example: Ld Sections. (line 40)
+* relocations, Alpha: Alpha-Relocs. (line 6)
+* relocations, Sparc: Sparc-Relocs. (line 6)
+* repeat prefixes, i386: i386-Prefixes. (line 44)
+* reporting bugs in assembler: Reporting Bugs. (line 6)
+* rept directive: Rept. (line 6)
+* reserve directive, SPARC: Sparc-Directives. (line 39)
+* return instructions, i386: i386-Variations. (line 41)
+* return instructions, x86-64: i386-Variations. (line 41)
+* REX prefixes, i386: i386-Prefixes. (line 46)
+* rsect: Z8000 Directives. (line 52)
+* RX assembler directive .3byte: RX-Directives. (line 9)
+* RX assembler directives: RX-Directives. (line 6)
+* RX floating point: RX-Float. (line 6)
+* RX line comment character: RX-Chars. (line 6)
+* RX line separator: RX-Chars. (line 14)
+* RX modifiers: RX-Modifiers. (line 6)
+* RX options: RX-Opts. (line 6)
+* RX support: RX-Dependent. (line 6)
+* s390 floating point: s390 Floating Point. (line 6)
+* s390 instruction aliases: s390 Aliases. (line 6)
+* s390 instruction formats: s390 Formats. (line 6)
+* s390 instruction marker: s390 Instruction Marker.
+ (line 6)
+* s390 instruction mnemonics: s390 Mnemonics. (line 6)
+* s390 instruction operand modifier: s390 Operand Modifier.
+ (line 6)
+* s390 instruction operands: s390 Operands. (line 6)
+* s390 instruction syntax: s390 Syntax. (line 6)
+* s390 line comment character: s390 Characters. (line 6)
+* s390 line separator: s390 Characters. (line 13)
+* s390 literal pool entries: s390 Literal Pool Entries.
+ (line 6)
+* s390 options: s390 Options. (line 6)
+* s390 register naming: s390 Register. (line 6)
+* s390 support: S/390-Dependent. (line 6)
+* sblock directive, TIC54X: TIC54X-Directives. (line 182)
+* sbttl directive: Sbttl. (line 6)
+* schedule directive: Schedule Directive. (line 6)
+* scl directive: Scl. (line 6)
+* SCORE architectures: SCORE-Opts. (line 6)
+* SCORE directives: SCORE-Pseudo. (line 6)
+* SCORE line comment character: SCORE-Chars. (line 6)
+* SCORE line separator: SCORE-Chars. (line 14)
+* SCORE options: SCORE-Opts. (line 6)
+* SCORE processor: SCORE-Dependent. (line 6)
+* sdaoff pseudo-op, V850: V850 Opcodes. (line 65)
+* search path for .include: I. (line 6)
+* sect directive, MSP 430: MSP430 Directives. (line 18)
+* sect directive, TIC54X: TIC54X-Directives. (line 188)
+* section directive (COFF version): Section. (line 16)
+* section directive (ELF version): Section. (line 73)
+* section directive, V850: V850 Directives. (line 9)
+* section override prefixes, i386: i386-Prefixes. (line 23)
+* Section Stack <1>: PopSection. (line 6)
+* Section Stack <2>: Section. (line 68)
+* Section Stack <3>: Previous. (line 6)
+* Section Stack <4>: SubSection. (line 6)
+* Section Stack: PushSection. (line 6)
+* section-relative addressing: Secs Background. (line 68)
+* sections: Sections. (line 6)
+* sections in messages, internal: As Sections. (line 6)
+* sections, i386: i386-Variations. (line 47)
+* sections, named: Ld Sections. (line 8)
+* sections, x86-64: i386-Variations. (line 47)
+* seg directive, SPARC: Sparc-Directives. (line 44)
+* segm: Z8000 Directives. (line 10)
+* set directive: Set. (line 6)
+* set directive, TIC54X: TIC54X-Directives. (line 191)
+* SH addressing modes: SH-Addressing. (line 6)
+* SH floating point (IEEE): SH Floating Point. (line 6)
+* SH line comment character: SH-Chars. (line 6)
+* SH line separator: SH-Chars. (line 8)
+* SH machine directives: SH Directives. (line 6)
+* SH opcode summary: SH Opcodes. (line 6)
+* SH options: SH Options. (line 6)
+* SH registers: SH-Regs. (line 6)
+* SH support: SH-Dependent. (line 6)
+* SH64 ABI options: SH64 Options. (line 29)
+* SH64 addressing modes: SH64-Addressing. (line 6)
+* SH64 ISA options: SH64 Options. (line 6)
+* SH64 line comment character: SH64-Chars. (line 6)
+* SH64 line separator: SH64-Chars. (line 13)
+* SH64 machine directives: SH64 Directives. (line 9)
+* SH64 opcode summary: SH64 Opcodes. (line 6)
+* SH64 options: SH64 Options. (line 6)
+* SH64 registers: SH64-Regs. (line 6)
+* SH64 support: SH64-Dependent. (line 6)
+* shigh directive, M32R: M32R-Directives. (line 26)
+* short directive: Short. (line 6)
+* short directive, ARC: ARC Directives. (line 171)
+* short directive, TIC54X: TIC54X-Directives. (line 111)
+* SIMD, i386: i386-SIMD. (line 6)
+* SIMD, x86-64: i386-SIMD. (line 6)
+* single character constant: Chars. (line 6)
+* single directive: Single. (line 6)
+* single directive, i386: i386-Float. (line 14)
+* single directive, x86-64: i386-Float. (line 14)
+* single quote, Z80: Z80-Chars. (line 20)
+* sixteen bit integers: hword. (line 6)
+* sixteen byte integer: Octa. (line 6)
+* size directive (COFF version): Size. (line 11)
+* size directive (ELF version): Size. (line 19)
+* size modifiers, D10V: D10V-Size. (line 6)
+* size modifiers, D30V: D30V-Size. (line 6)
+* size modifiers, M680x0: M68K-Syntax. (line 8)
+* size prefixes, i386: i386-Prefixes. (line 27)
+* size suffixes, H8/300: H8/300 Opcodes. (line 163)
+* size, translations, Sparc: Sparc-Size-Translations.
+ (line 6)
+* sizes operands, i386: i386-Variations. (line 29)
+* sizes operands, x86-64: i386-Variations. (line 29)
+* skip directive: Skip. (line 6)
+* skip directive, M680x0: M68K-Directives. (line 19)
+* skip directive, SPARC: Sparc-Directives. (line 48)
+* sleb128 directive: Sleb128. (line 6)
+* small objects, MIPS ECOFF: MIPS Object. (line 11)
+* SmartMIPS instruction generation override: MIPS ASE instruction generation overrides.
+ (line 11)
+* SOM symbol attributes: SOM Symbols. (line 6)
+* source program: Input Files. (line 6)
+* source, destination operands; i386: i386-Variations. (line 22)
+* source, destination operands; x86-64: i386-Variations. (line 22)
+* sp register: Xtensa Registers. (line 6)
+* sp register, V850: V850-Regs. (line 14)
+* space directive: Space. (line 6)
+* space directive, TIC54X: TIC54X-Directives. (line 196)
+* space used, maximum for assembly: statistics. (line 6)
+* SPARC architectures: Sparc-Opts. (line 6)
+* Sparc constants: Sparc-Constants. (line 6)
+* SPARC data alignment: Sparc-Aligned-Data. (line 6)
+* SPARC floating point (IEEE): Sparc-Float. (line 6)
+* Sparc line comment character: Sparc-Chars. (line 6)
+* Sparc line separator: Sparc-Chars. (line 14)
+* SPARC machine directives: Sparc-Directives. (line 6)
+* SPARC options: Sparc-Opts. (line 6)
+* Sparc registers: Sparc-Regs. (line 6)
+* Sparc relocations: Sparc-Relocs. (line 6)
+* Sparc size translations: Sparc-Size-Translations.
+ (line 6)
+* SPARC support: Sparc-Dependent. (line 6)
+* SPARC syntax: Sparc-Aligned-Data. (line 21)
+* special characters, M680x0: M68K-Chars. (line 6)
+* special purpose registers, MSP 430: MSP430-Regs. (line 11)
+* sslist directive, TIC54X: TIC54X-Directives. (line 203)
+* ssnolist directive, TIC54X: TIC54X-Directives. (line 203)
+* stabd directive: Stab. (line 38)
+* stabn directive: Stab. (line 48)
+* stabs directive: Stab. (line 51)
+* stabX directives: Stab. (line 6)
+* standard assembler sections: Secs Background. (line 27)
+* standard input, as input file: Command Line. (line 10)
+* statement separator character: Statements. (line 6)
+* statement separator, Alpha: Alpha-Chars. (line 11)
+* statement separator, ARC: ARC-Chars. (line 12)
+* statement separator, ARM: ARM-Chars. (line 14)
+* statement separator, AVR: AVR-Chars. (line 14)
+* statement separator, CR16: CR16-Chars. (line 13)
+* statement separator, H8/300: H8/300-Chars. (line 8)
+* statement separator, i386: i386-Chars. (line 18)
+* statement separator, i860: i860-Chars. (line 14)
+* statement separator, i960: i960-Chars. (line 14)
+* statement separator, IA-64: IA-64-Chars. (line 8)
+* statement separator, IP2K: IP2K-Chars. (line 14)
+* statement separator, LM32: LM32-Chars. (line 12)
+* statement separator, M32C: M32C-Chars. (line 14)
+* statement separator, M68HC11: M68HC11-Syntax. (line 27)
+* statement separator, MicroBlaze: MicroBlaze-Chars. (line 14)
+* statement separator, MIPS: MIPS-Chars. (line 14)
+* statement separator, MSP 430: MSP430-Chars. (line 14)
+* statement separator, NS32K: NS32K-Chars. (line 18)
+* statement separator, PJ: PJ-Chars. (line 14)
+* statement separator, PowerPC: PowerPC-Chars. (line 18)
+* statement separator, RX: RX-Chars. (line 14)
+* statement separator, s390: s390 Characters. (line 13)
+* statement separator, SCORE: SCORE-Chars. (line 14)
+* statement separator, SH: SH-Chars. (line 8)
+* statement separator, SH64: SH64-Chars. (line 13)
+* statement separator, Sparc: Sparc-Chars. (line 14)
+* statement separator, TIC54X: TIC54X-Chars. (line 17)
+* statement separator, TIC6X: TIC6X Syntax. (line 13)
+* statement separator, V850: V850-Chars. (line 13)
+* statement separator, VAX: VAX-Chars. (line 14)
+* statement separator, XStormy16: XStormy16-Chars. (line 14)
+* statement separator, Z80: Z80-Chars. (line 13)
+* statement separator, Z8000: Z8000-Chars. (line 13)
+* statements, structure of: Statements. (line 6)
+* statistics, about assembly: statistics. (line 6)
+* stopping the assembly: Abort. (line 6)
+* string constants: Strings. (line 6)
+* string directive: String. (line 8)
+* string directive on HPPA: HPPA Directives. (line 137)
+* string directive, TIC54X: TIC54X-Directives. (line 208)
+* string literals: Ascii. (line 6)
+* string, copying to object file: String. (line 8)
+* string16 directive: String. (line 8)
+* string16, copying to object file: String. (line 8)
+* string32 directive: String. (line 8)
+* string32, copying to object file: String. (line 8)
+* string64 directive: String. (line 8)
+* string64, copying to object file: String. (line 8)
+* string8 directive: String. (line 8)
+* string8, copying to object file: String. (line 8)
+* struct directive: Struct. (line 6)
+* struct directive, TIC54X: TIC54X-Directives. (line 216)
+* structure debugging, COFF: Tag. (line 6)
+* sub-instruction ordering, D10V: D10V-Chars. (line 14)
+* sub-instruction ordering, D30V: D30V-Chars. (line 14)
+* sub-instructions, D10V: D10V-Subs. (line 6)
+* sub-instructions, D30V: D30V-Subs. (line 6)
+* subexpressions: Arguments. (line 24)
+* subsection directive: SubSection. (line 6)
+* subsym builtins, TIC54X: TIC54X-Macros. (line 16)
+* subtitles for listings: Sbttl. (line 6)
+* subtraction, permitted arguments: Infix Ops. (line 49)
+* summary of options: Overview. (line 6)
+* support: HPPA-Dependent. (line 6)
+* supporting files, including: Include. (line 6)
+* suppressing warnings: W. (line 11)
+* sval: Z8000 Directives. (line 33)
+* symbol attributes: Symbol Attributes. (line 6)
+* symbol attributes, a.out: a.out Symbols. (line 6)
+* symbol attributes, COFF: COFF Symbols. (line 6)
+* symbol attributes, SOM: SOM Symbols. (line 6)
+* symbol descriptor, COFF: Desc. (line 6)
+* symbol modifiers <1>: RX-Modifiers. (line 11)
+* symbol modifiers <2>: LM32-Modifiers. (line 12)
+* symbol modifiers <3>: AVR-Modifiers. (line 12)
+* symbol modifiers <4>: M68HC11-Modifiers. (line 12)
+* symbol modifiers: M32C-Modifiers. (line 11)
+* symbol modifiers, TILE-Gx: TILE-Gx Modifiers. (line 6)
+* symbol modifiers, TILEPro: TILEPro Modifiers. (line 6)
+* symbol names: Symbol Names. (line 6)
+* symbol names, $ in <1>: D30V-Chars. (line 70)
+* symbol names, $ in <2>: D10V-Chars. (line 53)
+* symbol names, $ in <3>: SH64-Chars. (line 15)
+* symbol names, $ in: SH-Chars. (line 15)
+* symbol names, local: Symbol Names. (line 22)
+* symbol names, temporary: Symbol Names. (line 35)
+* symbol storage class (COFF): Scl. (line 6)
+* symbol type: Symbol Type. (line 6)
+* symbol type, COFF: Type. (line 11)
+* symbol type, ELF: Type. (line 22)
+* symbol value: Symbol Value. (line 6)
+* symbol value, setting: Set. (line 6)
+* symbol values, assigning: Setting Symbols. (line 6)
+* symbol versioning: Symver. (line 6)
+* symbol, common: Comm. (line 6)
+* symbol, making visible to linker: Global. (line 6)
+* symbolic debuggers, information for: Stab. (line 6)
+* symbols: Symbols. (line 6)
+* Symbols in position-independent code, CRIS: CRIS-Pic. (line 6)
+* symbols with uppercase, VAX/VMS: VAX-Opts. (line 42)
+* symbols, assigning values to: Equ. (line 6)
+* Symbols, built-in, CRIS: CRIS-Symbols. (line 6)
+* Symbols, CRIS, built-in: CRIS-Symbols. (line 6)
+* symbols, local common: Lcomm. (line 6)
+* symver directive: Symver. (line 6)
+* syntax compatibility, i386: i386-Variations. (line 6)
+* syntax compatibility, x86-64: i386-Variations. (line 6)
+* syntax, AVR: AVR-Modifiers. (line 6)
+* syntax, Blackfin: Blackfin Syntax. (line 6)
+* syntax, D10V: D10V-Syntax. (line 6)
+* syntax, D30V: D30V-Syntax. (line 6)
+* syntax, LM32: LM32-Modifiers. (line 6)
+* syntax, M680x0: M68K-Syntax. (line 8)
+* syntax, M68HC11 <1>: M68HC11-Modifiers. (line 6)
+* syntax, M68HC11: M68HC11-Syntax. (line 6)
+* syntax, machine-independent: Syntax. (line 6)
+* syntax, RX: RX-Modifiers. (line 6)
+* syntax, SPARC: Sparc-Aligned-Data. (line 21)
+* syntax, TILE-Gx: TILE-Gx Syntax. (line 6)
+* syntax, TILEPro: TILEPro Syntax. (line 6)
+* syntax, Xtensa assembler: Xtensa Syntax. (line 6)
+* sysproc directive, i960: Directives-i960. (line 37)
+* tab (\t): Strings. (line 27)
+* tab directive, TIC54X: TIC54X-Directives. (line 247)
+* tag directive: Tag. (line 6)
+* tag directive, TIC54X: TIC54X-Directives. (line 250)
+* TBM, i386: i386-TBM. (line 6)
+* TBM, x86-64: i386-TBM. (line 6)
+* tdaoff pseudo-op, V850: V850 Opcodes. (line 81)
+* temporary symbol names: Symbol Names. (line 35)
+* text and data sections, joining: R. (line 6)
+* text directive: Text. (line 6)
+* text section: Ld Sections. (line 9)
+* tfloat directive, i386: i386-Float. (line 14)
+* tfloat directive, x86-64: i386-Float. (line 14)
+* Thumb support: ARM-Dependent. (line 6)
+* TIC54X builtin math functions: TIC54X-Builtins. (line 6)
+* TIC54X line comment character: TIC54X-Chars. (line 6)
+* TIC54X line separator: TIC54X-Chars. (line 17)
+* TIC54X machine directives: TIC54X-Directives. (line 6)
+* TIC54X memory-mapped registers: TIC54X-MMRegs. (line 6)
+* TIC54X options: TIC54X-Opts. (line 6)
+* TIC54X subsym builtins: TIC54X-Macros. (line 16)
+* TIC54X support: TIC54X-Dependent. (line 6)
+* TIC54X-specific macros: TIC54X-Macros. (line 6)
+* TIC6X big-endian output: TIC6X Options. (line 46)
+* TIC6X line comment character: TIC6X Syntax. (line 6)
+* TIC6X line separator: TIC6X Syntax. (line 13)
+* TIC6X little-endian output: TIC6X Options. (line 46)
+* TIC6X machine directives: TIC6X Directives. (line 6)
+* TIC6X options: TIC6X Options. (line 6)
+* TIC6X support: TIC6X-Dependent. (line 6)
+* TILE-Gx machine directives: TILE-Gx Directives. (line 6)
+* TILE-Gx modifiers: TILE-Gx Modifiers. (line 6)
+* TILE-Gx opcode names: TILE-Gx Opcodes. (line 6)
+* TILE-Gx register names: TILE-Gx Registers. (line 6)
+* TILE-Gx support: TILE-Gx-Dependent. (line 6)
+* TILE-Gx syntax: TILE-Gx Syntax. (line 6)
+* TILEPro machine directives: TILEPro Directives. (line 6)
+* TILEPro modifiers: TILEPro Modifiers. (line 6)
+* TILEPro opcode names: TILEPro Opcodes. (line 6)
+* TILEPro register names: TILEPro Registers. (line 6)
+* TILEPro support: TILEPro-Dependent. (line 6)
+* TILEPro syntax: TILEPro Syntax. (line 6)
+* time, total for assembly: statistics. (line 6)
+* title directive: Title. (line 6)
+* TMS320C6X support: TIC6X-Dependent. (line 6)
+* tp register, V850: V850-Regs. (line 20)
+* transform directive: Transform Directive. (line 6)
+* trusted compiler: f. (line 6)
+* turning preprocessing on and off: Preprocessing. (line 27)
+* type directive (COFF version): Type. (line 11)
+* type directive (ELF version): Type. (line 22)
+* type of a symbol: Symbol Type. (line 6)
+* ualong directive, SH: SH Directives. (line 6)
+* uaword directive, SH: SH Directives. (line 6)
+* ubyte directive, TIC54X: TIC54X-Directives. (line 36)
+* uchar directive, TIC54X: TIC54X-Directives. (line 36)
+* uhalf directive, TIC54X: TIC54X-Directives. (line 111)
+* uint directive, TIC54X: TIC54X-Directives. (line 111)
+* uleb128 directive: Uleb128. (line 6)
+* ulong directive, TIC54X: TIC54X-Directives. (line 135)
+* undefined section: Ld Sections. (line 36)
+* union directive, TIC54X: TIC54X-Directives. (line 250)
+* unsegm: Z8000 Directives. (line 14)
+* usect directive, TIC54X: TIC54X-Directives. (line 262)
+* ushort directive, TIC54X: TIC54X-Directives. (line 111)
+* uword directive, TIC54X: TIC54X-Directives. (line 111)
+* V850 command line options: V850 Options. (line 9)
+* V850 floating point (IEEE): V850 Floating Point. (line 6)
+* V850 line comment character: V850-Chars. (line 6)
+* V850 line separator: V850-Chars. (line 13)
+* V850 machine directives: V850 Directives. (line 6)
+* V850 opcodes: V850 Opcodes. (line 6)
+* V850 options (none): V850 Options. (line 6)
+* V850 register names: V850-Regs. (line 6)
+* V850 support: V850-Dependent. (line 6)
+* val directive: Val. (line 6)
+* value attribute, COFF: Val. (line 6)
+* value of a symbol: Symbol Value. (line 6)
+* var directive, TIC54X: TIC54X-Directives. (line 272)
+* VAX bitfields not supported: VAX-no. (line 6)
+* VAX branch improvement: VAX-branch. (line 6)
+* VAX command-line options ignored: VAX-Opts. (line 6)
+* VAX displacement sizing character: VAX-operands. (line 12)
+* VAX floating point: VAX-float. (line 6)
+* VAX immediate character: VAX-operands. (line 6)
+* VAX indirect character: VAX-operands. (line 9)
+* VAX line comment character: VAX-Chars. (line 6)
+* VAX line separator: VAX-Chars. (line 14)
+* VAX machine directives: VAX-directives. (line 6)
+* VAX opcode mnemonics: VAX-opcodes. (line 6)
+* VAX operand notation: VAX-operands. (line 6)
+* VAX register names: VAX-operands. (line 17)
+* VAX support: Vax-Dependent. (line 6)
+* Vax-11 C compatibility: VAX-Opts. (line 42)
+* VAX/VMS options: VAX-Opts. (line 42)
+* version directive: Version. (line 6)
+* version directive, TIC54X: TIC54X-Directives. (line 276)
+* version of assembler: v. (line 6)
+* versions of symbols: Symver. (line 6)
+* visibility <1>: Protected. (line 6)
+* visibility <2>: Hidden. (line 6)
+* visibility: Internal. (line 6)
+* VMS (VAX) options: VAX-Opts. (line 42)
+* vtable_entry directive: VTableEntry. (line 6)
+* vtable_inherit directive: VTableInherit. (line 6)
+* warning directive: Warning. (line 6)
+* warning for altered difference tables: K. (line 6)
+* warning messages: Errors. (line 6)
+* warnings, causing error: W. (line 16)
+* warnings, M32R: M32R-Warnings. (line 6)
+* warnings, suppressing: W. (line 11)
+* warnings, switching on: W. (line 19)
+* weak directive: Weak. (line 6)
+* weakref directive: Weakref. (line 6)
+* whitespace: Whitespace. (line 6)
+* whitespace, removed by preprocessor: Preprocessing. (line 7)
+* wide floating point directives, VAX: VAX-directives. (line 10)
+* width directive, TIC54X: TIC54X-Directives. (line 127)
+* Width of continuation lines of disassembly output: listing. (line 21)
+* Width of first line disassembly output: listing. (line 16)
+* Width of source line output: listing. (line 28)
+* wmsg directive, TIC54X: TIC54X-Directives. (line 77)
+* word directive: Word. (line 6)
+* word directive, ARC: ARC Directives. (line 174)
+* word directive, H8/300: H8/300 Directives. (line 6)
+* word directive, i386: i386-Float. (line 21)
+* word directive, SPARC: Sparc-Directives. (line 51)
+* word directive, TIC54X: TIC54X-Directives. (line 111)
+* word directive, x86-64: i386-Float. (line 21)
+* writing patterns in memory: Fill. (line 6)
+* wval: Z8000 Directives. (line 24)
+* x86 machine directives: i386-Directives. (line 6)
+* x86-64 arch directive: i386-Arch. (line 6)
+* x86-64 att_syntax pseudo op: i386-Variations. (line 6)
+* x86-64 conversion instructions: i386-Mnemonics. (line 37)
+* x86-64 floating point: i386-Float. (line 6)
+* x86-64 immediate operands: i386-Variations. (line 15)
+* x86-64 instruction naming: i386-Mnemonics. (line 6)
+* x86-64 intel_syntax pseudo op: i386-Variations. (line 6)
+* x86-64 jump optimization: i386-Jumps. (line 6)
+* x86-64 jump, call, return: i386-Variations. (line 41)
+* x86-64 jump/call operands: i386-Variations. (line 15)
+* x86-64 memory references: i386-Memory. (line 6)
+* x86-64 options: i386-Options. (line 6)
+* x86-64 register operands: i386-Variations. (line 15)
+* x86-64 registers: i386-Regs. (line 6)
+* x86-64 sections: i386-Variations. (line 47)
+* x86-64 size suffixes: i386-Variations. (line 29)
+* x86-64 source, destination operands: i386-Variations. (line 22)
+* x86-64 support: i386-Dependent. (line 6)
+* x86-64 syntax compatibility: i386-Variations. (line 6)
+* xfloat directive, TIC54X: TIC54X-Directives. (line 64)
+* xlong directive, TIC54X: TIC54X-Directives. (line 135)
+* XStormy16 comment character: XStormy16-Chars. (line 11)
+* XStormy16 line comment character: XStormy16-Chars. (line 6)
+* XStormy16 line separator: XStormy16-Chars. (line 14)
+* XStormy16 machine directives: XStormy16 Directives.
+ (line 6)
+* XStormy16 pseudo-opcodes: XStormy16 Opcodes. (line 6)
+* XStormy16 support: XSTORMY16-Dependent. (line 6)
+* Xtensa architecture: Xtensa-Dependent. (line 6)
+* Xtensa assembler syntax: Xtensa Syntax. (line 6)
+* Xtensa directives: Xtensa Directives. (line 6)
+* Xtensa opcode names: Xtensa Opcodes. (line 6)
+* Xtensa register names: Xtensa Registers. (line 6)
+* xword directive, SPARC: Sparc-Directives. (line 55)
+* Z80 $: Z80-Chars. (line 15)
+* Z80 ': Z80-Chars. (line 20)
+* Z80 floating point: Z80 Floating Point. (line 6)
+* Z80 line comment character: Z80-Chars. (line 6)
+* Z80 line separator: Z80-Chars. (line 13)
+* Z80 options: Z80 Options. (line 6)
+* Z80 registers: Z80-Regs. (line 6)
+* Z80 support: Z80-Dependent. (line 6)
+* Z80 Syntax: Z80 Options. (line 47)
+* Z80, \: Z80-Chars. (line 18)
+* Z80, case sensitivity: Z80-Case. (line 6)
+* Z80-only directives: Z80 Directives. (line 9)
+* Z800 addressing modes: Z8000-Addressing. (line 6)
+* Z8000 directives: Z8000 Directives. (line 6)
+* Z8000 line comment character: Z8000-Chars. (line 6)
+* Z8000 line separator: Z8000-Chars. (line 13)
+* Z8000 opcode summary: Z8000 Opcodes. (line 6)
+* Z8000 options: Z8000 Options. (line 6)
+* Z8000 registers: Z8000-Regs. (line 6)
+* Z8000 support: Z8000-Dependent. (line 6)
+* zdaoff pseudo-op, V850: V850 Opcodes. (line 99)
+* zero register, V850: V850-Regs. (line 7)
+* zero-terminated strings: Asciz. (line 6)
+
+
+
+Tag Table:
+Node: Top836
+Node: Overview1825
+Node: Manual31840
+Node: GNU Assembler32784
+Node: Object Formats33955
+Node: Command Line34407
+Node: Input Files35494
+Node: Object37475
+Node: Errors38371
+Node: Invoking39566
+Node: a41521
+Node: alternate43432
+Node: D43604
+Node: f43837
+Node: I44345
+Node: K44889
+Node: L45193
+Node: listing45932
+Node: M47591
+Node: MD51992
+Node: o52418
+Node: R52873
+Node: statistics53903
+Node: traditional-format54310
+Node: v54783
+Node: W55058
+Node: Z55965
+Node: Syntax56487
+Node: Preprocessing57079
+Node: Whitespace58642
+Node: Comments59038
+Node: Symbol Intro61049
+Node: Statements61739
+Node: Constants63728
+Node: Characters64359
+Node: Strings64861
+Node: Chars67027
+Node: Numbers67781
+Node: Integers68321
+Node: Bignums68977
+Node: Flonums69333
+Node: Sections71080
+Node: Secs Background71458
+Node: Ld Sections76497
+Node: As Sections78881
+Node: Sub-Sections79791
+Node: bss82936
+Node: Symbols83886
+Node: Labels84534
+Node: Setting Symbols85265
+Node: Symbol Names85819
+Node: Dot90860
+Node: Symbol Attributes91307
+Node: Symbol Value92044
+Node: Symbol Type93089
+Node: a.out Symbols93477
+Node: Symbol Desc93739
+Node: Symbol Other94034
+Node: COFF Symbols94203
+Node: SOM Symbols94876
+Node: Expressions95318
+Node: Empty Exprs96067
+Node: Integer Exprs96414
+Node: Arguments96809
+Node: Operators97915
+Node: Prefix Ops98250
+Node: Infix Ops98578
+Node: Pseudo Ops100968
+Node: Abort106496
+Node: ABORT (COFF)106908
+Node: Align107116
+Node: Altmacro109398
+Node: Ascii110727
+Node: Asciz111036
+Node: Balign111281
+Node: Byte113144
+Node: CFI directives113392
+Node: Comm119019
+Ref: Comm-Footnote-1120620
+Node: Data120982
+Node: Def121299
+Node: Desc121531
+Node: Dim122031
+Node: Double122288
+Node: Eject122626
+Node: Else122801
+Node: Elseif123101
+Node: End123395
+Node: Endef123610
+Node: Endfunc123787
+Node: Endif123962
+Node: Equ124223
+Node: Equiv124737
+Node: Eqv125293
+Node: Err125657
+Node: Error125968
+Node: Exitm126413
+Node: Extern126582
+Node: Fail126843
+Node: File127288
+Node: Fill128617
+Node: Float129581
+Node: Func129923
+Node: Global130513
+Node: Gnu_attribute131270
+Node: Hidden131495
+Node: hword132081
+Node: Ident132409
+Node: If132983
+Node: Incbin136042
+Node: Include136737
+Node: Int137288
+Node: Internal137669
+Node: Irp138317
+Node: Irpc139196
+Node: Lcomm140113
+Node: Lflags140861
+Node: Line141055
+Node: Linkonce141968
+Node: List143197
+Node: Ln143805
+Node: Loc143955
+Node: Loc_mark_labels145341
+Node: Local145825
+Node: Long146437
+Node: Macro146615
+Node: MRI152537
+Node: Noaltmacro152875
+Node: Nolist153044
+Node: Octa153474
+Node: Offset153811
+Node: Org154138
+Node: P2align155423
+Node: PopSection157351
+Node: Previous157859
+Node: Print159272
+Node: Protected159501
+Node: Psize160148
+Node: Purgem160832
+Node: PushSection161053
+Node: Quad161796
+Node: Reloc162252
+Node: Rept163013
+Node: Sbttl163427
+Node: Scl163792
+Node: Section164133
+Node: Set170248
+Node: Short170819
+Node: Single171140
+Node: Size171487
+Node: Skip172161
+Node: Sleb128172485
+Node: Space172809
+Node: Stab173450
+Node: String175454
+Node: Struct176448
+Node: SubSection177173
+Node: Symver177736
+Node: Tag180129
+Node: Text180511
+Node: Title180832
+Node: Type181213
+Node: Uleb128183526
+Node: Val183850
+Node: Version184100
+Node: VTableEntry184375
+Node: VTableInherit184665
+Node: Warning185115
+Node: Weak185349
+Node: Weakref186018
+Node: Word186983
+Node: Deprecated188829
+Node: Object Attributes189064
+Node: GNU Object Attributes190784
+Node: Defining New Object Attributes193337
+Node: Machine Dependencies194134
+Node: Alpha-Dependent197622
+Node: Alpha Notes198036
+Node: Alpha Options198317
+Node: Alpha Syntax200792
+Node: Alpha-Chars201261
+Node: Alpha-Regs201673
+Node: Alpha-Relocs202060
+Node: Alpha Floating Point208318
+Node: Alpha Directives208540
+Node: Alpha Opcodes214063
+Node: ARC-Dependent214358
+Node: ARC Options214741
+Node: ARC Syntax215810
+Node: ARC-Chars216042
+Node: ARC-Regs216523
+Node: ARC Floating Point216647
+Node: ARC Directives216958
+Node: ARC Opcodes222930
+Node: ARM-Dependent223156
+Node: ARM Options223621
+Node: ARM Syntax232120
+Node: ARM-Instruction-Set232488
+Node: ARM-Chars233720
+Node: ARM-Regs234431
+Node: ARM-Neon-Alignment234640
+Node: ARM Floating Point235104
+Node: ARM-Relocations235303
+Node: ARM Directives236317
+Ref: arm_pad237634
+Ref: arm_fnend240971
+Ref: arm_fnstart241295
+Ref: arm_save244305
+Ref: arm_setfp245006
+Node: ARM Opcodes248298
+Node: ARM Mapping Symbols250386
+Node: ARM Unwinding Tutorial251196
+Node: AVR-Dependent257398
+Node: AVR Options257688
+Node: AVR Syntax262480
+Node: AVR-Chars262767
+Node: AVR-Regs263326
+Node: AVR-Modifiers263905
+Node: AVR Opcodes265965
+Node: Blackfin-Dependent271211
+Node: Blackfin Options271523
+Node: Blackfin Syntax272497
+Node: Blackfin Directives278704
+Node: CR16-Dependent279450
+Node: CR16 Operand Qualifiers279750
+Node: CR16 Syntax282411
+Node: CR16-Chars282597
+Node: CRIS-Dependent283134
+Node: CRIS-Opts283480
+Ref: march-option285166
+Node: CRIS-Expand286983
+Node: CRIS-Symbols288166
+Node: CRIS-Syntax289335
+Node: CRIS-Chars289671
+Node: CRIS-Pic290222
+Ref: crispic290418
+Node: CRIS-Regs293958
+Node: CRIS-Pseudos294375
+Ref: crisnous295151
+Node: D10V-Dependent296433
+Node: D10V-Opts296784
+Node: D10V-Syntax297746
+Node: D10V-Size298275
+Node: D10V-Subs299248
+Node: D10V-Chars300283
+Node: D10V-Regs302195
+Node: D10V-Addressing303240
+Node: D10V-Word303926
+Node: D10V-Float304441
+Node: D10V-Opcodes304752
+Node: D30V-Dependent305145
+Node: D30V-Opts305498
+Node: D30V-Syntax306173
+Node: D30V-Size306705
+Node: D30V-Subs307676
+Node: D30V-Chars308711
+Node: D30V-Guarded311317
+Node: D30V-Regs311997
+Node: D30V-Addressing313136
+Node: D30V-Float313804
+Node: D30V-Opcodes314115
+Node: H8/300-Dependent314508
+Node: H8/300 Options314920
+Node: H8/300 Syntax315187
+Node: H8/300-Chars315488
+Node: H8/300-Regs315787
+Node: H8/300-Addressing316706
+Node: H8/300 Floating Point317747
+Node: H8/300 Directives318074
+Node: H8/300 Opcodes319202
+Node: HPPA-Dependent327524
+Node: HPPA Notes327959
+Node: HPPA Options328717
+Node: HPPA Syntax328912
+Node: HPPA Floating Point330182
+Node: HPPA Directives330388
+Node: HPPA Opcodes339074
+Node: ESA/390-Dependent339333
+Node: ESA/390 Notes339793
+Node: ESA/390 Options340584
+Node: ESA/390 Syntax340794
+Node: ESA/390 Floating Point342967
+Node: ESA/390 Directives343246
+Node: ESA/390 Opcodes346535
+Node: i386-Dependent346797
+Node: i386-Options348127
+Node: i386-Directives352607
+Node: i386-Syntax353345
+Node: i386-Variations353650
+Node: i386-Chars356191
+Node: i386-Mnemonics356920
+Node: i386-Regs360213
+Node: i386-Prefixes362258
+Node: i386-Memory365018
+Node: i386-Jumps367955
+Node: i386-Float369076
+Node: i386-SIMD370907
+Node: i386-LWP372016
+Node: i386-BMI372850
+Node: i386-TBM373228
+Node: i386-16bit373758
+Node: i386-Bugs375829
+Node: i386-Arch376583
+Node: i386-Notes379297
+Node: i860-Dependent380155
+Node: Notes-i860380595
+Node: Options-i860381500
+Node: Directives-i860382863
+Node: Opcodes for i860383932
+Node: Syntax of i860386122
+Node: i860-Chars386306
+Node: i960-Dependent386865
+Node: Options-i960387312
+Node: Floating Point-i960391197
+Node: Directives-i960391465
+Node: Opcodes for i960393499
+Node: callj-i960394139
+Node: Compare-and-branch-i960394628
+Node: Syntax of i960396532
+Node: i960-Chars396732
+Node: IA-64-Dependent397275
+Node: IA-64 Options397576
+Node: IA-64 Syntax400727
+Node: IA-64-Chars401133
+Node: IA-64-Regs401363
+Node: IA-64-Bits402289
+Node: IA-64-Relocs402819
+Node: IA-64 Opcodes403291
+Node: IP2K-Dependent403563
+Node: IP2K-Opts403835
+Node: IP2K-Syntax404335
+Node: IP2K-Chars404509
+Node: LM32-Dependent405052
+Node: LM32 Options405347
+Node: LM32 Syntax405981
+Node: LM32-Regs406277
+Node: LM32-Modifiers407236
+Node: LM32-Chars408611
+Node: LM32 Opcodes409119
+Node: M32C-Dependent409423
+Node: M32C-Opts409932
+Node: M32C-Syntax410352
+Node: M32C-Modifiers410587
+Node: M32C-Chars412376
+Node: M32R-Dependent412942
+Node: M32R-Opts413263
+Node: M32R-Directives417430
+Node: M32R-Warnings421405
+Node: M68K-Dependent424411
+Node: M68K-Opts424878
+Node: M68K-Syntax432251
+Node: M68K-Moto-Syntax434091
+Node: M68K-Float436681
+Node: M68K-Directives437201
+Node: M68K-opcodes438529
+Node: M68K-Branch438755
+Node: M68K-Chars442953
+Node: M68HC11-Dependent443816
+Node: M68HC11-Opts444353
+Node: M68HC11-Syntax448174
+Node: M68HC11-Modifiers450965
+Node: M68HC11-Directives452793
+Node: M68HC11-Float454169
+Node: M68HC11-opcodes454697
+Node: M68HC11-Branch454879
+Node: MicroBlaze-Dependent457328
+Node: MicroBlaze Directives458020
+Node: MicroBlaze Syntax459403
+Node: MicroBlaze-Chars459635
+Node: MIPS-Dependent460187
+Node: MIPS Opts461415
+Node: MIPS Object472437
+Node: MIPS Stabs474003
+Node: MIPS symbol sizes474725
+Node: MIPS ISA476394
+Node: MIPS autoextend478131
+Node: MIPS insn478861
+Node: MIPS option stack480146
+Node: MIPS ASE instruction generation overrides480920
+Node: MIPS floating-point482958
+Node: MIPS Syntax483864
+Node: MIPS-Chars484126
+Node: MMIX-Dependent484668
+Node: MMIX-Opts485048
+Node: MMIX-Expand488652
+Node: MMIX-Syntax489967
+Ref: mmixsite490324
+Node: MMIX-Chars491165
+Node: MMIX-Symbols492039
+Node: MMIX-Regs494107
+Node: MMIX-Pseudos495132
+Ref: MMIX-loc495273
+Ref: MMIX-local496353
+Ref: MMIX-is496885
+Ref: MMIX-greg497156
+Ref: GREG-base498075
+Ref: MMIX-byte499392
+Ref: MMIX-constants499863
+Ref: MMIX-prefix500509
+Ref: MMIX-spec500883
+Node: MMIX-mmixal501217
+Node: MSP430-Dependent504715
+Node: MSP430 Options505184
+Node: MSP430 Syntax505470
+Node: MSP430-Macros505786
+Node: MSP430-Chars506517
+Node: MSP430-Regs507232
+Node: MSP430-Ext507792
+Node: MSP430 Floating Point509613
+Node: MSP430 Directives509837
+Node: MSP430 Opcodes510628
+Node: MSP430 Profiling Capability511023
+Node: NS32K-Dependent513352
+Node: NS32K Syntax513575
+Node: NS32K-Chars513724
+Node: PDP-11-Dependent514464
+Node: PDP-11-Options514853
+Node: PDP-11-Pseudos519924
+Node: PDP-11-Syntax520269
+Node: PDP-11-Mnemonics521101
+Node: PDP-11-Synthetic521403
+Node: PJ-Dependent521621
+Node: PJ Options521884
+Node: PJ Syntax522179
+Node: PJ-Chars522344
+Node: PPC-Dependent522893
+Node: PowerPC-Opts523224
+Node: PowerPC-Pseudo526353
+Node: PowerPC-Syntax526975
+Node: PowerPC-Chars527165
+Node: RX-Dependent527916
+Node: RX-Opts528346
+Node: RX-Modifiers530372
+Node: RX-Directives530703
+Node: RX-Float531019
+Node: RX-Syntax531660
+Node: RX-Chars531839
+Node: S/390-Dependent532391
+Node: s390 Options533099
+Node: s390 Characters534645
+Node: s390 Syntax535166
+Node: s390 Register536067
+Node: s390 Mnemonics536880
+Node: s390 Operands539900
+Node: s390 Formats542519
+Node: s390 Aliases550390
+Node: s390 Operand Modifier554287
+Node: s390 Instruction Marker558088
+Node: s390 Literal Pool Entries559104
+Node: s390 Directives561027
+Node: s390 Floating Point565455
+Node: SCORE-Dependent565901
+Node: SCORE-Opts566206
+Node: SCORE-Pseudo567494
+Node: SCORE-Syntax569571
+Node: SCORE-Chars569753
+Node: SH-Dependent570311
+Node: SH Options570722
+Node: SH Syntax571777
+Node: SH-Chars572050
+Node: SH-Regs572593
+Node: SH-Addressing573207
+Node: SH Floating Point574116
+Node: SH Directives575210
+Node: SH Opcodes575580
+Node: SH64-Dependent579902
+Node: SH64 Options580265
+Node: SH64 Syntax582062
+Node: SH64-Chars582345
+Node: SH64-Regs582894
+Node: SH64-Addressing583990
+Node: SH64 Directives585173
+Node: SH64 Opcodes586283
+Node: Sparc-Dependent586999
+Node: Sparc-Opts587411
+Node: Sparc-Aligned-Data592069
+Node: Sparc-Syntax592901
+Node: Sparc-Chars593475
+Node: Sparc-Regs594038
+Node: Sparc-Constants599149
+Node: Sparc-Relocs603909
+Node: Sparc-Size-Translations608589
+Node: Sparc-Float610238
+Node: Sparc-Directives610433
+Node: TIC54X-Dependent612393
+Node: TIC54X-Opts613156
+Node: TIC54X-Block614199
+Node: TIC54X-Env614559
+Node: TIC54X-Constants614907
+Node: TIC54X-Subsyms615309
+Node: TIC54X-Locals617218
+Node: TIC54X-Builtins617962
+Node: TIC54X-Ext620433
+Node: TIC54X-Directives621004
+Node: TIC54X-Macros631905
+Node: TIC54X-MMRegs634016
+Node: TIC54X-Syntax634254
+Node: TIC54X-Chars634444
+Node: TIC6X-Dependent635135
+Node: TIC6X Options635438
+Node: TIC6X Syntax637439
+Node: TIC6X Directives638541
+Node: TILE-Gx-Dependent640842
+Node: TILE-Gx Options641152
+Node: TILE-Gx Syntax641408
+Node: TILE-Gx Opcodes643642
+Node: TILE-Gx Registers643930
+Node: TILE-Gx Modifiers644702
+Node: TILE-Gx Directives649850
+Node: TILEPro-Dependent650754
+Node: TILEPro Options651063
+Node: TILEPro Syntax651247
+Node: TILEPro Opcodes653481
+Node: TILEPro Registers653772
+Node: TILEPro Modifiers654542
+Node: TILEPro Directives658247
+Node: Z80-Dependent659151
+Node: Z80 Options659539
+Node: Z80 Syntax660962
+Node: Z80-Chars661634
+Node: Z80-Regs662484
+Node: Z80-Case662836
+Node: Z80 Floating Point663281
+Node: Z80 Directives663475
+Node: Z80 Opcodes665100
+Node: Z8000-Dependent666444
+Node: Z8000 Options667405
+Node: Z8000 Syntax667622
+Node: Z8000-Chars667912
+Node: Z8000-Regs668394
+Node: Z8000-Addressing669184
+Node: Z8000 Directives670301
+Node: Z8000 Opcodes671910
+Node: Vax-Dependent681852
+Node: VAX-Opts682412
+Node: VAX-float686147
+Node: VAX-directives686779
+Node: VAX-opcodes687640
+Node: VAX-branch688029
+Node: VAX-operands690536
+Node: VAX-no691299
+Node: VAX-Syntax691555
+Node: VAX-Chars691721
+Node: V850-Dependent692275
+Node: V850 Options692677
+Node: V850 Syntax695528
+Node: V850-Chars695768
+Node: V850-Regs696312
+Node: V850 Floating Point697880
+Node: V850 Directives698086
+Node: V850 Opcodes699689
+Node: XSTORMY16-Dependent705581
+Node: XStormy16 Syntax705926
+Node: XStormy16-Chars706116
+Node: XStormy16 Directives706729
+Node: XStormy16 Opcodes707384
+Node: Xtensa-Dependent708440
+Node: Xtensa Options709174
+Node: Xtensa Syntax711911
+Node: Xtensa Opcodes714055
+Node: Xtensa Registers715849
+Node: Xtensa Optimizations716482
+Node: Density Instructions716934
+Node: Xtensa Automatic Alignment718036
+Node: Xtensa Relaxation720483
+Node: Xtensa Branch Relaxation721391
+Node: Xtensa Call Relaxation722763
+Node: Xtensa Immediate Relaxation724549
+Node: Xtensa Directives727123
+Node: Schedule Directive728832
+Node: Longcalls Directive729172
+Node: Transform Directive729716
+Node: Literal Directive730458
+Ref: Literal Directive-Footnote-1733997
+Node: Literal Position Directive734139
+Node: Literal Prefix Directive735838
+Node: Absolute Literals Directive736736
+Node: Reporting Bugs738043
+Node: Bug Criteria738769
+Node: Bug Reporting739536
+Node: Acknowledgements746185
+Ref: Acknowledgements-Footnote-1751151
+Node: GNU Free Documentation License751177
+Node: AS Index776346
+
+End Tag Table
diff --git a/gas/po/es.gmo b/gas/po/es.gmo
new file mode 100644
index 0000000000..ff8e71ad61
--- /dev/null
+++ b/gas/po/es.gmo
Binary files differ
diff --git a/gas/po/fi.gmo b/gas/po/fi.gmo
new file mode 100644
index 0000000000..aaaa271176
--- /dev/null
+++ b/gas/po/fi.gmo
Binary files differ
diff --git a/gas/po/fr.gmo b/gas/po/fr.gmo
new file mode 100644
index 0000000000..94fa3abf13
--- /dev/null
+++ b/gas/po/fr.gmo
Binary files differ
diff --git a/gas/po/id.gmo b/gas/po/id.gmo
new file mode 100644
index 0000000000..2ecf194029
--- /dev/null
+++ b/gas/po/id.gmo
Binary files differ
diff --git a/gas/po/ru.gmo b/gas/po/ru.gmo
new file mode 100644
index 0000000000..87734f2850
--- /dev/null
+++ b/gas/po/ru.gmo
Binary files differ
diff --git a/gas/po/rw.gmo b/gas/po/rw.gmo
new file mode 100644
index 0000000000..8879b0effc
--- /dev/null
+++ b/gas/po/rw.gmo
Binary files differ
diff --git a/gas/po/tr.gmo b/gas/po/tr.gmo
new file mode 100644
index 0000000000..bf7736d81b
--- /dev/null
+++ b/gas/po/tr.gmo
Binary files differ
diff --git a/gold/po/es.gmo b/gold/po/es.gmo
new file mode 100644
index 0000000000..e79c3047cd
--- /dev/null
+++ b/gold/po/es.gmo
Binary files differ
diff --git a/gold/po/fi.gmo b/gold/po/fi.gmo
new file mode 100644
index 0000000000..59175d3c1e
--- /dev/null
+++ b/gold/po/fi.gmo
Binary files differ
diff --git a/gold/po/id.gmo b/gold/po/id.gmo
new file mode 100644
index 0000000000..bd5a80090e
--- /dev/null
+++ b/gold/po/id.gmo
Binary files differ
diff --git a/gold/po/vi.gmo b/gold/po/vi.gmo
new file mode 100644
index 0000000000..4495ad787f
--- /dev/null
+++ b/gold/po/vi.gmo
Binary files differ
diff --git a/gprof/gprof.info b/gprof/gprof.info
new file mode 100644
index 0000000000..9667777b5c
--- /dev/null
+++ b/gprof/gprof.info
@@ -0,0 +1,2474 @@
+This is gprof.info, produced by makeinfo version 4.8 from gprof.texi.
+
+INFO-DIR-SECTION Software development
+START-INFO-DIR-ENTRY
+* gprof: (gprof). Profiling your program's execution
+END-INFO-DIR-ENTRY
+
+ This file documents the gprof profiler of the GNU system.
+
+ Copyright (C) 1988, 1992, 1997, 1998, 1999, 2000, 2001, 2003, 2007,
+2008, 2009 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.3 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".
+
+
+File: gprof.info, Node: Top, Next: Introduction, Up: (dir)
+
+Profiling a Program: Where Does It Spend Its Time?
+**************************************************
+
+This manual describes the GNU profiler, `gprof', and how you can use it
+to determine which parts of a program are taking most of the execution
+time. We assume that you know how to write, compile, and execute
+programs. GNU `gprof' was written by Jay Fenlason.
+
+ This manual is for `gprof' (GNU Binutils) version 2.21.90.
+
+ This document is distributed under the terms of the GNU Free
+Documentation License version 1.3. A copy of the license is included
+in the section entitled "GNU Free Documentation License".
+
+* Menu:
+
+* Introduction:: What profiling means, and why it is useful.
+
+* Compiling:: How to compile your program for profiling.
+* Executing:: Executing your program to generate profile data
+* Invoking:: How to run `gprof', and its options
+
+* Output:: Interpreting `gprof''s output
+
+* Inaccuracy:: Potential problems you should be aware of
+* How do I?:: Answers to common questions
+* Incompatibilities:: (between GNU `gprof' and Unix `gprof'.)
+* Details:: Details of how profiling is done
+* GNU Free Documentation License:: GNU Free Documentation License
+
+
+File: gprof.info, Node: Introduction, Next: Compiling, Prev: Top, Up: Top
+
+1 Introduction to Profiling
+***************************
+
+Profiling allows you to learn where your program spent its time and
+which functions called which other functions while it was executing.
+This information can show you which pieces of your program are slower
+than you expected, and might be candidates for rewriting to make your
+program execute faster. It can also tell you which functions are being
+called more or less often than you expected. This may help you spot
+bugs that had otherwise been unnoticed.
+
+ Since the profiler uses information collected during the actual
+execution of your program, it can be used on programs that are too
+large or too complex to analyze by reading the source. However, how
+your program is run will affect the information that shows up in the
+profile data. If you don't use some feature of your program while it
+is being profiled, no profile information will be generated for that
+feature.
+
+ Profiling has several steps:
+
+ * You must compile and link your program with profiling enabled.
+ *Note Compiling a Program for Profiling: Compiling.
+
+ * You must execute your program to generate a profile data file.
+ *Note Executing the Program: Executing.
+
+ * You must run `gprof' to analyze the profile data. *Note `gprof'
+ Command Summary: Invoking.
+
+ The next three chapters explain these steps in greater detail.
+
+ Several forms of output are available from the analysis.
+
+ The "flat profile" shows how much time your program spent in each
+function, and how many times that function was called. If you simply
+want to know which functions burn most of the cycles, it is stated
+concisely here. *Note The Flat Profile: Flat Profile.
+
+ The "call graph" shows, for each function, which functions called
+it, which other functions it called, and how many times. There is also
+an estimate of how much time was spent in the subroutines of each
+function. This can suggest places where you might try to eliminate
+function calls that use a lot of time. *Note The Call Graph: Call
+Graph.
+
+ The "annotated source" listing is a copy of the program's source
+code, labeled with the number of times each line of the program was
+executed. *Note The Annotated Source Listing: Annotated Source.
+
+ To better understand how profiling works, you may wish to read a
+description of its implementation. *Note Implementation of Profiling:
+Implementation.
+
+
+File: gprof.info, Node: Compiling, Next: Executing, Prev: Introduction, Up: Top
+
+2 Compiling a Program for Profiling
+***********************************
+
+The first step in generating profile information for your program is to
+compile and link it with profiling enabled.
+
+ To compile a source file for profiling, specify the `-pg' option when
+you run the compiler. (This is in addition to the options you normally
+use.)
+
+ To link the program for profiling, if you use a compiler such as `cc'
+to do the linking, simply specify `-pg' in addition to your usual
+options. The same option, `-pg', alters either compilation or linking
+to do what is necessary for profiling. Here are examples:
+
+ cc -g -c myprog.c utils.c -pg
+ cc -o myprog myprog.o utils.o -pg
+
+ The `-pg' option also works with a command that both compiles and
+links:
+
+ cc -o myprog myprog.c utils.c -g -pg
+
+ Note: The `-pg' option must be part of your compilation options as
+well as your link options. If it is not then no call-graph data will
+be gathered and when you run `gprof' you will get an error message like
+this:
+
+ gprof: gmon.out file is missing call-graph data
+
+ If you add the `-Q' switch to suppress the printing of the call
+graph data you will still be able to see the time samples:
+
+ Flat profile:
+
+ Each sample counts as 0.01 seconds.
+ % cumulative self self total
+ time seconds seconds calls Ts/call Ts/call name
+ 44.12 0.07 0.07 zazLoop
+ 35.29 0.14 0.06 main
+ 20.59 0.17 0.04 bazMillion
+
+ If you run the linker `ld' directly instead of through a compiler
+such as `cc', you may have to specify a profiling startup file
+`gcrt0.o' as the first input file instead of the usual startup file
+`crt0.o'. In addition, you would probably want to specify the
+profiling C library, `libc_p.a', by writing `-lc_p' instead of the
+usual `-lc'. This is not absolutely necessary, but doing this gives
+you number-of-calls information for standard library functions such as
+`read' and `open'. For example:
+
+ ld -o myprog /lib/gcrt0.o myprog.o utils.o -lc_p
+
+ If you are running the program on a system which supports shared
+libraries you may run into problems with the profiling support code in
+a shared library being called before that library has been fully
+initialised. This is usually detected by the program encountering a
+segmentation fault as soon as it is run. The solution is to link
+against a static version of the library containing the profiling
+support code, which for `gcc' users can be done via the `-static' or
+`-static-libgcc' command line option. For example:
+
+ gcc -g -pg -static-libgcc myprog.c utils.c -o myprog
+
+ If you compile only some of the modules of the program with `-pg',
+you can still profile the program, but you won't get complete
+information about the modules that were compiled without `-pg'. The
+only information you get for the functions in those modules is the
+total time spent in them; there is no record of how many times they
+were called, or from where. This will not affect the flat profile
+(except that the `calls' field for the functions will be blank), but
+will greatly reduce the usefulness of the call graph.
+
+ If you wish to perform line-by-line profiling you should use the
+`gcov' tool instead of `gprof'. See that tool's manual or info pages
+for more details of how to do this.
+
+ Note, older versions of `gcc' produce line-by-line profiling
+information that works with `gprof' rather than `gcov' so there is
+still support for displaying this kind of information in `gprof'. *Note
+Line-by-line Profiling: Line-by-line.
+
+ It also worth noting that `gcc' implements a
+`-finstrument-functions' command line option which will insert calls to
+special user supplied instrumentation routines at the entry and exit of
+every function in their program. This can be used to implement an
+alternative profiling scheme.
+
+
+File: gprof.info, Node: Executing, Next: Invoking, Prev: Compiling, Up: Top
+
+3 Executing the Program
+***********************
+
+Once the program is compiled for profiling, you must run it in order to
+generate the information that `gprof' needs. Simply run the program as
+usual, using the normal arguments, file names, etc. The program should
+run normally, producing the same output as usual. It will, however, run
+somewhat slower than normal because of the time spent collecting and
+writing the profile data.
+
+ The way you run the program--the arguments and input that you give
+it--may have a dramatic effect on what the profile information shows.
+The profile data will describe the parts of the program that were
+activated for the particular input you use. For example, if the first
+command you give to your program is to quit, the profile data will show
+the time used in initialization and in cleanup, but not much else.
+
+ Your program will write the profile data into a file called
+`gmon.out' just before exiting. If there is already a file called
+`gmon.out', its contents are overwritten. There is currently no way to
+tell the program to write the profile data under a different name, but
+you can rename the file afterwards if you are concerned that it may be
+overwritten.
+
+ In order to write the `gmon.out' file properly, your program must
+exit normally: by returning from `main' or by calling `exit'. Calling
+the low-level function `_exit' does not write the profile data, and
+neither does abnormal termination due to an unhandled signal.
+
+ The `gmon.out' file is written in the program's _current working
+directory_ at the time it exits. This means that if your program calls
+`chdir', the `gmon.out' file will be left in the last directory your
+program `chdir''d to. If you don't have permission to write in this
+directory, the file is not written, and you will get an error message.
+
+ Older versions of the GNU profiling library may also write a file
+called `bb.out'. This file, if present, contains an human-readable
+listing of the basic-block execution counts. Unfortunately, the
+appearance of a human-readable `bb.out' means the basic-block counts
+didn't get written into `gmon.out'. The Perl script `bbconv.pl',
+included with the `gprof' source distribution, will convert a `bb.out'
+file into a format readable by `gprof'. Invoke it like this:
+
+ bbconv.pl < bb.out > BH-DATA
+
+ This translates the information in `bb.out' into a form that `gprof'
+can understand. But you still need to tell `gprof' about the existence
+of this translated information. To do that, include BB-DATA on the
+`gprof' command line, _along with `gmon.out'_, like this:
+
+ gprof OPTIONS EXECUTABLE-FILE gmon.out BB-DATA [YET-MORE-PROFILE-DATA-FILES...] [> OUTFILE]
+
+
+File: gprof.info, Node: Invoking, Next: Output, Prev: Executing, Up: Top
+
+4 `gprof' Command Summary
+*************************
+
+After you have a profile data file `gmon.out', you can run `gprof' to
+interpret the information in it. The `gprof' program prints a flat
+profile and a call graph on standard output. Typically you would
+redirect the output of `gprof' into a file with `>'.
+
+ You run `gprof' like this:
+
+ gprof OPTIONS [EXECUTABLE-FILE [PROFILE-DATA-FILES...]] [> OUTFILE]
+
+Here square-brackets indicate optional arguments.
+
+ If you omit the executable file name, the file `a.out' is used. If
+you give no profile data file name, the file `gmon.out' is used. If
+any file is not in the proper format, or if the profile data file does
+not appear to belong to the executable file, an error message is
+printed.
+
+ You can give more than one profile data file by entering all their
+names after the executable file name; then the statistics in all the
+data files are summed together.
+
+ The order of these options does not matter.
+
+* Menu:
+
+* Output Options:: Controlling `gprof''s output style
+* Analysis Options:: Controlling how `gprof' analyzes its data
+* Miscellaneous Options::
+* Deprecated Options:: Options you no longer need to use, but which
+ have been retained for compatibility
+* Symspecs:: Specifying functions to include or exclude
+
+
+File: gprof.info, Node: Output Options, Next: Analysis Options, Up: Invoking
+
+4.1 Output Options
+==================
+
+These options specify which of several output formats `gprof' should
+produce.
+
+ Many of these options take an optional "symspec" to specify
+functions to be included or excluded. These options can be specified
+multiple times, with different symspecs, to include or exclude sets of
+symbols. *Note Symspecs: Symspecs.
+
+ Specifying any of these options overrides the default (`-p -q'),
+which prints a flat profile and call graph analysis for all functions.
+
+`-A[SYMSPEC]'
+`--annotated-source[=SYMSPEC]'
+ The `-A' option causes `gprof' to print annotated source code. If
+ SYMSPEC is specified, print output only for matching symbols.
+ *Note The Annotated Source Listing: Annotated Source.
+
+`-b'
+`--brief'
+ If the `-b' option is given, `gprof' doesn't print the verbose
+ blurbs that try to explain the meaning of all of the fields in the
+ tables. This is useful if you intend to print out the output, or
+ are tired of seeing the blurbs.
+
+`-C[SYMSPEC]'
+`--exec-counts[=SYMSPEC]'
+ The `-C' option causes `gprof' to print a tally of functions and
+ the number of times each was called. If SYMSPEC is specified,
+ print tally only for matching symbols.
+
+ If the profile data file contains basic-block count records,
+ specifying the `-l' option, along with `-C', will cause basic-block
+ execution counts to be tallied and displayed.
+
+`-i'
+`--file-info'
+ The `-i' option causes `gprof' to display summary information
+ about the profile data file(s) and then exit. The number of
+ histogram, call graph, and basic-block count records is displayed.
+
+`-I DIRS'
+`--directory-path=DIRS'
+ The `-I' option specifies a list of search directories in which to
+ find source files. Environment variable GPROF_PATH can also be
+ used to convey this information. Used mostly for annotated source
+ output.
+
+`-J[SYMSPEC]'
+`--no-annotated-source[=SYMSPEC]'
+ The `-J' option causes `gprof' not to print annotated source code.
+ If SYMSPEC is specified, `gprof' prints annotated source, but
+ excludes matching symbols.
+
+`-L'
+`--print-path'
+ Normally, source filenames are printed with the path component
+ suppressed. The `-L' option causes `gprof' to print the full
+ pathname of source filenames, which is determined from symbolic
+ debugging information in the image file and is relative to the
+ directory in which the compiler was invoked.
+
+`-p[SYMSPEC]'
+`--flat-profile[=SYMSPEC]'
+ The `-p' option causes `gprof' to print a flat profile. If
+ SYMSPEC is specified, print flat profile only for matching symbols.
+ *Note The Flat Profile: Flat Profile.
+
+`-P[SYMSPEC]'
+`--no-flat-profile[=SYMSPEC]'
+ The `-P' option causes `gprof' to suppress printing a flat profile.
+ If SYMSPEC is specified, `gprof' prints a flat profile, but
+ excludes matching symbols.
+
+`-q[SYMSPEC]'
+`--graph[=SYMSPEC]'
+ The `-q' option causes `gprof' to print the call graph analysis.
+ If SYMSPEC is specified, print call graph only for matching symbols
+ and their children. *Note The Call Graph: Call Graph.
+
+`-Q[SYMSPEC]'
+`--no-graph[=SYMSPEC]'
+ The `-Q' option causes `gprof' to suppress printing the call graph.
+ If SYMSPEC is specified, `gprof' prints a call graph, but excludes
+ matching symbols.
+
+`-t'
+`--table-length=NUM'
+ The `-t' option causes the NUM most active source lines in each
+ source file to be listed when source annotation is enabled. The
+ default is 10.
+
+`-y'
+`--separate-files'
+ This option affects annotated source output only. Normally,
+ `gprof' prints annotated source files to standard-output. If this
+ option is specified, annotated source for a file named
+ `path/FILENAME' is generated in the file `FILENAME-ann'. If the
+ underlying file system would truncate `FILENAME-ann' so that it
+ overwrites the original `FILENAME', `gprof' generates annotated
+ source in the file `FILENAME.ann' instead (if the original file
+ name has an extension, that extension is _replaced_ with `.ann').
+
+`-Z[SYMSPEC]'
+`--no-exec-counts[=SYMSPEC]'
+ The `-Z' option causes `gprof' not to print a tally of functions
+ and the number of times each was called. If SYMSPEC is specified,
+ print tally, but exclude matching symbols.
+
+`-r'
+`--function-ordering'
+ The `--function-ordering' option causes `gprof' to print a
+ suggested function ordering for the program based on profiling
+ data. This option suggests an ordering which may improve paging,
+ tlb and cache behavior for the program on systems which support
+ arbitrary ordering of functions in an executable.
+
+ The exact details of how to force the linker to place functions in
+ a particular order is system dependent and out of the scope of this
+ manual.
+
+`-R MAP_FILE'
+`--file-ordering MAP_FILE'
+ The `--file-ordering' option causes `gprof' to print a suggested
+ .o link line ordering for the program based on profiling data.
+ This option suggests an ordering which may improve paging, tlb and
+ cache behavior for the program on systems which do not support
+ arbitrary ordering of functions in an executable.
+
+ Use of the `-a' argument is highly recommended with this option.
+
+ The MAP_FILE argument is a pathname to a file which provides
+ function name to object file mappings. The format of the file is
+ similar to the output of the program `nm'.
+
+ c-parse.o:00000000 T yyparse
+ c-parse.o:00000004 C yyerrflag
+ c-lang.o:00000000 T maybe_objc_method_name
+ c-lang.o:00000000 T print_lang_statistics
+ c-lang.o:00000000 T recognize_objc_keyword
+ c-decl.o:00000000 T print_lang_identifier
+ c-decl.o:00000000 T print_lang_type
+ ...
+
+ To create a MAP_FILE with GNU `nm', type a command like `nm
+ --extern-only --defined-only -v --print-file-name program-name'.
+
+`-T'
+`--traditional'
+ The `-T' option causes `gprof' to print its output in
+ "traditional" BSD style.
+
+`-w WIDTH'
+`--width=WIDTH'
+ Sets width of output lines to WIDTH. Currently only used when
+ printing the function index at the bottom of the call graph.
+
+`-x'
+`--all-lines'
+ This option affects annotated source output only. By default,
+ only the lines at the beginning of a basic-block are annotated.
+ If this option is specified, every line in a basic-block is
+ annotated by repeating the annotation for the first line. This
+ behavior is similar to `tcov''s `-a'.
+
+`--demangle[=STYLE]'
+`--no-demangle'
+ These options control whether C++ symbol names should be demangled
+ when printing output. The default is to demangle symbols. The
+ `--no-demangle' option may be used to turn off demangling.
+ Different compilers have different mangling styles. The optional
+ demangling style argument can be used to choose an appropriate
+ demangling style for your compiler.
+
+
+File: gprof.info, Node: Analysis Options, Next: Miscellaneous Options, Prev: Output Options, Up: Invoking
+
+4.2 Analysis Options
+====================
+
+`-a'
+`--no-static'
+ The `-a' option causes `gprof' to suppress the printing of
+ statically declared (private) functions. (These are functions
+ whose names are not listed as global, and which are not visible
+ outside the file/function/block where they were defined.) Time
+ spent in these functions, calls to/from them, etc., will all be
+ attributed to the function that was loaded directly before it in
+ the executable file. This option affects both the flat profile
+ and the call graph.
+
+`-c'
+`--static-call-graph'
+ The `-c' option causes the call graph of the program to be
+ augmented by a heuristic which examines the text space of the
+ object file and identifies function calls in the binary machine
+ code. Since normal call graph records are only generated when
+ functions are entered, this option identifies children that could
+ have been called, but never were. Calls to functions that were
+ not compiled with profiling enabled are also identified, but only
+ if symbol table entries are present for them. Calls to dynamic
+ library routines are typically _not_ found by this option.
+ Parents or children identified via this heuristic are indicated in
+ the call graph with call counts of `0'.
+
+`-D'
+`--ignore-non-functions'
+ The `-D' option causes `gprof' to ignore symbols which are not
+ known to be functions. This option will give more accurate
+ profile data on systems where it is supported (Solaris and HPUX for
+ example).
+
+`-k FROM/TO'
+ The `-k' option allows you to delete from the call graph any arcs
+ from symbols matching symspec FROM to those matching symspec TO.
+
+`-l'
+`--line'
+ The `-l' option enables line-by-line profiling, which causes
+ histogram hits to be charged to individual source code lines,
+ instead of functions. This feature only works with programs
+ compiled by older versions of the `gcc' compiler. Newer versions
+ of `gcc' are designed to work with the `gcov' tool instead.
+
+ If the program was compiled with basic-block counting enabled,
+ this option will also identify how many times each line of code
+ was executed. While line-by-line profiling can help isolate where
+ in a large function a program is spending its time, it also
+ significantly increases the running time of `gprof', and magnifies
+ statistical inaccuracies. *Note Statistical Sampling Error:
+ Sampling Error.
+
+`-m NUM'
+`--min-count=NUM'
+ This option affects execution count output only. Symbols that are
+ executed less than NUM times are suppressed.
+
+`-nSYMSPEC'
+`--time=SYMSPEC'
+ The `-n' option causes `gprof', in its call graph analysis, to
+ only propagate times for symbols matching SYMSPEC.
+
+`-NSYMSPEC'
+`--no-time=SYMSPEC'
+ The `-n' option causes `gprof', in its call graph analysis, not to
+ propagate times for symbols matching SYMSPEC.
+
+`-SFILENAME'
+`--external-symbol-table=FILENAME'
+ The `-S' option causes `gprof' to read an external symbol table
+ file, such as `/proc/kallsyms', rather than read the symbol table
+ from the given object file (the default is `a.out'). This is useful
+ for profiling kernel modules.
+
+`-z'
+`--display-unused-functions'
+ If you give the `-z' option, `gprof' will mention all functions in
+ the flat profile, even those that were never called, and that had
+ no time spent in them. This is useful in conjunction with the
+ `-c' option for discovering which routines were never called.
+
+
+
+File: gprof.info, Node: Miscellaneous Options, Next: Deprecated Options, Prev: Analysis Options, Up: Invoking
+
+4.3 Miscellaneous Options
+=========================
+
+`-d[NUM]'
+`--debug[=NUM]'
+ The `-d NUM' option specifies debugging options. If NUM is not
+ specified, enable all debugging. *Note Debugging `gprof':
+ Debugging.
+
+`-h'
+`--help'
+ The `-h' option prints command line usage.
+
+`-ONAME'
+`--file-format=NAME'
+ Selects the format of the profile data files. Recognized formats
+ are `auto' (the default), `bsd', `4.4bsd', `magic', and `prof'
+ (not yet supported).
+
+`-s'
+`--sum'
+ The `-s' option causes `gprof' to summarize the information in the
+ profile data files it read in, and write out a profile data file
+ called `gmon.sum', which contains all the information from the
+ profile data files that `gprof' read in. The file `gmon.sum' may
+ be one of the specified input files; the effect of this is to
+ merge the data in the other input files into `gmon.sum'.
+
+ Eventually you can run `gprof' again without `-s' to analyze the
+ cumulative data in the file `gmon.sum'.
+
+`-v'
+`--version'
+ The `-v' flag causes `gprof' to print the current version number,
+ and then exit.
+
+
+
+File: gprof.info, Node: Deprecated Options, Next: Symspecs, Prev: Miscellaneous Options, Up: Invoking
+
+4.4 Deprecated Options
+======================
+
+These options have been replaced with newer versions that use symspecs.
+
+`-e FUNCTION_NAME'
+ The `-e FUNCTION' option tells `gprof' to not print information
+ about the function FUNCTION_NAME (and its children...) in the call
+ graph. The function will still be listed as a child of any
+ functions that call it, but its index number will be shown as
+ `[not printed]'. More than one `-e' option may be given; only one
+ FUNCTION_NAME may be indicated with each `-e' option.
+
+`-E FUNCTION_NAME'
+ The `-E FUNCTION' option works like the `-e' option, but time
+ spent in the function (and children who were not called from
+ anywhere else), will not be used to compute the
+ percentages-of-time for the call graph. More than one `-E' option
+ may be given; only one FUNCTION_NAME may be indicated with each
+ `-E' option.
+
+`-f FUNCTION_NAME'
+ The `-f FUNCTION' option causes `gprof' to limit the call graph to
+ the function FUNCTION_NAME and its children (and their
+ children...). More than one `-f' option may be given; only one
+ FUNCTION_NAME may be indicated with each `-f' option.
+
+`-F FUNCTION_NAME'
+ The `-F FUNCTION' option works like the `-f' option, but only time
+ spent in the function and its children (and their children...)
+ will be used to determine total-time and percentages-of-time for
+ the call graph. More than one `-F' option may be given; only one
+ FUNCTION_NAME may be indicated with each `-F' option. The `-F'
+ option overrides the `-E' option.
+
+
+ Note that only one function can be specified with each `-e', `-E',
+`-f' or `-F' option. To specify more than one function, use multiple
+options. For example, this command:
+
+ gprof -e boring -f foo -f bar myprogram > gprof.output
+
+lists in the call graph all functions that were reached from either
+`foo' or `bar' and were not reachable from `boring'.
+
+
+File: gprof.info, Node: Symspecs, Prev: Deprecated Options, Up: Invoking
+
+4.5 Symspecs
+============
+
+Many of the output options allow functions to be included or excluded
+using "symspecs" (symbol specifications), which observe the following
+syntax:
+
+ filename_containing_a_dot
+ | funcname_not_containing_a_dot
+ | linenumber
+ | ( [ any_filename ] `:' ( any_funcname | linenumber ) )
+
+ Here are some sample symspecs:
+
+`main.c'
+ Selects everything in file `main.c'--the dot in the string tells
+ `gprof' to interpret the string as a filename, rather than as a
+ function name. To select a file whose name does not contain a
+ dot, a trailing colon should be specified. For example, `odd:' is
+ interpreted as the file named `odd'.
+
+`main'
+ Selects all functions named `main'.
+
+ Note that there may be multiple instances of the same function name
+ because some of the definitions may be local (i.e., static).
+ Unless a function name is unique in a program, you must use the
+ colon notation explained below to specify a function from a
+ specific source file.
+
+ Sometimes, function names contain dots. In such cases, it is
+ necessary to add a leading colon to the name. For example,
+ `:.mul' selects function `.mul'.
+
+ In some object file formats, symbols have a leading underscore.
+ `gprof' will normally not print these underscores. When you name a
+ symbol in a symspec, you should type it exactly as `gprof' prints
+ it in its output. For example, if the compiler produces a symbol
+ `_main' from your `main' function, `gprof' still prints it as
+ `main' in its output, so you should use `main' in symspecs.
+
+`main.c:main'
+ Selects function `main' in file `main.c'.
+
+`main.c:134'
+ Selects line 134 in file `main.c'.
+
+
+File: gprof.info, Node: Output, Next: Inaccuracy, Prev: Invoking, Up: Top
+
+5 Interpreting `gprof''s Output
+*******************************
+
+`gprof' can produce several different output styles, the most important
+of which are described below. The simplest output styles (file
+information, execution count, and function and file ordering) are not
+described here, but are documented with the respective options that
+trigger them. *Note Output Options: Output Options.
+
+* Menu:
+
+* Flat Profile:: The flat profile shows how much time was spent
+ executing directly in each function.
+* Call Graph:: The call graph shows which functions called which
+ others, and how much time each function used
+ when its subroutine calls are included.
+* Line-by-line:: `gprof' can analyze individual source code lines
+* Annotated Source:: The annotated source listing displays source code
+ labeled with execution counts
+
+
+File: gprof.info, Node: Flat Profile, Next: Call Graph, Up: Output
+
+5.1 The Flat Profile
+====================
+
+The "flat profile" shows the total amount of time your program spent
+executing each function. Unless the `-z' option is given, functions
+with no apparent time spent in them, and no apparent calls to them, are
+not mentioned. Note that if a function was not compiled for profiling,
+and didn't run long enough to show up on the program counter histogram,
+it will be indistinguishable from a function that was never called.
+
+ This is part of a flat profile for a small program:
+
+ Flat profile:
+
+ Each sample counts as 0.01 seconds.
+ % cumulative self self total
+ time seconds seconds calls ms/call ms/call name
+ 33.34 0.02 0.02 7208 0.00 0.00 open
+ 16.67 0.03 0.01 244 0.04 0.12 offtime
+ 16.67 0.04 0.01 8 1.25 1.25 memccpy
+ 16.67 0.05 0.01 7 1.43 1.43 write
+ 16.67 0.06 0.01 mcount
+ 0.00 0.06 0.00 236 0.00 0.00 tzset
+ 0.00 0.06 0.00 192 0.00 0.00 tolower
+ 0.00 0.06 0.00 47 0.00 0.00 strlen
+ 0.00 0.06 0.00 45 0.00 0.00 strchr
+ 0.00 0.06 0.00 1 0.00 50.00 main
+ 0.00 0.06 0.00 1 0.00 0.00 memcpy
+ 0.00 0.06 0.00 1 0.00 10.11 print
+ 0.00 0.06 0.00 1 0.00 0.00 profil
+ 0.00 0.06 0.00 1 0.00 50.00 report
+ ...
+
+The functions are sorted first by decreasing run-time spent in them,
+then by decreasing number of calls, then alphabetically by name. The
+functions `mcount' and `profil' are part of the profiling apparatus and
+appear in every flat profile; their time gives a measure of the amount
+of overhead due to profiling.
+
+ Just before the column headers, a statement appears indicating how
+much time each sample counted as. This "sampling period" estimates the
+margin of error in each of the time figures. A time figure that is not
+much larger than this is not reliable. In this example, each sample
+counted as 0.01 seconds, suggesting a 100 Hz sampling rate. The
+program's total execution time was 0.06 seconds, as indicated by the
+`cumulative seconds' field. Since each sample counted for 0.01
+seconds, this means only six samples were taken during the run. Two of
+the samples occurred while the program was in the `open' function, as
+indicated by the `self seconds' field. Each of the other four samples
+occurred one each in `offtime', `memccpy', `write', and `mcount'.
+Since only six samples were taken, none of these values can be regarded
+as particularly reliable. In another run, the `self seconds' field for
+`mcount' might well be `0.00' or `0.02'. *Note Statistical Sampling
+Error: Sampling Error, for a complete discussion.
+
+ The remaining functions in the listing (those whose `self seconds'
+field is `0.00') didn't appear in the histogram samples at all.
+However, the call graph indicated that they were called, so therefore
+they are listed, sorted in decreasing order by the `calls' field.
+Clearly some time was spent executing these functions, but the paucity
+of histogram samples prevents any determination of how much time each
+took.
+
+ Here is what the fields in each line mean:
+
+`% time'
+ This is the percentage of the total execution time your program
+ spent in this function. These should all add up to 100%.
+
+`cumulative seconds'
+ This is the cumulative total number of seconds the computer spent
+ executing this functions, plus the time spent in all the functions
+ above this one in this table.
+
+`self seconds'
+ This is the number of seconds accounted for by this function alone.
+ The flat profile listing is sorted first by this number.
+
+`calls'
+ This is the total number of times the function was called. If the
+ function was never called, or the number of times it was called
+ cannot be determined (probably because the function was not
+ compiled with profiling enabled), the "calls" field is blank.
+
+`self ms/call'
+ This represents the average number of milliseconds spent in this
+ function per call, if this function is profiled. Otherwise, this
+ field is blank for this function.
+
+`total ms/call'
+ This represents the average number of milliseconds spent in this
+ function and its descendants per call, if this function is
+ profiled. Otherwise, this field is blank for this function. This
+ is the only field in the flat profile that uses call graph
+ analysis.
+
+`name'
+ This is the name of the function. The flat profile is sorted by
+ this field alphabetically after the "self seconds" and "calls"
+ fields are sorted.
+
+
+File: gprof.info, Node: Call Graph, Next: Line-by-line, Prev: Flat Profile, Up: Output
+
+5.2 The Call Graph
+==================
+
+The "call graph" shows how much time was spent in each function and its
+children. From this information, you can find functions that, while
+they themselves may not have used much time, called other functions
+that did use unusual amounts of time.
+
+ Here is a sample call from a small program. This call came from the
+same `gprof' run as the flat profile example in the previous section.
+
+ granularity: each sample hit covers 2 byte(s) for 20.00% of 0.05 seconds
+
+ index % time self children called name
+ <spontaneous>
+ [1] 100.0 0.00 0.05 start [1]
+ 0.00 0.05 1/1 main [2]
+ 0.00 0.00 1/2 on_exit [28]
+ 0.00 0.00 1/1 exit [59]
+ -----------------------------------------------
+ 0.00 0.05 1/1 start [1]
+ [2] 100.0 0.00 0.05 1 main [2]
+ 0.00 0.05 1/1 report [3]
+ -----------------------------------------------
+ 0.00 0.05 1/1 main [2]
+ [3] 100.0 0.00 0.05 1 report [3]
+ 0.00 0.03 8/8 timelocal [6]
+ 0.00 0.01 1/1 print [9]
+ 0.00 0.01 9/9 fgets [12]
+ 0.00 0.00 12/34 strncmp <cycle 1> [40]
+ 0.00 0.00 8/8 lookup [20]
+ 0.00 0.00 1/1 fopen [21]
+ 0.00 0.00 8/8 chewtime [24]
+ 0.00 0.00 8/16 skipspace [44]
+ -----------------------------------------------
+ [4] 59.8 0.01 0.02 8+472 <cycle 2 as a whole> [4]
+ 0.01 0.02 244+260 offtime <cycle 2> [7]
+ 0.00 0.00 236+1 tzset <cycle 2> [26]
+ -----------------------------------------------
+
+ The lines full of dashes divide this table into "entries", one for
+each function. Each entry has one or more lines.
+
+ In each entry, the primary line is the one that starts with an index
+number in square brackets. The end of this line says which function
+the entry is for. The preceding lines in the entry describe the
+callers of this function and the following lines describe its
+subroutines (also called "children" when we speak of the call graph).
+
+ The entries are sorted by time spent in the function and its
+subroutines.
+
+ The internal profiling function `mcount' (*note The Flat Profile:
+Flat Profile.) is never mentioned in the call graph.
+
+* Menu:
+
+* Primary:: Details of the primary line's contents.
+* Callers:: Details of caller-lines' contents.
+* Subroutines:: Details of subroutine-lines' contents.
+* Cycles:: When there are cycles of recursion,
+ such as `a' calls `b' calls `a'...
+
+
+File: gprof.info, Node: Primary, Next: Callers, Up: Call Graph
+
+5.2.1 The Primary Line
+----------------------
+
+The "primary line" in a call graph entry is the line that describes the
+function which the entry is about and gives the overall statistics for
+this function.
+
+ For reference, we repeat the primary line from the entry for function
+`report' in our main example, together with the heading line that shows
+the names of the fields:
+
+ index % time self children called name
+ ...
+ [3] 100.0 0.00 0.05 1 report [3]
+
+ Here is what the fields in the primary line mean:
+
+`index'
+ Entries are numbered with consecutive integers. Each function
+ therefore has an index number, which appears at the beginning of
+ its primary line.
+
+ Each cross-reference to a function, as a caller or subroutine of
+ another, gives its index number as well as its name. The index
+ number guides you if you wish to look for the entry for that
+ function.
+
+`% time'
+ This is the percentage of the total time that was spent in this
+ function, including time spent in subroutines called from this
+ function.
+
+ The time spent in this function is counted again for the callers of
+ this function. Therefore, adding up these percentages is
+ meaningless.
+
+`self'
+ This is the total amount of time spent in this function. This
+ should be identical to the number printed in the `seconds' field
+ for this function in the flat profile.
+
+`children'
+ This is the total amount of time spent in the subroutine calls
+ made by this function. This should be equal to the sum of all the
+ `self' and `children' entries of the children listed directly
+ below this function.
+
+`called'
+ This is the number of times the function was called.
+
+ If the function called itself recursively, there are two numbers,
+ separated by a `+'. The first number counts non-recursive calls,
+ and the second counts recursive calls.
+
+ In the example above, the function `report' was called once from
+ `main'.
+
+`name'
+ This is the name of the current function. The index number is
+ repeated after it.
+
+ If the function is part of a cycle of recursion, the cycle number
+ is printed between the function's name and the index number (*note
+ How Mutually Recursive Functions Are Described: Cycles.). For
+ example, if function `gnurr' is part of cycle number one, and has
+ index number twelve, its primary line would be end like this:
+
+ gnurr <cycle 1> [12]
+
+
+File: gprof.info, Node: Callers, Next: Subroutines, Prev: Primary, Up: Call Graph
+
+5.2.2 Lines for a Function's Callers
+------------------------------------
+
+A function's entry has a line for each function it was called by.
+These lines' fields correspond to the fields of the primary line, but
+their meanings are different because of the difference in context.
+
+ For reference, we repeat two lines from the entry for the function
+`report', the primary line and one caller-line preceding it, together
+with the heading line that shows the names of the fields:
+
+ index % time self children called name
+ ...
+ 0.00 0.05 1/1 main [2]
+ [3] 100.0 0.00 0.05 1 report [3]
+
+ Here are the meanings of the fields in the caller-line for `report'
+called from `main':
+
+`self'
+ An estimate of the amount of time spent in `report' itself when it
+ was called from `main'.
+
+`children'
+ An estimate of the amount of time spent in subroutines of `report'
+ when `report' was called from `main'.
+
+ The sum of the `self' and `children' fields is an estimate of the
+ amount of time spent within calls to `report' from `main'.
+
+`called'
+ Two numbers: the number of times `report' was called from `main',
+ followed by the total number of non-recursive calls to `report'
+ from all its callers.
+
+`name and index number'
+ The name of the caller of `report' to which this line applies,
+ followed by the caller's index number.
+
+ Not all functions have entries in the call graph; some options to
+ `gprof' request the omission of certain functions. When a caller
+ has no entry of its own, it still has caller-lines in the entries
+ of the functions it calls.
+
+ If the caller is part of a recursion cycle, the cycle number is
+ printed between the name and the index number.
+
+ If the identity of the callers of a function cannot be determined, a
+dummy caller-line is printed which has `<spontaneous>' as the "caller's
+name" and all other fields blank. This can happen for signal handlers.
+
+
+File: gprof.info, Node: Subroutines, Next: Cycles, Prev: Callers, Up: Call Graph
+
+5.2.3 Lines for a Function's Subroutines
+----------------------------------------
+
+A function's entry has a line for each of its subroutines--in other
+words, a line for each other function that it called. These lines'
+fields correspond to the fields of the primary line, but their meanings
+are different because of the difference in context.
+
+ For reference, we repeat two lines from the entry for the function
+`main', the primary line and a line for a subroutine, together with the
+heading line that shows the names of the fields:
+
+ index % time self children called name
+ ...
+ [2] 100.0 0.00 0.05 1 main [2]
+ 0.00 0.05 1/1 report [3]
+
+ Here are the meanings of the fields in the subroutine-line for `main'
+calling `report':
+
+`self'
+ An estimate of the amount of time spent directly within `report'
+ when `report' was called from `main'.
+
+`children'
+ An estimate of the amount of time spent in subroutines of `report'
+ when `report' was called from `main'.
+
+ The sum of the `self' and `children' fields is an estimate of the
+ total time spent in calls to `report' from `main'.
+
+`called'
+ Two numbers, the number of calls to `report' from `main' followed
+ by the total number of non-recursive calls to `report'. This
+ ratio is used to determine how much of `report''s `self' and
+ `children' time gets credited to `main'. *Note Estimating
+ `children' Times: Assumptions.
+
+`name'
+ The name of the subroutine of `main' to which this line applies,
+ followed by the subroutine's index number.
+
+ If the caller is part of a recursion cycle, the cycle number is
+ printed between the name and the index number.
+
+
+File: gprof.info, Node: Cycles, Prev: Subroutines, Up: Call Graph
+
+5.2.4 How Mutually Recursive Functions Are Described
+----------------------------------------------------
+
+The graph may be complicated by the presence of "cycles of recursion"
+in the call graph. A cycle exists if a function calls another function
+that (directly or indirectly) calls (or appears to call) the original
+function. For example: if `a' calls `b', and `b' calls `a', then `a'
+and `b' form a cycle.
+
+ Whenever there are call paths both ways between a pair of functions,
+they belong to the same cycle. If `a' and `b' call each other and `b'
+and `c' call each other, all three make one cycle. Note that even if
+`b' only calls `a' if it was not called from `a', `gprof' cannot
+determine this, so `a' and `b' are still considered a cycle.
+
+ The cycles are numbered with consecutive integers. When a function
+belongs to a cycle, each time the function name appears in the call
+graph it is followed by `<cycle NUMBER>'.
+
+ The reason cycles matter is that they make the time values in the
+call graph paradoxical. The "time spent in children" of `a' should
+include the time spent in its subroutine `b' and in `b''s
+subroutines--but one of `b''s subroutines is `a'! How much of `a''s
+time should be included in the children of `a', when `a' is indirectly
+recursive?
+
+ The way `gprof' resolves this paradox is by creating a single entry
+for the cycle as a whole. The primary line of this entry describes the
+total time spent directly in the functions of the cycle. The
+"subroutines" of the cycle are the individual functions of the cycle,
+and all other functions that were called directly by them. The
+"callers" of the cycle are the functions, outside the cycle, that
+called functions in the cycle.
+
+ Here is an example portion of a call graph which shows a cycle
+containing functions `a' and `b'. The cycle was entered by a call to
+`a' from `main'; both `a' and `b' called `c'.
+
+ index % time self children called name
+ ----------------------------------------
+ 1.77 0 1/1 main [2]
+ [3] 91.71 1.77 0 1+5 <cycle 1 as a whole> [3]
+ 1.02 0 3 b <cycle 1> [4]
+ 0.75 0 2 a <cycle 1> [5]
+ ----------------------------------------
+ 3 a <cycle 1> [5]
+ [4] 52.85 1.02 0 0 b <cycle 1> [4]
+ 2 a <cycle 1> [5]
+ 0 0 3/6 c [6]
+ ----------------------------------------
+ 1.77 0 1/1 main [2]
+ 2 b <cycle 1> [4]
+ [5] 38.86 0.75 0 1 a <cycle 1> [5]
+ 3 b <cycle 1> [4]
+ 0 0 3/6 c [6]
+ ----------------------------------------
+
+(The entire call graph for this program contains in addition an entry
+for `main', which calls `a', and an entry for `c', with callers `a' and
+`b'.)
+
+ index % time self children called name
+ <spontaneous>
+ [1] 100.00 0 1.93 0 start [1]
+ 0.16 1.77 1/1 main [2]
+ ----------------------------------------
+ 0.16 1.77 1/1 start [1]
+ [2] 100.00 0.16 1.77 1 main [2]
+ 1.77 0 1/1 a <cycle 1> [5]
+ ----------------------------------------
+ 1.77 0 1/1 main [2]
+ [3] 91.71 1.77 0 1+5 <cycle 1 as a whole> [3]
+ 1.02 0 3 b <cycle 1> [4]
+ 0.75 0 2 a <cycle 1> [5]
+ 0 0 6/6 c [6]
+ ----------------------------------------
+ 3 a <cycle 1> [5]
+ [4] 52.85 1.02 0 0 b <cycle 1> [4]
+ 2 a <cycle 1> [5]
+ 0 0 3/6 c [6]
+ ----------------------------------------
+ 1.77 0 1/1 main [2]
+ 2 b <cycle 1> [4]
+ [5] 38.86 0.75 0 1 a <cycle 1> [5]
+ 3 b <cycle 1> [4]
+ 0 0 3/6 c [6]
+ ----------------------------------------
+ 0 0 3/6 b <cycle 1> [4]
+ 0 0 3/6 a <cycle 1> [5]
+ [6] 0.00 0 0 6 c [6]
+ ----------------------------------------
+
+ The `self' field of the cycle's primary line is the total time spent
+in all the functions of the cycle. It equals the sum of the `self'
+fields for the individual functions in the cycle, found in the entry in
+the subroutine lines for these functions.
+
+ The `children' fields of the cycle's primary line and subroutine
+lines count only subroutines outside the cycle. Even though `a' calls
+`b', the time spent in those calls to `b' is not counted in `a''s
+`children' time. Thus, we do not encounter the problem of what to do
+when the time in those calls to `b' includes indirect recursive calls
+back to `a'.
+
+ The `children' field of a caller-line in the cycle's entry estimates
+the amount of time spent _in the whole cycle_, and its other
+subroutines, on the times when that caller called a function in the
+cycle.
+
+ The `called' field in the primary line for the cycle has two numbers:
+first, the number of times functions in the cycle were called by
+functions outside the cycle; second, the number of times they were
+called by functions in the cycle (including times when a function in
+the cycle calls itself). This is a generalization of the usual split
+into non-recursive and recursive calls.
+
+ The `called' field of a subroutine-line for a cycle member in the
+cycle's entry says how many time that function was called from
+functions in the cycle. The total of all these is the second number in
+the primary line's `called' field.
+
+ In the individual entry for a function in a cycle, the other
+functions in the same cycle can appear as subroutines and as callers.
+These lines show how many times each function in the cycle called or
+was called from each other function in the cycle. The `self' and
+`children' fields in these lines are blank because of the difficulty of
+defining meanings for them when recursion is going on.
+
+
+File: gprof.info, Node: Line-by-line, Next: Annotated Source, Prev: Call Graph, Up: Output
+
+5.3 Line-by-line Profiling
+==========================
+
+`gprof''s `-l' option causes the program to perform "line-by-line"
+profiling. In this mode, histogram samples are assigned not to
+functions, but to individual lines of source code. This only works
+with programs compiled with older versions of the `gcc' compiler.
+Newer versions of `gcc' use a different program - `gcov' - to display
+line-by-line profiling information.
+
+ With the older versions of `gcc' the program usually has to be
+compiled with a `-g' option, in addition to `-pg', in order to generate
+debugging symbols for tracking source code lines. Note, in much older
+versions of `gcc' the program had to be compiled with the `-a' command
+line option as well.
+
+ The flat profile is the most useful output table in line-by-line
+mode. The call graph isn't as useful as normal, since the current
+version of `gprof' does not propagate call graph arcs from source code
+lines to the enclosing function. The call graph does, however, show
+each line of code that called each function, along with a count.
+
+ Here is a section of `gprof''s output, without line-by-line
+profiling. Note that `ct_init' accounted for four histogram hits, and
+13327 calls to `init_block'.
+
+ Flat profile:
+
+ Each sample counts as 0.01 seconds.
+ % cumulative self self total
+ time seconds seconds calls us/call us/call name
+ 30.77 0.13 0.04 6335 6.31 6.31 ct_init
+
+
+ Call graph (explanation follows)
+
+
+ granularity: each sample hit covers 4 byte(s) for 7.69% of 0.13 seconds
+
+ index % time self children called name
+
+ 0.00 0.00 1/13496 name_too_long
+ 0.00 0.00 40/13496 deflate
+ 0.00 0.00 128/13496 deflate_fast
+ 0.00 0.00 13327/13496 ct_init
+ [7] 0.0 0.00 0.00 13496 init_block
+
+ Now let's look at some of `gprof''s output from the same program run,
+this time with line-by-line profiling enabled. Note that `ct_init''s
+four histogram hits are broken down into four lines of source code--one
+hit occurred on each of lines 349, 351, 382 and 385. In the call graph,
+note how `ct_init''s 13327 calls to `init_block' are broken down into
+one call from line 396, 3071 calls from line 384, 3730 calls from line
+385, and 6525 calls from 387.
+
+ Flat profile:
+
+ Each sample counts as 0.01 seconds.
+ % cumulative self
+ time seconds seconds calls name
+ 7.69 0.10 0.01 ct_init (trees.c:349)
+ 7.69 0.11 0.01 ct_init (trees.c:351)
+ 7.69 0.12 0.01 ct_init (trees.c:382)
+ 7.69 0.13 0.01 ct_init (trees.c:385)
+
+
+ Call graph (explanation follows)
+
+
+ granularity: each sample hit covers 4 byte(s) for 7.69% of 0.13 seconds
+
+ % time self children called name
+
+ 0.00 0.00 1/13496 name_too_long (gzip.c:1440)
+ 0.00 0.00 1/13496 deflate (deflate.c:763)
+ 0.00 0.00 1/13496 ct_init (trees.c:396)
+ 0.00 0.00 2/13496 deflate (deflate.c:727)
+ 0.00 0.00 4/13496 deflate (deflate.c:686)
+ 0.00 0.00 5/13496 deflate (deflate.c:675)
+ 0.00 0.00 12/13496 deflate (deflate.c:679)
+ 0.00 0.00 16/13496 deflate (deflate.c:730)
+ 0.00 0.00 128/13496 deflate_fast (deflate.c:654)
+ 0.00 0.00 3071/13496 ct_init (trees.c:384)
+ 0.00 0.00 3730/13496 ct_init (trees.c:385)
+ 0.00 0.00 6525/13496 ct_init (trees.c:387)
+ [6] 0.0 0.00 0.00 13496 init_block (trees.c:408)
+
+
+File: gprof.info, Node: Annotated Source, Prev: Line-by-line, Up: Output
+
+5.4 The Annotated Source Listing
+================================
+
+`gprof''s `-A' option triggers an annotated source listing, which lists
+the program's source code, each function labeled with the number of
+times it was called. You may also need to specify the `-I' option, if
+`gprof' can't find the source code files.
+
+ With older versions of `gcc' compiling with `gcc ... -g -pg -a'
+augments your program with basic-block counting code, in addition to
+function counting code. This enables `gprof' to determine how many
+times each line of code was executed. With newer versions of `gcc'
+support for displaying basic-block counts is provided by the `gcov'
+program.
+
+ For example, consider the following function, taken from gzip, with
+line numbers added:
+
+ 1 ulg updcrc(s, n)
+ 2 uch *s;
+ 3 unsigned n;
+ 4 {
+ 5 register ulg c;
+ 6
+ 7 static ulg crc = (ulg)0xffffffffL;
+ 8
+ 9 if (s == NULL) {
+ 10 c = 0xffffffffL;
+ 11 } else {
+ 12 c = crc;
+ 13 if (n) do {
+ 14 c = crc_32_tab[...];
+ 15 } while (--n);
+ 16 }
+ 17 crc = c;
+ 18 return c ^ 0xffffffffL;
+ 19 }
+
+ `updcrc' has at least five basic-blocks. One is the function
+itself. The `if' statement on line 9 generates two more basic-blocks,
+one for each branch of the `if'. A fourth basic-block results from the
+`if' on line 13, and the contents of the `do' loop form the fifth
+basic-block. The compiler may also generate additional basic-blocks to
+handle various special cases.
+
+ A program augmented for basic-block counting can be analyzed with
+`gprof -l -A'. The `-x' option is also helpful, to ensure that each
+line of code is labeled at least once. Here is `updcrc''s annotated
+source listing for a sample `gzip' run:
+
+ ulg updcrc(s, n)
+ uch *s;
+ unsigned n;
+ 2 ->{
+ register ulg c;
+
+ static ulg crc = (ulg)0xffffffffL;
+
+ 2 -> if (s == NULL) {
+ 1 -> c = 0xffffffffL;
+ 1 -> } else {
+ 1 -> c = crc;
+ 1 -> if (n) do {
+ 26312 -> c = crc_32_tab[...];
+ 26312,1,26311 -> } while (--n);
+ }
+ 2 -> crc = c;
+ 2 -> return c ^ 0xffffffffL;
+ 2 ->}
+
+ In this example, the function was called twice, passing once through
+each branch of the `if' statement. The body of the `do' loop was
+executed a total of 26312 times. Note how the `while' statement is
+annotated. It began execution 26312 times, once for each iteration
+through the loop. One of those times (the last time) it exited, while
+it branched back to the beginning of the loop 26311 times.
+
+
+File: gprof.info, Node: Inaccuracy, Next: How do I?, Prev: Output, Up: Top
+
+6 Inaccuracy of `gprof' Output
+******************************
+
+* Menu:
+
+* Sampling Error:: Statistical margins of error
+* Assumptions:: Estimating children times
+
+
+File: gprof.info, Node: Sampling Error, Next: Assumptions, Up: Inaccuracy
+
+6.1 Statistical Sampling Error
+==============================
+
+The run-time figures that `gprof' gives you are based on a sampling
+process, so they are subject to statistical inaccuracy. If a function
+runs only a small amount of time, so that on the average the sampling
+process ought to catch that function in the act only once, there is a
+pretty good chance it will actually find that function zero times, or
+twice.
+
+ By contrast, the number-of-calls and basic-block figures are derived
+by counting, not sampling. They are completely accurate and will not
+vary from run to run if your program is deterministic and single
+threaded. In multi-threaded applications, or single threaded
+applications that link with multi-threaded libraries, the counts are
+only deterministic if the counting function is thread-safe. (Note:
+beware that the mcount counting function in glibc is _not_
+thread-safe). *Note Implementation of Profiling: Implementation.
+
+ The "sampling period" that is printed at the beginning of the flat
+profile says how often samples are taken. The rule of thumb is that a
+run-time figure is accurate if it is considerably bigger than the
+sampling period.
+
+ The actual amount of error can be predicted. For N samples, the
+_expected_ error is the square-root of N. For example, if the sampling
+period is 0.01 seconds and `foo''s run-time is 1 second, N is 100
+samples (1 second/0.01 seconds), sqrt(N) is 10 samples, so the expected
+error in `foo''s run-time is 0.1 seconds (10*0.01 seconds), or ten
+percent of the observed value. Again, if the sampling period is 0.01
+seconds and `bar''s run-time is 100 seconds, N is 10000 samples,
+sqrt(N) is 100 samples, so the expected error in `bar''s run-time is 1
+second, or one percent of the observed value. It is likely to vary
+this much _on the average_ from one profiling run to the next.
+(_Sometimes_ it will vary more.)
+
+ This does not mean that a small run-time figure is devoid of
+information. If the program's _total_ run-time is large, a small
+run-time for one function does tell you that that function used an
+insignificant fraction of the whole program's time. Usually this means
+it is not worth optimizing.
+
+ One way to get more accuracy is to give your program more (but
+similar) input data so it will take longer. Another way is to combine
+the data from several runs, using the `-s' option of `gprof'. Here is
+how:
+
+ 1. Run your program once.
+
+ 2. Issue the command `mv gmon.out gmon.sum'.
+
+ 3. Run your program again, the same as before.
+
+ 4. Merge the new data in `gmon.out' into `gmon.sum' with this command:
+
+ gprof -s EXECUTABLE-FILE gmon.out gmon.sum
+
+ 5. Repeat the last two steps as often as you wish.
+
+ 6. Analyze the cumulative data using this command:
+
+ gprof EXECUTABLE-FILE gmon.sum > OUTPUT-FILE
+
+
+File: gprof.info, Node: Assumptions, Prev: Sampling Error, Up: Inaccuracy
+
+6.2 Estimating `children' Times
+===============================
+
+Some of the figures in the call graph are estimates--for example, the
+`children' time values and all the time figures in caller and
+subroutine lines.
+
+ There is no direct information about these measurements in the
+profile data itself. Instead, `gprof' estimates them by making an
+assumption about your program that might or might not be true.
+
+ The assumption made is that the average time spent in each call to
+any function `foo' is not correlated with who called `foo'. If `foo'
+used 5 seconds in all, and 2/5 of the calls to `foo' came from `a',
+then `foo' contributes 2 seconds to `a''s `children' time, by
+assumption.
+
+ This assumption is usually true enough, but for some programs it is
+far from true. Suppose that `foo' returns very quickly when its
+argument is zero; suppose that `a' always passes zero as an argument,
+while other callers of `foo' pass other arguments. In this program,
+all the time spent in `foo' is in the calls from callers other than `a'.
+But `gprof' has no way of knowing this; it will blindly and incorrectly
+charge 2 seconds of time in `foo' to the children of `a'.
+
+ We hope some day to put more complete data into `gmon.out', so that
+this assumption is no longer needed, if we can figure out how. For the
+novice, the estimated figures are usually more useful than misleading.
+
+
+File: gprof.info, Node: How do I?, Next: Incompatibilities, Prev: Inaccuracy, Up: Top
+
+7 Answers to Common Questions
+*****************************
+
+How can I get more exact information about hot spots in my program?
+ Looking at the per-line call counts only tells part of the story.
+ Because `gprof' can only report call times and counts by function,
+ the best way to get finer-grained information on where the program
+ is spending its time is to re-factor large functions into sequences
+ of calls to smaller ones. Beware however that this can introduce
+ artificial hot spots since compiling with `-pg' adds a significant
+ overhead to function calls. An alternative solution is to use a
+ non-intrusive profiler, e.g. oprofile.
+
+How do I find which lines in my program were executed the most times?
+ Use the `gcov' program.
+
+How do I find which lines in my program called a particular function?
+ Use `gprof -l' and lookup the function in the call graph. The
+ callers will be broken down by function and line number.
+
+How do I analyze a program that runs for less than a second?
+ Try using a shell script like this one:
+
+ for i in `seq 1 100`; do
+ fastprog
+ mv gmon.out gmon.out.$i
+ done
+
+ gprof -s fastprog gmon.out.*
+
+ gprof fastprog gmon.sum
+
+ If your program is completely deterministic, all the call counts
+ will be simple multiples of 100 (i.e., a function called once in
+ each run will appear with a call count of 100).
+
+
+
+File: gprof.info, Node: Incompatibilities, Next: Details, Prev: How do I?, Up: Top
+
+8 Incompatibilities with Unix `gprof'
+*************************************
+
+GNU `gprof' and Berkeley Unix `gprof' use the same data file
+`gmon.out', and provide essentially the same information. But there
+are a few differences.
+
+ * GNU `gprof' uses a new, generalized file format with support for
+ basic-block execution counts and non-realtime histograms. A magic
+ cookie and version number allows `gprof' to easily identify new
+ style files. Old BSD-style files can still be read. *Note
+ Profiling Data File Format: File Format.
+
+ * For a recursive function, Unix `gprof' lists the function as a
+ parent and as a child, with a `calls' field that lists the number
+ of recursive calls. GNU `gprof' omits these lines and puts the
+ number of recursive calls in the primary line.
+
+ * When a function is suppressed from the call graph with `-e', GNU
+ `gprof' still lists it as a subroutine of functions that call it.
+
+ * GNU `gprof' accepts the `-k' with its argument in the form
+ `from/to', instead of `from to'.
+
+ * In the annotated source listing, if there are multiple basic
+ blocks on the same line, GNU `gprof' prints all of their counts,
+ separated by commas.
+
+ * The blurbs, field widths, and output formats are different. GNU
+ `gprof' prints blurbs after the tables, so that you can see the
+ tables without skipping the blurbs.
+
+
+File: gprof.info, Node: Details, Next: GNU Free Documentation License, Prev: Incompatibilities, Up: Top
+
+9 Details of Profiling
+**********************
+
+* Menu:
+
+* Implementation:: How a program collects profiling information
+* File Format:: Format of `gmon.out' files
+* Internals:: `gprof''s internal operation
+* Debugging:: Using `gprof''s `-d' option
+
+
+File: gprof.info, Node: Implementation, Next: File Format, Up: Details
+
+9.1 Implementation of Profiling
+===============================
+
+Profiling works by changing how every function in your program is
+compiled so that when it is called, it will stash away some information
+about where it was called from. From this, the profiler can figure out
+what function called it, and can count how many times it was called.
+This change is made by the compiler when your program is compiled with
+the `-pg' option, which causes every function to call `mcount' (or
+`_mcount', or `__mcount', depending on the OS and compiler) as one of
+its first operations.
+
+ The `mcount' routine, included in the profiling library, is
+responsible for recording in an in-memory call graph table both its
+parent routine (the child) and its parent's parent. This is typically
+done by examining the stack frame to find both the address of the
+child, and the return address in the original parent. Since this is a
+very machine-dependent operation, `mcount' itself is typically a short
+assembly-language stub routine that extracts the required information,
+and then calls `__mcount_internal' (a normal C function) with two
+arguments--`frompc' and `selfpc'. `__mcount_internal' is responsible
+for maintaining the in-memory call graph, which records `frompc',
+`selfpc', and the number of times each of these call arcs was traversed.
+
+ GCC Version 2 provides a magical function
+(`__builtin_return_address'), which allows a generic `mcount' function
+to extract the required information from the stack frame. However, on
+some architectures, most notably the SPARC, using this builtin can be
+very computationally expensive, and an assembly language version of
+`mcount' is used for performance reasons.
+
+ Number-of-calls information for library routines is collected by
+using a special version of the C library. The programs in it are the
+same as in the usual C library, but they were compiled with `-pg'. If
+you link your program with `gcc ... -pg', it automatically uses the
+profiling version of the library.
+
+ Profiling also involves watching your program as it runs, and
+keeping a histogram of where the program counter happens to be every
+now and then. Typically the program counter is looked at around 100
+times per second of run time, but the exact frequency may vary from
+system to system.
+
+ This is done is one of two ways. Most UNIX-like operating systems
+provide a `profil()' system call, which registers a memory array with
+the kernel, along with a scale factor that determines how the program's
+address space maps into the array. Typical scaling values cause every
+2 to 8 bytes of address space to map into a single array slot. On
+every tick of the system clock (assuming the profiled program is
+running), the value of the program counter is examined and the
+corresponding slot in the memory array is incremented. Since this is
+done in the kernel, which had to interrupt the process anyway to handle
+the clock interrupt, very little additional system overhead is required.
+
+ However, some operating systems, most notably Linux 2.0 (and
+earlier), do not provide a `profil()' system call. On such a system,
+arrangements are made for the kernel to periodically deliver a signal
+to the process (typically via `setitimer()'), which then performs the
+same operation of examining the program counter and incrementing a slot
+in the memory array. Since this method requires a signal to be
+delivered to user space every time a sample is taken, it uses
+considerably more overhead than kernel-based profiling. Also, due to
+the added delay required to deliver the signal, this method is less
+accurate as well.
+
+ A special startup routine allocates memory for the histogram and
+either calls `profil()' or sets up a clock signal handler. This
+routine (`monstartup') can be invoked in several ways. On Linux
+systems, a special profiling startup file `gcrt0.o', which invokes
+`monstartup' before `main', is used instead of the default `crt0.o'.
+Use of this special startup file is one of the effects of using `gcc
+... -pg' to link. On SPARC systems, no special startup files are used.
+Rather, the `mcount' routine, when it is invoked for the first time
+(typically when `main' is called), calls `monstartup'.
+
+ If the compiler's `-a' option was used, basic-block counting is also
+enabled. Each object file is then compiled with a static array of
+counts, initially zero. In the executable code, every time a new
+basic-block begins (i.e., when an `if' statement appears), an extra
+instruction is inserted to increment the corresponding count in the
+array. At compile time, a paired array was constructed that recorded
+the starting address of each basic-block. Taken together, the two
+arrays record the starting address of every basic-block, along with the
+number of times it was executed.
+
+ The profiling library also includes a function (`mcleanup') which is
+typically registered using `atexit()' to be called as the program
+exits, and is responsible for writing the file `gmon.out'. Profiling
+is turned off, various headers are output, and the histogram is
+written, followed by the call-graph arcs and the basic-block counts.
+
+ The output from `gprof' gives no indication of parts of your program
+that are limited by I/O or swapping bandwidth. This is because samples
+of the program counter are taken at fixed intervals of the program's
+run time. Therefore, the time measurements in `gprof' output say
+nothing about time that your program was not running. For example, a
+part of the program that creates so much data that it cannot all fit in
+physical memory at once may run very slowly due to thrashing, but
+`gprof' will say it uses little time. On the other hand, sampling by
+run time has the advantage that the amount of load due to other users
+won't directly affect the output you get.
+
+
+File: gprof.info, Node: File Format, Next: Internals, Prev: Implementation, Up: Details
+
+9.2 Profiling Data File Format
+==============================
+
+The old BSD-derived file format used for profile data does not contain a
+magic cookie that allows to check whether a data file really is a
+`gprof' file. Furthermore, it does not provide a version number, thus
+rendering changes to the file format almost impossible. GNU `gprof'
+uses a new file format that provides these features. For backward
+compatibility, GNU `gprof' continues to support the old BSD-derived
+format, but not all features are supported with it. For example,
+basic-block execution counts cannot be accommodated by the old file
+format.
+
+ The new file format is defined in header file `gmon_out.h'. It
+consists of a header containing the magic cookie and a version number,
+as well as some spare bytes available for future extensions. All data
+in a profile data file is in the native format of the target for which
+the profile was collected. GNU `gprof' adapts automatically to the
+byte-order in use.
+
+ In the new file format, the header is followed by a sequence of
+records. Currently, there are three different record types: histogram
+records, call-graph arc records, and basic-block execution count
+records. Each file can contain any number of each record type. When
+reading a file, GNU `gprof' will ensure records of the same type are
+compatible with each other and compute the union of all records. For
+example, for basic-block execution counts, the union is simply the sum
+of all execution counts for each basic-block.
+
+9.2.1 Histogram Records
+-----------------------
+
+Histogram records consist of a header that is followed by an array of
+bins. The header contains the text-segment range that the histogram
+spans, the size of the histogram in bytes (unlike in the old BSD
+format, this does not include the size of the header), the rate of the
+profiling clock, and the physical dimension that the bin counts
+represent after being scaled by the profiling clock rate. The physical
+dimension is specified in two parts: a long name of up to 15 characters
+and a single character abbreviation. For example, a histogram
+representing real-time would specify the long name as "seconds" and the
+abbreviation as "s". This feature is useful for architectures that
+support performance monitor hardware (which, fortunately, is becoming
+increasingly common). For example, under DEC OSF/1, the "uprofile"
+command can be used to produce a histogram of, say, instruction cache
+misses. In this case, the dimension in the histogram header could be
+set to "i-cache misses" and the abbreviation could be set to "1"
+(because it is simply a count, not a physical dimension). Also, the
+profiling rate would have to be set to 1 in this case.
+
+ Histogram bins are 16-bit numbers and each bin represent an equal
+amount of text-space. For example, if the text-segment is one thousand
+bytes long and if there are ten bins in the histogram, each bin
+represents one hundred bytes.
+
+9.2.2 Call-Graph Records
+------------------------
+
+Call-graph records have a format that is identical to the one used in
+the BSD-derived file format. It consists of an arc in the call graph
+and a count indicating the number of times the arc was traversed during
+program execution. Arcs are specified by a pair of addresses: the
+first must be within caller's function and the second must be within
+the callee's function. When performing profiling at the function
+level, these addresses can point anywhere within the respective
+function. However, when profiling at the line-level, it is better if
+the addresses are as close to the call-site/entry-point as possible.
+This will ensure that the line-level call-graph is able to identify
+exactly which line of source code performed calls to a function.
+
+9.2.3 Basic-Block Execution Count Records
+-----------------------------------------
+
+Basic-block execution count records consist of a header followed by a
+sequence of address/count pairs. The header simply specifies the
+length of the sequence. In an address/count pair, the address
+identifies a basic-block and the count specifies the number of times
+that basic-block was executed. Any address within the basic-address can
+be used.
+
+
+File: gprof.info, Node: Internals, Next: Debugging, Prev: File Format, Up: Details
+
+9.3 `gprof''s Internal Operation
+================================
+
+Like most programs, `gprof' begins by processing its options. During
+this stage, it may building its symspec list (`sym_ids.c:sym_id_add'),
+if options are specified which use symspecs. `gprof' maintains a
+single linked list of symspecs, which will eventually get turned into
+12 symbol tables, organized into six include/exclude pairs--one pair
+each for the flat profile (INCL_FLAT/EXCL_FLAT), the call graph arcs
+(INCL_ARCS/EXCL_ARCS), printing in the call graph
+(INCL_GRAPH/EXCL_GRAPH), timing propagation in the call graph
+(INCL_TIME/EXCL_TIME), the annotated source listing
+(INCL_ANNO/EXCL_ANNO), and the execution count listing
+(INCL_EXEC/EXCL_EXEC).
+
+ After option processing, `gprof' finishes building the symspec list
+by adding all the symspecs in `default_excluded_list' to the exclude
+lists EXCL_TIME and EXCL_GRAPH, and if line-by-line profiling is
+specified, EXCL_FLAT as well. These default excludes are not added to
+EXCL_ANNO, EXCL_ARCS, and EXCL_EXEC.
+
+ Next, the BFD library is called to open the object file, verify that
+it is an object file, and read its symbol table (`core.c:core_init'),
+using `bfd_canonicalize_symtab' after mallocing an appropriately sized
+array of symbols. At this point, function mappings are read (if the
+`--file-ordering' option has been specified), and the core text space
+is read into memory (if the `-c' option was given).
+
+ `gprof''s own symbol table, an array of Sym structures, is now built.
+This is done in one of two ways, by one of two routines, depending on
+whether line-by-line profiling (`-l' option) has been enabled. For
+normal profiling, the BFD canonical symbol table is scanned. For
+line-by-line profiling, every text space address is examined, and a new
+symbol table entry gets created every time the line number changes. In
+either case, two passes are made through the symbol table--one to count
+the size of the symbol table required, and the other to actually read
+the symbols. In between the two passes, a single array of type `Sym'
+is created of the appropriate length. Finally,
+`symtab.c:symtab_finalize' is called to sort the symbol table and
+remove duplicate entries (entries with the same memory address).
+
+ The symbol table must be a contiguous array for two reasons. First,
+the `qsort' library function (which sorts an array) will be used to
+sort the symbol table. Also, the symbol lookup routine
+(`symtab.c:sym_lookup'), which finds symbols based on memory address,
+uses a binary search algorithm which requires the symbol table to be a
+sorted array. Function symbols are indicated with an `is_func' flag.
+Line number symbols have no special flags set. Additionally, a symbol
+can have an `is_static' flag to indicate that it is a local symbol.
+
+ With the symbol table read, the symspecs can now be translated into
+Syms (`sym_ids.c:sym_id_parse'). Remember that a single symspec can
+match multiple symbols. An array of symbol tables (`syms') is created,
+each entry of which is a symbol table of Syms to be included or
+excluded from a particular listing. The master symbol table and the
+symspecs are examined by nested loops, and every symbol that matches a
+symspec is inserted into the appropriate syms table. This is done
+twice, once to count the size of each required symbol table, and again
+to build the tables, which have been malloced between passes. From now
+on, to determine whether a symbol is on an include or exclude symspec
+list, `gprof' simply uses its standard symbol lookup routine on the
+appropriate table in the `syms' array.
+
+ Now the profile data file(s) themselves are read
+(`gmon_io.c:gmon_out_read'), first by checking for a new-style
+`gmon.out' header, then assuming this is an old-style BSD `gmon.out' if
+the magic number test failed.
+
+ New-style histogram records are read by `hist.c:hist_read_rec'. For
+the first histogram record, allocate a memory array to hold all the
+bins, and read them in. When multiple profile data files (or files
+with multiple histogram records) are read, the memory ranges of each
+pair of histogram records must be either equal, or non-overlapping.
+For each pair of histogram records, the resolution (memory region size
+divided by the number of bins) must be the same. The time unit must be
+the same for all histogram records. If the above containts are met, all
+histograms for the same memory range are merged.
+
+ As each call graph record is read (`call_graph.c:cg_read_rec'), the
+parent and child addresses are matched to symbol table entries, and a
+call graph arc is created by `cg_arcs.c:arc_add', unless the arc fails
+a symspec check against INCL_ARCS/EXCL_ARCS. As each arc is added, a
+linked list is maintained of the parent's child arcs, and of the child's
+parent arcs. Both the child's call count and the arc's call count are
+incremented by the record's call count.
+
+ Basic-block records are read (`basic_blocks.c:bb_read_rec'), but
+only if line-by-line profiling has been selected. Each basic-block
+address is matched to a corresponding line symbol in the symbol table,
+and an entry made in the symbol's bb_addr and bb_calls arrays. Again,
+if multiple basic-block records are present for the same address, the
+call counts are cumulative.
+
+ A gmon.sum file is dumped, if requested (`gmon_io.c:gmon_out_write').
+
+ If histograms were present in the data files, assign them to symbols
+(`hist.c:hist_assign_samples') by iterating over all the sample bins
+and assigning them to symbols. Since the symbol table is sorted in
+order of ascending memory addresses, we can simple follow along in the
+symbol table as we make our pass over the sample bins. This step
+includes a symspec check against INCL_FLAT/EXCL_FLAT. Depending on the
+histogram scale factor, a sample bin may span multiple symbols, in
+which case a fraction of the sample count is allocated to each symbol,
+proportional to the degree of overlap. This effect is rare for normal
+profiling, but overlaps are more common during line-by-line profiling,
+and can cause each of two adjacent lines to be credited with half a
+hit, for example.
+
+ If call graph data is present, `cg_arcs.c:cg_assemble' is called.
+First, if `-c' was specified, a machine-dependent routine (`find_call')
+scans through each symbol's machine code, looking for subroutine call
+instructions, and adding them to the call graph with a zero call count.
+A topological sort is performed by depth-first numbering all the
+symbols (`cg_dfn.c:cg_dfn'), so that children are always numbered less
+than their parents, then making a array of pointers into the symbol
+table and sorting it into numerical order, which is reverse topological
+order (children appear before parents). Cycles are also detected at
+this point, all members of which are assigned the same topological
+number. Two passes are now made through this sorted array of symbol
+pointers. The first pass, from end to beginning (parents to children),
+computes the fraction of child time to propagate to each parent and a
+print flag. The print flag reflects symspec handling of
+INCL_GRAPH/EXCL_GRAPH, with a parent's include or exclude (print or no
+print) property being propagated to its children, unless they
+themselves explicitly appear in INCL_GRAPH or EXCL_GRAPH. A second
+pass, from beginning to end (children to parents) actually propagates
+the timings along the call graph, subject to a check against
+INCL_TIME/EXCL_TIME. With the print flag, fractions, and timings now
+stored in the symbol structures, the topological sort array is now
+discarded, and a new array of pointers is assembled, this time sorted
+by propagated time.
+
+ Finally, print the various outputs the user requested, which is now
+fairly straightforward. The call graph (`cg_print.c:cg_print') and
+flat profile (`hist.c:hist_print') are regurgitations of values already
+computed. The annotated source listing
+(`basic_blocks.c:print_annotated_source') uses basic-block information,
+if present, to label each line of code with call counts, otherwise only
+the function call counts are presented.
+
+ The function ordering code is marginally well documented in the
+source code itself (`cg_print.c'). Basically, the functions with the
+most use and the most parents are placed first, followed by other
+functions with the most use, followed by lower use functions, followed
+by unused functions at the end.
+
+
+File: gprof.info, Node: Debugging, Prev: Internals, Up: Details
+
+9.4 Debugging `gprof'
+=====================
+
+If `gprof' was compiled with debugging enabled, the `-d' option
+triggers debugging output (to stdout) which can be helpful in
+understanding its operation. The debugging number specified is
+interpreted as a sum of the following options:
+
+2 - Topological sort
+ Monitor depth-first numbering of symbols during call graph analysis
+
+4 - Cycles
+ Shows symbols as they are identified as cycle heads
+
+16 - Tallying
+ As the call graph arcs are read, show each arc and how the total
+ calls to each function are tallied
+
+32 - Call graph arc sorting
+ Details sorting individual parents/children within each call graph
+ entry
+
+64 - Reading histogram and call graph records
+ Shows address ranges of histograms as they are read, and each call
+ graph arc
+
+128 - Symbol table
+ Reading, classifying, and sorting the symbol table from the object
+ file. For line-by-line profiling (`-l' option), also shows line
+ numbers being assigned to memory addresses.
+
+256 - Static call graph
+ Trace operation of `-c' option
+
+512 - Symbol table and arc table lookups
+ Detail operation of lookup routines
+
+1024 - Call graph propagation
+ Shows how function times are propagated along the call graph
+
+2048 - Basic-blocks
+ Shows basic-block records as they are read from profile data (only
+ meaningful with `-l' option)
+
+4096 - Symspecs
+ Shows symspec-to-symbol pattern matching operation
+
+8192 - Annotate source
+ Tracks operation of `-A' option
+
+
+File: gprof.info, Node: GNU Free Documentation License, Prev: Details, Up: Top
+
+Appendix A GNU Free Documentation License
+*****************************************
+
+ Version 1.3, 3 November 2008
+
+ Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+ `http://fsf.org/'
+
+ 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
+ functional and useful 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, in any medium,
+ that contains a notice placed by the copyright holder saying it
+ can be distributed under the terms of this License. Such a notice
+ grants a world-wide, royalty-free license, unlimited in duration,
+ to use that work under the conditions stated herein. The
+ "Document", below, refers to any such manual or work. Any member
+ of the public is a licensee, and is addressed as "you". You
+ accept the license if you copy, modify or distribute the work in a
+ way requiring permission under copyright law.
+
+ 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. (Thus, 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. If a section does not fit the above definition of
+ Secondary then it is not allowed to be designated as Invariant.
+ The Document may contain zero Invariant Sections. If the Document
+ does not identify any Invariant Sections then there are none.
+
+ 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
+ Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+ be at most 25 words.
+
+ A "Transparent" copy of the Document means a machine-readable copy,
+ represented in a format whose specification is available to the
+ general public, that is suitable for revising the document
+ 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, or absence of
+ markup, has been arranged to thwart or discourage subsequent
+ modification by readers is not Transparent. An image format is
+ not Transparent if used for any substantial amount of text. 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, PostScript or PDF designed for
+ human modification. Examples of transparent image formats include
+ PNG, XCF and JPG. Opaque formats include 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, PostScript or PDF
+ 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.
+
+ The "publisher" means any person or entity that distributes copies
+ of the Document to the public.
+
+ A section "Entitled XYZ" means a named subunit of the Document
+ whose title either is precisely XYZ or contains XYZ in parentheses
+ following text that translates XYZ in another language. (Here XYZ
+ stands for a specific section name mentioned below, such as
+ "Acknowledgements", "Dedications", "Endorsements", or "History".)
+ To "Preserve the Title" of such a section when you modify the
+ Document means that it remains a section "Entitled XYZ" according
+ to this definition.
+
+ The Document may include Warranty Disclaimers next to the notice
+ which states that this License applies to the Document. These
+ Warranty Disclaimers are considered to be included by reference in
+ this License, but only as regards disclaiming warranties: any other
+ implication that these Warranty Disclaimers may have is void and
+ has no effect on the meaning of this License.
+
+ 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 (or copies in media that commonly
+ have printed covers) 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 computer-network location from
+ which the general network-using public has access to download
+ using public-standard network protocols a complete Transparent
+ copy of the Document, free of added material. 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 fewer than five), unless they release you
+ from this requirement.
+
+ 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", Preserve 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. For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, 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 to be Entitled
+ "Endorsements" or to conflict in title with any Invariant
+ Section.
+
+ O. Preserve any Warranty Disclaimers.
+
+ 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, and that you preserve all
+ their Warranty Disclaimers.
+
+ 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, is called an "aggregate" if the
+ copyright resulting from the compilation is not used to limit the
+ legal rights of the compilation's users beyond what the individual
+ works permit. When the Document is included in an aggregate, this
+ License does not apply to the other works in the aggregate which
+ 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 half
+ of the entire aggregate, the Document's Cover Texts may be placed
+ on covers that bracket the Document within the aggregate, or the
+ electronic equivalent of covers if the Document is in electronic
+ form. Otherwise they must appear on printed covers that bracket
+ 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, and all the license notices in the
+ Document, and any Warranty Disclaimers, provided that you also
+ include the original English version of this License and the
+ original versions of those notices and disclaimers. In case of a
+ disagreement between the translation and the original version of
+ this License or a notice or disclaimer, the original version will
+ prevail.
+
+ If a section in the Document is Entitled "Acknowledgements",
+ "Dedications", or "History", the requirement (section 4) to
+ Preserve its Title (section 1) will typically require changing the
+ actual title.
+
+ 9. TERMINATION
+
+ You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided under this License. Any attempt
+ otherwise to copy, modify, sublicense, or distribute it is void,
+ and will automatically terminate your rights under this License.
+
+ However, if you cease all violation of this License, then your
+ license from a particular copyright holder is reinstated (a)
+ provisionally, unless and until the copyright holder explicitly
+ and finally terminates your license, and (b) permanently, if the
+ copyright holder fails to notify you of the violation by some
+ reasonable means prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+ reinstated permanently if the copyright holder notifies you of the
+ violation by some reasonable means, this is the first time you have
+ received notice of violation of this License (for any work) from
+ that copyright holder, and you cure the violation prior to 30 days
+ after your receipt of the notice.
+
+ Termination of your rights under this section does not terminate
+ the licenses of parties who have received copies or rights from
+ you under this License. If your rights have been terminated and
+ not permanently reinstated, receipt of a copy of some or all of
+ the same material does not give you any rights to use it.
+
+ 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. If the Document specifies that a proxy
+ can decide which future versions of this License can be used, that
+ proxy's public statement of acceptance of a version permanently
+ authorizes you to choose that version for the Document.
+
+ 11. RELICENSING
+
+ "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+ World Wide Web server that publishes copyrightable works and also
+ provides prominent facilities for anybody to edit those works. A
+ public wiki that anybody can edit is an example of such a server.
+ A "Massive Multiauthor Collaboration" (or "MMC") contained in the
+ site means any set of copyrightable works thus published on the MMC
+ site.
+
+ "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+ license published by Creative Commons Corporation, a not-for-profit
+ corporation with a principal place of business in San Francisco,
+ California, as well as future copyleft versions of that license
+ published by that same organization.
+
+ "Incorporate" means to publish or republish a Document, in whole or
+ in part, as part of another Document.
+
+ An MMC is "eligible for relicensing" if it is licensed under this
+ License, and if all works that were first published under this
+ License somewhere other than this MMC, and subsequently
+ incorporated in whole or in part into the MMC, (1) had no cover
+ texts or invariant sections, and (2) were thus incorporated prior
+ to November 1, 2008.
+
+ The operator of an MMC Site may republish an MMC contained in the
+ site under CC-BY-SA on the same site at any time before August 1,
+ 2009, provided the MMC is eligible for relicensing.
+
+
+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:
+
+ 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.3
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+ Texts. A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+
+ If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with...Texts." line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with
+ the Front-Cover Texts being LIST, and with the Back-Cover Texts
+ being LIST.
+
+ If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+ 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.
+
+
+
+Tag Table:
+Node: Top777
+Node: Introduction2103
+Node: Compiling4595
+Node: Executing8651
+Node: Invoking11439
+Node: Output Options12854
+Node: Analysis Options19943
+Node: Miscellaneous Options23641
+Node: Deprecated Options24896
+Node: Symspecs26965
+Node: Output28791
+Node: Flat Profile29831
+Node: Call Graph34784
+Node: Primary38016
+Node: Callers40604
+Node: Subroutines42721
+Node: Cycles44562
+Node: Line-by-line51339
+Node: Annotated Source55412
+Node: Inaccuracy58411
+Node: Sampling Error58669
+Node: Assumptions61573
+Node: How do I?63043
+Node: Incompatibilities64597
+Node: Details66091
+Node: Implementation66484
+Node: File Format72381
+Node: Internals76671
+Node: Debugging85166
+Node: GNU Free Documentation License86767
+
+End Tag Table
diff --git a/gprof/po/bg.gmo b/gprof/po/bg.gmo
new file mode 100644
index 0000000000..668ad6b296
--- /dev/null
+++ b/gprof/po/bg.gmo
Binary files differ
diff --git a/gprof/po/da.gmo b/gprof/po/da.gmo
new file mode 100644
index 0000000000..b432d9953d
--- /dev/null
+++ b/gprof/po/da.gmo
Binary files differ
diff --git a/gprof/po/de.gmo b/gprof/po/de.gmo
new file mode 100644
index 0000000000..2f4dd2c2a0
--- /dev/null
+++ b/gprof/po/de.gmo
Binary files differ
diff --git a/gprof/po/eo.gmo b/gprof/po/eo.gmo
new file mode 100644
index 0000000000..13891b2e1e
--- /dev/null
+++ b/gprof/po/eo.gmo
Binary files differ
diff --git a/gprof/po/es.gmo b/gprof/po/es.gmo
new file mode 100644
index 0000000000..a5f808ec30
--- /dev/null
+++ b/gprof/po/es.gmo
Binary files differ
diff --git a/gprof/po/fi.gmo b/gprof/po/fi.gmo
new file mode 100644
index 0000000000..082672a430
--- /dev/null
+++ b/gprof/po/fi.gmo
Binary files differ
diff --git a/gprof/po/fr.gmo b/gprof/po/fr.gmo
new file mode 100644
index 0000000000..2a6e7dc6d3
--- /dev/null
+++ b/gprof/po/fr.gmo
Binary files differ
diff --git a/gprof/po/ga.gmo b/gprof/po/ga.gmo
new file mode 100644
index 0000000000..5942da356d
--- /dev/null
+++ b/gprof/po/ga.gmo
Binary files differ
diff --git a/gprof/po/id.gmo b/gprof/po/id.gmo
new file mode 100644
index 0000000000..e9c4293231
--- /dev/null
+++ b/gprof/po/id.gmo
Binary files differ
diff --git a/gprof/po/ms.gmo b/gprof/po/ms.gmo
new file mode 100644
index 0000000000..767768743c
--- /dev/null
+++ b/gprof/po/ms.gmo
Binary files differ
diff --git a/gprof/po/nl.gmo b/gprof/po/nl.gmo
new file mode 100644
index 0000000000..32cf7dec33
--- /dev/null
+++ b/gprof/po/nl.gmo
Binary files differ
diff --git a/gprof/po/pt_BR.gmo b/gprof/po/pt_BR.gmo
new file mode 100644
index 0000000000..32876f7600
--- /dev/null
+++ b/gprof/po/pt_BR.gmo
Binary files differ
diff --git a/gprof/po/ro.gmo b/gprof/po/ro.gmo
new file mode 100644
index 0000000000..2b3e6066f0
--- /dev/null
+++ b/gprof/po/ro.gmo
Binary files differ
diff --git a/gprof/po/ru.gmo b/gprof/po/ru.gmo
new file mode 100644
index 0000000000..b4ee1269ea
--- /dev/null
+++ b/gprof/po/ru.gmo
Binary files differ
diff --git a/gprof/po/rw.gmo b/gprof/po/rw.gmo
new file mode 100644
index 0000000000..a7a1d907d3
--- /dev/null
+++ b/gprof/po/rw.gmo
Binary files differ
diff --git a/gprof/po/sv.gmo b/gprof/po/sv.gmo
new file mode 100644
index 0000000000..6af90c7b33
--- /dev/null
+++ b/gprof/po/sv.gmo
Binary files differ
diff --git a/gprof/po/tr.gmo b/gprof/po/tr.gmo
new file mode 100644
index 0000000000..82735ab742
--- /dev/null
+++ b/gprof/po/tr.gmo
Binary files differ
diff --git a/gprof/po/vi.gmo b/gprof/po/vi.gmo
new file mode 100644
index 0000000000..91530d67a5
--- /dev/null
+++ b/gprof/po/vi.gmo
Binary files differ
diff --git a/ld/ld.info b/ld/ld.info
new file mode 100644
index 0000000000..8d42dde78c
--- /dev/null
+++ b/ld/ld.info
@@ -0,0 +1,7964 @@
+This is ld.info, produced by makeinfo version 4.8 from ld.texinfo.
+
+INFO-DIR-SECTION Software development
+START-INFO-DIR-ENTRY
+* Ld: (ld). The GNU linker.
+END-INFO-DIR-ENTRY
+
+ This file documents the GNU linker LD (GNU Binutils) version 2.21.90.
+
+ Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 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.3 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".
+
+
+File: ld.info, Node: Top, Next: Overview, Up: (dir)
+
+LD
+**
+
+This file documents the GNU linker ld (GNU Binutils) version 2.21.90.
+
+ This document is distributed under the terms of the GNU Free
+Documentation License version 1.3. A copy of the license is included
+in the section entitled "GNU Free Documentation License".
+
+* Menu:
+
+* Overview:: Overview
+* Invocation:: Invocation
+* Scripts:: Linker Scripts
+
+* Machine Dependent:: Machine Dependent Features
+
+* BFD:: BFD
+
+* Reporting Bugs:: Reporting Bugs
+* MRI:: MRI Compatible Script Files
+* GNU Free Documentation License:: GNU Free Documentation License
+* LD Index:: LD Index
+
+
+File: ld.info, Node: Overview, Next: Invocation, Prev: Top, Up: Top
+
+1 Overview
+**********
+
+`ld' combines a number of object and archive files, relocates their
+data and ties up symbol references. Usually the last step in compiling
+a program is to run `ld'.
+
+ `ld' accepts Linker Command Language files written in a superset of
+AT&T's Link Editor Command Language syntax, to provide explicit and
+total control over the linking process.
+
+ This version of `ld' uses the general purpose BFD libraries to
+operate on object files. This allows `ld' to read, combine, and write
+object files in many different formats--for example, COFF or `a.out'.
+Different formats may be linked together to produce any available kind
+of object file. *Note BFD::, for more information.
+
+ Aside from its flexibility, the GNU linker is more helpful than other
+linkers in providing diagnostic information. Many linkers abandon
+execution immediately upon encountering an error; whenever possible,
+`ld' continues executing, allowing you to identify other errors (or, in
+some cases, to get an output file in spite of the error).
+
+
+File: ld.info, Node: Invocation, Next: Scripts, Prev: Overview, Up: Top
+
+2 Invocation
+************
+
+The GNU linker `ld' is meant to cover a broad range of situations, and
+to be as compatible as possible with other linkers. As a result, you
+have many choices to control its behavior.
+
+* Menu:
+
+* Options:: Command Line Options
+* Environment:: Environment Variables
+
+
+File: ld.info, Node: Options, Next: Environment, Up: Invocation
+
+2.1 Command Line Options
+========================
+
+ The linker supports a plethora of command-line options, but in actual
+practice few of them are used in any particular context. For instance,
+a frequent use of `ld' is to link standard Unix object files on a
+standard, supported Unix system. On such a system, to link a file
+`hello.o':
+
+ ld -o OUTPUT /lib/crt0.o hello.o -lc
+
+ This tells `ld' to produce a file called OUTPUT as the result of
+linking the file `/lib/crt0.o' with `hello.o' and the library `libc.a',
+which will come from the standard search directories. (See the
+discussion of the `-l' option below.)
+
+ Some of the command-line options to `ld' may be specified at any
+point in the command line. However, options which refer to files, such
+as `-l' or `-T', cause the file to be read at the point at which the
+option appears in the command line, relative to the object files and
+other file options. Repeating non-file options with a different
+argument will either have no further effect, or override prior
+occurrences (those further to the left on the command line) of that
+option. Options which may be meaningfully specified more than once are
+noted in the descriptions below.
+
+ Non-option arguments are object files or archives which are to be
+linked together. They may follow, precede, or be mixed in with
+command-line options, except that an object file argument may not be
+placed between an option and its argument.
+
+ Usually the linker is invoked with at least one object file, but you
+can specify other forms of binary input files using `-l', `-R', and the
+script command language. If _no_ binary input files at all are
+specified, the linker does not produce any output, and issues the
+message `No input files'.
+
+ If the linker cannot recognize the format of an object file, it will
+assume that it is a linker script. A script specified in this way
+augments the main linker script used for the link (either the default
+linker script or the one specified by using `-T'). This feature
+permits the linker to link against a file which appears to be an object
+or an archive, but actually merely defines some symbol values, or uses
+`INPUT' or `GROUP' to load other objects. Specifying a script in this
+way merely augments the main linker script, with the extra commands
+placed after the main script; use the `-T' option to replace the
+default linker script entirely, but note the effect of the `INSERT'
+command. *Note Scripts::.
+
+ For options whose names are a single letter, option arguments must
+either follow the option letter without intervening whitespace, or be
+given as separate arguments immediately following the option that
+requires them.
+
+ For options whose names are multiple letters, either one dash or two
+can precede the option name; for example, `-trace-symbol' and
+`--trace-symbol' are equivalent. Note--there is one exception to this
+rule. Multiple letter options that start with a lower case 'o' can
+only be preceded by two dashes. This is to reduce confusion with the
+`-o' option. So for example `-omagic' sets the output file name to
+`magic' whereas `--omagic' sets the NMAGIC flag on the output.
+
+ Arguments to multiple-letter options must either be separated from
+the option name by an equals sign, or be given as separate arguments
+immediately following the option that requires them. For example,
+`--trace-symbol foo' and `--trace-symbol=foo' are equivalent. Unique
+abbreviations of the names of multiple-letter options are accepted.
+
+ Note--if the linker is being invoked indirectly, via a compiler
+driver (e.g. `gcc') then all the linker command line options should be
+prefixed by `-Wl,' (or whatever is appropriate for the particular
+compiler driver) like this:
+
+ gcc -Wl,--start-group foo.o bar.o -Wl,--end-group
+
+ This is important, because otherwise the compiler driver program may
+silently drop the linker options, resulting in a bad link. Confusion
+may also arise when passing options that require values through a
+driver, as the use of a space between option and argument acts as a
+separator, and causes the driver to pass only the option to the linker
+and the argument to the compiler. In this case, it is simplest to use
+the joined forms of both single- and multiple-letter options, such as:
+
+ gcc foo.o bar.o -Wl,-eENTRY -Wl,-Map=a.map
+
+ Here is a table of the generic command line switches accepted by the
+GNU linker:
+
+`@FILE'
+ Read command-line options from FILE. The options read are
+ inserted in place of the original @FILE option. If FILE does not
+ exist, or cannot be read, then the option will be treated
+ literally, and not removed.
+
+ Options in FILE are separated by whitespace. A whitespace
+ character may be included in an option by surrounding the entire
+ option in either single or double quotes. Any character
+ (including a backslash) may be included by prefixing the character
+ to be included with a backslash. The FILE may itself contain
+ additional @FILE options; any such options will be processed
+ recursively.
+
+`-a KEYWORD'
+ This option is supported for HP/UX compatibility. The KEYWORD
+ argument must be one of the strings `archive', `shared', or
+ `default'. `-aarchive' is functionally equivalent to `-Bstatic',
+ and the other two keywords are functionally equivalent to
+ `-Bdynamic'. This option may be used any number of times.
+
+`--audit AUDITLIB'
+ Adds AUDITLIB to the `DT_AUDIT' entry of the dynamic section.
+ AUDITLIB is not checked for existence, nor will it use the
+ DT_SONAME specified in the library. If specified multiple times
+ `DT_AUDIT' will contain a colon separated list of audit interfaces
+ to use. If the linker finds an object with an audit entry while
+ searching for shared libraries, it will add a corresponding
+ `DT_DEPAUDIT' entry in the output file. This option is only
+ meaningful on ELF platforms supporting the rtld-audit interface.
+
+`-A ARCHITECTURE'
+`--architecture=ARCHITECTURE'
+ In the current release of `ld', this option is useful only for the
+ Intel 960 family of architectures. In that `ld' configuration, the
+ ARCHITECTURE argument identifies the particular architecture in
+ the 960 family, enabling some safeguards and modifying the
+ archive-library search path. *Note `ld' and the Intel 960 family:
+ i960, for details.
+
+ Future releases of `ld' may support similar functionality for
+ other architecture families.
+
+`-b INPUT-FORMAT'
+`--format=INPUT-FORMAT'
+ `ld' may be configured to support more than one kind of object
+ file. If your `ld' is configured this way, you can use the `-b'
+ option to specify the binary format for input object files that
+ follow this option on the command line. Even when `ld' is
+ configured to support alternative object formats, you don't
+ usually need to specify this, as `ld' should be configured to
+ expect as a default input format the most usual format on each
+ machine. INPUT-FORMAT is a text string, the name of a particular
+ format supported by the BFD libraries. (You can list the
+ available binary formats with `objdump -i'.) *Note BFD::.
+
+ You may want to use this option if you are linking files with an
+ unusual binary format. You can also use `-b' to switch formats
+ explicitly (when linking object files of different formats), by
+ including `-b INPUT-FORMAT' before each group of object files in a
+ particular format.
+
+ The default format is taken from the environment variable
+ `GNUTARGET'. *Note Environment::. You can also define the input
+ format from a script, using the command `TARGET'; see *Note Format
+ Commands::.
+
+`-c MRI-COMMANDFILE'
+`--mri-script=MRI-COMMANDFILE'
+ For compatibility with linkers produced by MRI, `ld' accepts script
+ files written in an alternate, restricted command language,
+ described in *Note MRI Compatible Script Files: MRI. Introduce
+ MRI script files with the option `-c'; use the `-T' option to run
+ linker scripts written in the general-purpose `ld' scripting
+ language. If MRI-CMDFILE does not exist, `ld' looks for it in the
+ directories specified by any `-L' options.
+
+`-d'
+`-dc'
+`-dp'
+ These three options are equivalent; multiple forms are supported
+ for compatibility with other linkers. They assign space to common
+ symbols even if a relocatable output file is specified (with
+ `-r'). The script command `FORCE_COMMON_ALLOCATION' has the same
+ effect. *Note Miscellaneous Commands::.
+
+`--depaudit AUDITLIB'
+`-P AUDITLIB'
+ Adds AUDITLIB to the `DT_DEPAUDIT' entry of the dynamic section.
+ AUDITLIB is not checked for existence, nor will it use the
+ DT_SONAME specified in the library. If specified multiple times
+ `DT_DEPAUDIT' will contain a colon separated list of audit
+ interfaces to use. This option is only meaningful on ELF
+ platforms supporting the rtld-audit interface. The -P option is
+ provided for Solaris compatibility.
+
+`-e ENTRY'
+`--entry=ENTRY'
+ Use ENTRY as the explicit symbol for beginning execution of your
+ program, rather than the default entry point. If there is no
+ symbol named ENTRY, the linker will try to parse ENTRY as a number,
+ and use that as the entry address (the number will be interpreted
+ in base 10; you may use a leading `0x' for base 16, or a leading
+ `0' for base 8). *Note Entry Point::, for a discussion of defaults
+ and other ways of specifying the entry point.
+
+`--exclude-libs LIB,LIB,...'
+ Specifies a list of archive libraries from which symbols should
+ not be automatically exported. The library names may be delimited
+ by commas or colons. Specifying `--exclude-libs ALL' excludes
+ symbols in all archive libraries from automatic export. This
+ option is available only for the i386 PE targeted port of the
+ linker and for ELF targeted ports. For i386 PE, symbols
+ explicitly listed in a .def file are still exported, regardless of
+ this option. For ELF targeted ports, symbols affected by this
+ option will be treated as hidden.
+
+`--exclude-modules-for-implib MODULE,MODULE,...'
+ Specifies a list of object files or archive members, from which
+ symbols should not be automatically exported, but which should be
+ copied wholesale into the import library being generated during
+ the link. The module names may be delimited by commas or colons,
+ and must match exactly the filenames used by `ld' to open the
+ files; for archive members, this is simply the member name, but
+ for object files the name listed must include and match precisely
+ any path used to specify the input file on the linker's
+ command-line. This option is available only for the i386 PE
+ targeted port of the linker. Symbols explicitly listed in a .def
+ file are still exported, regardless of this option.
+
+`-E'
+`--export-dynamic'
+`--no-export-dynamic'
+ When creating a dynamically linked executable, using the `-E'
+ option or the `--export-dynamic' option causes the linker to add
+ all symbols to the dynamic symbol table. The dynamic symbol table
+ is the set of symbols which are visible from dynamic objects at
+ run time.
+
+ If you do not use either of these options (or use the
+ `--no-export-dynamic' option to restore the default behavior), the
+ dynamic symbol table will normally contain only those symbols
+ which are referenced by some dynamic object mentioned in the link.
+
+ If you use `dlopen' to load a dynamic object which needs to refer
+ back to the symbols defined by the program, rather than some other
+ dynamic object, then you will probably need to use this option when
+ linking the program itself.
+
+ You can also use the dynamic list to control what symbols should
+ be added to the dynamic symbol table if the output format supports
+ it. See the description of `--dynamic-list'.
+
+ Note that this option is specific to ELF targeted ports. PE
+ targets support a similar function to export all symbols from a
+ DLL or EXE; see the description of `--export-all-symbols' below.
+
+`-EB'
+ Link big-endian objects. This affects the default output format.
+
+`-EL'
+ Link little-endian objects. This affects the default output
+ format.
+
+`-f NAME'
+`--auxiliary=NAME'
+ When creating an ELF shared object, set the internal DT_AUXILIARY
+ field to the specified name. This tells the dynamic linker that
+ the symbol table of the shared object should be used as an
+ auxiliary filter on the symbol table of the shared object NAME.
+
+ If you later link a program against this filter object, then, when
+ you run the program, the dynamic linker will see the DT_AUXILIARY
+ field. If the dynamic linker resolves any symbols from the filter
+ object, it will first check whether there is a definition in the
+ shared object NAME. If there is one, it will be used instead of
+ the definition in the filter object. The shared object NAME need
+ not exist. Thus the shared object NAME may be used to provide an
+ alternative implementation of certain functions, perhaps for
+ debugging or for machine specific performance.
+
+ This option may be specified more than once. The DT_AUXILIARY
+ entries will be created in the order in which they appear on the
+ command line.
+
+`-F NAME'
+`--filter=NAME'
+ When creating an ELF shared object, set the internal DT_FILTER
+ field to the specified name. This tells the dynamic linker that
+ the symbol table of the shared object which is being created
+ should be used as a filter on the symbol table of the shared
+ object NAME.
+
+ If you later link a program against this filter object, then, when
+ you run the program, the dynamic linker will see the DT_FILTER
+ field. The dynamic linker will resolve symbols according to the
+ symbol table of the filter object as usual, but it will actually
+ link to the definitions found in the shared object NAME. Thus the
+ filter object can be used to select a subset of the symbols
+ provided by the object NAME.
+
+ Some older linkers used the `-F' option throughout a compilation
+ toolchain for specifying object-file format for both input and
+ output object files. The GNU linker uses other mechanisms for
+ this purpose: the `-b', `--format', `--oformat' options, the
+ `TARGET' command in linker scripts, and the `GNUTARGET'
+ environment variable. The GNU linker will ignore the `-F' option
+ when not creating an ELF shared object.
+
+`-fini=NAME'
+ When creating an ELF executable or shared object, call NAME when
+ the executable or shared object is unloaded, by setting DT_FINI to
+ the address of the function. By default, the linker uses `_fini'
+ as the function to call.
+
+`-g'
+ Ignored. Provided for compatibility with other tools.
+
+`-G VALUE'
+`--gpsize=VALUE'
+ Set the maximum size of objects to be optimized using the GP
+ register to SIZE. This is only meaningful for object file formats
+ such as MIPS ECOFF which supports putting large and small objects
+ into different sections. This is ignored for other object file
+ formats.
+
+`-h NAME'
+`-soname=NAME'
+ When creating an ELF shared object, set the internal DT_SONAME
+ field to the specified name. When an executable is linked with a
+ shared object which has a DT_SONAME field, then when the
+ executable is run the dynamic linker will attempt to load the
+ shared object specified by the DT_SONAME field rather than the
+ using the file name given to the linker.
+
+`-i'
+ Perform an incremental link (same as option `-r').
+
+`-init=NAME'
+ When creating an ELF executable or shared object, call NAME when
+ the executable or shared object is loaded, by setting DT_INIT to
+ the address of the function. By default, the linker uses `_init'
+ as the function to call.
+
+`-l NAMESPEC'
+`--library=NAMESPEC'
+ Add the archive or object file specified by NAMESPEC to the list
+ of files to link. This option may be used any number of times.
+ If NAMESPEC is of the form `:FILENAME', `ld' will search the
+ library path for a file called FILENAME, otherwise it will search
+ the library path for a file called `libNAMESPEC.a'.
+
+ On systems which support shared libraries, `ld' may also search for
+ files other than `libNAMESPEC.a'. Specifically, on ELF and SunOS
+ systems, `ld' will search a directory for a library called
+ `libNAMESPEC.so' before searching for one called `libNAMESPEC.a'.
+ (By convention, a `.so' extension indicates a shared library.)
+ Note that this behavior does not apply to `:FILENAME', which
+ always specifies a file called FILENAME.
+
+ The linker will search an archive only once, at the location where
+ it is specified on the command line. If the archive defines a
+ symbol which was undefined in some object which appeared before
+ the archive on the command line, the linker will include the
+ appropriate file(s) from the archive. However, an undefined
+ symbol in an object appearing later on the command line will not
+ cause the linker to search the archive again.
+
+ See the `-(' option for a way to force the linker to search
+ archives multiple times.
+
+ You may list the same archive multiple times on the command line.
+
+ This type of archive searching is standard for Unix linkers.
+ However, if you are using `ld' on AIX, note that it is different
+ from the behaviour of the AIX linker.
+
+`-L SEARCHDIR'
+`--library-path=SEARCHDIR'
+ Add path SEARCHDIR to the list of paths that `ld' will search for
+ archive libraries and `ld' control scripts. You may use this
+ option any number of times. The directories are searched in the
+ order in which they are specified on the command line.
+ Directories specified on the command line are searched before the
+ default directories. All `-L' options apply to all `-l' options,
+ regardless of the order in which the options appear. `-L' options
+ do not affect how `ld' searches for a linker script unless `-T'
+ option is specified.
+
+ If SEARCHDIR begins with `=', then the `=' will be replaced by the
+ "sysroot prefix", a path specified when the linker is configured.
+
+ The default set of paths searched (without being specified with
+ `-L') depends on which emulation mode `ld' is using, and in some
+ cases also on how it was configured. *Note Environment::.
+
+ The paths can also be specified in a link script with the
+ `SEARCH_DIR' command. Directories specified this way are searched
+ at the point in which the linker script appears in the command
+ line.
+
+`-m EMULATION'
+ Emulate the EMULATION linker. You can list the available
+ emulations with the `--verbose' or `-V' options.
+
+ If the `-m' option is not used, the emulation is taken from the
+ `LDEMULATION' environment variable, if that is defined.
+
+ Otherwise, the default emulation depends upon how the linker was
+ configured.
+
+`-M'
+`--print-map'
+ Print a link map to the standard output. A link map provides
+ information about the link, including the following:
+
+ * Where object files are mapped into memory.
+
+ * How common symbols are allocated.
+
+ * All archive members included in the link, with a mention of
+ the symbol which caused the archive member to be brought in.
+
+ * The values assigned to symbols.
+
+ Note - symbols whose values are computed by an expression
+ which involves a reference to a previous value of the same
+ symbol may not have correct result displayed in the link map.
+ This is because the linker discards intermediate results and
+ only retains the final value of an expression. Under such
+ circumstances the linker will display the final value
+ enclosed by square brackets. Thus for example a linker
+ script containing:
+
+ foo = 1
+ foo = foo * 4
+ foo = foo + 8
+
+ will produce the following output in the link map if the `-M'
+ option is used:
+
+ 0x00000001 foo = 0x1
+ [0x0000000c] foo = (foo * 0x4)
+ [0x0000000c] foo = (foo + 0x8)
+
+ See *Note Expressions:: for more information about
+ expressions in linker scripts.
+
+`-n'
+`--nmagic'
+ Turn off page alignment of sections, and disable linking against
+ shared libraries. If the output format supports Unix style magic
+ numbers, mark the output as `NMAGIC'.
+
+`-N'
+`--omagic'
+ Set the text and data sections to be readable and writable. Also,
+ do not page-align the data segment, and disable linking against
+ shared libraries. If the output format supports Unix style magic
+ numbers, mark the output as `OMAGIC'. Note: Although a writable
+ text section is allowed for PE-COFF targets, it does not conform
+ to the format specification published by Microsoft.
+
+`--no-omagic'
+ This option negates most of the effects of the `-N' option. It
+ sets the text section to be read-only, and forces the data segment
+ to be page-aligned. Note - this option does not enable linking
+ against shared libraries. Use `-Bdynamic' for this.
+
+`-o OUTPUT'
+`--output=OUTPUT'
+ Use OUTPUT as the name for the program produced by `ld'; if this
+ option is not specified, the name `a.out' is used by default. The
+ script command `OUTPUT' can also specify the output file name.
+
+`-O LEVEL'
+ If LEVEL is a numeric values greater than zero `ld' optimizes the
+ output. This might take significantly longer and therefore
+ probably should only be enabled for the final binary. At the
+ moment this option only affects ELF shared library generation.
+ Future releases of the linker may make more use of this option.
+ Also currently there is no difference in the linker's behaviour
+ for different non-zero values of this option. Again this may
+ change with future releases.
+
+`-q'
+`--emit-relocs'
+ Leave relocation sections and contents in fully linked executables.
+ Post link analysis and optimization tools may need this
+ information in order to perform correct modifications of
+ executables. This results in larger executables.
+
+ This option is currently only supported on ELF platforms.
+
+`--force-dynamic'
+ Force the output file to have dynamic sections. This option is
+ specific to VxWorks targets.
+
+`-r'
+`--relocatable'
+ Generate relocatable output--i.e., generate an output file that
+ can in turn serve as input to `ld'. This is often called "partial
+ linking". As a side effect, in environments that support standard
+ Unix magic numbers, this option also sets the output file's magic
+ number to `OMAGIC'. If this option is not specified, an absolute
+ file is produced. When linking C++ programs, this option _will
+ not_ resolve references to constructors; to do that, use `-Ur'.
+
+ When an input file does not have the same format as the output
+ file, partial linking is only supported if that input file does
+ not contain any relocations. Different output formats can have
+ further restrictions; for example some `a.out'-based formats do
+ not support partial linking with input files in other formats at
+ all.
+
+ This option does the same thing as `-i'.
+
+`-R FILENAME'
+`--just-symbols=FILENAME'
+ Read symbol names and their addresses from FILENAME, but do not
+ relocate it or include it in the output. This allows your output
+ file to refer symbolically to absolute locations of memory defined
+ in other programs. You may use this option more than once.
+
+ For compatibility with other ELF linkers, if the `-R' option is
+ followed by a directory name, rather than a file name, it is
+ treated as the `-rpath' option.
+
+`-s'
+`--strip-all'
+ Omit all symbol information from the output file.
+
+`-S'
+`--strip-debug'
+ Omit debugger symbol information (but not all symbols) from the
+ output file.
+
+`-t'
+`--trace'
+ Print the names of the input files as `ld' processes them.
+
+`-T SCRIPTFILE'
+`--script=SCRIPTFILE'
+ Use SCRIPTFILE as the linker script. This script replaces `ld''s
+ default linker script (rather than adding to it), so COMMANDFILE
+ must specify everything necessary to describe the output file.
+ *Note Scripts::. If SCRIPTFILE does not exist in the current
+ directory, `ld' looks for it in the directories specified by any
+ preceding `-L' options. Multiple `-T' options accumulate.
+
+`-dT SCRIPTFILE'
+`--default-script=SCRIPTFILE'
+ Use SCRIPTFILE as the default linker script. *Note Scripts::.
+
+ This option is similar to the `--script' option except that
+ processing of the script is delayed until after the rest of the
+ command line has been processed. This allows options placed after
+ the `--default-script' option on the command line to affect the
+ behaviour of the linker script, which can be important when the
+ linker command line cannot be directly controlled by the user.
+ (eg because the command line is being constructed by another tool,
+ such as `gcc').
+
+`-u SYMBOL'
+`--undefined=SYMBOL'
+ Force SYMBOL to be entered in the output file as an undefined
+ symbol. Doing this may, for example, trigger linking of additional
+ modules from standard libraries. `-u' may be repeated with
+ different option arguments to enter additional undefined symbols.
+ This option is equivalent to the `EXTERN' linker script command.
+
+`-Ur'
+ For anything other than C++ programs, this option is equivalent to
+ `-r': it generates relocatable output--i.e., an output file that
+ can in turn serve as input to `ld'. When linking C++ programs,
+ `-Ur' _does_ resolve references to constructors, unlike `-r'. It
+ does not work to use `-Ur' on files that were themselves linked
+ with `-Ur'; once the constructor table has been built, it cannot
+ be added to. Use `-Ur' only for the last partial link, and `-r'
+ for the others.
+
+`--unique[=SECTION]'
+ Creates a separate output section for every input section matching
+ SECTION, or if the optional wildcard SECTION argument is missing,
+ for every orphan input section. An orphan section is one not
+ specifically mentioned in a linker script. You may use this option
+ multiple times on the command line; It prevents the normal
+ merging of input sections with the same name, overriding output
+ section assignments in a linker script.
+
+`-v'
+`--version'
+`-V'
+ Display the version number for `ld'. The `-V' option also lists
+ the supported emulations.
+
+`-x'
+`--discard-all'
+ Delete all local symbols.
+
+`-X'
+`--discard-locals'
+ Delete all temporary local symbols. (These symbols start with
+ system-specific local label prefixes, typically `.L' for ELF
+ systems or `L' for traditional a.out systems.)
+
+`-y SYMBOL'
+`--trace-symbol=SYMBOL'
+ Print the name of each linked file in which SYMBOL appears. This
+ option may be given any number of times. On many systems it is
+ necessary to prepend an underscore.
+
+ This option is useful when you have an undefined symbol in your
+ link but don't know where the reference is coming from.
+
+`-Y PATH'
+ Add PATH to the default library search path. This option exists
+ for Solaris compatibility.
+
+`-z KEYWORD'
+ The recognized keywords are:
+ `combreloc'
+ Combines multiple reloc sections and sorts them to make
+ dynamic symbol lookup caching possible.
+
+ `defs'
+ Disallows undefined symbols in object files. Undefined
+ symbols in shared libraries are still allowed.
+
+ `execstack'
+ Marks the object as requiring executable stack.
+
+ `initfirst'
+ This option is only meaningful when building a shared object.
+ It marks the object so that its runtime initialization will
+ occur before the runtime initialization of any other objects
+ brought into the process at the same time. Similarly the
+ runtime finalization of the object will occur after the
+ runtime finalization of any other objects.
+
+ `interpose'
+ Marks the object that its symbol table interposes before all
+ symbols but the primary executable.
+
+ `lazy'
+ When generating an executable or shared library, mark it to
+ tell the dynamic linker to defer function call resolution to
+ the point when the function is called (lazy binding), rather
+ than at load time. Lazy binding is the default.
+
+ `loadfltr'
+ Marks the object that its filters be processed immediately at
+ runtime.
+
+ `muldefs'
+ Allows multiple definitions.
+
+ `nocombreloc'
+ Disables multiple reloc sections combining.
+
+ `nocopyreloc'
+ Disables production of copy relocs.
+
+ `nodefaultlib'
+ Marks the object that the search for dependencies of this
+ object will ignore any default library search paths.
+
+ `nodelete'
+ Marks the object shouldn't be unloaded at runtime.
+
+ `nodlopen'
+ Marks the object not available to `dlopen'.
+
+ `nodump'
+ Marks the object can not be dumped by `dldump'.
+
+ `noexecstack'
+ Marks the object as not requiring executable stack.
+
+ `norelro'
+ Don't create an ELF `PT_GNU_RELRO' segment header in the
+ object.
+
+ `now'
+ When generating an executable or shared library, mark it to
+ tell the dynamic linker to resolve all symbols when the
+ program is started, or when the shared library is linked to
+ using dlopen, instead of deferring function call resolution
+ to the point when the function is first called.
+
+ `origin'
+ Marks the object may contain $ORIGIN.
+
+ `relro'
+ Create an ELF `PT_GNU_RELRO' segment header in the object.
+
+ `max-page-size=VALUE'
+ Set the emulation maximum page size to VALUE.
+
+ `common-page-size=VALUE'
+ Set the emulation common page size to VALUE.
+
+
+ Other keywords are ignored for Solaris compatibility.
+
+`-( ARCHIVES -)'
+`--start-group ARCHIVES --end-group'
+ The ARCHIVES should be a list of archive files. They may be
+ either explicit file names, or `-l' options.
+
+ The specified archives are searched repeatedly until no new
+ undefined references are created. Normally, an archive is
+ searched only once in the order that it is specified on the
+ command line. If a symbol in that archive is needed to resolve an
+ undefined symbol referred to by an object in an archive that
+ appears later on the command line, the linker would not be able to
+ resolve that reference. By grouping the archives, they all be
+ searched repeatedly until all possible references are resolved.
+
+ Using this option has a significant performance cost. It is best
+ to use it only when there are unavoidable circular references
+ between two or more archives.
+
+`--accept-unknown-input-arch'
+`--no-accept-unknown-input-arch'
+ Tells the linker to accept input files whose architecture cannot be
+ recognised. The assumption is that the user knows what they are
+ doing and deliberately wants to link in these unknown input files.
+ This was the default behaviour of the linker, before release
+ 2.14. The default behaviour from release 2.14 onwards is to
+ reject such input files, and so the `--accept-unknown-input-arch'
+ option has been added to restore the old behaviour.
+
+`--as-needed'
+`--no-as-needed'
+ This option affects ELF DT_NEEDED tags for dynamic libraries
+ mentioned on the command line after the `--as-needed' option.
+ Normally the linker will add a DT_NEEDED tag for each dynamic
+ library mentioned on the command line, regardless of whether the
+ library is actually needed or not. `--as-needed' causes a
+ DT_NEEDED tag to only be emitted for a library that satisfies an
+ undefined symbol reference from a regular object file or, if the
+ library is not found in the DT_NEEDED lists of other libraries
+ linked up to that point, an undefined symbol reference from
+ another dynamic library. `--no-as-needed' restores the default
+ behaviour.
+
+`--add-needed'
+`--no-add-needed'
+ These two options have been deprecated because of the similarity of
+ their names to the `--as-needed' and `--no-as-needed' options.
+ They have been replaced by `--copy-dt-needed-entries' and
+ `--no-copy-dt-needed-entries'.
+
+`-assert KEYWORD'
+ This option is ignored for SunOS compatibility.
+
+`-Bdynamic'
+`-dy'
+`-call_shared'
+ Link against dynamic libraries. This is only meaningful on
+ platforms for which shared libraries are supported. This option
+ is normally the default on such platforms. The different variants
+ of this option are for compatibility with various systems. You
+ may use this option multiple times on the command line: it affects
+ library searching for `-l' options which follow it.
+
+`-Bgroup'
+ Set the `DF_1_GROUP' flag in the `DT_FLAGS_1' entry in the dynamic
+ section. This causes the runtime linker to handle lookups in this
+ object and its dependencies to be performed only inside the group.
+ `--unresolved-symbols=report-all' is implied. This option is only
+ meaningful on ELF platforms which support shared libraries.
+
+`-Bstatic'
+`-dn'
+`-non_shared'
+`-static'
+ Do not link against shared libraries. This is only meaningful on
+ platforms for which shared libraries are supported. The different
+ variants of this option are for compatibility with various
+ systems. You may use this option multiple times on the command
+ line: it affects library searching for `-l' options which follow
+ it. This option also implies `--unresolved-symbols=report-all'.
+ This option can be used with `-shared'. Doing so means that a
+ shared library is being created but that all of the library's
+ external references must be resolved by pulling in entries from
+ static libraries.
+
+`-Bsymbolic'
+ When creating a shared library, bind references to global symbols
+ to the definition within the shared library, if any. Normally, it
+ is possible for a program linked against a shared library to
+ override the definition within the shared library. This option is
+ only meaningful on ELF platforms which support shared libraries.
+
+`-Bsymbolic-functions'
+ When creating a shared library, bind references to global function
+ symbols to the definition within the shared library, if any. This
+ option is only meaningful on ELF platforms which support shared
+ libraries.
+
+`--dynamic-list=DYNAMIC-LIST-FILE'
+ Specify the name of a dynamic list file to the linker. This is
+ typically used when creating shared libraries to specify a list of
+ global symbols whose references shouldn't be bound to the
+ definition within the shared library, or creating dynamically
+ linked executables to specify a list of symbols which should be
+ added to the symbol table in the executable. This option is only
+ meaningful on ELF platforms which support shared libraries.
+
+ The format of the dynamic list is the same as the version node
+ without scope and node name. See *Note VERSION:: for more
+ information.
+
+`--dynamic-list-data'
+ Include all global data symbols to the dynamic list.
+
+`--dynamic-list-cpp-new'
+ Provide the builtin dynamic list for C++ operator new and delete.
+ It is mainly useful for building shared libstdc++.
+
+`--dynamic-list-cpp-typeinfo'
+ Provide the builtin dynamic list for C++ runtime type
+ identification.
+
+`--check-sections'
+`--no-check-sections'
+ Asks the linker _not_ to check section addresses after they have
+ been assigned to see if there are any overlaps. Normally the
+ linker will perform this check, and if it finds any overlaps it
+ will produce suitable error messages. The linker does know about,
+ and does make allowances for sections in overlays. The default
+ behaviour can be restored by using the command line switch
+ `--check-sections'. Section overlap is not usually checked for
+ relocatable links. You can force checking in that case by using
+ the `--check-sections' option.
+
+`--copy-dt-needed-entries'
+`--no-copy-dt-needed-entries'
+ This option affects the treatment of dynamic libraries referred to
+ by DT_NEEDED tags _inside_ ELF dynamic libraries mentioned on the
+ command line. Normally the linker won't add a DT_NEEDED tag to the
+ output binary for each library mentioned in a DT_NEEDED tag in an
+ input dynamic library. With `--copy-dt-needed-entries' specified
+ on the command line however any dynamic libraries that follow it
+ will have their DT_NEEDED entries added. The default behaviour
+ can be restored with `--no-copy-dt-needed-entries'.
+
+ This option also has an effect on the resolution of symbols in
+ dynamic libraries. With `--copy-dt-needed-entries' dynamic
+ libraries mentioned on the command line will be recursively
+ searched, following their DT_NEEDED tags to other libraries, in
+ order to resolve symbols required by the output binary. With the
+ default setting however the searching of dynamic libraries that
+ follow it will stop with the dynamic library itself. No DT_NEEDED
+ links will be traversed to resolve symbols.
+
+`--cref'
+ Output a cross reference table. If a linker map file is being
+ generated, the cross reference table is printed to the map file.
+ Otherwise, it is printed on the standard output.
+
+ The format of the table is intentionally simple, so that it may be
+ easily processed by a script if necessary. The symbols are
+ printed out, sorted by name. For each symbol, a list of file
+ names is given. If the symbol is defined, the first file listed
+ is the location of the definition. The remaining files contain
+ references to the symbol.
+
+`--no-define-common'
+ This option inhibits the assignment of addresses to common symbols.
+ The script command `INHIBIT_COMMON_ALLOCATION' has the same effect.
+ *Note Miscellaneous Commands::.
+
+ The `--no-define-common' option allows decoupling the decision to
+ assign addresses to Common symbols from the choice of the output
+ file type; otherwise a non-Relocatable output type forces
+ assigning addresses to Common symbols. Using `--no-define-common'
+ allows Common symbols that are referenced from a shared library to
+ be assigned addresses only in the main program. This eliminates
+ the unused duplicate space in the shared library, and also
+ prevents any possible confusion over resolving to the wrong
+ duplicate when there are many dynamic modules with specialized
+ search paths for runtime symbol resolution.
+
+`--defsym=SYMBOL=EXPRESSION'
+ Create a global symbol in the output file, containing the absolute
+ address given by EXPRESSION. You may use this option as many
+ times as necessary to define multiple symbols in the command line.
+ A limited form of arithmetic is supported for the EXPRESSION in
+ this context: you may give a hexadecimal constant or the name of
+ an existing symbol, or use `+' and `-' to add or subtract
+ hexadecimal constants or symbols. If you need more elaborate
+ expressions, consider using the linker command language from a
+ script (*note Assignment: Symbol Definitions: Assignments.).
+ _Note:_ there should be no white space between SYMBOL, the equals
+ sign ("<=>"), and EXPRESSION.
+
+`--demangle[=STYLE]'
+`--no-demangle'
+ These options control whether to demangle symbol names in error
+ messages and other output. When the linker is told to demangle,
+ it tries to present symbol names in a readable fashion: it strips
+ leading underscores if they are used by the object file format,
+ and converts C++ mangled symbol names into user readable names.
+ Different compilers have different mangling styles. The optional
+ demangling style argument can be used to choose an appropriate
+ demangling style for your compiler. The linker will demangle by
+ default unless the environment variable `COLLECT_NO_DEMANGLE' is
+ set. These options may be used to override the default.
+
+`-IFILE'
+`--dynamic-linker=FILE'
+ Set the name of the dynamic linker. This is only meaningful when
+ generating dynamically linked ELF executables. The default dynamic
+ linker is normally correct; don't use this unless you know what
+ you are doing.
+
+`--fatal-warnings'
+`--no-fatal-warnings'
+ Treat all warnings as errors. The default behaviour can be
+ restored with the option `--no-fatal-warnings'.
+
+`--force-exe-suffix'
+ Make sure that an output file has a .exe suffix.
+
+ If a successfully built fully linked output file does not have a
+ `.exe' or `.dll' suffix, this option forces the linker to copy the
+ output file to one of the same name with a `.exe' suffix. This
+ option is useful when using unmodified Unix makefiles on a
+ Microsoft Windows host, since some versions of Windows won't run
+ an image unless it ends in a `.exe' suffix.
+
+`--gc-sections'
+`--no-gc-sections'
+ Enable garbage collection of unused input sections. It is ignored
+ on targets that do not support this option. The default behaviour
+ (of not performing this garbage collection) can be restored by
+ specifying `--no-gc-sections' on the command line.
+
+ `--gc-sections' decides which input sections are used by examining
+ symbols and relocations. The section containing the entry symbol
+ and all sections containing symbols undefined on the command-line
+ will be kept, as will sections containing symbols referenced by
+ dynamic objects. Note that when building shared libraries, the
+ linker must assume that any visible symbol is referenced. Once
+ this initial set of sections has been determined, the linker
+ recursively marks as used any section referenced by their
+ relocations. See `--entry' and `--undefined'.
+
+ This option can be set when doing a partial link (enabled with
+ option `-r'). In this case the root of symbols kept must be
+ explicitly specified either by an `--entry' or `--undefined'
+ option or by a `ENTRY' command in the linker script.
+
+`--print-gc-sections'
+`--no-print-gc-sections'
+ List all sections removed by garbage collection. The listing is
+ printed on stderr. This option is only effective if garbage
+ collection has been enabled via the `--gc-sections') option. The
+ default behaviour (of not listing the sections that are removed)
+ can be restored by specifying `--no-print-gc-sections' on the
+ command line.
+
+`--print-output-format'
+ Print the name of the default output format (perhaps influenced by
+ other command-line options). This is the string that would appear
+ in an `OUTPUT_FORMAT' linker script command (*note File
+ Commands::).
+
+`--help'
+ Print a summary of the command-line options on the standard output
+ and exit.
+
+`--target-help'
+ Print a summary of all target specific options on the standard
+ output and exit.
+
+`-Map=MAPFILE'
+ Print a link map to the file MAPFILE. See the description of the
+ `-M' option, above.
+
+`--no-keep-memory'
+ `ld' normally optimizes for speed over memory usage by caching the
+ symbol tables of input files in memory. This option tells `ld' to
+ instead optimize for memory usage, by rereading the symbol tables
+ as necessary. This may be required if `ld' runs out of memory
+ space while linking a large executable.
+
+`--no-undefined'
+`-z defs'
+ Report unresolved symbol references from regular object files.
+ This is done even if the linker is creating a non-symbolic shared
+ library. The switch `--[no-]allow-shlib-undefined' controls the
+ behaviour for reporting unresolved references found in shared
+ libraries being linked in.
+
+`--allow-multiple-definition'
+`-z muldefs'
+ Normally when a symbol is defined multiple times, the linker will
+ report a fatal error. These options allow multiple definitions and
+ the first definition will be used.
+
+`--allow-shlib-undefined'
+`--no-allow-shlib-undefined'
+ Allows or disallows undefined symbols in shared libraries. This
+ switch is similar to `--no-undefined' except that it determines
+ the behaviour when the undefined symbols are in a shared library
+ rather than a regular object file. It does not affect how
+ undefined symbols in regular object files are handled.
+
+ The default behaviour is to report errors for any undefined symbols
+ referenced in shared libraries if the linker is being used to
+ create an executable, but to allow them if the linker is being
+ used to create a shared library.
+
+ The reasons for allowing undefined symbol references in shared
+ libraries specified at link time are that:
+
+ * A shared library specified at link time may not be the same
+ as the one that is available at load time, so the symbol
+ might actually be resolvable at load time.
+
+ * There are some operating systems, eg BeOS and HPPA, where
+ undefined symbols in shared libraries are normal.
+
+ The BeOS kernel for example patches shared libraries at load
+ time to select whichever function is most appropriate for the
+ current architecture. This is used, for example, to
+ dynamically select an appropriate memset function.
+
+`--no-undefined-version'
+ Normally when a symbol has an undefined version, the linker will
+ ignore it. This option disallows symbols with undefined version
+ and a fatal error will be issued instead.
+
+`--default-symver'
+ Create and use a default symbol version (the soname) for
+ unversioned exported symbols.
+
+`--default-imported-symver'
+ Create and use a default symbol version (the soname) for
+ unversioned imported symbols.
+
+`--no-warn-mismatch'
+ Normally `ld' will give an error if you try to link together input
+ files that are mismatched for some reason, perhaps because they
+ have been compiled for different processors or for different
+ endiannesses. This option tells `ld' that it should silently
+ permit such possible errors. This option should only be used with
+ care, in cases when you have taken some special action that
+ ensures that the linker errors are inappropriate.
+
+`--no-warn-search-mismatch'
+ Normally `ld' will give a warning if it finds an incompatible
+ library during a library search. This option silences the warning.
+
+`--no-whole-archive'
+ Turn off the effect of the `--whole-archive' option for subsequent
+ archive files.
+
+`--noinhibit-exec'
+ Retain the executable output file whenever it is still usable.
+ Normally, the linker will not produce an output file if it
+ encounters errors during the link process; it exits without
+ writing an output file when it issues any error whatsoever.
+
+`-nostdlib'
+ Only search library directories explicitly specified on the
+ command line. Library directories specified in linker scripts
+ (including linker scripts specified on the command line) are
+ ignored.
+
+`--oformat=OUTPUT-FORMAT'
+ `ld' may be configured to support more than one kind of object
+ file. If your `ld' is configured this way, you can use the
+ `--oformat' option to specify the binary format for the output
+ object file. Even when `ld' is configured to support alternative
+ object formats, you don't usually need to specify this, as `ld'
+ should be configured to produce as a default output format the most
+ usual format on each machine. OUTPUT-FORMAT is a text string, the
+ name of a particular format supported by the BFD libraries. (You
+ can list the available binary formats with `objdump -i'.) The
+ script command `OUTPUT_FORMAT' can also specify the output format,
+ but this option overrides it. *Note BFD::.
+
+`-pie'
+`--pic-executable'
+ Create a position independent executable. This is currently only
+ supported on ELF platforms. Position independent executables are
+ similar to shared libraries in that they are relocated by the
+ dynamic linker to the virtual address the OS chooses for them
+ (which can vary between invocations). Like normal dynamically
+ linked executables they can be executed and symbols defined in the
+ executable cannot be overridden by shared libraries.
+
+`-qmagic'
+ This option is ignored for Linux compatibility.
+
+`-Qy'
+ This option is ignored for SVR4 compatibility.
+
+`--relax'
+`--no-relax'
+ An option with machine dependent effects. This option is only
+ supported on a few targets. *Note `ld' and the H8/300: H8/300.
+ *Note `ld' and the Intel 960 family: i960. *Note `ld' and Xtensa
+ Processors: Xtensa. *Note `ld' and the 68HC11 and 68HC12:
+ M68HC11/68HC12. *Note `ld' and PowerPC 32-bit ELF Support:
+ PowerPC ELF32.
+
+ On some platforms the `--relax' option performs target specific,
+ global optimizations that become possible when the linker resolves
+ addressing in the program, such as relaxing address modes,
+ synthesizing new instructions, selecting shorter version of current
+ instructions, and combinig constant values.
+
+ On some platforms these link time global optimizations may make
+ symbolic debugging of the resulting executable impossible. This
+ is known to be the case for the Matsushita MN10200 and MN10300
+ family of processors.
+
+ On platforms where this is not supported, `--relax' is accepted,
+ but ignored.
+
+ On platforms where `--relax' is accepted the option `--no-relax'
+ can be used to disable the feature.
+
+`--retain-symbols-file=FILENAME'
+ Retain _only_ the symbols listed in the file FILENAME, discarding
+ all others. FILENAME is simply a flat file, with one symbol name
+ per line. This option is especially useful in environments (such
+ as VxWorks) where a large global symbol table is accumulated
+ gradually, to conserve run-time memory.
+
+ `--retain-symbols-file' does _not_ discard undefined symbols, or
+ symbols needed for relocations.
+
+ You may only specify `--retain-symbols-file' once in the command
+ line. It overrides `-s' and `-S'.
+
+`-rpath=DIR'
+ Add a directory to the runtime library search path. This is used
+ when linking an ELF executable with shared objects. All `-rpath'
+ arguments are concatenated and passed to the runtime linker, which
+ uses them to locate shared objects at runtime. The `-rpath'
+ option is also used when locating shared objects which are needed
+ by shared objects explicitly included in the link; see the
+ description of the `-rpath-link' option. If `-rpath' is not used
+ when linking an ELF executable, the contents of the environment
+ variable `LD_RUN_PATH' will be used if it is defined.
+
+ The `-rpath' option may also be used on SunOS. By default, on
+ SunOS, the linker will form a runtime search patch out of all the
+ `-L' options it is given. If a `-rpath' option is used, the
+ runtime search path will be formed exclusively using the `-rpath'
+ options, ignoring the `-L' options. This can be useful when using
+ gcc, which adds many `-L' options which may be on NFS mounted file
+ systems.
+
+ For compatibility with other ELF linkers, if the `-R' option is
+ followed by a directory name, rather than a file name, it is
+ treated as the `-rpath' option.
+
+`-rpath-link=DIR'
+ When using ELF or SunOS, one shared library may require another.
+ This happens when an `ld -shared' link includes a shared library
+ as one of the input files.
+
+ When the linker encounters such a dependency when doing a
+ non-shared, non-relocatable link, it will automatically try to
+ locate the required shared library and include it in the link, if
+ it is not included explicitly. In such a case, the `-rpath-link'
+ option specifies the first set of directories to search. The
+ `-rpath-link' option may specify a sequence of directory names
+ either by specifying a list of names separated by colons, or by
+ appearing multiple times.
+
+ This option should be used with caution as it overrides the search
+ path that may have been hard compiled into a shared library. In
+ such a case it is possible to use unintentionally a different
+ search path than the runtime linker would do.
+
+ The linker uses the following search paths to locate required
+ shared libraries:
+ 1. Any directories specified by `-rpath-link' options.
+
+ 2. Any directories specified by `-rpath' options. The difference
+ between `-rpath' and `-rpath-link' is that directories
+ specified by `-rpath' options are included in the executable
+ and used at runtime, whereas the `-rpath-link' option is only
+ effective at link time. Searching `-rpath' in this way is
+ only supported by native linkers and cross linkers which have
+ been configured with the `--with-sysroot' option.
+
+ 3. On an ELF system, for native linkers, if the `-rpath' and
+ `-rpath-link' options were not used, search the contents of
+ the environment variable `LD_RUN_PATH'.
+
+ 4. On SunOS, if the `-rpath' option was not used, search any
+ directories specified using `-L' options.
+
+ 5. For a native linker, the search the contents of the
+ environment variable `LD_LIBRARY_PATH'.
+
+ 6. For a native ELF linker, the directories in `DT_RUNPATH' or
+ `DT_RPATH' of a shared library are searched for shared
+ libraries needed by it. The `DT_RPATH' entries are ignored if
+ `DT_RUNPATH' entries exist.
+
+ 7. The default directories, normally `/lib' and `/usr/lib'.
+
+ 8. For a native linker on an ELF system, if the file
+ `/etc/ld.so.conf' exists, the list of directories found in
+ that file.
+
+ If the required shared library is not found, the linker will issue
+ a warning and continue with the link.
+
+`-shared'
+`-Bshareable'
+ Create a shared library. This is currently only supported on ELF,
+ XCOFF and SunOS platforms. On SunOS, the linker will
+ automatically create a shared library if the `-e' option is not
+ used and there are undefined symbols in the link.
+
+`--sort-common'
+`--sort-common=ascending'
+`--sort-common=descending'
+ This option tells `ld' to sort the common symbols by alignment in
+ ascending or descending order when it places them in the
+ appropriate output sections. The symbol alignments considered are
+ sixteen-byte or larger, eight-byte, four-byte, two-byte, and
+ one-byte. This is to prevent gaps between symbols due to alignment
+ constraints. If no sorting order is specified, then descending
+ order is assumed.
+
+`--sort-section=name'
+ This option will apply `SORT_BY_NAME' to all wildcard section
+ patterns in the linker script.
+
+`--sort-section=alignment'
+ This option will apply `SORT_BY_ALIGNMENT' to all wildcard section
+ patterns in the linker script.
+
+`--split-by-file[=SIZE]'
+ Similar to `--split-by-reloc' but creates a new output section for
+ each input file when SIZE is reached. SIZE defaults to a size of
+ 1 if not given.
+
+`--split-by-reloc[=COUNT]'
+ Tries to creates extra sections in the output file so that no
+ single output section in the file contains more than COUNT
+ relocations. This is useful when generating huge relocatable
+ files for downloading into certain real time kernels with the COFF
+ object file format; since COFF cannot represent more than 65535
+ relocations in a single section. Note that this will fail to work
+ with object file formats which do not support arbitrary sections.
+ The linker will not split up individual input sections for
+ redistribution, so if a single input section contains more than
+ COUNT relocations one output section will contain that many
+ relocations. COUNT defaults to a value of 32768.
+
+`--stats'
+ Compute and display statistics about the operation of the linker,
+ such as execution time and memory usage.
+
+`--sysroot=DIRECTORY'
+ Use DIRECTORY as the location of the sysroot, overriding the
+ configure-time default. This option is only supported by linkers
+ that were configured using `--with-sysroot'.
+
+`--traditional-format'
+ For some targets, the output of `ld' is different in some ways from
+ the output of some existing linker. This switch requests `ld' to
+ use the traditional format instead.
+
+ For example, on SunOS, `ld' combines duplicate entries in the
+ symbol string table. This can reduce the size of an output file
+ with full debugging information by over 30 percent.
+ Unfortunately, the SunOS `dbx' program can not read the resulting
+ program (`gdb' has no trouble). The `--traditional-format' switch
+ tells `ld' to not combine duplicate entries.
+
+`--section-start=SECTIONNAME=ORG'
+ Locate a section in the output file at the absolute address given
+ by ORG. You may use this option as many times as necessary to
+ locate multiple sections in the command line. ORG must be a
+ single hexadecimal integer; for compatibility with other linkers,
+ you may omit the leading `0x' usually associated with hexadecimal
+ values. _Note:_ there should be no white space between
+ SECTIONNAME, the equals sign ("<=>"), and ORG.
+
+`-Tbss=ORG'
+`-Tdata=ORG'
+`-Ttext=ORG'
+ Same as `--section-start', with `.bss', `.data' or `.text' as the
+ SECTIONNAME.
+
+`-Ttext-segment=ORG'
+ When creating an ELF executable or shared object, it will set the
+ address of the first byte of the text segment.
+
+`--unresolved-symbols=METHOD'
+ Determine how to handle unresolved symbols. There are four
+ possible values for `method':
+
+ `ignore-all'
+ Do not report any unresolved symbols.
+
+ `report-all'
+ Report all unresolved symbols. This is the default.
+
+ `ignore-in-object-files'
+ Report unresolved symbols that are contained in shared
+ libraries, but ignore them if they come from regular object
+ files.
+
+ `ignore-in-shared-libs'
+ Report unresolved symbols that come from regular object
+ files, but ignore them if they come from shared libraries.
+ This can be useful when creating a dynamic binary and it is
+ known that all the shared libraries that it should be
+ referencing are included on the linker's command line.
+
+ The behaviour for shared libraries on their own can also be
+ controlled by the `--[no-]allow-shlib-undefined' option.
+
+ Normally the linker will generate an error message for each
+ reported unresolved symbol but the option
+ `--warn-unresolved-symbols' can change this to a warning.
+
+`--dll-verbose'
+`--verbose[=NUMBER]'
+ Display the version number for `ld' and list the linker emulations
+ supported. Display which input files can and cannot be opened.
+ Display the linker script being used by the linker. If the
+ optional NUMBER argument > 1, plugin symbol status will also be
+ displayed.
+
+`--version-script=VERSION-SCRIPTFILE'
+ Specify the name of a version script to the linker. This is
+ typically used when creating shared libraries to specify
+ additional information about the version hierarchy for the library
+ being created. This option is only fully supported on ELF
+ platforms which support shared libraries; see *Note VERSION::. It
+ is partially supported on PE platforms, which can use version
+ scripts to filter symbol visibility in auto-export mode: any
+ symbols marked `local' in the version script will not be exported.
+ *Note WIN32::.
+
+`--warn-common'
+ Warn when a common symbol is combined with another common symbol
+ or with a symbol definition. Unix linkers allow this somewhat
+ sloppy practise, but linkers on some other operating systems do
+ not. This option allows you to find potential problems from
+ combining global symbols. Unfortunately, some C libraries use
+ this practise, so you may get some warnings about symbols in the
+ libraries as well as in your programs.
+
+ There are three kinds of global symbols, illustrated here by C
+ examples:
+
+ `int i = 1;'
+ A definition, which goes in the initialized data section of
+ the output file.
+
+ `extern int i;'
+ An undefined reference, which does not allocate space. There
+ must be either a definition or a common symbol for the
+ variable somewhere.
+
+ `int i;'
+ A common symbol. If there are only (one or more) common
+ symbols for a variable, it goes in the uninitialized data
+ area of the output file. The linker merges multiple common
+ symbols for the same variable into a single symbol. If they
+ are of different sizes, it picks the largest size. The
+ linker turns a common symbol into a declaration, if there is
+ a definition of the same variable.
+
+ The `--warn-common' option can produce five kinds of warnings.
+ Each warning consists of a pair of lines: the first describes the
+ symbol just encountered, and the second describes the previous
+ symbol encountered with the same name. One or both of the two
+ symbols will be a common symbol.
+
+ 1. Turning a common symbol into a reference, because there is
+ already a definition for the symbol.
+ FILE(SECTION): warning: common of `SYMBOL'
+ overridden by definition
+ FILE(SECTION): warning: defined here
+
+ 2. Turning a common symbol into a reference, because a later
+ definition for the symbol is encountered. This is the same
+ as the previous case, except that the symbols are encountered
+ in a different order.
+ FILE(SECTION): warning: definition of `SYMBOL'
+ overriding common
+ FILE(SECTION): warning: common is here
+
+ 3. Merging a common symbol with a previous same-sized common
+ symbol.
+ FILE(SECTION): warning: multiple common
+ of `SYMBOL'
+ FILE(SECTION): warning: previous common is here
+
+ 4. Merging a common symbol with a previous larger common symbol.
+ FILE(SECTION): warning: common of `SYMBOL'
+ overridden by larger common
+ FILE(SECTION): warning: larger common is here
+
+ 5. Merging a common symbol with a previous smaller common
+ symbol. This is the same as the previous case, except that
+ the symbols are encountered in a different order.
+ FILE(SECTION): warning: common of `SYMBOL'
+ overriding smaller common
+ FILE(SECTION): warning: smaller common is here
+
+`--warn-constructors'
+ Warn if any global constructors are used. This is only useful for
+ a few object file formats. For formats like COFF or ELF, the
+ linker can not detect the use of global constructors.
+
+`--warn-multiple-gp'
+ Warn if multiple global pointer values are required in the output
+ file. This is only meaningful for certain processors, such as the
+ Alpha. Specifically, some processors put large-valued constants
+ in a special section. A special register (the global pointer)
+ points into the middle of this section, so that constants can be
+ loaded efficiently via a base-register relative addressing mode.
+ Since the offset in base-register relative mode is fixed and
+ relatively small (e.g., 16 bits), this limits the maximum size of
+ the constant pool. Thus, in large programs, it is often necessary
+ to use multiple global pointer values in order to be able to
+ address all possible constants. This option causes a warning to
+ be issued whenever this case occurs.
+
+`--warn-once'
+ Only warn once for each undefined symbol, rather than once per
+ module which refers to it.
+
+`--warn-section-align'
+ Warn if the address of an output section is changed because of
+ alignment. Typically, the alignment will be set by an input
+ section. The address will only be changed if it not explicitly
+ specified; that is, if the `SECTIONS' command does not specify a
+ start address for the section (*note SECTIONS::).
+
+`--warn-shared-textrel'
+ Warn if the linker adds a DT_TEXTREL to a shared object.
+
+`--warn-alternate-em'
+ Warn if an object has alternate ELF machine code.
+
+`--warn-unresolved-symbols'
+ If the linker is going to report an unresolved symbol (see the
+ option `--unresolved-symbols') it will normally generate an error.
+ This option makes it generate a warning instead.
+
+`--error-unresolved-symbols'
+ This restores the linker's default behaviour of generating errors
+ when it is reporting unresolved symbols.
+
+`--whole-archive'
+ For each archive mentioned on the command line after the
+ `--whole-archive' option, include every object file in the archive
+ in the link, rather than searching the archive for the required
+ object files. This is normally used to turn an archive file into
+ a shared library, forcing every object to be included in the
+ resulting shared library. This option may be used more than once.
+
+ Two notes when using this option from gcc: First, gcc doesn't know
+ about this option, so you have to use `-Wl,-whole-archive'.
+ Second, don't forget to use `-Wl,-no-whole-archive' after your
+ list of archives, because gcc will add its own list of archives to
+ your link and you may not want this flag to affect those as well.
+
+`--wrap=SYMBOL'
+ Use a wrapper function for SYMBOL. Any undefined reference to
+ SYMBOL will be resolved to `__wrap_SYMBOL'. Any undefined
+ reference to `__real_SYMBOL' will be resolved to SYMBOL.
+
+ This can be used to provide a wrapper for a system function. The
+ wrapper function should be called `__wrap_SYMBOL'. If it wishes
+ to call the system function, it should call `__real_SYMBOL'.
+
+ Here is a trivial example:
+
+ void *
+ __wrap_malloc (size_t c)
+ {
+ printf ("malloc called with %zu\n", c);
+ return __real_malloc (c);
+ }
+
+ If you link other code with this file using `--wrap malloc', then
+ all calls to `malloc' will call the function `__wrap_malloc'
+ instead. The call to `__real_malloc' in `__wrap_malloc' will call
+ the real `malloc' function.
+
+ You may wish to provide a `__real_malloc' function as well, so that
+ links without the `--wrap' option will succeed. If you do this,
+ you should not put the definition of `__real_malloc' in the same
+ file as `__wrap_malloc'; if you do, the assembler may resolve the
+ call before the linker has a chance to wrap it to `malloc'.
+
+`--eh-frame-hdr'
+ Request creation of `.eh_frame_hdr' section and ELF
+ `PT_GNU_EH_FRAME' segment header.
+
+`--no-ld-generated-unwind-info'
+ Request creation of `.eh_frame' unwind info for linker generated
+ code sections like PLT. This option is on by default if linker
+ generated unwind info is supported.
+
+`--enable-new-dtags'
+`--disable-new-dtags'
+ This linker can create the new dynamic tags in ELF. But the older
+ ELF systems may not understand them. If you specify
+ `--enable-new-dtags', the dynamic tags will be created as needed.
+ If you specify `--disable-new-dtags', no new dynamic tags will be
+ created. By default, the new dynamic tags are not created. Note
+ that those options are only available for ELF systems.
+
+`--hash-size=NUMBER'
+ Set the default size of the linker's hash tables to a prime number
+ close to NUMBER. Increasing this value can reduce the length of
+ time it takes the linker to perform its tasks, at the expense of
+ increasing the linker's memory requirements. Similarly reducing
+ this value can reduce the memory requirements at the expense of
+ speed.
+
+`--hash-style=STYLE'
+ Set the type of linker's hash table(s). STYLE can be either
+ `sysv' for classic ELF `.hash' section, `gnu' for new style GNU
+ `.gnu.hash' section or `both' for both the classic ELF `.hash' and
+ new style GNU `.gnu.hash' hash tables. The default is `sysv'.
+
+`--reduce-memory-overheads'
+ This option reduces memory requirements at ld runtime, at the
+ expense of linking speed. This was introduced to select the old
+ O(n^2) algorithm for link map file generation, rather than the new
+ O(n) algorithm which uses about 40% more memory for symbol storage.
+
+ Another effect of the switch is to set the default hash table size
+ to 1021, which again saves memory at the cost of lengthening the
+ linker's run time. This is not done however if the `--hash-size'
+ switch has been used.
+
+ The `--reduce-memory-overheads' switch may be also be used to
+ enable other tradeoffs in future versions of the linker.
+
+`--build-id'
+`--build-id=STYLE'
+ Request creation of `.note.gnu.build-id' ELF note section. The
+ contents of the note are unique bits identifying this linked file.
+ STYLE can be `uuid' to use 128 random bits, `sha1' to use a
+ 160-bit SHA1 hash on the normative parts of the output contents,
+ `md5' to use a 128-bit MD5 hash on the normative parts of the
+ output contents, or `0xHEXSTRING' to use a chosen bit string
+ specified as an even number of hexadecimal digits (`-' and `:'
+ characters between digit pairs are ignored). If STYLE is omitted,
+ `sha1' is used.
+
+ The `md5' and `sha1' styles produces an identifier that is always
+ the same in an identical output file, but will be unique among all
+ nonidentical output files. It is not intended to be compared as a
+ checksum for the file's contents. A linked file may be changed
+ later by other tools, but the build ID bit string identifying the
+ original linked file does not change.
+
+ Passing `none' for STYLE disables the setting from any
+ `--build-id' options earlier on the command line.
+
+2.1.1 Options Specific to i386 PE Targets
+-----------------------------------------
+
+The i386 PE linker supports the `-shared' option, which causes the
+output to be a dynamically linked library (DLL) instead of a normal
+executable. You should name the output `*.dll' when you use this
+option. In addition, the linker fully supports the standard `*.def'
+files, which may be specified on the linker command line like an object
+file (in fact, it should precede archives it exports symbols from, to
+ensure that they get linked in, just like a normal object file).
+
+ In addition to the options common to all targets, the i386 PE linker
+support additional command line options that are specific to the i386
+PE target. Options that take values may be separated from their values
+by either a space or an equals sign.
+
+`--add-stdcall-alias'
+ If given, symbols with a stdcall suffix (@NN) will be exported
+ as-is and also with the suffix stripped. [This option is specific
+ to the i386 PE targeted port of the linker]
+
+`--base-file FILE'
+ Use FILE as the name of a file in which to save the base addresses
+ of all the relocations needed for generating DLLs with `dlltool'.
+ [This is an i386 PE specific option]
+
+`--dll'
+ Create a DLL instead of a regular executable. You may also use
+ `-shared' or specify a `LIBRARY' in a given `.def' file. [This
+ option is specific to the i386 PE targeted port of the linker]
+
+`--enable-long-section-names'
+`--disable-long-section-names'
+ The PE variants of the Coff object format add an extension that
+ permits the use of section names longer than eight characters, the
+ normal limit for Coff. By default, these names are only allowed
+ in object files, as fully-linked executable images do not carry
+ the Coff string table required to support the longer names. As a
+ GNU extension, it is possible to allow their use in executable
+ images as well, or to (probably pointlessly!) disallow it in
+ object files, by using these two options. Executable images
+ generated with these long section names are slightly non-standard,
+ carrying as they do a string table, and may generate confusing
+ output when examined with non-GNU PE-aware tools, such as file
+ viewers and dumpers. However, GDB relies on the use of PE long
+ section names to find Dwarf-2 debug information sections in an
+ executable image at runtime, and so if neither option is specified
+ on the command-line, `ld' will enable long section names,
+ overriding the default and technically correct behaviour, when it
+ finds the presence of debug information while linking an executable
+ image and not stripping symbols. [This option is valid for all PE
+ targeted ports of the linker]
+
+`--enable-stdcall-fixup'
+`--disable-stdcall-fixup'
+ If the link finds a symbol that it cannot resolve, it will attempt
+ to do "fuzzy linking" by looking for another defined symbol that
+ differs only in the format of the symbol name (cdecl vs stdcall)
+ and will resolve that symbol by linking to the match. For
+ example, the undefined symbol `_foo' might be linked to the
+ function `_foo@12', or the undefined symbol `_bar@16' might be
+ linked to the function `_bar'. When the linker does this, it
+ prints a warning, since it normally should have failed to link,
+ but sometimes import libraries generated from third-party dlls may
+ need this feature to be usable. If you specify
+ `--enable-stdcall-fixup', this feature is fully enabled and
+ warnings are not printed. If you specify
+ `--disable-stdcall-fixup', this feature is disabled and such
+ mismatches are considered to be errors. [This option is specific
+ to the i386 PE targeted port of the linker]
+
+`--leading-underscore'
+`--no-leading-underscore'
+ For most targets default symbol-prefix is an underscore and is
+ defined in target's description. By this option it is possible to
+ disable/enable the default underscore symbol-prefix.
+
+`--export-all-symbols'
+ If given, all global symbols in the objects used to build a DLL
+ will be exported by the DLL. Note that this is the default if
+ there otherwise wouldn't be any exported symbols. When symbols are
+ explicitly exported via DEF files or implicitly exported via
+ function attributes, the default is to not export anything else
+ unless this option is given. Note that the symbols `DllMain@12',
+ `DllEntryPoint@0', `DllMainCRTStartup@12', and `impure_ptr' will
+ not be automatically exported. Also, symbols imported from other
+ DLLs will not be re-exported, nor will symbols specifying the
+ DLL's internal layout such as those beginning with `_head_' or
+ ending with `_iname'. In addition, no symbols from `libgcc',
+ `libstd++', `libmingw32', or `crtX.o' will be exported. Symbols
+ whose names begin with `__rtti_' or `__builtin_' will not be
+ exported, to help with C++ DLLs. Finally, there is an extensive
+ list of cygwin-private symbols that are not exported (obviously,
+ this applies on when building DLLs for cygwin targets). These
+ cygwin-excludes are: `_cygwin_dll_entry@12',
+ `_cygwin_crt0_common@8', `_cygwin_noncygwin_dll_entry@12',
+ `_fmode', `_impure_ptr', `cygwin_attach_dll', `cygwin_premain0',
+ `cygwin_premain1', `cygwin_premain2', `cygwin_premain3', and
+ `environ'. [This option is specific to the i386 PE targeted port
+ of the linker]
+
+`--exclude-symbols SYMBOL,SYMBOL,...'
+ Specifies a list of symbols which should not be automatically
+ exported. The symbol names may be delimited by commas or colons.
+ [This option is specific to the i386 PE targeted port of the
+ linker]
+
+`--exclude-all-symbols'
+ Specifies no symbols should be automatically exported. [This
+ option is specific to the i386 PE targeted port of the linker]
+
+`--file-alignment'
+ Specify the file alignment. Sections in the file will always
+ begin at file offsets which are multiples of this number. This
+ defaults to 512. [This option is specific to the i386 PE targeted
+ port of the linker]
+
+`--heap RESERVE'
+`--heap RESERVE,COMMIT'
+ Specify the number of bytes of memory to reserve (and optionally
+ commit) to be used as heap for this program. The default is 1Mb
+ reserved, 4K committed. [This option is specific to the i386 PE
+ targeted port of the linker]
+
+`--image-base VALUE'
+ Use VALUE as the base address of your program or dll. This is the
+ lowest memory location that will be used when your program or dll
+ is loaded. To reduce the need to relocate and improve performance
+ of your dlls, each should have a unique base address and not
+ overlap any other dlls. The default is 0x400000 for executables,
+ and 0x10000000 for dlls. [This option is specific to the i386 PE
+ targeted port of the linker]
+
+`--kill-at'
+ If given, the stdcall suffixes (@NN) will be stripped from symbols
+ before they are exported. [This option is specific to the i386 PE
+ targeted port of the linker]
+
+`--large-address-aware'
+ If given, the appropriate bit in the "Characteristics" field of
+ the COFF header is set to indicate that this executable supports
+ virtual addresses greater than 2 gigabytes. This should be used
+ in conjunction with the /3GB or /USERVA=VALUE megabytes switch in
+ the "[operating systems]" section of the BOOT.INI. Otherwise,
+ this bit has no effect. [This option is specific to PE targeted
+ ports of the linker]
+
+`--major-image-version VALUE'
+ Sets the major number of the "image version". Defaults to 1.
+ [This option is specific to the i386 PE targeted port of the
+ linker]
+
+`--major-os-version VALUE'
+ Sets the major number of the "os version". Defaults to 4. [This
+ option is specific to the i386 PE targeted port of the linker]
+
+`--major-subsystem-version VALUE'
+ Sets the major number of the "subsystem version". Defaults to 4.
+ [This option is specific to the i386 PE targeted port of the
+ linker]
+
+`--minor-image-version VALUE'
+ Sets the minor number of the "image version". Defaults to 0.
+ [This option is specific to the i386 PE targeted port of the
+ linker]
+
+`--minor-os-version VALUE'
+ Sets the minor number of the "os version". Defaults to 0. [This
+ option is specific to the i386 PE targeted port of the linker]
+
+`--minor-subsystem-version VALUE'
+ Sets the minor number of the "subsystem version". Defaults to 0.
+ [This option is specific to the i386 PE targeted port of the
+ linker]
+
+`--output-def FILE'
+ The linker will create the file FILE which will contain a DEF file
+ corresponding to the DLL the linker is generating. This DEF file
+ (which should be called `*.def') may be used to create an import
+ library with `dlltool' or may be used as a reference to
+ automatically or implicitly exported symbols. [This option is
+ specific to the i386 PE targeted port of the linker]
+
+`--out-implib FILE'
+ The linker will create the file FILE which will contain an import
+ lib corresponding to the DLL the linker is generating. This import
+ lib (which should be called `*.dll.a' or `*.a' may be used to link
+ clients against the generated DLL; this behaviour makes it
+ possible to skip a separate `dlltool' import library creation step.
+ [This option is specific to the i386 PE targeted port of the
+ linker]
+
+`--enable-auto-image-base'
+ Automatically choose the image base for DLLs, unless one is
+ specified using the `--image-base' argument. By using a hash
+ generated from the dllname to create unique image bases for each
+ DLL, in-memory collisions and relocations which can delay program
+ execution are avoided. [This option is specific to the i386 PE
+ targeted port of the linker]
+
+`--disable-auto-image-base'
+ Do not automatically generate a unique image base. If there is no
+ user-specified image base (`--image-base') then use the platform
+ default. [This option is specific to the i386 PE targeted port of
+ the linker]
+
+`--dll-search-prefix STRING'
+ When linking dynamically to a dll without an import library,
+ search for `<string><basename>.dll' in preference to
+ `lib<basename>.dll'. This behaviour allows easy distinction
+ between DLLs built for the various "subplatforms": native, cygwin,
+ uwin, pw, etc. For instance, cygwin DLLs typically use
+ `--dll-search-prefix=cyg'. [This option is specific to the i386
+ PE targeted port of the linker]
+
+`--enable-auto-import'
+ Do sophisticated linking of `_symbol' to `__imp__symbol' for DATA
+ imports from DLLs, and create the necessary thunking symbols when
+ building the import libraries with those DATA exports. Note: Use
+ of the 'auto-import' extension will cause the text section of the
+ image file to be made writable. This does not conform to the
+ PE-COFF format specification published by Microsoft.
+
+ Note - use of the 'auto-import' extension will also cause read only
+ data which would normally be placed into the .rdata section to be
+ placed into the .data section instead. This is in order to work
+ around a problem with consts that is described here:
+ http://www.cygwin.com/ml/cygwin/2004-09/msg01101.html
+
+ Using 'auto-import' generally will 'just work' - but sometimes you
+ may see this message:
+
+ "variable '<var>' can't be auto-imported. Please read the
+ documentation for ld's `--enable-auto-import' for details."
+
+ This message occurs when some (sub)expression accesses an address
+ ultimately given by the sum of two constants (Win32 import tables
+ only allow one). Instances where this may occur include accesses
+ to member fields of struct variables imported from a DLL, as well
+ as using a constant index into an array variable imported from a
+ DLL. Any multiword variable (arrays, structs, long long, etc) may
+ trigger this error condition. However, regardless of the exact
+ data type of the offending exported variable, ld will always
+ detect it, issue the warning, and exit.
+
+ There are several ways to address this difficulty, regardless of
+ the data type of the exported variable:
+
+ One way is to use -enable-runtime-pseudo-reloc switch. This leaves
+ the task of adjusting references in your client code for runtime
+ environment, so this method works only when runtime environment
+ supports this feature.
+
+ A second solution is to force one of the 'constants' to be a
+ variable - that is, unknown and un-optimizable at compile time.
+ For arrays, there are two possibilities: a) make the indexee (the
+ array's address) a variable, or b) make the 'constant' index a
+ variable. Thus:
+
+ extern type extern_array[];
+ extern_array[1] -->
+ { volatile type *t=extern_array; t[1] }
+
+ or
+
+ extern type extern_array[];
+ extern_array[1] -->
+ { volatile int t=1; extern_array[t] }
+
+ For structs (and most other multiword data types) the only option
+ is to make the struct itself (or the long long, or the ...)
+ variable:
+
+ extern struct s extern_struct;
+ extern_struct.field -->
+ { volatile struct s *t=&extern_struct; t->field }
+
+ or
+
+ extern long long extern_ll;
+ extern_ll -->
+ { volatile long long * local_ll=&extern_ll; *local_ll }
+
+ A third method of dealing with this difficulty is to abandon
+ 'auto-import' for the offending symbol and mark it with
+ `__declspec(dllimport)'. However, in practise that requires using
+ compile-time #defines to indicate whether you are building a DLL,
+ building client code that will link to the DLL, or merely
+ building/linking to a static library. In making the choice
+ between the various methods of resolving the 'direct address with
+ constant offset' problem, you should consider typical real-world
+ usage:
+
+ Original:
+ --foo.h
+ extern int arr[];
+ --foo.c
+ #include "foo.h"
+ void main(int argc, char **argv){
+ printf("%d\n",arr[1]);
+ }
+
+ Solution 1:
+ --foo.h
+ extern int arr[];
+ --foo.c
+ #include "foo.h"
+ void main(int argc, char **argv){
+ /* This workaround is for win32 and cygwin; do not "optimize" */
+ volatile int *parr = arr;
+ printf("%d\n",parr[1]);
+ }
+
+ Solution 2:
+ --foo.h
+ /* Note: auto-export is assumed (no __declspec(dllexport)) */
+ #if (defined(_WIN32) || defined(__CYGWIN__)) && \
+ !(defined(FOO_BUILD_DLL) || defined(FOO_STATIC))
+ #define FOO_IMPORT __declspec(dllimport)
+ #else
+ #define FOO_IMPORT
+ #endif
+ extern FOO_IMPORT int arr[];
+ --foo.c
+ #include "foo.h"
+ void main(int argc, char **argv){
+ printf("%d\n",arr[1]);
+ }
+
+ A fourth way to avoid this problem is to re-code your library to
+ use a functional interface rather than a data interface for the
+ offending variables (e.g. set_foo() and get_foo() accessor
+ functions). [This option is specific to the i386 PE targeted port
+ of the linker]
+
+`--disable-auto-import'
+ Do not attempt to do sophisticated linking of `_symbol' to
+ `__imp__symbol' for DATA imports from DLLs. [This option is
+ specific to the i386 PE targeted port of the linker]
+
+`--enable-runtime-pseudo-reloc'
+ If your code contains expressions described in -enable-auto-import
+ section, that is, DATA imports from DLL with non-zero offset, this
+ switch will create a vector of 'runtime pseudo relocations' which
+ can be used by runtime environment to adjust references to such
+ data in your client code. [This option is specific to the i386 PE
+ targeted port of the linker]
+
+`--disable-runtime-pseudo-reloc'
+ Do not create pseudo relocations for non-zero offset DATA imports
+ from DLLs. This is the default. [This option is specific to the
+ i386 PE targeted port of the linker]
+
+`--enable-extra-pe-debug'
+ Show additional debug info related to auto-import symbol thunking.
+ [This option is specific to the i386 PE targeted port of the
+ linker]
+
+`--section-alignment'
+ Sets the section alignment. Sections in memory will always begin
+ at addresses which are a multiple of this number. Defaults to
+ 0x1000. [This option is specific to the i386 PE targeted port of
+ the linker]
+
+`--stack RESERVE'
+`--stack RESERVE,COMMIT'
+ Specify the number of bytes of memory to reserve (and optionally
+ commit) to be used as stack for this program. The default is 2Mb
+ reserved, 4K committed. [This option is specific to the i386 PE
+ targeted port of the linker]
+
+`--subsystem WHICH'
+`--subsystem WHICH:MAJOR'
+`--subsystem WHICH:MAJOR.MINOR'
+ Specifies the subsystem under which your program will execute. The
+ legal values for WHICH are `native', `windows', `console',
+ `posix', and `xbox'. You may optionally set the subsystem version
+ also. Numeric values are also accepted for WHICH. [This option
+ is specific to the i386 PE targeted port of the linker]
+
+ The following options set flags in the `DllCharacteristics' field
+ of the PE file header: [These options are specific to PE targeted
+ ports of the linker]
+
+`--dynamicbase'
+ The image base address may be relocated using address space layout
+ randomization (ASLR). This feature was introduced with MS Windows
+ Vista for i386 PE targets.
+
+`--forceinteg'
+ Code integrity checks are enforced.
+
+`--nxcompat'
+ The image is compatible with the Data Execution Prevention. This
+ feature was introduced with MS Windows XP SP2 for i386 PE targets.
+
+`--no-isolation'
+ Although the image understands isolation, do not isolate the image.
+
+`--no-seh'
+ The image does not use SEH. No SE handler may be called from this
+ image.
+
+`--no-bind'
+ Do not bind this image.
+
+`--wdmdriver'
+ The driver uses the MS Windows Driver Model.
+
+`--tsaware'
+ The image is Terminal Server aware.
+
+
+2.1.2 Options specific to C6X uClinux targets
+---------------------------------------------
+
+The C6X uClinux target uses a binary format called DSBT to support
+shared libraries. Each shared library in the system needs to have a
+unique index; all executables use an index of 0.
+
+`--dsbt-size SIZE'
+ This option sets the number of entires in the DSBT of the current
+ executable or shared library to SIZE. The default is to create a
+ table with 64 entries.
+
+`--dsbt-index INDEX'
+ This option sets the DSBT index of the current executable or
+ shared library to INDEX. The default is 0, which is appropriate
+ for generating executables. If a shared library is generated with
+ a DSBT index of 0, the `R_C6000_DSBT_INDEX' relocs are copied into
+ the output file.
+
+ The `--no-merge-exidx-entries' switch disables the merging of
+ adjacent exidx entries in frame unwind info.
+
+
+2.1.3 Options specific to Motorola 68HC11 and 68HC12 targets
+------------------------------------------------------------
+
+The 68HC11 and 68HC12 linkers support specific options to control the
+memory bank switching mapping and trampoline code generation.
+
+`--no-trampoline'
+ This option disables the generation of trampoline. By default a
+ trampoline is generated for each far function which is called
+ using a `jsr' instruction (this happens when a pointer to a far
+ function is taken).
+
+`--bank-window NAME'
+ This option indicates to the linker the name of the memory region
+ in the `MEMORY' specification that describes the memory bank
+ window. The definition of such region is then used by the linker
+ to compute paging and addresses within the memory window.
+
+
+2.1.4 Options specific to Motorola 68K target
+---------------------------------------------
+
+The following options are supported to control handling of GOT
+generation when linking for 68K targets.
+
+`--got=TYPE'
+ This option tells the linker which GOT generation scheme to use.
+ TYPE should be one of `single', `negative', `multigot' or
+ `target'. For more information refer to the Info entry for `ld'.
+
+
+
+File: ld.info, Node: Environment, Prev: Options, Up: Invocation
+
+2.2 Environment Variables
+=========================
+
+You can change the behaviour of `ld' with the environment variables
+`GNUTARGET', `LDEMULATION' and `COLLECT_NO_DEMANGLE'.
+
+ `GNUTARGET' determines the input-file object format if you don't use
+`-b' (or its synonym `--format'). Its value should be one of the BFD
+names for an input format (*note BFD::). If there is no `GNUTARGET' in
+the environment, `ld' uses the natural format of the target. If
+`GNUTARGET' is set to `default' then BFD attempts to discover the input
+format by examining binary input files; this method often succeeds, but
+there are potential ambiguities, since there is no method of ensuring
+that the magic number used to specify object-file formats is unique.
+However, the configuration procedure for BFD on each system places the
+conventional format for that system first in the search-list, so
+ambiguities are resolved in favor of convention.
+
+ `LDEMULATION' determines the default emulation if you don't use the
+`-m' option. The emulation can affect various aspects of linker
+behaviour, particularly the default linker script. You can list the
+available emulations with the `--verbose' or `-V' options. If the `-m'
+option is not used, and the `LDEMULATION' environment variable is not
+defined, the default emulation depends upon how the linker was
+configured.
+
+ Normally, the linker will default to demangling symbols. However, if
+`COLLECT_NO_DEMANGLE' is set in the environment, then it will default
+to not demangling symbols. This environment variable is used in a
+similar fashion by the `gcc' linker wrapper program. The default may
+be overridden by the `--demangle' and `--no-demangle' options.
+
+
+File: ld.info, Node: Scripts, Next: Machine Dependent, Prev: Invocation, Up: Top
+
+3 Linker Scripts
+****************
+
+Every link is controlled by a "linker script". This script is written
+in the linker command language.
+
+ The main purpose of the linker script is to describe how the
+sections in the input files should be mapped into the output file, and
+to control the memory layout of the output file. Most linker scripts
+do nothing more than this. However, when necessary, the linker script
+can also direct the linker to perform many other operations, using the
+commands described below.
+
+ The linker always uses a linker script. If you do not supply one
+yourself, the linker will use a default script that is compiled into the
+linker executable. You can use the `--verbose' command line option to
+display the default linker script. Certain command line options, such
+as `-r' or `-N', will affect the default linker script.
+
+ You may supply your own linker script by using the `-T' command line
+option. When you do this, your linker script will replace the default
+linker script.
+
+ You may also use linker scripts implicitly by naming them as input
+files to the linker, as though they were files to be linked. *Note
+Implicit Linker Scripts::.
+
+* Menu:
+
+* Basic Script Concepts:: Basic Linker Script Concepts
+* Script Format:: Linker Script Format
+* Simple Example:: Simple Linker Script Example
+* Simple Commands:: Simple Linker Script Commands
+* Assignments:: Assigning Values to Symbols
+* SECTIONS:: SECTIONS Command
+* MEMORY:: MEMORY Command
+* PHDRS:: PHDRS Command
+* VERSION:: VERSION Command
+* Expressions:: Expressions in Linker Scripts
+* Implicit Linker Scripts:: Implicit Linker Scripts
+
+
+File: ld.info, Node: Basic Script Concepts, Next: Script Format, Up: Scripts
+
+3.1 Basic Linker Script Concepts
+================================
+
+We need to define some basic concepts and vocabulary in order to
+describe the linker script language.
+
+ The linker combines input files into a single output file. The
+output file and each input file are in a special data format known as an
+"object file format". Each file is called an "object file". The
+output file is often called an "executable", but for our purposes we
+will also call it an object file. Each object file has, among other
+things, a list of "sections". We sometimes refer to a section in an
+input file as an "input section"; similarly, a section in the output
+file is an "output section".
+
+ Each section in an object file has a name and a size. Most sections
+also have an associated block of data, known as the "section contents".
+A section may be marked as "loadable", which mean that the contents
+should be loaded into memory when the output file is run. A section
+with no contents may be "allocatable", which means that an area in
+memory should be set aside, but nothing in particular should be loaded
+there (in some cases this memory must be zeroed out). A section which
+is neither loadable nor allocatable typically contains some sort of
+debugging information.
+
+ Every loadable or allocatable output section has two addresses. The
+first is the "VMA", or virtual memory address. This is the address the
+section will have when the output file is run. The second is the
+"LMA", or load memory address. This is the address at which the
+section will be loaded. In most cases the two addresses will be the
+same. An example of when they might be different is when a data section
+is loaded into ROM, and then copied into RAM when the program starts up
+(this technique is often used to initialize global variables in a ROM
+based system). In this case the ROM address would be the LMA, and the
+RAM address would be the VMA.
+
+ You can see the sections in an object file by using the `objdump'
+program with the `-h' option.
+
+ Every object file also has a list of "symbols", known as the "symbol
+table". A symbol may be defined or undefined. Each symbol has a name,
+and each defined symbol has an address, among other information. If
+you compile a C or C++ program into an object file, you will get a
+defined symbol for every defined function and global or static
+variable. Every undefined function or global variable which is
+referenced in the input file will become an undefined symbol.
+
+ You can see the symbols in an object file by using the `nm' program,
+or by using the `objdump' program with the `-t' option.
+
+
+File: ld.info, Node: Script Format, Next: Simple Example, Prev: Basic Script Concepts, Up: Scripts
+
+3.2 Linker Script Format
+========================
+
+Linker scripts are text files.
+
+ You write a linker script as a series of commands. Each command is
+either a keyword, possibly followed by arguments, or an assignment to a
+symbol. You may separate commands using semicolons. Whitespace is
+generally ignored.
+
+ Strings such as file or format names can normally be entered
+directly. If the file name contains a character such as a comma which
+would otherwise serve to separate file names, you may put the file name
+in double quotes. There is no way to use a double quote character in a
+file name.
+
+ You may include comments in linker scripts just as in C, delimited by
+`/*' and `*/'. As in C, comments are syntactically equivalent to
+whitespace.
+
+
+File: ld.info, Node: Simple Example, Next: Simple Commands, Prev: Script Format, Up: Scripts
+
+3.3 Simple Linker Script Example
+================================
+
+Many linker scripts are fairly simple.
+
+ The simplest possible linker script has just one command:
+`SECTIONS'. You use the `SECTIONS' command to describe the memory
+layout of the output file.
+
+ The `SECTIONS' command is a powerful command. Here we will describe
+a simple use of it. Let's assume your program consists only of code,
+initialized data, and uninitialized data. These will be in the
+`.text', `.data', and `.bss' sections, respectively. Let's assume
+further that these are the only sections which appear in your input
+files.
+
+ For this example, let's say that the code should be loaded at address
+0x10000, and that the data should start at address 0x8000000. Here is a
+linker script which will do that:
+ SECTIONS
+ {
+ . = 0x10000;
+ .text : { *(.text) }
+ . = 0x8000000;
+ .data : { *(.data) }
+ .bss : { *(.bss) }
+ }
+
+ You write the `SECTIONS' command as the keyword `SECTIONS', followed
+by a series of symbol assignments and output section descriptions
+enclosed in curly braces.
+
+ The first line inside the `SECTIONS' command of the above example
+sets the value of the special symbol `.', which is the location
+counter. If you do not specify the address of an output section in some
+other way (other ways are described later), the address is set from the
+current value of the location counter. The location counter is then
+incremented by the size of the output section. At the start of the
+`SECTIONS' command, the location counter has the value `0'.
+
+ The second line defines an output section, `.text'. The colon is
+required syntax which may be ignored for now. Within the curly braces
+after the output section name, you list the names of the input sections
+which should be placed into this output section. The `*' is a wildcard
+which matches any file name. The expression `*(.text)' means all
+`.text' input sections in all input files.
+
+ Since the location counter is `0x10000' when the output section
+`.text' is defined, the linker will set the address of the `.text'
+section in the output file to be `0x10000'.
+
+ The remaining lines define the `.data' and `.bss' sections in the
+output file. The linker will place the `.data' output section at
+address `0x8000000'. After the linker places the `.data' output
+section, the value of the location counter will be `0x8000000' plus the
+size of the `.data' output section. The effect is that the linker will
+place the `.bss' output section immediately after the `.data' output
+section in memory.
+
+ The linker will ensure that each output section has the required
+alignment, by increasing the location counter if necessary. In this
+example, the specified addresses for the `.text' and `.data' sections
+will probably satisfy any alignment constraints, but the linker may
+have to create a small gap between the `.data' and `.bss' sections.
+
+ That's it! That's a simple and complete linker script.
+
+
+File: ld.info, Node: Simple Commands, Next: Assignments, Prev: Simple Example, Up: Scripts
+
+3.4 Simple Linker Script Commands
+=================================
+
+In this section we describe the simple linker script commands.
+
+* Menu:
+
+* Entry Point:: Setting the entry point
+* File Commands:: Commands dealing with files
+
+* Format Commands:: Commands dealing with object file formats
+
+* REGION_ALIAS:: Assign alias names to memory regions
+* Miscellaneous Commands:: Other linker script commands
+
+
+File: ld.info, Node: Entry Point, Next: File Commands, Up: Simple Commands
+
+3.4.1 Setting the Entry Point
+-----------------------------
+
+The first instruction to execute in a program is called the "entry
+point". You can use the `ENTRY' linker script command to set the entry
+point. The argument is a symbol name:
+ ENTRY(SYMBOL)
+
+ There are several ways to set the entry point. The linker will set
+the entry point by trying each of the following methods in order, and
+stopping when one of them succeeds:
+ * the `-e' ENTRY command-line option;
+
+ * the `ENTRY(SYMBOL)' command in a linker script;
+
+ * the value of a target specific symbol, if it is defined; For many
+ targets this is `start', but PE and BeOS based systems for example
+ check a list of possible entry symbols, matching the first one
+ found.
+
+ * the address of the first byte of the `.text' section, if present;
+
+ * The address `0'.
+
+
+File: ld.info, Node: File Commands, Next: Format Commands, Prev: Entry Point, Up: Simple Commands
+
+3.4.2 Commands Dealing with Files
+---------------------------------
+
+Several linker script commands deal with files.
+
+`INCLUDE FILENAME'
+ Include the linker script FILENAME at this point. The file will
+ be searched for in the current directory, and in any directory
+ specified with the `-L' option. You can nest calls to `INCLUDE'
+ up to 10 levels deep.
+
+ You can place `INCLUDE' directives at the top level, in `MEMORY' or
+ `SECTIONS' commands, or in output section descriptions.
+
+`INPUT(FILE, FILE, ...)'
+`INPUT(FILE FILE ...)'
+ The `INPUT' command directs the linker to include the named files
+ in the link, as though they were named on the command line.
+
+ For example, if you always want to include `subr.o' any time you do
+ a link, but you can't be bothered to put it on every link command
+ line, then you can put `INPUT (subr.o)' in your linker script.
+
+ In fact, if you like, you can list all of your input files in the
+ linker script, and then invoke the linker with nothing but a `-T'
+ option.
+
+ In case a "sysroot prefix" is configured, and the filename starts
+ with the `/' character, and the script being processed was located
+ inside the "sysroot prefix", the filename will be looked for in
+ the "sysroot prefix". Otherwise, the linker will try to open the
+ file in the current directory. If it is not found, the linker
+ will search through the archive library search path. See the
+ description of `-L' in *Note Command Line Options: Options.
+
+ If you use `INPUT (-lFILE)', `ld' will transform the name to
+ `libFILE.a', as with the command line argument `-l'.
+
+ When you use the `INPUT' command in an implicit linker script, the
+ files will be included in the link at the point at which the linker
+ script file is included. This can affect archive searching.
+
+`GROUP(FILE, FILE, ...)'
+`GROUP(FILE FILE ...)'
+ The `GROUP' command is like `INPUT', except that the named files
+ should all be archives, and they are searched repeatedly until no
+ new undefined references are created. See the description of `-('
+ in *Note Command Line Options: Options.
+
+`AS_NEEDED(FILE, FILE, ...)'
+`AS_NEEDED(FILE FILE ...)'
+ This construct can appear only inside of the `INPUT' or `GROUP'
+ commands, among other filenames. The files listed will be handled
+ as if they appear directly in the `INPUT' or `GROUP' commands,
+ with the exception of ELF shared libraries, that will be added only
+ when they are actually needed. This construct essentially enables
+ `--as-needed' option for all the files listed inside of it and
+ restores previous `--as-needed' resp. `--no-as-needed' setting
+ afterwards.
+
+`OUTPUT(FILENAME)'
+ The `OUTPUT' command names the output file. Using
+ `OUTPUT(FILENAME)' in the linker script is exactly like using `-o
+ FILENAME' on the command line (*note Command Line Options:
+ Options.). If both are used, the command line option takes
+ precedence.
+
+ You can use the `OUTPUT' command to define a default name for the
+ output file other than the usual default of `a.out'.
+
+`SEARCH_DIR(PATH)'
+ The `SEARCH_DIR' command adds PATH to the list of paths where `ld'
+ looks for archive libraries. Using `SEARCH_DIR(PATH)' is exactly
+ like using `-L PATH' on the command line (*note Command Line
+ Options: Options.). If both are used, then the linker will search
+ both paths. Paths specified using the command line option are
+ searched first.
+
+`STARTUP(FILENAME)'
+ The `STARTUP' command is just like the `INPUT' command, except
+ that FILENAME will become the first input file to be linked, as
+ though it were specified first on the command line. This may be
+ useful when using a system in which the entry point is always the
+ start of the first file.
+
+
+File: ld.info, Node: Format Commands, Next: REGION_ALIAS, Prev: File Commands, Up: Simple Commands
+
+3.4.3 Commands Dealing with Object File Formats
+-----------------------------------------------
+
+A couple of linker script commands deal with object file formats.
+
+`OUTPUT_FORMAT(BFDNAME)'
+`OUTPUT_FORMAT(DEFAULT, BIG, LITTLE)'
+ The `OUTPUT_FORMAT' command names the BFD format to use for the
+ output file (*note BFD::). Using `OUTPUT_FORMAT(BFDNAME)' is
+ exactly like using `--oformat BFDNAME' on the command line (*note
+ Command Line Options: Options.). If both are used, the command
+ line option takes precedence.
+
+ You can use `OUTPUT_FORMAT' with three arguments to use different
+ formats based on the `-EB' and `-EL' command line options. This
+ permits the linker script to set the output format based on the
+ desired endianness.
+
+ If neither `-EB' nor `-EL' are used, then the output format will
+ be the first argument, DEFAULT. If `-EB' is used, the output
+ format will be the second argument, BIG. If `-EL' is used, the
+ output format will be the third argument, LITTLE.
+
+ For example, the default linker script for the MIPS ELF target
+ uses this command:
+ OUTPUT_FORMAT(elf32-bigmips, elf32-bigmips, elf32-littlemips)
+ This says that the default format for the output file is
+ `elf32-bigmips', but if the user uses the `-EL' command line
+ option, the output file will be created in the `elf32-littlemips'
+ format.
+
+`TARGET(BFDNAME)'
+ The `TARGET' command names the BFD format to use when reading input
+ files. It affects subsequent `INPUT' and `GROUP' commands. This
+ command is like using `-b BFDNAME' on the command line (*note
+ Command Line Options: Options.). If the `TARGET' command is used
+ but `OUTPUT_FORMAT' is not, then the last `TARGET' command is also
+ used to set the format for the output file. *Note BFD::.
+
+
+File: ld.info, Node: REGION_ALIAS, Next: Miscellaneous Commands, Prev: Format Commands, Up: Simple Commands
+
+3.4.4 Assign alias names to memory regions
+------------------------------------------
+
+Alias names can be added to existing memory regions created with the
+*Note MEMORY:: command. Each name corresponds to at most one memory
+region.
+
+ REGION_ALIAS(ALIAS, REGION)
+
+ The `REGION_ALIAS' function creates an alias name ALIAS for the
+memory region REGION. This allows a flexible mapping of output sections
+to memory regions. An example follows.
+
+ Suppose we have an application for embedded systems which come with
+various memory storage devices. All have a general purpose, volatile
+memory `RAM' that allows code execution or data storage. Some may have
+a read-only, non-volatile memory `ROM' that allows code execution and
+read-only data access. The last variant is a read-only, non-volatile
+memory `ROM2' with read-only data access and no code execution
+capability. We have four output sections:
+
+ * `.text' program code;
+
+ * `.rodata' read-only data;
+
+ * `.data' read-write initialized data;
+
+ * `.bss' read-write zero initialized data.
+
+ The goal is to provide a linker command file that contains a system
+independent part defining the output sections and a system dependent
+part mapping the output sections to the memory regions available on the
+system. Our embedded systems come with three different memory setups
+`A', `B' and `C':
+Section Variant A Variant B Variant C
+.text RAM ROM ROM
+.rodata RAM ROM ROM2
+.data RAM RAM/ROM RAM/ROM2
+.bss RAM RAM RAM
+ The notation `RAM/ROM' or `RAM/ROM2' means that this section is
+loaded into region `ROM' or `ROM2' respectively. Please note that the
+load address of the `.data' section starts in all three variants at the
+end of the `.rodata' section.
+
+ The base linker script that deals with the output sections follows.
+It includes the system dependent `linkcmds.memory' file that describes
+the memory layout:
+ INCLUDE linkcmds.memory
+
+ SECTIONS
+ {
+ .text :
+ {
+ *(.text)
+ } > REGION_TEXT
+ .rodata :
+ {
+ *(.rodata)
+ rodata_end = .;
+ } > REGION_RODATA
+ .data : AT (rodata_end)
+ {
+ data_start = .;
+ *(.data)
+ } > REGION_DATA
+ data_size = SIZEOF(.data);
+ data_load_start = LOADADDR(.data);
+ .bss :
+ {
+ *(.bss)
+ } > REGION_BSS
+ }
+
+ Now we need three different `linkcmds.memory' files to define memory
+regions and alias names. The content of `linkcmds.memory' for the three
+variants `A', `B' and `C':
+`A'
+ Here everything goes into the `RAM'.
+ MEMORY
+ {
+ RAM : ORIGIN = 0, LENGTH = 4M
+ }
+
+ REGION_ALIAS("REGION_TEXT", RAM);
+ REGION_ALIAS("REGION_RODATA", RAM);
+ REGION_ALIAS("REGION_DATA", RAM);
+ REGION_ALIAS("REGION_BSS", RAM);
+
+`B'
+ Program code and read-only data go into the `ROM'. Read-write
+ data goes into the `RAM'. An image of the initialized data is
+ loaded into the `ROM' and will be copied during system start into
+ the `RAM'.
+ MEMORY
+ {
+ ROM : ORIGIN = 0, LENGTH = 3M
+ RAM : ORIGIN = 0x10000000, LENGTH = 1M
+ }
+
+ REGION_ALIAS("REGION_TEXT", ROM);
+ REGION_ALIAS("REGION_RODATA", ROM);
+ REGION_ALIAS("REGION_DATA", RAM);
+ REGION_ALIAS("REGION_BSS", RAM);
+
+`C'
+ Program code goes into the `ROM'. Read-only data goes into the
+ `ROM2'. Read-write data goes into the `RAM'. An image of the
+ initialized data is loaded into the `ROM2' and will be copied
+ during system start into the `RAM'.
+ MEMORY
+ {
+ ROM : ORIGIN = 0, LENGTH = 2M
+ ROM2 : ORIGIN = 0x10000000, LENGTH = 1M
+ RAM : ORIGIN = 0x20000000, LENGTH = 1M
+ }
+
+ REGION_ALIAS("REGION_TEXT", ROM);
+ REGION_ALIAS("REGION_RODATA", ROM2);
+ REGION_ALIAS("REGION_DATA", RAM);
+ REGION_ALIAS("REGION_BSS", RAM);
+
+ It is possible to write a common system initialization routine to
+copy the `.data' section from `ROM' or `ROM2' into the `RAM' if
+necessary:
+ #include <string.h>
+
+ extern char data_start [];
+ extern char data_size [];
+ extern char data_load_start [];
+
+ void copy_data(void)
+ {
+ if (data_start != data_load_start)
+ {
+ memcpy(data_start, data_load_start, (size_t) data_size);
+ }
+ }
+
+
+File: ld.info, Node: Miscellaneous Commands, Prev: REGION_ALIAS, Up: Simple Commands
+
+3.4.5 Other Linker Script Commands
+----------------------------------
+
+There are a few other linker scripts commands.
+
+`ASSERT(EXP, MESSAGE)'
+ Ensure that EXP is non-zero. If it is zero, then exit the linker
+ with an error code, and print MESSAGE.
+
+`EXTERN(SYMBOL SYMBOL ...)'
+ Force SYMBOL to be entered in the output file as an undefined
+ symbol. Doing this may, for example, trigger linking of additional
+ modules from standard libraries. You may list several SYMBOLs for
+ each `EXTERN', and you may use `EXTERN' multiple times. This
+ command has the same effect as the `-u' command-line option.
+
+`FORCE_COMMON_ALLOCATION'
+ This command has the same effect as the `-d' command-line option:
+ to make `ld' assign space to common symbols even if a relocatable
+ output file is specified (`-r').
+
+`INHIBIT_COMMON_ALLOCATION'
+ This command has the same effect as the `--no-define-common'
+ command-line option: to make `ld' omit the assignment of addresses
+ to common symbols even for a non-relocatable output file.
+
+`INSERT [ AFTER | BEFORE ] OUTPUT_SECTION'
+ This command is typically used in a script specified by `-T' to
+ augment the default `SECTIONS' with, for example, overlays. It
+ inserts all prior linker script statements after (or before)
+ OUTPUT_SECTION, and also causes `-T' to not override the default
+ linker script. The exact insertion point is as for orphan
+ sections. *Note Location Counter::. The insertion happens after
+ the linker has mapped input sections to output sections. Prior to
+ the insertion, since `-T' scripts are parsed before the default
+ linker script, statements in the `-T' script occur before the
+ default linker script statements in the internal linker
+ representation of the script. In particular, input section
+ assignments will be made to `-T' output sections before those in
+ the default script. Here is an example of how a `-T' script using
+ `INSERT' might look:
+
+ SECTIONS
+ {
+ OVERLAY :
+ {
+ .ov1 { ov1*(.text) }
+ .ov2 { ov2*(.text) }
+ }
+ }
+ INSERT AFTER .text;
+
+`NOCROSSREFS(SECTION SECTION ...)'
+ This command may be used to tell `ld' to issue an error about any
+ references among certain output sections.
+
+ In certain types of programs, particularly on embedded systems when
+ using overlays, when one section is loaded into memory, another
+ section will not be. Any direct references between the two
+ sections would be errors. For example, it would be an error if
+ code in one section called a function defined in the other section.
+
+ The `NOCROSSREFS' command takes a list of output section names. If
+ `ld' detects any cross references between the sections, it reports
+ an error and returns a non-zero exit status. Note that the
+ `NOCROSSREFS' command uses output section names, not input section
+ names.
+
+`OUTPUT_ARCH(BFDARCH)'
+ Specify a particular output machine architecture. The argument is
+ one of the names used by the BFD library (*note BFD::). You can
+ see the architecture of an object file by using the `objdump'
+ program with the `-f' option.
+
+`LD_FEATURE(STRING)'
+ This command may be used to modify `ld' behavior. If STRING is
+ `"SANE_EXPR"' then absolute symbols and numbers in a script are
+ simply treated as numbers everywhere. *Note Expression Section::.
+
+
+File: ld.info, Node: Assignments, Next: SECTIONS, Prev: Simple Commands, Up: Scripts
+
+3.5 Assigning Values to Symbols
+===============================
+
+You may assign a value to a symbol in a linker script. This will define
+the symbol and place it into the symbol table with a global scope.
+
+* Menu:
+
+* Simple Assignments:: Simple Assignments
+* PROVIDE:: PROVIDE
+* PROVIDE_HIDDEN:: PROVIDE_HIDDEN
+* Source Code Reference:: How to use a linker script defined symbol in source code
+
+
+File: ld.info, Node: Simple Assignments, Next: PROVIDE, Up: Assignments
+
+3.5.1 Simple Assignments
+------------------------
+
+You may assign to a symbol using any of the C assignment operators:
+
+`SYMBOL = EXPRESSION ;'
+`SYMBOL += EXPRESSION ;'
+`SYMBOL -= EXPRESSION ;'
+`SYMBOL *= EXPRESSION ;'
+`SYMBOL /= EXPRESSION ;'
+`SYMBOL <<= EXPRESSION ;'
+`SYMBOL >>= EXPRESSION ;'
+`SYMBOL &= EXPRESSION ;'
+`SYMBOL |= EXPRESSION ;'
+
+ The first case will define SYMBOL to the value of EXPRESSION. In
+the other cases, SYMBOL must already be defined, and the value will be
+adjusted accordingly.
+
+ The special symbol name `.' indicates the location counter. You may
+only use this within a `SECTIONS' command. *Note Location Counter::.
+
+ The semicolon after EXPRESSION is required.
+
+ Expressions are defined below; see *Note Expressions::.
+
+ You may write symbol assignments as commands in their own right, or
+as statements within a `SECTIONS' command, or as part of an output
+section description in a `SECTIONS' command.
+
+ The section of the symbol will be set from the section of the
+expression; for more information, see *Note Expression Section::.
+
+ Here is an example showing the three different places that symbol
+assignments may be used:
+
+ floating_point = 0;
+ SECTIONS
+ {
+ .text :
+ {
+ *(.text)
+ _etext = .;
+ }
+ _bdata = (. + 3) & ~ 3;
+ .data : { *(.data) }
+ }
+ In this example, the symbol `floating_point' will be defined as
+zero. The symbol `_etext' will be defined as the address following the
+last `.text' input section. The symbol `_bdata' will be defined as the
+address following the `.text' output section aligned upward to a 4 byte
+boundary.
+
+
+File: ld.info, Node: PROVIDE, Next: PROVIDE_HIDDEN, Prev: Simple Assignments, Up: Assignments
+
+3.5.2 PROVIDE
+-------------
+
+In some cases, it is desirable for a linker script to define a symbol
+only if it is referenced and is not defined by any object included in
+the link. For example, traditional linkers defined the symbol `etext'.
+However, ANSI C requires that the user be able to use `etext' as a
+function name without encountering an error. The `PROVIDE' keyword may
+be used to define a symbol, such as `etext', only if it is referenced
+but not defined. The syntax is `PROVIDE(SYMBOL = EXPRESSION)'.
+
+ Here is an example of using `PROVIDE' to define `etext':
+ SECTIONS
+ {
+ .text :
+ {
+ *(.text)
+ _etext = .;
+ PROVIDE(etext = .);
+ }
+ }
+
+ In this example, if the program defines `_etext' (with a leading
+underscore), the linker will give a multiple definition error. If, on
+the other hand, the program defines `etext' (with no leading
+underscore), the linker will silently use the definition in the program.
+If the program references `etext' but does not define it, the linker
+will use the definition in the linker script.
+
+
+File: ld.info, Node: PROVIDE_HIDDEN, Next: Source Code Reference, Prev: PROVIDE, Up: Assignments
+
+3.5.3 PROVIDE_HIDDEN
+--------------------
+
+Similar to `PROVIDE'. For ELF targeted ports, the symbol will be
+hidden and won't be exported.
+
+
+File: ld.info, Node: Source Code Reference, Prev: PROVIDE_HIDDEN, Up: Assignments
+
+3.5.4 Source Code Reference
+---------------------------
+
+Accessing a linker script defined variable from source code is not
+intuitive. In particular a linker script symbol is not equivalent to a
+variable declaration in a high level language, it is instead a symbol
+that does not have a value.
+
+ Before going further, it is important to note that compilers often
+transform names in the source code into different names when they are
+stored in the symbol table. For example, Fortran compilers commonly
+prepend or append an underscore, and C++ performs extensive `name
+mangling'. Therefore there might be a discrepancy between the name of
+a variable as it is used in source code and the name of the same
+variable as it is defined in a linker script. For example in C a
+linker script variable might be referred to as:
+
+ extern int foo;
+
+ But in the linker script it might be defined as:
+
+ _foo = 1000;
+
+ In the remaining examples however it is assumed that no name
+transformation has taken place.
+
+ When a symbol is declared in a high level language such as C, two
+things happen. The first is that the compiler reserves enough space in
+the program's memory to hold the _value_ of the symbol. The second is
+that the compiler creates an entry in the program's symbol table which
+holds the symbol's _address_. ie the symbol table contains the address
+of the block of memory holding the symbol's value. So for example the
+following C declaration, at file scope:
+
+ int foo = 1000;
+
+ creates a entry called `foo' in the symbol table. This entry holds
+the address of an `int' sized block of memory where the number 1000 is
+initially stored.
+
+ When a program references a symbol the compiler generates code that
+first accesses the symbol table to find the address of the symbol's
+memory block and then code to read the value from that memory block.
+So:
+
+ foo = 1;
+
+ looks up the symbol `foo' in the symbol table, gets the address
+associated with this symbol and then writes the value 1 into that
+address. Whereas:
+
+ int * a = & foo;
+
+ looks up the symbol `foo' in the symbol table, gets it address and
+then copies this address into the block of memory associated with the
+variable `a'.
+
+ Linker scripts symbol declarations, by contrast, create an entry in
+the symbol table but do not assign any memory to them. Thus they are
+an address without a value. So for example the linker script
+definition:
+
+ foo = 1000;
+
+ creates an entry in the symbol table called `foo' which holds the
+address of memory location 1000, but nothing special is stored at
+address 1000. This means that you cannot access the _value_ of a
+linker script defined symbol - it has no value - all you can do is
+access the _address_ of a linker script defined symbol.
+
+ Hence when you are using a linker script defined symbol in source
+code you should always take the address of the symbol, and never
+attempt to use its value. For example suppose you want to copy the
+contents of a section of memory called .ROM into a section called
+.FLASH and the linker script contains these declarations:
+
+ start_of_ROM = .ROM;
+ end_of_ROM = .ROM + sizeof (.ROM) - 1;
+ start_of_FLASH = .FLASH;
+
+ Then the C source code to perform the copy would be:
+
+ extern char start_of_ROM, end_of_ROM, start_of_FLASH;
+
+ memcpy (& start_of_FLASH, & start_of_ROM, & end_of_ROM - & start_of_ROM);
+
+ Note the use of the `&' operators. These are correct.
+
+
+File: ld.info, Node: SECTIONS, Next: MEMORY, Prev: Assignments, Up: Scripts
+
+3.6 SECTIONS Command
+====================
+
+The `SECTIONS' command tells the linker how to map input sections into
+output sections, and how to place the output sections in memory.
+
+ The format of the `SECTIONS' command is:
+ SECTIONS
+ {
+ SECTIONS-COMMAND
+ SECTIONS-COMMAND
+ ...
+ }
+
+ Each SECTIONS-COMMAND may of be one of the following:
+
+ * an `ENTRY' command (*note Entry command: Entry Point.)
+
+ * a symbol assignment (*note Assignments::)
+
+ * an output section description
+
+ * an overlay description
+
+ The `ENTRY' command and symbol assignments are permitted inside the
+`SECTIONS' command for convenience in using the location counter in
+those commands. This can also make the linker script easier to
+understand because you can use those commands at meaningful points in
+the layout of the output file.
+
+ Output section descriptions and overlay descriptions are described
+below.
+
+ If you do not use a `SECTIONS' command in your linker script, the
+linker will place each input section into an identically named output
+section in the order that the sections are first encountered in the
+input files. If all input sections are present in the first file, for
+example, the order of sections in the output file will match the order
+in the first input file. The first section will be at address zero.
+
+* Menu:
+
+* Output Section Description:: Output section description
+* Output Section Name:: Output section name
+* Output Section Address:: Output section address
+* Input Section:: Input section description
+* Output Section Data:: Output section data
+* Output Section Keywords:: Output section keywords
+* Output Section Discarding:: Output section discarding
+* Output Section Attributes:: Output section attributes
+* Overlay Description:: Overlay description
+
+
+File: ld.info, Node: Output Section Description, Next: Output Section Name, Up: SECTIONS
+
+3.6.1 Output Section Description
+--------------------------------
+
+The full description of an output section looks like this:
+ SECTION [ADDRESS] [(TYPE)] :
+ [AT(LMA)]
+ [ALIGN(SECTION_ALIGN)]
+ [SUBALIGN(SUBSECTION_ALIGN)]
+ [CONSTRAINT]
+ {
+ OUTPUT-SECTION-COMMAND
+ OUTPUT-SECTION-COMMAND
+ ...
+ } [>REGION] [AT>LMA_REGION] [:PHDR :PHDR ...] [=FILLEXP]
+
+ Most output sections do not use most of the optional section
+attributes.
+
+ The whitespace around SECTION is required, so that the section name
+is unambiguous. The colon and the curly braces are also required. The
+line breaks and other white space are optional.
+
+ Each OUTPUT-SECTION-COMMAND may be one of the following:
+
+ * a symbol assignment (*note Assignments::)
+
+ * an input section description (*note Input Section::)
+
+ * data values to include directly (*note Output Section Data::)
+
+ * a special output section keyword (*note Output Section Keywords::)
+
+
+File: ld.info, Node: Output Section Name, Next: Output Section Address, Prev: Output Section Description, Up: SECTIONS
+
+3.6.2 Output Section Name
+-------------------------
+
+The name of the output section is SECTION. SECTION must meet the
+constraints of your output format. In formats which only support a
+limited number of sections, such as `a.out', the name must be one of
+the names supported by the format (`a.out', for example, allows only
+`.text', `.data' or `.bss'). If the output format supports any number
+of sections, but with numbers and not names (as is the case for Oasys),
+the name should be supplied as a quoted numeric string. A section name
+may consist of any sequence of characters, but a name which contains
+any unusual characters such as commas must be quoted.
+
+ The output section name `/DISCARD/' is special; *Note Output Section
+Discarding::.
+
+
+File: ld.info, Node: Output Section Address, Next: Input Section, Prev: Output Section Name, Up: SECTIONS
+
+3.6.3 Output Section Address
+----------------------------
+
+The ADDRESS is an expression for the VMA (the virtual memory address)
+of the output section. This address is optional, but if it is provided
+then the output address will be set exactly as specified.
+
+ If the output address is not specified then one will be chosen for
+the section, based on the heuristic below. This address will be
+adjusted to fit the alignment requirement of the output section. The
+alignment requirement is the strictest alignment of any input section
+contained within the output section.
+
+ The output section address heuristic is as follows:
+
+ * If an output memory REGION is set for the section then it is added
+ to this region and its address will be the next free address in
+ that region.
+
+ * If the MEMORY command has been used to create a list of memory
+ regions then the first region which has attributes compatible with
+ the section is selected to contain it. The section's output
+ address will be the next free address in that region; *Note
+ MEMORY::.
+
+ * If no memory regions were specified, or none match the section then
+ the output address will be based on the current value of the
+ location counter.
+
+For example:
+
+ .text . : { *(.text) }
+
+and
+
+ .text : { *(.text) }
+
+are subtly different. The first will set the address of the `.text'
+output section to the current value of the location counter. The
+second will set it to the current value of the location counter aligned
+to the strictest alignment of any of the `.text' input sections.
+
+ The ADDRESS may be an arbitrary expression; *Note Expressions::.
+For example, if you want to align the section on a 0x10 byte boundary,
+so that the lowest four bits of the section address are zero, you could
+do something like this:
+ .text ALIGN(0x10) : { *(.text) }
+ This works because `ALIGN' returns the current location counter
+aligned upward to the specified value.
+
+ Specifying ADDRESS for a section will change the value of the
+location counter, provided that the section is non-empty. (Empty
+sections are ignored).
+
+
+File: ld.info, Node: Input Section, Next: Output Section Data, Prev: Output Section Address, Up: SECTIONS
+
+3.6.4 Input Section Description
+-------------------------------
+
+The most common output section command is an input section description.
+
+ The input section description is the most basic linker script
+operation. You use output sections to tell the linker how to lay out
+your program in memory. You use input section descriptions to tell the
+linker how to map the input files into your memory layout.
+
+* Menu:
+
+* Input Section Basics:: Input section basics
+* Input Section Wildcards:: Input section wildcard patterns
+* Input Section Common:: Input section for common symbols
+* Input Section Keep:: Input section and garbage collection
+* Input Section Example:: Input section example
+
+
+File: ld.info, Node: Input Section Basics, Next: Input Section Wildcards, Up: Input Section
+
+3.6.4.1 Input Section Basics
+............................
+
+An input section description consists of a file name optionally followed
+by a list of section names in parentheses.
+
+ The file name and the section name may be wildcard patterns, which we
+describe further below (*note Input Section Wildcards::).
+
+ The most common input section description is to include all input
+sections with a particular name in the output section. For example, to
+include all input `.text' sections, you would write:
+ *(.text)
+ Here the `*' is a wildcard which matches any file name. To exclude
+a list of files from matching the file name wildcard, EXCLUDE_FILE may
+be used to match all files except the ones specified in the
+EXCLUDE_FILE list. For example:
+ *(EXCLUDE_FILE (*crtend.o *otherfile.o) .ctors)
+ will cause all .ctors sections from all files except `crtend.o' and
+`otherfile.o' to be included.
+
+ There are two ways to include more than one section:
+ *(.text .rdata)
+ *(.text) *(.rdata)
+ The difference between these is the order in which the `.text' and
+`.rdata' input sections will appear in the output section. In the
+first example, they will be intermingled, appearing in the same order as
+they are found in the linker input. In the second example, all `.text'
+input sections will appear first, followed by all `.rdata' input
+sections.
+
+ You can specify a file name to include sections from a particular
+file. You would do this if one or more of your files contain special
+data that needs to be at a particular location in memory. For example:
+ data.o(.data)
+
+ To refine the sections that are included based on the section flags
+of an input section, INPUT_SECTION_FLAGS may be used.
+
+ Here is a simple example for using Section header flags for ELF
+sections:
+
+ SECTIONS {
+ .text : { INPUT_SECTION_FLAGS (SHF_MERGE & SHF_STRINGS) *(.text) }
+ .text2 : { INPUT_SECTION_FLAGS (!SHF_WRITE) *(.text) }
+ }
+
+ In this example, the output section `.text' will be comprised of any
+input section matching the name *(.text) whose section header flags
+`SHF_MERGE' and `SHF_STRINGS' are set. The output section `.text2'
+will be comprised of any input section matching the name *(.text) whose
+section header flag `SHF_WRITE' is clear.
+
+ You can also specify files within archives by writing a pattern
+matching the archive, a colon, then the pattern matching the file, with
+no whitespace around the colon.
+
+`archive:file'
+ matches file within archive
+
+`archive:'
+ matches the whole archive
+
+`:file'
+ matches file but not one in an archive
+
+ Either one or both of `archive' and `file' can contain shell
+wildcards. On DOS based file systems, the linker will assume that a
+single letter followed by a colon is a drive specifier, so `c:myfile.o'
+is a simple file specification, not `myfile.o' within an archive called
+`c'. `archive:file' filespecs may also be used within an
+`EXCLUDE_FILE' list, but may not appear in other linker script
+contexts. For instance, you cannot extract a file from an archive by
+using `archive:file' in an `INPUT' command.
+
+ If you use a file name without a list of sections, then all sections
+in the input file will be included in the output section. This is not
+commonly done, but it may by useful on occasion. For example:
+ data.o
+
+ When you use a file name which is not an `archive:file' specifier
+and does not contain any wild card characters, the linker will first
+see if you also specified the file name on the linker command line or
+in an `INPUT' command. If you did not, the linker will attempt to open
+the file as an input file, as though it appeared on the command line.
+Note that this differs from an `INPUT' command, because the linker will
+not search for the file in the archive search path.
+
+
+File: ld.info, Node: Input Section Wildcards, Next: Input Section Common, Prev: Input Section Basics, Up: Input Section
+
+3.6.4.2 Input Section Wildcard Patterns
+.......................................
+
+In an input section description, either the file name or the section
+name or both may be wildcard patterns.
+
+ The file name of `*' seen in many examples is a simple wildcard
+pattern for the file name.
+
+ The wildcard patterns are like those used by the Unix shell.
+
+`*'
+ matches any number of characters
+
+`?'
+ matches any single character
+
+`[CHARS]'
+ matches a single instance of any of the CHARS; the `-' character
+ may be used to specify a range of characters, as in `[a-z]' to
+ match any lower case letter
+
+`\'
+ quotes the following character
+
+ When a file name is matched with a wildcard, the wildcard characters
+will not match a `/' character (used to separate directory names on
+Unix). A pattern consisting of a single `*' character is an exception;
+it will always match any file name, whether it contains a `/' or not.
+In a section name, the wildcard characters will match a `/' character.
+
+ File name wildcard patterns only match files which are explicitly
+specified on the command line or in an `INPUT' command. The linker
+does not search directories to expand wildcards.
+
+ If a file name matches more than one wildcard pattern, or if a file
+name appears explicitly and is also matched by a wildcard pattern, the
+linker will use the first match in the linker script. For example, this
+sequence of input section descriptions is probably in error, because the
+`data.o' rule will not be used:
+ .data : { *(.data) }
+ .data1 : { data.o(.data) }
+
+ Normally, the linker will place files and sections matched by
+wildcards in the order in which they are seen during the link. You can
+change this by using the `SORT_BY_NAME' keyword, which appears before a
+wildcard pattern in parentheses (e.g., `SORT_BY_NAME(.text*)'). When
+the `SORT_BY_NAME' keyword is used, the linker will sort the files or
+sections into ascending order by name before placing them in the output
+file.
+
+ `SORT_BY_ALIGNMENT' is very similar to `SORT_BY_NAME'. The
+difference is `SORT_BY_ALIGNMENT' will sort sections into ascending
+order by alignment before placing them in the output file.
+
+ `SORT_BY_INIT_PRIORITY' is very similar to `SORT_BY_NAME'. The
+difference is `SORT_BY_INIT_PRIORITY' will sort sections into ascending
+order by numerical value of the GCC init_priority attribute encoded in
+the section name before placing them in the output file.
+
+ `SORT' is an alias for `SORT_BY_NAME'.
+
+ When there are nested section sorting commands in linker script,
+there can be at most 1 level of nesting for section sorting commands.
+
+ 1. `SORT_BY_NAME' (`SORT_BY_ALIGNMENT' (wildcard section pattern)).
+ It will sort the input sections by name first, then by alignment
+ if 2 sections have the same name.
+
+ 2. `SORT_BY_ALIGNMENT' (`SORT_BY_NAME' (wildcard section pattern)).
+ It will sort the input sections by alignment first, then by name
+ if 2 sections have the same alignment.
+
+ 3. `SORT_BY_NAME' (`SORT_BY_NAME' (wildcard section pattern)) is
+ treated the same as `SORT_BY_NAME' (wildcard section pattern).
+
+ 4. `SORT_BY_ALIGNMENT' (`SORT_BY_ALIGNMENT' (wildcard section
+ pattern)) is treated the same as `SORT_BY_ALIGNMENT' (wildcard
+ section pattern).
+
+ 5. All other nested section sorting commands are invalid.
+
+ When both command line section sorting option and linker script
+section sorting command are used, section sorting command always takes
+precedence over the command line option.
+
+ If the section sorting command in linker script isn't nested, the
+command line option will make the section sorting command to be treated
+as nested sorting command.
+
+ 1. `SORT_BY_NAME' (wildcard section pattern ) with `--sort-sections
+ alignment' is equivalent to `SORT_BY_NAME' (`SORT_BY_ALIGNMENT'
+ (wildcard section pattern)).
+
+ 2. `SORT_BY_ALIGNMENT' (wildcard section pattern) with
+ `--sort-section name' is equivalent to `SORT_BY_ALIGNMENT'
+ (`SORT_BY_NAME' (wildcard section pattern)).
+
+ If the section sorting command in linker script is nested, the
+command line option will be ignored.
+
+ If you ever get confused about where input sections are going, use
+the `-M' linker option to generate a map file. The map file shows
+precisely how input sections are mapped to output sections.
+
+ This example shows how wildcard patterns might be used to partition
+files. This linker script directs the linker to place all `.text'
+sections in `.text' and all `.bss' sections in `.bss'. The linker will
+place the `.data' section from all files beginning with an upper case
+character in `.DATA'; for all other files, the linker will place the
+`.data' section in `.data'.
+ SECTIONS {
+ .text : { *(.text) }
+ .DATA : { [A-Z]*(.data) }
+ .data : { *(.data) }
+ .bss : { *(.bss) }
+ }
+
+
+File: ld.info, Node: Input Section Common, Next: Input Section Keep, Prev: Input Section Wildcards, Up: Input Section
+
+3.6.4.3 Input Section for Common Symbols
+........................................
+
+A special notation is needed for common symbols, because in many object
+file formats common symbols do not have a particular input section. The
+linker treats common symbols as though they are in an input section
+named `COMMON'.
+
+ You may use file names with the `COMMON' section just as with any
+other input sections. You can use this to place common symbols from a
+particular input file in one section while common symbols from other
+input files are placed in another section.
+
+ In most cases, common symbols in input files will be placed in the
+`.bss' section in the output file. For example:
+ .bss { *(.bss) *(COMMON) }
+
+ Some object file formats have more than one type of common symbol.
+For example, the MIPS ELF object file format distinguishes standard
+common symbols and small common symbols. In this case, the linker will
+use a different special section name for other types of common symbols.
+In the case of MIPS ELF, the linker uses `COMMON' for standard common
+symbols and `.scommon' for small common symbols. This permits you to
+map the different types of common symbols into memory at different
+locations.
+
+ You will sometimes see `[COMMON]' in old linker scripts. This
+notation is now considered obsolete. It is equivalent to `*(COMMON)'.
+
+
+File: ld.info, Node: Input Section Keep, Next: Input Section Example, Prev: Input Section Common, Up: Input Section
+
+3.6.4.4 Input Section and Garbage Collection
+............................................
+
+When link-time garbage collection is in use (`--gc-sections'), it is
+often useful to mark sections that should not be eliminated. This is
+accomplished by surrounding an input section's wildcard entry with
+`KEEP()', as in `KEEP(*(.init))' or `KEEP(SORT_BY_NAME(*)(.ctors))'.
+
+
+File: ld.info, Node: Input Section Example, Prev: Input Section Keep, Up: Input Section
+
+3.6.4.5 Input Section Example
+.............................
+
+The following example is a complete linker script. It tells the linker
+to read all of the sections from file `all.o' and place them at the
+start of output section `outputa' which starts at location `0x10000'.
+All of section `.input1' from file `foo.o' follows immediately, in the
+same output section. All of section `.input2' from `foo.o' goes into
+output section `outputb', followed by section `.input1' from `foo1.o'.
+All of the remaining `.input1' and `.input2' sections from any files
+are written to output section `outputc'.
+
+ SECTIONS {
+ outputa 0x10000 :
+ {
+ all.o
+ foo.o (.input1)
+ }
+ outputb :
+ {
+ foo.o (.input2)
+ foo1.o (.input1)
+ }
+ outputc :
+ {
+ *(.input1)
+ *(.input2)
+ }
+ }
+
+
+File: ld.info, Node: Output Section Data, Next: Output Section Keywords, Prev: Input Section, Up: SECTIONS
+
+3.6.5 Output Section Data
+-------------------------
+
+You can include explicit bytes of data in an output section by using
+`BYTE', `SHORT', `LONG', `QUAD', or `SQUAD' as an output section
+command. Each keyword is followed by an expression in parentheses
+providing the value to store (*note Expressions::). The value of the
+expression is stored at the current value of the location counter.
+
+ The `BYTE', `SHORT', `LONG', and `QUAD' commands store one, two,
+four, and eight bytes (respectively). After storing the bytes, the
+location counter is incremented by the number of bytes stored.
+
+ For example, this will store the byte 1 followed by the four byte
+value of the symbol `addr':
+ BYTE(1)
+ LONG(addr)
+
+ When using a 64 bit host or target, `QUAD' and `SQUAD' are the same;
+they both store an 8 byte, or 64 bit, value. When both host and target
+are 32 bits, an expression is computed as 32 bits. In this case `QUAD'
+stores a 32 bit value zero extended to 64 bits, and `SQUAD' stores a 32
+bit value sign extended to 64 bits.
+
+ If the object file format of the output file has an explicit
+endianness, which is the normal case, the value will be stored in that
+endianness. When the object file format does not have an explicit
+endianness, as is true of, for example, S-records, the value will be
+stored in the endianness of the first input object file.
+
+ Note--these commands only work inside a section description and not
+between them, so the following will produce an error from the linker:
+ SECTIONS { .text : { *(.text) } LONG(1) .data : { *(.data) } }
+ whereas this will work:
+ SECTIONS { .text : { *(.text) ; LONG(1) } .data : { *(.data) } }
+
+ You may use the `FILL' command to set the fill pattern for the
+current section. It is followed by an expression in parentheses. Any
+otherwise unspecified regions of memory within the section (for example,
+gaps left due to the required alignment of input sections) are filled
+with the value of the expression, repeated as necessary. A `FILL'
+statement covers memory locations after the point at which it occurs in
+the section definition; by including more than one `FILL' statement,
+you can have different fill patterns in different parts of an output
+section.
+
+ This example shows how to fill unspecified regions of memory with the
+value `0x90':
+ FILL(0x90909090)
+
+ The `FILL' command is similar to the `=FILLEXP' output section
+attribute, but it only affects the part of the section following the
+`FILL' command, rather than the entire section. If both are used, the
+`FILL' command takes precedence. *Note Output Section Fill::, for
+details on the fill expression.
+
+
+File: ld.info, Node: Output Section Keywords, Next: Output Section Discarding, Prev: Output Section Data, Up: SECTIONS
+
+3.6.6 Output Section Keywords
+-----------------------------
+
+There are a couple of keywords which can appear as output section
+commands.
+
+`CREATE_OBJECT_SYMBOLS'
+ The command tells the linker to create a symbol for each input
+ file. The name of each symbol will be the name of the
+ corresponding input file. The section of each symbol will be the
+ output section in which the `CREATE_OBJECT_SYMBOLS' command
+ appears.
+
+ This is conventional for the a.out object file format. It is not
+ normally used for any other object file format.
+
+`CONSTRUCTORS'
+ When linking using the a.out object file format, the linker uses an
+ unusual set construct to support C++ global constructors and
+ destructors. When linking object file formats which do not support
+ arbitrary sections, such as ECOFF and XCOFF, the linker will
+ automatically recognize C++ global constructors and destructors by
+ name. For these object file formats, the `CONSTRUCTORS' command
+ tells the linker to place constructor information in the output
+ section where the `CONSTRUCTORS' command appears. The
+ `CONSTRUCTORS' command is ignored for other object file formats.
+
+ The symbol `__CTOR_LIST__' marks the start of the global
+ constructors, and the symbol `__CTOR_END__' marks the end.
+ Similarly, `__DTOR_LIST__' and `__DTOR_END__' mark the start and
+ end of the global destructors. The first word in the list is the
+ number of entries, followed by the address of each constructor or
+ destructor, followed by a zero word. The compiler must arrange to
+ actually run the code. For these object file formats GNU C++
+ normally calls constructors from a subroutine `__main'; a call to
+ `__main' is automatically inserted into the startup code for
+ `main'. GNU C++ normally runs destructors either by using
+ `atexit', or directly from the function `exit'.
+
+ For object file formats such as `COFF' or `ELF' which support
+ arbitrary section names, GNU C++ will normally arrange to put the
+ addresses of global constructors and destructors into the `.ctors'
+ and `.dtors' sections. Placing the following sequence into your
+ linker script will build the sort of table which the GNU C++
+ runtime code expects to see.
+
+ __CTOR_LIST__ = .;
+ LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2)
+ *(.ctors)
+ LONG(0)
+ __CTOR_END__ = .;
+ __DTOR_LIST__ = .;
+ LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2)
+ *(.dtors)
+ LONG(0)
+ __DTOR_END__ = .;
+
+ If you are using the GNU C++ support for initialization priority,
+ which provides some control over the order in which global
+ constructors are run, you must sort the constructors at link time
+ to ensure that they are executed in the correct order. When using
+ the `CONSTRUCTORS' command, use `SORT_BY_NAME(CONSTRUCTORS)'
+ instead. When using the `.ctors' and `.dtors' sections, use
+ `*(SORT_BY_NAME(.ctors))' and `*(SORT_BY_NAME(.dtors))' instead of
+ just `*(.ctors)' and `*(.dtors)'.
+
+ Normally the compiler and linker will handle these issues
+ automatically, and you will not need to concern yourself with
+ them. However, you may need to consider this if you are using C++
+ and writing your own linker scripts.
+
+
+
+File: ld.info, Node: Output Section Discarding, Next: Output Section Attributes, Prev: Output Section Keywords, Up: SECTIONS
+
+3.6.7 Output Section Discarding
+-------------------------------
+
+The linker will not create output sections with no contents. This is
+for convenience when referring to input sections that may or may not be
+present in any of the input files. For example:
+ .foo : { *(.foo) }
+ will only create a `.foo' section in the output file if there is a
+`.foo' section in at least one input file, and if the input sections
+are not all empty. Other link script directives that allocate space in
+an output section will also create the output section.
+
+ The linker will ignore address assignments (*note Output Section
+Address::) on discarded output sections, except when the linker script
+defines symbols in the output section. In that case the linker will
+obey the address assignments, possibly advancing dot even though the
+section is discarded.
+
+ The special output section name `/DISCARD/' may be used to discard
+input sections. Any input sections which are assigned to an output
+section named `/DISCARD/' are not included in the output file.
+
+
+File: ld.info, Node: Output Section Attributes, Next: Overlay Description, Prev: Output Section Discarding, Up: SECTIONS
+
+3.6.8 Output Section Attributes
+-------------------------------
+
+We showed above that the full description of an output section looked
+like this:
+
+ SECTION [ADDRESS] [(TYPE)] :
+ [AT(LMA)]
+ [ALIGN(SECTION_ALIGN)]
+ [SUBALIGN(SUBSECTION_ALIGN)]
+ [CONSTRAINT]
+ {
+ OUTPUT-SECTION-COMMAND
+ OUTPUT-SECTION-COMMAND
+ ...
+ } [>REGION] [AT>LMA_REGION] [:PHDR :PHDR ...] [=FILLEXP]
+
+ We've already described SECTION, ADDRESS, and
+OUTPUT-SECTION-COMMAND. In this section we will describe the remaining
+section attributes.
+
+* Menu:
+
+* Output Section Type:: Output section type
+* Output Section LMA:: Output section LMA
+* Forced Output Alignment:: Forced Output Alignment
+* Forced Input Alignment:: Forced Input Alignment
+* Output Section Constraint:: Output section constraint
+* Output Section Region:: Output section region
+* Output Section Phdr:: Output section phdr
+* Output Section Fill:: Output section fill
+
+
+File: ld.info, Node: Output Section Type, Next: Output Section LMA, Up: Output Section Attributes
+
+3.6.8.1 Output Section Type
+...........................
+
+Each output section may have a type. The type is a keyword in
+parentheses. The following types are defined:
+
+`NOLOAD'
+ The section should be marked as not loadable, so that it will not
+ be loaded into memory when the program is run.
+
+`DSECT'
+`COPY'
+`INFO'
+`OVERLAY'
+ These type names are supported for backward compatibility, and are
+ rarely used. They all have the same effect: the section should be
+ marked as not allocatable, so that no memory is allocated for the
+ section when the program is run.
+
+ The linker normally sets the attributes of an output section based on
+the input sections which map into it. You can override this by using
+the section type. For example, in the script sample below, the `ROM'
+section is addressed at memory location `0' and does not need to be
+loaded when the program is run.
+ SECTIONS {
+ ROM 0 (NOLOAD) : { ... }
+ ...
+ }
+
+
+File: ld.info, Node: Output Section LMA, Next: Forced Output Alignment, Prev: Output Section Type, Up: Output Section Attributes
+
+3.6.8.2 Output Section LMA
+..........................
+
+Every section has a virtual address (VMA) and a load address (LMA); see
+*Note Basic Script Concepts::. The virtual address is specified by the
+*note Output Section Address:: described earlier. The load address is
+specified by the `AT' or `AT>' keywords. Specifying a load address is
+optional.
+
+ The `AT' keyword takes an expression as an argument. This specifies
+the exact load address of the section. The `AT>' keyword takes the
+name of a memory region as an argument. *Note MEMORY::. The load
+address of the section is set to the next free address in the region,
+aligned to the section's alignment requirements.
+
+ If neither `AT' nor `AT>' is specified for an allocatable section,
+the linker will use the following heuristic to determine the load
+address:
+
+ * If the section has a specific VMA address, then this is used as
+ the LMA address as well.
+
+ * If the section is not allocatable then its LMA is set to its VMA.
+
+ * Otherwise if a memory region can be found that is compatible with
+ the current section, and this region contains at least one
+ section, then the LMA is set so the difference between the VMA and
+ LMA is the same as the difference between the VMA and LMA of the
+ last section in the located region.
+
+ * If no memory regions have been declared then a default region that
+ covers the entire address space is used in the previous step.
+
+ * If no suitable region could be found, or there was no previous
+ section then the LMA is set equal to the VMA.
+
+ This feature is designed to make it easy to build a ROM image. For
+example, the following linker script creates three output sections: one
+called `.text', which starts at `0x1000', one called `.mdata', which is
+loaded at the end of the `.text' section even though its VMA is
+`0x2000', and one called `.bss' to hold uninitialized data at address
+`0x3000'. The symbol `_data' is defined with the value `0x2000', which
+shows that the location counter holds the VMA value, not the LMA value.
+
+ SECTIONS
+ {
+ .text 0x1000 : { *(.text) _etext = . ; }
+ .mdata 0x2000 :
+ AT ( ADDR (.text) + SIZEOF (.text) )
+ { _data = . ; *(.data); _edata = . ; }
+ .bss 0x3000 :
+ { _bstart = . ; *(.bss) *(COMMON) ; _bend = . ;}
+ }
+
+ The run-time initialization code for use with a program generated
+with this linker script would include something like the following, to
+copy the initialized data from the ROM image to its runtime address.
+Notice how this code takes advantage of the symbols defined by the
+linker script.
+
+ extern char _etext, _data, _edata, _bstart, _bend;
+ char *src = &_etext;
+ char *dst = &_data;
+
+ /* ROM has data at end of text; copy it. */
+ while (dst < &_edata)
+ *dst++ = *src++;
+
+ /* Zero bss. */
+ for (dst = &_bstart; dst< &_bend; dst++)
+ *dst = 0;
+
+
+File: ld.info, Node: Forced Output Alignment, Next: Forced Input Alignment, Prev: Output Section LMA, Up: Output Section Attributes
+
+3.6.8.3 Forced Output Alignment
+...............................
+
+You can increase an output section's alignment by using ALIGN.
+
+
+File: ld.info, Node: Forced Input Alignment, Next: Output Section Constraint, Prev: Forced Output Alignment, Up: Output Section Attributes
+
+3.6.8.4 Forced Input Alignment
+..............................
+
+You can force input section alignment within an output section by using
+SUBALIGN. The value specified overrides any alignment given by input
+sections, whether larger or smaller.
+
+
+File: ld.info, Node: Output Section Constraint, Next: Output Section Region, Prev: Forced Input Alignment, Up: Output Section Attributes
+
+3.6.8.5 Output Section Constraint
+.................................
+
+You can specify that an output section should only be created if all of
+its input sections are read-only or all of its input sections are
+read-write by using the keyword `ONLY_IF_RO' and `ONLY_IF_RW'
+respectively.
+
+
+File: ld.info, Node: Output Section Region, Next: Output Section Phdr, Prev: Output Section Constraint, Up: Output Section Attributes
+
+3.6.8.6 Output Section Region
+.............................
+
+You can assign a section to a previously defined region of memory by
+using `>REGION'. *Note MEMORY::.
+
+ Here is a simple example:
+ MEMORY { rom : ORIGIN = 0x1000, LENGTH = 0x1000 }
+ SECTIONS { ROM : { *(.text) } >rom }
+
+
+File: ld.info, Node: Output Section Phdr, Next: Output Section Fill, Prev: Output Section Region, Up: Output Section Attributes
+
+3.6.8.7 Output Section Phdr
+...........................
+
+You can assign a section to a previously defined program segment by
+using `:PHDR'. *Note PHDRS::. If a section is assigned to one or more
+segments, then all subsequent allocated sections will be assigned to
+those segments as well, unless they use an explicitly `:PHDR' modifier.
+You can use `:NONE' to tell the linker to not put the section in any
+segment at all.
+
+ Here is a simple example:
+ PHDRS { text PT_LOAD ; }
+ SECTIONS { .text : { *(.text) } :text }
+
+
+File: ld.info, Node: Output Section Fill, Prev: Output Section Phdr, Up: Output Section Attributes
+
+3.6.8.8 Output Section Fill
+...........................
+
+You can set the fill pattern for an entire section by using `=FILLEXP'.
+FILLEXP is an expression (*note Expressions::). Any otherwise
+unspecified regions of memory within the output section (for example,
+gaps left due to the required alignment of input sections) will be
+filled with the value, repeated as necessary. If the fill expression
+is a simple hex number, ie. a string of hex digit starting with `0x'
+and without a trailing `k' or `M', then an arbitrarily long sequence of
+hex digits can be used to specify the fill pattern; Leading zeros
+become part of the pattern too. For all other cases, including extra
+parentheses or a unary `+', the fill pattern is the four least
+significant bytes of the value of the expression. In all cases, the
+number is big-endian.
+
+ You can also change the fill value with a `FILL' command in the
+output section commands; (*note Output Section Data::).
+
+ Here is a simple example:
+ SECTIONS { .text : { *(.text) } =0x90909090 }
+
+
+File: ld.info, Node: Overlay Description, Prev: Output Section Attributes, Up: SECTIONS
+
+3.6.9 Overlay Description
+-------------------------
+
+An overlay description provides an easy way to describe sections which
+are to be loaded as part of a single memory image but are to be run at
+the same memory address. At run time, some sort of overlay manager will
+copy the overlaid sections in and out of the runtime memory address as
+required, perhaps by simply manipulating addressing bits. This approach
+can be useful, for example, when a certain region of memory is faster
+than another.
+
+ Overlays are described using the `OVERLAY' command. The `OVERLAY'
+command is used within a `SECTIONS' command, like an output section
+description. The full syntax of the `OVERLAY' command is as follows:
+ OVERLAY [START] : [NOCROSSREFS] [AT ( LDADDR )]
+ {
+ SECNAME1
+ {
+ OUTPUT-SECTION-COMMAND
+ OUTPUT-SECTION-COMMAND
+ ...
+ } [:PHDR...] [=FILL]
+ SECNAME2
+ {
+ OUTPUT-SECTION-COMMAND
+ OUTPUT-SECTION-COMMAND
+ ...
+ } [:PHDR...] [=FILL]
+ ...
+ } [>REGION] [:PHDR...] [=FILL]
+
+ Everything is optional except `OVERLAY' (a keyword), and each
+section must have a name (SECNAME1 and SECNAME2 above). The section
+definitions within the `OVERLAY' construct are identical to those
+within the general `SECTIONS' contruct (*note SECTIONS::), except that
+no addresses and no memory regions may be defined for sections within
+an `OVERLAY'.
+
+ The sections are all defined with the same starting address. The
+load addresses of the sections are arranged such that they are
+consecutive in memory starting at the load address used for the
+`OVERLAY' as a whole (as with normal section definitions, the load
+address is optional, and defaults to the start address; the start
+address is also optional, and defaults to the current value of the
+location counter).
+
+ If the `NOCROSSREFS' keyword is used, and there any references among
+the sections, the linker will report an error. Since the sections all
+run at the same address, it normally does not make sense for one
+section to refer directly to another. *Note NOCROSSREFS: Miscellaneous
+Commands.
+
+ For each section within the `OVERLAY', the linker automatically
+provides two symbols. The symbol `__load_start_SECNAME' is defined as
+the starting load address of the section. The symbol
+`__load_stop_SECNAME' is defined as the final load address of the
+section. Any characters within SECNAME which are not legal within C
+identifiers are removed. C (or assembler) code may use these symbols
+to move the overlaid sections around as necessary.
+
+ At the end of the overlay, the value of the location counter is set
+to the start address of the overlay plus the size of the largest
+section.
+
+ Here is an example. Remember that this would appear inside a
+`SECTIONS' construct.
+ OVERLAY 0x1000 : AT (0x4000)
+ {
+ .text0 { o1/*.o(.text) }
+ .text1 { o2/*.o(.text) }
+ }
+This will define both `.text0' and `.text1' to start at address
+0x1000. `.text0' will be loaded at address 0x4000, and `.text1' will
+be loaded immediately after `.text0'. The following symbols will be
+defined if referenced: `__load_start_text0', `__load_stop_text0',
+`__load_start_text1', `__load_stop_text1'.
+
+ C code to copy overlay `.text1' into the overlay area might look
+like the following.
+
+ extern char __load_start_text1, __load_stop_text1;
+ memcpy ((char *) 0x1000, &__load_start_text1,
+ &__load_stop_text1 - &__load_start_text1);
+
+ Note that the `OVERLAY' command is just syntactic sugar, since
+everything it does can be done using the more basic commands. The above
+example could have been written identically as follows.
+
+ .text0 0x1000 : AT (0x4000) { o1/*.o(.text) }
+ PROVIDE (__load_start_text0 = LOADADDR (.text0));
+ PROVIDE (__load_stop_text0 = LOADADDR (.text0) + SIZEOF (.text0));
+ .text1 0x1000 : AT (0x4000 + SIZEOF (.text0)) { o2/*.o(.text) }
+ PROVIDE (__load_start_text1 = LOADADDR (.text1));
+ PROVIDE (__load_stop_text1 = LOADADDR (.text1) + SIZEOF (.text1));
+ . = 0x1000 + MAX (SIZEOF (.text0), SIZEOF (.text1));
+
+
+File: ld.info, Node: MEMORY, Next: PHDRS, Prev: SECTIONS, Up: Scripts
+
+3.7 MEMORY Command
+==================
+
+The linker's default configuration permits allocation of all available
+memory. You can override this by using the `MEMORY' command.
+
+ The `MEMORY' command describes the location and size of blocks of
+memory in the target. You can use it to describe which memory regions
+may be used by the linker, and which memory regions it must avoid. You
+can then assign sections to particular memory regions. The linker will
+set section addresses based on the memory regions, and will warn about
+regions that become too full. The linker will not shuffle sections
+around to fit into the available regions.
+
+ A linker script may contain at most one use of the `MEMORY' command.
+However, you can define as many blocks of memory within it as you
+wish. The syntax is:
+ MEMORY
+ {
+ NAME [(ATTR)] : ORIGIN = ORIGIN, LENGTH = LEN
+ ...
+ }
+
+ The NAME is a name used in the linker script to refer to the region.
+The region name has no meaning outside of the linker script. Region
+names are stored in a separate name space, and will not conflict with
+symbol names, file names, or section names. Each memory region must
+have a distinct name within the `MEMORY' command. However you can add
+later alias names to existing memory regions with the *Note
+REGION_ALIAS:: command.
+
+ The ATTR string is an optional list of attributes that specify
+whether to use a particular memory region for an input section which is
+not explicitly mapped in the linker script. As described in *Note
+SECTIONS::, if you do not specify an output section for some input
+section, the linker will create an output section with the same name as
+the input section. If you define region attributes, the linker will use
+them to select the memory region for the output section that it creates.
+
+ The ATTR string must consist only of the following characters:
+`R'
+ Read-only section
+
+`W'
+ Read/write section
+
+`X'
+ Executable section
+
+`A'
+ Allocatable section
+
+`I'
+ Initialized section
+
+`L'
+ Same as `I'
+
+`!'
+ Invert the sense of any of the attributes that follow
+
+ If a unmapped section matches any of the listed attributes other than
+`!', it will be placed in the memory region. The `!' attribute
+reverses this test, so that an unmapped section will be placed in the
+memory region only if it does not match any of the listed attributes.
+
+ The ORIGIN is an numerical expression for the start address of the
+memory region. The expression must evaluate to a constant and it
+cannot involve any symbols. The keyword `ORIGIN' may be abbreviated to
+`org' or `o' (but not, for example, `ORG').
+
+ The LEN is an expression for the size in bytes of the memory region.
+As with the ORIGIN expression, the expression must be numerical only
+and must evaluate to a constant. The keyword `LENGTH' may be
+abbreviated to `len' or `l'.
+
+ In the following example, we specify that there are two memory
+regions available for allocation: one starting at `0' for 256 kilobytes,
+and the other starting at `0x40000000' for four megabytes. The linker
+will place into the `rom' memory region every section which is not
+explicitly mapped into a memory region, and is either read-only or
+executable. The linker will place other sections which are not
+explicitly mapped into a memory region into the `ram' memory region.
+
+ MEMORY
+ {
+ rom (rx) : ORIGIN = 0, LENGTH = 256K
+ ram (!rx) : org = 0x40000000, l = 4M
+ }
+
+ Once you define a memory region, you can direct the linker to place
+specific output sections into that memory region by using the `>REGION'
+output section attribute. For example, if you have a memory region
+named `mem', you would use `>mem' in the output section definition.
+*Note Output Section Region::. If no address was specified for the
+output section, the linker will set the address to the next available
+address within the memory region. If the combined output sections
+directed to a memory region are too large for the region, the linker
+will issue an error message.
+
+ It is possible to access the origin and length of a memory in an
+expression via the `ORIGIN(MEMORY)' and `LENGTH(MEMORY)' functions:
+
+ _fstack = ORIGIN(ram) + LENGTH(ram) - 4;
+
+
+File: ld.info, Node: PHDRS, Next: VERSION, Prev: MEMORY, Up: Scripts
+
+3.8 PHDRS Command
+=================
+
+The ELF object file format uses "program headers", also knows as
+"segments". The program headers describe how the program should be
+loaded into memory. You can print them out by using the `objdump'
+program with the `-p' option.
+
+ When you run an ELF program on a native ELF system, the system loader
+reads the program headers in order to figure out how to load the
+program. This will only work if the program headers are set correctly.
+This manual does not describe the details of how the system loader
+interprets program headers; for more information, see the ELF ABI.
+
+ The linker will create reasonable program headers by default.
+However, in some cases, you may need to specify the program headers more
+precisely. You may use the `PHDRS' command for this purpose. When the
+linker sees the `PHDRS' command in the linker script, it will not
+create any program headers other than the ones specified.
+
+ The linker only pays attention to the `PHDRS' command when
+generating an ELF output file. In other cases, the linker will simply
+ignore `PHDRS'.
+
+ This is the syntax of the `PHDRS' command. The words `PHDRS',
+`FILEHDR', `AT', and `FLAGS' are keywords.
+
+ PHDRS
+ {
+ NAME TYPE [ FILEHDR ] [ PHDRS ] [ AT ( ADDRESS ) ]
+ [ FLAGS ( FLAGS ) ] ;
+ }
+
+ The NAME is used only for reference in the `SECTIONS' command of the
+linker script. It is not put into the output file. Program header
+names are stored in a separate name space, and will not conflict with
+symbol names, file names, or section names. Each program header must
+have a distinct name. The headers are processed in order and it is
+usual for them to map to sections in ascending load address order.
+
+ Certain program header types describe segments of memory which the
+system loader will load from the file. In the linker script, you
+specify the contents of these segments by placing allocatable output
+sections in the segments. You use the `:PHDR' output section attribute
+to place a section in a particular segment. *Note Output Section
+Phdr::.
+
+ It is normal to put certain sections in more than one segment. This
+merely implies that one segment of memory contains another. You may
+repeat `:PHDR', using it once for each segment which should contain the
+section.
+
+ If you place a section in one or more segments using `:PHDR', then
+the linker will place all subsequent allocatable sections which do not
+specify `:PHDR' in the same segments. This is for convenience, since
+generally a whole set of contiguous sections will be placed in a single
+segment. You can use `:NONE' to override the default segment and tell
+the linker to not put the section in any segment at all.
+
+ You may use the `FILEHDR' and `PHDRS' keywords after the program
+header type to further describe the contents of the segment. The
+`FILEHDR' keyword means that the segment should include the ELF file
+header. The `PHDRS' keyword means that the segment should include the
+ELF program headers themselves. If applied to a loadable segment
+(`PT_LOAD'), all prior loadable segments must have one of these
+keywords.
+
+ The TYPE may be one of the following. The numbers indicate the
+value of the keyword.
+
+`PT_NULL' (0)
+ Indicates an unused program header.
+
+`PT_LOAD' (1)
+ Indicates that this program header describes a segment to be
+ loaded from the file.
+
+`PT_DYNAMIC' (2)
+ Indicates a segment where dynamic linking information can be found.
+
+`PT_INTERP' (3)
+ Indicates a segment where the name of the program interpreter may
+ be found.
+
+`PT_NOTE' (4)
+ Indicates a segment holding note information.
+
+`PT_SHLIB' (5)
+ A reserved program header type, defined but not specified by the
+ ELF ABI.
+
+`PT_PHDR' (6)
+ Indicates a segment where the program headers may be found.
+
+EXPRESSION
+ An expression giving the numeric type of the program header. This
+ may be used for types not defined above.
+
+ You can specify that a segment should be loaded at a particular
+address in memory by using an `AT' expression. This is identical to the
+`AT' command used as an output section attribute (*note Output Section
+LMA::). The `AT' command for a program header overrides the output
+section attribute.
+
+ The linker will normally set the segment flags based on the sections
+which comprise the segment. You may use the `FLAGS' keyword to
+explicitly specify the segment flags. The value of FLAGS must be an
+integer. It is used to set the `p_flags' field of the program header.
+
+ Here is an example of `PHDRS'. This shows a typical set of program
+headers used on a native ELF system.
+
+ PHDRS
+ {
+ headers PT_PHDR PHDRS ;
+ interp PT_INTERP ;
+ text PT_LOAD FILEHDR PHDRS ;
+ data PT_LOAD ;
+ dynamic PT_DYNAMIC ;
+ }
+
+ SECTIONS
+ {
+ . = SIZEOF_HEADERS;
+ .interp : { *(.interp) } :text :interp
+ .text : { *(.text) } :text
+ .rodata : { *(.rodata) } /* defaults to :text */
+ ...
+ . = . + 0x1000; /* move to a new page in memory */
+ .data : { *(.data) } :data
+ .dynamic : { *(.dynamic) } :data :dynamic
+ ...
+ }
+
+
+File: ld.info, Node: VERSION, Next: Expressions, Prev: PHDRS, Up: Scripts
+
+3.9 VERSION Command
+===================
+
+The linker supports symbol versions when using ELF. Symbol versions are
+only useful when using shared libraries. The dynamic linker can use
+symbol versions to select a specific version of a function when it runs
+a program that may have been linked against an earlier version of the
+shared library.
+
+ You can include a version script directly in the main linker script,
+or you can supply the version script as an implicit linker script. You
+can also use the `--version-script' linker option.
+
+ The syntax of the `VERSION' command is simply
+ VERSION { version-script-commands }
+
+ The format of the version script commands is identical to that used
+by Sun's linker in Solaris 2.5. The version script defines a tree of
+version nodes. You specify the node names and interdependencies in the
+version script. You can specify which symbols are bound to which
+version nodes, and you can reduce a specified set of symbols to local
+scope so that they are not globally visible outside of the shared
+library.
+
+ The easiest way to demonstrate the version script language is with a
+few examples.
+
+ VERS_1.1 {
+ global:
+ foo1;
+ local:
+ old*;
+ original*;
+ new*;
+ };
+
+ VERS_1.2 {
+ foo2;
+ } VERS_1.1;
+
+ VERS_2.0 {
+ bar1; bar2;
+ extern "C++" {
+ ns::*;
+ "f(int, double)";
+ };
+ } VERS_1.2;
+
+ This example version script defines three version nodes. The first
+version node defined is `VERS_1.1'; it has no other dependencies. The
+script binds the symbol `foo1' to `VERS_1.1'. It reduces a number of
+symbols to local scope so that they are not visible outside of the
+shared library; this is done using wildcard patterns, so that any
+symbol whose name begins with `old', `original', or `new' is matched.
+The wildcard patterns available are the same as those used in the shell
+when matching filenames (also known as "globbing"). However, if you
+specify the symbol name inside double quotes, then the name is treated
+as literal, rather than as a glob pattern.
+
+ Next, the version script defines node `VERS_1.2'. This node depends
+upon `VERS_1.1'. The script binds the symbol `foo2' to the version
+node `VERS_1.2'.
+
+ Finally, the version script defines node `VERS_2.0'. This node
+depends upon `VERS_1.2'. The scripts binds the symbols `bar1' and
+`bar2' are bound to the version node `VERS_2.0'.
+
+ When the linker finds a symbol defined in a library which is not
+specifically bound to a version node, it will effectively bind it to an
+unspecified base version of the library. You can bind all otherwise
+unspecified symbols to a given version node by using `global: *;'
+somewhere in the version script. Note that it's slightly crazy to use
+wildcards in a global spec except on the last version node. Global
+wildcards elsewhere run the risk of accidentally adding symbols to the
+set exported for an old version. That's wrong since older versions
+ought to have a fixed set of symbols.
+
+ The names of the version nodes have no specific meaning other than
+what they might suggest to the person reading them. The `2.0' version
+could just as well have appeared in between `1.1' and `1.2'. However,
+this would be a confusing way to write a version script.
+
+ Node name can be omitted, provided it is the only version node in
+the version script. Such version script doesn't assign any versions to
+symbols, only selects which symbols will be globally visible out and
+which won't.
+
+ { global: foo; bar; local: *; };
+
+ When you link an application against a shared library that has
+versioned symbols, the application itself knows which version of each
+symbol it requires, and it also knows which version nodes it needs from
+each shared library it is linked against. Thus at runtime, the dynamic
+loader can make a quick check to make sure that the libraries you have
+linked against do in fact supply all of the version nodes that the
+application will need to resolve all of the dynamic symbols. In this
+way it is possible for the dynamic linker to know with certainty that
+all external symbols that it needs will be resolvable without having to
+search for each symbol reference.
+
+ The symbol versioning is in effect a much more sophisticated way of
+doing minor version checking that SunOS does. The fundamental problem
+that is being addressed here is that typically references to external
+functions are bound on an as-needed basis, and are not all bound when
+the application starts up. If a shared library is out of date, a
+required interface may be missing; when the application tries to use
+that interface, it may suddenly and unexpectedly fail. With symbol
+versioning, the user will get a warning when they start their program if
+the libraries being used with the application are too old.
+
+ There are several GNU extensions to Sun's versioning approach. The
+first of these is the ability to bind a symbol to a version node in the
+source file where the symbol is defined instead of in the versioning
+script. This was done mainly to reduce the burden on the library
+maintainer. You can do this by putting something like:
+ __asm__(".symver original_foo,foo@VERS_1.1");
+ in the C source file. This renames the function `original_foo' to
+be an alias for `foo' bound to the version node `VERS_1.1'. The
+`local:' directive can be used to prevent the symbol `original_foo'
+from being exported. A `.symver' directive takes precedence over a
+version script.
+
+ The second GNU extension is to allow multiple versions of the same
+function to appear in a given shared library. In this way you can make
+an incompatible change to an interface without increasing the major
+version number of the shared library, while still allowing applications
+linked against the old interface to continue to function.
+
+ To do this, you must use multiple `.symver' directives in the source
+file. Here is an example:
+
+ __asm__(".symver original_foo,foo@");
+ __asm__(".symver old_foo,foo@VERS_1.1");
+ __asm__(".symver old_foo1,foo@VERS_1.2");
+ __asm__(".symver new_foo,foo@@VERS_2.0");
+
+ In this example, `foo@' represents the symbol `foo' bound to the
+unspecified base version of the symbol. The source file that contains
+this example would define 4 C functions: `original_foo', `old_foo',
+`old_foo1', and `new_foo'.
+
+ When you have multiple definitions of a given symbol, there needs to
+be some way to specify a default version to which external references to
+this symbol will be bound. You can do this with the `foo@@VERS_2.0'
+type of `.symver' directive. You can only declare one version of a
+symbol as the default in this manner; otherwise you would effectively
+have multiple definitions of the same symbol.
+
+ If you wish to bind a reference to a specific version of the symbol
+within the shared library, you can use the aliases of convenience
+(i.e., `old_foo'), or you can use the `.symver' directive to
+specifically bind to an external version of the function in question.
+
+ You can also specify the language in the version script:
+
+ VERSION extern "lang" { version-script-commands }
+
+ The supported `lang's are `C', `C++', and `Java'. The linker will
+iterate over the list of symbols at the link time and demangle them
+according to `lang' before matching them to the patterns specified in
+`version-script-commands'. The default `lang' is `C'.
+
+ Demangled names may contains spaces and other special characters. As
+described above, you can use a glob pattern to match demangled names,
+or you can use a double-quoted string to match the string exactly. In
+the latter case, be aware that minor differences (such as differing
+whitespace) between the version script and the demangler output will
+cause a mismatch. As the exact string generated by the demangler might
+change in the future, even if the mangled name does not, you should
+check that all of your version directives are behaving as you expect
+when you upgrade.
+
+
+File: ld.info, Node: Expressions, Next: Implicit Linker Scripts, Prev: VERSION, Up: Scripts
+
+3.10 Expressions in Linker Scripts
+==================================
+
+The syntax for expressions in the linker script language is identical to
+that of C expressions. All expressions are evaluated as integers. All
+expressions are evaluated in the same size, which is 32 bits if both the
+host and target are 32 bits, and is otherwise 64 bits.
+
+ You can use and set symbol values in expressions.
+
+ The linker defines several special purpose builtin functions for use
+in expressions.
+
+* Menu:
+
+* Constants:: Constants
+* Symbolic Constants:: Symbolic constants
+* Symbols:: Symbol Names
+* Orphan Sections:: Orphan Sections
+* Location Counter:: The Location Counter
+* Operators:: Operators
+* Evaluation:: Evaluation
+* Expression Section:: The Section of an Expression
+* Builtin Functions:: Builtin Functions
+
+
+File: ld.info, Node: Constants, Next: Symbolic Constants, Up: Expressions
+
+3.10.1 Constants
+----------------
+
+All constants are integers.
+
+ As in C, the linker considers an integer beginning with `0' to be
+octal, and an integer beginning with `0x' or `0X' to be hexadecimal.
+Alternatively the linker accepts suffixes of `h' or `H' for
+hexadeciaml, `o' or `O' for octal, `b' or `B' for binary and `d' or `D'
+for decimal. Any integer value without a prefix or a suffix is
+considered to be decimal.
+
+ In addition, you can use the suffixes `K' and `M' to scale a
+constant by `1024' or `1024*1024' respectively. For example, the
+following all refer to the same quantity:
+
+ _fourk_1 = 4K;
+ _fourk_2 = 4096;
+ _fourk_3 = 0x1000;
+ _fourk_4 = 10000o;
+
+ Note - the `K' and `M' suffixes cannot be used in conjunction with
+the base suffixes mentioned above.
+
+
+File: ld.info, Node: Symbolic Constants, Next: Symbols, Prev: Constants, Up: Expressions
+
+3.10.2 Symbolic Constants
+-------------------------
+
+It is possible to refer to target specific constants via the use of the
+`CONSTANT(NAME)' operator, where NAME is one of:
+
+`MAXPAGESIZE'
+ The target's maximum page size.
+
+`COMMONPAGESIZE'
+ The target's default page size.
+
+ So for example:
+
+ .text ALIGN (CONSTANT (MAXPAGESIZE)) : { *(.text) }
+
+ will create a text section aligned to the largest page boundary
+supported by the target.
+
+
+File: ld.info, Node: Symbols, Next: Orphan Sections, Prev: Symbolic Constants, Up: Expressions
+
+3.10.3 Symbol Names
+-------------------
+
+Unless quoted, symbol names start with a letter, underscore, or period
+and may include letters, digits, underscores, periods, and hyphens.
+Unquoted symbol names must not conflict with any keywords. You can
+specify a symbol which contains odd characters or has the same name as a
+keyword by surrounding the symbol name in double quotes:
+ "SECTION" = 9;
+ "with a space" = "also with a space" + 10;
+
+ Since symbols can contain many non-alphabetic characters, it is
+safest to delimit symbols with spaces. For example, `A-B' is one
+symbol, whereas `A - B' is an expression involving subtraction.
+
+
+File: ld.info, Node: Orphan Sections, Next: Location Counter, Prev: Symbols, Up: Expressions
+
+3.10.4 Orphan Sections
+----------------------
+
+Orphan sections are sections present in the input files which are not
+explicitly placed into the output file by the linker script. The
+linker will still copy these sections into the output file, but it has
+to guess as to where they should be placed. The linker uses a simple
+heuristic to do this. It attempts to place orphan sections after
+non-orphan sections of the same attribute, such as code vs data,
+loadable vs non-loadable, etc. If there is not enough room to do this
+then it places at the end of the file.
+
+ For ELF targets, the attribute of the section includes section type
+as well as section flag.
+
+ If an orphaned section's name is representable as a C identifier then
+the linker will automatically *note PROVIDE:: two symbols:
+__start_SECNAME and __end_SECNAME, where SECNAME is the name of the
+section. These indicate the start address and end address of the
+orphaned section respectively. Note: most section names are not
+representable as C identifiers because they contain a `.' character.
+
+
+File: ld.info, Node: Location Counter, Next: Operators, Prev: Orphan Sections, Up: Expressions
+
+3.10.5 The Location Counter
+---------------------------
+
+The special linker variable "dot" `.' always contains the current
+output location counter. Since the `.' always refers to a location in
+an output section, it may only appear in an expression within a
+`SECTIONS' command. The `.' symbol may appear anywhere that an
+ordinary symbol is allowed in an expression.
+
+ Assigning a value to `.' will cause the location counter to be
+moved. This may be used to create holes in the output section. The
+location counter may not be moved backwards inside an output section,
+and may not be moved backwards outside of an output section if so doing
+creates areas with overlapping LMAs.
+
+ SECTIONS
+ {
+ output :
+ {
+ file1(.text)
+ . = . + 1000;
+ file2(.text)
+ . += 1000;
+ file3(.text)
+ } = 0x12345678;
+ }
+ In the previous example, the `.text' section from `file1' is located
+at the beginning of the output section `output'. It is followed by a
+1000 byte gap. Then the `.text' section from `file2' appears, also
+with a 1000 byte gap following before the `.text' section from `file3'.
+The notation `= 0x12345678' specifies what data to write in the gaps
+(*note Output Section Fill::).
+
+ Note: `.' actually refers to the byte offset from the start of the
+current containing object. Normally this is the `SECTIONS' statement,
+whose start address is 0, hence `.' can be used as an absolute address.
+If `.' is used inside a section description however, it refers to the
+byte offset from the start of that section, not an absolute address.
+Thus in a script like this:
+
+ SECTIONS
+ {
+ . = 0x100
+ .text: {
+ *(.text)
+ . = 0x200
+ }
+ . = 0x500
+ .data: {
+ *(.data)
+ . += 0x600
+ }
+ }
+
+ The `.text' section will be assigned a starting address of 0x100 and
+a size of exactly 0x200 bytes, even if there is not enough data in the
+`.text' input sections to fill this area. (If there is too much data,
+an error will be produced because this would be an attempt to move `.'
+backwards). The `.data' section will start at 0x500 and it will have
+an extra 0x600 bytes worth of space after the end of the values from
+the `.data' input sections and before the end of the `.data' output
+section itself.
+
+ Setting symbols to the value of the location counter outside of an
+output section statement can result in unexpected values if the linker
+needs to place orphan sections. For example, given the following:
+
+ SECTIONS
+ {
+ start_of_text = . ;
+ .text: { *(.text) }
+ end_of_text = . ;
+
+ start_of_data = . ;
+ .data: { *(.data) }
+ end_of_data = . ;
+ }
+
+ If the linker needs to place some input section, e.g. `.rodata', not
+mentioned in the script, it might choose to place that section between
+`.text' and `.data'. You might think the linker should place `.rodata'
+on the blank line in the above script, but blank lines are of no
+particular significance to the linker. As well, the linker doesn't
+associate the above symbol names with their sections. Instead, it
+assumes that all assignments or other statements belong to the previous
+output section, except for the special case of an assignment to `.'.
+I.e., the linker will place the orphan `.rodata' section as if the
+script was written as follows:
+
+ SECTIONS
+ {
+ start_of_text = . ;
+ .text: { *(.text) }
+ end_of_text = . ;
+
+ start_of_data = . ;
+ .rodata: { *(.rodata) }
+ .data: { *(.data) }
+ end_of_data = . ;
+ }
+
+ This may or may not be the script author's intention for the value of
+`start_of_data'. One way to influence the orphan section placement is
+to assign the location counter to itself, as the linker assumes that an
+assignment to `.' is setting the start address of a following output
+section and thus should be grouped with that section. So you could
+write:
+
+ SECTIONS
+ {
+ start_of_text = . ;
+ .text: { *(.text) }
+ end_of_text = . ;
+
+ . = . ;
+ start_of_data = . ;
+ .data: { *(.data) }
+ end_of_data = . ;
+ }
+
+ Now, the orphan `.rodata' section will be placed between
+`end_of_text' and `start_of_data'.
+
+
+File: ld.info, Node: Operators, Next: Evaluation, Prev: Location Counter, Up: Expressions
+
+3.10.6 Operators
+----------------
+
+The linker recognizes the standard C set of arithmetic operators, with
+the standard bindings and precedence levels:
+ precedence associativity Operators Notes
+ (highest)
+ 1 left ! - ~ (1)
+ 2 left * / %
+ 3 left + -
+ 4 left >> <<
+ 5 left == != > < <= >=
+ 6 left &
+ 7 left |
+ 8 left &&
+ 9 left ||
+ 10 right ? :
+ 11 right &= += -= *= /= (2)
+ (lowest)
+ Notes: (1) Prefix operators (2) *Note Assignments::.
+
+
+File: ld.info, Node: Evaluation, Next: Expression Section, Prev: Operators, Up: Expressions
+
+3.10.7 Evaluation
+-----------------
+
+The linker evaluates expressions lazily. It only computes the value of
+an expression when absolutely necessary.
+
+ The linker needs some information, such as the value of the start
+address of the first section, and the origins and lengths of memory
+regions, in order to do any linking at all. These values are computed
+as soon as possible when the linker reads in the linker script.
+
+ However, other values (such as symbol values) are not known or needed
+until after storage allocation. Such values are evaluated later, when
+other information (such as the sizes of output sections) is available
+for use in the symbol assignment expression.
+
+ The sizes of sections cannot be known until after allocation, so
+assignments dependent upon these are not performed until after
+allocation.
+
+ Some expressions, such as those depending upon the location counter
+`.', must be evaluated during section allocation.
+
+ If the result of an expression is required, but the value is not
+available, then an error results. For example, a script like the
+following
+ SECTIONS
+ {
+ .text 9+this_isnt_constant :
+ { *(.text) }
+ }
+will cause the error message `non constant expression for initial
+address'.
+
+
+File: ld.info, Node: Expression Section, Next: Builtin Functions, Prev: Evaluation, Up: Expressions
+
+3.10.8 The Section of an Expression
+-----------------------------------
+
+Addresses and symbols may be section relative, or absolute. A section
+relative symbol is relocatable. If you request relocatable output
+using the `-r' option, a further link operation may change the value of
+a section relative symbol. On the other hand, an absolute symbol will
+retain the same value throughout any further link operations.
+
+ Some terms in linker expressions are addresses. This is true of
+section relative symbols and for builtin functions that return an
+address, such as `ADDR', `LOADADDR', `ORIGIN' and `SEGMENT_START'.
+Other terms are simply numbers, or are builtin functions that return a
+non-address value, such as `LENGTH'. One complication is that unless
+you set `LD_FEATURE ("SANE_EXPR")' (*note Miscellaneous Commands::),
+numbers and absolute symbols are treated differently depending on their
+location, for compatibility with older versions of `ld'. Expressions
+appearing outside an output section definition treat all numbers as
+absolute addresses. Expressions appearing inside an output section
+definition treat absolute symbols as numbers. If `LD_FEATURE
+("SANE_EXPR")' is given, then absolute symbols and numbers are simply
+treated as numbers everywhere.
+
+ In the following simple example,
+
+ SECTIONS
+ {
+ . = 0x100;
+ __executable_start = 0x100;
+ .data :
+ {
+ . = 0x10;
+ __data_start = 0x10;
+ *(.data)
+ }
+ ...
+ }
+
+ both `.' and `__executable_start' are set to the absolute address
+0x100 in the first two assignments, then both `.' and `__data_start'
+are set to 0x10 relative to the `.data' section in the second two
+assignments.
+
+ For expressions involving numbers, relative addresses and absolute
+addresses, ld follows these rules to evaluate terms:
+
+ * Unary operations on a relative address, and binary operations on
+ two relative addresses in the same section or between one relative
+ address and a number, apply the operator to the offset part of the
+ address(es).
+
+ * Unary operations on an absolute address, and binary operations on
+ one or more absolute addresses or on two relative addresses not in
+ the same section, first convert any non-absolute term to an
+ absolute address before applying the operator.
+
+ The result section of each sub-expression is as follows:
+
+ * An operation involving only numbers results in a number.
+
+ * The result of comparisons, `&&' and `||' is also a number.
+
+ * The result of other binary arithmetic and logical operations on two
+ relative addresses in the same section or two absolute addresess
+ (after above conversions) is also a number.
+
+ * The result of other operations on relative addresses or one
+ relative address and a number, is a relative address in the same
+ section as the relative operand(s).
+
+ * The result of other operations on absolute addresses (after above
+ conversions) is an absolute address.
+
+ You can use the builtin function `ABSOLUTE' to force an expression
+to be absolute when it would otherwise be relative. For example, to
+create an absolute symbol set to the address of the end of the output
+section `.data':
+ SECTIONS
+ {
+ .data : { *(.data) _edata = ABSOLUTE(.); }
+ }
+ If `ABSOLUTE' were not used, `_edata' would be relative to the
+`.data' section.
+
+ Using `LOADADDR' also forces an expression absolute, since this
+particular builtin function returns an absolute address.
+
+
+File: ld.info, Node: Builtin Functions, Prev: Expression Section, Up: Expressions
+
+3.10.9 Builtin Functions
+------------------------
+
+The linker script language includes a number of builtin functions for
+use in linker script expressions.
+
+`ABSOLUTE(EXP)'
+ Return the absolute (non-relocatable, as opposed to non-negative)
+ value of the expression EXP. Primarily useful to assign an
+ absolute value to a symbol within a section definition, where
+ symbol values are normally section relative. *Note Expression
+ Section::.
+
+`ADDR(SECTION)'
+ Return the address (VMA) of the named SECTION. Your script must
+ previously have defined the location of that section. In the
+ following example, `start_of_output_1', `symbol_1' and `symbol_2'
+ are assigned equivalent values, except that `symbol_1' will be
+ relative to the `.output1' section while the other two will be
+ absolute:
+ SECTIONS { ...
+ .output1 :
+ {
+ start_of_output_1 = ABSOLUTE(.);
+ ...
+ }
+ .output :
+ {
+ symbol_1 = ADDR(.output1);
+ symbol_2 = start_of_output_1;
+ }
+ ... }
+
+`ALIGN(ALIGN)'
+`ALIGN(EXP,ALIGN)'
+ Return the location counter (`.') or arbitrary expression aligned
+ to the next ALIGN boundary. The single operand `ALIGN' doesn't
+ change the value of the location counter--it just does arithmetic
+ on it. The two operand `ALIGN' allows an arbitrary expression to
+ be aligned upwards (`ALIGN(ALIGN)' is equivalent to `ALIGN(.,
+ ALIGN)').
+
+ Here is an example which aligns the output `.data' section to the
+ next `0x2000' byte boundary after the preceding section and sets a
+ variable within the section to the next `0x8000' boundary after the
+ input sections:
+ SECTIONS { ...
+ .data ALIGN(0x2000): {
+ *(.data)
+ variable = ALIGN(0x8000);
+ }
+ ... }
+ The first use of `ALIGN' in this example specifies the
+ location of a section because it is used as the optional ADDRESS
+ attribute of a section definition (*note Output Section
+ Address::). The second use of `ALIGN' is used to defines the
+ value of a symbol.
+
+ The builtin function `NEXT' is closely related to `ALIGN'.
+
+`ALIGNOF(SECTION)'
+ Return the alignment in bytes of the named SECTION, if that
+ section has been allocated. If the section has not been allocated
+ when this is evaluated, the linker will report an error. In the
+ following example, the alignment of the `.output' section is
+ stored as the first value in that section.
+ SECTIONS{ ...
+ .output {
+ LONG (ALIGNOF (.output))
+ ...
+ }
+ ... }
+
+`BLOCK(EXP)'
+ This is a synonym for `ALIGN', for compatibility with older linker
+ scripts. It is most often seen when setting the address of an
+ output section.
+
+`DATA_SEGMENT_ALIGN(MAXPAGESIZE, COMMONPAGESIZE)'
+ This is equivalent to either
+ (ALIGN(MAXPAGESIZE) + (. & (MAXPAGESIZE - 1)))
+ or
+ (ALIGN(MAXPAGESIZE) + (. & (MAXPAGESIZE - COMMONPAGESIZE)))
+ depending on whether the latter uses fewer COMMONPAGESIZE sized
+ pages for the data segment (area between the result of this
+ expression and `DATA_SEGMENT_END') than the former or not. If the
+ latter form is used, it means COMMONPAGESIZE bytes of runtime
+ memory will be saved at the expense of up to COMMONPAGESIZE wasted
+ bytes in the on-disk file.
+
+ This expression can only be used directly in `SECTIONS' commands,
+ not in any output section descriptions and only once in the linker
+ script. COMMONPAGESIZE should be less or equal to MAXPAGESIZE and
+ should be the system page size the object wants to be optimized
+ for (while still working on system page sizes up to MAXPAGESIZE).
+
+ Example:
+ . = DATA_SEGMENT_ALIGN(0x10000, 0x2000);
+
+`DATA_SEGMENT_END(EXP)'
+ This defines the end of data segment for `DATA_SEGMENT_ALIGN'
+ evaluation purposes.
+
+ . = DATA_SEGMENT_END(.);
+
+`DATA_SEGMENT_RELRO_END(OFFSET, EXP)'
+ This defines the end of the `PT_GNU_RELRO' segment when `-z relro'
+ option is used. Second argument is returned. When `-z relro'
+ option is not present, `DATA_SEGMENT_RELRO_END' does nothing,
+ otherwise `DATA_SEGMENT_ALIGN' is padded so that EXP + OFFSET is
+ aligned to the most commonly used page boundary for particular
+ target. If present in the linker script, it must always come in
+ between `DATA_SEGMENT_ALIGN' and `DATA_SEGMENT_END'.
+
+ . = DATA_SEGMENT_RELRO_END(24, .);
+
+`DEFINED(SYMBOL)'
+ Return 1 if SYMBOL is in the linker global symbol table and is
+ defined before the statement using DEFINED in the script, otherwise
+ return 0. You can use this function to provide default values for
+ symbols. For example, the following script fragment shows how to
+ set a global symbol `begin' to the first location in the `.text'
+ section--but if a symbol called `begin' already existed, its value
+ is preserved:
+
+ SECTIONS { ...
+ .text : {
+ begin = DEFINED(begin) ? begin : . ;
+ ...
+ }
+ ...
+ }
+
+`LENGTH(MEMORY)'
+ Return the length of the memory region named MEMORY.
+
+`LOADADDR(SECTION)'
+ Return the absolute LMA of the named SECTION. (*note Output
+ Section LMA::).
+
+`MAX(EXP1, EXP2)'
+ Returns the maximum of EXP1 and EXP2.
+
+`MIN(EXP1, EXP2)'
+ Returns the minimum of EXP1 and EXP2.
+
+`NEXT(EXP)'
+ Return the next unallocated address that is a multiple of EXP.
+ This function is closely related to `ALIGN(EXP)'; unless you use
+ the `MEMORY' command to define discontinuous memory for the output
+ file, the two functions are equivalent.
+
+`ORIGIN(MEMORY)'
+ Return the origin of the memory region named MEMORY.
+
+`SEGMENT_START(SEGMENT, DEFAULT)'
+ Return the base address of the named SEGMENT. If an explicit
+ value has been given for this segment (with a command-line `-T'
+ option) that value will be returned; otherwise the value will be
+ DEFAULT. At present, the `-T' command-line option can only be
+ used to set the base address for the "text", "data", and "bss"
+ sections, but you can use `SEGMENT_START' with any segment name.
+
+`SIZEOF(SECTION)'
+ Return the size in bytes of the named SECTION, if that section has
+ been allocated. If the section has not been allocated when this is
+ evaluated, the linker will report an error. In the following
+ example, `symbol_1' and `symbol_2' are assigned identical values:
+ SECTIONS{ ...
+ .output {
+ .start = . ;
+ ...
+ .end = . ;
+ }
+ symbol_1 = .end - .start ;
+ symbol_2 = SIZEOF(.output);
+ ... }
+
+`SIZEOF_HEADERS'
+`sizeof_headers'
+ Return the size in bytes of the output file's headers. This is
+ information which appears at the start of the output file. You
+ can use this number when setting the start address of the first
+ section, if you choose, to facilitate paging.
+
+ When producing an ELF output file, if the linker script uses the
+ `SIZEOF_HEADERS' builtin function, the linker must compute the
+ number of program headers before it has determined all the section
+ addresses and sizes. If the linker later discovers that it needs
+ additional program headers, it will report an error `not enough
+ room for program headers'. To avoid this error, you must avoid
+ using the `SIZEOF_HEADERS' function, or you must rework your linker
+ script to avoid forcing the linker to use additional program
+ headers, or you must define the program headers yourself using the
+ `PHDRS' command (*note PHDRS::).
+
+
+File: ld.info, Node: Implicit Linker Scripts, Prev: Expressions, Up: Scripts
+
+3.11 Implicit Linker Scripts
+============================
+
+If you specify a linker input file which the linker can not recognize as
+an object file or an archive file, it will try to read the file as a
+linker script. If the file can not be parsed as a linker script, the
+linker will report an error.
+
+ An implicit linker script will not replace the default linker script.
+
+ Typically an implicit linker script would contain only symbol
+assignments, or the `INPUT', `GROUP', or `VERSION' commands.
+
+ Any input files read because of an implicit linker script will be
+read at the position in the command line where the implicit linker
+script was read. This can affect archive searching.
+
+
+File: ld.info, Node: Machine Dependent, Next: BFD, Prev: Scripts, Up: Top
+
+4 Machine Dependent Features
+****************************
+
+`ld' has additional features on some platforms; the following sections
+describe them. Machines where `ld' has no additional functionality are
+not listed.
+
+* Menu:
+
+
+* H8/300:: `ld' and the H8/300
+
+* i960:: `ld' and the Intel 960 family
+
+* ARM:: `ld' and the ARM family
+
+* HPPA ELF32:: `ld' and HPPA 32-bit ELF
+
+* M68K:: `ld' and the Motorola 68K family
+
+* MMIX:: `ld' and MMIX
+
+* MSP430:: `ld' and MSP430
+
+* M68HC11/68HC12:: `ld' and the Motorola 68HC11 and 68HC12 families
+
+* PowerPC ELF32:: `ld' and PowerPC 32-bit ELF Support
+
+* PowerPC64 ELF64:: `ld' and PowerPC64 64-bit ELF Support
+
+* SPU ELF:: `ld' and SPU ELF Support
+
+* TI COFF:: `ld' and TI COFF
+
+* WIN32:: `ld' and WIN32 (cygwin/mingw)
+
+* Xtensa:: `ld' and Xtensa Processors
+
+
+File: ld.info, Node: H8/300, Next: i960, Up: Machine Dependent
+
+4.1 `ld' and the H8/300
+=======================
+
+For the H8/300, `ld' can perform these global optimizations when you
+specify the `--relax' command-line option.
+
+_relaxing address modes_
+ `ld' finds all `jsr' and `jmp' instructions whose targets are
+ within eight bits, and turns them into eight-bit program-counter
+ relative `bsr' and `bra' instructions, respectively.
+
+_synthesizing instructions_
+ `ld' finds all `mov.b' instructions which use the sixteen-bit
+ absolute address form, but refer to the top page of memory, and
+ changes them to use the eight-bit address form. (That is: the
+ linker turns `mov.b `@'AA:16' into `mov.b `@'AA:8' whenever the
+ address AA is in the top page of memory).
+
+_bit manipulation instructions_
+ `ld' finds all bit manipulation instructions like `band, bclr,
+ biand, bild, bior, bist, bixor, bld, bnot, bor, bset, bst, btst,
+ bxor' which use 32 bit and 16 bit absolute address form, but refer
+ to the top page of memory, and changes them to use the 8 bit
+ address form. (That is: the linker turns `bset #xx:3,`@'AA:32'
+ into `bset #xx:3,`@'AA:8' whenever the address AA is in the top
+ page of memory).
+
+_system control instructions_
+ `ld' finds all `ldc.w, stc.w' instructions which use the 32 bit
+ absolute address form, but refer to the top page of memory, and
+ changes them to use 16 bit address form. (That is: the linker
+ turns `ldc.w `@'AA:32,ccr' into `ldc.w `@'AA:16,ccr' whenever the
+ address AA is in the top page of memory).
+
+
+File: ld.info, Node: i960, Next: ARM, Prev: H8/300, Up: Machine Dependent
+
+4.2 `ld' and the Intel 960 Family
+=================================
+
+You can use the `-AARCHITECTURE' command line option to specify one of
+the two-letter names identifying members of the 960 family; the option
+specifies the desired output target, and warns of any incompatible
+instructions in the input files. It also modifies the linker's search
+strategy for archive libraries, to support the use of libraries
+specific to each particular architecture, by including in the search
+loop names suffixed with the string identifying the architecture.
+
+ For example, if your `ld' command line included `-ACA' as well as
+`-ltry', the linker would look (in its built-in search paths, and in
+any paths you specify with `-L') for a library with the names
+
+ try
+ libtry.a
+ tryca
+ libtryca.a
+
+The first two possibilities would be considered in any event; the last
+two are due to the use of `-ACA'.
+
+ You can meaningfully use `-A' more than once on a command line, since
+the 960 architecture family allows combination of target architectures;
+each use will add another pair of name variants to search for when `-l'
+specifies a library.
+
+ `ld' supports the `--relax' option for the i960 family. If you
+specify `--relax', `ld' finds all `balx' and `calx' instructions whose
+targets are within 24 bits, and turns them into 24-bit program-counter
+relative `bal' and `cal' instructions, respectively. `ld' also turns
+`cal' instructions into `bal' instructions when it determines that the
+target subroutine is a leaf routine (that is, the target subroutine does
+not itself call any subroutines).
+
+ The `--fix-cortex-a8' switch enables a link-time workaround for an
+erratum in certain Cortex-A8 processors. The workaround is enabled by
+default if you are targeting the ARM v7-A architecture profile. It can
+be enabled otherwise by specifying `--fix-cortex-a8', or disabled
+unconditionally by specifying `--no-fix-cortex-a8'.
+
+ The erratum only affects Thumb-2 code. Please contact ARM for
+further details.
+
+ The `--no-merge-exidx-entries' switch disables the merging of
+adjacent exidx entries in debuginfo.
+
+
+File: ld.info, Node: M68HC11/68HC12, Next: PowerPC ELF32, Prev: MSP430, Up: Machine Dependent
+
+4.3 `ld' and the Motorola 68HC11 and 68HC12 families
+====================================================
+
+4.3.1 Linker Relaxation
+-----------------------
+
+For the Motorola 68HC11, `ld' can perform these global optimizations
+when you specify the `--relax' command-line option.
+
+_relaxing address modes_
+ `ld' finds all `jsr' and `jmp' instructions whose targets are
+ within eight bits, and turns them into eight-bit program-counter
+ relative `bsr' and `bra' instructions, respectively.
+
+ `ld' also looks at all 16-bit extended addressing modes and
+ transforms them in a direct addressing mode when the address is in
+ page 0 (between 0 and 0x0ff).
+
+_relaxing gcc instruction group_
+ When `gcc' is called with `-mrelax', it can emit group of
+ instructions that the linker can optimize to use a 68HC11 direct
+ addressing mode. These instructions consists of `bclr' or `bset'
+ instructions.
+
+
+4.3.2 Trampoline Generation
+---------------------------
+
+For 68HC11 and 68HC12, `ld' can generate trampoline code to call a far
+function using a normal `jsr' instruction. The linker will also change
+the relocation to some far function to use the trampoline address
+instead of the function address. This is typically the case when a
+pointer to a function is taken. The pointer will in fact point to the
+function trampoline.
+
+
+File: ld.info, Node: ARM, Next: HPPA ELF32, Prev: i960, Up: Machine Dependent
+
+4.4 `ld' and the ARM family
+===========================
+
+For the ARM, `ld' will generate code stubs to allow functions calls
+between ARM and Thumb code. These stubs only work with code that has
+been compiled and assembled with the `-mthumb-interwork' command line
+option. If it is necessary to link with old ARM object files or
+libraries, which have not been compiled with the -mthumb-interwork
+option then the `--support-old-code' command line switch should be
+given to the linker. This will make it generate larger stub functions
+which will work with non-interworking aware ARM code. Note, however,
+the linker does not support generating stubs for function calls to
+non-interworking aware Thumb code.
+
+ The `--thumb-entry' switch is a duplicate of the generic `--entry'
+switch, in that it sets the program's starting address. But it also
+sets the bottom bit of the address, so that it can be branched to using
+a BX instruction, and the program will start executing in Thumb mode
+straight away.
+
+ The `--use-nul-prefixed-import-tables' switch is specifying, that
+the import tables idata4 and idata5 have to be generated with a zero
+elememt prefix for import libraries. This is the old style to generate
+import tables. By default this option is turned off.
+
+ The `--be8' switch instructs `ld' to generate BE8 format
+executables. This option is only valid when linking big-endian objects.
+The resulting image will contain big-endian data and little-endian code.
+
+ The `R_ARM_TARGET1' relocation is typically used for entries in the
+`.init_array' section. It is interpreted as either `R_ARM_REL32' or
+`R_ARM_ABS32', depending on the target. The `--target1-rel' and
+`--target1-abs' switches override the default.
+
+ The `--target2=type' switch overrides the default definition of the
+`R_ARM_TARGET2' relocation. Valid values for `type', their meanings,
+and target defaults are as follows:
+`rel'
+ `R_ARM_REL32' (arm*-*-elf, arm*-*-eabi)
+
+`abs'
+ `R_ARM_ABS32' (arm*-*-symbianelf)
+
+`got-rel'
+ `R_ARM_GOT_PREL' (arm*-*-linux, arm*-*-*bsd)
+
+ The `R_ARM_V4BX' relocation (defined by the ARM AAELF specification)
+enables objects compiled for the ARMv4 architecture to be
+interworking-safe when linked with other objects compiled for ARMv4t,
+but also allows pure ARMv4 binaries to be built from the same ARMv4
+objects.
+
+ In the latter case, the switch `--fix-v4bx' must be passed to the
+linker, which causes v4t `BX rM' instructions to be rewritten as `MOV
+PC,rM', since v4 processors do not have a `BX' instruction.
+
+ In the former case, the switch should not be used, and `R_ARM_V4BX'
+relocations are ignored.
+
+ Replace `BX rM' instructions identified by `R_ARM_V4BX' relocations
+with a branch to the following veneer:
+
+ TST rM, #1
+ MOVEQ PC, rM
+ BX Rn
+
+ This allows generation of libraries/applications that work on ARMv4
+cores and are still interworking safe. Note that the above veneer
+clobbers the condition flags, so may cause incorrect progrm behavior in
+rare cases.
+
+ The `--use-blx' switch enables the linker to use ARM/Thumb BLX
+instructions (available on ARMv5t and above) in various situations.
+Currently it is used to perform calls via the PLT from Thumb code using
+BLX rather than using BX and a mode-switching stub before each PLT
+entry. This should lead to such calls executing slightly faster.
+
+ This option is enabled implicitly for SymbianOS, so there is no need
+to specify it if you are using that target.
+
+ The `--vfp11-denorm-fix' switch enables a link-time workaround for a
+bug in certain VFP11 coprocessor hardware, which sometimes allows
+instructions with denorm operands (which must be handled by support
+code) to have those operands overwritten by subsequent instructions
+before the support code can read the intended values.
+
+ The bug may be avoided in scalar mode if you allow at least one
+intervening instruction between a VFP11 instruction which uses a
+register and another instruction which writes to the same register, or
+at least two intervening instructions if vector mode is in use. The bug
+only affects full-compliance floating-point mode: you do not need this
+workaround if you are using "runfast" mode. Please contact ARM for
+further details.
+
+ If you know you are using buggy VFP11 hardware, you can enable this
+workaround by specifying the linker option `--vfp-denorm-fix=scalar' if
+you are using the VFP11 scalar mode only, or `--vfp-denorm-fix=vector'
+if you are using vector mode (the latter also works for scalar code).
+The default is `--vfp-denorm-fix=none'.
+
+ If the workaround is enabled, instructions are scanned for
+potentially-troublesome sequences, and a veneer is created for each
+such sequence which may trigger the erratum. The veneer consists of the
+first instruction of the sequence and a branch back to the subsequent
+instruction. The original instruction is then replaced with a branch to
+the veneer. The extra cycles required to call and return from the veneer
+are sufficient to avoid the erratum in both the scalar and vector cases.
+
+ The `--fix-arm1176' switch enables a link-time workaround for an
+erratum in certain ARM1176 processors. The workaround is enabled by
+default if you are targetting ARM v6 (excluding ARM v6T2) or earlier.
+It can be disabled unconditionally by specifying `--no-fix-arm1176'.
+
+ Further information is available in the "ARM1176JZ-S and ARM1176JZF-S
+Programmer Advice Notice" available on the ARM documentaion website at:
+http://infocenter.arm.com/.
+
+ The `--no-enum-size-warning' switch prevents the linker from warning
+when linking object files that specify incompatible EABI enumeration
+size attributes. For example, with this switch enabled, linking of an
+object file using 32-bit enumeration values with another using
+enumeration values fitted into the smallest possible space will not be
+diagnosed.
+
+ The `--no-wchar-size-warning' switch prevents the linker from
+warning when linking object files that specify incompatible EABI
+`wchar_t' size attributes. For example, with this switch enabled,
+linking of an object file using 32-bit `wchar_t' values with another
+using 16-bit `wchar_t' values will not be diagnosed.
+
+ The `--pic-veneer' switch makes the linker use PIC sequences for
+ARM/Thumb interworking veneers, even if the rest of the binary is not
+PIC. This avoids problems on uClinux targets where `--emit-relocs' is
+used to generate relocatable binaries.
+
+ The linker will automatically generate and insert small sequences of
+code into a linked ARM ELF executable whenever an attempt is made to
+perform a function call to a symbol that is too far away. The
+placement of these sequences of instructions - called stubs - is
+controlled by the command line option `--stub-group-size=N'. The
+placement is important because a poor choice can create a need for
+duplicate stubs, increasing the code sizw. The linker will try to
+group stubs together in order to reduce interruptions to the flow of
+code, but it needs guidance as to how big these groups should be and
+where they should be placed.
+
+ The value of `N', the parameter to the `--stub-group-size=' option
+controls where the stub groups are placed. If it is negative then all
+stubs are placed after the first branch that needs them. If it is
+positive then the stubs can be placed either before or after the
+branches that need them. If the value of `N' is 1 (either +1 or -1)
+then the linker will choose exactly where to place groups of stubs,
+using its built in heuristics. A value of `N' greater than 1 (or
+smaller than -1) tells the linker that a single group of stubs can
+service at most `N' bytes from the input sections.
+
+ The default, if `--stub-group-size=' is not specified, is `N = +1'.
+
+ Farcalls stubs insertion is fully supported for the ARM-EABI target
+only, because it relies on object files properties not present
+otherwise.
+
+
+File: ld.info, Node: HPPA ELF32, Next: M68K, Prev: ARM, Up: Machine Dependent
+
+4.5 `ld' and HPPA 32-bit ELF Support
+====================================
+
+When generating a shared library, `ld' will by default generate import
+stubs suitable for use with a single sub-space application. The
+`--multi-subspace' switch causes `ld' to generate export stubs, and
+different (larger) import stubs suitable for use with multiple
+sub-spaces.
+
+ Long branch stubs and import/export stubs are placed by `ld' in stub
+sections located between groups of input sections. `--stub-group-size'
+specifies the maximum size of a group of input sections handled by one
+stub section. Since branch offsets are signed, a stub section may
+serve two groups of input sections, one group before the stub section,
+and one group after it. However, when using conditional branches that
+require stubs, it may be better (for branch prediction) that stub
+sections only serve one group of input sections. A negative value for
+`N' chooses this scheme, ensuring that branches to stubs always use a
+negative offset. Two special values of `N' are recognized, `1' and
+`-1'. These both instruct `ld' to automatically size input section
+groups for the branch types detected, with the same behaviour regarding
+stub placement as other positive or negative values of `N' respectively.
+
+ Note that `--stub-group-size' does not split input sections. A
+single input section larger than the group size specified will of course
+create a larger group (of one section). If input sections are too
+large, it may not be possible for a branch to reach its stub.
+
+
+File: ld.info, Node: M68K, Next: MMIX, Prev: HPPA ELF32, Up: Machine Dependent
+
+4.6 `ld' and the Motorola 68K family
+====================================
+
+The `--got=TYPE' option lets you choose the GOT generation scheme. The
+choices are `single', `negative', `multigot' and `target'. When
+`target' is selected the linker chooses the default GOT generation
+scheme for the current target. `single' tells the linker to generate a
+single GOT with entries only at non-negative offsets. `negative'
+instructs the linker to generate a single GOT with entries at both
+negative and positive offsets. Not all environments support such GOTs.
+`multigot' allows the linker to generate several GOTs in the output
+file. All GOT references from a single input object file access the
+same GOT, but references from different input object files might access
+different GOTs. Not all environments support such GOTs.
+
+
+File: ld.info, Node: MMIX, Next: MSP430, Prev: M68K, Up: Machine Dependent
+
+4.7 `ld' and MMIX
+=================
+
+For MMIX, there is a choice of generating `ELF' object files or `mmo'
+object files when linking. The simulator `mmix' understands the `mmo'
+format. The binutils `objcopy' utility can translate between the two
+formats.
+
+ There is one special section, the `.MMIX.reg_contents' section.
+Contents in this section is assumed to correspond to that of global
+registers, and symbols referring to it are translated to special
+symbols, equal to registers. In a final link, the start address of the
+`.MMIX.reg_contents' section corresponds to the first allocated global
+register multiplied by 8. Register `$255' is not included in this
+section; it is always set to the program entry, which is at the symbol
+`Main' for `mmo' files.
+
+ Global symbols with the prefix `__.MMIX.start.', for example
+`__.MMIX.start..text' and `__.MMIX.start..data' are special. The
+default linker script uses these to set the default start address of a
+section.
+
+ Initial and trailing multiples of zero-valued 32-bit words in a
+section, are left out from an mmo file.
+
+
+File: ld.info, Node: MSP430, Next: M68HC11/68HC12, Prev: MMIX, Up: Machine Dependent
+
+4.8 `ld' and MSP430
+===================
+
+For the MSP430 it is possible to select the MPU architecture. The flag
+`-m [mpu type]' will select an appropriate linker script for selected
+MPU type. (To get a list of known MPUs just pass `-m help' option to
+the linker).
+
+ The linker will recognize some extra sections which are MSP430
+specific:
+
+``.vectors''
+ Defines a portion of ROM where interrupt vectors located.
+
+``.bootloader''
+ Defines the bootloader portion of the ROM (if applicable). Any
+ code in this section will be uploaded to the MPU.
+
+``.infomem''
+ Defines an information memory section (if applicable). Any code in
+ this section will be uploaded to the MPU.
+
+``.infomemnobits''
+ This is the same as the `.infomem' section except that any code in
+ this section will not be uploaded to the MPU.
+
+``.noinit''
+ Denotes a portion of RAM located above `.bss' section.
+
+ The last two sections are used by gcc.
+
+
+File: ld.info, Node: PowerPC ELF32, Next: PowerPC64 ELF64, Prev: M68HC11/68HC12, Up: Machine Dependent
+
+4.9 `ld' and PowerPC 32-bit ELF Support
+=======================================
+
+Branches on PowerPC processors are limited to a signed 26-bit
+displacement, which may result in `ld' giving `relocation truncated to
+fit' errors with very large programs. `--relax' enables the generation
+of trampolines that can access the entire 32-bit address space. These
+trampolines are inserted at section boundaries, so may not themselves
+be reachable if an input section exceeds 33M in size. You may combine
+`-r' and `--relax' to add trampolines in a partial link. In that case
+both branches to undefined symbols and inter-section branches are also
+considered potentially out of range, and trampolines inserted.
+
+`--bss-plt'
+ Current PowerPC GCC accepts a `-msecure-plt' option that generates
+ code capable of using a newer PLT and GOT layout that has the
+ security advantage of no executable section ever needing to be
+ writable and no writable section ever being executable. PowerPC
+ `ld' will generate this layout, including stubs to access the PLT,
+ if all input files (including startup and static libraries) were
+ compiled with `-msecure-plt'. `--bss-plt' forces the old BSS PLT
+ (and GOT layout) which can give slightly better performance.
+
+`--secure-plt'
+ `ld' will use the new PLT and GOT layout if it is linking new
+ `-fpic' or `-fPIC' code, but does not do so automatically when
+ linking non-PIC code. This option requests the new PLT and GOT
+ layout. A warning will be given if some object file requires the
+ old style BSS PLT.
+
+`--sdata-got'
+ The new secure PLT and GOT are placed differently relative to other
+ sections compared to older BSS PLT and GOT placement. The
+ location of `.plt' must change because the new secure PLT is an
+ initialized section while the old PLT is uninitialized. The
+ reason for the `.got' change is more subtle: The new placement
+ allows `.got' to be read-only in applications linked with `-z
+ relro -z now'. However, this placement means that `.sdata' cannot
+ always be used in shared libraries, because the PowerPC ABI
+ accesses `.sdata' in shared libraries from the GOT pointer.
+ `--sdata-got' forces the old GOT placement. PowerPC GCC doesn't
+ use `.sdata' in shared libraries, so this option is really only
+ useful for other compilers that may do so.
+
+`--emit-stub-syms'
+ This option causes `ld' to label linker stubs with a local symbol
+ that encodes the stub type and destination.
+
+`--no-tls-optimize'
+ PowerPC `ld' normally performs some optimization of code sequences
+ used to access Thread-Local Storage. Use this option to disable
+ the optimization.
+
+
+File: ld.info, Node: PowerPC64 ELF64, Next: SPU ELF, Prev: PowerPC ELF32, Up: Machine Dependent
+
+4.10 `ld' and PowerPC64 64-bit ELF Support
+==========================================
+
+`--stub-group-size'
+ Long branch stubs, PLT call stubs and TOC adjusting stubs are
+ placed by `ld' in stub sections located between groups of input
+ sections. `--stub-group-size' specifies the maximum size of a
+ group of input sections handled by one stub section. Since branch
+ offsets are signed, a stub section may serve two groups of input
+ sections, one group before the stub section, and one group after
+ it. However, when using conditional branches that require stubs,
+ it may be better (for branch prediction) that stub sections only
+ serve one group of input sections. A negative value for `N'
+ chooses this scheme, ensuring that branches to stubs always use a
+ negative offset. Two special values of `N' are recognized, `1'
+ and `-1'. These both instruct `ld' to automatically size input
+ section groups for the branch types detected, with the same
+ behaviour regarding stub placement as other positive or negative
+ values of `N' respectively.
+
+ Note that `--stub-group-size' does not split input sections. A
+ single input section larger than the group size specified will of
+ course create a larger group (of one section). If input sections
+ are too large, it may not be possible for a branch to reach its
+ stub.
+
+`--emit-stub-syms'
+ This option causes `ld' to label linker stubs with a local symbol
+ that encodes the stub type and destination.
+
+`--dotsyms, --no-dotsyms'
+ These two options control how `ld' interprets version patterns in
+ a version script. Older PowerPC64 compilers emitted both a
+ function descriptor symbol with the same name as the function, and
+ a code entry symbol with the name prefixed by a dot (`.'). To
+ properly version a function `foo', the version script thus needs
+ to control both `foo' and `.foo'. The option `--dotsyms', on by
+ default, automatically adds the required dot-prefixed patterns.
+ Use `--no-dotsyms' to disable this feature.
+
+`--no-tls-optimize'
+ PowerPC64 `ld' normally performs some optimization of code
+ sequences used to access Thread-Local Storage. Use this option to
+ disable the optimization.
+
+`--no-opd-optimize'
+ PowerPC64 `ld' normally removes `.opd' section entries
+ corresponding to deleted link-once functions, or functions removed
+ by the action of `--gc-sections' or linker script `/DISCARD/'.
+ Use this option to disable `.opd' optimization.
+
+`--non-overlapping-opd'
+ Some PowerPC64 compilers have an option to generate compressed
+ `.opd' entries spaced 16 bytes apart, overlapping the third word,
+ the static chain pointer (unused in C) with the first word of the
+ next entry. This option expands such entries to the full 24 bytes.
+
+`--no-toc-optimize'
+ PowerPC64 `ld' normally removes unused `.toc' section entries.
+ Such entries are detected by examining relocations that reference
+ the TOC in code sections. A reloc in a deleted code section marks
+ a TOC word as unneeded, while a reloc in a kept code section marks
+ a TOC word as needed. Since the TOC may reference itself, TOC
+ relocs are also examined. TOC words marked as both needed and
+ unneeded will of course be kept. TOC words without any referencing
+ reloc are assumed to be part of a multi-word entry, and are kept or
+ discarded as per the nearest marked preceding word. This works
+ reliably for compiler generated code, but may be incorrect if
+ assembly code is used to insert TOC entries. Use this option to
+ disable the optimization.
+
+`--no-multi-toc'
+ By default, PowerPC64 GCC generates code for a TOC model where TOC
+ entries are accessed with a 16-bit offset from r2. This limits the
+ total TOC size to 64K. PowerPC64 `ld' extends this limit by
+ grouping code sections such that each group uses less than 64K for
+ its TOC entries, then inserts r2 adjusting stubs between
+ inter-group calls. `ld' does not split apart input sections, so
+ cannot help if a single input file has a `.toc' section that
+ exceeds 64K, most likely from linking multiple files with `ld -r'.
+ Use this option to turn off this feature.
+
+
+File: ld.info, Node: SPU ELF, Next: TI COFF, Prev: PowerPC64 ELF64, Up: Machine Dependent
+
+4.11 `ld' and SPU ELF Support
+=============================
+
+`--plugin'
+ This option marks an executable as a PIC plugin module.
+
+`--no-overlays'
+ Normally, `ld' recognizes calls to functions within overlay
+ regions, and redirects such calls to an overlay manager via a stub.
+ `ld' also provides a built-in overlay manager. This option turns
+ off all this special overlay handling.
+
+`--emit-stub-syms'
+ This option causes `ld' to label overlay stubs with a local symbol
+ that encodes the stub type and destination.
+
+`--extra-overlay-stubs'
+ This option causes `ld' to add overlay call stubs on all function
+ calls out of overlay regions. Normally stubs are not added on
+ calls to non-overlay regions.
+
+`--local-store=lo:hi'
+ `ld' usually checks that a final executable for SPU fits in the
+ address range 0 to 256k. This option may be used to change the
+ range. Disable the check entirely with `--local-store=0:0'.
+
+`--stack-analysis'
+ SPU local store space is limited. Over-allocation of stack space
+ unnecessarily limits space available for code and data, while
+ under-allocation results in runtime failures. If given this
+ option, `ld' will provide an estimate of maximum stack usage.
+ `ld' does this by examining symbols in code sections to determine
+ the extents of functions, and looking at function prologues for
+ stack adjusting instructions. A call-graph is created by looking
+ for relocations on branch instructions. The graph is then searched
+ for the maximum stack usage path. Note that this analysis does not
+ find calls made via function pointers, and does not handle
+ recursion and other cycles in the call graph. Stack usage may be
+ under-estimated if your code makes such calls. Also, stack usage
+ for dynamic allocation, e.g. alloca, will not be detected. If a
+ link map is requested, detailed information about each function's
+ stack usage and calls will be given.
+
+`--emit-stack-syms'
+ This option, if given along with `--stack-analysis' will result in
+ `ld' emitting stack sizing symbols for each function. These take
+ the form `__stack_<function_name>' for global functions, and
+ `__stack_<number>_<function_name>' for static functions.
+ `<number>' is the section id in hex. The value of such symbols is
+ the stack requirement for the corresponding function. The symbol
+ size will be zero, type `STT_NOTYPE', binding `STB_LOCAL', and
+ section `SHN_ABS'.
+
+
+File: ld.info, Node: TI COFF, Next: WIN32, Prev: SPU ELF, Up: Machine Dependent
+
+4.12 `ld''s Support for Various TI COFF Versions
+================================================
+
+The `--format' switch allows selection of one of the various TI COFF
+versions. The latest of this writing is 2; versions 0 and 1 are also
+supported. The TI COFF versions also vary in header byte-order format;
+`ld' will read any version or byte order, but the output header format
+depends on the default specified by the specific target.
+
+
+File: ld.info, Node: WIN32, Next: Xtensa, Prev: TI COFF, Up: Machine Dependent
+
+4.13 `ld' and WIN32 (cygwin/mingw)
+==================================
+
+This section describes some of the win32 specific `ld' issues. See
+*Note Command Line Options: Options. for detailed description of the
+command line options mentioned here.
+
+_import libraries_
+ The standard Windows linker creates and uses so-called import
+ libraries, which contains information for linking to dll's. They
+ are regular static archives and are handled as any other static
+ archive. The cygwin and mingw ports of `ld' have specific support
+ for creating such libraries provided with the `--out-implib'
+ command line option.
+
+_exporting DLL symbols_
+ The cygwin/mingw `ld' has several ways to export symbols for dll's.
+
+ _using auto-export functionality_
+ By default `ld' exports symbols with the auto-export
+ functionality, which is controlled by the following command
+ line options:
+
+ * -export-all-symbols [This is the default]
+
+ * -exclude-symbols
+
+ * -exclude-libs
+
+ * -exclude-modules-for-implib
+
+ * -version-script
+
+ When auto-export is in operation, `ld' will export all the
+ non-local (global and common) symbols it finds in a DLL, with
+ the exception of a few symbols known to belong to the
+ system's runtime and libraries. As it will often not be
+ desirable to export all of a DLL's symbols, which may include
+ private functions that are not part of any public interface,
+ the command-line options listed above may be used to filter
+ symbols out from the list for exporting. The `--output-def'
+ option can be used in order to see the final list of exported
+ symbols with all exclusions taken into effect.
+
+ If `--export-all-symbols' is not given explicitly on the
+ command line, then the default auto-export behavior will be
+ _disabled_ if either of the following are true:
+
+ * A DEF file is used.
+
+ * Any symbol in any object file was marked with the
+ __declspec(dllexport) attribute.
+
+ _using a DEF file_
+ Another way of exporting symbols is using a DEF file. A DEF
+ file is an ASCII file containing definitions of symbols which
+ should be exported when a dll is created. Usually it is
+ named `<dll name>.def' and is added as any other object file
+ to the linker's command line. The file's name must end in
+ `.def' or `.DEF'.
+
+ gcc -o <output> <objectfiles> <dll name>.def
+
+ Using a DEF file turns off the normal auto-export behavior,
+ unless the `--export-all-symbols' option is also used.
+
+ Here is an example of a DEF file for a shared library called
+ `xyz.dll':
+
+ LIBRARY "xyz.dll" BASE=0x20000000
+
+ EXPORTS
+ foo
+ bar
+ _bar = bar
+ another_foo = abc.dll.afoo
+ var1 DATA
+ doo = foo == foo2
+ eoo DATA == var1
+
+ This example defines a DLL with a non-default base address
+ and seven symbols in the export table. The third exported
+ symbol `_bar' is an alias for the second. The fourth symbol,
+ `another_foo' is resolved by "forwarding" to another module
+ and treating it as an alias for `afoo' exported from the DLL
+ `abc.dll'. The final symbol `var1' is declared to be a data
+ object. The `doo' symbol in export library is an alias of
+ `foo', which gets the string name in export table `foo2'. The
+ `eoo' symbol is an data export symbol, which gets in export
+ table the name `var1'.
+
+ The optional `LIBRARY <name>' command indicates the _internal_
+ name of the output DLL. If `<name>' does not include a suffix,
+ the default library suffix, `.DLL' is appended.
+
+ When the .DEF file is used to build an application, rather
+ than a library, the `NAME <name>' command should be used
+ instead of `LIBRARY'. If `<name>' does not include a suffix,
+ the default executable suffix, `.EXE' is appended.
+
+ With either `LIBRARY <name>' or `NAME <name>' the optional
+ specification `BASE = <number>' may be used to specify a
+ non-default base address for the image.
+
+ If neither `LIBRARY <name>' nor `NAME <name>' is specified,
+ or they specify an empty string, the internal name is the
+ same as the filename specified on the command line.
+
+ The complete specification of an export symbol is:
+
+ EXPORTS
+ ( ( ( <name1> [ = <name2> ] )
+ | ( <name1> = <module-name> . <external-name>))
+ [ @ <integer> ] [NONAME] [DATA] [CONSTANT] [PRIVATE] [== <name3>] ) *
+
+ Declares `<name1>' as an exported symbol from the DLL, or
+ declares `<name1>' as an exported alias for `<name2>'; or
+ declares `<name1>' as a "forward" alias for the symbol
+ `<external-name>' in the DLL `<module-name>'. Optionally,
+ the symbol may be exported by the specified ordinal
+ `<integer>' alias. The optional `<name3>' is the to be used
+ string in import/export table for the symbol.
+
+ The optional keywords that follow the declaration indicate:
+
+ `NONAME': Do not put the symbol name in the DLL's export
+ table. It will still be exported by its ordinal alias
+ (either the value specified by the .def specification or,
+ otherwise, the value assigned by the linker). The symbol
+ name, however, does remain visible in the import library (if
+ any), unless `PRIVATE' is also specified.
+
+ `DATA': The symbol is a variable or object, rather than a
+ function. The import lib will export only an indirect
+ reference to `foo' as the symbol `_imp__foo' (ie, `foo' must
+ be resolved as `*_imp__foo').
+
+ `CONSTANT': Like `DATA', but put the undecorated `foo' as
+ well as `_imp__foo' into the import library. Both refer to the
+ read-only import address table's pointer to the variable, not
+ to the variable itself. This can be dangerous. If the user
+ code fails to add the `dllimport' attribute and also fails to
+ explicitly add the extra indirection that the use of the
+ attribute enforces, the application will behave unexpectedly.
+
+ `PRIVATE': Put the symbol in the DLL's export table, but do
+ not put it into the static import library used to resolve
+ imports at link time. The symbol can still be imported using
+ the `LoadLibrary/GetProcAddress' API at runtime or by by
+ using the GNU ld extension of linking directly to the DLL
+ without an import library.
+
+ See ld/deffilep.y in the binutils sources for the full
+ specification of other DEF file statements
+
+ While linking a shared dll, `ld' is able to create a DEF file
+ with the `--output-def <file>' command line option.
+
+ _Using decorations_
+ Another way of marking symbols for export is to modify the
+ source code itself, so that when building the DLL each symbol
+ to be exported is declared as:
+
+ __declspec(dllexport) int a_variable
+ __declspec(dllexport) void a_function(int with_args)
+
+ All such symbols will be exported from the DLL. If, however,
+ any of the object files in the DLL contain symbols decorated
+ in this way, then the normal auto-export behavior is
+ disabled, unless the `--export-all-symbols' option is also
+ used.
+
+ Note that object files that wish to access these symbols must
+ _not_ decorate them with dllexport. Instead, they should use
+ dllimport, instead:
+
+ __declspec(dllimport) int a_variable
+ __declspec(dllimport) void a_function(int with_args)
+
+ This complicates the structure of library header files,
+ because when included by the library itself the header must
+ declare the variables and functions as dllexport, but when
+ included by client code the header must declare them as
+ dllimport. There are a number of idioms that are typically
+ used to do this; often client code can omit the __declspec()
+ declaration completely. See `--enable-auto-import' and
+ `automatic data imports' for more information.
+
+_automatic data imports_
+ The standard Windows dll format supports data imports from dlls
+ only by adding special decorations (dllimport/dllexport), which
+ let the compiler produce specific assembler instructions to deal
+ with this issue. This increases the effort necessary to port
+ existing Un*x code to these platforms, especially for large c++
+ libraries and applications. The auto-import feature, which was
+ initially provided by Paul Sokolovsky, allows one to omit the
+ decorations to achieve a behavior that conforms to that on
+ POSIX/Un*x platforms. This feature is enabled with the
+ `--enable-auto-import' command-line option, although it is enabled
+ by default on cygwin/mingw. The `--enable-auto-import' option
+ itself now serves mainly to suppress any warnings that are
+ ordinarily emitted when linked objects trigger the feature's use.
+
+ auto-import of variables does not always work flawlessly without
+ additional assistance. Sometimes, you will see this message
+
+ "variable '<var>' can't be auto-imported. Please read the
+ documentation for ld's `--enable-auto-import' for details."
+
+ The `--enable-auto-import' documentation explains why this error
+ occurs, and several methods that can be used to overcome this
+ difficulty. One of these methods is the _runtime pseudo-relocs_
+ feature, described below.
+
+ For complex variables imported from DLLs (such as structs or
+ classes), object files typically contain a base address for the
+ variable and an offset (_addend_) within the variable-to specify a
+ particular field or public member, for instance. Unfortunately,
+ the runtime loader used in win32 environments is incapable of
+ fixing these references at runtime without the additional
+ information supplied by dllimport/dllexport decorations. The
+ standard auto-import feature described above is unable to resolve
+ these references.
+
+ The `--enable-runtime-pseudo-relocs' switch allows these
+ references to be resolved without error, while leaving the task of
+ adjusting the references themselves (with their non-zero addends)
+ to specialized code provided by the runtime environment. Recent
+ versions of the cygwin and mingw environments and compilers
+ provide this runtime support; older versions do not. However, the
+ support is only necessary on the developer's platform; the
+ compiled result will run without error on an older system.
+
+ `--enable-runtime-pseudo-relocs' is not the default; it must be
+ explicitly enabled as needed.
+
+_direct linking to a dll_
+ The cygwin/mingw ports of `ld' support the direct linking,
+ including data symbols, to a dll without the usage of any import
+ libraries. This is much faster and uses much less memory than
+ does the traditional import library method, especially when
+ linking large libraries or applications. When `ld' creates an
+ import lib, each function or variable exported from the dll is
+ stored in its own bfd, even though a single bfd could contain many
+ exports. The overhead involved in storing, loading, and
+ processing so many bfd's is quite large, and explains the
+ tremendous time, memory, and storage needed to link against
+ particularly large or complex libraries when using import libs.
+
+ Linking directly to a dll uses no extra command-line switches
+ other than `-L' and `-l', because `ld' already searches for a
+ number of names to match each library. All that is needed from
+ the developer's perspective is an understanding of this search, in
+ order to force ld to select the dll instead of an import library.
+
+ For instance, when ld is called with the argument `-lxxx' it will
+ attempt to find, in the first directory of its search path,
+
+ libxxx.dll.a
+ xxx.dll.a
+ libxxx.a
+ xxx.lib
+ cygxxx.dll (*)
+ libxxx.dll
+ xxx.dll
+
+ before moving on to the next directory in the search path.
+
+ (*) Actually, this is not `cygxxx.dll' but in fact is
+ `<prefix>xxx.dll', where `<prefix>' is set by the `ld' option
+ `--dll-search-prefix=<prefix>'. In the case of cygwin, the
+ standard gcc spec file includes `--dll-search-prefix=cyg', so in
+ effect we actually search for `cygxxx.dll'.
+
+ Other win32-based unix environments, such as mingw or pw32, may
+ use other `<prefix>'es, although at present only cygwin makes use
+ of this feature. It was originally intended to help avoid name
+ conflicts among dll's built for the various win32/un*x
+ environments, so that (for example) two versions of a zlib dll
+ could coexist on the same machine.
+
+ The generic cygwin/mingw path layout uses a `bin' directory for
+ applications and dll's and a `lib' directory for the import
+ libraries (using cygwin nomenclature):
+
+ bin/
+ cygxxx.dll
+ lib/
+ libxxx.dll.a (in case of dll's)
+ libxxx.a (in case of static archive)
+
+ Linking directly to a dll without using the import library can be
+ done two ways:
+
+ 1. Use the dll directly by adding the `bin' path to the link line
+ gcc -Wl,-verbose -o a.exe -L../bin/ -lxxx
+
+ However, as the dll's often have version numbers appended to their
+ names (`cygncurses-5.dll') this will often fail, unless one
+ specifies `-L../bin -lncurses-5' to include the version. Import
+ libs are generally not versioned, and do not have this difficulty.
+
+ 2. Create a symbolic link from the dll to a file in the `lib'
+ directory according to the above mentioned search pattern. This
+ should be used to avoid unwanted changes in the tools needed for
+ making the app/dll.
+
+ ln -s bin/cygxxx.dll lib/[cyg|lib|]xxx.dll[.a]
+
+ Then you can link without any make environment changes.
+
+ gcc -Wl,-verbose -o a.exe -L../lib/ -lxxx
+
+ This technique also avoids the version number problems, because
+ the following is perfectly legal
+
+ bin/
+ cygxxx-5.dll
+ lib/
+ libxxx.dll.a -> ../bin/cygxxx-5.dll
+
+ Linking directly to a dll without using an import lib will work
+ even when auto-import features are exercised, and even when
+ `--enable-runtime-pseudo-relocs' is used.
+
+ Given the improvements in speed and memory usage, one might
+ justifiably wonder why import libraries are used at all. There
+ are three reasons:
+
+ 1. Until recently, the link-directly-to-dll functionality did _not_
+ work with auto-imported data.
+
+ 2. Sometimes it is necessary to include pure static objects within
+ the import library (which otherwise contains only bfd's for
+ indirection symbols that point to the exports of a dll). Again,
+ the import lib for the cygwin kernel makes use of this ability,
+ and it is not possible to do this without an import lib.
+
+ 3. Symbol aliases can only be resolved using an import lib. This
+ is critical when linking against OS-supplied dll's (eg, the win32
+ API) in which symbols are usually exported as undecorated aliases
+ of their stdcall-decorated assembly names.
+
+ So, import libs are not going away. But the ability to replace
+ true import libs with a simple symbolic link to (or a copy of) a
+ dll, in many cases, is a useful addition to the suite of tools
+ binutils makes available to the win32 developer. Given the
+ massive improvements in memory requirements during linking, storage
+ requirements, and linking speed, we expect that many developers
+ will soon begin to use this feature whenever possible.
+
+_symbol aliasing_
+
+ _adding additional names_
+ Sometimes, it is useful to export symbols with additional
+ names. A symbol `foo' will be exported as `foo', but it can
+ also be exported as `_foo' by using special directives in the
+ DEF file when creating the dll. This will affect also the
+ optional created import library. Consider the following DEF
+ file:
+
+ LIBRARY "xyz.dll" BASE=0x61000000
+
+ EXPORTS
+ foo
+ _foo = foo
+
+ The line `_foo = foo' maps the symbol `foo' to `_foo'.
+
+ Another method for creating a symbol alias is to create it in
+ the source code using the "weak" attribute:
+
+ void foo () { /* Do something. */; }
+ void _foo () __attribute__ ((weak, alias ("foo")));
+
+ See the gcc manual for more information about attributes and
+ weak symbols.
+
+ _renaming symbols_
+ Sometimes it is useful to rename exports. For instance, the
+ cygwin kernel does this regularly. A symbol `_foo' can be
+ exported as `foo' but not as `_foo' by using special
+ directives in the DEF file. (This will also affect the import
+ library, if it is created). In the following example:
+
+ LIBRARY "xyz.dll" BASE=0x61000000
+
+ EXPORTS
+ _foo = foo
+
+ The line `_foo = foo' maps the exported symbol `foo' to
+ `_foo'.
+
+ Note: using a DEF file disables the default auto-export behavior,
+ unless the `--export-all-symbols' command line option is used.
+ If, however, you are trying to rename symbols, then you should list
+ _all_ desired exports in the DEF file, including the symbols that
+ are not being renamed, and do _not_ use the `--export-all-symbols'
+ option. If you list only the renamed symbols in the DEF file, and
+ use `--export-all-symbols' to handle the other symbols, then the
+ both the new names _and_ the original names for the renamed
+ symbols will be exported. In effect, you'd be aliasing those
+ symbols, not renaming them, which is probably not what you wanted.
+
+_weak externals_
+ The Windows object format, PE, specifies a form of weak symbols
+ called weak externals. When a weak symbol is linked and the
+ symbol is not defined, the weak symbol becomes an alias for some
+ other symbol. There are three variants of weak externals:
+ * Definition is searched for in objects and libraries,
+ historically called lazy externals.
+
+ * Definition is searched for only in other objects, not in
+ libraries. This form is not presently implemented.
+
+ * No search; the symbol is an alias. This form is not presently
+ implemented.
+ As a GNU extension, weak symbols that do not specify an alternate
+ symbol are supported. If the symbol is undefined when linking,
+ the symbol uses a default value.
+
+_aligned common symbols_
+ As a GNU extension to the PE file format, it is possible to
+ specify the desired alignment for a common symbol. This
+ information is conveyed from the assembler or compiler to the
+ linker by means of GNU-specific commands carried in the object
+ file's `.drectve' section, which are recognized by `ld' and
+ respected when laying out the common symbols. Native tools will
+ be able to process object files employing this GNU extension, but
+ will fail to respect the alignment instructions, and may issue
+ noisy warnings about unknown linker directives.
+
+
+File: ld.info, Node: Xtensa, Prev: WIN32, Up: Machine Dependent
+
+4.14 `ld' and Xtensa Processors
+===============================
+
+The default `ld' behavior for Xtensa processors is to interpret
+`SECTIONS' commands so that lists of explicitly named sections in a
+specification with a wildcard file will be interleaved when necessary to
+keep literal pools within the range of PC-relative load offsets. For
+example, with the command:
+
+ SECTIONS
+ {
+ .text : {
+ *(.literal .text)
+ }
+ }
+
+`ld' may interleave some of the `.literal' and `.text' sections from
+different object files to ensure that the literal pools are within the
+range of PC-relative load offsets. A valid interleaving might place
+the `.literal' sections from an initial group of files followed by the
+`.text' sections of that group of files. Then, the `.literal' sections
+from the rest of the files and the `.text' sections from the rest of
+the files would follow.
+
+ Relaxation is enabled by default for the Xtensa version of `ld' and
+provides two important link-time optimizations. The first optimization
+is to combine identical literal values to reduce code size. A redundant
+literal will be removed and all the `L32R' instructions that use it
+will be changed to reference an identical literal, as long as the
+location of the replacement literal is within the offset range of all
+the `L32R' instructions. The second optimization is to remove
+unnecessary overhead from assembler-generated "longcall" sequences of
+`L32R'/`CALLXN' when the target functions are within range of direct
+`CALLN' instructions.
+
+ For each of these cases where an indirect call sequence can be
+optimized to a direct call, the linker will change the `CALLXN'
+instruction to a `CALLN' instruction, remove the `L32R' instruction,
+and remove the literal referenced by the `L32R' instruction if it is
+not used for anything else. Removing the `L32R' instruction always
+reduces code size but can potentially hurt performance by changing the
+alignment of subsequent branch targets. By default, the linker will
+always preserve alignments, either by switching some instructions
+between 24-bit encodings and the equivalent density instructions or by
+inserting a no-op in place of the `L32R' instruction that was removed.
+If code size is more important than performance, the `--size-opt'
+option can be used to prevent the linker from widening density
+instructions or inserting no-ops, except in a few cases where no-ops
+are required for correctness.
+
+ The following Xtensa-specific command-line options can be used to
+control the linker:
+
+`--size-opt'
+ When optimizing indirect calls to direct calls, optimize for code
+ size more than performance. With this option, the linker will not
+ insert no-ops or widen density instructions to preserve branch
+ target alignment. There may still be some cases where no-ops are
+ required to preserve the correctness of the code.
+
+
+File: ld.info, Node: BFD, Next: Reporting Bugs, Prev: Machine Dependent, Up: Top
+
+5 BFD
+*****
+
+The linker accesses object and archive files using the BFD libraries.
+These libraries allow the linker to use the same routines to operate on
+object files whatever the object file format. A different object file
+format can be supported simply by creating a new BFD back end and adding
+it to the library. To conserve runtime memory, however, the linker and
+associated tools are usually configured to support only a subset of the
+object file formats available. You can use `objdump -i' (*note
+objdump: (binutils.info)objdump.) to list all the formats available for
+your configuration.
+
+ As with most implementations, BFD is a compromise between several
+conflicting requirements. The major factor influencing BFD design was
+efficiency: any time used converting between formats is time which
+would not have been spent had BFD not been involved. This is partly
+offset by abstraction payback; since BFD simplifies applications and
+back ends, more time and care may be spent optimizing algorithms for a
+greater speed.
+
+ One minor artifact of the BFD solution which you should bear in mind
+is the potential for information loss. There are two places where
+useful information can be lost using the BFD mechanism: during
+conversion and during output. *Note BFD information loss::.
+
+* Menu:
+
+* BFD outline:: How it works: an outline of BFD
+
+
+File: ld.info, Node: BFD outline, Up: BFD
+
+5.1 How It Works: An Outline of BFD
+===================================
+
+When an object file is opened, BFD subroutines automatically determine
+the format of the input object file. They then build a descriptor in
+memory with pointers to routines that will be used to access elements of
+the object file's data structures.
+
+ As different information from the object files is required, BFD
+reads from different sections of the file and processes them. For
+example, a very common operation for the linker is processing symbol
+tables. Each BFD back end provides a routine for converting between
+the object file's representation of symbols and an internal canonical
+format. When the linker asks for the symbol table of an object file, it
+calls through a memory pointer to the routine from the relevant BFD
+back end which reads and converts the table into a canonical form. The
+linker then operates upon the canonical form. When the link is finished
+and the linker writes the output file's symbol table, another BFD back
+end routine is called to take the newly created symbol table and
+convert it into the chosen output format.
+
+* Menu:
+
+* BFD information loss:: Information Loss
+* Canonical format:: The BFD canonical object-file format
+
+
+File: ld.info, Node: BFD information loss, Next: Canonical format, Up: BFD outline
+
+5.1.1 Information Loss
+----------------------
+
+_Information can be lost during output._ The output formats supported
+by BFD do not provide identical facilities, and information which can
+be described in one form has nowhere to go in another format. One
+example of this is alignment information in `b.out'. There is nowhere
+in an `a.out' format file to store alignment information on the
+contained data, so when a file is linked from `b.out' and an `a.out'
+image is produced, alignment information will not propagate to the
+output file. (The linker will still use the alignment information
+internally, so the link is performed correctly).
+
+ Another example is COFF section names. COFF files may contain an
+unlimited number of sections, each one with a textual section name. If
+the target of the link is a format which does not have many sections
+(e.g., `a.out') or has sections without names (e.g., the Oasys format),
+the link cannot be done simply. You can circumvent this problem by
+describing the desired input-to-output section mapping with the linker
+command language.
+
+ _Information can be lost during canonicalization._ The BFD internal
+canonical form of the external formats is not exhaustive; there are
+structures in input formats for which there is no direct representation
+internally. This means that the BFD back ends cannot maintain all
+possible data richness through the transformation between external to
+internal and back to external formats.
+
+ This limitation is only a problem when an application reads one
+format and writes another. Each BFD back end is responsible for
+maintaining as much data as possible, and the internal BFD canonical
+form has structures which are opaque to the BFD core, and exported only
+to the back ends. When a file is read in one format, the canonical form
+is generated for BFD and the application. At the same time, the back
+end saves away any information which may otherwise be lost. If the data
+is then written back in the same format, the back end routine will be
+able to use the canonical form provided by the BFD core as well as the
+information it prepared earlier. Since there is a great deal of
+commonality between back ends, there is no information lost when
+linking or copying big endian COFF to little endian COFF, or `a.out' to
+`b.out'. When a mixture of formats is linked, the information is only
+lost from the files whose format differs from the destination.
+
+
+File: ld.info, Node: Canonical format, Prev: BFD information loss, Up: BFD outline
+
+5.1.2 The BFD canonical object-file format
+------------------------------------------
+
+The greatest potential for loss of information occurs when there is the
+least overlap between the information provided by the source format,
+that stored by the canonical format, and that needed by the destination
+format. A brief description of the canonical form may help you
+understand which kinds of data you can count on preserving across
+conversions.
+
+_files_
+ Information stored on a per-file basis includes target machine
+ architecture, particular implementation format type, a demand
+ pageable bit, and a write protected bit. Information like Unix
+ magic numbers is not stored here--only the magic numbers' meaning,
+ so a `ZMAGIC' file would have both the demand pageable bit and the
+ write protected text bit set. The byte order of the target is
+ stored on a per-file basis, so that big- and little-endian object
+ files may be used with one another.
+
+_sections_
+ Each section in the input file contains the name of the section,
+ the section's original address in the object file, size and
+ alignment information, various flags, and pointers into other BFD
+ data structures.
+
+_symbols_
+ Each symbol contains a pointer to the information for the object
+ file which originally defined it, its name, its value, and various
+ flag bits. When a BFD back end reads in a symbol table, it
+ relocates all symbols to make them relative to the base of the
+ section where they were defined. Doing this ensures that each
+ symbol points to its containing section. Each symbol also has a
+ varying amount of hidden private data for the BFD back end. Since
+ the symbol points to the original file, the private data format
+ for that symbol is accessible. `ld' can operate on a collection
+ of symbols of wildly different formats without problems.
+
+ Normal global and simple local symbols are maintained on output,
+ so an output file (no matter its format) will retain symbols
+ pointing to functions and to global, static, and common variables.
+ Some symbol information is not worth retaining; in `a.out', type
+ information is stored in the symbol table as long symbol names.
+ This information would be useless to most COFF debuggers; the
+ linker has command line switches to allow users to throw it away.
+
+ There is one word of type information within the symbol, so if the
+ format supports symbol type information within symbols (for
+ example, COFF, IEEE, Oasys) and the type is simple enough to fit
+ within one word (nearly everything but aggregates), the
+ information will be preserved.
+
+_relocation level_
+ Each canonical BFD relocation record contains a pointer to the
+ symbol to relocate to, the offset of the data to relocate, the
+ section the data is in, and a pointer to a relocation type
+ descriptor. Relocation is performed by passing messages through
+ the relocation type descriptor and the symbol pointer. Therefore,
+ relocations can be performed on output data using a relocation
+ method that is only available in one of the input formats. For
+ instance, Oasys provides a byte relocation format. A relocation
+ record requesting this relocation type would point indirectly to a
+ routine to perform this, so the relocation may be performed on a
+ byte being written to a 68k COFF file, even though 68k COFF has no
+ such relocation type.
+
+_line numbers_
+ Object formats can contain, for debugging purposes, some form of
+ mapping between symbols, source line numbers, and addresses in the
+ output file. These addresses have to be relocated along with the
+ symbol information. Each symbol with an associated list of line
+ number records points to the first record of the list. The head
+ of a line number list consists of a pointer to the symbol, which
+ allows finding out the address of the function whose line number
+ is being described. The rest of the list is made up of pairs:
+ offsets into the section and line numbers. Any format which can
+ simply derive this information can pass it successfully between
+ formats (COFF, IEEE and Oasys).
+
+
+File: ld.info, Node: Reporting Bugs, Next: MRI, Prev: BFD, Up: Top
+
+6 Reporting Bugs
+****************
+
+Your bug reports play an essential role in making `ld' reliable.
+
+ Reporting a bug may help you by bringing a solution to your problem,
+or it may not. But in any case the principal function of a bug report
+is to help the entire community by making the next version of `ld' work
+better. Bug reports are your contribution to the maintenance of `ld'.
+
+ In order for a bug report to serve its purpose, you must include the
+information that enables us to fix the bug.
+
+* Menu:
+
+* Bug Criteria:: Have you found a bug?
+* Bug Reporting:: How to report bugs
+
+
+File: ld.info, Node: Bug Criteria, Next: Bug Reporting, Up: Reporting Bugs
+
+6.1 Have You Found a Bug?
+=========================
+
+If you are not sure whether you have found a bug, here are some
+guidelines:
+
+ * If the linker gets a fatal signal, for any input whatever, that is
+ a `ld' bug. Reliable linkers never crash.
+
+ * If `ld' produces an error message for valid input, that is a bug.
+
+ * If `ld' does not produce an error message for invalid input, that
+ may be a bug. In the general case, the linker can not verify that
+ object files are correct.
+
+ * If you are an experienced user of linkers, your suggestions for
+ improvement of `ld' are welcome in any case.
+
+
+File: ld.info, Node: Bug Reporting, Prev: Bug Criteria, Up: Reporting Bugs
+
+6.2 How to Report Bugs
+======================
+
+A number of companies and individuals offer support for GNU products.
+If you obtained `ld' from a support organization, we recommend you
+contact that organization first.
+
+ You can find contact information for many support companies and
+individuals in the file `etc/SERVICE' in the GNU Emacs distribution.
+
+ Otherwise, send bug reports for `ld' to
+`http://www.sourceware.org/bugzilla/'.
+
+ The fundamental principle of reporting bugs usefully is this:
+*report all the facts*. If you are not sure whether to state a fact or
+leave it out, state it!
+
+ Often people omit facts because they think they know what causes the
+problem and assume that some details do not matter. Thus, you might
+assume that the name of a symbol you use in an example does not matter.
+Well, probably it does not, but one cannot be sure. Perhaps the bug
+is a stray memory reference which happens to fetch from the location
+where that name is stored in memory; perhaps, if the name were
+different, the contents of that location would fool the linker into
+doing the right thing despite the bug. Play it safe and give a
+specific, complete example. That is the easiest thing for you to do,
+and the most helpful.
+
+ Keep in mind that the purpose of a bug report is to enable us to fix
+the bug if 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?" 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:
+
+ * The version of `ld'. `ld' announces it if you start it with the
+ `--version' argument.
+
+ Without this, we will not know whether there is any point in
+ looking for the bug in the current version of `ld'.
+
+ * Any patches you may have applied to the `ld' source, including any
+ patches made to the `BFD' library.
+
+ * The type of machine you are using, and the operating system name
+ and version number.
+
+ * What compiler (and its version) was used to compile `ld'--e.g.
+ "`gcc-2.7'".
+
+ * The command arguments you gave the linker to link your example and
+ observe the bug. To guarantee you will not omit something
+ important, list them all. A copy of the Makefile (or the output
+ from make) is sufficient.
+
+ If we were to try to guess the arguments, we would probably guess
+ wrong and then we might not encounter the bug.
+
+ * A complete input file, or set of input files, that will reproduce
+ the bug. It is generally most helpful to send the actual object
+ files provided that they are reasonably small. Say no more than
+ 10K. For bigger files you can either make them available by FTP
+ or HTTP or else state that you are willing to send the object
+ file(s) to whomever requests them. (Note - your email will be
+ going to a mailing list, so we do not want to clog it up with
+ large attachments). But small attachments are best.
+
+ If the source files were assembled using `gas' or compiled using
+ `gcc', then it may be OK to send the source files rather than the
+ object files. In this case, be sure to say exactly what version of
+ `gas' or `gcc' was used to produce the object files. Also say how
+ `gas' or `gcc' were configured.
+
+ * A description of what behavior you observe that you believe is
+ incorrect. For example, "It gets a fatal signal."
+
+ Of course, if the bug is that `ld' gets a fatal signal, then we
+ will certainly notice it. But if the bug is incorrect output, we
+ might not notice unless it is glaringly wrong. You might as well
+ not give us a chance to make a mistake.
+
+ Even if the problem you experience is a fatal signal, you should
+ still say so explicitly. Suppose something strange is going on,
+ such as, your copy of `ld' is out of sync, or you have encountered
+ a bug in the C library on your system. (This has happened!) Your
+ copy might crash and ours would not. If you told us to expect a
+ crash, then when ours fails to crash, we would know that the bug
+ was not happening for us. If you had not told us to expect a
+ crash, then we would not be able to draw any conclusion from our
+ observations.
+
+ * If you wish to suggest changes to the `ld' source, send us context
+ diffs, as generated by `diff' with the `-u', `-c', or `-p' option.
+ Always send diffs from the old file to the new file. If you even
+ discuss something in the `ld' source, refer to it by context, not
+ by line number.
+
+ The line numbers in our development sources will not match those
+ in your sources. Your line numbers would convey no useful
+ information to us.
+
+ Here are some things that are not necessary:
+
+ * A description of the envelope of the bug.
+
+ Often people who encounter a bug spend a lot of time investigating
+ which changes to the input file will make the bug go away and which
+ changes will not affect it.
+
+ This is often time consuming and not very useful, because the way
+ we will find the bug is by running a single example under the
+ debugger with breakpoints, not by pure deduction from a series of
+ examples. We recommend that you save your time for something else.
+
+ Of course, if you can find a simpler example to report _instead_
+ of the original one, that is a convenience for us. Errors in the
+ output will be easier to spot, running under the debugger will take
+ less time, and so on.
+
+ However, simplification is not vital; if you do not want to do
+ this, report the bug anyway and send us the entire test case you
+ used.
+
+ * A patch for the bug.
+
+ A patch for the bug does help us if it is a good one. But do not
+ omit the necessary information, such as the test case, on the
+ assumption that a patch is all we need. We might see problems
+ with your patch and decide to fix the problem another way, or we
+ might not understand it at all.
+
+ Sometimes with a program as complicated as `ld' it is very hard to
+ construct an example that will make the program follow a certain
+ path through the code. If you do not send us the example, we will
+ not be able to construct one, so we will not be able to verify
+ that the bug is fixed.
+
+ And if we cannot understand what bug you are trying to fix, or why
+ your patch should be an improvement, we will not install it. A
+ test case will help us to understand.
+
+ * A guess about what the bug is or what it depends on.
+
+ Such guesses are usually wrong. Even we cannot guess right about
+ such things without first using the debugger to find the facts.
+
+
+File: ld.info, Node: MRI, Next: GNU Free Documentation License, Prev: Reporting Bugs, Up: Top
+
+Appendix A MRI Compatible Script Files
+**************************************
+
+To aid users making the transition to GNU `ld' from the MRI linker,
+`ld' can use MRI compatible linker scripts as an alternative to the
+more general-purpose linker scripting language described in *Note
+Scripts::. MRI compatible linker scripts have a much simpler command
+set than the scripting language otherwise used with `ld'. GNU `ld'
+supports the most commonly used MRI linker commands; these commands are
+described here.
+
+ In general, MRI scripts aren't of much use with the `a.out' object
+file format, since it only has three sections and MRI scripts lack some
+features to make use of them.
+
+ You can specify a file containing an MRI-compatible script using the
+`-c' command-line option.
+
+ Each command in an MRI-compatible script occupies its own line; each
+command line starts with the keyword that identifies the command (though
+blank lines are also allowed for punctuation). If a line of an
+MRI-compatible script begins with an unrecognized keyword, `ld' issues
+a warning message, but continues processing the script.
+
+ Lines beginning with `*' are comments.
+
+ You can write these commands using all upper-case letters, or all
+lower case; for example, `chip' is the same as `CHIP'. The following
+list shows only the upper-case form of each command.
+
+`ABSOLUTE SECNAME'
+`ABSOLUTE SECNAME, SECNAME, ... SECNAME'
+ Normally, `ld' includes in the output file all sections from all
+ the input files. However, in an MRI-compatible script, you can
+ use the `ABSOLUTE' command to restrict the sections that will be
+ present in your output program. If the `ABSOLUTE' command is used
+ at all in a script, then only the sections named explicitly in
+ `ABSOLUTE' commands will appear in the linker output. You can
+ still use other input sections (whatever you select on the command
+ line, or using `LOAD') to resolve addresses in the output file.
+
+`ALIAS OUT-SECNAME, IN-SECNAME'
+ Use this command to place the data from input section IN-SECNAME
+ in a section called OUT-SECNAME in the linker output file.
+
+ IN-SECNAME may be an integer.
+
+`ALIGN SECNAME = EXPRESSION'
+ Align the section called SECNAME to EXPRESSION. The EXPRESSION
+ should be a power of two.
+
+`BASE EXPRESSION'
+ Use the value of EXPRESSION as the lowest address (other than
+ absolute addresses) in the output file.
+
+`CHIP EXPRESSION'
+`CHIP EXPRESSION, EXPRESSION'
+ This command does nothing; it is accepted only for compatibility.
+
+`END'
+ This command does nothing whatever; it's only accepted for
+ compatibility.
+
+`FORMAT OUTPUT-FORMAT'
+ Similar to the `OUTPUT_FORMAT' command in the more general linker
+ language, but restricted to one of these output formats:
+
+ 1. S-records, if OUTPUT-FORMAT is `S'
+
+ 2. IEEE, if OUTPUT-FORMAT is `IEEE'
+
+ 3. COFF (the `coff-m68k' variant in BFD), if OUTPUT-FORMAT is
+ `COFF'
+
+`LIST ANYTHING...'
+ Print (to the standard output file) a link map, as produced by the
+ `ld' command-line option `-M'.
+
+ The keyword `LIST' may be followed by anything on the same line,
+ with no change in its effect.
+
+`LOAD FILENAME'
+`LOAD FILENAME, FILENAME, ... FILENAME'
+ Include one or more object file FILENAME in the link; this has the
+ same effect as specifying FILENAME directly on the `ld' command
+ line.
+
+`NAME OUTPUT-NAME'
+ OUTPUT-NAME is the name for the program produced by `ld'; the
+ MRI-compatible command `NAME' is equivalent to the command-line
+ option `-o' or the general script language command `OUTPUT'.
+
+`ORDER SECNAME, SECNAME, ... SECNAME'
+`ORDER SECNAME SECNAME SECNAME'
+ Normally, `ld' orders the sections in its output file in the order
+ in which they first appear in the input files. In an
+ MRI-compatible script, you can override this ordering with the
+ `ORDER' command. The sections you list with `ORDER' will appear
+ first in your output file, in the order specified.
+
+`PUBLIC NAME=EXPRESSION'
+`PUBLIC NAME,EXPRESSION'
+`PUBLIC NAME EXPRESSION'
+ Supply a value (EXPRESSION) for external symbol NAME used in the
+ linker input files.
+
+`SECT SECNAME, EXPRESSION'
+`SECT SECNAME=EXPRESSION'
+`SECT SECNAME EXPRESSION'
+ You can use any of these three forms of the `SECT' command to
+ specify the start address (EXPRESSION) for section SECNAME. If
+ you have more than one `SECT' statement for the same SECNAME, only
+ the _first_ sets the start address.
+
+
+File: ld.info, Node: GNU Free Documentation License, Next: LD Index, Prev: MRI, Up: Top
+
+Appendix B GNU Free Documentation License
+*****************************************
+
+ Version 1.3, 3 November 2008
+
+ Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
+ `http://fsf.org/'
+
+ 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
+ functional and useful 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, in any medium,
+ that contains a notice placed by the copyright holder saying it
+ can be distributed under the terms of this License. Such a notice
+ grants a world-wide, royalty-free license, unlimited in duration,
+ to use that work under the conditions stated herein. The
+ "Document", below, refers to any such manual or work. Any member
+ of the public is a licensee, and is addressed as "you". You
+ accept the license if you copy, modify or distribute the work in a
+ way requiring permission under copyright law.
+
+ 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. (Thus, 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. If a section does not fit the above definition of
+ Secondary then it is not allowed to be designated as Invariant.
+ The Document may contain zero Invariant Sections. If the Document
+ does not identify any Invariant Sections then there are none.
+
+ 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
+ Front-Cover Text may be at most 5 words, and a Back-Cover Text may
+ be at most 25 words.
+
+ A "Transparent" copy of the Document means a machine-readable copy,
+ represented in a format whose specification is available to the
+ general public, that is suitable for revising the document
+ 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, or absence of
+ markup, has been arranged to thwart or discourage subsequent
+ modification by readers is not Transparent. An image format is
+ not Transparent if used for any substantial amount of text. 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, PostScript or PDF designed for
+ human modification. Examples of transparent image formats include
+ PNG, XCF and JPG. Opaque formats include 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, PostScript or PDF
+ 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.
+
+ The "publisher" means any person or entity that distributes copies
+ of the Document to the public.
+
+ A section "Entitled XYZ" means a named subunit of the Document
+ whose title either is precisely XYZ or contains XYZ in parentheses
+ following text that translates XYZ in another language. (Here XYZ
+ stands for a specific section name mentioned below, such as
+ "Acknowledgements", "Dedications", "Endorsements", or "History".)
+ To "Preserve the Title" of such a section when you modify the
+ Document means that it remains a section "Entitled XYZ" according
+ to this definition.
+
+ The Document may include Warranty Disclaimers next to the notice
+ which states that this License applies to the Document. These
+ Warranty Disclaimers are considered to be included by reference in
+ this License, but only as regards disclaiming warranties: any other
+ implication that these Warranty Disclaimers may have is void and
+ has no effect on the meaning of this License.
+
+ 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 (or copies in media that commonly
+ have printed covers) 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 computer-network location from
+ which the general network-using public has access to download
+ using public-standard network protocols a complete Transparent
+ copy of the Document, free of added material. 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 fewer than five), unless they release you
+ from this requirement.
+
+ 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", Preserve 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. For any section Entitled "Acknowledgements" or "Dedications",
+ Preserve the Title of the section, 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 to be Entitled
+ "Endorsements" or to conflict in title with any Invariant
+ Section.
+
+ O. Preserve any Warranty Disclaimers.
+
+ 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, and that you preserve all
+ their Warranty Disclaimers.
+
+ 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, is called an "aggregate" if the
+ copyright resulting from the compilation is not used to limit the
+ legal rights of the compilation's users beyond what the individual
+ works permit. When the Document is included in an aggregate, this
+ License does not apply to the other works in the aggregate which
+ 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 half
+ of the entire aggregate, the Document's Cover Texts may be placed
+ on covers that bracket the Document within the aggregate, or the
+ electronic equivalent of covers if the Document is in electronic
+ form. Otherwise they must appear on printed covers that bracket
+ 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, and all the license notices in the
+ Document, and any Warranty Disclaimers, provided that you also
+ include the original English version of this License and the
+ original versions of those notices and disclaimers. In case of a
+ disagreement between the translation and the original version of
+ this License or a notice or disclaimer, the original version will
+ prevail.
+
+ If a section in the Document is Entitled "Acknowledgements",
+ "Dedications", or "History", the requirement (section 4) to
+ Preserve its Title (section 1) will typically require changing the
+ actual title.
+
+ 9. TERMINATION
+
+ You may not copy, modify, sublicense, or distribute the Document
+ except as expressly provided under this License. Any attempt
+ otherwise to copy, modify, sublicense, or distribute it is void,
+ and will automatically terminate your rights under this License.
+
+ However, if you cease all violation of this License, then your
+ license from a particular copyright holder is reinstated (a)
+ provisionally, unless and until the copyright holder explicitly
+ and finally terminates your license, and (b) permanently, if the
+ copyright holder fails to notify you of the violation by some
+ reasonable means prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+ reinstated permanently if the copyright holder notifies you of the
+ violation by some reasonable means, this is the first time you have
+ received notice of violation of this License (for any work) from
+ that copyright holder, and you cure the violation prior to 30 days
+ after your receipt of the notice.
+
+ Termination of your rights under this section does not terminate
+ the licenses of parties who have received copies or rights from
+ you under this License. If your rights have been terminated and
+ not permanently reinstated, receipt of a copy of some or all of
+ the same material does not give you any rights to use it.
+
+ 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. If the Document specifies that a proxy
+ can decide which future versions of this License can be used, that
+ proxy's public statement of acceptance of a version permanently
+ authorizes you to choose that version for the Document.
+
+ 11. RELICENSING
+
+ "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
+ World Wide Web server that publishes copyrightable works and also
+ provides prominent facilities for anybody to edit those works. A
+ public wiki that anybody can edit is an example of such a server.
+ A "Massive Multiauthor Collaboration" (or "MMC") contained in the
+ site means any set of copyrightable works thus published on the MMC
+ site.
+
+ "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
+ license published by Creative Commons Corporation, a not-for-profit
+ corporation with a principal place of business in San Francisco,
+ California, as well as future copyleft versions of that license
+ published by that same organization.
+
+ "Incorporate" means to publish or republish a Document, in whole or
+ in part, as part of another Document.
+
+ An MMC is "eligible for relicensing" if it is licensed under this
+ License, and if all works that were first published under this
+ License somewhere other than this MMC, and subsequently
+ incorporated in whole or in part into the MMC, (1) had no cover
+ texts or invariant sections, and (2) were thus incorporated prior
+ to November 1, 2008.
+
+ The operator of an MMC Site may republish an MMC contained in the
+ site under CC-BY-SA on the same site at any time before August 1,
+ 2009, provided the MMC is eligible for relicensing.
+
+
+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:
+
+ 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.3
+ or any later version published by the Free Software Foundation;
+ with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
+ Texts. A copy of the license is included in the section entitled ``GNU
+ Free Documentation License''.
+
+ If you have Invariant Sections, Front-Cover Texts and Back-Cover
+Texts, replace the "with...Texts." line with this:
+
+ with the Invariant Sections being LIST THEIR TITLES, with
+ the Front-Cover Texts being LIST, and with the Back-Cover Texts
+ being LIST.
+
+ If you have Invariant Sections without Cover Texts, or some other
+combination of the three, merge those two alternatives to suit the
+situation.
+
+ 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.
+
+
+File: ld.info, Node: LD Index, Prev: GNU Free Documentation License, Up: Top
+
+LD Index
+********
+
+
+* Menu:
+
+* ": Symbols. (line 6)
+* -(: Options. (line 696)
+* --accept-unknown-input-arch: Options. (line 714)
+* --add-needed: Options. (line 738)
+* --add-stdcall-alias: Options. (line 1583)
+* --allow-multiple-definition: Options. (line 989)
+* --allow-shlib-undefined: Options. (line 995)
+* --architecture=ARCH: Options. (line 123)
+* --as-needed: Options. (line 724)
+* --audit AUDITLIB: Options. (line 112)
+* --auxiliary=NAME: Options. (line 255)
+* --bank-window: Options. (line 2015)
+* --base-file: Options. (line 1588)
+* --be8: ARM. (line 28)
+* --bss-plt: PowerPC ELF32. (line 16)
+* --build-id: Options. (line 1545)
+* --build-id=STYLE: Options. (line 1545)
+* --check-sections: Options. (line 817)
+* --copy-dt-needed-entries: Options. (line 829)
+* --cref: Options. (line 849)
+* --default-imported-symver: Options. (line 1032)
+* --default-script=SCRIPT: Options. (line 541)
+* --default-symver: Options. (line 1028)
+* --defsym=SYMBOL=EXP: Options. (line 877)
+* --demangle[=STYLE]: Options. (line 890)
+* --depaudit AUDITLIB: Options. (line 177)
+* --disable-auto-image-base: Options. (line 1767)
+* --disable-auto-import: Options. (line 1902)
+* --disable-long-section-names: Options. (line 1598)
+* --disable-new-dtags: Options. (line 1508)
+* --disable-runtime-pseudo-reloc: Options. (line 1915)
+* --disable-stdcall-fixup: Options. (line 1620)
+* --discard-all: Options. (line 587)
+* --discard-locals: Options. (line 591)
+* --dll: Options. (line 1593)
+* --dll-search-prefix: Options. (line 1773)
+* --dotsyms: PowerPC64 ELF64. (line 33)
+* --dsbt-index: Options. (line 1992)
+* --dsbt-size: Options. (line 1987)
+* --dynamic-linker=FILE: Options. (line 903)
+* --dynamic-list-cpp-new: Options. (line 809)
+* --dynamic-list-cpp-typeinfo: Options. (line 813)
+* --dynamic-list-data: Options. (line 806)
+* --dynamic-list=DYNAMIC-LIST-FILE: Options. (line 793)
+* --dynamicbase: Options. (line 1951)
+* --eh-frame-hdr: Options. (line 1499)
+* --emit-relocs: Options. (line 476)
+* --emit-stack-syms: SPU ELF. (line 46)
+* --emit-stub-syms <1>: SPU ELF. (line 15)
+* --emit-stub-syms <2>: PowerPC ELF32. (line 47)
+* --emit-stub-syms: PowerPC64 ELF64. (line 29)
+* --enable-auto-image-base: Options. (line 1759)
+* --enable-auto-import: Options. (line 1782)
+* --enable-extra-pe-debug: Options. (line 1920)
+* --enable-long-section-names: Options. (line 1598)
+* --enable-new-dtags: Options. (line 1508)
+* --enable-runtime-pseudo-reloc: Options. (line 1907)
+* --enable-stdcall-fixup: Options. (line 1620)
+* --entry=ENTRY: Options. (line 187)
+* --error-unresolved-symbols: Options. (line 1452)
+* --exclude-all-symbols: Options. (line 1674)
+* --exclude-libs: Options. (line 197)
+* --exclude-modules-for-implib: Options. (line 208)
+* --exclude-symbols: Options. (line 1668)
+* --export-all-symbols: Options. (line 1644)
+* --export-dynamic: Options. (line 221)
+* --extra-overlay-stubs: SPU ELF. (line 19)
+* --fatal-warnings: Options. (line 910)
+* --file-alignment: Options. (line 1678)
+* --filter=NAME: Options. (line 276)
+* --fix-arm1176: ARM. (line 111)
+* --fix-cortex-a8: i960. (line 39)
+* --fix-v4bx: ARM. (line 49)
+* --fix-v4bx-interworking: ARM. (line 62)
+* --force-dynamic: Options. (line 485)
+* --force-exe-suffix: Options. (line 915)
+* --forceinteg: Options. (line 1956)
+* --format=FORMAT: Options. (line 134)
+* --format=VERSION: TI COFF. (line 6)
+* --gc-sections: Options. (line 925)
+* --got: Options. (line 2028)
+* --got=TYPE: M68K. (line 6)
+* --gpsize=VALUE: Options. (line 309)
+* --hash-size=NUMBER: Options. (line 1517)
+* --hash-style=STYLE: Options. (line 1525)
+* --heap: Options. (line 1684)
+* --help: Options. (line 962)
+* --image-base: Options. (line 1691)
+* --just-symbols=FILE: Options. (line 508)
+* --kill-at: Options. (line 1700)
+* --large-address-aware: Options. (line 1705)
+* --ld-generated-unwind-info: Options. (line 1503)
+* --leading-underscore: Options. (line 1638)
+* --library-path=DIR: Options. (line 368)
+* --library=NAMESPEC: Options. (line 335)
+* --local-store=lo:hi: SPU ELF. (line 24)
+* --major-image-version: Options. (line 1714)
+* --major-os-version: Options. (line 1719)
+* --major-subsystem-version: Options. (line 1723)
+* --merge-exidx-entries: i960. (line 48)
+* --minor-image-version: Options. (line 1728)
+* --minor-os-version: Options. (line 1733)
+* --minor-subsystem-version: Options. (line 1737)
+* --mri-script=MRI-CMDFILE: Options. (line 158)
+* --multi-subspace: HPPA ELF32. (line 6)
+* --nmagic: Options. (line 439)
+* --no-accept-unknown-input-arch: Options. (line 714)
+* --no-add-needed: Options. (line 738)
+* --no-allow-shlib-undefined: Options. (line 995)
+* --no-as-needed: Options. (line 724)
+* --no-bind: Options. (line 1970)
+* --no-check-sections: Options. (line 817)
+* --no-copy-dt-needed-entries: Options. (line 829)
+* --no-define-common: Options. (line 861)
+* --no-demangle: Options. (line 890)
+* --no-dotsyms: PowerPC64 ELF64. (line 33)
+* --no-enum-size-warning: ARM. (line 120)
+* --no-export-dynamic: Options. (line 221)
+* --no-fatal-warnings: Options. (line 910)
+* --no-fix-arm1176: ARM. (line 111)
+* --no-fix-cortex-a8: i960. (line 39)
+* --no-gc-sections: Options. (line 925)
+* --no-isolation: Options. (line 1963)
+* --no-keep-memory: Options. (line 974)
+* --no-leading-underscore: Options. (line 1638)
+* --no-merge-exidx-entries <1>: Options. (line 1999)
+* --no-merge-exidx-entries: i960. (line 48)
+* --no-multi-toc: PowerPC64 ELF64. (line 74)
+* --no-omagic: Options. (line 454)
+* --no-opd-optimize: PowerPC64 ELF64. (line 48)
+* --no-overlays: SPU ELF. (line 9)
+* --no-print-gc-sections: Options. (line 947)
+* --no-seh: Options. (line 1966)
+* --no-tls-optimize <1>: PowerPC ELF32. (line 51)
+* --no-tls-optimize: PowerPC64 ELF64. (line 43)
+* --no-toc-optimize: PowerPC64 ELF64. (line 60)
+* --no-trampoline: Options. (line 2009)
+* --no-undefined: Options. (line 981)
+* --no-undefined-version: Options. (line 1023)
+* --no-warn-mismatch: Options. (line 1036)
+* --no-warn-search-mismatch: Options. (line 1045)
+* --no-wchar-size-warning: ARM. (line 127)
+* --no-whole-archive: Options. (line 1049)
+* --noinhibit-exec: Options. (line 1053)
+* --non-overlapping-opd: PowerPC64 ELF64. (line 54)
+* --nxcompat: Options. (line 1959)
+* --oformat=OUTPUT-FORMAT: Options. (line 1065)
+* --omagic: Options. (line 445)
+* --out-implib: Options. (line 1750)
+* --output-def: Options. (line 1742)
+* --output=OUTPUT: Options. (line 460)
+* --pic-executable: Options. (line 1078)
+* --pic-veneer: ARM. (line 133)
+* --plugin: SPU ELF. (line 6)
+* --print-gc-sections: Options. (line 947)
+* --print-map: Options. (line 402)
+* --print-output-format: Options. (line 956)
+* --reduce-memory-overheads: Options. (line 1531)
+* --relax: Options. (line 1094)
+* --relax on i960: i960. (line 31)
+* --relax on PowerPC: PowerPC ELF32. (line 6)
+* --relax on Xtensa: Xtensa. (line 27)
+* --relocatable: Options. (line 489)
+* --retain-symbols-file=FILENAME: Options. (line 1120)
+* --script=SCRIPT: Options. (line 532)
+* --sdata-got: PowerPC ELF32. (line 33)
+* --section-alignment: Options. (line 1925)
+* --section-start=SECTIONNAME=ORG: Options. (line 1276)
+* --secure-plt: PowerPC ELF32. (line 26)
+* --sort-common: Options. (line 1218)
+* --sort-section=alignment: Options. (line 1233)
+* --sort-section=name: Options. (line 1229)
+* --split-by-file: Options. (line 1237)
+* --split-by-reloc: Options. (line 1242)
+* --stack: Options. (line 1931)
+* --stack-analysis: SPU ELF. (line 29)
+* --stats: Options. (line 1255)
+* --strip-all: Options. (line 519)
+* --strip-debug: Options. (line 523)
+* --stub-group-size: PowerPC64 ELF64. (line 6)
+* --stub-group-size=N <1>: HPPA ELF32. (line 12)
+* --stub-group-size=N: ARM. (line 138)
+* --subsystem: Options. (line 1938)
+* --support-old-code: ARM. (line 6)
+* --sysroot=DIRECTORY: Options. (line 1259)
+* --target-help: Options. (line 966)
+* --target1-abs: ARM. (line 32)
+* --target1-rel: ARM. (line 32)
+* --target2=TYPE: ARM. (line 37)
+* --thumb-entry=ENTRY: ARM. (line 17)
+* --trace: Options. (line 528)
+* --trace-symbol=SYMBOL: Options. (line 597)
+* --traditional-format: Options. (line 1264)
+* --tsaware: Options. (line 1976)
+* --undefined=SYMBOL: Options. (line 554)
+* --unique[=SECTION]: Options. (line 572)
+* --unresolved-symbols: Options. (line 1295)
+* --use-blx: ARM. (line 74)
+* --use-nul-prefixed-import-tables: ARM. (line 23)
+* --verbose[=NUMBER]: Options. (line 1324)
+* --version: Options. (line 581)
+* --version-script=VERSION-SCRIPTFILE: Options. (line 1332)
+* --vfp11-denorm-fix: ARM. (line 83)
+* --warn-alternate-em: Options. (line 1444)
+* --warn-common: Options. (line 1343)
+* --warn-constructors: Options. (line 1411)
+* --warn-multiple-gp: Options. (line 1416)
+* --warn-once: Options. (line 1430)
+* --warn-section-align: Options. (line 1434)
+* --warn-shared-textrel: Options. (line 1441)
+* --warn-unresolved-symbols: Options. (line 1447)
+* --wdmdriver: Options. (line 1973)
+* --whole-archive: Options. (line 1456)
+* --wrap=SYMBOL: Options. (line 1470)
+* -A ARCH: Options. (line 122)
+* -a KEYWORD: Options. (line 105)
+* -assert KEYWORD: Options. (line 745)
+* -b FORMAT: Options. (line 134)
+* -Bdynamic: Options. (line 748)
+* -Bgroup: Options. (line 758)
+* -Bshareable: Options. (line 1211)
+* -Bstatic: Options. (line 765)
+* -Bsymbolic: Options. (line 780)
+* -Bsymbolic-functions: Options. (line 787)
+* -c MRI-CMDFILE: Options. (line 158)
+* -call_shared: Options. (line 748)
+* -d: Options. (line 168)
+* -dc: Options. (line 168)
+* -dn: Options. (line 765)
+* -dp: Options. (line 168)
+* -dT SCRIPT: Options. (line 541)
+* -dy: Options. (line 748)
+* -E: Options. (line 221)
+* -e ENTRY: Options. (line 187)
+* -EB: Options. (line 248)
+* -EL: Options. (line 251)
+* -F NAME: Options. (line 276)
+* -f NAME: Options. (line 255)
+* -fini=NAME: Options. (line 300)
+* -g: Options. (line 306)
+* -G VALUE: Options. (line 309)
+* -h NAME: Options. (line 317)
+* -i: Options. (line 326)
+* -IFILE: Options. (line 903)
+* -init=NAME: Options. (line 329)
+* -L DIR: Options. (line 368)
+* -l NAMESPEC: Options. (line 335)
+* -M: Options. (line 402)
+* -m EMULATION: Options. (line 392)
+* -Map=MAPFILE: Options. (line 970)
+* -n: Options. (line 439)
+* -N: Options. (line 445)
+* -no-relax: Options. (line 1094)
+* -non_shared: Options. (line 765)
+* -nostdlib: Options. (line 1059)
+* -O LEVEL: Options. (line 466)
+* -o OUTPUT: Options. (line 460)
+* -P AUDITLIB: Options. (line 177)
+* -pie: Options. (line 1078)
+* -q: Options. (line 476)
+* -qmagic: Options. (line 1088)
+* -Qy: Options. (line 1091)
+* -r: Options. (line 489)
+* -R FILE: Options. (line 508)
+* -rpath-link=DIR: Options. (line 1156)
+* -rpath=DIR: Options. (line 1134)
+* -s: Options. (line 519)
+* -S: Options. (line 523)
+* -shared: Options. (line 1211)
+* -soname=NAME: Options. (line 317)
+* -static: Options. (line 765)
+* -t: Options. (line 528)
+* -T SCRIPT: Options. (line 532)
+* -Tbss=ORG: Options. (line 1285)
+* -Tdata=ORG: Options. (line 1285)
+* -Ttext-segment=ORG: Options. (line 1291)
+* -Ttext=ORG: Options. (line 1285)
+* -u SYMBOL: Options. (line 554)
+* -Ur: Options. (line 562)
+* -v: Options. (line 581)
+* -V: Options. (line 581)
+* -x: Options. (line 587)
+* -X: Options. (line 591)
+* -Y PATH: Options. (line 606)
+* -y SYMBOL: Options. (line 597)
+* -z defs: Options. (line 981)
+* -z KEYWORD: Options. (line 610)
+* -z muldefs: Options. (line 989)
+* .: Location Counter. (line 6)
+* /DISCARD/: Output Section Discarding.
+ (line 21)
+* :PHDR: Output Section Phdr.
+ (line 6)
+* =FILLEXP: Output Section Fill.
+ (line 6)
+* >REGION: Output Section Region.
+ (line 6)
+* [COMMON]: Input Section Common.
+ (line 29)
+* ABSOLUTE (MRI): MRI. (line 33)
+* absolute and relocatable symbols: Expression Section. (line 6)
+* absolute expressions: Expression Section. (line 6)
+* ABSOLUTE(EXP): Builtin Functions. (line 10)
+* ADDR(SECTION): Builtin Functions. (line 17)
+* address, section: Output Section Address.
+ (line 6)
+* ALIAS (MRI): MRI. (line 44)
+* ALIGN (MRI): MRI. (line 50)
+* align expression: Builtin Functions. (line 38)
+* align location counter: Builtin Functions. (line 38)
+* ALIGN(ALIGN): Builtin Functions. (line 38)
+* ALIGN(EXP,ALIGN): Builtin Functions. (line 38)
+* ALIGN(SECTION_ALIGN): Forced Output Alignment.
+ (line 6)
+* aligned common symbols: WIN32. (line 424)
+* ALIGNOF(SECTION): Builtin Functions. (line 64)
+* allocating memory: MEMORY. (line 6)
+* architecture: Miscellaneous Commands.
+ (line 72)
+* architectures: Options. (line 122)
+* archive files, from cmd line: Options. (line 335)
+* archive search path in linker script: File Commands. (line 74)
+* arithmetic: Expressions. (line 6)
+* arithmetic operators: Operators. (line 6)
+* ARM interworking support: ARM. (line 6)
+* ARM1176 erratum workaround: ARM. (line 111)
+* AS_NEEDED(FILES): File Commands. (line 54)
+* ASSERT: Miscellaneous Commands.
+ (line 9)
+* assertion in linker script: Miscellaneous Commands.
+ (line 9)
+* assignment in scripts: Assignments. (line 6)
+* AT(LMA): Output Section LMA. (line 6)
+* AT>LMA_REGION: Output Section LMA. (line 6)
+* automatic data imports: WIN32. (line 191)
+* back end: BFD. (line 6)
+* BASE (MRI): MRI. (line 54)
+* BE8: ARM. (line 28)
+* BFD canonical format: Canonical format. (line 11)
+* BFD requirements: BFD. (line 16)
+* big-endian objects: Options. (line 248)
+* binary input format: Options. (line 134)
+* BLOCK(EXP): Builtin Functions. (line 77)
+* bug criteria: Bug Criteria. (line 6)
+* bug reports: Bug Reporting. (line 6)
+* bugs in ld: Reporting Bugs. (line 6)
+* BYTE(EXPRESSION): Output Section Data.
+ (line 6)
+* C++ constructors, arranging in link: Output Section Keywords.
+ (line 19)
+* CHIP (MRI): MRI. (line 58)
+* COLLECT_NO_DEMANGLE: Environment. (line 29)
+* combining symbols, warnings on: Options. (line 1343)
+* command files: Scripts. (line 6)
+* command line: Options. (line 6)
+* common allocation: Options. (line 861)
+* common allocation in linker script: Miscellaneous Commands.
+ (line 20)
+* common symbol placement: Input Section Common.
+ (line 6)
+* COMMONPAGESIZE: Symbolic Constants. (line 13)
+* compatibility, MRI: Options. (line 158)
+* CONSTANT: Symbolic Constants. (line 6)
+* constants in linker scripts: Constants. (line 6)
+* constraints on output sections: Output Section Constraint.
+ (line 6)
+* CONSTRUCTORS: Output Section Keywords.
+ (line 19)
+* constructors: Options. (line 562)
+* constructors, arranging in link: Output Section Keywords.
+ (line 19)
+* Cortex-A8 erratum workaround: i960. (line 39)
+* crash of linker: Bug Criteria. (line 9)
+* CREATE_OBJECT_SYMBOLS: Output Section Keywords.
+ (line 9)
+* creating a DEF file: WIN32. (line 158)
+* cross reference table: Options. (line 849)
+* cross references: Miscellaneous Commands.
+ (line 56)
+* current output location: Location Counter. (line 6)
+* data: Output Section Data.
+ (line 6)
+* DATA_SEGMENT_ALIGN(MAXPAGESIZE, COMMONPAGESIZE): Builtin Functions.
+ (line 82)
+* DATA_SEGMENT_END(EXP): Builtin Functions. (line 103)
+* DATA_SEGMENT_RELRO_END(OFFSET, EXP): Builtin Functions. (line 109)
+* dbx: Options. (line 1269)
+* DEF files, creating: Options. (line 1742)
+* default emulation: Environment. (line 21)
+* default input format: Environment. (line 9)
+* DEFINED(SYMBOL): Builtin Functions. (line 120)
+* deleting local symbols: Options. (line 587)
+* demangling, default: Environment. (line 29)
+* demangling, from command line: Options. (line 890)
+* direct linking to a dll: WIN32. (line 239)
+* discarding sections: Output Section Discarding.
+ (line 6)
+* discontinuous memory: MEMORY. (line 6)
+* DLLs, creating: Options. (line 1742)
+* DLLs, linking to: Options. (line 1773)
+* dot: Location Counter. (line 6)
+* dot inside sections: Location Counter. (line 36)
+* dot outside sections: Location Counter. (line 66)
+* dynamic linker, from command line: Options. (line 903)
+* dynamic symbol table: Options. (line 221)
+* ELF program headers: PHDRS. (line 6)
+* emulation: Options. (line 392)
+* emulation, default: Environment. (line 21)
+* END (MRI): MRI. (line 62)
+* endianness: Options. (line 248)
+* entry point: Entry Point. (line 6)
+* entry point, from command line: Options. (line 187)
+* entry point, thumb: ARM. (line 17)
+* ENTRY(SYMBOL): Entry Point. (line 6)
+* error on valid input: Bug Criteria. (line 12)
+* example of linker script: Simple Example. (line 6)
+* exporting DLL symbols: WIN32. (line 19)
+* expression evaluation order: Evaluation. (line 6)
+* expression sections: Expression Section. (line 6)
+* expression, absolute: Builtin Functions. (line 10)
+* expressions: Expressions. (line 6)
+* EXTERN: Miscellaneous Commands.
+ (line 13)
+* fatal signal: Bug Criteria. (line 9)
+* file name wildcard patterns: Input Section Wildcards.
+ (line 6)
+* FILEHDR: PHDRS. (line 62)
+* filename symbols: Output Section Keywords.
+ (line 9)
+* fill pattern, entire section: Output Section Fill.
+ (line 6)
+* FILL(EXPRESSION): Output Section Data.
+ (line 39)
+* finalization function: Options. (line 300)
+* first input file: File Commands. (line 82)
+* first instruction: Entry Point. (line 6)
+* FIX_V4BX: ARM. (line 49)
+* FIX_V4BX_INTERWORKING: ARM. (line 62)
+* FORCE_COMMON_ALLOCATION: Miscellaneous Commands.
+ (line 20)
+* forcing input section alignment: Forced Input Alignment.
+ (line 6)
+* forcing output section alignment: Forced Output Alignment.
+ (line 6)
+* forcing the creation of dynamic sections: Options. (line 485)
+* FORMAT (MRI): MRI. (line 66)
+* functions in expressions: Builtin Functions. (line 6)
+* garbage collection <1>: Input Section Keep. (line 6)
+* garbage collection: Options. (line 925)
+* generating optimized output: Options. (line 466)
+* GNU linker: Overview. (line 6)
+* GNUTARGET: Environment. (line 9)
+* GROUP(FILES): File Commands. (line 47)
+* grouping input files: File Commands. (line 47)
+* groups of archives: Options. (line 696)
+* H8/300 support: H8/300. (line 6)
+* header size: Builtin Functions. (line 183)
+* heap size: Options. (line 1684)
+* help: Options. (line 962)
+* holes: Location Counter. (line 12)
+* holes, filling: Output Section Data.
+ (line 39)
+* HPPA multiple sub-space stubs: HPPA ELF32. (line 6)
+* HPPA stub grouping: HPPA ELF32. (line 12)
+* i960 support: i960. (line 6)
+* image base: Options. (line 1691)
+* implicit linker scripts: Implicit Linker Scripts.
+ (line 6)
+* import libraries: WIN32. (line 10)
+* INCLUDE FILENAME: File Commands. (line 9)
+* including a linker script: File Commands. (line 9)
+* including an entire archive: Options. (line 1456)
+* incremental link: Options. (line 326)
+* INHIBIT_COMMON_ALLOCATION: Miscellaneous Commands.
+ (line 25)
+* initialization function: Options. (line 329)
+* initialized data in ROM: Output Section LMA. (line 39)
+* input file format in linker script: Format Commands. (line 35)
+* input filename symbols: Output Section Keywords.
+ (line 9)
+* input files in linker scripts: File Commands. (line 19)
+* input files, displaying: Options. (line 528)
+* input format: Options. (line 134)
+* input object files in linker scripts: File Commands. (line 19)
+* input section alignment: Forced Input Alignment.
+ (line 6)
+* input section basics: Input Section Basics.
+ (line 6)
+* input section wildcards: Input Section Wildcards.
+ (line 6)
+* input sections: Input Section. (line 6)
+* INPUT(FILES): File Commands. (line 19)
+* INSERT: Miscellaneous Commands.
+ (line 30)
+* insert user script into default script: Miscellaneous Commands.
+ (line 30)
+* integer notation: Constants. (line 6)
+* integer suffixes: Constants. (line 15)
+* internal object-file format: Canonical format. (line 11)
+* invalid input: Bug Criteria. (line 14)
+* K and M integer suffixes: Constants. (line 15)
+* KEEP: Input Section Keep. (line 6)
+* l =: MEMORY. (line 74)
+* lazy evaluation: Evaluation. (line 6)
+* ld bugs, reporting: Bug Reporting. (line 6)
+* LD_FEATURE(STRING): Miscellaneous Commands.
+ (line 78)
+* LDEMULATION: Environment. (line 21)
+* len =: MEMORY. (line 74)
+* LENGTH =: MEMORY. (line 74)
+* LENGTH(MEMORY): Builtin Functions. (line 137)
+* library search path in linker script: File Commands. (line 74)
+* link map: Options. (line 402)
+* link-time runtime library search path: Options. (line 1156)
+* linker crash: Bug Criteria. (line 9)
+* linker script concepts: Basic Script Concepts.
+ (line 6)
+* linker script example: Simple Example. (line 6)
+* linker script file commands: File Commands. (line 6)
+* linker script format: Script Format. (line 6)
+* linker script input object files: File Commands. (line 19)
+* linker script simple commands: Simple Commands. (line 6)
+* linker scripts: Scripts. (line 6)
+* LIST (MRI): MRI. (line 77)
+* little-endian objects: Options. (line 251)
+* LOAD (MRI): MRI. (line 84)
+* load address: Output Section LMA. (line 6)
+* LOADADDR(SECTION): Builtin Functions. (line 140)
+* loading, preventing: Output Section Type.
+ (line 22)
+* local symbols, deleting: Options. (line 591)
+* location counter: Location Counter. (line 6)
+* LONG(EXPRESSION): Output Section Data.
+ (line 6)
+* M and K integer suffixes: Constants. (line 15)
+* M68HC11 and 68HC12 support: M68HC11/68HC12. (line 6)
+* machine architecture: Miscellaneous Commands.
+ (line 72)
+* machine dependencies: Machine Dependent. (line 6)
+* mapping input sections to output sections: Input Section. (line 6)
+* MAX: Builtin Functions. (line 143)
+* MAXPAGESIZE: Symbolic Constants. (line 10)
+* MEMORY: MEMORY. (line 6)
+* memory region attributes: MEMORY. (line 34)
+* memory regions: MEMORY. (line 6)
+* memory regions and sections: Output Section Region.
+ (line 6)
+* memory usage: Options. (line 974)
+* MIN: Builtin Functions. (line 146)
+* Motorola 68K GOT generation: M68K. (line 6)
+* MRI compatibility: MRI. (line 6)
+* MSP430 extra sections: MSP430. (line 11)
+* NAME (MRI): MRI. (line 90)
+* name, section: Output Section Name.
+ (line 6)
+* names: Symbols. (line 6)
+* naming the output file: Options. (line 460)
+* NEXT(EXP): Builtin Functions. (line 150)
+* NMAGIC: Options. (line 439)
+* NO_ENUM_SIZE_WARNING: ARM. (line 120)
+* NO_WCHAR_SIZE_WARNING: ARM. (line 127)
+* NOCROSSREFS(SECTIONS): Miscellaneous Commands.
+ (line 56)
+* NOLOAD: Output Section Type.
+ (line 22)
+* not enough room for program headers: Builtin Functions. (line 188)
+* o =: MEMORY. (line 69)
+* objdump -i: BFD. (line 6)
+* object file management: BFD. (line 6)
+* object files: Options. (line 29)
+* object formats available: BFD. (line 6)
+* object size: Options. (line 309)
+* OMAGIC: Options. (line 445)
+* ONLY_IF_RO: Output Section Constraint.
+ (line 6)
+* ONLY_IF_RW: Output Section Constraint.
+ (line 6)
+* opening object files: BFD outline. (line 6)
+* operators for arithmetic: Operators. (line 6)
+* options: Options. (line 6)
+* ORDER (MRI): MRI. (line 95)
+* org =: MEMORY. (line 69)
+* ORIGIN =: MEMORY. (line 69)
+* ORIGIN(MEMORY): Builtin Functions. (line 156)
+* orphan: Orphan Sections. (line 6)
+* output file after errors: Options. (line 1053)
+* output file format in linker script: Format Commands. (line 10)
+* output file name in linker script: File Commands. (line 64)
+* output format: Options. (line 956)
+* output section alignment: Forced Output Alignment.
+ (line 6)
+* output section attributes: Output Section Attributes.
+ (line 6)
+* output section data: Output Section Data.
+ (line 6)
+* OUTPUT(FILENAME): File Commands. (line 64)
+* OUTPUT_ARCH(BFDARCH): Miscellaneous Commands.
+ (line 72)
+* OUTPUT_FORMAT(BFDNAME): Format Commands. (line 10)
+* OVERLAY: Overlay Description.
+ (line 6)
+* overlays: Overlay Description.
+ (line 6)
+* partial link: Options. (line 489)
+* PE import table prefixing: ARM. (line 23)
+* PHDRS: PHDRS. (line 6)
+* PIC_VENEER: ARM. (line 133)
+* position independent executables: Options. (line 1080)
+* PowerPC ELF32 options: PowerPC ELF32. (line 16)
+* PowerPC GOT: PowerPC ELF32. (line 33)
+* PowerPC long branches: PowerPC ELF32. (line 6)
+* PowerPC PLT: PowerPC ELF32. (line 16)
+* PowerPC stub symbols: PowerPC ELF32. (line 47)
+* PowerPC TLS optimization: PowerPC ELF32. (line 51)
+* PowerPC64 dot symbols: PowerPC64 ELF64. (line 33)
+* PowerPC64 ELF64 options: PowerPC64 ELF64. (line 6)
+* PowerPC64 multi-TOC: PowerPC64 ELF64. (line 74)
+* PowerPC64 OPD optimization: PowerPC64 ELF64. (line 48)
+* PowerPC64 OPD spacing: PowerPC64 ELF64. (line 54)
+* PowerPC64 stub grouping: PowerPC64 ELF64. (line 6)
+* PowerPC64 stub symbols: PowerPC64 ELF64. (line 29)
+* PowerPC64 TLS optimization: PowerPC64 ELF64. (line 43)
+* PowerPC64 TOC optimization: PowerPC64 ELF64. (line 60)
+* precedence in expressions: Operators. (line 6)
+* prevent unnecessary loading: Output Section Type.
+ (line 22)
+* program headers: PHDRS. (line 6)
+* program headers and sections: Output Section Phdr.
+ (line 6)
+* program headers, not enough room: Builtin Functions. (line 188)
+* program segments: PHDRS. (line 6)
+* PROVIDE: PROVIDE. (line 6)
+* PROVIDE_HIDDEN: PROVIDE_HIDDEN. (line 6)
+* PUBLIC (MRI): MRI. (line 103)
+* QUAD(EXPRESSION): Output Section Data.
+ (line 6)
+* quoted symbol names: Symbols. (line 6)
+* read-only text: Options. (line 439)
+* read/write from cmd line: Options. (line 445)
+* region alias: REGION_ALIAS. (line 6)
+* region names: REGION_ALIAS. (line 6)
+* REGION_ALIAS(ALIAS, REGION): REGION_ALIAS. (line 6)
+* regions of memory: MEMORY. (line 6)
+* relative expressions: Expression Section. (line 6)
+* relaxing addressing modes: Options. (line 1094)
+* relaxing on H8/300: H8/300. (line 9)
+* relaxing on i960: i960. (line 31)
+* relaxing on M68HC11: M68HC11/68HC12. (line 12)
+* relaxing on Xtensa: Xtensa. (line 27)
+* relocatable and absolute symbols: Expression Section. (line 6)
+* relocatable output: Options. (line 489)
+* removing sections: Output Section Discarding.
+ (line 6)
+* reporting bugs in ld: Reporting Bugs. (line 6)
+* requirements for BFD: BFD. (line 16)
+* retain relocations in final executable: Options. (line 476)
+* retaining specified symbols: Options. (line 1120)
+* ROM initialized data: Output Section LMA. (line 39)
+* round up expression: Builtin Functions. (line 38)
+* round up location counter: Builtin Functions. (line 38)
+* runtime library name: Options. (line 317)
+* runtime library search path: Options. (line 1134)
+* runtime pseudo-relocation: WIN32. (line 217)
+* scaled integers: Constants. (line 15)
+* scommon section: Input Section Common.
+ (line 20)
+* script files: Options. (line 532)
+* scripts: Scripts. (line 6)
+* search directory, from cmd line: Options. (line 368)
+* search path in linker script: File Commands. (line 74)
+* SEARCH_DIR(PATH): File Commands. (line 74)
+* SECT (MRI): MRI. (line 109)
+* section address: Output Section Address.
+ (line 6)
+* section address in expression: Builtin Functions. (line 17)
+* section alignment: Builtin Functions. (line 64)
+* section alignment, warnings on: Options. (line 1434)
+* section data: Output Section Data.
+ (line 6)
+* section fill pattern: Output Section Fill.
+ (line 6)
+* section load address: Output Section LMA. (line 6)
+* section load address in expression: Builtin Functions. (line 140)
+* section name: Output Section Name.
+ (line 6)
+* section name wildcard patterns: Input Section Wildcards.
+ (line 6)
+* section size: Builtin Functions. (line 167)
+* section, assigning to memory region: Output Section Region.
+ (line 6)
+* section, assigning to program header: Output Section Phdr.
+ (line 6)
+* SECTIONS: SECTIONS. (line 6)
+* sections, discarding: Output Section Discarding.
+ (line 6)
+* segment origins, cmd line: Options. (line 1285)
+* SEGMENT_START(SEGMENT, DEFAULT): Builtin Functions. (line 159)
+* segments, ELF: PHDRS. (line 6)
+* shared libraries: Options. (line 1213)
+* SHORT(EXPRESSION): Output Section Data.
+ (line 6)
+* SIZEOF(SECTION): Builtin Functions. (line 167)
+* SIZEOF_HEADERS: Builtin Functions. (line 183)
+* small common symbols: Input Section Common.
+ (line 20)
+* SORT: Input Section Wildcards.
+ (line 63)
+* SORT_BY_ALIGNMENT: Input Section Wildcards.
+ (line 54)
+* SORT_BY_INIT_PRIORITY: Input Section Wildcards.
+ (line 58)
+* SORT_BY_NAME: Input Section Wildcards.
+ (line 46)
+* SPU: SPU ELF. (line 29)
+* SPU ELF options: SPU ELF. (line 6)
+* SPU extra overlay stubs: SPU ELF. (line 19)
+* SPU local store size: SPU ELF. (line 24)
+* SPU overlay stub symbols: SPU ELF. (line 15)
+* SPU overlays: SPU ELF. (line 9)
+* SPU plugins: SPU ELF. (line 6)
+* SQUAD(EXPRESSION): Output Section Data.
+ (line 6)
+* stack size: Options. (line 1931)
+* standard Unix system: Options. (line 7)
+* start of execution: Entry Point. (line 6)
+* STARTUP(FILENAME): File Commands. (line 82)
+* strip all symbols: Options. (line 519)
+* strip debugger symbols: Options. (line 523)
+* stripping all but some symbols: Options. (line 1120)
+* STUB_GROUP_SIZE: ARM. (line 138)
+* SUBALIGN(SUBSECTION_ALIGN): Forced Input Alignment.
+ (line 6)
+* suffixes for integers: Constants. (line 15)
+* symbol defaults: Builtin Functions. (line 120)
+* symbol definition, scripts: Assignments. (line 6)
+* symbol names: Symbols. (line 6)
+* symbol tracing: Options. (line 597)
+* symbol versions: VERSION. (line 6)
+* symbol-only input: Options. (line 508)
+* symbolic constants: Symbolic Constants. (line 6)
+* symbols, from command line: Options. (line 877)
+* symbols, relocatable and absolute: Expression Section. (line 6)
+* symbols, retaining selectively: Options. (line 1120)
+* synthesizing linker: Options. (line 1094)
+* synthesizing on H8/300: H8/300. (line 14)
+* TARGET(BFDNAME): Format Commands. (line 35)
+* TARGET1: ARM. (line 32)
+* TARGET2: ARM. (line 37)
+* text segment origin, cmd line: Options. (line 1292)
+* thumb entry point: ARM. (line 17)
+* TI COFF versions: TI COFF. (line 6)
+* traditional format: Options. (line 1264)
+* trampoline generation on M68HC11: M68HC11/68HC12. (line 31)
+* trampoline generation on M68HC12: M68HC11/68HC12. (line 31)
+* unallocated address, next: Builtin Functions. (line 150)
+* undefined symbol: Options. (line 554)
+* undefined symbol in linker script: Miscellaneous Commands.
+ (line 13)
+* undefined symbols, warnings on: Options. (line 1430)
+* uninitialized data placement: Input Section Common.
+ (line 6)
+* unspecified memory: Output Section Data.
+ (line 39)
+* usage: Options. (line 962)
+* USE_BLX: ARM. (line 74)
+* using a DEF file: WIN32. (line 57)
+* using auto-export functionality: WIN32. (line 22)
+* Using decorations: WIN32. (line 162)
+* variables, defining: Assignments. (line 6)
+* verbose[=NUMBER]: Options. (line 1324)
+* version: Options. (line 581)
+* version script: VERSION. (line 6)
+* version script, symbol versions: Options. (line 1332)
+* VERSION {script text}: VERSION. (line 6)
+* versions of symbols: VERSION. (line 6)
+* VFP11_DENORM_FIX: ARM. (line 83)
+* warnings, on combining symbols: Options. (line 1343)
+* warnings, on section alignment: Options. (line 1434)
+* warnings, on undefined symbols: Options. (line 1430)
+* weak externals: WIN32. (line 407)
+* what is this?: Overview. (line 6)
+* wildcard file name patterns: Input Section Wildcards.
+ (line 6)
+* Xtensa options: Xtensa. (line 56)
+* Xtensa processors: Xtensa. (line 6)
+
+
+
+Tag Table:
+Node: Top816
+Node: Overview1602
+Node: Invocation2716
+Node: Options3124
+Node: Environment94796
+Node: Scripts96556
+Node: Basic Script Concepts98290
+Node: Script Format100997
+Node: Simple Example101860
+Node: Simple Commands104956
+Node: Entry Point105462
+Node: File Commands106395
+Node: Format Commands110396
+Node: REGION_ALIAS112352
+Node: Miscellaneous Commands117184
+Node: Assignments120792
+Node: Simple Assignments121283
+Node: PROVIDE123019
+Node: PROVIDE_HIDDEN124224
+Node: Source Code Reference124468
+Node: SECTIONS128048
+Node: Output Section Description129939
+Node: Output Section Name131026
+Node: Output Section Address131902
+Node: Input Section134137
+Node: Input Section Basics134938
+Node: Input Section Wildcards138844
+Node: Input Section Common143844
+Node: Input Section Keep145326
+Node: Input Section Example145816
+Node: Output Section Data146784
+Node: Output Section Keywords149561
+Node: Output Section Discarding153130
+Node: Output Section Attributes154311
+Node: Output Section Type155412
+Node: Output Section LMA156483
+Node: Forced Output Alignment159554
+Node: Forced Input Alignment159822
+Node: Output Section Constraint160211
+Node: Output Section Region160639
+Node: Output Section Phdr161072
+Node: Output Section Fill161736
+Node: Overlay Description162878
+Node: MEMORY167181
+Node: PHDRS171516
+Node: VERSION176770
+Node: Expressions184863
+Node: Constants185792
+Node: Symbolic Constants186667
+Node: Symbols187218
+Node: Orphan Sections187965
+Node: Location Counter189129
+Node: Operators193565
+Node: Evaluation194487
+Node: Expression Section195851
+Node: Builtin Functions199508
+Node: Implicit Linker Scripts207469
+Node: Machine Dependent208244
+Node: H8/300209260
+Node: i960210885
+Node: M68HC11/68HC12213089
+Node: ARM214543
+Node: HPPA ELF32222506
+Node: M68K224129
+Node: MMIX225038
+Node: MSP430226203
+Node: PowerPC ELF32227252
+Node: PowerPC64 ELF64230088
+Node: SPU ELF234504
+Node: TI COFF237136
+Node: WIN32237662
+Node: Xtensa257787
+Node: BFD260752
+Node: BFD outline262207
+Node: BFD information loss263493
+Node: Canonical format266010
+Node: Reporting Bugs270367
+Node: Bug Criteria271061
+Node: Bug Reporting271760
+Node: MRI278799
+Node: GNU Free Documentation License283442
+Node: LD Index308598
+
+End Tag Table
diff --git a/ld/po/bg.gmo b/ld/po/bg.gmo
new file mode 100644
index 0000000000..7562e74e8c
--- /dev/null
+++ b/ld/po/bg.gmo
Binary files differ
diff --git a/ld/po/da.gmo b/ld/po/da.gmo
new file mode 100644
index 0000000000..f54a23fbd7
--- /dev/null
+++ b/ld/po/da.gmo
Binary files differ
diff --git a/ld/po/es.gmo b/ld/po/es.gmo
new file mode 100644
index 0000000000..0509cbb6ad
--- /dev/null
+++ b/ld/po/es.gmo
Binary files differ
diff --git a/ld/po/fi.gmo b/ld/po/fi.gmo
new file mode 100644
index 0000000000..1d4f6d6643
--- /dev/null
+++ b/ld/po/fi.gmo
Binary files differ
diff --git a/ld/po/fr.gmo b/ld/po/fr.gmo
new file mode 100644
index 0000000000..24c9ae1c97
--- /dev/null
+++ b/ld/po/fr.gmo
Binary files differ
diff --git a/ld/po/ga.gmo b/ld/po/ga.gmo
new file mode 100644
index 0000000000..b3080443bc
--- /dev/null
+++ b/ld/po/ga.gmo
Binary files differ
diff --git a/ld/po/id.gmo b/ld/po/id.gmo
new file mode 100644
index 0000000000..155f6077d2
--- /dev/null
+++ b/ld/po/id.gmo
Binary files differ
diff --git a/ld/po/ja.gmo b/ld/po/ja.gmo
new file mode 100644
index 0000000000..bfbd0c9d1f
--- /dev/null
+++ b/ld/po/ja.gmo
Binary files differ
diff --git a/ld/po/sv.gmo b/ld/po/sv.gmo
new file mode 100644
index 0000000000..f7038a8a95
--- /dev/null
+++ b/ld/po/sv.gmo
Binary files differ
diff --git a/ld/po/tr.gmo b/ld/po/tr.gmo
new file mode 100644
index 0000000000..96d567be4a
--- /dev/null
+++ b/ld/po/tr.gmo
Binary files differ
diff --git a/ld/po/vi.gmo b/ld/po/vi.gmo
new file mode 100644
index 0000000000..831bb46b6e
--- /dev/null
+++ b/ld/po/vi.gmo
Binary files differ
diff --git a/ld/po/zh_CN.gmo b/ld/po/zh_CN.gmo
new file mode 100644
index 0000000000..39d17940d0
--- /dev/null
+++ b/ld/po/zh_CN.gmo
Binary files differ
diff --git a/ld/po/zh_TW.gmo b/ld/po/zh_TW.gmo
new file mode 100644
index 0000000000..23277b167c
--- /dev/null
+++ b/ld/po/zh_TW.gmo
Binary files differ
diff --git a/md5.sum b/md5.sum
new file mode 100644
index 0000000000..92e2efbfc5
--- /dev/null
+++ b/md5.sum
@@ -0,0 +1,12857 @@
+59530bdf33659b29e73d4adb9f9f6552 COPYING
+9f604d8a4f8e74f4f5140845a21b6674 COPYING.LIB
+d32239bcb673463ab874e80d47fae504 COPYING3
+6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB
+2f8e9644db486186e7a4b0ad62c39eab ChangeLog
+8604252784712dfd4447a5b0183c15d8 MAINTAINERS
+99d9a540fab7b2404f7b1e89bcac0d51 Makefile.def
+92a164cccf605af7736e9c5e85259030 Makefile.in
+02397e834204ac5b5186fb1c23bad302 Makefile.tpl
+07c33a285703b40cd6f93a478e97e03b README
+72b7803505f14cf31e291a59f538c6c8 README-maintainer-mode
+408ef1462276b75d3708877103c85eb8 bfd/.gitignore
+6fa0d57c29b1872c3829bb251d8898f9 bfd/acinclude.m4
+3381b54a88e28dc216f5a2c7f4d30c32 bfd/aclocal.m4
+d8ddebc6a89593388d3c07405644a845 bfd/aix386-core.c
+b3575c73467ebc45473c2ea0875c1b4e bfd/aix5ppc-core.c
+c9ec7d24e6be9796656156d1c44d295c bfd/aout-adobe.c
+20b9909bfd2ddd02d26b99dc37b194fa bfd/aout-arm.c
+d3a602dd8c8525c314571b8122935fc6 bfd/aout-cris.c
+839d08c624b51cc73a2e2e28741f0fb1 bfd/aout-ns32k.c
+31a4784a448794bed0bf31a191a8d669 bfd/aout-sparcle.c
+b6a4558a2c7d319f6d570a23ce81b1db bfd/aout-target.h
+22e4eb1022de9eb752738eebd980b1c9 bfd/aout-tic30.c
+a840f061d05ebff08fc9b147c0bd2c3f bfd/aout0.c
+c13beca7dc743efbb13bd2c0091a2d41 bfd/aout32.c
+e028cead3cc51cc3eb131e35b66c8813 bfd/aout64.c
+1aec204d64d5b321d35def886f46e078 bfd/aoutf1.h
+5a92a9bb5c133fb99f62d2504c8a6437 bfd/aoutx.h
+8087ea866defe89564193c80f6ad2fed bfd/archive.c
+15c4097aac815e15f674c0609aab3f4e bfd/archive64.c
+5f4c48c9ba3717caec074caeaf4aa702 bfd/archures.c
+5ed657bb294400d6c36a8c00ee83ad48 bfd/armnetbsd.c
+f651d74c3bff7ce51478ec90f1763bf8 bfd/bfd-in.h
+857e544780d8c41865431f810a442e69 bfd/bfd-in2.h
+eaaca5af5a36653c14b81fa04ef705ae bfd/bfd.c
+5f01e2a009218852c42c63d1a20bcdb9 bfd/bfd.m4
+7fb120c19da2c4d96d86e53e105ae059 bfd/bfdio.c
+da4c12f9e0f77a2d235b154c536a439a bfd/bfdwin.c
+91164da037fb2dd5a84678adde4ac3cb bfd/binary.c
+cea32a666a0713e7835609a9bcc6d907 bfd/bout.c
+86c96e8a5c3afb021ed2bcb18a31675d bfd/cache.c
+c97717d51efe6661f46119e4e1ea4db4 bfd/cf-i386lynx.c
+18f09a3a9b17fa7bff19b95588827a37 bfd/cf-sparclynx.c
+034104b33e708daea80a68cd7638e76f bfd/ChangeLog
+daabeea83b81f2707d48d2c04dcc37c4 bfd/ChangeLog-0001
+0a3e33c0b179772334e34175da11b64f bfd/ChangeLog-0203
+d20549a2f701cd99318d0af070416bf3 bfd/ChangeLog-2004
+aa4c260fc770839ccd0776dec1c2353d bfd/ChangeLog-2005
+57633b8d529989fe966891285e127e78 bfd/ChangeLog-2006
+6ffeb475fe9699cb8c90e32a25d8e148 bfd/ChangeLog-2007
+6e40d764a9749e6638d7d7c9c1301c76 bfd/ChangeLog-2008
+e343d8f85c4b1f246b783db27f797934 bfd/ChangeLog-2009
+30e074bff91d690e7c55999f9df5edbb bfd/ChangeLog-2010
+8dcb7ce2e45911e21ceb6e457e69eacf bfd/ChangeLog-9193
+6d37ec6ee5f57a1188a0717f2fa5deb0 bfd/ChangeLog-9495
+b7ad288235bf6a3e015e01cb6096cbe7 bfd/ChangeLog-9697
+dbb0d89c90d6c0ec79eb003a5b63f923 bfd/ChangeLog-9899
+8501ee115266f28cdb1105eae2f7f520 bfd/cisco-core.c
+a273ad57cbee716afe73dd5b2ebaf817 bfd/coff-alpha.c
+b2c01d9e98c123ddf643f51d22752aff bfd/coff-apollo.c
+4ed770f7721bc206fd80e8ccf1ba68d1 bfd/coff-arm.c
+aa42b42d63542892d67c2c0ede9dd6f2 bfd/coff-aux.c
+f5b2082a5a1a29c38e706e3d9c0a8af7 bfd/coff-go32.c
+7ddfa118cf2d72e10c168401199d0dd6 bfd/coff-h8300.c
+4a232faf6edb35141b68834d82bb444c bfd/coff-h8500.c
+227af7ae6cd2d71d3c540cd9c8fa4c55 bfd/coff-i386.c
+5b8269256cd88c3dff19f7fe4d360133 bfd/coff-i860.c
+88c3e03e382595443e0dc771b7f2b8fc bfd/coff-i960.c
+0a8f5c6759e6065b6819d9a4e6e08d21 bfd/coff-ia64.c
+4c9e31191b7a19aa9472ca3620c5d029 bfd/coff-m68k.c
+f2a7f3c126540e19b45d69c87d18d4e6 bfd/coff-m88k.c
+57fe1aeff47ff2dd8d1cf5c95e8ea7d1 bfd/coff-mcore.c
+e91ded3cde01135aea6fe90387fa6224 bfd/coff-mips.c
+530adaceacad1b71056d11d45b68fa62 bfd/coff-or32.c
+1ec92d761b8a010714f50e07c9ea50cd bfd/coff-ppc.c
+ea14de11175928a0dd9c002dc5d963a5 bfd/coff-rs6000.c
+3ae7c591751dfaf16f40033b20b1e5b5 bfd/coff-sh.c
+cb5ae8ecdedba094ce170c3d3cb895c9 bfd/coff-sparc.c
+12729aa3dbc470a175f0a1a39b2e9952 bfd/coff-stgo32.c
+d875c398d7e93cf42aec58884a374a37 bfd/coff-svm68k.c
+7069bf46919a4a7c88a33483a2813a40 bfd/coff-tic30.c
+ee9a930e5bc9ca7ec06a7d698d6d3a22 bfd/coff-tic4x.c
+6ab56b6584158b01d2dc3e0460a493bf bfd/coff-tic54x.c
+308b9b8b5dbf0373f664dab323a75a6f bfd/coff-tic80.c
+6cd06305505a30c517e919d2e55a1ada bfd/coff-u68k.c
+81a19edd9de0c77a9148f421d84a2aed bfd/coff-w65.c
+4f9c0de80ce9266b55bb00bed21c9389 bfd/coff-we32k.c
+76d38bbfad6e0f7805310cb3688073c2 bfd/coff-x86_64.c
+8277a49e1403d5308d984580784a3275 bfd/coff-z80.c
+7d0efdbb284f00939c3d7f6de24235da bfd/coff-z8k.c
+a193f92a3d6988382254678ca0ed6776 bfd/coff64-rs6000.c
+aae1d6bee1ba23f9b236785eff8ac180 bfd/coffcode.h
+cdf5994c020034d54989025b49d4fb73 bfd/coffgen.c
+046e29da876c15400afefd42e346e61c bfd/cofflink.c
+8b735739122823a277e225a45fd2fa80 bfd/coffswap.h
+32c9c99c1e104818523f13d4011113e3 bfd/compress.c
+af778e87dc323876819f057b73dc45f7 bfd/config.bfd
+d7a8c5a505ff94107d2f8f53d787283d bfd/config.in
+dfeaed6167bd65ad197f2d72f80d7747 bfd/configure
+62648cd0ae8a4495a8ccd686cf18e445 bfd/configure.com
+15a3950292cca2571a79f5abf7c01e95 bfd/configure.host
+7a6bb5c152f96f7ab9dbe77c2ee14cd8 bfd/configure.in
+d32239bcb673463ab874e80d47fae504 bfd/COPYING
+0ad57f9869ce6685635952c413d30c3b bfd/corefile.c
+89ae5a994f899638bc8effdc8bfeac34 bfd/cpu-alpha.c
+3d9623ebd0055cc23a9f84929db2cf0f bfd/cpu-arc.c
+2704edffe71c370ccbe87e05a4f7cb95 bfd/cpu-arm.c
+af052e4ae39ea5e5ab22aba781f37417 bfd/cpu-avr.c
+e5359870df01083e350eec26574fc25f bfd/cpu-bfin.c
+6ae40f951ba2fe744d05c06bc8d64f80 bfd/cpu-cr16.c
+e17372c3409e4b59e5448e1e7d3b65b0 bfd/cpu-cr16c.c
+069151362a6520c1de16762c0e32d588 bfd/cpu-cris.c
+560c01c276ce3d26a8a1ec6136889299 bfd/cpu-crx.c
+5926f1162d10b02d270d85e11695e618 bfd/cpu-d10v.c
+f39f657b7b404cedd71c44b3254d4fa8 bfd/cpu-d30v.c
+95ff9999519ba7119f67bb87196b9678 bfd/cpu-dlx.c
+d864f35a009e75e369acd1925a7d1056 bfd/cpu-fr30.c
+8dcd1222ed2acbca6844dc6cfd246310 bfd/cpu-frv.c
+86fbd5e47ed20f51b600f454f2c78600 bfd/cpu-h8300.c
+092d206aa16c5f74936f5dacc4375a4d bfd/cpu-h8500.c
+b1e25b270596278333ccbe5a8cb86ada bfd/cpu-hppa.c
+3f79e3c79d70b495d1de3c4e132d60c8 bfd/cpu-i370.c
+4d40f51e511b7105d8586c2a77cc4609 bfd/cpu-i386.c
+826adfd8cdf1ebd3ba4c77f8b84c1654 bfd/cpu-i860.c
+2d8e643f66d80ec33b312b2ccd7476cd bfd/cpu-i960.c
+5198b542f07fd7f52a9c9c827af5616b bfd/cpu-ia64-opc.c
+5839e4309c4859d3a174765ed3522a85 bfd/cpu-ia64.c
+4524bde19eeefda082bbccf768e5df5d bfd/cpu-ip2k.c
+a2acba4eacfcc83d555068c6f0747bfe bfd/cpu-iq2000.c
+c6206efb34e3f17af565d0d90217d49e bfd/cpu-k1om.c
+d9b66debce1820c2ebda6ae3d325034f bfd/cpu-l1om.c
+b44557a52ae7803692123f34d71373d0 bfd/cpu-lm32.c
+8477d902c2e995b5c9c3a6cd7370d100 bfd/cpu-m10200.c
+ca560e934ed5d367ab80dfaa757b7d8d bfd/cpu-m10300.c
+5d1039c31606332304242ec3758ec79a bfd/cpu-m32c.c
+774bd19ed65dd7505c28891bd4407b7b bfd/cpu-m32r.c
+6ab713aa0b98d8a7be5910d74bb75602 bfd/cpu-m68hc11.c
+0266f22c1e79ae970ac54fc740c74147 bfd/cpu-m68hc12.c
+e759187831ad93284a9e4fafa69abe16 bfd/cpu-m68k.c
+6ed4ee0ee7447a9ab467d28742627be5 bfd/cpu-m88k.c
+c30d43d274800c9418fb244acf5b9641 bfd/cpu-mcore.c
+45df80823f40d77dd8495b7d52f1ebab bfd/cpu-mep.c
+d0466065fbf0bc773645f7dac657355d bfd/cpu-microblaze.c
+212e2a324d2bfce0548646a3e30f54c9 bfd/cpu-mips.c
+33e393cb256971b30a150f50f9ceba7d bfd/cpu-mmix.c
+0e566a384c3cb42d225def6d79d9105c bfd/cpu-moxie.c
+f959ee5623b67d571f8c6ef764638591 bfd/cpu-msp430.c
+d87f62d816eab577e24ed00e8a1dc82b bfd/cpu-mt.c
+07ba0d23ca8f838e8ba9b1e2f69cec8b bfd/cpu-ns32k.c
+c204abe1385d8544a04782cd3e547a8e bfd/cpu-openrisc.c
+6a9152a776286e937d03812caffd06b0 bfd/cpu-or32.c
+5bc8a2a42fd38ca10cd19c8ff17017ee bfd/cpu-pdp11.c
+fca5332e71878803a9b05ba6d7ba6bcf bfd/cpu-pj.c
+1fc49dc67fe8b86991f8e70759801a6e bfd/cpu-plugin.c
+32730f9ced53f4ea96609868534c5024 bfd/cpu-powerpc.c
+639cb93eba287cb8262c9bab69aa1de7 bfd/cpu-rs6000.c
+ecb4883b6df0b09e6a32f0f40b4915f6 bfd/cpu-rx.c
+f5bbc07515c3e51d4c91b68abc89226b bfd/cpu-s390.c
+749c338af5feda4b61c32ac7cef3c728 bfd/cpu-score.c
+15511c9f15aaea5a8fc8cb8e0616feeb bfd/cpu-sh.c
+26bd80a3fd973f6d0e39f7d58bbea060 bfd/cpu-sparc.c
+21a1cb9748c501a39e5542af1f33b611 bfd/cpu-spu.c
+0d01e90a8372e857cf93e1915267d99a bfd/cpu-tic30.c
+5192f963df80aaa7f8f36fcc8d7e1f89 bfd/cpu-tic4x.c
+d7ee6d0c52826b6aa0c140bf6927cdc8 bfd/cpu-tic54x.c
+d25b25f15f2f89a009660d3777f11223 bfd/cpu-tic6x.c
+74924c54241882e67602fa5cf483a8e6 bfd/cpu-tic80.c
+68faf06d37979aae8db77c6c2de50262 bfd/cpu-tilegx.c
+6468a45886e5ff9b0db680d6d6433cae bfd/cpu-tilepro.c
+948c2e6044fe797fb4e11a1db823b5b9 bfd/cpu-v850.c
+669042112776344f813a6a91ce53a409 bfd/cpu-vax.c
+966c37d73c083aeee8959e51c49f28c9 bfd/cpu-w65.c
+d5271485a1353b275cc69acf7332b4ff bfd/cpu-we32k.c
+11a6c47e1d51c8bf25715e420f9df31f bfd/cpu-xc16x.c
+4124b3a9995f1e85b9a3bafe5059b4b9 bfd/cpu-xstormy16.c
+db4d0b1da7361125abfd80f312a43052 bfd/cpu-xtensa.c
+e17e159f98955683b8194c5d5df31e96 bfd/cpu-z80.c
+427e6473e9ad2e878ec987152e3cff2a bfd/cpu-z8k.c
+1870cebc00e9a18f8aed220ba7c8cef9 bfd/demo64.c
+dad496c68df8395b3cdb8e3187c37eb1 bfd/dep-in.sed
+b1848292a4811cd7301fc6201debe63a bfd/doc/aoutx.texi
+1ec269e34cd7de48135ce9d4aefb98b6 bfd/doc/archive.texi
+a97dd390d551809a3521ac155ad821a2 bfd/doc/archures.texi
+564650551cd91ba7305a5814bc4f8f4d bfd/doc/bfd.info
+81652cb38f512353656fd8f29f2e9df6 bfd/doc/bfd.texinfo
+fbccdbd05f0690694c015fba7c392d45 bfd/doc/bfdint.texi
+7edf511939deb638e8291f264c4249e1 bfd/doc/bfdio.texi
+5ee7f8ae8b0ec33c7baf2e004084aaa1 bfd/doc/bfdsumm.texi
+ed2f6de3413bab723db72b9cfba36f85 bfd/doc/bfdt.texi
+8ec611d97620e190243c23b882d8a88e bfd/doc/bfdver.texi
+236e856bb13ee47adc5d7d253037640d bfd/doc/bfdwin.texi
+2afdf80182d7d816eb993fe194d378a3 bfd/doc/cache.texi
+1866a5dccdd2353d75ef69ef21077d14 bfd/doc/ChangeLog
+42b5ebab441fcbf65e95c2aa31262147 bfd/doc/ChangeLog-9103
+42b97469de7550820862b7c27dda849b bfd/doc/chew.c
+232d094e3d6da6e3294d39c0149901d2 bfd/doc/coffcode.texi
+6dd9da257666139a061d6905349d9614 bfd/doc/core.texi
+e67d8b07516154c4ddbee2e3bab3d75e bfd/doc/doc.str
+51139f6af786e74446d01ec49807fc28 bfd/doc/elf.texi
+d41d8cd98f00b204e9800998ecf8427e bfd/doc/elfcode.texi
+072910d553f79906db69fa7c0e956bba bfd/doc/fdl.texi
+930173859dab35d4c1c03efd5ddb18e3 bfd/doc/format.texi
+d2b923f7732c26442570c16fd1dfac5a bfd/doc/hash.texi
+39f61ac0fb56eced56e6894e7bc47cef bfd/doc/header.sed
+37ba364fb34b96a1dbb55b0f6f612432 bfd/doc/init.texi
+0fc22c68d543f8dc7cc4548a3fad3557 bfd/doc/libbfd.texi
+ebb7107f0b9aa8607e4fb3af643e6171 bfd/doc/linker.texi
+d2c072a60c85bbcf23800ed64bd45f83 bfd/doc/Makefile.am
+40319bd6a8a254e8a40c97442f5dfff3 bfd/doc/Makefile.in
+5fa24958e8a60b2f879af658e615ccc0 bfd/doc/makefile.vms
+58f9e78e71f2d034a79e172899e792f6 bfd/doc/mmo.texi
+0a434fb4ed336b3267a07a0eee83a714 bfd/doc/opncls.texi
+d7a37304ccd7b245f93df4be02797477 bfd/doc/proto.str
+095a05e08cb77bf7d9f718de19befe84 bfd/doc/reloc.texi
+7cda9a06854f5529e7a27ed951aace6b bfd/doc/section.texi
+f335289247e38d4dce82697113a6bce5 bfd/doc/syms.texi
+bf5eee2282a29e48a8bea259d0cfc44f bfd/doc/targets.texi
+35a51081f68984bab0850ecc54b062cc bfd/dwarf1.c
+f55f39ae32c808e7a091f261e75b7850 bfd/dwarf2.c
+0ce39c90208b12ef2a4c178187c4db54 bfd/ecoff.c
+d2787db8fdda32e6f28c6635fed02cdf bfd/ecofflink.c
+67df9e1bdfc0782dd9e6ad00f505f687 bfd/ecoffswap.h
+f51b03b3f2dc74522822ae4dc9ff1eac bfd/elf-attrs.c
+aa93878aeb61a6769ea0459f8c7aaf40 bfd/elf-bfd.h
+eb6e0c9a65e4ef6e60ddb8d84c42fc85 bfd/elf-eh-frame.c
+ab61804e1d5adeef7a190158af639583 bfd/elf-hppa.h
+9cae244d87acec3e44ecb339cd364e13 bfd/elf-ifunc.c
+7b1fa717b0323857568400b252902312 bfd/elf-m10200.c
+8def5a64b51822df5e274b9353cd69b1 bfd/elf-m10300.c
+299214fa9cc7a7bac4c32e3ad1028389 bfd/elf-strtab.c
+42ee16947225b1bc6c90ba81f1869381 bfd/elf-vxworks.c
+558028f73662a4a2a2df3932d23a30b9 bfd/elf-vxworks.h
+c7da7c2abd35705ef7a36abb2f214564 bfd/elf.c
+87f5612eba792da8c039b1c0e59ee24a bfd/elf32-am33lin.c
+9d03e5cc8b0719b6fdb483746ba834a0 bfd/elf32-arc.c
+0fda5d99f18fc1cd05b655488f70571a bfd/elf32-arm.c
+8a04ed7a1f6cd6dc97f5448e168f8a90 bfd/elf32-avr.c
+f6846e8628e2f26f82fea28151906429 bfd/elf32-avr.h
+3361a5cdb5fde551b49e908f2204bf42 bfd/elf32-bfin.c
+80c3d3a4891d10d7ad684e8466c1935c bfd/elf32-cr16.c
+2cb217d76cc527cd60817ecd017cfb10 bfd/elf32-cr16c.c
+f6f189a60ecc9ca0b375cc027830e308 bfd/elf32-cris.c
+4199171d3be10b6d06353d086c2f1a15 bfd/elf32-crx.c
+0778b06b2ee2d9f31f428d7302e95cd4 bfd/elf32-d10v.c
+e9aa232096cc8fe8d530c39db7358897 bfd/elf32-d30v.c
+9dc2c3083007d055584a29f2c4bc0e08 bfd/elf32-dlx.c
+d78a2835c4d0bceffddaa93868b67074 bfd/elf32-fr30.c
+d3feec9d76912557cf2662ff8e5a3cfa bfd/elf32-frv.c
+2fbdc5d0b99c7ed22cbbc0b5082feb95 bfd/elf32-gen.c
+7b9f8da8c6251fe91c970cfcb78f6482 bfd/elf32-h8300.c
+c887ef4e762be76ab59328bb98de1ea1 bfd/elf32-hppa.c
+0f3b87f69654d5b2726d626a709cc9b3 bfd/elf32-hppa.h
+5a8acd43eb2d3729383c2114eab34050 bfd/elf32-i370.c
+fb381e522c3553f60fc2295b1b58f98e bfd/elf32-i386.c
+ee57a120f5721538749d61aaf9191a97 bfd/elf32-i860.c
+af76e3dde2241645d746bcb82f2f86ed bfd/elf32-i960.c
+7135d21aa3600609ccc0d7fa3535013e bfd/elf32-ip2k.c
+c98d5aea99470a393a8ae31c4980f4d4 bfd/elf32-iq2000.c
+6dc69d4caebdcade1797a640339a7154 bfd/elf32-lm32.c
+07646154bfb59e81a76168ad0a88aabf bfd/elf32-m32c.c
+e23f17f2cfb0d420b4288611aa0cd8d4 bfd/elf32-m32r.c
+6428c04385c66ae14d4bca296623bac5 bfd/elf32-m68hc11.c
+51df867fbf4d0ae3b47d176786169d58 bfd/elf32-m68hc12.c
+77443960526ec549d2209447c26a1627 bfd/elf32-m68hc1x.c
+494e09c13f3a731ad18d5190e4443db1 bfd/elf32-m68hc1x.h
+55c77bb3024e9a5b3fa6f10791b0e479 bfd/elf32-m68k.c
+24c6dfe183b600fba2f348e08fe8b3c5 bfd/elf32-m88k.c
+21fb6613e678ec26d3b4570c8f2c0cec bfd/elf32-mcore.c
+51d8efff5c1ef19d9f00d5a3254f0d38 bfd/elf32-mep.c
+88182211b25497f444b6a7afc35acf90 bfd/elf32-microblaze.c
+0c5b2d824b73533f8de8e1998a3eae9c bfd/elf32-mips.c
+b4fc78e1f9a3a0e45fbd692fdeb30584 bfd/elf32-moxie.c
+624f58a4f62a23ad6acf2ed1ec669282 bfd/elf32-msp430.c
+68f00b7ffa1d86f18e630f7c48693457 bfd/elf32-mt.c
+018af022914aed2c14aea3f6e1b7a8a5 bfd/elf32-openrisc.c
+468e5e58c80e985dfbfa201ce07fe4ba bfd/elf32-or32.c
+140b65ea1bdd039c81067900b5124da8 bfd/elf32-pj.c
+a517cc13988b19242e8636aa64b3ea47 bfd/elf32-ppc.c
+365a056a6b67a82bc90fd684ae12a82c bfd/elf32-ppc.h
+632e98e35f700b640df3c454565c729e bfd/elf32-rx.c
+d35146f1c1fe1ed70cd724eae86983b6 bfd/elf32-s390.c
+8d87a8b0caa7f8f4f48b4f959bd52e49 bfd/elf32-score.c
+0ae85011185c7162178de9dc0acabc90 bfd/elf32-score.h
+b99fa646f5da8708b636b46b8b162faf bfd/elf32-score7.c
+1452b80dbcae3a156632f017e6a9e1b8 bfd/elf32-sh-relocs.h
+70d7820e62a8d4c8da02a1ce5f0fe3db bfd/elf32-sh-symbian.c
+0640f3ccfd32f9f69a916c2045c4ed25 bfd/elf32-sh.c
+c3e727bdfb7a73954c1f7ea914d5de0e bfd/elf32-sh64-com.c
+a1e9a3c25fd579771da3e57df20efbdc bfd/elf32-sh64.c
+1fa268e389df0b3304de7d965589da01 bfd/elf32-sh64.h
+23b143cc38a09a53a9410a8cea1f96b6 bfd/elf32-sparc.c
+28fa20f7933cb94983ec0f2643e9716b bfd/elf32-spu.c
+e48841dba20a31a21c00d16af64ee8f8 bfd/elf32-spu.h
+52c5196f2718ad68df91e44bbf7179a2 bfd/elf32-tic6x.c
+e24c26414c8cffc67b83fcb4bcfb2a55 bfd/elf32-tic6x.h
+8d590e9b423120035e03e29ea8ff74c6 bfd/elf32-tilegx.c
+5a56e51411354a0c6dc6fd74f5896da3 bfd/elf32-tilegx.h
+7eda65fbfc21b0c25172b27a2680ed8f bfd/elf32-tilepro.c
+b1166d035ecbc003403a55552fbda550 bfd/elf32-tilepro.h
+db7c5d5a4b5687078101c68578e80875 bfd/elf32-v850.c
+73b985af7662709f58504440b0a1ddf6 bfd/elf32-vax.c
+1e2e75212cde3fa3a9263dd49dd3a972 bfd/elf32-xc16x.c
+f759e10eba5ac63622f6a60717b69b7f bfd/elf32-xstormy16.c
+513e93182d83eb04fcf31352b96c31f5 bfd/elf32-xtensa.c
+19711956ec075d032f0d0b894b11a1ce bfd/elf32.c
+f1ccd1d1b78289cbd32f34aa9e2c9b14 bfd/elf64-alpha.c
+cb5514787c5264ee0bc353a2c981561f bfd/elf64-gen.c
+30bddabed647a2c091e7d6b1dd59c433 bfd/elf64-hppa.c
+9cff3ac6c428477bd9e305540d95e47a bfd/elf64-hppa.h
+da0371ca4804af1529f3a72f6d0ac7ec bfd/elf64-mips.c
+513dd5792664b734fc2b09c3f3ac6fa9 bfd/elf64-mmix.c
+1d3bbb21c0303d3c94c0f18c724eb22a bfd/elf64-ppc.c
+5596457fac5cbdd67b8c273d8bb890c9 bfd/elf64-ppc.h
+63d9b5308b9c75737792c23f4530e1ff bfd/elf64-s390.c
+46f04581d21f6927dad1d007109c8694 bfd/elf64-sh64.c
+c4873a109e3134d9a9f2a3784ee34d86 bfd/elf64-sparc.c
+4c71d0b2f5f315b45c6b3319ebb770cf bfd/elf64-tilegx.c
+fcf3f7fff3f72094447832681d4e23e3 bfd/elf64-tilegx.h
+e1750f4ed4b6ea17e932fee12781160c bfd/elf64-x86-64.c
+72144adaba3f8c119f115d7af46b2502 bfd/elf64.c
+ac1c1025d0ef7ec8d77e95ce79477c86 bfd/elfcode.h
+16571e24f21c320a2fac42e3b98494de bfd/elfcore.h
+3e21cbb3432875f08edc1ecebdaefe55 bfd/elflink.c
+564d764e21ddfe77383d3cb95056ff04 bfd/elfn32-mips.c
+6bde5bc7002aa7e1264f3034b55f1cde bfd/elfnn-ia64.c
+96944bd725981974ba76e887c9dba7a5 bfd/elfxx-ia64.c
+4155caaab977fb465c3e89f068183ee3 bfd/elfxx-ia64.h
+ad915022ae9a3b9ccd4146a03fef412d bfd/elfxx-mips.c
+b67886d2b2b2684ff187bcbaf9410b0d bfd/elfxx-mips.h
+e4c75c19d68bcffcf86cd2e91b831c72 bfd/elfxx-sparc.c
+3608d55b3d3531e3572ac1f1acb0df35 bfd/elfxx-sparc.h
+6e620ce23dff38fdedef80039402508b bfd/elfxx-target.h
+ea5f26b0f97042c651b14a2c2b309ef9 bfd/elfxx-tilegx.c
+2ac78eb0e9567bd2222495c6f4db43c8 bfd/elfxx-tilegx.h
+efebf716233c08ae64f74104709dc5fb bfd/epoc-pe-arm.c
+e5062a411407a4e8f94cfe0e931990f8 bfd/epoc-pei-arm.c
+422ecc607bdbf1398914705cc25a7b9e bfd/format.c
+fc8bec4190b9d8fb626bb9395d8c1af0 bfd/freebsd.h
+c3348a714f44a96cc2032f62ee507728 bfd/gen-aout.c
+b0682558ad69d3671cc55f83abebf32d bfd/genlink.h
+663a6979bd331c91d1385445edeca7b0 bfd/go32stub.h
+6c011e2cc19ef4e5e27d334684ae1fda bfd/hash.c
+5078b3985212bed5ac3c79b3b9497571 bfd/host-aout.c
+065b0a6c7a8a5427098e677cef40f6ab bfd/hosts/alphalinux.h
+0c52204c0eb0530561da8699dcfa3452 bfd/hosts/alphavms.h
+b456ff19a38c6a50a7b6fcf23fd9e1f0 bfd/hosts/decstation.h
+2922cfb45e02c6edf595bb1d620ef78c bfd/hosts/delta68.h
+05c0edd67951513bd03cc042835684b6 bfd/hosts/dpx2.h
+c1e482f851c42ca2f436d33d928fa4a0 bfd/hosts/hp300bsd.h
+76a5586b3812d98ca98bf4c45cce3a55 bfd/hosts/i386bsd.h
+81aeb95fc7b74ab9b9f8c5fc80d0decd bfd/hosts/i386linux.h
+edaa62376a9b603f40be272ad9a1f8db bfd/hosts/i386mach3.h
+512b359313f0c3bf22ddde09f931f9ad bfd/hosts/i386sco.h
+402e13c6d261e86aaf96c67e3b3cc875 bfd/hosts/i860mach3.h
+670afabed36b3d49e3c7e5fee2cdbb99 bfd/hosts/m68kaux.h
+678db628d91ca1b6e6ab88cc57ea0bda bfd/hosts/m68klinux.h
+bf8a891bfa8c0536883b8922eeab45cb bfd/hosts/m88kmach3.h
+c02b894dd2e75ac9c268ece62fc47eda bfd/hosts/mipsbsd.h
+dbaab9a86bc5130ad99189c8ddceea5f bfd/hosts/mipsmach3.h
+23b460b9b9ee4bbbc5b43b099d39866e bfd/hosts/news-mips.h
+68f97cde664f22f1ebe7ffce83564ec9 bfd/hosts/news.h
+495f5ce083fe90efb267ffbbe968e20b bfd/hosts/pc532mach.h
+55b9dd83897834c020f30e2fa4b150cf bfd/hosts/riscos.h
+9c4e42b51ed4ef3624d6632d97c5680a bfd/hosts/symmetry.h
+d210f558099621a92ad1d868d9a94618 bfd/hosts/tahoe.h
+e77a36f7eeeee139ec033b09e37ec02f bfd/hosts/vaxbsd.h
+10456e8f19a2aec712bdfff904c7c7b3 bfd/hosts/vaxlinux.h
+95385f49273928ccd97630efcf35c91f bfd/hosts/vaxult.h
+95385f49273928ccd97630efcf35c91f bfd/hosts/vaxult2.h
+59a50941a3ba41d5eeaddfa608ed9155 bfd/hosts/x86-64linux.h
+eb81ed101d0ee1fbe13af6f4e02f7253 bfd/hp300bsd.c
+9a21e2388efe0083ae8b8a00106d205c bfd/hp300hpux.c
+da4091ca346b311435b728ac95b2f8bc bfd/hppabsd-core.c
+890ee98a8f03c08fb1f4afa968ae7029 bfd/hpux-core.c
+f7b33e7dcd153dc5e4a4905f65772e08 bfd/i386aout.c
+eb3bd341db7f74b0dca2de96ac2407be bfd/i386bsd.c
+4f2221b958ece4a1135c89d376459724 bfd/i386dynix.c
+5ea4b70fac02927d272892127e65a114 bfd/i386freebsd.c
+466e000ec97f9ea53439fe3c4a8d648b bfd/i386linux.c
+55e553007461b9d12c9723738ce6f6a6 bfd/i386lynx.c
+184fcf53ece8dbc8c3e5452ea60fdadc bfd/i386mach3.c
+c1e79054ff4fb9e6eb269d78759bc544 bfd/i386msdos.c
+5b4ae611feaf9f968c4d95cc67c705bd bfd/i386netbsd.c
+e56f8de796808ae21194c7f6825d1c6e bfd/i386os9k.c
+5172fbc7af7cf6e98fa68a89ea5a5a83 bfd/ieee.c
+534dee991a296275abbe2ebd2c4a136c bfd/ihex.c
+25509065b1ee664694b3e5c37bb433e0 bfd/init.c
+d0ba25f30c1dd2ec685b8dd421d6dac3 bfd/irix-core.c
+291df23cff915aea08424e59437c5b24 bfd/libaout.h
+b2d73d01dc25de76e92c267cf6d34e12 bfd/libbfd-in.h
+27ec1cbe10f1e22f6404da3ce3387f5b bfd/libbfd.c
+de70bc4e94a5e5a6d75c754a5646ece3 bfd/libbfd.h
+0686ec1e0676bf2876068370968f6ca8 bfd/libcoff-in.h
+d5b97208e105b42e3ca7b913df495523 bfd/libcoff.h
+08ce055f353f29b7dbbd3367cb14d8c3 bfd/libecoff.h
+40fa57a36443af209d40be24fc2507bd bfd/libhppa.h
+38a0dcec5fb59384c9ff6d11642746e1 bfd/libieee.h
+10927f5450b2e259198eabc163385d8d bfd/libnlm.h
+f9d7123c139b25de478c6221908315f5 bfd/liboasys.h
+e6d8fbd8d34251787718d47c0f2b8daa bfd/libpei.h
+bb3cad08f59e273f335a5cbe04404471 bfd/libxcoff.h
+9697e87eaf1aabede0616a88f5e35366 bfd/linker.c
+61146204dd5df9b7bf0a942be89f1676 bfd/lynx-core.c
+47df372ec9d2c9f570e2377a6cd6b2d9 bfd/m68k4knetbsd.c
+bc24228eedac8cd67ef03e2e89c77110 bfd/m68klinux.c
+c2b3e6b9a0227a6fc3d9589f9413aa30 bfd/m68knetbsd.c
+fc231dd7c10b50f7f56316db72781116 bfd/m88kmach3.c
+884aa3acb0cf92f946c86305530c0cde bfd/m88kopenbsd.c
+10fb1267e73e26f05b0d1edfd65941c7 bfd/mach-o-i386.c
+f32bbf93e8cbbf3d1ce49315a731d643 bfd/mach-o-target.c
+15fb1ab9b1ab6344b9f51d9abda19c46 bfd/mach-o-x86-64.c
+ce1434b55a5438f7bb44b91ad342c05b bfd/mach-o.c
+9fd5d5727de6a64085985f5e34af1703 bfd/mach-o.h
+d618facc3e8ce8bf3d02ba452e1be6ab bfd/MAINTAINERS
+43ff191e66ad1e3c9f4388821e873ee4 bfd/Makefile.am
+93a8c8455113e3b10e7466e6a8be3fbf bfd/Makefile.in
+0a2a01a5564c7bdd57d3c467e570733c bfd/makefile.vms
+76a44dbc419f39a2d9cdf76d308b370f bfd/mep-relocs.pl
+7783752d1f86d8464bbfc536d9129d5d bfd/merge.c
+41c58646711a99f6e4b7b1b49fa91c5c bfd/mipsbsd.c
+92d188e365097e030b77d3bceb4d4480 bfd/mmo.c
+e728260ba314147c9534085b7c691eb3 bfd/netbsd-core.c
+8d66f1b8531156a8b251161840b2cd5f bfd/netbsd.h
+5ef760be50db7ca763c85e8a57576b63 bfd/newsos3.c
+2260d5d5b17087621f4d22d664caca17 bfd/nlm-target.h
+ada7e1273c745ce6a3446311be52471d bfd/nlm.c
+e3a11b8c38f8beb8cb380d2556b1fe88 bfd/nlm32-alpha.c
+6fab17bbbab49e405c5403c74c8666d4 bfd/nlm32-i386.c
+15616141c4d4ce3cffcba9fd5a64af16 bfd/nlm32-ppc.c
+e65fcc0e9242ddf2063b573b70bdddbd bfd/nlm32-sparc.c
+6f6955a0a5e3d39a2c31c1d5d7d0ba48 bfd/nlm32.c
+a3d3a8f71632020d3d15fbdc0cfbeccf bfd/nlm64.c
+03ea9182aa386b08ea2c6d5cb852395c bfd/nlmcode.h
+94288f2695f9ec23df20e5a82861525e bfd/nlmswap.h
+7d24843968787ccead71cb5da5c21adf bfd/ns32k.h
+fdbfd6f37c3c732d7b622b8fd5fdee3a bfd/ns32knetbsd.c
+248874cdb74bb34c98ecea6a77b078b5 bfd/oasys.c
+99e0c11af729fd8dc4c17a2688a7dddc bfd/opncls.c
+c01a4933892d6b2e269ee599189401b1 bfd/osf-core.c
+b2884774d5204a41e2560319db40bfae bfd/pc532-mach.c
+8230605678f13811c21ee094ed61ecdd bfd/pdp11.c
+c730ca7a2061acbed6f26534381508c5 bfd/pe-arm-wince.c
+dc0b454eb5ac0d16f390770f3fb53c4e bfd/pe-arm.c
+4dafd0eaf2359f8dd74a9ff32ba069c9 bfd/pe-i386.c
+1a13a241161d4f8b7a40597b7bef00b3 bfd/pe-mcore.c
+5036d14edcbb371eed50e4078541b752 bfd/pe-mips.c
+855f5bdc07113a3d76ea41b5a110dd90 bfd/pe-ppc.c
+de5c8e74526c4e815aecf91d0a045549 bfd/pe-sh.c
+c272f56c8b5aa83b6d878809491505d4 bfd/pe-x86_64.c
+12d97ba29117269a1a8cf0ca362de34f bfd/pef-traceback.h
+5bd6943fcf927aeb8b0f4aa1abda4ea3 bfd/pef.c
+5d711a64601f429fa483785559b743ea bfd/pef.h
+3b93dbc924bcd6ca464d26c42a679909 bfd/pei-arm-wince.c
+cf952c320bd31f09566ef5512192907b bfd/pei-arm.c
+42ca288076eb97c9b810f7bd0c769e4e bfd/pei-i386.c
+a26d0f4cc121b804db0d1296d32436b2 bfd/pei-ia64.c
+99c1d8bb1c1ecacf42ea046353eded35 bfd/pei-mcore.c
+2ab171f6edf98be45f0593435c1b11e4 bfd/pei-mips.c
+315b1fbec795d69ae698d384f1f217bd bfd/pei-ppc.c
+338d87b0cd2a666095744141782a2337 bfd/pei-sh.c
+6943839a518c640cc96c2afd21dbfbcf bfd/pei-x86_64.c
+1816aa7338fd2423e01d0b9db2c911dd bfd/peicode.h
+7a9d44d145a7129525cc428a140d7467 bfd/peXXigen.c
+11680aa1a0255ffb9a1793de6e6c68ad bfd/plugin.c
+2261c135ccf79ec02dc19864386d2cca bfd/plugin.h
+90a6c065395a721003b3a801bc4885e6 bfd/po/bfd.pot
+d900f09c506ad5057a3fddd39e3fab7c bfd/po/BLD-POTFILES.in
+af59cbed52c0a16ed933a2add351b7fd bfd/po/da.gmo
+f42836fa54a22c3b715c61e6df8973ef bfd/po/da.po
+428f783cf48b71cb3854cf24914975de bfd/po/es.gmo
+7d00fa656ac7ba60effa913141f7e3ad bfd/po/es.po
+e2ea0b79036b74441b0d1669f634d9f9 bfd/po/fi.gmo
+20326bc5faafc2b416d9fe250f801e52 bfd/po/fi.po
+90ed30ac694404cbbf6ac7df992ec725 bfd/po/fr.gmo
+1ec22b922a3dbd420200cac12ce739ab bfd/po/fr.po
+adde21abfb12b19302e8f830a86a3b71 bfd/po/id.gmo
+c4d865669e1bb9105341359e764bde17 bfd/po/id.po
+94d7a982350d9e5fee01037195be34a5 bfd/po/ja.gmo
+56dbdfd0ca270129f18a46aca978da3d bfd/po/ja.po
+912c079b0305e916b36d6bbb97438681 bfd/po/Make-in
+844c1ea598f9bcc47870ecf122b15e7d bfd/po/ro.gmo
+8fc4e95db5a00f800bc30c65a30f8a8a bfd/po/ro.po
+7acdb654e9f9fd3cd04aaafd0952bb85 bfd/po/ru.gmo
+8a3d9cf14484c113a278af53928bd1ca bfd/po/ru.po
+e15c998ffa3537ef5f5c5ed225c18279 bfd/po/rw.gmo
+4314f7dc707bdd16e1a3aa6318d52f8a bfd/po/rw.po
+d6a6933ceb56b969e27e4c977bf6f029 bfd/po/SRC-POTFILES.in
+b04862da8728ddf3c4c8a45b18ee35f7 bfd/po/sv.gmo
+dfe82e26118652583a47b8f4771e7e1c bfd/po/sv.po
+495dc4f4a2e82ea81d7226370e07294f bfd/po/tr.gmo
+95bcedd50b1016d3de8c9f543c6b2bb9 bfd/po/tr.po
+03155ac55999ea99fd93db756c85d4fc bfd/po/vi.gmo
+1bbe9236287bcc2e6d317562dda6aefb bfd/po/vi.po
+e0ac4c0bbc954826529362c28e86810f bfd/po/zh_CN.gmo
+1ab81455a3fa63e837709d2924e5f1cf bfd/po/zh_CN.po
+6455e3c85b31e588ecb75f7d3c945c8d bfd/PORTING
+724476a2771f3210c19912f442659c5d bfd/ppcboot.c
+aeadade463fbe3401ef73b3533100208 bfd/ptrace-core.c
+2d6a5be3f5d1b33251fe9a8570e943d8 bfd/README
+1f28839baed96de43492332856fae22d bfd/reloc.c
+a4d110644df46c682e52deab17df66b8 bfd/reloc16.c
+35a62e7106f6ca762b4afa22ea02edc5 bfd/riscix.c
+390127806fd49f3cbb7ad14ea2456202 bfd/rs6000-core.c
+9441258386e8e125722354c26f1f3494 bfd/sco5-core.c
+b10b07f30f3f775a36ac15c4c0360308 bfd/section.c
+898b0251b29e0d0333b717c5fba85f47 bfd/simple.c
+a1a5148e875195c11059c023e9d903ed bfd/som.c
+73be612633c59c18a5b744bdb2362978 bfd/som.h
+fcc0333513e11eced6f7caf5c41bdfa7 bfd/sparclinux.c
+a2a46b3d42519728843beb7307727724 bfd/sparclynx.c
+7dba15a9568e388261655fac84be612a bfd/sparcnetbsd.c
+39a24f4fb73be4ba6b49f262da35691c bfd/srec.c
+650aac6b1948fc417523f6ab33b335a9 bfd/stab-syms.c
+168eb4e7f79237249cc976f8a3d4f13d bfd/stabs.c
+1ded054093de910d9786c62bc4fe8cc6 bfd/stamp-h.in
+33b8a6dbb56569cb0b36a073e2630bce bfd/sunos.c
+92ea3880be875c1b8378bcad7489b928 bfd/syms.c
+7492d6e9f7bdddef8e51b8897b2b20ab bfd/sysdep.h
+31c81ef39b597a4e47385f2def101168 bfd/targets.c
+53357a9b87dd158b90cf790c316fd438 bfd/targmatch.sed
+ee39822c67ebc0722fe775d2d0d92dec bfd/tekhex.c
+1d5d2a98584b8f27cd2cba1b7a8aa9fa bfd/ticoff.h
+cd26654c6eb30680694867e434e40044 bfd/TODO
+f6744dd2c8ed7505ede5614cb352daf8 bfd/trad-core.c
+16d2eaf8a4b6d5a2c90b931c5a1fd41f bfd/vax1knetbsd.c
+3fe7114f6b98c45afeea1c2030f69b1b bfd/vaxbsd.c
+35614e9f4a26c44ff67a78f1c2ff108c bfd/vaxnetbsd.c
+88ef6962a203c349a38631b164f38708 bfd/verilog.c
+c4df6dd675bd3a61a3c3ce1a5da4f280 bfd/versados.c
+7fa91f8c657505b6e0ff0da5d5d5c447 bfd/version.h
+7c23dec4d8799ae0e23659494830fba7 bfd/vms-alpha.c
+1c94de3e3c74fb1e7d31784dcecad4fb bfd/vms-lib.c
+b87c03c4dbdb7c2469bb565c0695487d bfd/vms-misc.c
+546ec97623af181c29dec0b2f0a638db bfd/vms.h
+120cb38c718d121d488f8106cbcdd8d9 bfd/warning.m4
+e3378d2a545225d0a7eceef2efdca7b7 bfd/xcofflink.c
+38d3ff539ce63c1e7096de81bc25dbfa bfd/xsym.c
+11213bf58c2136189edd119d00671f00 bfd/xsym.h
+f85e635b7ec810c1df6fe8ec9bdad616 bfd/xtensa-isa.c
+fc5a13a797dc463213593a836d4e2edf bfd/xtensa-modules.c
+bf8744cdc68cbd134717087cf08e0f50 binutils/.gitignore
+faf4c3a35a9cfcfa3bac81cef5e170eb binutils/aclocal.m4
+15c1cb17f1dd5d7666b49a9c4f273c21 binutils/addr2line.c
+e8ba72588ab0a1d6e8eb190ea778f302 binutils/ar.c
+241e1c3b561bf883d84aa60897595082 binutils/arlex.c
+724d311dc10338d10d27e309fd57b488 binutils/arlex.l
+dad180bcf3810239f066e4fac8c94e34 binutils/arparse.c
+a4cbf0bec6ebfd331903376020268fa3 binutils/arparse.h
+5ef790d0f760b92f754c38165f1ce8fb binutils/arparse.y
+5cb21f36a0ceb86ba42dcb4920ec8255 binutils/arsup.c
+e77e06e678e92fcc6fe2dc9be940b0cc binutils/arsup.h
+d276afbfaf6698f8ece1db0ea1f52acb binutils/bin2c.c
+12df5117000b96a3253221451ed92f55 binutils/binemul.c
+445689c0dcf6a2987caf8dea1b6d9d0c binutils/binemul.h
+7ade5fa13cebda2c3f4aee8527031287 binutils/BRANCHES
+fae780574c7a02c6a99cf4d3ba70dfbf binutils/bucomm.c
+74290145b581c48373615df3f0dddd0d binutils/bucomm.h
+48357d45bd874fc265a6a2c1f3e634bc binutils/budbg.h
+ef9b7bc647a79db90dab70870b7cffe3 binutils/ChangeLog
+75f03b546abf41db936b3eae9ee79760 binutils/ChangeLog-0001
+ac9c338a84bd8da1d3be610a39a75c38 binutils/ChangeLog-0203
+e3940b38e6baee310a1565e098d2d9ba binutils/ChangeLog-2004
+1370cb8435695cc4e035b3b9b3256455 binutils/ChangeLog-2005
+109c2ed912ff71f331e7fc64c3fc7e03 binutils/ChangeLog-2006
+443939e0658790fe3c350e6c9d7faafb binutils/ChangeLog-2007
+8c1aedcc5374a797f183dfb167888ead binutils/ChangeLog-2008
+55e392564810ccb96f6fda031a105658 binutils/ChangeLog-2009
+865b445de9023b5aa261eda9ab1a137b binutils/ChangeLog-2010
+3803ba47ff17cbd2c60e0d28334998f8 binutils/ChangeLog-9197
+aba8ead8b90f015b862015d49357b149 binutils/ChangeLog-9899
+b625039f38b32b2d85754ca1b63e9451 binutils/coffdump.c
+227223c6755798edd29c963b11e05d0a binutils/coffgrok.c
+82bc4db836b3ef52719e637b8873e19b binutils/coffgrok.h
+fa48d78589932d92531b4de0499d4ce4 binutils/config.in
+0f589d7c257fe7206dae7e7829dce4bf binutils/configure
+b49a609f6fc5e84955f76f8cb8e62b7e binutils/configure.com
+e48ff54766c3dffabc9b9b6727f42eae binutils/configure.in
+f418f9fb640961a24ca2b0ed1b3c2b1c binutils/configure.tgt
+2f542e3cf9200b7f969e0889623ecf67 binutils/cxxfilt.c
+7f4bd7f49cd521aeff62f483672aa4e2 binutils/debug.c
+862268d63f628bbefd6e1f913e7bf2eb binutils/debug.h
+0b925eb0eee0e32249b085b3deeab16d binutils/deflex.c
+4de019a5400a7a46b3c9b8731eea6c8e binutils/deflex.l
+defc75c765d8658911bbac2e855b7c12 binutils/defparse.c
+ed7d783b950fb29fc4398040c2e43c7a binutils/defparse.h
+28bfb42bbc63edac3cdce4dfbdc1c183 binutils/defparse.y
+cec602aa7e8925e06a658a3060d42c1b binutils/dep-in.sed
+914cf3215f82a8cfdea3cf8e24b956bd binutils/dlltool.c
+d0b84569cd286ab3ab420824d51ef19e binutils/dlltool.h
+f1109e7fca775039b20e4257af171af1 binutils/dllwrap.c
+aa845f7397bbba0b488d6f2d1e50dc4b binutils/doc/addr2line.1
+ddf94af086e113cd6500f89126030506 binutils/doc/ar.1
+b2114fcaf98f40028d96a800ea784ae9 binutils/doc/binutils.info
+8ebd5cdcdb1aa5b95ec596bf6b9a1ad8 binutils/doc/binutils.texi
+5205d0ffe051674a485114a2932229b1 binutils/doc/cxxfilt.man
+dcd4d3dc67f260131b7a3b9f4b8a7f6f binutils/doc/dlltool.1
+78aa8089457308a805057987488ae236 binutils/doc/elfedit.1
+072910d553f79906db69fa7c0e956bba binutils/doc/fdl.texi
+457443da30398b19ec2156801ec079f2 binutils/doc/Makefile.am
+05118f2e20d47c32c5bd88fd433151d4 binutils/doc/Makefile.in
+44362ff624b6eb8f1f0e337582347904 binutils/doc/nlmconv.1
+bca4f3c54648cfdf15c20d984231f56d binutils/doc/nm.1
+120c80c30ea1821255ae26412022a751 binutils/doc/objcopy.1
+e6a1b53c8c05120ae0be15808de282c9 binutils/doc/objdump.1
+cd7ec09a0e06048366c3d8cca8f85140 binutils/doc/ranlib.1
+09fe459c423472a2aacdae0710062282 binutils/doc/readelf.1
+5d80da60351c35fa95eeeb4ea3ddd947 binutils/doc/size.1
+b12b71c3df97ffb868182be5b87ec193 binutils/doc/strings.1
+36e1a9c5281c94a00821ce6ea9d997a2 binutils/doc/strip.1
+f3c3440631afe89929b4ce601bccb1f9 binutils/doc/windmc.1
+8c54ae560f528443712f9fcee2bab692 binutils/doc/windres.1
+ce256969905215109ce473eb1b99e26e binutils/dwarf-mode.el
+5806a38a763c04a07b2bb7919bbf48b6 binutils/dwarf.c
+f442f6b2434bbdcaa750152487ebd959 binutils/dwarf.h
+923094961e0763c075c483da68323b46 binutils/elfcomm.c
+35353481d838811e1cfb43cb2c18331d binutils/elfcomm.h
+a15674e3b98350f3ae7a9631f66a7d41 binutils/elfedit.c
+8e9d93e95bf05c65cd38b8eb58f547b3 binutils/embedspu.sh
+f4c475327193058e8c173d61eb910ecf binutils/emul_aix.c
+ec9819c7cd765fd7fdc4b452fbacff63 binutils/emul_vanilla.c
+406c15089c0ef118534921eaf8b2548b binutils/filemode.c
+7748d0db0a27f4f55f842af1ffd36205 binutils/ieee.c
+e30cdf08d8264e27b35b920b411fc763 binutils/is-ranlib.c
+d2ea7edc9e4d3ca9d85e80972546170c binutils/is-strip.c
+6594927ec72049c1cbad5546c1dfebba binutils/MAINTAINERS
+8a9589dd0dc29f7e3f668a78d02218cd binutils/Makefile.am
+aff8145a28655099b6112e37cd99cda4 binutils/Makefile.in
+1fc2c9f83e824b21e1b4fbf48804361e binutils/makefile.vms
+84ad11164e15c74fa941f49a2ad0278e binutils/maybe-ranlib.c
+3e286ed9d2f98e9463da6760db792abb binutils/maybe-strip.c
+0ea66d70682ec876032a878491019649 binutils/mclex.c
+2898aeb57f849cf68d690b6c825ce7db binutils/mcparse.c
+2100013c9980b3b1df35509ee0572493 binutils/mcparse.h
+d332f7b72c690e7c24b1b00c92b48b42 binutils/mcparse.y
+839610dceda9891495f29d9e4cfca4b1 binutils/NEWS
+dd9a2a89a4ddf3b33088d49373c2623f binutils/nlmconv.c
+19c1330925184f21af691f14d7b8cf4e binutils/nlmconv.h
+6ea3fef39583ce44f08b843d60946b55 binutils/nlmheader.c
+636cedd9104d690e26d20fbd2ec2b9a7 binutils/nlmheader.h
+fb2f05720b46fc09b021f05c8e250bc6 binutils/nlmheader.y
+aa65002eda108d4495d4eec36bf84c55 binutils/nm.c
+41d8556bd279371fb24dd10f370d684b binutils/not-ranlib.c
+f80bdc8c61ea529f54c93e682505ad79 binutils/not-strip.c
+c1b82941b89f65ad1232a3fce72c5f38 binutils/objcopy.c
+50e9d446a53fa4a93419d69590d986b6 binutils/objdump.c
+f98b9af24f695e5a158294756ba1cca6 binutils/objdump.h
+a8874836f0138c5557dcb5d706bc863a binutils/od-xcoff.c
+024d27e0e050ecbb5028623014af16aa binutils/po/bg.gmo
+0e25fd81191af44f98f4df531e559a77 binutils/po/bg.po
+2d34b17ca7dee26e552080df73198757 binutils/po/binutils.pot
+464b47c4d20bc96d8db3946e7c473a20 binutils/po/da.gmo
+cff5d7523393ad62b7247c324aeee56b binutils/po/da.po
+9638463ad9f240dc22a4b620e565109b binutils/po/es.gmo
+d97675c3c23f18b1c12510b09ddcb41c binutils/po/es.po
+36148a48493f59cc4a227ae1e3a9d20a binutils/po/fi.gmo
+fe7b5752abcdd6ccba618203d7397c1b binutils/po/fi.po
+66a7c50a91ce3a30ce6124b85d6a45ef binutils/po/fr.gmo
+8d3a0e6f6857ed860a756c5ba7f44641 binutils/po/fr.po
+6495de85ae4a9bc16de19a933544ee01 binutils/po/id.gmo
+d0fd2da98fa1316894630f06818e15f4 binutils/po/id.po
+aa394ecec1b8465cfe5f170279231efb binutils/po/ja.gmo
+fe122f75d2b57cf7e7edfc1ac6673b0d binutils/po/ja.po
+8935ae2870f3d67420c16c4b92796ceb binutils/po/Make-in
+41946e0202f2493b6cb294800c88402a binutils/po/POTFILES.in
+7d9d0cc039b5e637e9203e0c1fe8a282 binutils/po/ro.gmo
+048a28aff20f21840e59478819f311cf binutils/po/ro.po
+f0258240e9b64cf9611e1cd020985e0a binutils/po/ru.gmo
+0221ef7e48463012a63562d754500ff9 binutils/po/ru.po
+574d299b75e61be9de2b50beda9a138a binutils/po/rw.gmo
+983ad2a28db3de55195aeb8680aff682 binutils/po/rw.po
+1f61241fcdfa161fa76d4d8728e0ad37 binutils/po/sk.gmo
+47d34295c07b7e482891a5a03cc3c8d0 binutils/po/sk.po
+117dd5c4de6ebc8e658d21aacda82073 binutils/po/sv.gmo
+d643cb6ce7c53550d77a7aae2000eed6 binutils/po/sv.po
+895352681d4358a82bacec4e25a00e70 binutils/po/tr.gmo
+9d11cf1296c72bb6a1189555440ffdef binutils/po/tr.po
+4bd2869e9a1ff1ccb2a810f590dfc9cf binutils/po/uk.gmo
+1c8599fb39ca7b86d7c798e31c167500 binutils/po/uk.po
+810261257e415b8d194dfb95a28b5cf3 binutils/po/vi.gmo
+a2065424532df74ed16bcd37c3c8c47b binutils/po/vi.po
+e4e8cba721856bcf7d5ccf5016a7fdd4 binutils/po/zh_CN.gmo
+42b95da2812ee22e0a980fd9c96d7a1b binutils/po/zh_CN.po
+d66dc645567221704d9a96af2951ec0f binutils/po/zh_TW.gmo
+fc31799334330cf7596de77081fcc3dd binutils/po/zh_TW.po
+5ec1ff01c723ab4ec15f31f697ae2825 binutils/prdbg.c
+253d92247a3802211f202f4fc8d764c9 binutils/ranlib.sh
+5760344d3da073a201b876a2f016ce99 binutils/rclex.c
+65d300feff90dab55877958558676497 binutils/rcparse.c
+5e6a9d25a52382a7c27d837fecec6526 binutils/rcparse.h
+81e87fc12351c3dbca3b8e6bd23c2bf7 binutils/rcparse.y
+6c832b4a8e51d600e29fee3a6e42d510 binutils/rdcoff.c
+697199e5c7baa5f2f1fba82ba6ce05de binutils/rddbg.c
+8cbb05e84e1fca9e580d66e4205d6ec6 binutils/readelf.c
+513698e6b21989373e4e3af16bf9af83 binutils/README
+16e8266bccbca8900d8916b69971bb6d binutils/rename.c
+1f7c060a46b5db465b0694b271af7736 binutils/resbin.c
+8e1e7a197ebc7415c66d12d1d80810c1 binutils/rescoff.c
+e7c9d8262c1267f29d0968dc2279ff87 binutils/resrc.c
+5b6a095db450c2034b50652048f91c87 binutils/resres.c
+6c63c0bffa2f22c651ea174b38d604f4 binutils/sanity.sh
+31cb252b9399425c57e9c67473d97856 binutils/size.c
+2dd7641476b40f8f5552fd10fdb258bd binutils/srconv.c
+5efe36ec18c27590379bb830b0e44c07 binutils/stabs.c
+1ded054093de910d9786c62bc4fe8cc6 binutils/stamp-h.in
+77077460566c339fcbafa5f836e96ff2 binutils/strings.c
+3c5ed03b7572b48a870ae3b0d0f2b12f binutils/sysdep.h
+4b7e4aee9c1a49ac597bf34a2ddc8087 binutils/sysdump.c
+ed86a52ee28b3e3c0866694570cf24e5 binutils/sysinfo.c
+c3e16b5b96457e7b67e2ff09c8434b4f binutils/sysinfo.h
+ac5be3005f420e5dbdc1f5079875bd74 binutils/sysinfo.y
+d43e83232485fd75314425affef20a84 binutils/syslex.c
+4204d6eaa85359f8c46f0ce6757f9c17 binutils/syslex.l
+b3669a390c553395b6151cf5173663dd binutils/sysroff.info
+c47e58a5ce3d88d074da7988605dd271 binutils/testsuite/binutils-all/add-empty-section.d
+c118cd8ac033fa6204640291e2d71922 binutils/testsuite/binutils-all/add-section.d
+24eb345e58fdf80d67e58d68e5bf387a binutils/testsuite/binutils-all/alias-2.def
+aa7cb333b47f17c932b8e0a902de43ba binutils/testsuite/binutils-all/alias.def
+128008662cfc653c01537ca8ee55b28e binutils/testsuite/binutils-all/ar.exp
+f9e394b6e365932e277c92e01c38b76f binutils/testsuite/binutils-all/arm/objdump.exp
+e4d6bc1d9f91e3dd9fc1bdc748097b83 binutils/testsuite/binutils-all/arm/simple.s
+ce88dbe8fe34d243dc53bd29ad39ad51 binutils/testsuite/binutils-all/arm/thumb2-cond.s
+89e2a629cf9f9bc36672ec97018fe79f binutils/testsuite/binutils-all/bfin/objdump.exp
+0deee19f6dd6cb7ada1e41b03202e52c binutils/testsuite/binutils-all/bfin/unknown-mode.s
+34d0ab842ffa4318e8cbe2bba4c565dd binutils/testsuite/binutils-all/bintest.s
+ad057c5aff09eeebe89f53de09a8d6df binutils/testsuite/binutils-all/compress.exp
+46f213c0bf7293623c7c95c1ae72c5cc binutils/testsuite/binutils-all/copy-1.d
+7818c4638e7c83453b51ea5f50b17d62 binutils/testsuite/binutils-all/copy-1.s
+ab57c3ecd68aee03109e529a8e566753 binutils/testsuite/binutils-all/copy-2.d
+9d773d797841500d51b9bf635b3001fe binutils/testsuite/binutils-all/copy-3.d
+c91b865a87aa795cfb14d707ceee8bb2 binutils/testsuite/binutils-all/copy-4.d
+8a6214b0181ec4a73a402e359daf9034 binutils/testsuite/binutils-all/copytest.s
+02d9d7f279a0984cc41028945f230280 binutils/testsuite/binutils-all/dlltool.exp
+f35a6c09a5cad7ba0fb6d10559676f4c binutils/testsuite/binutils-all/dumptest.s
+54bcfeb604870285ff25317f9b5482ff binutils/testsuite/binutils-all/dw2-1.S
+aad696ad9190dbf893ba252118bf626c binutils/testsuite/binutils-all/dw2-2.S
+290565f99df84c536a06b51c589b5e62 binutils/testsuite/binutils-all/dw2-compressed.S
+c0cf290037aa0f09cb8bf5f4a0308a27 binutils/testsuite/binutils-all/elfedit-1.d
+52af9f53ef810af0017ae91cb1036242 binutils/testsuite/binutils-all/elfedit-2.d
+39f724358668c7476c30e7be614e72ec binutils/testsuite/binutils-all/elfedit-3.d
+0ce2463e6b1a2625a5fe0c2410fc7b15 binutils/testsuite/binutils-all/elfedit-4.d
+5b1c979b02a008417d2f9e325196b3e2 binutils/testsuite/binutils-all/elfedit.exp
+d41d8cd98f00b204e9800998ecf8427e binutils/testsuite/binutils-all/empty-file
+bb4a5bfbe0b4ad2e68e63a1765e34a2a binutils/testsuite/binutils-all/empty.s
+4a5e353c23801ad5d7f1705efc5f42ed binutils/testsuite/binutils-all/exclude-1.s
+753b3babcd4dddd3c9189fbe0d11d9a9 binutils/testsuite/binutils-all/exclude-1a.d
+258cffb7b9a54b43feb734b692952814 binutils/testsuite/binutils-all/exclude-1b.d
+1f3298e434f53fee397ccdccf71a744f binutils/testsuite/binutils-all/fastcall.def
+338de0188b3bb5dce910ae34b36ba815 binutils/testsuite/binutils-all/group-2.s
+0a69dc172a9856a7472d8bda038cd021 binutils/testsuite/binutils-all/group-3.s
+b51c995baa976b1e05f7129907249be8 binutils/testsuite/binutils-all/group-4.s
+f1f5e3551c55b9e668394a2bb6c5d369 binutils/testsuite/binutils-all/group-5.d
+0fa93145faaca19a6611f2aa99a43fde binutils/testsuite/binutils-all/group-5.s
+1d96cb4b074018ab36084fd8fd15ba60 binutils/testsuite/binutils-all/group-6.d
+e36dde2922c493422341c9d5ee07b6ef binutils/testsuite/binutils-all/group-6.s
+0f7d8b612442e7c8092eda3c7e00daea binutils/testsuite/binutils-all/group.s
+8e5c9079f46f332db8bbe679b64c878b binutils/testsuite/binutils-all/hppa/addendbug.s
+d91ecc8b2ba6965842cf206d8144c3e1 binutils/testsuite/binutils-all/hppa/freg.s
+00d3925a24762a0bb33529653d200573 binutils/testsuite/binutils-all/hppa/objdump.exp
+2f6e5da6e4d97181a14d1883d6ec8498 binutils/testsuite/binutils-all/i386/compressed-1.s
+2722595c2ce6393e3f1db29e1158d3da binutils/testsuite/binutils-all/i386/compressed-1a.d
+0ff8b5036fd017eeed4f4acda7e383a0 binutils/testsuite/binutils-all/i386/compressed-1b.d
+cbd80207d9daa3db659084562e44d315 binutils/testsuite/binutils-all/i386/compressed-1c.d
+a185ea42f87cb0065db5680fe2d445a4 binutils/testsuite/binutils-all/i386/i386.exp
+b51e5445a91784acba357197cc254d5b binutils/testsuite/binutils-all/libdw2-compressed.out
+a65ca36dd01e93f5ed7e0892d47ef1b4 binutils/testsuite/binutils-all/libdw2.out
+4a62975b0bc7a2cacc7267c73027a6b5 binutils/testsuite/binutils-all/link-order.s
+ab7bdd5c94807ca793bdd422bb7fa8cd binutils/testsuite/binutils-all/localize-hidden-1.d
+870fb293e265cbdfc0b20e308cf00e1a binutils/testsuite/binutils-all/localize-hidden-1.s
+3068cdd8622c3158a8d64899452655d7 binutils/testsuite/binutils-all/localize-hidden-2.d
+6074603691f0b0814906a0679bd883ed binutils/testsuite/binutils-all/localize-hidden-2.s
+6960b342624a796e7a6d83c844087f69 binutils/testsuite/binutils-all/m68k/fnop.s
+170803871c34be39b32958baccaba4b4 binutils/testsuite/binutils-all/m68k/movem.s
+450b6634be2652817af885d09a0c604e binutils/testsuite/binutils-all/m68k/objdump.exp
+17e871b2195207446783ca653463607c binutils/testsuite/binutils-all/needed-by-reloc.s
+0b036a1cb1ce19b648badc11f998ddf9 binutils/testsuite/binutils-all/nm.exp
+871cfc4074a74627f70db8b5d65ce372 binutils/testsuite/binutils-all/note-1.d
+047578440668904d8026b1add421113a binutils/testsuite/binutils-all/objcopy.exp
+2732bcf2c2cdf972a2d87ac79bc1d8fe binutils/testsuite/binutils-all/objdump.exp
+fd4b0cd07b3cf6a6c47fe8becb569314 binutils/testsuite/binutils-all/objdump.s
+8c956691f6dbfc34fe1a6def794d6adc binutils/testsuite/binutils-all/objdump.W
+dd7f18f869cb5e18bd47871da2b3b3b2 binutils/testsuite/binutils-all/readelf.exp
+5e74045f7ec0119e86dc43c1fb75531b binutils/testsuite/binutils-all/readelf.h
+21cb9025a426c8a27de071549d4ef28d binutils/testsuite/binutils-all/readelf.r
+db24a07247dc8cd58f7d1987a549d485 binutils/testsuite/binutils-all/readelf.r-64
+e1697a4ccd84aea00d3b0f2cbce46bc8 binutils/testsuite/binutils-all/readelf.s
+fb9c19e8a7ecec9f832d28e09d960cd8 binutils/testsuite/binutils-all/readelf.s-64
+d7499e152cf7fd6784399d6286b6f182 binutils/testsuite/binutils-all/readelf.ss
+f837b7f5b7d54a009b6fa58736db5a36 binutils/testsuite/binutils-all/readelf.ss-64
+c0ed249ea41764285d5acfe37df52497 binutils/testsuite/binutils-all/readelf.ss-mips
+1c57d7063c628e546f52d021ae710cee binutils/testsuite/binutils-all/readelf.ss-tmips
+209039e1a259e87c10a258b37ab50634 binutils/testsuite/binutils-all/readelf.wa
+6e35412e030ef5b40cf67252c19f8715 binutils/testsuite/binutils-all/size.exp
+24f2423955980928aff6f7d49222501b binutils/testsuite/binutils-all/strip-1.d
+ca7cb6a593cfba58d42c1845a61e0664 binutils/testsuite/binutils-all/strip-10.d
+32197d82e15c9a7194a618fd4cf233f5 binutils/testsuite/binutils-all/strip-2.d
+6ad1b94d328d1c0ff411466ed89ef4f6 binutils/testsuite/binutils-all/strip-3.d
+841a6ca30c94c31c68f61b3ad2036a14 binutils/testsuite/binutils-all/strip-4.d
+3ebf3bf3e2f439e58f1301d695e2783c binutils/testsuite/binutils-all/strip-5.d
+60c1643408fe80e6b352270eeb5cb520 binutils/testsuite/binutils-all/strip-6.d
+6d22a52a8da8cc1b325db54f34193106 binutils/testsuite/binutils-all/strip-7.d
+0775b758e20e9bb93f74b8aad9a17f18 binutils/testsuite/binutils-all/strip-8.d
+6ca1b0b0c7a48b40c06fe9aea045d97c binutils/testsuite/binutils-all/strip-9.d
+ceb92b0ac37d5d22d79f180de017e262 binutils/testsuite/binutils-all/testprog.c
+a22fc47e8c73936b6e9735589e065150 binutils/testsuite/binutils-all/testranges-ia64.d
+f78ff1d70f85baa83d18c33c99cab311 binutils/testsuite/binutils-all/testranges-ia64.s
+ae1382214b1ff8199f9b639ecd6fce40 binutils/testsuite/binutils-all/testranges.d
+bcb9ea582b6f21eb03cbe138b7a89f4c binutils/testsuite/binutils-all/testranges.s
+f61e08dca2771d5b82bafbb000bf6542 binutils/testsuite/binutils-all/unique.s
+96a0eba027bdbce19f3d3e1481212e25 binutils/testsuite/binutils-all/unknown.s
+d9e2cf9793263ff37e8d6c960b280e3b binutils/testsuite/binutils-all/vax/entrymask.s
+435d0d9407c0453a559b69d029be8540 binutils/testsuite/binutils-all/vax/objdump.exp
+7491a51f44f5a1850c80fbd6b4f2793f binutils/testsuite/binutils-all/windres/bmp1.bmp
+d5611fb4c5b61e2fe34951ff33fb8418 binutils/testsuite/binutils-all/windres/bmpalign.rc
+e2852a0b6c605f12dedca9103d1c3330 binutils/testsuite/binutils-all/windres/bmpalign.rsd
+c9c4373f416e2d2321e55e88e7de75d8 binutils/testsuite/binutils-all/windres/capstyle.rc
+2cbe0a310f92d1c5c565041be2f5afab binutils/testsuite/binutils-all/windres/capstyle.rsd
+797b931bd8778c2130cda9fc846bccca binutils/testsuite/binutils-all/windres/checkbox.rc
+b57be16dc0288e8c81246d1e002b580f binutils/testsuite/binutils-all/windres/checkbox.rsd
+16dd4d1dd29fc42f543163e45bbe9da3 binutils/testsuite/binutils-all/windres/combobox.rc
+db15330881f47c75db87a417b603999d binutils/testsuite/binutils-all/windres/combobox.rsd
+ac38823599885e755f2487efa5e214f3 binutils/testsuite/binutils-all/windres/deflang.rc
+ec150037bb58aed9e172b35e56641493 binutils/testsuite/binutils-all/windres/deflang.rsd
+5e29fa118e3e03e87d839cd18fa13f66 binutils/testsuite/binutils-all/windres/dialog0.rc
+ec150037bb58aed9e172b35e56641493 binutils/testsuite/binutils-all/windres/dialog0.rsd
+ac7fafe088ed3f14887a21e8f6c3022e binutils/testsuite/binutils-all/windres/dialog1.rc
+ec150037bb58aed9e172b35e56641493 binutils/testsuite/binutils-all/windres/dialog1.rsd
+62158f4725046ca58344402cbba883b2 binutils/testsuite/binutils-all/windres/dialogid.rc
+30bb522613334d2795e81237a5a01776 binutils/testsuite/binutils-all/windres/dialogid.rsd
+c3efb314b67227f2ae24c087c3b22716 binutils/testsuite/binutils-all/windres/dialogsignature.rc
+99d0d7339a83b8e7bc1442ad005028e3 binutils/testsuite/binutils-all/windres/dialogsignature.rsd
+bdfda752dd00993588658c343d5db784 binutils/testsuite/binutils-all/windres/dlgfont.rc
+44ded16fd8aa5d243d77021e0c63ee5c binutils/testsuite/binutils-all/windres/dlgfont.rsd
+cf3cf5daf8d67b4232d6609469405d0a binutils/testsuite/binutils-all/windres/edittext.rc
+25b9856dd7d85107e7aef77431530639 binutils/testsuite/binutils-all/windres/edittext.rsd
+bd13c4e0cc1c8cf49e20f0f62a5d2ce0 binutils/testsuite/binutils-all/windres/escapea.rc
+75762cb5686cfca0a273cd77d6034a3f binutils/testsuite/binutils-all/windres/escapea.rsd
+5bb46a57c7767b1f24fe00c394f5288a binutils/testsuite/binutils-all/windres/escapex-2.rc
+6bec6d3471e372d9a3f93a14a63639e7 binutils/testsuite/binutils-all/windres/escapex-2.rsd
+d89135fb6f7b032a74a47b697e3cea11 binutils/testsuite/binutils-all/windres/escapex.rc
+1abf5fdcd19714aa098f988aba7ff124 binutils/testsuite/binutils-all/windres/escapex.rsd
+c0d302994d587d584483b7126427a11b binutils/testsuite/binutils-all/windres/html.rc
+a9a27961f5d70ba85af63066155008c9 binutils/testsuite/binutils-all/windres/html.rsd
+8926670e07442451d680f84a644a40a8 binutils/testsuite/binutils-all/windres/html1.hm
+d8e96ae320ba7f82b4526ebcb77669b4 binutils/testsuite/binutils-all/windres/html2.hm
+c6415e3e22d2e645050ff0e0b86f7c12 binutils/testsuite/binutils-all/windres/lang.rc
+9b5e9e1fed319016623963a63e173904 binutils/testsuite/binutils-all/windres/lang.rsd
+65492fa41b4505b7109fe11885084560 binutils/testsuite/binutils-all/windres/listbox.rc
+ffc53241335562ef778e175ba35ddb4e binutils/testsuite/binutils-all/windres/listbox.rsd
+7ffb700c5df7b8440174158dd7daab95 binutils/testsuite/binutils-all/windres/messagetable.rc
+0554a16331bef10ba6dd0b3784b20ba9 binutils/testsuite/binutils-all/windres/messagetable.rsd
+385792077de0ae3063a7ae1e5d0bb0c8 binutils/testsuite/binutils-all/windres/MSG00001.bin
+9f44ebe6636dbc19b95832ee1163301b binutils/testsuite/binutils-all/windres/msupdate
+ac38823599885e755f2487efa5e214f3 binutils/testsuite/binutils-all/windres/nocaption.rc
+ec150037bb58aed9e172b35e56641493 binutils/testsuite/binutils-all/windres/nocaption.rsd
+c895fab04cbfecb4fdb0479474afa20b binutils/testsuite/binutils-all/windres/printstyle.rc
+c9677c01c151e304240fc99f06ef71c2 binutils/testsuite/binutils-all/windres/printstyle.rsd
+b538b353dad0e50d7daec45b6014a7dc binutils/testsuite/binutils-all/windres/quoteclass.rc
+94a00b0c688c1e2617be2234cb8fa3c0 binutils/testsuite/binutils-all/windres/README
+c39f7a75add2211c8b8b16eaebb95c64 binutils/testsuite/binutils-all/windres/scrollbar.rc
+fce7c71178868b81c2cf1b52493ad277 binutils/testsuite/binutils-all/windres/scrollbar.rsd
+1f7bc9a6f7a05e70001fc557f9cdf976 binutils/testsuite/binutils-all/windres/strtab1.rc
+453c4b4299fb6238d70482f45bd5acae binutils/testsuite/binutils-all/windres/strtab1.rsd
+97b8c3c6dc29f4c499d2d75577e7ab5d binutils/testsuite/binutils-all/windres/strtab2.rc
+453c4b4299fb6238d70482f45bd5acae binutils/testsuite/binutils-all/windres/strtab2.rsd
+c770ff0d872ab99b2c10a936ae3186ff binutils/testsuite/binutils-all/windres/strtab3.rc
+453c4b4299fb6238d70482f45bd5acae binutils/testsuite/binutils-all/windres/strtab3.rsd
+a9d96ba138857d78e87ecb5facd8e77c binutils/testsuite/binutils-all/windres/sublang.rc
+ec150037bb58aed9e172b35e56641493 binutils/testsuite/binutils-all/windres/sublang.rsd
+86ec9f86471d9533bbeb127f3024b643 binutils/testsuite/binutils-all/windres/version.rc
+aa55d0e295b56cb92284198366cb41f4 binutils/testsuite/binutils-all/windres/version.rsd
+25eac986945d394de659acceeae822de binutils/testsuite/binutils-all/windres/version_cat.rc
+aa55d0e295b56cb92284198366cb41f4 binutils/testsuite/binutils-all/windres/version_cat.rsd
+b9f69a393bed3ce5d9d432f69092a0d3 binutils/testsuite/binutils-all/windres/windres.exp
+6dccc67a6dc85c4ec2c963aca6eceaf4 binutils/testsuite/binutils-all/x86-64/compressed-1.s
+7751d87bde7d74de21b64371ce6816ca binutils/testsuite/binutils-all/x86-64/compressed-1a.d
+980981b01ab942f4a01283d9d850eba5 binutils/testsuite/binutils-all/x86-64/compressed-1b.d
+e67867a048dbd6ce8aad92503d2b24c8 binutils/testsuite/binutils-all/x86-64/compressed-1c.d
+a2273c64ceaff0e57e46ac75c8fd43f2 binutils/testsuite/binutils-all/x86-64/x86-64.exp
+d1c5665197135db5081abcee29995104 binutils/testsuite/ChangeLog
+5f4416ae47c627699d2fedb9f71be354 binutils/testsuite/ChangeLog-9303
+7d7b53cad398cb2db54997ab03e4f1b7 binutils/testsuite/config/default.exp
+b0bf849c1b988ae9d743f55d6a748197 binutils/testsuite/config/hppa.sed
+214db435855f570f9be4ff3be4196d4a binutils/testsuite/lib/binutils-common.exp
+63c246e6b7b77b6f3262cd4ac06d5ae9 binutils/testsuite/lib/utils-lib.exp
+af8efe2b1bb2c8456b2fb46d5470484c binutils/unwind-ia64.c
+6ae90973bb7dbfbe11c6acc29eee0070 binutils/unwind-ia64.h
+6a38ca7e4bdf036b38254910bd521549 binutils/version.c
+7d646742cf214013c7c027c2d58b7ba6 binutils/windint.h
+669843b388bfd74c6840293c52ab8cb1 binutils/windmc.c
+4a301e97590dbfcc2f7e9c2850ba1bff binutils/windmc.h
+d05f30b8dd7e13c407e2be56257a451d binutils/windres.c
+906f283c22c019d009b11770338477aa binutils/windres.h
+e32ea7016e96f326364990709363105b binutils/winduni.c
+50cc01707c3b40563abe5f438a50021b binutils/winduni.h
+4be2e642df6bef8d5f051c41f0552ffa binutils/wrstabs.c
+0d3c238b02b9d0c1c32347dea7fc490d compile
+0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4
+731a4c2ef07c06a2a175804e75fadc03 config/acx.m4
+3be755875df9da02eb4b0a9badd414f1 config/bootstrap-debug-big.mk
+1999cda4a81e667104bc146b3968eb4d config/bootstrap-debug-ckovw.mk
+57284952a449963da5b91c52608abc15 config/bootstrap-debug-lean.mk
+babb6167c05386834412652e8b27239e config/bootstrap-debug-lib.mk
+9a194b56c06b616528d1e76306aa78e6 config/bootstrap-debug.mk
+3a8fde4ddca4059836ca7c3e22e8ffe3 config/bootstrap-lto.mk
+5c6a030699353abe2ff69294a495e4cd config/bootstrap-O1.mk
+4d3304310a9b7b17872d6f644e1dd7c8 config/bootstrap-O3.mk
+f466ea6022e6627a2e3d94bb0cc7eeb9 config/bootstrap-time.mk
+5fe078f982a106a97bb7da163f32de55 config/ChangeLog
+4d893e26c58ac075bdc51f3b7fd88cb9 config/cloog.m4
+04bdbef77f5fd2e282f7dee0bde60444 config/codeset.m4
+b5a5c394536a15e50be1998bd341fd02 config/depstand.m4
+c0d1018319b14378fd98c86ba62b3be3 config/dfp.m4
+22671f4914769139799e1f72e36be555 config/elf.m4
+042203b305962ba9a8f8474ef80edeee config/enable.m4
+15b8d5adf53ad5ec75f055b193a6b1c2 config/extensions.m4
+8e54553a2c063659a749e0ef9e5348e4 config/futex.m4
+d3eafe382a46e6747e3644cf4a55d5cc config/gc++filt.m4
+1282ef4331970c26224afd363968e276 config/gettext-sister.m4
+2056dbab474e474ab2ae01a42ad5359a config/gettext.m4
+29c9c3d57667bc9e6f14d625b2cd5894 config/glibc21.m4
+c385066b0fe61ef55d44cf2619e79b26 config/gxx-include-dir.m4
+998940a8ee25ca89805ed7da63536782 config/iconv.m4
+7cdde9f19fc614304e49342c660e2d47 config/intdiv0.m4
+e32906a3177f3b368bcd56f9e86a620c config/inttypes-pri.m4
+b17ad59a69316040fae6c3b09187bcbc config/inttypes.m4
+0b63117973333c343e0d0819012b8187 config/inttypes_h.m4
+71bf002195846e85b3a96057f72ad530 config/largefile.m4
+db111161c56fa9d53a03abfb188ad1d0 config/lcmessage.m4
+cbcbd9977ef1239ccac0c5c54d214302 config/ld-symbolic.m4
+1cbbc8830601bf43a3c42ee10a01eecd config/lead-dot.m4
+77931c860806547ce9fc56097a731c6f config/lib-ld.m4
+50120e7fff340d87578219756e55a5e3 config/lib-link.m4
+4455537cdae70977a1283180062a2d8d config/lib-prefix.m4
+534dce34ae221e73e2d67d3ba07f00a3 config/lthostflags.m4
+3fe4a576c2a75736c8da3af1d0824217 config/mh-cygwin
+a2628132e60b0492f8c93ce6ad8c9fea config/mh-darwin
+625bacc09b9992290d94831bd7506bd0 config/mh-djgpp
+9240a2b84d379e3feff49d8311072dc7 config/mh-interix
+683433c6c1f829d4f0aa007dfa29c880 config/mh-mingw
+cd7034dccd04e50150b14c597dd545a5 config/mh-pa
+48d5107b991a0cdbe7eb7022b0dfecb2 config/mh-pa-hpux10
+59846d5e40c35f67530d476403b5838b config/mh-ppc-aix
+3755b5b077053b5de54ff0f781ca9295 config/mt-alphaieee
+96289d06809692c31d71e69c4bedb6d7 config/mt-d30v
+945f54294ca11fd14c1aaaecde3ce7da config/mt-gnu
+1d7419534d43fda437ce0a4f0719ee5f config/mt-mips-elfoabi
+8d6647b6e881a11ae46d9bcaeaa0bd0f config/mt-mips-gnu
+e5f16579c830ccc42e238b49e8409e99 config/mt-mips16-compat
+5aa8f75c6588d513ce199e2e44c206e2 config/mt-ospace
+23e56715f4bf1219d8fe216560c4f3ee config/mt-sde
+9af153786999225732c95595da5ebd52 config/mt-spu
+b2adad0a4a862632ab430160dc6a218c config/multi.m4
+120ec56e3aa27739a2945bc1c8a2530a config/nls.m4
+fa22f7e8f43ef5b6e9ab94ec570c2327 config/no-executables.m4
+a251aa127ad38c507c6c5d6462060dfd config/override.m4
+7632e8393bbd7e57d2e0a58e78521d3f config/picflag.m4
+734b3558fccbdc3e95eca1f1374b4016 config/plugins.m4
+1e69014355ea3f8f6aa2c91b13a7bb92 config/po.m4
+b2d511a8a77414eda79bdee0daccfea8 config/proginstall.m4
+d3cecf02bb97035177818aefbb0e0833 config/progtest.m4
+cf44bcebf16110e74cc72300706818c9 config/stdint.m4
+761497fd3445beb86a90919955d5aa20 config/stdint_h.m4
+2b708186a72f4b6d7afca4de41ae5448 config/tcl.m4
+36af806073153196c545a5a43f31bbeb config/tls.m4
+5e1e75893989d0ae3c0452451cf80280 config/uintmax_t.m4
+6b1c349fb182e74fbc464c50c88fe2ee config/ulonglong.m4
+49305b421244035f19bdccb38a800d5f config/unwind_ipinfo.m4
+3510459bb8dffa5ea06682a29bcdbfa9 config/warnings.m4
+e249d18c447a8372fd1ed5f084284d6b config/zlib.m4
+4adca919c67d00b948bf581991b79bbf config-ml.in
+8385976ed3a37f278f07c10341d53876 config.guess
+040359150cf11493f973a46d8a25b06b config.rpath
+8bfe314d850cea1b947bffc5b434bf73 config.sub
+3ec784e7d9ba16af7ac3eb99efbc1ee9 configure
+0ab4bdcac62c57137e2ce70f989787f6 configure.ac
+385a8c6e3d59641505e9153668eca8d1 cpu/ChangeLog
+57bb884c7f43b4868dc92a9cdbb51a42 cpu/cris.cpu
+5482fe4be796476228dcef116a5085ea cpu/fr30.cpu
+b4ecfabcfae65cc11bf52fd29db940bc cpu/fr30.opc
+2f25728eb6321969c8b21f7ce4bb9fd2 cpu/frv.cpu
+4c260ef104ad0998c6a0f6677fdfc685 cpu/frv.opc
+3e071f0b9c6ed8919fc0cfbd4e2c255a cpu/ip2k.cpu
+2ec6a978ace41c4f6444cd841689b839 cpu/ip2k.opc
+36a3725cfe5376cf5bbe2ba4ba3af92b cpu/iq10.cpu
+c9ca560e22cd9a4f6386fa7d81ba9dd1 cpu/iq2000.cpu
+032c5fe3ad082f7151efc1c5fed33c1b cpu/iq2000.opc
+af81aea42ecf5b05a6177025e94af7d8 cpu/iq2000m.cpu
+4d4be1c663de1008e839d7c600b925b1 cpu/lm32.cpu
+38fbf7cb411f825e5cee1bd6f7e64680 cpu/lm32.opc
+1283a75df6b64b35120fccc4c352a420 cpu/m32c.cpu
+4695535b420da5ea8f9c3240e742539f cpu/m32c.opc
+9079eaecdbe5e3a0ef3e27e756845a23 cpu/m32r.cpu
+1a19d96dd536cdcdef47e68d897fe639 cpu/m32r.opc
+e9533d2b525577101c8331e26c0625ed cpu/mep-avc.cpu
+65ee6179eb425bb10ca3078a08b2a976 cpu/mep-avc2.cpu
+e28d4c4ced67f70f91462403eb823e08 cpu/mep-c5.cpu
+ff87656b73d5b97cf0df1ddae9e105e2 cpu/mep-core.cpu
+9c2945e3977156e41da47617175ac64f cpu/mep-default.cpu
+023d83d84f72b748513f5cb78c179bd5 cpu/mep-ext-cop.cpu
+36dd0633e45fe6482aff65f67346b345 cpu/mep-fmax.cpu
+46bc705e6b0411486ee6e5e29538173e cpu/mep-h1.cpu
+5c7ab28f06eca9cd5b0fea1c4a80659e cpu/mep-ivc2.cpu
+a19fd9e8443a64db1dc14972cac446ab cpu/mep-rhcop.cpu
+26e93da00b3bede6107823e06631c0bc cpu/mep-sample-ucidsp.cpu
+d534cf9b6b4a7e68f003dcf5d9174cb8 cpu/mep.cpu
+be028971bb0055834c3612ca886b9a0f cpu/mep.opc
+d131138bbb159cd94a48bbb552beeb1e cpu/mt.cpu
+5f68403905e01ac34a57ec0bd0654dc4 cpu/mt.opc
+ee0a9dc3f65e1227da3e29a6f2e0b103 cpu/openrisc.cpu
+93a4d6e2606566a4effad67f9d4d4aea cpu/openrisc.opc
+2ec1c54e8542038a6e1623a6540c6d71 cpu/sh.cpu
+e9b8e80ddc3003dd30c422877d4bb767 cpu/sh.opc
+16f51fbd17b7bbe501733bc197b50717 cpu/sh64-compact.cpu
+3935b10637681bb2478258da8908eccf cpu/sh64-media.cpu
+d186b867bf5b1d1468f0db54b209a404 cpu/simplify.inc
+948e8928f44c21e4e46631023475d4c8 cpu/xc16x.cpu
+489902d19fb758761a771d924f53612a cpu/xc16x.opc
+3fe5de5552242be376bc227337bf95fc cpu/xstormy16.cpu
+8e3b808b3f665daa3a35b5333062ea9e cpu/xstormy16.opc
+21504de31981a67b5b93b265029d1865 depcomp
+2fbd66ce879b3c1f9dde5a1bb1e4da93 elfcpp/arm.h
+85ce66ba60e725eeb85390bdf0e1618a elfcpp/ChangeLog
+bbe53a37fc6d5d8be4fb08daf8284581 elfcpp/dwarf.h
+cff7cf2a7a4992ab4d4a21a8c9a1dd3f elfcpp/elfcpp.h
+6d800de71808f85ef50b71fbda690bf0 elfcpp/elfcpp_file.h
+405a84dd64429083e7a1b6ab06b5dd29 elfcpp/elfcpp_internal.h
+75f2047addd89b7e1d9c0e4eef76a227 elfcpp/elfcpp_swap.h
+5d5536c2c3f21b5d5e4d0b858c32a350 elfcpp/i386.h
+ec96524676323bd37869782ba05e3c4f elfcpp/powerpc.h
+293fa7cc3195d9c12479108a2a31b5dc elfcpp/README
+6b1aede3fa632dc16fc154360ca41a3e elfcpp/sparc.h
+625867cb35c566ef0d4c2fdbad4bc0fe elfcpp/x86_64.h
+d22506533b932d8c1d49445c4f9889e7 etc/ChangeLog
+a20b40a0a5d3282f6a97c627be1e38c6 etc/configbuild.ein
+570746cd93c4dae506cf2a6153a2a1b3 etc/configbuild.fig
+f97ac2d5e05edeb335b73f8b6beef581 etc/configbuild.jin
+b2851bb6d77822adc89ffc6d323b5fea etc/configbuild.tin
+e67b330b1ad623f1bd3850483cd4666f etc/configdev.ein
+c1f7c41d3e596256ab5f5f933a66293f etc/configdev.fig
+8e14386548b8da4c5072aa2abea55886 etc/configdev.jin
+32fc10cbdbf679bd0ffc8857cf069b43 etc/configdev.tin
+3730d24b1dbe4961124dc2288b6997fc etc/configure
+04c402a3f17c2e0e5d13e424d617e88a etc/configure.in
+2e5d03d7e059e2f8b4c14b8bae4b663d etc/configure.info
+41ad927ae6285207ad5ba60aaa68c84e etc/configure.texi
+ab0fe311032294b952da80585b8b90e7 etc/fdl.texi
+07570ba317be730a55c952a81d92dcef etc/gnu-oids.texi
+16d5de91d4a0b2dd0259cbf784de927d etc/make-stds.texi
+ab62f0847c161211feecf2530c6ba60f etc/Makefile.in
+416e4db8d33628997a1d97b6fc06335b etc/standards.info
+2b58a4439cb76a759259bc3341b2f67f etc/standards.texi
+d5faa80d97899ae08accaff400923890 etc/texi2pod.pl
+df1c60e7555bd16af999e1170e594c29 gas/.gitignore
+0ccf7e1ad0698f58fd8eceb1362ccfbc gas/acinclude.m4
+f2b796b5a115fc938144622cd5361773 gas/aclocal.m4
+2a5f1d9597be420bdfa50f0a6f689564 gas/app.c
+9d31310c88567b4638f168f6dfc87a38 gas/as.c
+2e9c10ce42cadba51ec8ec0d543adc7d gas/as.h
+e25637964415c4475a64a2a5c7cb963b gas/asintl.h
+6c8d6099ae64334a6bb30e8adc4083d8 gas/atof-generic.c
+c6df37b6419ba5ecab16a4c31a82bf20 gas/bfin-lex.c
+57f1e316f19b1f89f4b93940ef13b0a9 gas/bfin-parse.c
+b153c3067dd3c07ca9abb242b372a842 gas/bfin-parse.h
+c8e21390fc2415e6603e21d7e44ce2d8 gas/bignum.h
+c87664d9e05462d25308624a5caf49a6 gas/bit_fix.h
+18447cdc0d8c371154dde574fbbd6503 gas/cgen.c
+495fcb482c46f0e459d40f50000575ab gas/cgen.h
+18b604a216acce6875adc6a10def053f gas/ChangeLog
+d92c3865d6ed795c892f2cba004856e1 gas/ChangeLog-0001
+f985628fdd8bed73c8948cc8496a1af1 gas/ChangeLog-0203
+7ee4a40be5732a4dc9b8f09dd534dffa gas/ChangeLog-2004
+8eedb9e8a38e7ca4e5bb584e1fe0a7cf gas/ChangeLog-2005
+d92c5b2a557f33fc367e457097257fb8 gas/ChangeLog-2006
+7d03a3dcbf7fb50df66016d49100e59c gas/ChangeLog-2007
+e9cffe807ab956e45f7cc45bf698e101 gas/ChangeLog-2008
+e8376db1e4e246b2639ee6460adb1e20 gas/ChangeLog-2009
+df53bc3528c9495e3c2db81c95896d6f gas/ChangeLog-2010
+1341d014bf9d648fff92c7815bbc7596 gas/ChangeLog-9295
+2ca0a735423063fa9757a564336be2f4 gas/ChangeLog-9697
+e6aed0ab8c1b1b6bcfdae6d97862b880 gas/ChangeLog-9899
+0963b41edc7e46fea7d776fcfb2368ed gas/compress-debug.c
+5b72e9fbef33882696552d87e7ce38a5 gas/compress-debug.h
+7a274ac289093d1a89223fb6ca9c1f95 gas/cond.c
+a7f496f8924be2f4cf8e9c870d7b4fd3 gas/config/aout_gnu.h
+beeae856d74dcefe109aee0059758db4 gas/config/atof-ieee.c
+38f6e7dd8ad06d9b2bdef8019f772f6f gas/config/atof-vax.c
+a9c44c515e605173ce6298ea81eeb0ea gas/config/bfin-aux.h
+ec060c6c4a1cbaa48252bff5ecd87b20 gas/config/bfin-defs.h
+9aad513bf660346ab10b41c8c4d5a9c6 gas/config/bfin-lex.l
+704ed8270e50653ac48a6058772b1646 gas/config/bfin-parse.y
+46d27aacfb59fffe2982a15b81323c4a gas/config/e-crisaout.c
+3fd339133d627c50fe093c3984d4d020 gas/config/e-criself.c
+9a8cfd650220df5369837a3f65ca26f2 gas/config/e-i386aout.c
+991fb4f985c6cb6ffd333849c20a7bc2 gas/config/e-i386coff.c
+b32a87acd5a22a9362fee074ac74c596 gas/config/e-i386elf.c
+55272227032cc7a89abb3c5eba472f50 gas/config/e-mipsecoff.c
+cb10da9eb9531fe5102801f2c8b8c003 gas/config/e-mipself.c
+5c5a38e784e146d5c513fe860f32aa4d gas/config/itbl-mips.h
+797e197f24c46a767478c28bc5dfece6 gas/config/m68k-parse.h
+82ca3755ce16eb16d66b0cb0d9cbeff6 gas/config/m68k-parse.y
+3829861f76e3e56a4ab283dbb08f9359 gas/config/obj-aout.c
+4e0ffff4eff7f2f318fc985733d520ec gas/config/obj-aout.h
+9a075d669341ff5235dd7a6e5e7a2255 gas/config/obj-coff-seh.c
+3f8d5676f9f2f63384d1d43a98db7578 gas/config/obj-coff-seh.h
+bec79e69a081f0b8d14f5746fb2e5c16 gas/config/obj-coff.c
+e54ea319c9181941b59617f2d53d9a71 gas/config/obj-coff.h
+6d5a47d0bc8ebd96700201636afa2c96 gas/config/obj-ecoff.c
+2a7022ba7520b4607321abddcdb5139e gas/config/obj-ecoff.h
+76856e8c2ffa30544cc91d002eb7ccfb gas/config/obj-elf.c
+d6d612783f54717f1a9c2d8ec1b347b2 gas/config/obj-elf.h
+fb75630f101d8eaf2a553370969c0dae gas/config/obj-evax.c
+7105d3d5805b5a080b72d39ed47f9f64 gas/config/obj-evax.h
+10ebc9c0079e17d556b7eafc311a472f gas/config/obj-fdpicelf.c
+3a5af93d62798495841899179308deac gas/config/obj-fdpicelf.h
+b15bd99506520907633f051cf3a9f485 gas/config/obj-macho.c
+4beaa6bade0bc89ce1ffeb696f01da09 gas/config/obj-macho.h
+09b3f329960521fad6f48800197bd140 gas/config/obj-multi.c
+b76cf25d1c76e6b9b06147c811e7e618 gas/config/obj-multi.h
+e51a0e267c6687a984bb5fbb5ef83e7e gas/config/obj-som.c
+99b1f3015034ee964bc7348b0d55eb87 gas/config/obj-som.h
+77df13b9b47c6eedd6bfa8035e96e5da gas/config/rx-defs.h
+80d0d13679e0f68515bef1999feb9a9c gas/config/rx-parse.y
+55944d51d9928dede6950556ce28fa8a gas/config/tc-alpha.c
+096c407c69a2ceb0d13006fe1b2f3fc9 gas/config/tc-alpha.h
+2b9925ed3c6565c2802a3c744c787a95 gas/config/tc-arc.c
+11b936fdbc63c624d6713a01be12a049 gas/config/tc-arc.h
+c5b5cd021e37dc9879410aff84c8168c gas/config/tc-arm.c
+c6aae64d0b921890129826c297cff793 gas/config/tc-arm.h
+a9af3f31fb714e940991c4ddbfa08675 gas/config/tc-avr.c
+85a969a2c5df82c892f3aff0259b19b0 gas/config/tc-avr.h
+de44dc1975bf920bdad2072511968556 gas/config/tc-bfin.c
+408c3d212dd7c8d3e30765b3ca72d678 gas/config/tc-bfin.h
+4085c77671ff4e22b1ee2e3f1b526b97 gas/config/tc-cr16.c
+16e337635d412bdff3d59cbdb9eeb954 gas/config/tc-cr16.h
+2581a3c30987111b1ae59c17d04941ae gas/config/tc-cris.c
+df9261bbdee1d39086f7ff8048d935bf gas/config/tc-cris.h
+993fe511fe447b322e6fe5d60704cdda gas/config/tc-crx.c
+67e306cfe64c96a4797f4e06978647e8 gas/config/tc-crx.h
+f8844cb249dc02eae2a6c4b13fd2cce7 gas/config/tc-d10v.c
+3fd4b8aa4d965c70ef380972d732a70a gas/config/tc-d10v.h
+4a0aa6b92f7413c7dbd031d8f2b60af4 gas/config/tc-d30v.c
+98d2a1a66b8ace60c1fc95e4065a0f88 gas/config/tc-d30v.h
+f0d4724b115a07c9d3d6dd40e5feb498 gas/config/tc-dlx.c
+77b8d3dd611a1ca44eb35ae7ec9af0a3 gas/config/tc-dlx.h
+4a5a7060ab2a0fecca7b3468dae10abd gas/config/tc-fr30.c
+3050259b4ee050ac6d58b712674e22ba gas/config/tc-fr30.h
+30d620d2d0352f47d652e9025d7d32da gas/config/tc-frv.c
+121f5e4b3d7f5791c347c5308f4f8377 gas/config/tc-frv.h
+1f33bef0e6ba089d1e5952b8acd94747 gas/config/tc-generic.c
+7a2f6a786601e834505449bc5383f854 gas/config/tc-generic.h
+e607a9614b65bbb5ce94c21e0627066a gas/config/tc-h8300.c
+17190700077711741e7b153827b835fb gas/config/tc-h8300.h
+a91ea59d7da7ad90f9de893cecd6d2a1 gas/config/tc-hppa.c
+c76a58e2640357f838aea36277d846dc gas/config/tc-hppa.h
+d61bb07f4418491d1a677c77eae67a86 gas/config/tc-i370.c
+7dccf2b51236e3ef7deeaac89dfa991f gas/config/tc-i370.h
+4ddd495eadaf535c00f43678adba6c40 gas/config/tc-i386-intel.c
+f907ab64c54e7d2de68b440c358e2ef5 gas/config/tc-i386.c
+49ba887bb6aa570e9bdbec41c1b24fcb gas/config/tc-i386.h
+41f969a38a7e0814e5b10c4433ae154c gas/config/tc-i860.c
+1cc39b1b19b8310594c2a43fa39c88ad gas/config/tc-i860.h
+da1bf97ffec4c08aea1ba64f0faff144 gas/config/tc-i960.c
+5905fb2a619cd2b1915d3b3e0887a2dc gas/config/tc-i960.h
+f61d1ebef368ec14486ca75a30260164 gas/config/tc-ia64.c
+83e4a795407409441cbf4a5f191ccba8 gas/config/tc-ia64.h
+1b2598a7c7aa4bdeab6fc9376f78ec10 gas/config/tc-ip2k.c
+7dee47fddfc7fe6644c874b61f2ac3ed gas/config/tc-ip2k.h
+c3b3aa6e915f500aadd5a93d96c506ec gas/config/tc-iq2000.c
+564d9c7e920d871b650d9ea9ea34b4a6 gas/config/tc-iq2000.h
+03af11ca4e0b1ebc2f62219617cb91ee gas/config/tc-lm32.c
+c2f3efda51c738051232915d0d7560e9 gas/config/tc-lm32.h
+48a896c6e2d032c64c4aab54c6f434d5 gas/config/tc-m32c.c
+192b78c8854c3618e4730d287f481add gas/config/tc-m32c.h
+70bccc9b91c9ea7250c52bc94cf131c4 gas/config/tc-m32r.c
+0c0a0407f136882d0321dc1ec4b39516 gas/config/tc-m32r.h
+7725810e321ffec6fd146db9448e63d6 gas/config/tc-m68851.h
+e4e00158e09af8a42b9617f941a39e62 gas/config/tc-m68hc11.c
+0e4cbbc6ceafd46ccc91a6c580325d97 gas/config/tc-m68hc11.h
+b8ef99c69980b6ea33190af8752d75f3 gas/config/tc-m68k.c
+22ebe4d0cc57a8a1af63c924fc23ce8b gas/config/tc-m68k.h
+02b9ae70fb2f707785a5d5588cc2ced1 gas/config/tc-mcore.c
+22dce6a65547b031a610f2d96397ea87 gas/config/tc-mcore.h
+4578a75756f4ff2a8a62d14de67775e0 gas/config/tc-mep.c
+c1285c2279565713c1eadbb52226c3d6 gas/config/tc-mep.h
+b5abc2a03f5c7cd5bca1cb03a393f1cd gas/config/tc-microblaze.c
+2e4ae8a651b93205e965a45b872a127f gas/config/tc-microblaze.h
+b61ac53de640423d39c5902a1201e49e gas/config/tc-mips.c
+380de0347b8dfbd631d993336b0477c8 gas/config/tc-mips.h
+972749ec51c47a10efea653d23bbaad0 gas/config/tc-mmix.c
+9c9946ef89dc77be99368a225a024803 gas/config/tc-mmix.h
+3a4089a6abed589dc9a4fc1b3962194d gas/config/tc-mn10200.c
+e1fe4059bc58737d2a1a2cd70b17096c gas/config/tc-mn10200.h
+8efa4d638dd7b54eb2c7f9247de6c8d4 gas/config/tc-mn10300.c
+b23327a62392758125f64e8d8f071ab6 gas/config/tc-mn10300.h
+e13ba96e47cdfef9dd64a862c8ded7fb gas/config/tc-moxie.c
+c0f246b1b53d88033b92672a7da7520c gas/config/tc-moxie.h
+b1248e373226785c89b551989cd8a070 gas/config/tc-msp430.c
+323ddfbcec62e838a1bbf5a068f8a379 gas/config/tc-msp430.h
+f1f171c1f333c606b83da0eae976a844 gas/config/tc-mt.c
+80afaf3938f8136ac4922c3de5e48462 gas/config/tc-mt.h
+906f66f29633dd42a07de0a5d59c968f gas/config/tc-ns32k.c
+6bcefc8b0dd30c7c12e4349e6fa4fa90 gas/config/tc-ns32k.h
+53c7f067defcff62b1e3ba59585ca56e gas/config/tc-openrisc.c
+cdc0e43fe4f2e290849b55a28ebcf358 gas/config/tc-openrisc.h
+9418e7f07d513cccac1d2c411a0e6292 gas/config/tc-or32.c
+2352f77e742370578a89ffdca5d719e3 gas/config/tc-or32.h
+4fc0b798fb72cb77461d7f5adf2f1317 gas/config/tc-pdp11.c
+f9cad0069f8a7b2f076a80c6309f2ebb gas/config/tc-pdp11.h
+e1448d84457dc273ffd42f8a2fbffc82 gas/config/tc-pj.c
+5b7366e23ad26831a0037bd3b93d3e4e gas/config/tc-pj.h
+8e1e787df618720b9939df091c8b05ee gas/config/tc-ppc.c
+9026a7159b043505e9be456b6429ecc1 gas/config/tc-ppc.h
+80cc1940ee7334dc40b8a350ad2b2042 gas/config/tc-rx.c
+b8cd6ee2d5c0f91f7e6af6db2d7d8e94 gas/config/tc-rx.h
+361ce8967941556e65b1386c945984c4 gas/config/tc-s390.c
+29f545fc87e1f45334513612a0ddbf40 gas/config/tc-s390.h
+31c153b4b17fdd8af620b96f66c668f3 gas/config/tc-score.c
+8e6d62acf30dfed34157b0ca80896a5e gas/config/tc-score.h
+fe832840a7da5c61cd39b67af032987b gas/config/tc-score7.c
+cb570f60972cdcaf185bb0a45dc4c4b1 gas/config/tc-sh.c
+a164375e7e73162eb39b5d2e90f2dfe5 gas/config/tc-sh.h
+bf9ebe18553d7beb7584d08ea2259730 gas/config/tc-sh64.c
+b31ff52a3e0405a9ce018c551399e80a gas/config/tc-sh64.h
+5a41ce2bc732de21ecec7fca0c30fb5e gas/config/tc-sparc.c
+965d4e3ca34f2a64e8e445aa638b2d80 gas/config/tc-sparc.h
+4bd2fece53b305234c4b619b8846e8f9 gas/config/tc-spu.c
+7a2c803611ef7ced54ab8c9cfeafc2fa gas/config/tc-spu.h
+03bbc6fa33cd6ebec70dd5ab061c5751 gas/config/tc-tic30.c
+6ba82f6abe777d7f204c60c923bbd1cb gas/config/tc-tic30.h
+c19b842b6922bb8eced42872ace677dc gas/config/tc-tic4x.c
+71fab4042ca37eb10fb831dea6c316f5 gas/config/tc-tic4x.h
+8b58d3b74bf7b4f93cf9357b0601ddcb gas/config/tc-tic54x.c
+8c571810f8b8b2001882528175733c72 gas/config/tc-tic54x.h
+ece8bcbe81be5d93013d376dc4441497 gas/config/tc-tic6x.c
+bed34a6cd5a73b092afb6d0cd91b99cc gas/config/tc-tic6x.h
+905dcaa2e32b77ce3b2a0e37f09ed7ef gas/config/tc-tilegx.c
+8dbb571a5fc7fef82f427d05f30e9727 gas/config/tc-tilegx.h
+4b5ba01dad63eb15b2f7d7245757b077 gas/config/tc-tilepro.c
+c47624a5e236948cba86efa034f1e16f gas/config/tc-tilepro.h
+2fe941df1111d332e9d176af0afd3f5b gas/config/tc-v850.c
+0c9681112da2e41d0087b4ecdb56b9c2 gas/config/tc-v850.h
+6bf36860fa16a4d3945d875df3887c64 gas/config/tc-vax.c
+8256b4c41eb2857c423f9a594cf2b3cc gas/config/tc-vax.h
+754e98e59b3c817eea47508b36db81ac gas/config/tc-xc16x.c
+b9f7c9d1143c443afd567445063d237a gas/config/tc-xc16x.h
+5876a94f1c988da28e07ab1a8ddf4889 gas/config/tc-xstormy16.c
+0d07ca8e159011c0d4d15db8d781855f gas/config/tc-xstormy16.h
+afad24c658c6b7ee98b9dc616a9888b7 gas/config/tc-xtensa.c
+8919498b090fd3ad00b7d0b6698eed0e gas/config/tc-xtensa.h
+f56fdcd3a739d7a68d02c3b10899650f gas/config/tc-z80.c
+dda5d59c9501688ba620f7c5c26938ef gas/config/tc-z80.h
+742550db20b23687f1bc9872fdf5fd2c gas/config/tc-z8k.c
+654b655e3637d9b3e4976fa4659a3425 gas/config/tc-z8k.h
+846f1bd9e1ac66e299e1f5f2f0a26d28 gas/config/te-386bsd.h
+82978f6c9dd082849f4c4a8ce5195874 gas/config/te-aix5.h
+e901549aefb8b308ab9856c37f823b4b gas/config/te-armeabi.h
+47acc24c7f9c17376db9206e51d80095 gas/config/te-armlinuxeabi.h
+17d038880ac663d82d0073ce8aaf3611 gas/config/te-dragonfly.h
+89b8eb84b13d921baacba0fb5cc5d94a gas/config/te-dynix.h
+19a15130d5f27821bd6a33961ee0b746 gas/config/te-epoc-pe.h
+ac2563d347522fa121654ca11fdeea14 gas/config/te-freebsd.h
+ebd37057dfb2465eceb5f25740dc9ebc gas/config/te-generic.h
+0f429c364757fe87349aee8defe34604 gas/config/te-gnu.h
+34f166f075e66d3e0f5fccc1dedbdb2d gas/config/te-go32.h
+a888715f1311630c88260a460af84fc2 gas/config/te-hppa.h
+9a256557e990376c03c799f23447d3ad gas/config/te-hppa64.h
+1dc4b217e7321782918812087dfec497 gas/config/te-hppalinux64.h
+f054729d11e4bdc0d511de0c22771a84 gas/config/te-hpux.h
+482879c6ae606c3b430e6826ebf8dd68 gas/config/te-i386aix.h
+b0bdd8286d474201386f781932f73fa3 gas/config/te-ia64aix.h
+aa8fabcf3d3093365a232271033ff216 gas/config/te-interix.h
+480085f6479825238a1496c74d985737 gas/config/te-irix.h
+35e986b0ca44cc9e79fa57c2d7ab0ead gas/config/te-linux.h
+95a3614361330b27635b2a3f93d7c6a6 gas/config/te-lnews.h
+7dd69643aa20c8174bf37930d4973eee gas/config/te-lynx.h
+7a54940f07dbcf6b4eb99ab07e3faa8a gas/config/te-mach.h
+f1bafdbbf6272e7496725b8302b30e79 gas/config/te-macos.h
+bb0e75e1a1c031bb09a660b4360140a4 gas/config/te-nbsd.h
+ded7737a8aeac92f12c4013bf0d9e453 gas/config/te-nbsd532.h
+8f0bc9c855c33c453250a60b57910b8c gas/config/te-netware.h
+1b08dadc1695c748f88e7f080ef28f66 gas/config/te-pc532mach.h
+9b79ef8ff3b3c00dabb275eedbc13c0d gas/config/te-pe.h
+0d376aa34db1e2863f3509f47027dcaf gas/config/te-pep.h
+5ba13db883834de33b7a3c24116ede95 gas/config/te-psos.h
+3e7327df1df473529e30df0a10a31e65 gas/config/te-riscix.h
+47b89894b5e5cb88a4d4822530c1cbb7 gas/config/te-solaris.h
+b3878236b9488c1a4facd0a31544aa3f gas/config/te-sparcaout.h
+ddd6bf4b762e74b3b3ac1b928098f09c gas/config/te-sun3.h
+e884942337b3717dcbad12574a4ba59d gas/config/te-svr4.h
+03f0de9fd35c141fc5f9905942f03d15 gas/config/te-symbian.h
+0d4337a94ec6ceac928e434d3f5a4c37 gas/config/te-tmips.h
+67360e326453dbac4013ea8bac7c4148 gas/config/te-uclinux.h
+046f5840c299eeb4ebde0f39e7b5ed81 gas/config/te-vms.c
+2a76e2eca66b9d387e5b927987e2681a gas/config/te-vms.h
+6ab9e45fd87c377872fd3e83abfae703 gas/config/te-vxworks.h
+384a20d298a5bd6577e83e8591fa8a0f gas/config/te-wince-pe.h
+fc884f4704cef426cd35179c5d922795 gas/config/vax-inst.h
+1bc31c6cab3996a70557f19b791bfd2e gas/config/xtensa-istack.h
+38fa59f76ece285ac497d958ddae0f1b gas/config/xtensa-relax.c
+7de6470b79d43c6db28c845e141bdaef gas/config/xtensa-relax.h
+a557cb7777909ddf98d654b9bba3b485 gas/config.in
+019fadb34c45c331b6badff0440cef52 gas/configure
+7e6b42997f912871798bbfc004339411 gas/configure.com
+de3e615b66769c08efa36fb7b1fedc23 gas/configure.in
+1a106b02440f264426c7d934d85600ec gas/configure.tgt
+53db0ab868dc9516af2c5ab97a8450f0 gas/CONTRIBUTORS
+d32239bcb673463ab874e80d47fae504 gas/COPYING
+046b766092400d556fe2c48e86605010 gas/debug.c
+36285069bae7f4dca379829241710bd4 gas/dep-in.sed
+d2bc182dd992e21aee661917228a59a3 gas/depend.c
+b452cf27e5b22a158729680670b665b1 gas/doc/all.texi
+2654b2e2a287b73bfe9ba54dbb603c8c gas/doc/as.1
+dd2194e9baa7fd04953866e12df879eb gas/doc/as.info
+7358435d0b4801c1c7c92c9033e8085e gas/doc/as.texinfo
+b452cf27e5b22a158729680670b665b1 gas/doc/asconfig.texi
+b4c9c0f1aa186794ae86366a85cfb7d6 gas/doc/c-alpha.texi
+bc80ddb6294fc82e2ea4f425f38fa672 gas/doc/c-arc.texi
+97e140888e939afce4e1132ff0f55dd6 gas/doc/c-arm.texi
+67dc35ff653d7b8068818b47598980a8 gas/doc/c-avr.texi
+aa9ea84d18e896783f89faa3a90a0fed gas/doc/c-bfin.texi
+179b2db45d3622eae69f59a6de37e20b gas/doc/c-cr16.texi
+8f78a32066cbf6a56e8f8c4dd571ae38 gas/doc/c-cris.texi
+dff8832eec63f574612e2eab23deed7e gas/doc/c-d10v.texi
+eedc75ac8669cec1a86d7ea12d34a0d5 gas/doc/c-d30v.texi
+59d3e64c8f4f965b3aaf283c39c7a22c gas/doc/c-h8300.texi
+c66d36fa35a14bf3cda80832c130d87e gas/doc/c-hppa.texi
+737140a2ffd746cdba96fa47fec328a3 gas/doc/c-i370.texi
+9f42ee3142ed56f70c04bc3f5f1cf1f1 gas/doc/c-i386.texi
+9e80d5308b76432b2ba1290eb636268a gas/doc/c-i860.texi
+fcb8d9d5542c91f40e11dbbb5b0399ee gas/doc/c-i960.texi
+9553acbdca626eca22306c81d17f5081 gas/doc/c-ia64.texi
+936a09f52577e059778d36472a6413a4 gas/doc/c-ip2k.texi
+eacbb6dc4cb37bb6b8dcb771af41d7bf gas/doc/c-lm32.texi
+1cc920d421ece763d3ab4ed3857e3e35 gas/doc/c-m32c.texi
+0639d7eaf2dced3275e868a6ddfb759b gas/doc/c-m32r.texi
+84578142e7b85437ec2d14763de255dd gas/doc/c-m68hc11.texi
+e824c3e3d9490c07e40b9eef9d1940cc gas/doc/c-m68k.texi
+16226640ab8e14104d363cdbad5053f5 gas/doc/c-microblaze.texi
+523c4541cfee611cfce8713d1df41f4f gas/doc/c-mips.texi
+a6314182d1319dd718175347b831f048 gas/doc/c-mmix.texi
+f9605e25ab629d224ed8ccb80f199f00 gas/doc/c-msp430.texi
+baac99e8bc5ff2ccb8dbf425b8fdf69e gas/doc/c-mt.texi
+ba35f5e8ce25efb33c7de10fe31ac8e8 gas/doc/c-ns32k.texi
+3fe953291dab4fece9848fd397316df4 gas/doc/c-pdp11.texi
+b4410fdbed610cd23fc2fec23ebcbc03 gas/doc/c-pj.texi
+8d7969cab108648c0654099181cba0ff gas/doc/c-ppc.texi
+90ae7923d96f62d793e94d4835554075 gas/doc/c-rx.texi
+b364e7423a4f7ca7b9bc03c9a0fa23dd gas/doc/c-s390.texi
+cc1e268ae84dacd9c057111e7ff62e11 gas/doc/c-score.texi
+2c0d773535b9a9d67fc1d97d4557df23 gas/doc/c-sh.texi
+64b14752824bf90ea8475df2daf16b8c gas/doc/c-sh64.texi
+6f48e99ff8e84d99f1b8847c1473164d gas/doc/c-sparc.texi
+af8e3c8db47ec3896bc31a494d7de6b0 gas/doc/c-tic54x.texi
+b989dfc942aa8ab980fa6c65b41049b4 gas/doc/c-tic6x.texi
+c275694d2a7d2dd2a31a9a196d0cfdcf gas/doc/c-tilegx.texi
+ca8af8a1737b3903061b098e5df4ef68 gas/doc/c-tilepro.texi
+4a1d98d11c9cf2ca4461b9a50e5bb008 gas/doc/c-v850.texi
+7af989936deb2e3760522fc162ec9259 gas/doc/c-vax.texi
+f4e50b91977f2ee38355a827220a27e2 gas/doc/c-xc16x.texi
+2c20cb5c3a5f5a5c372125bbb4b3b26a gas/doc/c-xstormy16.texi
+c7c3fa486b208e927a1fc4bfdd77d840 gas/doc/c-xtensa.texi
+3d2d4c31a8139814c77b20e27e972b09 gas/doc/c-z80.texi
+253f83f4a9674657798fc94b823110d6 gas/doc/c-z8k.texi
+072910d553f79906db69fa7c0e956bba gas/doc/fdl.texi
+289febda425d8afbd046e348a08dbfff gas/doc/h8.texi
+8d09e6a6866fb40f7967c09acc404f2b gas/doc/internals.texi
+11ebd0feb8f394b93ae6d8118c76ab88 gas/doc/Makefile.am
+a2fdf202c246bbe758e967be5223b64a gas/doc/Makefile.in
+a71cafa5575a99a89cc2d321e3381267 gas/dw2gencfi.c
+40b934c6fc1fcc7b41583850293dcea4 gas/dw2gencfi.h
+7bb9f7555d019c7361a9b7658cc7b337 gas/dwarf2dbg.c
+54364ac0f17fd7b383758cf7ab4dde09 gas/dwarf2dbg.h
+24d9cae5e0cafd887166ab83fc85d67e gas/ecoff.c
+5188016afd7345ccaf817fe920df1af3 gas/ecoff.h
+ea78433d88fb44e6e068fcaf4a999845 gas/ehopt.c
+92732c078a7acf574af9df1fbc62236b gas/emul-target.h
+99a7a09433a40a316a830646e1febaba gas/emul.h
+2e0da825bbc7baca039dcdc94b364041 gas/expr.c
+1a232404fe1e22276ec24ff339ac0920 gas/expr.h
+a8086612007d4b1398bbcd3222491afc gas/flonum-copy.c
+17e961bd7664effaa115dbe1752cc76a gas/flonum-konst.c
+67f204a57fdf44aeb64bfe5c900d9c87 gas/flonum-mult.c
+39147fc4f0f972c0c256ff21bbebc855 gas/flonum.h
+ae882e3930e09e078998b8525e50b167 gas/frags.c
+e006dc9f9a1778ed1fb65597a85285d1 gas/frags.h
+ae2f57545b6c7ce4a91fb749513ac6a1 gas/gdbinit.in
+d4b70a92ad2683b4707e5c46e839d9d9 gas/hash.c
+63a7f829b6cd1ba1174831e406a660d2 gas/hash.h
+2df8cc79b06128bb6f9052ea946b98c6 gas/input-file.c
+3cff7b4bbf83194380e69a1edd0e6336 gas/input-file.h
+11964b69924e63a4abebc0f0dc523139 gas/input-scrub.c
+63f82b532c2bd06bce7661f63fc94893 gas/itbl-lex.c
+78dd7d2bc83a9ea1066d5cf81387f9db gas/itbl-lex.h
+854c41c87d0d90aa26b6ee48f28baadc gas/itbl-lex.l
+e916586c657a7414b19314f92765f814 gas/itbl-ops.c
+e447a89687ea0ea18139f6bd905b02fa gas/itbl-ops.h
+4ea7ac4d931713b4c4266bf1e01c540c gas/itbl-parse.c
+86a928b05e84edab3af35f7aa489f27c gas/itbl-parse.h
+0153b49dbbcf47a9cfea80fa35b93482 gas/itbl-parse.y
+e441085d852276adfa2fc811df97b807 gas/listing.c
+f281c30f7476482b70817dcabb52e1a2 gas/listing.h
+d3d3be59b37f1add71b4f71bfc46422f gas/literal.c
+64cd294a7e4390954710090b0b743b49 gas/m68k-parse.c
+2e58478bd61878b077142ca597b92780 gas/macro.c
+bc1cba24dd11574ee28e63c61603cf43 gas/macro.h
+d618facc3e8ce8bf3d02ba452e1be6ab gas/MAINTAINERS
+6aaf48e988eb44ef0c4af9d5ba0d3b79 gas/Makefile.am
+b47315ea590ddfd558b906dedb7e288e gas/Makefile.in
+354cf2a2fc74c71e5c771a70f35e7e26 gas/makefile.vms
+c7dca5ffd79185a3d3da0c3c7c3ac80f gas/messages.c
+7c636624216330e19d033da06fba83f3 gas/NEWS
+37cb1fdcfd13bdeda1527a80ddc1333c gas/obj.h
+6ce9540be0e657371728a69ecf5ea0e7 gas/output-file.c
+2fa8189fa6fc775e05be73053a0b853d gas/output-file.h
+9520a6893d16735418796e0fbbb2bd06 gas/po/es.gmo
+74d253813bcfb1c212ddd215e7aa25d5 gas/po/es.po
+20888a4a689d6f09aba59e93261ba117 gas/po/fi.gmo
+2806dc4b95969a5908511d2ab97d1225 gas/po/fi.po
+df112bde534ccee4748328baf62e143c gas/po/fr.gmo
+b7e846c9e75038d1767c38f03de71485 gas/po/fr.po
+7cd92bef34b0797bbfef6bae91c30d30 gas/po/gas.pot
+9cee2a71c8a685f823334f2345fe6926 gas/po/id.gmo
+d630cc3fe15feab4abff44e37f5d7d3f gas/po/id.po
+8935ae2870f3d67420c16c4b92796ceb gas/po/Make-in
+34afbfdf8c0409276df72ff59fa58501 gas/po/POTFILES.in
+e21d5e731a31d115fc5685e7918e1180 gas/po/ru.gmo
+3dc090bd3b622ebd9bdc07bf87868066 gas/po/ru.po
+3e890a0b3ab0fdf3474873d5627b21f4 gas/po/rw.gmo
+ecfefd4ef9c04f3bd2e486e73cc878db gas/po/rw.po
+f921f25b46f5eda454485a4af9286c90 gas/po/tr.gmo
+39462aa2819407ab236aa02d57ea5a53 gas/po/tr.po
+0bcc05a5f05166cf093b95766dbfc876 gas/read.c
+90ebac1027b1eaaad9f5f1488b66908d gas/read.h
+7d90db3f78994d389f96376160c78e79 gas/README
+b8add65d8707b4c648594ee377de406f gas/remap.c
+ac7a361753c382cf1886168bddbbbf97 gas/rx-parse.c
+8c2a82136f9c9030b1da1447f6a4788b gas/rx-parse.h
+5ff8b777f16712e64fc85e66d3864c8b gas/sb.c
+66b8e182fc92b3ad837f2c36c39f800e gas/sb.h
+1b43b8ed2deefd836ecc2321be9a172d gas/stabs.c
+1ded054093de910d9786c62bc4fe8cc6 gas/stamp-h.in
+f466095ac8a7a01b59cce1a965b3e166 gas/struc-symbol.h
+919587b23bcc5514a7c31d7c363e51eb gas/subsegs.c
+fb0f91c11edf3d6da54955ca2cd59a7e gas/subsegs.h
+f1cd96b3465f26c507b0224c5bbbe9b4 gas/symbols.c
+c50cc83daefef2d086e32e09f874b0a7 gas/symbols.h
+5e55a27d8d002eda60e10a4baaa71984 gas/tc.h
+19973f8fea6f93b10dd1bba9a7b7963c gas/testsuite/ChangeLog
+8f4c98fe241e3d57b357137c666fd4ba gas/testsuite/ChangeLog-2004
+6e717d4f414fd8ffacb0b5f480256270 gas/testsuite/ChangeLog-2005
+a89405fc1bad7bc620fc00b28bd62f6c gas/testsuite/ChangeLog-2006
+5de611d822d2546671c06953d8fd538d gas/testsuite/ChangeLog-2007
+c04dee8bb883614a130ec425bd11909e gas/testsuite/ChangeLog-2008
+7372b5681e8dccaafca73555adb69e3a gas/testsuite/ChangeLog-2009
+64f11faad6bab697aecc0a5339bc6544 gas/testsuite/ChangeLog-2010
+f2390f2b8917391da133b1ed67fa8607 gas/testsuite/ChangeLog-9303
+db812b65b8dbbd96d60562df3bc90c2e gas/testsuite/config/default.exp
+6d40ab26009707974cd97b3f85eba886 gas/testsuite/gas/all/align.d
+a60277af402def6d8b222eb7aa29fd72 gas/testsuite/gas/all/align.s
+e6c304936e9061331bf04ff66f8c1eaa gas/testsuite/gas/all/align2.d
+16604c070ffc1562842c0a67da3fdc4d gas/testsuite/gas/all/align2.s
+69e2c29fe0d1168c47d1e8b9657659e8 gas/testsuite/gas/all/altmac2.d
+f0cd1747f8e7af29724f1145a83796ed gas/testsuite/gas/all/altmac2.s
+e305dbfa90f24603b18216c0f3fd2d49 gas/testsuite/gas/all/altmacro.d
+1da520aefd1b26aaf3d59e3d68d4ccf3 gas/testsuite/gas/all/altmacro.s
+dfded27f5745972797ed960a849888ac gas/testsuite/gas/all/assign-bad.s
+ffec055967c23ae21dba22a6ac5c9e3e gas/testsuite/gas/all/assign-ok.s
+48cd3944d00ffc414edc8ab100129683 gas/testsuite/gas/all/assign.d
+c70d12a44da637481d77388d379a4f9f gas/testsuite/gas/all/assign.s
+8e8b84ccd3bab6d4479f373267c7c935 gas/testsuite/gas/all/byte.d
+0733c957af816c50298d1dd2c58f5a6d gas/testsuite/gas/all/byte.l
+82e38f239dda10a87d4f131bb1a52b92 gas/testsuite/gas/all/byte.s
+6fdc3af8b63d5c8dd0a98137215d3753 gas/testsuite/gas/all/cofftag.d
+a18dd1c48d82b4324b3e6fe34ed50dda gas/testsuite/gas/all/cofftag.s
+7642a824a63aa87c0f0c07ebab2ea9ba gas/testsuite/gas/all/comment.s
+7bbedc3ae9894c93576fd06f35e70535 gas/testsuite/gas/all/cond.l
+91a7dfff6d9b1fd2354096b767db4cea gas/testsuite/gas/all/cond.s
+7ec8ad8becdaf04c09bde661a8ae427e gas/testsuite/gas/all/diff1.s
+3725ec8088e01ec8900ad41fb2295381 gas/testsuite/gas/all/equ-bad.s
+b69cfaf78110599c63010ad6d52e3920 gas/testsuite/gas/all/equ-ok.s
+285b5f9762e337f80994b575f235968b gas/testsuite/gas/all/equiv1.s
+1170e49707759e59d9d43a91bfaff853 gas/testsuite/gas/all/equiv2.s
+772c9ce372b12eec88e8ed48afa8e095 gas/testsuite/gas/all/eqv-bad.s
+be23e497c6b9c82aa5289a1d42165934 gas/testsuite/gas/all/eqv-ok.s
+174595a7641ae3110964493d3087e8b5 gas/testsuite/gas/all/err-1.s
+40bae500b5de820301091838b2dfaf78 gas/testsuite/gas/all/eval.d
+b0d74a67fa0e0140f0f7a98e8a1a4f49 gas/testsuite/gas/all/eval.s
+32b517988d18eebe13e6c54d2e0feb00 gas/testsuite/gas/all/excl.s
+1e473ef749281964d4b71dfe127a5b69 gas/testsuite/gas/all/fastcall.s
+a3ed4c57221d0e6ae68721825604f04d gas/testsuite/gas/all/float.s
+c86b9077e248e065c0ccdcf220c5243e gas/testsuite/gas/all/forward.d
+a228b061c0ecb736bad03c969baa7c26 gas/testsuite/gas/all/forward.s
+4200299115c54a121ec66434dab90c6c gas/testsuite/gas/all/fwdexp.d
+3a1e933959b3eb6875798141fa576771 gas/testsuite/gas/all/fwdexp.s
+89ea9a171ecd4a5acb363ee33c89fd7c gas/testsuite/gas/all/gas.exp
+a94f64a3485357ae737e79fdbb095859 gas/testsuite/gas/all/incbin.d
+aa088c5c0e59150fbe2283dc31cd8353 gas/testsuite/gas/all/incbin.dat
+3fcc9d1848f57cb6d23cbfe139e2052a gas/testsuite/gas/all/incbin.s
+ff0067e6fc03e40d69f6d4a3df69c315 gas/testsuite/gas/all/itbl
+382da5059713a0eb1ca0f7a012d9568a gas/testsuite/gas/all/itbl-test.c
+0a1bc24fd58a8e10476fda0bd5b649ed gas/testsuite/gas/all/itbl.s
+69bd077c208114555791fb58d4909e98 gas/testsuite/gas/all/octa.d
+495bc721e5af37eafc554b7db83506ef gas/testsuite/gas/all/octa.s
+b61a6aca515ae31b7be7abda0a152bbc gas/testsuite/gas/all/p1480.s
+530c3d83c5129c3823692574ff0b07b8 gas/testsuite/gas/all/p2425.s
+20f3d4b257a6efde0445b30b3a02ec98 gas/testsuite/gas/all/quad.d
+94daa7db7daabe1c947773877445172e gas/testsuite/gas/all/quad.s
+05ad0ca5a64fc9c53152de996bcfb72e gas/testsuite/gas/all/redef.d
+15dc09b212a01e4b4548748f80ddd95e gas/testsuite/gas/all/redef.s
+3fd90724c589e390efc701a02af7d3a8 gas/testsuite/gas/all/redef2.d
+b2d210c45393fceb3d931963339d88ff gas/testsuite/gas/all/redef2.s
+e76a753bf2534357fea9b078ef669a99 gas/testsuite/gas/all/redef3.d
+ffc65f2fa231239465e4f8a7a5f426c3 gas/testsuite/gas/all/redef3.s
+3f3ef7827846424857bf668b4579f90b gas/testsuite/gas/all/redef4.s
+309d8b7519fa095a1057a32e1947daf7 gas/testsuite/gas/all/redef5.s
+11d49bd9ae2b0f109c94e48fcf851dda gas/testsuite/gas/all/relax.d
+34fd596eed3825011e6bf9eeedbd85b8 gas/testsuite/gas/all/relax.s
+f87cdc714e46c3d392bb5ace50f5089d gas/testsuite/gas/all/sleb128.d
+18b960297606054a20f63aa891b7e12a gas/testsuite/gas/all/sleb128.s
+665502eb0715d91cc960000b623b5f6e gas/testsuite/gas/all/string.d
+936648e9d1203b9af3233aec673dd9f3 gas/testsuite/gas/all/string.s
+856ac38b9fe37e63d8173f9299961115 gas/testsuite/gas/all/struct.d
+0b2dc0f909d4928a8de943eade54a345 gas/testsuite/gas/all/struct.s
+c1c61584f5902f8d3f424c7c0ab625a7 gas/testsuite/gas/all/test-example.c
+3016ff2229f0cc0ba9e8d952f0cff925 gas/testsuite/gas/all/test-gen.c
+c306f31d167824da1c6b8a24af1af24e gas/testsuite/gas/all/warn-1.s
+2cb2ab1bd254a01075f23574bcf76cab gas/testsuite/gas/all/weakref1.d
+2ecea24bd25e45a5b2408288c88922bb gas/testsuite/gas/all/weakref1.s
+1bfe06f39639f91ea299f15721ff1410 gas/testsuite/gas/all/weakref1g.d
+15be263b669e47327b0ffb9dd01a5001 gas/testsuite/gas/all/weakref1l.d
+54478035dc75589d7990b5cadb636632 gas/testsuite/gas/all/weakref1u.d
+240460ab5e8b7dbfc5d24fcd1d02a76c gas/testsuite/gas/all/weakref1w.d
+7a2be682df8fc9718f6195658ba1c976 gas/testsuite/gas/all/weakref2.s
+5c3a5451b98a5cfb6c3bec7bc1710139 gas/testsuite/gas/all/weakref3.s
+c244658794f4e2eb27251ec5207b9292 gas/testsuite/gas/all/weakref4.s
+8ba076a868d6d446a4ab1462add54fd3 gas/testsuite/gas/all/x930509.s
+61127e9f70926fe0c0e56a9f2f957051 gas/testsuite/gas/alpha/alpha.exp
+879aa3491dccb8faf8dba627014571e5 gas/testsuite/gas/alpha/auto-align-1.d
+0d60fd9478e783fcfe67951e4ef64d36 gas/testsuite/gas/alpha/auto-align-1.s
+7caf94f0e5c9ee4a654de71ef7acde09 gas/testsuite/gas/alpha/elf-reloc-1.d
+542ba778a8026db8d3b82d45c828970f gas/testsuite/gas/alpha/elf-reloc-1.s
+44bc975cf505fc614b902b6d05a8cb27 gas/testsuite/gas/alpha/elf-reloc-2.l
+498dd06c38f62a854337eb6e0629f562 gas/testsuite/gas/alpha/elf-reloc-2.s
+8e926ed54e1cfadbf6d620943fe14e9e gas/testsuite/gas/alpha/elf-reloc-3.l
+cd44e5cf1cf5d7f57c32d759623c16a5 gas/testsuite/gas/alpha/elf-reloc-3.s
+48dca0e100904fd0f5f780221a50e391 gas/testsuite/gas/alpha/elf-reloc-4.d
+bda565c218e80afced8a22ce13e68afa gas/testsuite/gas/alpha/elf-reloc-4.s
+57d530cc16154b40cdafe2bd35f5fa9f gas/testsuite/gas/alpha/elf-reloc-5.d
+280fd64660c31ce16cb67a670c130308 gas/testsuite/gas/alpha/elf-reloc-5.s
+337378bf9bcfd622880b55f609cc2d82 gas/testsuite/gas/alpha/elf-reloc-6.l
+f1db0194e78ed6ca547be0ce865e6bb9 gas/testsuite/gas/alpha/elf-reloc-6.s
+ee3c5cca44cbbc8648d233bb9f47f386 gas/testsuite/gas/alpha/elf-reloc-7.d
+9fa3e0a0d38d10c4591002d2a23874e4 gas/testsuite/gas/alpha/elf-reloc-7.s
+5df5463b0a34e0632baddcfebccd5e2e gas/testsuite/gas/alpha/elf-reloc-8.d
+14ae8981371d4189a9fa78cc86541e42 gas/testsuite/gas/alpha/elf-reloc-8.s
+d9c79c31b22f9f59222c8407686d17bf gas/testsuite/gas/alpha/elf-tls-1.d
+d3120aefa9f3d74f9a50d96702acb389 gas/testsuite/gas/alpha/elf-tls-1.s
+175819424c6d7ea48da17c33b08145b7 gas/testsuite/gas/alpha/elf-tls-2.l
+46336ae3d40ac88a4f205247b4e36c93 gas/testsuite/gas/alpha/elf-tls-2.s
+ccc1bdfb6a205a1766cf1a6bcabb78fc gas/testsuite/gas/alpha/elf-tls-3.l
+611202a8cd8fb1dfffbc7f8b9c15c22b gas/testsuite/gas/alpha/elf-tls-3.s
+dd7ce23c42b5c75b7aaf68091e36ca89 gas/testsuite/gas/alpha/elf-usepv-1.d
+1ecd4c2c9c9f694a311b4018fb4cc630 gas/testsuite/gas/alpha/elf-usepv-1.s
+839b27fcfeb47671d83cc12070cc6538 gas/testsuite/gas/alpha/elf-usepv-2.l
+a89f678c13ee68633c71d6e4f74d7cd8 gas/testsuite/gas/alpha/elf-usepv-2.s
+64b455f29370bedb9edeadf7ad36c07a gas/testsuite/gas/alpha/fp.d
+a81ea1f138f93fa0d561f5306bd22a4f gas/testsuite/gas/alpha/fp.s
+af2181269d9de10984a7a36f3ce5e01d gas/testsuite/gas/alpha/unop.d
+29fe0cde0ac8733c56f2ffef3a1651d4 gas/testsuite/gas/alpha/unop.s
+19197f29a6d87e3e78495e7a47ebf496 gas/testsuite/gas/arc/adc.d
+1b06ceb2288c093be970d894568fa5da gas/testsuite/gas/arc/adc.s
+65084e57125295318062997e920c19af gas/testsuite/gas/arc/add.d
+75e6baa15e0d53599edfd7ec770375b6 gas/testsuite/gas/arc/add.s
+4927747f607ee7be7bf50e7fd6ef02ee gas/testsuite/gas/arc/alias.d
+54f01e033f0d248759b8fc6fb71a06db gas/testsuite/gas/arc/alias.s
+b8a7885db402fc70652f0410a5820d50 gas/testsuite/gas/arc/and.d
+b8fce093a488f7b1c2e6418f7c31c9e3 gas/testsuite/gas/arc/and.s
+161e452c38e82897a52e50c6887e68df gas/testsuite/gas/arc/arc.exp
+aa32ccad03a6d294726c0e58e6d2250a gas/testsuite/gas/arc/asl.d
+af955c8cf38c553fa4221383c64b6b13 gas/testsuite/gas/arc/asl.s
+56384c65539866b6e7fc0a0a05eabce8 gas/testsuite/gas/arc/asr.d
+9887c6e68d8176e71d75b9d91604e914 gas/testsuite/gas/arc/asr.s
+5288b51666fdc9bb0c65a07671c3c9fd gas/testsuite/gas/arc/b.d
+78b81ebb3355a47d5c478e1e56444ffb gas/testsuite/gas/arc/b.s
+402522bfb20c4387e1faba27224186ac gas/testsuite/gas/arc/bic.d
+ab22388e1552b8926d7b8960f9a6fe20 gas/testsuite/gas/arc/bic.s
+ec7abac24fa3c402b31f624a3ff9de77 gas/testsuite/gas/arc/bl.d
+e2c237cc25d1cfc82c9285818858e329 gas/testsuite/gas/arc/bl.s
+1a8de6cbd6b3c02a2a483c8cd6ce42a7 gas/testsuite/gas/arc/branch.d
+8432db29eb95c38348bb4216a28f43a4 gas/testsuite/gas/arc/branch.s
+1165c7d246f9e1a548af4c5b7f4e5f60 gas/testsuite/gas/arc/brk.d
+872c85cca67988958ef95591b4fecb7d gas/testsuite/gas/arc/brk.s
+acf1eca3b061941ff367bba7654f8a2e gas/testsuite/gas/arc/extb.d
+0ab2d9abcadcf93d9b6dd8eb0962d7ab gas/testsuite/gas/arc/extb.s
+93872b12992b5d2775308c2541723a23 gas/testsuite/gas/arc/extensions.d
+8e15242e5c6b199128ef839f8fe14144 gas/testsuite/gas/arc/extensions.s
+cb8963efc4b0412d0cf5f6d2d4412d14 gas/testsuite/gas/arc/extw.d
+e66a84df62389472e90d215276e87384 gas/testsuite/gas/arc/extw.s
+53684f8cb4cc475d5632ffa22555b6c5 gas/testsuite/gas/arc/flag.d
+2b6e2dd0335ebc45bb694de8cc2f4c6b gas/testsuite/gas/arc/flag.s
+dd35c9020fa1c43318beec05e9d63dd6 gas/testsuite/gas/arc/insn3.d
+c9f07db5b59a1a725b1cb520c7dfffe2 gas/testsuite/gas/arc/insn3.s
+6623a00a22962dfb1afcb24a2f8920bb gas/testsuite/gas/arc/j.d
+7ee6358f55317d08d08f864238c78515 gas/testsuite/gas/arc/j.s
+431696fbe85080394483a455208af19c gas/testsuite/gas/arc/jl.d
+4a56cf56903f8e4c25dd7865dd1a92df gas/testsuite/gas/arc/jl.s
+56a1aeb2d239eb164bc0b0b3570a4d6c gas/testsuite/gas/arc/ld.d
+3c857571689df36f20267c10d4eb72c0 gas/testsuite/gas/arc/ld.s
+4d7ba9b754c7afdba41dfec82239bc30 gas/testsuite/gas/arc/ld2.d
+28379656fb4f5c37963ed6991c582ed6 gas/testsuite/gas/arc/ld2.s
+af5c07a06b5ab10049b70efc03fe4310 gas/testsuite/gas/arc/lp.d
+657d876ad61daec2d6de3a4269bfeaf3 gas/testsuite/gas/arc/lp.s
+0b801348feff41c1625f9c681af122c5 gas/testsuite/gas/arc/lsr.d
+a9c2ebcafcfc68a8bb7014172813ee2c gas/testsuite/gas/arc/lsr.s
+ae005c091f26b4ceac5b19e8c13d8835 gas/testsuite/gas/arc/math.d
+c632e7e9e19d65e75557a5e42d513905 gas/testsuite/gas/arc/math.s
+42cc6922491da263d6ab87fca2593794 gas/testsuite/gas/arc/mov.d
+5bbe3186d21f23263b4a3743cfb1c0e5 gas/testsuite/gas/arc/mov.s
+ff9e23ba171eb9fab4ae4bf71ca1964f gas/testsuite/gas/arc/nop.d
+4b5a9a087212c040ef94e7cfc7c64113 gas/testsuite/gas/arc/nop.s
+c596ab98be90e4fcdb2e92e35e3ca66f gas/testsuite/gas/arc/or.d
+a9984178263c3d2fdc55aa82c0850038 gas/testsuite/gas/arc/or.s
+152d55e75d6f7079d969d4582e98e32c gas/testsuite/gas/arc/rlc.d
+7186c231f11739791f407f6ad9bfdfcd gas/testsuite/gas/arc/rlc.s
+f67f42d8077195a9ed9da2cd3ff93889 gas/testsuite/gas/arc/ror.d
+0f4fa90aec1e6518392567bb89d7420f gas/testsuite/gas/arc/ror.s
+cce2b1054c09a0d526bc548ea162dc6c gas/testsuite/gas/arc/rrc.d
+2a33859e8d1450a314390aee1eed985c gas/testsuite/gas/arc/rrc.s
+7d0b42fa66729b4df6f26c5daa47c6ee gas/testsuite/gas/arc/sbc.d
+6d4e549168ccb7340e4c87d6c3ca9f06 gas/testsuite/gas/arc/sbc.s
+b0ae0aa5baea6246ee417710ad641653 gas/testsuite/gas/arc/sexb.d
+e3e0516272a27d4fdde6e78fcfc0beae gas/testsuite/gas/arc/sexb.s
+753f0757cceff8d9fba7da206607b32c gas/testsuite/gas/arc/sexw.d
+505c87905fe1b3b19909f4ff658880e8 gas/testsuite/gas/arc/sexw.s
+04e291c6c4227ad3ea068b33bcca2bee gas/testsuite/gas/arc/sleep.d
+4b2c68f86079ddc3738d423a7d9286ec gas/testsuite/gas/arc/sleep.s
+dd35c9020fa1c43318beec05e9d63dd6 gas/testsuite/gas/arc/sshift.d
+285d03daf381a393d3099a8ff7ad1b92 gas/testsuite/gas/arc/sshift.s
+5f8916d2369e1234cb10b4590db13ad9 gas/testsuite/gas/arc/st.d
+053f3bbfd1d148584af0a8152d94a93b gas/testsuite/gas/arc/st.s
+e913933835012629d5199008027146f4 gas/testsuite/gas/arc/sub.d
+beca3fc3b72a58cc4eadd2369592d87f gas/testsuite/gas/arc/sub.s
+f2c956a2c8d124cf6924a93a3b18641d gas/testsuite/gas/arc/swi.d
+458a27c1ed4ecb3d834bc928af3a1969 gas/testsuite/gas/arc/swi.s
+ca575363e502545e2e5d2a6ab64c6af8 gas/testsuite/gas/arc/warn.exp
+0b65cbe50ce349cd49a0a24641241d3c gas/testsuite/gas/arc/warn.s
+9020b43e63291859faac20e7065787d9 gas/testsuite/gas/arc/xor.d
+c1a790a7f1cc4e88b2235b226fae54b2 gas/testsuite/gas/arc/xor.s
+b6ee94bbf2780e2c24ebe268b9e3964d gas/testsuite/gas/arm/abs12.d
+5d4b47a51fe92bb098297010d6ee2d12 gas/testsuite/gas/arm/abs12.s
+db659b6b27540d9316465b1f7e5ac2b9 gas/testsuite/gas/arm/addsw-bad.d
+82dc19e00945086993691c92b587faa3 gas/testsuite/gas/arm/addsw-bad.l
+079c301370561c6e6e981f81ceb66b79 gas/testsuite/gas/arm/addsw-bad.s
+4ef679f3641b0956ed83ba9cd9476c38 gas/testsuite/gas/arm/addthumb2err.d
+a784b42ea52c6aaa2e5b00d9bd8eb734 gas/testsuite/gas/arm/addthumb2err.l
+497e450fc0d6b17d11be385d97a06776 gas/testsuite/gas/arm/addthumb2err.s
+96aa9f595c2e975dbb093e3f28d7540d gas/testsuite/gas/arm/adr-invalid.d
+6e268d80f9fe0d48bc5a6700a3fdfeed gas/testsuite/gas/arm/adr-invalid.l
+abbb8901aa59685f604c221386d07186 gas/testsuite/gas/arm/adr-invalid.s
+12179a5c7ba40ddd7495c98be6679420 gas/testsuite/gas/arm/adrl.d
+ecbb507650db5ed7620314d5ca7a13e7 gas/testsuite/gas/arm/adrl.s
+a75692b7568cb2128679dbd5d13eb07e gas/testsuite/gas/arm/align.d
+b43e7395b9caba63fe7c854672036d5f gas/testsuite/gas/arm/align.s
+2ec620b70cb1d5e1d39714a2716820ef gas/testsuite/gas/arm/align64.d
+9c1a82dac001eecac15d1101fcc4423e gas/testsuite/gas/arm/align64.s
+37497ba60d9a44a935e8038094d3e9c3 gas/testsuite/gas/arm/arch4t-eabi.d
+933fbb0cbf2bfa51d2fe96183743a702 gas/testsuite/gas/arm/arch4t.d
+8ae0560f8be6f8f105a25e08d52d7921 gas/testsuite/gas/arm/arch4t.s
+4040cb5a638a281b3e0e66831c6ad6d0 gas/testsuite/gas/arm/arch5tej.d
+2f96d9641db7f61fb556c70c266efde7 gas/testsuite/gas/arm/arch5tej.s
+06095b99c1fe7b15a2e7f4e2d4d68fb4 gas/testsuite/gas/arm/arch6zk.d
+13ef791859fee922b2d2b2d02a468fb2 gas/testsuite/gas/arm/arch6zk.s
+754004fd4a023249bcadfa965d8feb38 gas/testsuite/gas/arm/arch7.d
+c0d3a679abf206a062b567c14d4a2488 gas/testsuite/gas/arm/arch7.s
+a307c42894f7d574e0b9b8179400c817 gas/testsuite/gas/arm/arch7a-mp.d
+f299d0db02f5148af1274d7b1acfa213 gas/testsuite/gas/arm/arch7ar-mp.s
+b6c97b686c175781e4e853d017c8d335 gas/testsuite/gas/arm/arch7em-bad.d
+f3bd6240c7b580e42201477ea88771cd gas/testsuite/gas/arm/arch7em-bad.l
+98fa4d342db3f29a7a17b0f43498849b gas/testsuite/gas/arm/arch7em.d
+581e41cc3b06a129704de3794db9e605 gas/testsuite/gas/arm/arch7em.s
+24fc10e3da6b7ef78f4b55ee0b0cc2e8 gas/testsuite/gas/arm/arch7m-bad.d
+b65df40b5f3e9bda2b19f6bf1fc5dfee gas/testsuite/gas/arm/arch7m-bad.l
+4066147fea0f34e61ff20bb3953bbcf6 gas/testsuite/gas/arm/arch7m-bad.s
+121de08a231299eb3e817d7386edf5ee gas/testsuite/gas/arm/arch7r-mp.d
+07fba8591068aa4bc4fba9b9f1aaed0a gas/testsuite/gas/arm/archv6.d
+b78ab7111d67ca2b1dee92635b3a9fb9 gas/testsuite/gas/arm/archv6.s
+ca34df0a6bb2d547257d6c708341d4a8 gas/testsuite/gas/arm/archv6m.d
+98ea15f6d249e4773d2229e09a2f7516 gas/testsuite/gas/arm/archv6m.s
+6d4aa6cb100db3db9437424a4bce6fcd gas/testsuite/gas/arm/archv6s-m-bad.d
+d2457d7858ddecb3d78f502f6561b010 gas/testsuite/gas/arm/archv6s-m-bad.l
+d28e54c54ab960d6f26f6ab679dec6b6 gas/testsuite/gas/arm/archv6s-m.d
+eee02ed70936d7bb837c21c90480dd6c gas/testsuite/gas/arm/archv6s-m.s
+3223e9e789e7275d28af65a561ea4f07 gas/testsuite/gas/arm/archv6t2-bad.d
+a75344a06d3ba8340cfecd4a0b571ea8 gas/testsuite/gas/arm/archv6t2-bad.l
+f5dacfa0fcf2cb53a9fd091240ba1812 gas/testsuite/gas/arm/archv6t2-bad.s
+03a60bc117f358d33f56c57b05e588ce gas/testsuite/gas/arm/archv6t2.d
+2bfee89072c1c2e798bde7bd4aa79c9a gas/testsuite/gas/arm/archv6t2.s
+de3d7b25553b98eb142160c289a939de gas/testsuite/gas/arm/arm-idiv-bad.d
+9a628b19a5dbebd1a55a9bf68cde1614 gas/testsuite/gas/arm/arm-idiv-bad.l
+a663bedc6462af4dab7527c4716a2f18 gas/testsuite/gas/arm/arm-idiv-bad.s
+d40ddbdcb2fbeaca0505b21f2153b67b gas/testsuite/gas/arm/arm-idiv.d
+e312caaaa4cd32463ed61a3abaa71fff gas/testsuite/gas/arm/arm-idiv.s
+4c258121b00b8b8e31f5fc106160768b gas/testsuite/gas/arm/arm-it-auto-2.d
+9f5b000dd66bc7c0db553cb6ce6975e9 gas/testsuite/gas/arm/arm-it-auto-2.s
+138f287347c8ed8f01f0e7a77905dcd2 gas/testsuite/gas/arm/arm-it-auto-3.d
+291da626dfa21707c7fbd22d8fec0ad4 gas/testsuite/gas/arm/arm-it-auto-3.s
+a7c67b1b46b78cd4a635836487e30cbe gas/testsuite/gas/arm/arm-it-auto.d
+ca845e1f677a847052f021f47accf21f gas/testsuite/gas/arm/arm-it-auto.s
+d2a0cb15941b397e826744db6e57b539 gas/testsuite/gas/arm/arm-it-bad-2.d
+e7fba9b31f84364a16bcfe7cbab71d84 gas/testsuite/gas/arm/arm-it-bad-2.l
+68a16cb6422527dba38cdd88de01e695 gas/testsuite/gas/arm/arm-it-bad-2.s
+edd144194759d0962f3319228e9b48cf gas/testsuite/gas/arm/arm-it-bad-3.d
+cc4d24f6d336534b6a1e95e551db5cba gas/testsuite/gas/arm/arm-it-bad-3.l
+ca7b84f437267d5b13e2b12cc1ae54cf gas/testsuite/gas/arm/arm-it-bad-3.s
+877b73b29ef4ad64c4fee10d4fa9e4ec gas/testsuite/gas/arm/arm-it-bad.d
+d5aa4e588ce834c553a20942efe48603 gas/testsuite/gas/arm/arm-it-bad.l
+7e4022d4532c03e0c5cb53cec65d46db gas/testsuite/gas/arm/arm-it-bad.s
+bae7c0e1fdf04658cdc1e41ddebd46a7 gas/testsuite/gas/arm/arm-it.d
+25071337ea823ccebc86e1552ea4fab7 gas/testsuite/gas/arm/arm-it.s
+d8370e411dfe323a14c671ac6f8ea3b0 gas/testsuite/gas/arm/arm.exp
+8144f94b7fcd31f21441e8953217ccdf gas/testsuite/gas/arm/arm3-bad.d
+a7333c25d51cfb1d3071778778ededd9 gas/testsuite/gas/arm/arm3-bad.l
+2395435e948692459241f12cbfe49145 gas/testsuite/gas/arm/arm3-bad.s
+37fce175e5247e64b0a51485de338c9a gas/testsuite/gas/arm/arm3.d
+15137137fbd80fde4552111cbb60d514 gas/testsuite/gas/arm/arm3.s
+5bdeeea8d914a577ca5d9a9cdc3c5872 gas/testsuite/gas/arm/arm6.d
+9f50b26c97c490fdf7b9eabff9978181 gas/testsuite/gas/arm/arm6.s
+55e5246013b06555f68dd4fbfb49954e gas/testsuite/gas/arm/arm7-bad.d
+89b8f81e6edb1796a4a94ee97728f6e9 gas/testsuite/gas/arm/arm7-bad.l
+91c1460ae10fec6e4df3ddd08f8ecfbf gas/testsuite/gas/arm/arm7-bad.s
+186f55175eea9818ccea79b9b3f0ec8c gas/testsuite/gas/arm/arm7dm.d
+be6769c4582638a0a138ed06c26168b7 gas/testsuite/gas/arm/arm7dm.s
+752aefb5b36f970e207157c2feb64185 gas/testsuite/gas/arm/arm7t.d
+feaf27754d47f66044badeec38a0a215 gas/testsuite/gas/arm/arm7t.s
+563a746a696663b7084283c9e0af7a80 gas/testsuite/gas/arm/armv1-bad.d
+0c9b4e79a9913bf3b81c9d83b9cdaf4b gas/testsuite/gas/arm/armv1-bad.l
+f2c6c508b3eea079bc2448b4e5cf4ecc gas/testsuite/gas/arm/armv1-bad.s
+07f094e5883aacb59eaa5fdeb3cc4fb8 gas/testsuite/gas/arm/armv1.d
+3744f972effa598f45360d9b42e4a2d3 gas/testsuite/gas/arm/armv1.l
+f31a9037ea3ee4c5f7694a54d8c0246e gas/testsuite/gas/arm/armv1.s
+78a13200ed91875264033ec7536da9d3 gas/testsuite/gas/arm/armv2-mp-bad.d
+4da5e2bdf60d3348e5b60c794b52788d gas/testsuite/gas/arm/armv2-mp-bad.l
+fb828a5d097f6f7433923c95754d6150 gas/testsuite/gas/arm/armv7-a+idiv.d
+780afdeacd939d05ceffd163225d383d gas/testsuite/gas/arm/armv7-a+idiv.s
+3a7bd1000ee1d0747bf818c8c5880af3 gas/testsuite/gas/arm/armv7-a+virt.d
+882955517e934e3ea6804e23836538df gas/testsuite/gas/arm/armv7-a+virt.s
+541f06e01876973f108324d4c226e6d1 gas/testsuite/gas/arm/attr-cpu-directive.d
+fc6a0392fa077c3145088ec5b821f335 gas/testsuite/gas/arm/attr-cpu-directive.s
+fa3cb637faf7a084161a7fe69bedd151 gas/testsuite/gas/arm/attr-default.d
+fb04b73b1d9a4234da4983828806b008 gas/testsuite/gas/arm/attr-march-all.d
+63b0f5fcbd66dc6069e8cc6dc93991f3 gas/testsuite/gas/arm/attr-march-armv1.d
+cc61127046382229aa35b901418fc379 gas/testsuite/gas/arm/attr-march-armv2.d
+91f2a21b5ca1e423ff64e64f33160ac5 gas/testsuite/gas/arm/attr-march-armv2a.d
+63e21a67abaf2b4f295bd299b7f3b513 gas/testsuite/gas/arm/attr-march-armv2s.d
+a1fa198ed04605444741fb99d6f1c681 gas/testsuite/gas/arm/attr-march-armv3.d
+b53a9610847990bf5aa89f2ac51e1eec gas/testsuite/gas/arm/attr-march-armv3m.d
+ed35d31f4596bc2cfe5e8ebaec50f425 gas/testsuite/gas/arm/attr-march-armv4.d
+ac0aba16b5be6111861562cbb4fe25bb gas/testsuite/gas/arm/attr-march-armv4t.d
+9640e4cc7933f0b87c47bb15b358c374 gas/testsuite/gas/arm/attr-march-armv4txm.d
+bbfdd8f69dd7fd1a92d91572f9baecde gas/testsuite/gas/arm/attr-march-armv4xm.d
+a57afdbada7eb59e41b48f84deb021c0 gas/testsuite/gas/arm/attr-march-armv5.d
+97b0e48a0e7a9bc4707868dde7e01e19 gas/testsuite/gas/arm/attr-march-armv5t.d
+051e92622b6070bb0ae24059d159549c gas/testsuite/gas/arm/attr-march-armv5te.d
+ed499168c185050c4d0a7f37b036b031 gas/testsuite/gas/arm/attr-march-armv5tej.d
+94f21aa4318794e018e12f756166adc9 gas/testsuite/gas/arm/attr-march-armv5texp.d
+ab5abb426699cb28b7e646dee1638a0e gas/testsuite/gas/arm/attr-march-armv5txm.d
+ae9e0983ded40838cef1a5eadbff7090 gas/testsuite/gas/arm/attr-march-armv6-m+os.d
+9eb6665a6e31af7178096e3e1b97048f gas/testsuite/gas/arm/attr-march-armv6-m.d
+c708c05e4e91fe3fc22f77610265eee6 gas/testsuite/gas/arm/attr-march-armv6.d
+734dfd67708486d118585a08cf8d36af gas/testsuite/gas/arm/attr-march-armv6j.d
+b0d2fa6ea1e90d04246dc8360937f629 gas/testsuite/gas/arm/attr-march-armv6k+sec.d
+e7d2d05ff5b8d8e4f4c4f2d15f766bc3 gas/testsuite/gas/arm/attr-march-armv6k.d
+72b9af3cd77fb0253f20d1938170cd0a gas/testsuite/gas/arm/attr-march-armv6kt2.d
+9eb6665a6e31af7178096e3e1b97048f gas/testsuite/gas/arm/attr-march-armv6s-m.d
+99266a6f30b75e2225db961971646277 gas/testsuite/gas/arm/attr-march-armv6t2.d
+7b6b73eb61e074af09192671ea3feb2b gas/testsuite/gas/arm/attr-march-armv6z.d
+a4bcf60e13c0518ca9b75d89d538249e gas/testsuite/gas/arm/attr-march-armv6zk.d
+1df728cc2ef805f9732475ea016b1a11 gas/testsuite/gas/arm/attr-march-armv6zkt2.d
+cd3a7b8b6a92bbaf7155d8872fe0b683 gas/testsuite/gas/arm/attr-march-armv6zt2.d
+3fbe27dfe92d3836010f5d8f5ef83063 gas/testsuite/gas/arm/attr-march-armv7-a+idiv.d
+9345aecc05f39d01090ce9238d5dd56b gas/testsuite/gas/arm/attr-march-armv7-a+mp.d
+722991776f4414db2f3d783310fc9604 gas/testsuite/gas/arm/attr-march-armv7-a+sec+virt.d
+ab75e38ae385c86faee2b7d953cb3069 gas/testsuite/gas/arm/attr-march-armv7-a+sec.d
+cdcb7d80bb1cde93b82208e585eccbeb gas/testsuite/gas/arm/attr-march-armv7-a+virt.d
+c648eae620c853cb4b64c86bd45f2f79 gas/testsuite/gas/arm/attr-march-armv7-a.d
+d3f89e05aff2b152463825c6e503b6fc gas/testsuite/gas/arm/attr-march-armv7-m.d
+7c44ba44ecfcc0c1983adaedf9bb5549 gas/testsuite/gas/arm/attr-march-armv7-r+mp.d
+02c0c6eb6a1e48395bf58f85edbac8bc gas/testsuite/gas/arm/attr-march-armv7-r.d
+eaec858c47ed42167f8bf2e89e22107e gas/testsuite/gas/arm/attr-march-armv7.d
+4470e004187b572681718beb32c0f1db gas/testsuite/gas/arm/attr-march-armv7a.d
+0f383a32e226d8dccef2e1c3e4971e18 gas/testsuite/gas/arm/attr-march-armv7em.d
+3eb27be5e93241b435ea922ef313b9d6 gas/testsuite/gas/arm/attr-march-armv7m.d
+292179a0c7aacbeeb1256f0a03dc6dd0 gas/testsuite/gas/arm/attr-march-armv7r.d
+fc3efe03cd1e86314fd81ed1a7fb8cf7 gas/testsuite/gas/arm/attr-march-iwmmxt.d
+f15a5caa02e46a2cde0f7a561c10a443 gas/testsuite/gas/arm/attr-march-iwmmxt2.d
+1406ef71f12ed0f9eb991520c5bda8b6 gas/testsuite/gas/arm/attr-march-xscale.d
+a30d929ac6001a5599b7f1d59dc48a15 gas/testsuite/gas/arm/attr-mcpu.d
+e4ed90abc4ecd6b11a6e37363cdd1384 gas/testsuite/gas/arm/attr-mfpu-arm1020e.d
+83e06b5ada461cd7809ff5868c911f76 gas/testsuite/gas/arm/attr-mfpu-arm1020t.d
+f481afac3c919b889fbe961a3cd719f0 gas/testsuite/gas/arm/attr-mfpu-arm1136jf-s.d
+25ee69ad72fbe2160866de3c617394e0 gas/testsuite/gas/arm/attr-mfpu-arm1136jfs.d
+9974059745134094b759a1d2e9e89c20 gas/testsuite/gas/arm/attr-mfpu-arm7500fe.d
+fd27a1c611e63fcfc0ee697124e032b7 gas/testsuite/gas/arm/attr-mfpu-fpa.d
+57b7c41aa487cd21d16cdf220ed6d4f8 gas/testsuite/gas/arm/attr-mfpu-fpa10.d
+8f22c81f5f456373a96044c41267c310 gas/testsuite/gas/arm/attr-mfpu-fpa11.d
+f4f84519f6dcbf2930d26f5f3697369f gas/testsuite/gas/arm/attr-mfpu-fpe.d
+0aac60ebb5e8a73ad605d45b33466929 gas/testsuite/gas/arm/attr-mfpu-fpe2.d
+c31c8c86be779952692afb539a767b47 gas/testsuite/gas/arm/attr-mfpu-fpe3.d
+575331c0545d8fdf02933c810ac51f0f gas/testsuite/gas/arm/attr-mfpu-maverick.d
+c7385e6a22effd2a55f1839bc92f98ae gas/testsuite/gas/arm/attr-mfpu-neon-fp16.d
+1bff0d55596ed950f222803a72ab92ba gas/testsuite/gas/arm/attr-mfpu-neon.d
+3262a3d64b64a047f2bc1189847c3bf1 gas/testsuite/gas/arm/attr-mfpu-softfpa.d
+9df122a5f7706a32852fca235ed7da0f gas/testsuite/gas/arm/attr-mfpu-softvfp+vfp.d
+6ce1481a36913cea549ade7f8b45df26 gas/testsuite/gas/arm/attr-mfpu-softvfp.d
+6c0f3c9f6bcf4d143312f9a5cea965ac gas/testsuite/gas/arm/attr-mfpu-vfp.d
+5e0e7737770429ecfa4d63b7d49aab46 gas/testsuite/gas/arm/attr-mfpu-vfp10-r0.d
+7fca3ad527115fd92f98bfa7cce285dd gas/testsuite/gas/arm/attr-mfpu-vfp10.d
+a5fbea5e73ca65aaf9f740afdd2bad5e gas/testsuite/gas/arm/attr-mfpu-vfp3.d
+cdf5a36f3b217983f417ebdc3a1690d5 gas/testsuite/gas/arm/attr-mfpu-vfp9.d
+832bf9c511f1c57130382dc12241438a gas/testsuite/gas/arm/attr-mfpu-vfpv2.d
+1a4e953ccba7bfbbf6bc5f5ba785c4ce gas/testsuite/gas/arm/attr-mfpu-vfpv3-d16.d
+a061b79bf0f48c6c29ef6eacf3959b03 gas/testsuite/gas/arm/attr-mfpu-vfpv3.d
+197eddee7225ddd7c49fadb08ac2af74 gas/testsuite/gas/arm/attr-mfpu-vfpv4-d16.d
+a68615abbe6ebf856b481a518f07e952 gas/testsuite/gas/arm/attr-mfpu-vfpv4.d
+61af23e3c095f453e6a4af100b9e84ee gas/testsuite/gas/arm/attr-mfpu-vfpxd.d
+030c55b4c16b9aae8b3b6085ff53ffa9 gas/testsuite/gas/arm/attr-names.d
+ede62cfb601f53acff505eb51ae3b71c gas/testsuite/gas/arm/attr-names.s
+267846050222f0109969dc7754265517 gas/testsuite/gas/arm/attr-order.d
+7e50d4600f311abf7cfc8d140b8848df gas/testsuite/gas/arm/attr-order.s
+81055a8a658f4820d79c34a626864006 gas/testsuite/gas/arm/attr-override-cpu-directive.d
+3e0c9c401d47612961eb7e586be30c68 gas/testsuite/gas/arm/attr-override-cpu-directive.s
+66605596219f9d2d2612462c36e91a8c gas/testsuite/gas/arm/attr-override-mcpu.d
+11ca779d16cb9160d46a1b1c2d78f048 gas/testsuite/gas/arm/attr-override-mcpu.s
+1c96859328f0906342653fc31a296198 gas/testsuite/gas/arm/attr-syntax.d
+eba3a515fefda58b152eb5da32e9c118 gas/testsuite/gas/arm/attr-syntax.s
+3d673a7cd8ce5c7d9a81c7d77c1cf492 gas/testsuite/gas/arm/backslash-at.d
+19dbb71962cdc1a1cc2956e10ea0e088 gas/testsuite/gas/arm/backslash-at.s
+03b8acb9ec7015d82d4e1f7c65d17cef gas/testsuite/gas/arm/barrier-bad-thumb.d
+0c497896b96b9bc85448e068e0797696 gas/testsuite/gas/arm/barrier-bad-thumb.l
+9e1b8e33ef6f57f4235c96bf2c3fef6f gas/testsuite/gas/arm/barrier-bad-thumb.s
+84759cddca9e59c2a14260af33c922e3 gas/testsuite/gas/arm/barrier-bad.d
+8359d13f1e7e2c543c86d477fb527fb2 gas/testsuite/gas/arm/barrier-bad.l
+c8304cea5cd0881c7328c1e0030091e6 gas/testsuite/gas/arm/barrier-bad.s
+faa76c01bc8d09471ea97ab43ffa5c96 gas/testsuite/gas/arm/barrier-thumb.d
+9856fdfeac538f010e78bb07ca9af627 gas/testsuite/gas/arm/barrier-thumb.s
+66f63ac197796c6bfb8c61d92a4555b8 gas/testsuite/gas/arm/barrier.d
+053b4ac1535e3fb5ad6b8cf849ddd95b gas/testsuite/gas/arm/barrier.s
+233af5c2872f271ed24f36379bfb2cde gas/testsuite/gas/arm/bignum1.d
+08269632d864fb311787d7c196186ac6 gas/testsuite/gas/arm/bignum1.s
+376a039bac61bd92ae468ba5fed33bb5 gas/testsuite/gas/arm/bl-local-v4t.d
+e59eb4b037d361fe5f48e44b495bd373 gas/testsuite/gas/arm/bl-local-v4t.s
+1632d9677c2b9800feac355724a3d9dc gas/testsuite/gas/arm/blank.s
+9804b9f9e6ef10da5c59b8fb4d4a45b1 gas/testsuite/gas/arm/blx-bad.d
+0ab8f09787955cd9db7cade3ffa39ae6 gas/testsuite/gas/arm/blx-bad.s
+dede5ad56b863e00e38ff1d45d9130d4 gas/testsuite/gas/arm/blx-local-thumb.l
+50af86ab9b358feed8d802d758d1d830 gas/testsuite/gas/arm/blx-local.d
+849e424049e3d10e64e125f2e370f822 gas/testsuite/gas/arm/blx-local.l
+ff4cfc84703ae62368d353c3dd637989 gas/testsuite/gas/arm/blx-local.s
+1905b4a656a3bc94ed7c9a3c70ece91f gas/testsuite/gas/arm/branch-reloc.d
+30a90f3df22295b76fd0d6c07a6bf602 gas/testsuite/gas/arm/branch-reloc.l
+ca024a3bc15ec962ca2183508ed14cbe gas/testsuite/gas/arm/branch-reloc.s
+8c853e4ab689f0984f480b2ef90ed7be gas/testsuite/gas/arm/copro.d
+885afce47943c3260e90f272e3ca9d7d gas/testsuite/gas/arm/copro.s
+8b6f864d90b4689f2774bf64c2c35347 gas/testsuite/gas/arm/depr-swp.d
+86501b7c6a9f0a188a2ade55860d4e41 gas/testsuite/gas/arm/depr-swp.l
+a9b7b7c228a4e455b367f46f6d1c513f gas/testsuite/gas/arm/depr-swp.s
+2eff9e4757131f1caf54b7a17d810148 gas/testsuite/gas/arm/dis-data.d
+3c2bbd856a542eecaa9c1d9da5274465 gas/testsuite/gas/arm/dis-data.s
+3e1ab583e626568568bbe18f0f41c06e gas/testsuite/gas/arm/dis-data2.d
+4fe3a1cb919bdb5cc446e4677f02906e gas/testsuite/gas/arm/dis-data2.s
+39f6a2095349080171660f609e57619e gas/testsuite/gas/arm/dis-data3.d
+88147f4bb308accf954ed1bc63bd6ec2 gas/testsuite/gas/arm/dis-data3.s
+6dc7105413632ace07999564934492d8 gas/testsuite/gas/arm/eabi_attr_1.d
+aecf4a96b2a97e461607c81dfe0751de gas/testsuite/gas/arm/eabi_attr_1.s
+f8d9340f61f2fdb2bd272e744c4f0942 gas/testsuite/gas/arm/el_segundo.d
+f6b90cae6af764a8e5bf09eac5e3661c gas/testsuite/gas/arm/el_segundo.s
+0c77a6a3842652ddcb0c68991a005c49 gas/testsuite/gas/arm/float.d
+2e5a285cf87efbbc0d49c33a6148766f gas/testsuite/gas/arm/float.s
+9177cdd8a4fdca4319bb40da69225b1e gas/testsuite/gas/arm/fp-save.d
+d4c95e405fbe0aa44ce5d25c653c8132 gas/testsuite/gas/arm/fp-save.s
+496ad498510e325f684023a10725afda gas/testsuite/gas/arm/fpa-dyadic.d
+c9e2422c9042c8e48eb52239a357011e gas/testsuite/gas/arm/fpa-dyadic.s
+40f2c330b41c6beb779d8e91016844ca gas/testsuite/gas/arm/fpa-mem.d
+52472e5003c4d5792b2b9337482d0bba gas/testsuite/gas/arm/fpa-mem.s
+a02c05e2d4ee9c5b17b5674d6ffa4b9c gas/testsuite/gas/arm/fpa-monadic.d
+25450ea0b9caf1d0a58522156f083d7f gas/testsuite/gas/arm/fpa-monadic.s
+25052a4649e2369f3db0f2e4d3bc5fb1 gas/testsuite/gas/arm/got_prel.d
+adf77b53329675daba18c16e17a6520d gas/testsuite/gas/arm/got_prel.s
+81063c8368dfd8cab51d3b6c2c5504e4 gas/testsuite/gas/arm/group-reloc-alu-encoding-bad.d
+3c1de613f6fd70c6cb782fc4cfb360bc gas/testsuite/gas/arm/group-reloc-alu-encoding-bad.l
+a50480226cbe9dc31083468a3871d44c gas/testsuite/gas/arm/group-reloc-alu-encoding-bad.s
+c1e41a71bab8330f1b0002b1ac8746e4 gas/testsuite/gas/arm/group-reloc-alu-parsing-bad.d
+f31bd62f5be6c7689096ee8ee597846a gas/testsuite/gas/arm/group-reloc-alu-parsing-bad.l
+8e6f3055e4e856d4f5089b8bd32d0d96 gas/testsuite/gas/arm/group-reloc-alu-parsing-bad.s
+8c10ec7b4769272b544aa7d4a19a2221 gas/testsuite/gas/arm/group-reloc-alu.d
+322f8bd2f59eafc92f61844579d1825c gas/testsuite/gas/arm/group-reloc-alu.s
+96706c8bc19671f7fb05d1804d432728 gas/testsuite/gas/arm/group-reloc-ldc-encoding-bad.d
+0a38c63c4ff9883fcb74b046bf4ef2d8 gas/testsuite/gas/arm/group-reloc-ldc-encoding-bad.l
+b51e0a85a2968c0874dd84d70ccc7e98 gas/testsuite/gas/arm/group-reloc-ldc-encoding-bad.s
+2e58ab14323fdd088bb5bef0d3a0a903 gas/testsuite/gas/arm/group-reloc-ldc-parsing-bad.d
+4095b26ed8e712819b13b4df2398189a gas/testsuite/gas/arm/group-reloc-ldc-parsing-bad.l
+a25ae4630bcfe59c637696af6854d906 gas/testsuite/gas/arm/group-reloc-ldc-parsing-bad.s
+8725f1debe93e13fbfbf2e35e35ee293 gas/testsuite/gas/arm/group-reloc-ldc.d
+e6269dc8201bbc0d7536d63bfc004391 gas/testsuite/gas/arm/group-reloc-ldc.s
+fbcc0b9865a919e2e396b609a38b3140 gas/testsuite/gas/arm/group-reloc-ldr-encoding-bad.d
+fd7ae9bc38ba6e3c6124177067dcc11f gas/testsuite/gas/arm/group-reloc-ldr-encoding-bad.l
+5d039ff31e397f54d48d6657301ddaba gas/testsuite/gas/arm/group-reloc-ldr-encoding-bad.s
+817f41a953364ac010a948905bc55a2b gas/testsuite/gas/arm/group-reloc-ldr-parsing-bad.d
+8d4a698306b20055783bce14acc999b4 gas/testsuite/gas/arm/group-reloc-ldr-parsing-bad.l
+ddad24055724b08d0b2ad0602eeb085a gas/testsuite/gas/arm/group-reloc-ldr-parsing-bad.s
+eb70b1e4a002a36f162e5b012444ff22 gas/testsuite/gas/arm/group-reloc-ldr.d
+9470afbf4d15b3e6eda76240e041464b gas/testsuite/gas/arm/group-reloc-ldr.s
+730f22bb1b759b38fff45191ac10099b gas/testsuite/gas/arm/group-reloc-ldrs-encoding-bad.d
+889183bdab1e768427f23e6054a095b6 gas/testsuite/gas/arm/group-reloc-ldrs-encoding-bad.l
+eb42221f52e86619ffd816975935414d gas/testsuite/gas/arm/group-reloc-ldrs-encoding-bad.s
+eb9637b1b579d11e322701fa993eb5bd gas/testsuite/gas/arm/group-reloc-ldrs-parsing-bad.d
+d52a6c83b28c7c5fe61929262035663a gas/testsuite/gas/arm/group-reloc-ldrs-parsing-bad.l
+99ea8d19fecacf0ac69265933fdc9b7b gas/testsuite/gas/arm/group-reloc-ldrs-parsing-bad.s
+b3c6f63fd853c217c54d4ecab932a357 gas/testsuite/gas/arm/group-reloc-ldrs.d
+e1adac14a163b6c09a57e5e540610c59 gas/testsuite/gas/arm/group-reloc-ldrs.s
+5e84e674be839da4944a89a6d0b43d0f gas/testsuite/gas/arm/half-prec-neon.d
+671c6b51557ad268f30b813b355fd1fb gas/testsuite/gas/arm/half-prec-neon.s
+c411716b53a01dd989ea7ba06c94db33 gas/testsuite/gas/arm/half-prec-psyntax.d
+67400d0f9dcc456dde55b93afc15852b gas/testsuite/gas/arm/half-prec-psyntax.s
+b638d628916e6ec7e535db106186a0ac gas/testsuite/gas/arm/half-prec-vfpv3.d
+33a0c3375a31232569556ef4bb009327 gas/testsuite/gas/arm/half-prec-vfpv3.s
+9bcdb2621a218c5c985acd6ee22dc539 gas/testsuite/gas/arm/immed.d
+6b615b131eba5ce2972ceb7452ffcf46 gas/testsuite/gas/arm/immed.s
+9d5b58d931515aa3712ea07723cb7ef6 gas/testsuite/gas/arm/insn-error-a.d
+86fc6b9d858e7d60045ec235e5633360 gas/testsuite/gas/arm/insn-error-a.l
+78ba3194cd769394c50d38358ce909db gas/testsuite/gas/arm/insn-error-a.s
+a8cf1c4ccc5e140c62ace2674871a087 gas/testsuite/gas/arm/insn-error-t.d
+05938042b303717249601e3d0fc5f888 gas/testsuite/gas/arm/insn-error-t.l
+e1cface84f4bb1ab52fba3267edfd23a gas/testsuite/gas/arm/insn-error-t.s
+4314753a593a8f8569c706850062f917 gas/testsuite/gas/arm/inst-po-2.d
+948a45af9eb40c1b116c7019e3746a3d gas/testsuite/gas/arm/inst-po-2.l
+dc784af9b0779c44cfa0e66530550491 gas/testsuite/gas/arm/inst-po-2.s
+2fd671853f73474877a75842379f9fa0 gas/testsuite/gas/arm/inst-po-3.d
+c6fff8965f439fed5799239955763fb7 gas/testsuite/gas/arm/inst-po-3.s
+354c60051fefa7b07f7afcab0bafa57a gas/testsuite/gas/arm/inst-po-be.d
+470252007be8fe8ca94883b7038d29e2 gas/testsuite/gas/arm/inst-po.d
+b431e65441371eaa623711974386efbd gas/testsuite/gas/arm/inst-po.s
+18a51073b0babf23b798fb78f28d61fd gas/testsuite/gas/arm/inst.d
+349fa5f51ab1c1f651b57e3f0ea01bc5 gas/testsuite/gas/arm/inst.s
+816fc29be5cded0d14ec4c91f41aae11 gas/testsuite/gas/arm/itblock.s
+a4d10ec00b5b2d3bd9e0fd9079586d5d gas/testsuite/gas/arm/iwmmxt-bad.d
+daa0e8793b6d0f7a623982b72d481cdb gas/testsuite/gas/arm/iwmmxt-bad.l
+0867271152e5ddc12f99cd30be0bcaac gas/testsuite/gas/arm/iwmmxt-bad.s
+97be31587023ec827b51c6d7ca8e8c3f gas/testsuite/gas/arm/iwmmxt-bad2.d
+9623aa2f5b29fce8cf1c5b3bffad538d gas/testsuite/gas/arm/iwmmxt-bad2.l
+0a9b840ecb8d92d33f3fad2172941b36 gas/testsuite/gas/arm/iwmmxt-bad2.s
+f43ad375f120bfa6442c845e08f48798 gas/testsuite/gas/arm/iwmmxt-wldsttbh.d
+fcd9558879996d3702cca14dfbd7b1c2 gas/testsuite/gas/arm/iwmmxt-wldsttbh.s
+07b01bf770dbf7aacf53c7f75486390d gas/testsuite/gas/arm/iwmmxt.d
+18ef0fae53b1ae71010419104c5eaaa6 gas/testsuite/gas/arm/iwmmxt.s
+a954076b91c04e0a3a1f0d4345ee9dc8 gas/testsuite/gas/arm/iwmmxt2.d
+b6a943febc4facd9e1afe4fa4571c946 gas/testsuite/gas/arm/iwmmxt2.s
+c24d721909407cb044c8e769590ccfa2 gas/testsuite/gas/arm/ld-sp-warn-cortex-m3.d
+7b950dcc29225e439d0b595a80c79d3a gas/testsuite/gas/arm/ld-sp-warn-cortex-m3.l
+67dc25ceee7eb17c2aea58410a64e749 gas/testsuite/gas/arm/ld-sp-warn-cortex-m4.d
+7b950dcc29225e439d0b595a80c79d3a gas/testsuite/gas/arm/ld-sp-warn-cortex-m4.l
+6de11a5b58a4668e3471a70e29905de2 gas/testsuite/gas/arm/ld-sp-warn-v7.d
+7b950dcc29225e439d0b595a80c79d3a gas/testsuite/gas/arm/ld-sp-warn-v7.l
+78e4de149f463ea430f168956c4d52aa gas/testsuite/gas/arm/ld-sp-warn-v7a.d
+f77cb8d2d15aadd8085a43297cf69873 gas/testsuite/gas/arm/ld-sp-warn-v7a.l
+7b950dcc29225e439d0b595a80c79d3a gas/testsuite/gas/arm/ld-sp-warn-v7e-m.l
+7d3b9164add42b6e99a821b975dd2203 gas/testsuite/gas/arm/ld-sp-warn-v7em.d
+5ac7b7bd60e7846be41fc8de4649d42c gas/testsuite/gas/arm/ld-sp-warn-v7m.d
+7b950dcc29225e439d0b595a80c79d3a gas/testsuite/gas/arm/ld-sp-warn-v7m.l
+0fa4be58d3839f9236503f22605b93a9 gas/testsuite/gas/arm/ld-sp-warn-v7r.d
+f77cb8d2d15aadd8085a43297cf69873 gas/testsuite/gas/arm/ld-sp-warn-v7r.l
+47f606afeb12c4870368c4d4f9703f42 gas/testsuite/gas/arm/ld-sp-warn.d
+7b950dcc29225e439d0b595a80c79d3a gas/testsuite/gas/arm/ld-sp-warn.l
+793e9588d044f6b38d86fff098dbccc6 gas/testsuite/gas/arm/ld-sp-warn.s
+d187d857a39b9eb1481ab1d06b1e33cd gas/testsuite/gas/arm/ldconst.d
+ee73fefc2ff67c1f78695ecfb1e38450 gas/testsuite/gas/arm/ldconst.s
+0cf72f9deff31d281b0688b1c51299cb gas/testsuite/gas/arm/ldr-global.d
+319d68cf023fde2814a3d38caf5a885a gas/testsuite/gas/arm/ldr-global.s
+21364225f78254b49e7b7a4f17b167bf gas/testsuite/gas/arm/ldrd-unpredictable.d
+7b3523400eda6b7484d0cd117e593228 gas/testsuite/gas/arm/ldrd-unpredictable.l
+8b2cbf9d4cc96cacf061d0f4474c1e34 gas/testsuite/gas/arm/ldrd-unpredictable.s
+7dabea78544bbb60309b1361fb10e37b gas/testsuite/gas/arm/ldst-offset0.d
+78beecc505302906be4d478b85d739d1 gas/testsuite/gas/arm/ldst-offset0.s
+8e4e0b15e93a95859b21dde0b25dde4c gas/testsuite/gas/arm/ldst-pc.d
+f179f690e48f680a8faec8acfe29e71f gas/testsuite/gas/arm/ldst-pc.s
+1068e8b7a4dcba95cc284038938995ee gas/testsuite/gas/arm/le-fpconst.d
+01ece05c7a31cb680e04d26a1f7dc281 gas/testsuite/gas/arm/le-fpconst.s
+9819f0435c0c870c8d4da2c16f9c19c2 gas/testsuite/gas/arm/local_function.d
+b455c8e8b4fc02b0b05496d453636d4b gas/testsuite/gas/arm/local_function.s
+d70f655ff516d305a0992587c4ef9f5e gas/testsuite/gas/arm/local_label_coff.d
+d14693fceec9906fb4515a0a2255dd3c gas/testsuite/gas/arm/local_label_coff.s
+4335b82228ceb5129fd7f4273a50393c gas/testsuite/gas/arm/local_label_elf.d
+6355a44b26e941909f08add117d12aef gas/testsuite/gas/arm/local_label_elf.s
+0f5de36e674295930c09c998d4ab690b gas/testsuite/gas/arm/local_label_wince.d
+6355a44b26e941909f08add117d12aef gas/testsuite/gas/arm/local_label_wince.s
+2bdc7db375674bbd8c962f77c48273df gas/testsuite/gas/arm/macro1.d
+f94f70714509c698a85f5bfe10dfc5ae gas/testsuite/gas/arm/macro1.s
+e9aaf90da625f89cd911838e6530e8d3 gas/testsuite/gas/arm/mapdir.d
+465d0a414219012deb1286bf3a46c4ef gas/testsuite/gas/arm/mapdir.s
+e27d4c340486991879dfa8aa7af571e6 gas/testsuite/gas/arm/mapmisc.d
+9143f4e8bb70c861dcdb22bb9374e909 gas/testsuite/gas/arm/mapmisc.dat
+26b67f2c3bd2569781f276c35c952814 gas/testsuite/gas/arm/mapmisc.s
+92d78ef68895b83f71bbdf4a6afd00dd gas/testsuite/gas/arm/mapping.d
+b774e08295a0b1ad5b5571f00899b7c1 gas/testsuite/gas/arm/mapping.s
+20220f50cd5168155e8365645a681a19 gas/testsuite/gas/arm/mapping2.d
+476e62a83b24f546978c98500d9829f2 gas/testsuite/gas/arm/mapping2.s
+284d574bec8097e4c941b9ac065dd5af gas/testsuite/gas/arm/mapping3.d
+dadc1f13b9721b97d37af5ae0fc2f277 gas/testsuite/gas/arm/mapping3.s
+7a947fbd5cc094336fefbcacee93f84e gas/testsuite/gas/arm/mapping4.d
+87f3e53a18241b91aa9f2cd87a9a20a5 gas/testsuite/gas/arm/mapping4.s
+4ace6eb1a8e0e25e9877810b48c04a38 gas/testsuite/gas/arm/mapsecs.d
+def73f8262f150a831c8979059596787 gas/testsuite/gas/arm/mapsecs.s
+b7fe5a92a5ca41125668f60c493da6fc gas/testsuite/gas/arm/mapshort-eabi.d
+bf0fcfb3cad05fb2f3596e968ed796a0 gas/testsuite/gas/arm/mapshort-elf.d
+18760336bebeee857996508148bb9dbd gas/testsuite/gas/arm/mapshort.s
+124d543c4a1a0b5d9a4443bf623badf4 gas/testsuite/gas/arm/maverick.c
+c838211c7da60d6785efa38fbcab5d0f gas/testsuite/gas/arm/maverick.d
+9733817e8baaf48af49d0ed3436c266d gas/testsuite/gas/arm/maverick.s
+3eae809452a7e5020933be1912c2a139 gas/testsuite/gas/arm/missing.d
+4e5e9ef32c8f8085bd7604edb5b2fc83 gas/testsuite/gas/arm/missing.l
+988d5dfbf9639a19495aaf38b36fe41d gas/testsuite/gas/arm/missing.s
+e316c8087a5734c802d718ccf7f36445 gas/testsuite/gas/arm/movw-local.d
+28e02b70f8f2150a3aa28084aa95caba gas/testsuite/gas/arm/movw-local.s
+84615392c85d7406e8f3e4f3ccdc5385 gas/testsuite/gas/arm/mrs-msr-arm-v6.d
+5582ca092d910139096f6e784a6f9104 gas/testsuite/gas/arm/mrs-msr-arm-v6.s
+6f314f63a905dd252a1ffa63a0df8106 gas/testsuite/gas/arm/mrs-msr-arm-v7-a-bad.d
+9613827c7247508ed08c5a9e0ef82626 gas/testsuite/gas/arm/mrs-msr-arm-v7-a-bad.l
+e7f619829adde372edf6705e5583f2e0 gas/testsuite/gas/arm/mrs-msr-arm-v7-a-bad.s
+bf4626f1c8e2f9a5a95ca3ac2655c2e7 gas/testsuite/gas/arm/mrs-msr-arm-v7-a.d
+37decf43db393705954aedf765d8a731 gas/testsuite/gas/arm/mrs-msr-arm-v7-a.s
+ba06e835aed08d8f688a57a64270af3e gas/testsuite/gas/arm/mrs-msr-thumb-v6t2.d
+c79b16465cbb552f966777db4be05b5f gas/testsuite/gas/arm/mrs-msr-thumb-v6t2.s
+9a03994ab61bdb5108ffd3576a876b99 gas/testsuite/gas/arm/mrs-msr-thumb-v7-m-bad.d
+0798c38bb4f3640cacbc74b2a520924b gas/testsuite/gas/arm/mrs-msr-thumb-v7-m-bad.l
+2de59464eb8191827437c7dc1a805ff5 gas/testsuite/gas/arm/mrs-msr-thumb-v7-m-bad.s
+6a0066095176e9b964b326f87d911e44 gas/testsuite/gas/arm/mrs-msr-thumb-v7-m.d
+02efdb26a8e03140267ae76985e97ea6 gas/testsuite/gas/arm/mrs-msr-thumb-v7-m.s
+6291a36c7f5a52bad759b912f8f9e1d7 gas/testsuite/gas/arm/mrs-msr-thumb-v7e-m.d
+4eb035fd2d7bcf31a2f250939dcc420c gas/testsuite/gas/arm/mrs-msr-thumb-v7e-m.s
+6058e50be1984cb4f2b8335d7aa26043 gas/testsuite/gas/arm/msr-imm-bad.d
+5cc86bc37d674d6998eccd7d09e18fe1 gas/testsuite/gas/arm/msr-imm-bad.l
+d01c65524ef1105873380d5dad846f8a gas/testsuite/gas/arm/msr-imm.d
+5cc38bc465b20586d9c07463f4902b5d gas/testsuite/gas/arm/msr-imm.s
+e61a3696023e90145d275bf0a194b23c gas/testsuite/gas/arm/msr-reg-bad.d
+379de63e81e79399fb07657d0aed60e9 gas/testsuite/gas/arm/msr-reg-bad.l
+e7a2d5823eca4708658b3d70c01a8f38 gas/testsuite/gas/arm/msr-reg-thumb.d
+c9e26f0d3d2c62175daeb1c6ac26b56f gas/testsuite/gas/arm/msr-reg.d
+b1552a60b41600a63c1e968923081170 gas/testsuite/gas/arm/msr-reg.s
+11772836f59a495702695b6339fa3b9b gas/testsuite/gas/arm/mul-overlap-v6.d
+07bda526d2fcbf45a932337f8e29bb57 gas/testsuite/gas/arm/mul-overlap-v6.s
+17fe4133ba0a85c2317831ffb24eeead gas/testsuite/gas/arm/mul-overlap.d
+6c63bb3ee5fb4b78431f1317a5efcf74 gas/testsuite/gas/arm/mul-overlap.l
+3df6848b00e808f03b76dbd7e9a1c5ce gas/testsuite/gas/arm/mul-overlap.s
+8e9ab4429f94a012cd267f99ac69ce36 gas/testsuite/gas/arm/neon-addressing-bad.d
+14f6d29877ea48e698e247b59efbcbef gas/testsuite/gas/arm/neon-addressing-bad.l
+463003ace658b94c7c699ba21caf97aa gas/testsuite/gas/arm/neon-addressing-bad.s
+10af148cf1ee84ed1a4108165d4ca8f4 gas/testsuite/gas/arm/neon-cond-bad-inc.s
+43280fbe920432be11fb289a2b472259 gas/testsuite/gas/arm/neon-cond-bad.d
+3571b5bf707f406f7576d69865e64524 gas/testsuite/gas/arm/neon-cond-bad.l
+ecfa5a8faacbcc2e01ab275cfc4efdca gas/testsuite/gas/arm/neon-cond-bad.s
+83bd572087f8783edbe3d1534653eb1c gas/testsuite/gas/arm/neon-cond-bad_t2.d
+def57c5740ea4531f07f3d31b2c6ddb3 gas/testsuite/gas/arm/neon-cond-bad_t2.s
+2fd46a301d1a952947f37884ba8f3a20 gas/testsuite/gas/arm/neon-cond.d
+8646f4f19a10fbd74846ebbfa837ef8d gas/testsuite/gas/arm/neon-cond.s
+770e1ae53d7e86878755c333e414175b gas/testsuite/gas/arm/neon-const.d
+d4a8874be00b937d6d6dca1870280bca gas/testsuite/gas/arm/neon-const.s
+f8fcf3e00228f36e07ba178c6b0a1ff6 gas/testsuite/gas/arm/neon-cov.d
+f254fbc9f5f4924ab2d00e6d07d1e312 gas/testsuite/gas/arm/neon-cov.s
+49f9699d779171eab1b540d4ad5b7175 gas/testsuite/gas/arm/neon-fma-cov.d
+9503397bcd4a9ca5639ca36a4b242583 gas/testsuite/gas/arm/neon-fma-cov.s
+d6a975348697afc594f48b52b892b8db gas/testsuite/gas/arm/neon-ldst-align-bad.d
+fd0e96b63c05dd5901918a9cabe1c4da gas/testsuite/gas/arm/neon-ldst-align-bad.l
+655d7b07a2b3ad09ec2c2f73ef62c42f gas/testsuite/gas/arm/neon-ldst-align-bad.s
+210f964a54bb8e56eb26150fbbfaf80d gas/testsuite/gas/arm/neon-ldst-es.d
+c01517e689b7c6a3099d7e7374ec1c78 gas/testsuite/gas/arm/neon-ldst-es.s
+270689c14f1e09a1299f1aee6c42f8e2 gas/testsuite/gas/arm/neon-ldst-rm.d
+4735641e4572ac6285603230a2ab2a8b gas/testsuite/gas/arm/neon-ldst-rm.s
+4641629ed10dd7a9cd8b5f6f3e364467 gas/testsuite/gas/arm/neon-logic.d
+ac7d622ce54d38f0c8af6c610a71d95f gas/testsuite/gas/arm/neon-logic.s
+320af88493f5f00fca7702baaf713eb8 gas/testsuite/gas/arm/neon-omit.d
+bbe7f57d3fabe58d17d1ce4a0967add5 gas/testsuite/gas/arm/neon-omit.s
+8f82758d0beadda9e60befd90245b39f gas/testsuite/gas/arm/neon-psyn.d
+3f378e58bd4cc94bcf47ab8639dcc786 gas/testsuite/gas/arm/neon-psyn.s
+68e69dda3b36f2d23614f7eb214b398b gas/testsuite/gas/arm/neon-suffix-bad.d
+f359623bc30170386dd676a0d07e9d04 gas/testsuite/gas/arm/neon-suffix-bad.l
+23e7a1c60ea019c51f68e82b361684f9 gas/testsuite/gas/arm/neon-suffix-bad.s
+09c399798b6f6226bc9392701984d84d gas/testsuite/gas/arm/noarm.d
+61d0f35fda0421e8e186264823772ccf gas/testsuite/gas/arm/noarm.l
+d49f2e2e554e5254df9e6fcc3fdee549 gas/testsuite/gas/arm/noarm.s
+7919d24207a3acde2d7cf13b18c6a1ac gas/testsuite/gas/arm/nomapping.d
+98619293650f7b518d3970d82a75702a gas/testsuite/gas/arm/nomapping.s
+0155561984bac77cfe907a7166529d2a gas/testsuite/gas/arm/offset-1.d
+0049c9a8b74b07c27b17d86bf286e53f gas/testsuite/gas/arm/offset-1.s
+2fd68d8a359445574a3003262233736e gas/testsuite/gas/arm/offset.d
+9e145924181e4df094b49e8f7408747b gas/testsuite/gas/arm/offset.s
+1dd2705e6f363559a8906edb52cd3853 gas/testsuite/gas/arm/pic.d
+70da6cc98fe9db2ec3da4610ffa695b6 gas/testsuite/gas/arm/pic.s
+7ae6d895867864be78c46c5c71aaa044 gas/testsuite/gas/arm/pic_vxworks.d
+f08cd74620ff8ad2e87677969eb1934d gas/testsuite/gas/arm/plt-1.d
+10c7bb0182b3ce4fe78482ba8637c3b9 gas/testsuite/gas/arm/plt-1.s
+c680ca444b19d490e7c12858000dbae1 gas/testsuite/gas/arm/pr12198-1.d
+e8db6b50e9fb5ccb7df673d67fb6c458 gas/testsuite/gas/arm/pr12198-1.s
+e2db89380e96cb8c2472aac8d5164853 gas/testsuite/gas/arm/pr12198-2.d
+1262c94cb87cf6c3cb6698383546d633 gas/testsuite/gas/arm/pr12198-2.s
+7d4d163463af6cf79192ecf628e50907 gas/testsuite/gas/arm/pr9722.d
+27f87bc2b727386cd6b95624efbee8fe gas/testsuite/gas/arm/pr9722.s
+4f3ba7a55b325bf9dc76be29a6d4af52 gas/testsuite/gas/arm/r15-bad.d
+910d4a7c9bdd847365d82f1bce543e44 gas/testsuite/gas/arm/r15-bad.l
+e2af0cc3247b8aca95c4032caaf5a395 gas/testsuite/gas/arm/r15-bad.s
+d66f544c0118480c42bfa1ad12e3462b gas/testsuite/gas/arm/reg-alias.d
+93863da4986b279dd10d2a60d366bccf gas/testsuite/gas/arm/reg-alias.s
+f01377397912f2cedecaca64999eaaca gas/testsuite/gas/arm/relax_branch_align.d
+ca63a1e30168e872a6b13b634ca29ff0 gas/testsuite/gas/arm/relax_branch_align.s
+2221765acd4d7efc589ab8b119dce715 gas/testsuite/gas/arm/relax_load_align.d
+2a7bb5938cb16f6928f3282254ce8fb4 gas/testsuite/gas/arm/relax_load_align.s
+f80b6ebb48a178284a8eb418c9a70da1 gas/testsuite/gas/arm/reloc-bad.d
+d0a219ab37022c81272ec727f7731dec gas/testsuite/gas/arm/reloc-bad.l
+6f5d9b6a63406edfdb091d5893710641 gas/testsuite/gas/arm/reloc-bad.s
+f4ef829919d79352d5b1baae0bdf2f4c gas/testsuite/gas/arm/req.d
+f9da5f85d8187f85ae791f2ade434678 gas/testsuite/gas/arm/req.l
+bf2947dcf18be37d50ab6bd60ac3aa2f gas/testsuite/gas/arm/req.s
+136216f1dc6cd600f5ecfda9f1ff99de gas/testsuite/gas/arm/shift-bad.d
+a7cdc333198864370212d61140ac2bcd gas/testsuite/gas/arm/shift-bad.l
+6cba987b724a65c74661976906469ce9 gas/testsuite/gas/arm/shift-bad.s
+c7c42ee91268e697ceece089a8e93eb9 gas/testsuite/gas/arm/sp-pc-usage-t.d
+1141d6b3988e027b5c4f475150fbda53 gas/testsuite/gas/arm/sp-pc-usage-t.s
+a2dc515af8e77f4724ee3790181e6e46 gas/testsuite/gas/arm/sp-pc-validations-bad-t.d
+5de68dc2553cc0eec9d27e7977d29ae2 gas/testsuite/gas/arm/sp-pc-validations-bad-t.l
+4759d227fd0d11878fc2943998caab95 gas/testsuite/gas/arm/sp-pc-validations-bad-t.s
+483a92319c1910ad3b360dde1c651f12 gas/testsuite/gas/arm/sp-pc-validations-bad.d
+44bf3d071e4910657aa73f6022bada47 gas/testsuite/gas/arm/sp-pc-validations-bad.l
+497cc6a93e7d8ddc37895165108e1c25 gas/testsuite/gas/arm/sp-pc-validations-bad.s
+3c2a1f8518fa4c23e18667fd740227a7 gas/testsuite/gas/arm/srs-arm.d
+66e9637554bb4f72218c489224be3177 gas/testsuite/gas/arm/srs-arm.l
+4648a976a8f5e1699596e256a3ce250d gas/testsuite/gas/arm/srs-arm.s
+dd9d9e9bfd3dd04872435e114a543083 gas/testsuite/gas/arm/srs-t2.d
+7ca3fbcdc2e993283f6116358dc49a0f gas/testsuite/gas/arm/srs-t2.l
+b31115bcc7a52537ca0342a1a266bd61 gas/testsuite/gas/arm/srs-t2.s
+6806d45994f0599762653bda12f4807b gas/testsuite/gas/arm/strex-bad-t.d
+703980d4ec521843190bbab82eea1500 gas/testsuite/gas/arm/strex-bad-t.l
+59db60c267064f3b01d351eabbee0d3f gas/testsuite/gas/arm/strex-bad-t.s
+dd0fd7c207d00fa114e7ef7da8268cef gas/testsuite/gas/arm/strex-t.d
+1cf69a8a70a52a388c9f9568ec167302 gas/testsuite/gas/arm/strex-t.s
+4877f9ab7469bf9117aa5b838ca527a5 gas/testsuite/gas/arm/svc.d
+cda65a85f8ee8f5cccc5dbf733e26e2e gas/testsuite/gas/arm/svc.s
+bfb711d24a6452e46fba4e2d16673f36 gas/testsuite/gas/arm/t16-bad.d
+991c316eeeb58d99db3840461d3f7729 gas/testsuite/gas/arm/t16-bad.l
+55ac121d7d32ac4ca72eff5e098bc129 gas/testsuite/gas/arm/t16-bad.s
+517c69649f8714920a56bdd12c6ecc8f gas/testsuite/gas/arm/t2-branch-global.d
+ec97b7362771c52cce9cff1cddfe4821 gas/testsuite/gas/arm/t2-branch-global.s
+8dfd0e82f441b176be452d05d68dac49 gas/testsuite/gas/arm/target-reloc-1.d
+feb34688c490e07f5f6c5c13ba0d82f8 gas/testsuite/gas/arm/target-reloc-1.s
+9bb4d2487a26e90364475db11862c204 gas/testsuite/gas/arm/tcompat.d
+faa87d86afa097cd8816f747da696107 gas/testsuite/gas/arm/tcompat.s
+060a1e2e0d34128ffdfb7f9943f2d37c gas/testsuite/gas/arm/tcompat2.d
+a24e1db08e35323e4bc5c9f3b2865dea gas/testsuite/gas/arm/tcompat2.s
+c20d33cfac995557c3f6160606a66670 gas/testsuite/gas/arm/thumb-b-bad.d
+8e6fe776255925819b636d1b13e16070 gas/testsuite/gas/arm/thumb-b-bad.l
+bef0f733aa2ebe8d5a78972bdbdb723e gas/testsuite/gas/arm/thumb-b-bad.s
+fa606b48f97478a13b73aafda5ad1eb6 gas/testsuite/gas/arm/thumb-eabi.d
+878d73a3699f79270d470f11f0b83087 gas/testsuite/gas/arm/thumb-nop.d
+d9e9f6a3fd5aeefce3ed1d26a44de904 gas/testsuite/gas/arm/thumb-nop.s
+74f88e1fa42785685687ee1221aaca18 gas/testsuite/gas/arm/thumb-w-bad.d
+b79db477b5f3017d824b3f6520b0e0a4 gas/testsuite/gas/arm/thumb-w-bad.l
+d9d877613eeb9f575af073c4200b56e7 gas/testsuite/gas/arm/thumb-w-bad.s
+bfb87e3b0495eccdb975fc9266b515a2 gas/testsuite/gas/arm/thumb-w-good.d
+f442cec1a0ed93f8b1b514ebaca215e7 gas/testsuite/gas/arm/thumb-w-good.s
+5d64734b41b97cbdfc90c0cd97664b83 gas/testsuite/gas/arm/thumb.d
+d9744626acf306931c7a1fa14863d112 gas/testsuite/gas/arm/thumb.s
+92ba8d4dc031f0ce87c3b519422d7d58 gas/testsuite/gas/arm/thumb1_unified.d
+145492bce7eff0e34f3db6d4074ba8c4 gas/testsuite/gas/arm/thumb1_unified.s
+650e79e78f5b009e1babf78b92e996cf gas/testsuite/gas/arm/thumb2_add.d
+cc6aac472725e45622aa5069c8595ba5 gas/testsuite/gas/arm/thumb2_add.s
+5f8729154bebe0db4413ec3fac600a95 gas/testsuite/gas/arm/thumb2_bad_reg.d
+a1da677e3965ee864c11630b1f0c5f08 gas/testsuite/gas/arm/thumb2_bad_reg.l
+c1d6e7f9149d704d8d3445318f9b2e86 gas/testsuite/gas/arm/thumb2_bad_reg.s
+8f12f48ba7a793f6e6a2f478e468f32c gas/testsuite/gas/arm/thumb2_bcond.d
+248a5078599f1f6885f90a9f11048e51 gas/testsuite/gas/arm/thumb2_bcond.s
+776810abf75e22776e2fcdcc8f39762f gas/testsuite/gas/arm/thumb2_invert.d
+ca60ace6e68f37922d0193a14f4962b0 gas/testsuite/gas/arm/thumb2_invert.s
+adb003113b7b7db6630f7036c3941341 gas/testsuite/gas/arm/thumb2_it.d
+3417601654a28c87e83aed481d35a28b gas/testsuite/gas/arm/thumb2_it.s
+256698e45231962fafaf3de21b279aac gas/testsuite/gas/arm/thumb2_it_auto.d
+46e9aa183f311a36def910ba19da47ae gas/testsuite/gas/arm/thumb2_it_bad.d
+973b9cf4c477d9aecbffaca70f8860b8 gas/testsuite/gas/arm/thumb2_it_bad.l
+5deca957d184efc91f3eb0c6bcb04d0b gas/testsuite/gas/arm/thumb2_it_bad.s
+6a8d7056c33b8cd068b89aae7448f043 gas/testsuite/gas/arm/thumb2_it_bad_auto.d
+0a2e42584017248fcbe3903ef98f0ac4 gas/testsuite/gas/arm/thumb2_ldmstm.d
+937df075b618d6fcd8101cd7c2130cc3 gas/testsuite/gas/arm/thumb2_ldmstm.s
+fc3e939191cfdc160da1a6ed571d747f gas/testsuite/gas/arm/thumb2_ldmstm_bad.d
+4d0d002b9e10a4635434345fc8978b40 gas/testsuite/gas/arm/thumb2_ldmstm_bad.l
+0cc1a9dfc66f9de04db2bb30a99381c9 gas/testsuite/gas/arm/thumb2_ldmstm_bad.s
+435c117c9005017199d72237ccbde734 gas/testsuite/gas/arm/thumb2_mul-bad.d
+694b47dcde774bd4511a75d51c03e033 gas/testsuite/gas/arm/thumb2_mul-bad.l
+903a8ffaa5e442332b3b1a79aef20830 gas/testsuite/gas/arm/thumb2_mul-bad.s
+faeff9ef1f517dcbd4fa67b4ab5362f1 gas/testsuite/gas/arm/thumb2_mul.d
+0d39993c01d3e40184dcb4b451129901 gas/testsuite/gas/arm/thumb2_mul.s
+34e4483f8cf6f967bf6ae42c9eb7a72a gas/testsuite/gas/arm/thumb2_pool.d
+b7d8a3446745fcfbb6007aff4c1513e3 gas/testsuite/gas/arm/thumb2_pool.s
+7d9305fe723d2a6e6bca2555c9ce9d3a gas/testsuite/gas/arm/thumb2_relax.d
+b3aa4e03076cd20cbc79591775bde8c8 gas/testsuite/gas/arm/thumb2_relax.s
+31a2b98945ece896be9fac14481330a3 gas/testsuite/gas/arm/thumb32.d
+f8b1e727bd11baf8ee45f11d3eb087b7 gas/testsuite/gas/arm/thumb32.l
+d0be248198cc7469196f066ae0b4dc66 gas/testsuite/gas/arm/thumb32.s
+b781f06f863434629a42d7ece4da1dd7 gas/testsuite/gas/arm/thumbrel.d
+381b8be7fa2c2fc62279d1f1c7139d45 gas/testsuite/gas/arm/thumbrel.s
+8536c857bc7e3818604337db4408c29c gas/testsuite/gas/arm/thumbv6.d
+32c8c68853e9c3714f92d458c22c107b gas/testsuite/gas/arm/thumbv6.s
+602b437bcb68889786d1cb4f9de7259c gas/testsuite/gas/arm/thumbv6k.d
+7e0e60be4eec0eaf688f4ebded3519a1 gas/testsuite/gas/arm/thumbv6k.s
+0ae6d6f5f99f95ee07412df57889d2a0 gas/testsuite/gas/arm/thumbver.d
+5c7522af774e96f8d855d83a62490d55 gas/testsuite/gas/arm/thumbver.s
+9d0943617b5b1f1d0df8672b6348dbf1 gas/testsuite/gas/arm/tls.d
+7645c96c57962ba8a6f43ee029d84b7b gas/testsuite/gas/arm/tls.s
+83daaae25c1c59a430e25610b85a87c1 gas/testsuite/gas/arm/tls_vxworks.d
+81846b97b286d4da80793bf66783dfa5 gas/testsuite/gas/arm/undefined.d
+3e1c1880c7c3b70297d9f4b2abc1c6f9 gas/testsuite/gas/arm/undefined.l
+6890516d1ed282bcd8ffe6badad800fe gas/testsuite/gas/arm/undefined.s
+c61c8553c23590cad294240c950bc2ab gas/testsuite/gas/arm/undefined_coff.d
+381c68d752a39fe3b1c8e2502ae6214c gas/testsuite/gas/arm/undefined_coff.l
+7f9bf611638fd7d0d6c831e6ddf5962e gas/testsuite/gas/arm/undefined_coff.s
+956183f9e40e5aeb80093622994cb80f gas/testsuite/gas/arm/unpredictable.d
+9a6fa12ed030e85078ea708f978159f9 gas/testsuite/gas/arm/unpredictable.s
+e6f007ab71c7cd258e23b255eded45d7 gas/testsuite/gas/arm/unwind.d
+2d938cd95d98fc257adbed6d744672d0 gas/testsuite/gas/arm/unwind.s
+27900faafd9458945db813a9fa712ca4 gas/testsuite/gas/arm/unwind_vxworks.d
+33454a43477691a1b3493e7053287e4b gas/testsuite/gas/arm/v4bx.d
+3328cf20fd05dff9c4dc40267c5c783d gas/testsuite/gas/arm/v4bx.s
+adb88ddc0d65aa2cfb5c13fb798b445c gas/testsuite/gas/arm/vcvt-bad.d
+58498e913f66247e663bc80ec46b7848 gas/testsuite/gas/arm/vcvt-bad.l
+69d248ecbe3f47b0eb6c25a5d8b6099b gas/testsuite/gas/arm/vcvt-bad.s
+b6a84f98e1a19c70ec8ce96888733183 gas/testsuite/gas/arm/vcvt.d
+40e340e69bfe1509c317359844e22098 gas/testsuite/gas/arm/vcvt.s
+ba5e39f1a0404cf679b2d05556a1cff5 gas/testsuite/gas/arm/vfma1.d
+96a659e5f8cb8cc7ec1a210de1c0ab97 gas/testsuite/gas/arm/vfma1.s
+814d0fae55d79302ad95e3a713a8baec gas/testsuite/gas/arm/vfp-bad.d
+f413ca5d6d3e49dd0a8acf8c2a540003 gas/testsuite/gas/arm/vfp-bad.l
+5c94325ced2602ef362e4436113230a2 gas/testsuite/gas/arm/vfp-bad.s
+96d08206a5c7bcea2ee723cce0052784 gas/testsuite/gas/arm/vfp-bad_t2.d
+bc4cc6a09adc664ab0f7fc0c9a8db159 gas/testsuite/gas/arm/vfp-bad_t2.l
+d559b5f5968972a6c28b8618149a9ec9 gas/testsuite/gas/arm/vfp-bad_t2.s
+d04af89d25e2bb3b8ede4c77a13dd894 gas/testsuite/gas/arm/vfp-fma-arm.d
+6f2e58670d4a8298176c9587b5dc67d8 gas/testsuite/gas/arm/vfp-fma-arm.s
+894f31ac6c674cbf59f52dc02488ed8f gas/testsuite/gas/arm/vfp-fma-inc.s
+f1a512c9b8271ead5f1d78bfed54f416 gas/testsuite/gas/arm/vfp-fma-thumb.d
+7cb6361ba0e917ed9528dc2c8a81a402 gas/testsuite/gas/arm/vfp-fma-thumb.s
+43114c92e8b7f44df4e63fe5d3db87fd gas/testsuite/gas/arm/vfp-neon-overlap.d
+49ff879adf72e9b977f885f5fae15b43 gas/testsuite/gas/arm/vfp-neon-overlap.s
+c711bfc8c023c16fdf54e2df13f11803 gas/testsuite/gas/arm/vfp-neon-syntax-inc.s
+a69dac85d469b55d0bc7be7f83394651 gas/testsuite/gas/arm/vfp-neon-syntax.d
+0c57087317ef5cd78c4135033f3309af gas/testsuite/gas/arm/vfp-neon-syntax.s
+1fa245e852186c3e7958712bcce62b98 gas/testsuite/gas/arm/vfp-neon-syntax_t2.d
+1e47784b14f6ff2a614926bea8e0accd gas/testsuite/gas/arm/vfp-neon-syntax_t2.s
+55f192542f749e66e6a0762eaa6a9ce9 gas/testsuite/gas/arm/vfp1.d
+e82b842fce34cd77d75a4138a4c504c2 gas/testsuite/gas/arm/vfp1.s
+2b48069ab63774c5732679d105cab6cf gas/testsuite/gas/arm/vfp1_t2.d
+3d0e2f89aeb8c1d2f335b244a5ff26f8 gas/testsuite/gas/arm/vfp1_t2.s
+13a06e27e989e572477a33af811bd8b4 gas/testsuite/gas/arm/vfp1xD.d
+57aa4bd0017b62016ab6586c12a9e76c gas/testsuite/gas/arm/vfp1xD.s
+0f0144d8c16795a1ab7bbe2373c8479b gas/testsuite/gas/arm/vfp1xD_t2.d
+1480da2f991c4b2503ac985e90508781 gas/testsuite/gas/arm/vfp1xD_t2.s
+50ad9da9954eace7f9b268ddb1f6ee93 gas/testsuite/gas/arm/vfp2.d
+bfd6afbdacdf57a886ad9d8530fae3ad gas/testsuite/gas/arm/vfp2.s
+b49df4f483e8804f4c41dcdcdfa522ce gas/testsuite/gas/arm/vfp2_t2.d
+6a5f0f0ac922d9ebf53fd12ab0085ac1 gas/testsuite/gas/arm/vfp2_t2.s
+67d563edfa8e90bcc438603701b8e0f2 gas/testsuite/gas/arm/vfpv3-32drs.d
+b4988a9934cfe174162bc72eb0467d52 gas/testsuite/gas/arm/vfpv3-32drs.s
+b22944bb7d38947a499cea5dd8475c0d gas/testsuite/gas/arm/vfpv3-const-conv.d
+36df2f2463986f5799cb982ce679d2e8 gas/testsuite/gas/arm/vfpv3-const-conv.s
+15e911682d91ef19f9418f94e73142aa gas/testsuite/gas/arm/vfpv3-d16-bad.d
+7e4f0b5acd8e228fb3428808f82434a3 gas/testsuite/gas/arm/vfpv3-d16-bad.l
+23076fd52504b85239ddcbaeef67b5a4 gas/testsuite/gas/arm/vfpv3xd.d
+d53650f58020c4cfb2ea155c3c67d92e gas/testsuite/gas/arm/vfpv3xd.s
+35e731ac30c173d5fa873f68e522b748 gas/testsuite/gas/arm/vldm-arm.d
+770d8810f2fbaa102502be7bb07713e6 gas/testsuite/gas/arm/vldm-thumb-bad.d
+dec93ea68b2858b13a7467aeb183e5ae gas/testsuite/gas/arm/vldm-thumb-bad.l
+7e21099077fa1a9f5bb5c3aab2b304f0 gas/testsuite/gas/arm/vldm.s
+ecd10146f7bb08ad8124934712e30c85 gas/testsuite/gas/arm/vldmw-arm-bad.d
+414fdd3db617268d1358b78646daf962 gas/testsuite/gas/arm/vldmw-bad.l
+6894e0da633e5dcd9797ef7a78ca72a9 gas/testsuite/gas/arm/vldmw-bad.s
+650064cfade1b2d1e0d608e2fbf7e137 gas/testsuite/gas/arm/vldmw-thumb-bad.d
+df37ae8d43864e241863e1f6bee8499f gas/testsuite/gas/arm/vldr.d
+05c04549362277975864175f7ff8c050 gas/testsuite/gas/arm/vldr.s
+870c99417583f480398818773063e6c7 gas/testsuite/gas/arm/vstr-arm-bad.d
+e67da15cbbe42f4c32940587dda180cf gas/testsuite/gas/arm/vstr-arm-bad.l
+12345b0b2762761ddbd1b17b3fa98fe4 gas/testsuite/gas/arm/vstr-bad.s
+f896cdd49e74db069bd1092a8ed74be7 gas/testsuite/gas/arm/vstr-thumb-bad.d
+e840d784d5cc8a7e0e62ffc9798ca268 gas/testsuite/gas/arm/vstr-thumb-bad.l
+c47643b23f1901bdd93d2addf127fa5a gas/testsuite/gas/arm/weakdef-1.d
+3f04291ba97df3690197d442dea32f90 gas/testsuite/gas/arm/weakdef-1.s
+e99d7cf8dd682d42b500568dd4ac9936 gas/testsuite/gas/arm/weakdef-2.d
+7866a81443ff8b59e62809f3d37d6d8a gas/testsuite/gas/arm/weakdef-2.l
+e690017471e4bbc22a86f9106d5ec084 gas/testsuite/gas/arm/weakdef-2.s
+6db4b707707184c05cb9883ad84f59b9 gas/testsuite/gas/arm/wince.d
+a463e0b33dd0b3291d2af948e4488c30 gas/testsuite/gas/arm/wince.s
+80bd281a78ceaa6ecee1a7ce9f11f084 gas/testsuite/gas/arm/wince_inst.d
+7030fbdc97a88504e0328ae9fcdd4372 gas/testsuite/gas/arm/xscale.d
+66848c515a123077cd3c9ce386e1ff3e gas/testsuite/gas/arm/xscale.s
+855a3b9ca08ab38bb1ba350b5d6b6b0c gas/testsuite/gas/bfin/allinsn16.d
+ec9bb025ee497292ec861c57d9c6391f gas/testsuite/gas/bfin/allinsn16.s
+48601b2595429ff57bac71bff0c1adbb gas/testsuite/gas/bfin/arith_mode.d
+411ce7b9c39735181cfe6cb9680f67ed gas/testsuite/gas/bfin/arith_mode.s
+288eb007666feec4c962c5dfaa836c9b gas/testsuite/gas/bfin/arithmetic.d
+29127b65c16e5e7a549e80c4466786dd gas/testsuite/gas/bfin/arithmetic.s
+02b15bae7950f8b4b2ea052633a0bee6 gas/testsuite/gas/bfin/bfin.exp
+f596c0af9181f1e480c68fe8f0f2ab9d gas/testsuite/gas/bfin/bit.d
+2423a518f5d1c6e3b2c2fa7fbe1f1bfd gas/testsuite/gas/bfin/bit.s
+a9379c30f5de60f2caf528071d06e422 gas/testsuite/gas/bfin/bit2.d
+058c76d275a75499c86d44115f573d9e gas/testsuite/gas/bfin/bit2.s
+c25eac965192a8961a7543bedc3a2730 gas/testsuite/gas/bfin/cache.d
+1bd724bb8ff4df410a9a84ee255bb018 gas/testsuite/gas/bfin/cache.s
+d4927f98c2c5c1481231dd1e2cfd5781 gas/testsuite/gas/bfin/cache2.d
+1ee626769200af147928f53ff095e2da gas/testsuite/gas/bfin/cache2.s
+7adc63b3344d644b70239976289bec0e gas/testsuite/gas/bfin/control_code.d
+d0bb675fcf4f27f96feb8c518907fcc4 gas/testsuite/gas/bfin/control_code.s
+165a574f41080b8c866f7bdee7d62f2f gas/testsuite/gas/bfin/control_code2.d
+4893b61f4d42730f53bae9093a06e7fb gas/testsuite/gas/bfin/control_code2.s
+f47c6a798720885598d185fd9ea4ef4e gas/testsuite/gas/bfin/error.exp
+5298d3a5bf5b960115981f15639302d2 gas/testsuite/gas/bfin/event.d
+1a2bfd331853fc647d79a74468708867 gas/testsuite/gas/bfin/event.s
+aec157b0fd56eda78f8bfba4fa84368d gas/testsuite/gas/bfin/event2.d
+53f030f3469d4890baa352fc9bbaaf23 gas/testsuite/gas/bfin/event2.s
+3c84ef5957759be4b82c41c18ca145d5 gas/testsuite/gas/bfin/expected_comparison_errors.l
+6635ab1602035b65177208c6d7b2551a gas/testsuite/gas/bfin/expected_comparison_errors.s
+4be9fbd5ddb23008fc5bebbc72f78ffa gas/testsuite/gas/bfin/expected_errors.l
+8e47d689b926fa65b7032e9926380af7 gas/testsuite/gas/bfin/expected_errors.s
+57bdb0129fdeb43e2ff729fec8895765 gas/testsuite/gas/bfin/expected_move_errors.l
+e494a66f47146777b7410140f81e77ec gas/testsuite/gas/bfin/expected_move_errors.s
+bbfbed204eba7aeedbf9c476c1c7538a gas/testsuite/gas/bfin/flow.d
+3fc4e67254243c40ab5e1c25a6a81f63 gas/testsuite/gas/bfin/flow.s
+b061426129437b38fef226b646ae1901 gas/testsuite/gas/bfin/flow2.d
+09780a8e9ad4e6745f30a8cee292af53 gas/testsuite/gas/bfin/flow2.s
+0df70e67b2899a9f7d9188eefe1430d6 gas/testsuite/gas/bfin/invalid_arith_mode.l
+89e1cc331f3c9d957fab3cb87a11513a gas/testsuite/gas/bfin/invalid_arith_mode.s
+70e77ee318335724f5c33a06f9bc2abb gas/testsuite/gas/bfin/line_number.l
+75b3e45d78c9922accca7942cf6e4b0a gas/testsuite/gas/bfin/line_number.s
+9f94114d4918da2355c1ebc8af88df49 gas/testsuite/gas/bfin/load.d
+d69b6cf2f36e26b037cff1f1cb3ecb3f gas/testsuite/gas/bfin/load.s
+2de58b5a2db55ca271c16559debcb882 gas/testsuite/gas/bfin/logical.d
+2fe47567e87037449c8434d098bad4ed gas/testsuite/gas/bfin/logical.s
+c05cd2663b7b1cbc0b462b5487ae25e3 gas/testsuite/gas/bfin/logical2.d
+91fedd260d934e42bac56427b0bb66d9 gas/testsuite/gas/bfin/logical2.s
+898ceb71b8b09c5deb2c73a94233f2b4 gas/testsuite/gas/bfin/loop.d
+9cb1ef9a91cea1ee05c5fe18f7defa51 gas/testsuite/gas/bfin/loop.s
+9e904d074aaaf7a1bb9ca3b5929f8a18 gas/testsuite/gas/bfin/loop2.d
+122a6a3789c071346184055570d6e57b gas/testsuite/gas/bfin/loop2.s
+52ef261c940962d4442e6ef02d7e724e gas/testsuite/gas/bfin/loop3.d
+4e1a44b596f5f6481ad4076406df5c35 gas/testsuite/gas/bfin/loop3.s
+f9f09b385cb472027447931e8f0aa68e gas/testsuite/gas/bfin/loop_label.d
+7526ada3e63eeb4680573f0c0a0df185 gas/testsuite/gas/bfin/loop_label.s
+9c524aea6f6add81b88df552064e15db gas/testsuite/gas/bfin/loop_label2.d
+d58d75270dbc8daca3425fd79cf03533 gas/testsuite/gas/bfin/loop_label2.s
+82127633d16b7051585bad25006f3c2d gas/testsuite/gas/bfin/loop_temps.d
+6c61c744e11ef1952e0618f8081b43f6 gas/testsuite/gas/bfin/loop_temps.s
+6b953b46d53958fa7a7ce02232a8f020 gas/testsuite/gas/bfin/misc.d
+10be3b7f88b1ebca1ba82749b1da2f5b gas/testsuite/gas/bfin/misc.s
+7d7516efd5d3a6f954356e1f3cd42472 gas/testsuite/gas/bfin/move.d
+5d2d08592057d077be163c2b155bb0eb gas/testsuite/gas/bfin/move.s
+80603951715ce9fd1cdad7a025e8d072 gas/testsuite/gas/bfin/move2.d
+777c285afed0e998dca948f5f4945039 gas/testsuite/gas/bfin/move2.s
+7df6f331af40c8b717a146de35510c58 gas/testsuite/gas/bfin/parallel.d
+01bd82a1d8bdcb4d9dd0de8fc7929b5e gas/testsuite/gas/bfin/parallel.s
+f192d3af5c598dfc645553e7e6e996c5 gas/testsuite/gas/bfin/parallel2.d
+59d24a38210bb2bcb9900a1693a10c11 gas/testsuite/gas/bfin/parallel2.s
+b1b34fd1286a5cbd3009a309f50da7d9 gas/testsuite/gas/bfin/parallel3.d
+e03ff8c8eeeb9b9d590c88f3d88b1b38 gas/testsuite/gas/bfin/parallel3.s
+c441fbe88c8a366c6f26b3f815606650 gas/testsuite/gas/bfin/parallel4.d
+3cc5b04fef0c761a2d8e679f0c47b097 gas/testsuite/gas/bfin/parallel4.s
+d95bd8c3417107d37edc20237e101a53 gas/testsuite/gas/bfin/parallel5.s
+70aa8fb2636c9fe3e1d0506923efd767 gas/testsuite/gas/bfin/parallel_illegal.d
+c4f71443f481e73a9c6b5ad2b0e61271 gas/testsuite/gas/bfin/parallel_illegal.s
+e37edaea01e81b1b557030e721b41c25 gas/testsuite/gas/bfin/pseudo.d
+1f6139ba7ebdd23bcb8167d4d600ca4b gas/testsuite/gas/bfin/pseudo.s
+23c14fe93560edbb13f883506ecf9e8a gas/testsuite/gas/bfin/reloc.d
+5057c84be940f533409912ccb929e32c gas/testsuite/gas/bfin/reloc.s
+8efd003d71645708cb6062d3ce3cdeb5 gas/testsuite/gas/bfin/resource_conflict.l
+139c46683952dad8d3a391c30327721d gas/testsuite/gas/bfin/resource_conflict.s
+630be7f8c7f71d6e57e751bf4ba4de9b gas/testsuite/gas/bfin/shift.d
+60749a1cc7d1b067aec37959e7581b9d gas/testsuite/gas/bfin/shift.s
+0b4419d8ea2648c0d1c5258d9109cab1 gas/testsuite/gas/bfin/shift2.d
+82334304cbea2a43feea83a2455b9c5c gas/testsuite/gas/bfin/shift2.s
+50addfc0be6b78f58b42e12d0aa54531 gas/testsuite/gas/bfin/stack.d
+2c0315e6dc7ff72e7ddd35ec60450354 gas/testsuite/gas/bfin/stack.s
+ff3c5e0cdf2bffa239c94495b7a3242d gas/testsuite/gas/bfin/stack2.d
+73b5e4051236d15608d6ab20d4dea9c4 gas/testsuite/gas/bfin/stack2.s
+a6de01518793db5197c923b41aabf7f1 gas/testsuite/gas/bfin/store.d
+ddcfb10fec3bd4b7831493421c881c22 gas/testsuite/gas/bfin/store.s
+9d624149b67f74bafd7faa7301549e42 gas/testsuite/gas/bfin/vector.d
+aa502219854811389958435e66a260fb gas/testsuite/gas/bfin/vector.s
+e0baad2674334925da679897215797a3 gas/testsuite/gas/bfin/vector2.d
+4cb6a375f948e1c99ccaf2efdd5d0178 gas/testsuite/gas/bfin/vector2.s
+c8ac0cb1b1e5e8f6f80e3808e437ef99 gas/testsuite/gas/bfin/video.d
+213f9eea8da19afe265602c0c9b123f3 gas/testsuite/gas/bfin/video.s
+fb94a4da1ac483d2879bcc796e329c66 gas/testsuite/gas/bfin/video2.d
+f27e1ab75da775e3a2e41c9b00e31296 gas/testsuite/gas/bfin/video2.s
+066581f156f1219a1aa97c6160cd66a5 gas/testsuite/gas/cfi/cfi-alpha-1.d
+c732145c7ef46cd0a6032f7e2b510061 gas/testsuite/gas/cfi/cfi-alpha-1.s
+2b43ab50e2a1d940f42058f251a26d50 gas/testsuite/gas/cfi/cfi-alpha-2.d
+7a903b0680f5f68cbb334bcfb8f78418 gas/testsuite/gas/cfi/cfi-alpha-2.s
+ff9f9dcd55ee564c573f6d269d66546b gas/testsuite/gas/cfi/cfi-alpha-3.d
+fb22d6ffbc03e216af699e438247ab89 gas/testsuite/gas/cfi/cfi-alpha-3.s
+6fd2fa86d4b6c8005f8186edf8195cba gas/testsuite/gas/cfi/cfi-arm-1.d
+27866105927ba075e08a1df3329c1011 gas/testsuite/gas/cfi/cfi-arm-1.s
+4cbc9891a86946b14f7f363f41d2e341 gas/testsuite/gas/cfi/cfi-common-1.d
+ff9a79da6f82cdbf3501bcde9eb478f1 gas/testsuite/gas/cfi/cfi-common-1.s
+e41e4135e7eb851779802342ade53d51 gas/testsuite/gas/cfi/cfi-common-2.d
+4e1d60f8041c1d463b0ab47d28a0b8ed gas/testsuite/gas/cfi/cfi-common-2.s
+bf08ba0cf412e0416915142b01bdb8fa gas/testsuite/gas/cfi/cfi-common-3.d
+e38a19aa1e2fe664fe714f357ceafb72 gas/testsuite/gas/cfi/cfi-common-3.s
+8ccd0d722ce1616e66d6e7cf53e64d24 gas/testsuite/gas/cfi/cfi-common-4.d
+d680108d8be37f6a0d454b5622d97001 gas/testsuite/gas/cfi/cfi-common-4.s
+257f5c1149eb931d9701c2ec7f81c022 gas/testsuite/gas/cfi/cfi-common-5.d
+8b67504e3fc661ce66fd7d54427c4987 gas/testsuite/gas/cfi/cfi-common-5.s
+3578dc1e6b6db2bdc2e1176efc159f81 gas/testsuite/gas/cfi/cfi-common-6.d
+8a8f9709b68037c0b396fc1031242b8b gas/testsuite/gas/cfi/cfi-common-6.s
+da4984a421f8667465e4b54280a3bc0c gas/testsuite/gas/cfi/cfi-common-7.d
+6ce2b2eed8afc779c2c773961a874930 gas/testsuite/gas/cfi/cfi-common-7.s
+a20cb2990eabbc4a00fde7383f77f52a gas/testsuite/gas/cfi/cfi-diag-1.l
+d9aa89632b07c90425d877d2c4fe5f21 gas/testsuite/gas/cfi/cfi-diag-1.s
+da3e425a8331d0a520240173284f9c9a gas/testsuite/gas/cfi/cfi-hppa-1.d
+812d7ee7b3a8d0670e63df68bf345671 gas/testsuite/gas/cfi/cfi-hppa-1.s
+b7da2fc63a9502996bd88622218713a3 gas/testsuite/gas/cfi/cfi-i386-2.d
+439b989fe3ccc39f216269684d8ef849 gas/testsuite/gas/cfi/cfi-i386-2.s
+58ec6ff31643ced32a6edad1108b398a gas/testsuite/gas/cfi/cfi-i386.d
+8425a0b2af627d17ad56297126ec1ff2 gas/testsuite/gas/cfi/cfi-i386.s
+c1b5e4bb5a02f6477c17757063a0930e gas/testsuite/gas/cfi/cfi-m68k.d
+ce598e227551ae3fb76ac5ec10f1e08d gas/testsuite/gas/cfi/cfi-m68k.s
+a1a12c078940cdcf8454152dcc37eb55 gas/testsuite/gas/cfi/cfi-mips-1.d
+8a2867da19dc676c9e3b377876b0f31f gas/testsuite/gas/cfi/cfi-mips-1.s
+7e1e2f28f4c14c3c387b51691b92c467 gas/testsuite/gas/cfi/cfi-ppc-1.d
+023e0a3711f8bdda382cfe17793857c1 gas/testsuite/gas/cfi/cfi-ppc-1.s
+9b424e0ffcad66335d6d6c8bdc7b74bd gas/testsuite/gas/cfi/cfi-s390-1.d
+b8507466edac4d850cd795fffec14f30 gas/testsuite/gas/cfi/cfi-s390-1.s
+b41ed0bc3e45e67e153c8d040a586c8e gas/testsuite/gas/cfi/cfi-s390x-1.d
+e4805f533c9d695511947a95cd44f743 gas/testsuite/gas/cfi/cfi-s390x-1.s
+26dfe0ef330ce08533f32e18c72fb2ea gas/testsuite/gas/cfi/cfi-sh-1.d
+88c8945be2bfa4de0b3c595656da7dec gas/testsuite/gas/cfi/cfi-sh-1.s
+430acd77e07efd7adb56b96cffd9fe09 gas/testsuite/gas/cfi/cfi-sparc-1.d
+03d5d698bd1714ce01a3bdf90202dfaf gas/testsuite/gas/cfi/cfi-sparc-1.s
+f942371542b27947d6163a13ce123cd6 gas/testsuite/gas/cfi/cfi-sparc64-1.d
+a1442421e2bf9301a2dd97cb67e7bb6a gas/testsuite/gas/cfi/cfi-sparc64-1.s
+faa32ed81d021bd4d67a422db2069d25 gas/testsuite/gas/cfi/cfi-x86_64.d
+945303be8742859327c0a797f590c3b8 gas/testsuite/gas/cfi/cfi-x86_64.s
+f4850c1c1ffe9cdc75a494f9ff382798 gas/testsuite/gas/cfi/cfi.exp
+8fdf465aaf385904a22cebd36470411a gas/testsuite/gas/cfi/reloc-pe-i386.d
+53141d8552ddcf94bebfbf40a96b756f gas/testsuite/gas/cfi/reloc-pe-i386.s
+6cbd46d2c6b6998cfbc1416c2dcc5986 gas/testsuite/gas/cr16/add_test.d
+f67591ac56f7d8fa46b0af785918cf00 gas/testsuite/gas/cr16/add_test.s
+3f956abd53e7b9782e157e66d0d174e4 gas/testsuite/gas/cr16/and_test.d
+379fc40517c936b62bed28f7901bce6c gas/testsuite/gas/cr16/and_test.s
+7d9c505b78a99a457a5cdda77eac7e18 gas/testsuite/gas/cr16/ash_test.d
+0cbd8c17535ef10debf411f97977f625 gas/testsuite/gas/cr16/ash_test.s
+e17c168e80ba015e19fd1a7124baf7e7 gas/testsuite/gas/cr16/bal_test.d
+075c27e1a30eb002f59e0567dab5f8e9 gas/testsuite/gas/cr16/bal_test.s
+7e0dfd2f99b9221cadf84abf76f66945 gas/testsuite/gas/cr16/bcc_test.d
+d042fa6d08f507db0c8499ce33fd1af1 gas/testsuite/gas/cr16/bcc_test.s
+439b60a124267d982b2b0e8cf0cfe40e gas/testsuite/gas/cr16/beq0_test.d
+8e9b4ca059bbebc851f7e0bc63b9147d gas/testsuite/gas/cr16/beq0_test.s
+10ffafc185b54ca265c5f83acf74890b gas/testsuite/gas/cr16/cbitb_test.d
+f43ac50dfcef55cdee7df49759e29169 gas/testsuite/gas/cr16/cbitb_test.s
+b6925985b52da977418671bde14bef75 gas/testsuite/gas/cr16/cbitw_test.d
+acbc5a7921b1289f9da3b9cb2443dabb gas/testsuite/gas/cr16/cbitw_test.s
+00dced57978e1399956b8741e08de14c gas/testsuite/gas/cr16/cinv_test.d
+1e040daced19bdf045daadb614911ecf gas/testsuite/gas/cr16/cinv_test.s
+c9cf0a7dad44d6c08d269667504c5c57 gas/testsuite/gas/cr16/cmp_test.d
+fa1040afb324c21fe1becc32efaebe25 gas/testsuite/gas/cr16/cmp_test.s
+d604132229b24aeb339e5218edd2b587 gas/testsuite/gas/cr16/cr16.exp
+3fee67a2f1b794ac8992b1b9bd80a02f gas/testsuite/gas/cr16/excp_test.d
+f268d7bd4b306dcffb4d1a736c73d1ee gas/testsuite/gas/cr16/excp_test.s
+c3e21b8af3492e40c78ed9f3217a8ae5 gas/testsuite/gas/cr16/jal_test.d
+a4c88339cbf41a2a648b8add558e6de3 gas/testsuite/gas/cr16/jal_test.s
+111aee148b8cab1b4be9bd3e50988329 gas/testsuite/gas/cr16/jcc_test.d
+f2cc7af5281128c2becd0b37d355e5a2 gas/testsuite/gas/cr16/jcc_test.s
+5f23fd7b8bee081cd454fc97246353bf gas/testsuite/gas/cr16/loadb_test.d
+8a58e37d8558992ce9e79f76c6665894 gas/testsuite/gas/cr16/loadb_test.s
+5216cd5f7626019cbc7ecc314dfe8a79 gas/testsuite/gas/cr16/loadd_test.d
+1c5070569732bb257505e91353af07b7 gas/testsuite/gas/cr16/loadd_test.s
+7a274d8efc9b5fcf46388074d94f604c gas/testsuite/gas/cr16/loadm_test.d
+4401e7860986aa7df7f32936766412bb gas/testsuite/gas/cr16/loadm_test.s
+7c402fbfb6d1d4863cd14e84bfa820be gas/testsuite/gas/cr16/loadw_test.d
+73b7f7ebbfbf7ab9063255d54155febc gas/testsuite/gas/cr16/loadw_test.s
+609079c80e60aaafb706da43b16d3eef gas/testsuite/gas/cr16/lpsp_test.d
+f7f73c4b947ca273d884b115e295dd13 gas/testsuite/gas/cr16/lpsp_test.s
+bfcfea13614c1bb6b051ecf3fdea23db gas/testsuite/gas/cr16/lsh_test.d
+f081b89311bdc9bfe4ac860bb299e508 gas/testsuite/gas/cr16/lsh_test.s
+cfb43cab6c74fcaf0c5befa33e9a3128 gas/testsuite/gas/cr16/mov_test.d
+ff5f3527feb5e7f90ce3d62986aa8011 gas/testsuite/gas/cr16/mov_test.s
+38d96dbacf46018b5fffeba5bb084502 gas/testsuite/gas/cr16/mul_test.d
+a9a379d0eeb9dddf7dbba3b974d9c60e gas/testsuite/gas/cr16/mul_test.s
+904b1d9400008b6c623eea3182ed2a2a gas/testsuite/gas/cr16/or_test.d
+853bf658ec740a2e9c2a7819dae101ac gas/testsuite/gas/cr16/or_test.s
+0d78b6997a1c3d8a22f1bdfa9b632553 gas/testsuite/gas/cr16/pic.exp
+e87b687f9789317a5e6e53f538dbc34b gas/testsuite/gas/cr16/pic1.d
+d9d5fc12841faee1cf258c4f0f5d5a43 gas/testsuite/gas/cr16/pic1.s
+85839a2f7b2dca815908c42acd5d66e4 gas/testsuite/gas/cr16/pic2.d
+7acd81620499416cf1261402ea692cd0 gas/testsuite/gas/cr16/pic2.s
+9068b2585a4a5f9ceadc882cfb12debe gas/testsuite/gas/cr16/pop_test.d
+6552ddd768381fbbf2341834550f3ce1 gas/testsuite/gas/cr16/pop_test.s
+36664477c638740562de1eda0b61cdc2 gas/testsuite/gas/cr16/popret_test.d
+b306cf2daf9d0524d9a0981b1c39580b gas/testsuite/gas/cr16/popret_test.s
+994aa0ee10f2e19ea573b9937a1201c3 gas/testsuite/gas/cr16/push_test.d
+05d6aaa617be541a89400ef0c18310ed gas/testsuite/gas/cr16/push_test.s
+dc5ed93acc4c6749c8ec64f89ef5b7e8 gas/testsuite/gas/cr16/sbitb_test.d
+1d28f8554499bc1827f691671514a227 gas/testsuite/gas/cr16/sbitb_test.s
+31848cb4dd1949e493999c46e29f0634 gas/testsuite/gas/cr16/sbitw_test.d
+cae0eac1fd3b906e12b4ed54eee0c951 gas/testsuite/gas/cr16/sbitw_test.s
+631b33c87ba752b507325aa2894d432c gas/testsuite/gas/cr16/scc_test.d
+9e4982ccaabd6401072bf7fd3d57f7ed gas/testsuite/gas/cr16/scc_test.s
+94f0142695a3c1490c41d7f3b7df66a5 gas/testsuite/gas/cr16/storb_test.d
+1fd9fcbce7a1e73ff5bcca0fd8e117a7 gas/testsuite/gas/cr16/storb_test.s
+b1edbea3ed56dcc9e27b2ab790a583e1 gas/testsuite/gas/cr16/stord_test.d
+b1172ecdabc7fb9500e1bfd73d8e816f gas/testsuite/gas/cr16/stord_test.s
+0b08e39055214b4ae15aaa2194a24a12 gas/testsuite/gas/cr16/storm_test.d
+8befd9713334d89aacb0d4882112f6b3 gas/testsuite/gas/cr16/storm_test.s
+566c244c7b6af7b87bd11161b10fe15c gas/testsuite/gas/cr16/storw_test.d
+7557b2fbf9968d594d76754862590b8f gas/testsuite/gas/cr16/storw_test.s
+33e17b2ebadac9ad2e63e732350e3df4 gas/testsuite/gas/cr16/sub_test.d
+39087621c7008f2457ec219a5f45307f gas/testsuite/gas/cr16/sub_test.s
+ee1c435e9826cd2643f4de5f20f42b75 gas/testsuite/gas/cr16/tbit_test.d
+28d4092049100f26e101ec66816fb501 gas/testsuite/gas/cr16/tbit_test.s
+109f9d4b6c6d8caa490572f923caa00a gas/testsuite/gas/cr16/tbitb_test.d
+28921a7a006d4bbd78764590fb6d8c8d gas/testsuite/gas/cr16/tbitb_test.s
+a534687c0dd279e1da4356add0226c4b gas/testsuite/gas/cr16/tbitw_test.d
+ed50d410cc3b2d6185c3c7a9f0261df2 gas/testsuite/gas/cr16/tbitw_test.s
+060603bb9c6b20292757fa2f26456872 gas/testsuite/gas/cr16/xor_test.d
+9d0817f524a9be5302b574b3d6f18df5 gas/testsuite/gas/cr16/xor_test.s
+18d4c4bc0430b3c84b2302d30d1dc847 gas/testsuite/gas/cris/abs32-1.s
+d37874c6207817f204a1ec750ebb4071 gas/testsuite/gas/cris/addi.d
+6ca0c7c8a4113b4ba0224dcdf4e6717d gas/testsuite/gas/cris/addi.s
+13a10a503be033d6331a02a0f5ddcc77 gas/testsuite/gas/cris/arch-err-1.s
+0d58f43aece3f51c4ca5026fbf555a14 gas/testsuite/gas/cris/arch-err-2.s
+b6328fb4babda313830b0972ef82e525 gas/testsuite/gas/cris/arch-err-3.s
+45891f0c0c9960eff1a6e2ca99331d0d gas/testsuite/gas/cris/arch-err-4.s
+44bfb8b3f93389a8c411433c4bef2597 gas/testsuite/gas/cris/arch-err-5.s
+cc7815e98e40d50319297072ed0788d2 gas/testsuite/gas/cris/binop-cmpmove.d
+dc1a9682ed0b829d2af27e82ab20cf6c gas/testsuite/gas/cris/binop-cmpmovx.d
+cb2d8aeb2cc4a340dbf648056d7c96b3 gas/testsuite/gas/cris/binop-extx.d
+af929eb0019e7cde018a6d96e2c61325 gas/testsuite/gas/cris/binop-segref.s
+725914dadc2fa064588b802c4dd23a15 gas/testsuite/gas/cris/binop.d
+ce4e65752cd8c2657ef0b10cbcc00cde gas/testsuite/gas/cris/binop.s
+5d7c80786055352c3129a6d9a6e3e6ff gas/testsuite/gas/cris/bork.d
+67a42ca84f31bc333b785695009221fa gas/testsuite/gas/cris/bork.s
+358f933cba6c213ef32385fbf17c89e1 gas/testsuite/gas/cris/bound-err-1.s
+6b30f687aeb97de2c6d8cea516cd0351 gas/testsuite/gas/cris/branch-warn-1.s
+0175c9f81673cc5d7f46599955bf7450 gas/testsuite/gas/cris/branch-warn-2.s
+4358a854465b2097d3ee3f0161f65343 gas/testsuite/gas/cris/branch-warn-3.s
+4c86b005ec93ad9aeca855715e595f75 gas/testsuite/gas/cris/branch.d
+caff7842b5ef92ca805daf6782c1e414 gas/testsuite/gas/cris/branch.s
+37e147e4eb514712f5b6f1ce74aaf2fb gas/testsuite/gas/cris/break.d
+700be97c0689c4196f0da1842abcc231 gas/testsuite/gas/cris/break.s
+67c29fc0a9c79da821c266dbda7689a0 gas/testsuite/gas/cris/brokw-1.d
+c5755e65bfd257cc35eaa9cc22206a73 gas/testsuite/gas/cris/brokw-1.s
+55ea6801fc6ab67be7d04335d28945bd gas/testsuite/gas/cris/brokw-2.d
+fbe8c57fd8caa459cbd13aed974c0a08 gas/testsuite/gas/cris/brokw-2.s
+cc16707dcac40b6e6acc5ef6ba5f99ae gas/testsuite/gas/cris/brokw-3.d
+c59672ea2393738a93f000bf6a4f3dd2 gas/testsuite/gas/cris/brokw-3.s
+cee1b959c4e6aa2fb7315c5713d1ba97 gas/testsuite/gas/cris/brokw-3b.s
+fe98cec7789da4690999c41bcdb2d451 gas/testsuite/gas/cris/bwtest-err-1.s
+7557d9513e8793d9d57b3d235f504e1c gas/testsuite/gas/cris/ccr.d
+93770cdb47d3463657e205bd0fe81db4 gas/testsuite/gas/cris/ccr.s
+381a9ab58435188056b2f25d7ba4357c gas/testsuite/gas/cris/clear.d
+73e539453e3fd4bd9b6d8993f6552a3c gas/testsuite/gas/cris/continue.d
+dd8c355ecfa0c88d8d0269609f26da37 gas/testsuite/gas/cris/continue.s
+8194dd2f54a3ec0c012e0dde97171ee1 gas/testsuite/gas/cris/cris.exp
+69fc8204a5ff36146165b8fc3fcea2ac gas/testsuite/gas/cris/diffexp-ovwr.d
+a4827654925418a4a48b98595a402e1c gas/testsuite/gas/cris/diffexp-ovwr.s
+3e68a25e4fbaee80f92c36b18f617872 gas/testsuite/gas/cris/fragtest.d
+ac5f31bfb9b56f6b73e251468db85eb0 gas/testsuite/gas/cris/fragtest.s
+dbcb23737c31ce04080a64583b5aa301 gas/testsuite/gas/cris/jump-type.d
+35785b12fb4af7d06e1cb6c176b8d6ff gas/testsuite/gas/cris/labfloat.d
+193f9aaf255857e1897a82b483b021f9 gas/testsuite/gas/cris/labfloat.s
+81585babaad1f52261151015eb4a967b gas/testsuite/gas/cris/macroat.d
+c4213b954433bf3aba530e1d0ae31294 gas/testsuite/gas/cris/macroat.s
+ca9c91017df6f851be9fd90a69375669 gas/testsuite/gas/cris/march-err-1.s
+33a5f03480ba14f340dbc635a8d03805 gas/testsuite/gas/cris/march-err-2.s
+b1aed83f188faca64b30a3ea17ed25a7 gas/testsuite/gas/cris/movem-to-reg.d
+16167885542a9a27143ec29a7f6d3e9d gas/testsuite/gas/cris/mulbug-err-1.s
+d6c6f41d90618cfbc9a6906bc01154c1 gas/testsuite/gas/cris/nosep.d
+3130381f901b0e035d9db56d3cd4a6d4 gas/testsuite/gas/cris/nosep.s
+34c9d4996bda0af5eff68b50336fe1c8 gas/testsuite/gas/cris/oneop-type.d
+ccb7110d35badd69f9adff1c71bbc08a gas/testsuite/gas/cris/operand-err-1.s
+54190a464de7bc0ea25278f3e116ca6b gas/testsuite/gas/cris/pic-err-1.s
+a9b04aa6510e199b61e3b6d29435a261 gas/testsuite/gas/cris/pic-err-2.s
+a6c8fcd3276be85611bc7139abeb9a31 gas/testsuite/gas/cris/pic-err-3.s
+4dc221a639f050b33118fee5c2ece649 gas/testsuite/gas/cris/prefix.d
+19af9d100ff80d76593ca93c4119da01 gas/testsuite/gas/cris/prefix.s
+b6aab04b800fd6556fbc8a45196fdbfb gas/testsuite/gas/cris/push-err-1.s
+b52036a4d66575a330aee0806c2d3331 gas/testsuite/gas/cris/push-err-2.s
+bd84b062c31622e8a00f627566c4e5bc gas/testsuite/gas/cris/pushpop-byte-sreg.d
+99abd207ab982e6c4b5c538faff1493d gas/testsuite/gas/cris/pushpop-dcr1-sreg.d
+03b76091d17405f7658174e77dce71fc gas/testsuite/gas/cris/pushpop-dword-sreg.d
+022fee8710dcfd4dfb14d06be1cd7a68 gas/testsuite/gas/cris/pushpop-word-sreg.d
+61a4f6c943509667980199db013817f7 gas/testsuite/gas/cris/pushpop.d
+1ffbba2b760c1b6319dbc869060db0e4 gas/testsuite/gas/cris/pushpop.s
+b7370a2013b7307040d9751520a13165 gas/testsuite/gas/cris/pushpopv32.s
+8ac4149babbed9ae66a40db6ebe094a0 gas/testsuite/gas/cris/quick-s6.d
+f5b3264bade3e45e54ceea8d9df00c5c gas/testsuite/gas/cris/quick-u5.d
+2c932ddd6929e90f4a4780ea206b0207 gas/testsuite/gas/cris/quick-u6.d
+aee73b1e0d6b950ee94745e9bc1d8586 gas/testsuite/gas/cris/quick.s
+d199c4beca07600cd7ff05108419cc5e gas/testsuite/gas/cris/range-err-1.s
+f4b1aa0daf09ff6d724794cbf97c2a31 gas/testsuite/gas/cris/range-err-2.s
+87654b9172aa966303b7116981c57228 gas/testsuite/gas/cris/rd-abs32-1.d
+fbbb8706b858763ee74eea38dae8ede4 gas/testsuite/gas/cris/rd-abs32-2.d
+b06fd1821a11ee736fc8b0420aef36b7 gas/testsuite/gas/cris/rd-arch-1.d
+41e1008449e9ce91acbeb34a4e6df586 gas/testsuite/gas/cris/rd-arch-2.d
+3b9c63265d7fac6d6907b5dc38d34102 gas/testsuite/gas/cris/rd-arch-3.d
+38de3a7dfccae7982fca66e5b07d1e7e gas/testsuite/gas/cris/rd-bcnst-pic.d
+bb3d776febb87e96a08c591167f933d2 gas/testsuite/gas/cris/rd-bcnst.d
+887cfb53bfffd62076d06c51c121e50a gas/testsuite/gas/cris/rd-bcnst.s
+53d39e9f53e7244e5ab6634b4a50e038 gas/testsuite/gas/cris/rd-bcnst2-pic.d
+1f40d077f9fb34cd31a87dd4310267fa gas/testsuite/gas/cris/rd-bcnst2.d
+a41f2e43b3dc0bef72079de14608e205 gas/testsuite/gas/cris/rd-bcnst2.s
+80e0dd503723bf9da8cbcceb422486bf gas/testsuite/gas/cris/rd-bkw1b.d
+cbd7e8f5a14aaa74c7fb0fd5fb97dbcd gas/testsuite/gas/cris/rd-bkw2b.d
+02ae58e3a53206f358a097f86db4d126 gas/testsuite/gas/cris/rd-bkw3b.d
+24897332d26e514248bb5c8fe03ea80b gas/testsuite/gas/cris/rd-bkw4.d
+d6d4622ed39bab9a08a0d0fdef6331df gas/testsuite/gas/cris/rd-bkw4.s
+1a845c01bef1653f34626e530e307df4 gas/testsuite/gas/cris/rd-bkw4v32.d
+b0e882cf4dc19eeeb123f9ac9fe8b9fc gas/testsuite/gas/cris/rd-bkw5.d
+f8bd6023b56ddb4c793ffd742c2120d0 gas/testsuite/gas/cris/rd-bkw5.s
+e444bb4d029956336aa111b822e9b189 gas/testsuite/gas/cris/rd-bkw5b.d
+80b267bd21347bdfe9c86ca92ac28a53 gas/testsuite/gas/cris/rd-bkw5bpic.d
+9ff6aa17de0ec6788d228b83d3758899 gas/testsuite/gas/cris/rd-bkw5bv32.d
+4aefdc218caac8de36190a5494e1d554 gas/testsuite/gas/cris/rd-bkw5bv32pic.d
+47a06af17ec80399820a8f657a213ef4 gas/testsuite/gas/cris/rd-bkw5pic.d
+02adeedd3fad5082488198eb80a46ff0 gas/testsuite/gas/cris/rd-bkw5v32.d
+3a75b30844c91863959b9a000f4454ca gas/testsuite/gas/cris/rd-bkw5v32pic.d
+8fedf55754c77ebf28dad9da1f3bd537 gas/testsuite/gas/cris/rd-bound1.d
+7e268acd25fd255f6fdac6b3aef9e2e7 gas/testsuite/gas/cris/rd-bound1.s
+b718a753c99bd3535fd596957d5c0a29 gas/testsuite/gas/cris/rd-bound2.d
+5a62aa3561a6210f53284a44f43854bd gas/testsuite/gas/cris/rd-bound3.d
+c15f1340900e4aa4b0b9dfbf6040d603 gas/testsuite/gas/cris/rd-bound4.d
+6cb9399f4097d45bf385f6262b67cf78 gas/testsuite/gas/cris/rd-branch-pic.d
+aeeee72d47d9613e56027bea53449559 gas/testsuite/gas/cris/rd-break32.d
+dbf7c5b8495ec0752f6ac21ddfcc63c6 gas/testsuite/gas/cris/rd-brokw-pic-1.d
+4333de46ebccc54fda3e915e68786e0b gas/testsuite/gas/cris/rd-brokw-pic-2.d
+77fc8d4f667372a41674a464a69ad830 gas/testsuite/gas/cris/rd-brokw-pic-3.d
+2a43ca4c7bc216eb3a15a2b4b3eca0de gas/testsuite/gas/cris/rd-dtpoffd1.d
+73ec340e175057c968836d75d36e9331 gas/testsuite/gas/cris/rd-dtpoffd1.s
+f883d81fdb8a7d818e7773cbce82d731 gas/testsuite/gas/cris/rd-dw2-1.d
+b840a286e39f0e9d98c77a3779bbb012 gas/testsuite/gas/cris/rd-dw2-10.d
+469e8c9e4f6d2895184bb8b93cad1918 gas/testsuite/gas/cris/rd-dw2-11.d
+d9be8f970588936acb1cc79984f2e24c gas/testsuite/gas/cris/rd-dw2-12.d
+4203f32173310ca98c76585f571fff6d gas/testsuite/gas/cris/rd-dw2-13.d
+9ada8fdf55f357d6eb37784821650ecb gas/testsuite/gas/cris/rd-dw2-14.d
+bee6f173d0fb62f25524bcf086c444c2 gas/testsuite/gas/cris/rd-dw2-15.d
+4de38ba6681210cc01ccd89bf7f24643 gas/testsuite/gas/cris/rd-dw2-2.d
+99b844d0272174dc06ccfa5e27202251 gas/testsuite/gas/cris/rd-dw2-3.d
+8a39a4a868db728fc820f78d73059ff5 gas/testsuite/gas/cris/rd-dw2-4.d
+89faabe6c550c0248f1a42c0696f8bcb gas/testsuite/gas/cris/rd-dw2-5.d
+4f3b242744fb959fcb9e929fef31b871 gas/testsuite/gas/cris/rd-dw2-6.d
+1f18d3943be18bc19124a6fef9b62416 gas/testsuite/gas/cris/rd-dw2-7.d
+83bc68a39958ef6bb9d3e546a2d962cf gas/testsuite/gas/cris/rd-dw2-8.d
+b007b686949c2a85642fb3c7560d713d gas/testsuite/gas/cris/rd-dw2-9.d
+dd4c2072ef204f706d33f37b94ae1dca gas/testsuite/gas/cris/rd-fragtest-pic.d
+0c92a0ee53d0e2068874cebbed63046b gas/testsuite/gas/cris/rd-mulbug-1.d
+ea81ec94bfbecb645cccaa9c380070b2 gas/testsuite/gas/cris/rd-pcplus.d
+fa2429278ecbfd6c9c99686de916d5b7 gas/testsuite/gas/cris/rd-pcplus.s
+e30f7a5b9965662525c1c642c2a98895 gas/testsuite/gas/cris/rd-pcrel1.d
+02ca0e5e43a7c43024f98ee7db1e7957 gas/testsuite/gas/cris/rd-pcrel1.s
+1d7701543665de7bac283a25ca3a6cd5 gas/testsuite/gas/cris/rd-pcrel2.d
+f634c6fbd3de5d44a40b1ecb80f5029f gas/testsuite/gas/cris/rd-pcrel2.s
+abdd4fe964370e37e0b84586ed7ed513 gas/testsuite/gas/cris/rd-pic-1.d
+ccf5b33dcc1af17dea262cf4412b6a7c gas/testsuite/gas/cris/rd-pic-1.s
+9997d9085ed3b90ecc7ce23efd068a31 gas/testsuite/gas/cris/rd-pic-2.d
+315455e9aa9c47febc500f958bdb9c4b gas/testsuite/gas/cris/rd-pic-2.s
+4b6b67d7cdf2d0f9d58ef94e0b27eb14 gas/testsuite/gas/cris/rd-ppv1032.d
+f0f81cdede11543b30a1c53ea71c78a7 gas/testsuite/gas/cris/rd-ppv32.d
+60be0bff36db7d7930a178b2deeb8f2e gas/testsuite/gas/cris/rd-regprefix-1.d
+483b2b941bdac034989505d636c292bb gas/testsuite/gas/cris/rd-regprefix-1.s
+1d2c07c7a5bee4af6856d5221f15dae0 gas/testsuite/gas/cris/rd-regprefix-1b.d
+5b25b42b26ce4de5bb0452260411806c gas/testsuite/gas/cris/rd-spr-1.d
+bc96a6e23e68c6999716695ea7a5de9c gas/testsuite/gas/cris/rd-spr-1.s
+e6412235713caed6efc0c2fa5e90041c gas/testsuite/gas/cris/rd-tls-1.d
+2e691298af3f23a0107fedf627cca844 gas/testsuite/gas/cris/rd-tls-1.s
+5a05716ff82e7bbeb15f8f3425874c36 gas/testsuite/gas/cris/rd-tls-2.d
+4200c07d3f74e0618ff211e1c63c70b2 gas/testsuite/gas/cris/rd-tls-2.s
+54359bda6ad5b54ac8da19cf65849a97 gas/testsuite/gas/cris/rd-usp-1.d
+4f9127ae060ba8216e152ef0c71c9645 gas/testsuite/gas/cris/rd-usp-1b.d
+7d2796d5da74d021533e3c535893a004 gas/testsuite/gas/cris/rd-v10_32o-1.d
+9e419f5ca2442c3c2f0fdc758cddd4f6 gas/testsuite/gas/cris/rd-v10_32o-2.d
+141e2cc83b0c4d18262f3f7e5d83034a gas/testsuite/gas/cris/rd-v10_32o-2.s
+c17b6c607d61d7e88dc9e85bd4e1eae2 gas/testsuite/gas/cris/rd-v32-b1.d
+583d342f4ba5db90881fa7ae5db515b9 gas/testsuite/gas/cris/rd-v32-b1.s
+d33ef2b6c1ae0e563ea77429a5b24a03 gas/testsuite/gas/cris/rd-v32-b2.d
+d75bc4a3b0511679908c915c1bf5abd1 gas/testsuite/gas/cris/rd-v32-b2.s
+2ad59b2c6c8fd6b7a76fefcb8da58368 gas/testsuite/gas/cris/rd-v32-b3.d
+54dc335e99beee975da87ea6aea85343 gas/testsuite/gas/cris/rd-v32-b3.s
+e5241edc51b574e736936eb11fc960ac gas/testsuite/gas/cris/rd-v32-f1.d
+5a84f8fc85efcbcd6d552b383ba26b93 gas/testsuite/gas/cris/rd-v32-f1.s
+199f57615b3169a9c21c729443e7df42 gas/testsuite/gas/cris/rd-v32-i1.d
+35d23542a164995c117645d63cdcd8ce gas/testsuite/gas/cris/rd-v32-i1.s
+83b9630e3e01575a01c820893180a62b gas/testsuite/gas/cris/rd-v32-l1.d
+df1a8ccf1739f6c6fcbcadbbd194eee7 gas/testsuite/gas/cris/rd-v32-l1.s
+496c90e0064eefa0cc3b13fa015aab88 gas/testsuite/gas/cris/rd-v32-l3.d
+de3970326a5fc8c860a8229120a69b38 gas/testsuite/gas/cris/rd-v32-l3.s
+3b2607477ce580eeb6d97109aec5ceb9 gas/testsuite/gas/cris/rd-v32-l4.d
+a1709ba73388e4291e6b5ad8fa0f3fd0 gas/testsuite/gas/cris/rd-v32-l4.s
+d5560ad66ae450b2ae04c8dd91dce5b4 gas/testsuite/gas/cris/rd-v32o-1.d
+036b3afb258126aa97cf84ae4b737da9 gas/testsuite/gas/cris/rd-v32s-1.d
+82aaa096d5b7276e9724221f3e4d9432 gas/testsuite/gas/cris/rd-v32s-2.d
+584be3722f0da53d19568ff08b380304 gas/testsuite/gas/cris/rd-v32s-2.s
+65e72621ee681a2f3a439b65c6e2a6bf gas/testsuite/gas/cris/rd-v32s-3.d
+c06fa82f8e9e3be58811ce113dd36258 gas/testsuite/gas/cris/rd-v32s-3.s
+417cf8983da991dbfbc61613c962e09d gas/testsuite/gas/cris/rd-v32s-4.d
+f390e89de781fbc35861705fc43dbba1 gas/testsuite/gas/cris/rd-v32s-4.s
+db856e6fc4ae72ab654b0c4f895fe4f3 gas/testsuite/gas/cris/rd-vao-1.d
+5f67e0e704f6ce290303f00d51ef7c55 gas/testsuite/gas/cris/reg-to-mem.d
+c36b1354d494fa3d14e0f53cbdad14d1 gas/testsuite/gas/cris/regprefix-err-1.s
+a523421fc87b21ff25f964a228e6aac2 gas/testsuite/gas/cris/regreg.d
+8763ceed68b5ad9786d5bb3f89360751 gas/testsuite/gas/cris/regreg.s
+f0fc22a773b1b891a2606a280254433f gas/testsuite/gas/cris/return.d
+618b1c16f597a8c927d63668befe360c gas/testsuite/gas/cris/return.s
+b8f8d6862937a6279c42fa72c492b792 gas/testsuite/gas/cris/scc.d
+41907f8e76731a8a8f634b2051a7ba39 gas/testsuite/gas/cris/scc.s
+590ff33c1d17500de6e318d5c5cc182e gas/testsuite/gas/cris/sep-err-1.s
+fa730ce7e78cb91f38aba30b04251950 gas/testsuite/gas/cris/sep-err-2.s
+3a91d88ae724651f642323a1028dfe19 gas/testsuite/gas/cris/sep-err-3.s
+951d228072201ef134c86189dd1e39cd gas/testsuite/gas/cris/separator.d
+e929807163f06ba801c4d3d98eef047a gas/testsuite/gas/cris/separator.s
+4ed019e17046994aef096b29d48b679c gas/testsuite/gas/cris/shexpr-1.d
+b75dd310987e66aa243a2bdffc008924 gas/testsuite/gas/cris/shexpr-1.s
+0b4ab8bdfecfb175308776f1b30f9267 gas/testsuite/gas/cris/sreg-to-x.d
+79761ddc12c3f3bd14ed8b6133fd670f gas/testsuite/gas/cris/string-1.d
+ba96569c4c3a69683f9eda2f2e804ac9 gas/testsuite/gas/cris/string-1.s
+9580648fead8dc356cede71f7bfaae5b gas/testsuite/gas/cris/string-2.d
+6ddd84549c2ae105a7ffc9e339d1e37e gas/testsuite/gas/cris/string-2.s
+8976b9e2fc8cf3b2f9f2237caaf79ffd gas/testsuite/gas/cris/test.d
+302d72eb4daf587198a5ff031318e6c3 gas/testsuite/gas/cris/tls-err-1.s
+1531b311c51a36060dafd267f0b96d40 gas/testsuite/gas/cris/tls-err-2.s
+979a0fe73b3772a60d9af523acb7079a gas/testsuite/gas/cris/tls-err-3.s
+52f4d98cdb0aaf81048821675acc4381 gas/testsuite/gas/cris/unimplemented.d
+9ff0ef66a3c7733fd200cc4317d56ad7 gas/testsuite/gas/cris/unimplemented.s
+4fa062b6659daef0d47160ec64bd62a5 gas/testsuite/gas/cris/unop-mem.d
+65f2499748e491be121588287a7f3e05 gas/testsuite/gas/cris/unop.s
+75063b64ce4c7ce0ccb58e946587b1fb gas/testsuite/gas/cris/us-err-1.s
+57983a53289a7da6c1ed399d7fe0a3e9 gas/testsuite/gas/cris/us-err-2.s
+89b77f3261be6a0b6f7c2117ec573b35 gas/testsuite/gas/cris/us-err-3.s
+f6b7268bebfffff3bedd6745403a94ad gas/testsuite/gas/cris/v32-err-1.s
+8d4065621889f2c0f5030cb4a935ba0a gas/testsuite/gas/cris/v32-err-10.s
+445af9b99d3d33f3f421bb2757e4ff9b gas/testsuite/gas/cris/v32-err-11.s
+7a56b86ef049cf26c8812cc94991693d gas/testsuite/gas/cris/v32-err-2.s
+2a130988c660af456beb51f57ee587c7 gas/testsuite/gas/cris/v32-err-3.s
+48167e521e41a2b20e643adaf0fc653a gas/testsuite/gas/cris/v32-err-4.s
+8590a58794f69782cb98bbc7b4287fd1 gas/testsuite/gas/cris/v32-err-5.s
+e6775fffe200cf9bb051f4155b8d91e3 gas/testsuite/gas/cris/v32-err-6.s
+5b258ee6efc6766cadf23398030e1e79 gas/testsuite/gas/cris/v32-err-7.s
+cac65aedce61344d081bc1f9cbf15806 gas/testsuite/gas/cris/v32-err-8.s
+c2d8c1083f8564bad89df2010a5d253a gas/testsuite/gas/cris/v32-err-9.s
+2a5f4f6e4b310f1d6d19ddc58bfac9ec gas/testsuite/gas/cris/x-to-byte-sreg.d
+7577002f17af669f7a8144e7858ce3f1 gas/testsuite/gas/cris/x-to-dcr1-sreg.d
+8281e49c3dd60d6d278fbb9440e43e04 gas/testsuite/gas/cris/x-to-dword-sreg.d
+69a3a4886bef70933479dc77967ea4a4 gas/testsuite/gas/cris/x-to-word-sreg.d
+fd3826ff356aeb79099fe12ef4bfd7a2 gas/testsuite/gas/crx/allinsn.exp
+3e987ea3eacfcf73365affb85a80711e gas/testsuite/gas/crx/arith_insn.d
+aba23cd9217a02e80972420bccf254e2 gas/testsuite/gas/crx/arith_insn.s
+b124860509067a033fa183b2ad52d2ff gas/testsuite/gas/crx/beq_insn.d
+cbb2a2a8ebdd76c365b03c090d6cb349 gas/testsuite/gas/crx/beq_insn.s
+7cb7bdb36a00efc14f2d9d7f5e9a4320 gas/testsuite/gas/crx/bit_insn.d
+a9b88867e985c7db06ad15f8aed69fca gas/testsuite/gas/crx/bit_insn.s
+2b30807be764914b1a7fbbced315558e gas/testsuite/gas/crx/br_insn.d
+5792c9d2f7ece4e813e9c05f17ad8b50 gas/testsuite/gas/crx/br_insn.s
+a5a2bacc16b436e31ff8f4394ae83a4a gas/testsuite/gas/crx/cmov_insn.d
+63c662f08a3c53d41bdb1cd589911125 gas/testsuite/gas/crx/cmov_insn.s
+4725fa0812c37cafe5665570eb980a3e gas/testsuite/gas/crx/cmpbr_insn.d
+5a15f070cce2a4aaa04f05391dc94f07 gas/testsuite/gas/crx/cmpbr_insn.s
+c24edb48e5f07071ef62edc096db1b92 gas/testsuite/gas/crx/cop_insn.d
+8267a9f074d80bef654bc891bfbf3c4e gas/testsuite/gas/crx/cop_insn.s
+3f31371f16ed2712dff17f56418fe8f1 gas/testsuite/gas/crx/gas-segfault.d
+a4be774abcf6e0707218424a9c203403 gas/testsuite/gas/crx/gas-segfault.s
+5a36de150e79a77e8b5f65751ba36cb6 gas/testsuite/gas/crx/jscond_insn.d
+42a3455c0057de5509e92e528b5634a7 gas/testsuite/gas/crx/jscond_insn.s
+b18f9705c8d99b0d9ee4e2c06aa4c45f gas/testsuite/gas/crx/list_insn.d
+df6b3c2f77acba7e752cf5a1d0742608 gas/testsuite/gas/crx/list_insn.s
+fc9912552067eac4342d4521f193a797 gas/testsuite/gas/crx/load_stor_insn.d
+2090bee5c0dc703ebbcfb784a806a0ca gas/testsuite/gas/crx/load_stor_insn.s
+bcdceae61722cbe0b8237640e2467e2d gas/testsuite/gas/crx/misc_insn.d
+82dc4fb42dcadde5747959f171498f91 gas/testsuite/gas/crx/misc_insn.s
+3e1001d41b139bba1668d84c1e8e6f9c gas/testsuite/gas/crx/no_op_insn.d
+bc07c25881db9dc098eb887754269119 gas/testsuite/gas/crx/no_op_insn.s
+a154b3ae513a0e46db59528b375bd448 gas/testsuite/gas/crx/shift_insn.d
+3a16320540ca68bf9f993705955f4e7d gas/testsuite/gas/crx/shift_insn.s
+a6735576ee0c12f574d2b2c059292050 gas/testsuite/gas/d10v/address-001.d
+7d9144fec165ca66fe3ad1a06a5c735d gas/testsuite/gas/d10v/address-001.s
+7560d23743649b2f31b7508718eb54f7 gas/testsuite/gas/d10v/address-002.l
+948ab3f723a9f6081583dc3dbb570a54 gas/testsuite/gas/d10v/address-002.s
+4ec4f480ca9855c2f3f88eaad03e4ee5 gas/testsuite/gas/d10v/address-003.l
+9bf77c8372dd9b5ea2e9a272454cc74c gas/testsuite/gas/d10v/address-003.s
+89b79f4f9098b6e93a3936283d1396d8 gas/testsuite/gas/d10v/address-004.l
+4a1380df3b54fe89f70fcca01058e7a6 gas/testsuite/gas/d10v/address-004.s
+7560d23743649b2f31b7508718eb54f7 gas/testsuite/gas/d10v/address-005.l
+fdaa4bfe9faf758e3a0a3ce02fa4bdad gas/testsuite/gas/d10v/address-005.s
+6ccc5e077b308eb4ead744a09b0f6341 gas/testsuite/gas/d10v/address-006.l
+bb98abbfe16da4e235bd56dbb6a30bae gas/testsuite/gas/d10v/address-006.s
+89b79f4f9098b6e93a3936283d1396d8 gas/testsuite/gas/d10v/address-007.l
+7b596f346fb988718153666bf5a0895b gas/testsuite/gas/d10v/address-007.s
+7560d23743649b2f31b7508718eb54f7 gas/testsuite/gas/d10v/address-008.l
+0f45aff1c35f0d1d2f59af79d4ef748c gas/testsuite/gas/d10v/address-008.s
+6ccc5e077b308eb4ead744a09b0f6341 gas/testsuite/gas/d10v/address-009.l
+b50ad1bd41b6af810bd6b8201d2f46c9 gas/testsuite/gas/d10v/address-009.s
+0a72d08339e166994805d7ab5f2c91c5 gas/testsuite/gas/d10v/address-010.l
+3a4f4f6a0ffa505ba3563f71b05d3a3e gas/testsuite/gas/d10v/address-010.s
+895f588aa38be710d59bb0c5b04b7de6 gas/testsuite/gas/d10v/address-011.l
+685a24a9aa24fcd5d590933af5b47543 gas/testsuite/gas/d10v/address-011.s
+89b79f4f9098b6e93a3936283d1396d8 gas/testsuite/gas/d10v/address-012.l
+34a95c3e0aea73e7e3b6547fe793efd1 gas/testsuite/gas/d10v/address-012.s
+c19dfccdd9bcb8e8a436d6747079182a gas/testsuite/gas/d10v/address-013.l
+0b14438b4898eedbf765234cd480d7ff gas/testsuite/gas/d10v/address-013.s
+1efed80c33066e94fdd64cbbd497fe7e gas/testsuite/gas/d10v/address-014.l
+aa095fa01b6c38d02cfcc448316e9a6c gas/testsuite/gas/d10v/address-014.s
+7560d23743649b2f31b7508718eb54f7 gas/testsuite/gas/d10v/address-015.l
+2506f8c079a983cb132717ef73c80fa3 gas/testsuite/gas/d10v/address-015.s
+6ccc5e077b308eb4ead744a09b0f6341 gas/testsuite/gas/d10v/address-016.l
+4f27f1bc67b609681cbfe5f684b11b6a gas/testsuite/gas/d10v/address-016.s
+0a72d08339e166994805d7ab5f2c91c5 gas/testsuite/gas/d10v/address-017.l
+9262a32c20f38112a0c08e9533b5547b gas/testsuite/gas/d10v/address-017.s
+895f588aa38be710d59bb0c5b04b7de6 gas/testsuite/gas/d10v/address-018.l
+5cb688834e2f1a9cf56595e1a216e521 gas/testsuite/gas/d10v/address-018.s
+89b79f4f9098b6e93a3936283d1396d8 gas/testsuite/gas/d10v/address-019.l
+4be0863b6f79110432da78f2e973d519 gas/testsuite/gas/d10v/address-019.s
+c19dfccdd9bcb8e8a436d6747079182a gas/testsuite/gas/d10v/address-020.l
+d371cb2c059fb37c28c157a3f8106622 gas/testsuite/gas/d10v/address-020.s
+1efed80c33066e94fdd64cbbd497fe7e gas/testsuite/gas/d10v/address-021.l
+4ad7b1e71bf3ac5e7295503ead61a165 gas/testsuite/gas/d10v/address-021.s
+7560d23743649b2f31b7508718eb54f7 gas/testsuite/gas/d10v/address-022.l
+0f63425dd36dc9d0f9003eb66776a0ad gas/testsuite/gas/d10v/address-022.s
+6ccc5e077b308eb4ead744a09b0f6341 gas/testsuite/gas/d10v/address-023.l
+1f0b933d6ed26d0670764491d57675a1 gas/testsuite/gas/d10v/address-023.s
+89b79f4f9098b6e93a3936283d1396d8 gas/testsuite/gas/d10v/address-024.l
+fedaf4c469f76a0c29d38efb8ca976e9 gas/testsuite/gas/d10v/address-024.s
+7560d23743649b2f31b7508718eb54f7 gas/testsuite/gas/d10v/address-025.l
+067d35e555edcf186ffd68315f215f52 gas/testsuite/gas/d10v/address-025.s
+6ccc5e077b308eb4ead744a09b0f6341 gas/testsuite/gas/d10v/address-026.l
+76917214750d255c71ebdf890b8c56e6 gas/testsuite/gas/d10v/address-026.s
+89b79f4f9098b6e93a3936283d1396d8 gas/testsuite/gas/d10v/address-027.l
+43657705163613ef157c7912c1df27e6 gas/testsuite/gas/d10v/address-027.s
+f10bfd419dd15e2a9cb5a3e58825089d gas/testsuite/gas/d10v/address-028.l
+a4c4fb94bbb8320b11ec9dd48ae27d2d gas/testsuite/gas/d10v/address-028.s
+f10bfd419dd15e2a9cb5a3e58825089d gas/testsuite/gas/d10v/address-029.l
+25a6da12fb57ce20919d3cad3599abe5 gas/testsuite/gas/d10v/address-029.s
+7560d23743649b2f31b7508718eb54f7 gas/testsuite/gas/d10v/address-030.l
+d0c93960ea840e21f8780c52bb442e8f gas/testsuite/gas/d10v/address-030.s
+6ccc5e077b308eb4ead744a09b0f6341 gas/testsuite/gas/d10v/address-031.l
+97ea79a8423cee83fe06562c647bc94e gas/testsuite/gas/d10v/address-031.s
+0a72d08339e166994805d7ab5f2c91c5 gas/testsuite/gas/d10v/address-032.l
+d4e7dc3e5820dd6e0996f4893a911409 gas/testsuite/gas/d10v/address-032.s
+895f588aa38be710d59bb0c5b04b7de6 gas/testsuite/gas/d10v/address-033.l
+2d3547a90bf1a21b53a970794821d359 gas/testsuite/gas/d10v/address-033.s
+89b79f4f9098b6e93a3936283d1396d8 gas/testsuite/gas/d10v/address-034.l
+897b7c7073bd4d6031db1db40c95b179 gas/testsuite/gas/d10v/address-034.s
+c19dfccdd9bcb8e8a436d6747079182a gas/testsuite/gas/d10v/address-035.l
+f081717902bdff5adfb1b5325c01fb12 gas/testsuite/gas/d10v/address-035.s
+1efed80c33066e94fdd64cbbd497fe7e gas/testsuite/gas/d10v/address-036.l
+575f3a5fd93fe848f910e9addd328afb gas/testsuite/gas/d10v/address-036.s
+7560d23743649b2f31b7508718eb54f7 gas/testsuite/gas/d10v/address-037.l
+09328faa8faa3c898aca59816c077fd7 gas/testsuite/gas/d10v/address-037.s
+6ccc5e077b308eb4ead744a09b0f6341 gas/testsuite/gas/d10v/address-038.l
+3a9ab467bc5e75d7c5a4ea9492d1810c gas/testsuite/gas/d10v/address-038.s
+0a72d08339e166994805d7ab5f2c91c5 gas/testsuite/gas/d10v/address-039.l
+a278ead57d83625ded4d92bdad8f2be0 gas/testsuite/gas/d10v/address-039.s
+895f588aa38be710d59bb0c5b04b7de6 gas/testsuite/gas/d10v/address-040.l
+4b42438d94a456bd985090fa4033ad72 gas/testsuite/gas/d10v/address-040.s
+89b79f4f9098b6e93a3936283d1396d8 gas/testsuite/gas/d10v/address-041.l
+e2bf48e0e29a2b3911c5320c140896ec gas/testsuite/gas/d10v/address-041.s
+96f8269730cb7b20bff497a07ccd22ae gas/testsuite/gas/d10v/control-001.d
+31e42fb6ff602fa691470418a63bf019 gas/testsuite/gas/d10v/control-001.s
+02b28f15b91168a0ee60fcf058251ebb gas/testsuite/gas/d10v/d10v.exp
+393b4ca54f7246945a011a41161f4779 gas/testsuite/gas/d10v/error-001.d
+c6fc3df219367e9406b8e9f49afb7691 gas/testsuite/gas/d10v/error-001.s
+b28ba5ae138c1b9870b87d5d552ce19f gas/testsuite/gas/d10v/error-002.d
+7757def524bdcdf4fb13ed30ea1313c5 gas/testsuite/gas/d10v/error-002.s
+34be3bde4d7abf2a2af2360598f0439e gas/testsuite/gas/d10v/immediate-001.d
+2f7c161f6a15281d77b748199d7dcdcc gas/testsuite/gas/d10v/immediate-001.s
+5cfb3cbbf2cda20ef538166610ad042b gas/testsuite/gas/d10v/immediate-002.d
+d1486aa919e0b677eb9471e433c71e05 gas/testsuite/gas/d10v/immediate-002.s
+68c670aec179411c8fc6692ea96c4340 gas/testsuite/gas/d10v/immediate-003.d
+1694322013c7bff57ff63937eec8cf91 gas/testsuite/gas/d10v/immediate-003.s
+eebde16759c4128196a540f786916288 gas/testsuite/gas/d10v/immediate-004.d
+d554505672cfee59b2b50ce774d85125 gas/testsuite/gas/d10v/immediate-004.s
+9f62d1c8d26587caa11e52225387d546 gas/testsuite/gas/d10v/immediate-005.d
+4c9cfe5e63f84990138cab6bbe7f3800 gas/testsuite/gas/d10v/immediate-005.s
+557b913559a46f6a4ed22bdc33fa0d98 gas/testsuite/gas/d10v/immediate-006.d
+beb3253b69a29d40b68529b496a16925 gas/testsuite/gas/d10v/immediate-006.s
+cae8c0e3d71ef8fecaeac082fc3c9db9 gas/testsuite/gas/d10v/immediate-007.d
+666d4c75265b6bb9d4a07d772c61fc36 gas/testsuite/gas/d10v/immediate-007.s
+0004da131d3e5488db3b4b89bd259250 gas/testsuite/gas/d10v/inst.d
+bbe173f89d3ad611d31b7cf43d88291c gas/testsuite/gas/d10v/inst.s
+703900315d829359b771c6c7d2ce84dd gas/testsuite/gas/d10v/instruction_packing-001.d
+a8a4aed02672bf45f5f2ff57b8e2522e gas/testsuite/gas/d10v/instruction_packing-001.s
+bb8ed73cacebacaa465da8e059b49cd7 gas/testsuite/gas/d10v/instruction_packing-002.d
+eaccafae10a88e66fe63b2519185ecd4 gas/testsuite/gas/d10v/instruction_packing-002.s
+13d85864087099bb01ecd6e55e20d79d gas/testsuite/gas/d10v/instruction_packing-003.d
+ad736e41ad341cfe730a1fb3e933d09c gas/testsuite/gas/d10v/instruction_packing-003.s
+f4b3361179e57452f47cf5e0572d27e3 gas/testsuite/gas/d10v/instruction_packing-004.d
+58ecf26d8fe2178ba5532734e55a43b0 gas/testsuite/gas/d10v/instruction_packing-004.s
+c2c630337066f77375fb3628d4c755fc gas/testsuite/gas/d10v/instruction_packing-005.d
+566863f704902f29a0e831a8abeb4a2c gas/testsuite/gas/d10v/instruction_packing-005.s
+e6c0acb54a5f28a93b2b45178f4d1584 gas/testsuite/gas/d10v/instruction_packing-006.d
+cc4a736bc152e266c2b882f9204f2022 gas/testsuite/gas/d10v/instruction_packing-006.s
+aa6486f80a5da199434db5ca3215a716 gas/testsuite/gas/d10v/instruction_packing-007.d
+9f04908e67fb3d025225b796d2900c5a gas/testsuite/gas/d10v/instruction_packing-007.s
+2bbe1f59eea6fcea81003dddb81af982 gas/testsuite/gas/d10v/instruction_packing-008.d
+db8d769826d613ef6002637c9972c97c gas/testsuite/gas/d10v/instruction_packing-009.d
+d3dcf857bf3c33952c1071f8683fa604 gas/testsuite/gas/d10v/instruction_packing-010.d
+d54202c4d33b6c5958d75017b61e3758 gas/testsuite/gas/d10v/instruction_packing.d
+ed5a04fc691e6a2f4d4c811292306714 gas/testsuite/gas/d10v/instruction_packing.s
+f5ab3a0ce647dd181e77661c66260821 gas/testsuite/gas/d10v/label-001.d
+19e726902a0cd1ec9e5a2d2f9cb0d474 gas/testsuite/gas/d10v/label-001.s
+f7bcb24ed525edb26ec6424d1a242848 gas/testsuite/gas/d10v/warning-001.d
+8c205e27f60d4cdbb9293c8a69d47ac6 gas/testsuite/gas/d10v/warning-001.s
+de9084f1a7e1dc8180d6b8204d46ce35 gas/testsuite/gas/d10v/warning-002.d
+b4bad3f3fb9e81f220e4522b356eb039 gas/testsuite/gas/d10v/warning-002.s
+5043c3c8800c94c125d6b9a1a6351beb gas/testsuite/gas/d10v/warning-003.d
+ddb47cffbc7242287346181dd0d6da04 gas/testsuite/gas/d10v/warning-003.s
+38c9412fbed21d1b63d464d26266d5e4 gas/testsuite/gas/d10v/warning-004.d
+90659d9da2c0b85164b96fec93415117 gas/testsuite/gas/d10v/warning-004.s
+ad9c8aad9e2e537a648abb7912129b10 gas/testsuite/gas/d10v/warning-005.d
+aa87347e149cf1b8347ea1e86a2c5b3f gas/testsuite/gas/d10v/warning-005.s
+97b968299e90d656d819df84b9f98fd4 gas/testsuite/gas/d10v/warning-006.d
+6bd930772199c5e812b362dbaf4e19de gas/testsuite/gas/d10v/warning-006.s
+66834da80e3ee27cefb5a0a9a7312c66 gas/testsuite/gas/d10v/warning-007.d
+aa87347e149cf1b8347ea1e86a2c5b3f gas/testsuite/gas/d10v/warning-007.s
+c52224928ec9e958cc34fc49bd846467 gas/testsuite/gas/d10v/warning-008.d
+ffb56773428f111baa5d8d04866a3c45 gas/testsuite/gas/d10v/warning-008.s
+99eafcb9a6d69962fc3e9faebe0d6036 gas/testsuite/gas/d10v/warning-009.d
+ee0c3a9bec78dd98e564a69b3ee84854 gas/testsuite/gas/d10v/warning-009.s
+ff2a03040d31cfce536106965db07150 gas/testsuite/gas/d10v/warning-010.d
+f587eb6b2169718f85e6fac4a2bb5741 gas/testsuite/gas/d10v/warning-010.s
+54e69f5600e8a2da615cc33a573d2777 gas/testsuite/gas/d10v/warning-011.d
+09899975395b8d0ca1dcea3ead5a9a09 gas/testsuite/gas/d10v/warning-011.s
+5e1b0ccfbcae985f0372c972168c0c63 gas/testsuite/gas/d10v/warning-012.d
+2b735788395407f53e9cfb276465c6cf gas/testsuite/gas/d10v/warning-012.s
+3ea377bcaed87eeaba53c80f3f187312 gas/testsuite/gas/d10v/warning-013.d
+e7846e49161841e07c02500c7cb45f9e gas/testsuite/gas/d10v/warning-013.s
+982847efd277460e4597950f90c52cd8 gas/testsuite/gas/d10v/warning-014.d
+a43dda7cb4b0b5a67a8676b056d0fbd3 gas/testsuite/gas/d10v/warning-014.s
+bb49a7527c2b46bd80f4b02c80183c7b gas/testsuite/gas/d10v/warning-015.d
+8a64c03c9a5f8060e32a54de143aa1c4 gas/testsuite/gas/d10v/warning-016.d
+9ad455587f29fa070e7fb79919fa9b36 gas/testsuite/gas/d10v/warning-016.s
+70e6bc585c537af6bb111f62376591f0 gas/testsuite/gas/d10v/warning-017.d
+cec23f7775944e94bef9d3c411959c8c gas/testsuite/gas/d10v/warning-017.s
+75ce932b8d1229797b67ac50709200d4 gas/testsuite/gas/d10v/warning-018.d
+d249a48a68cf1de5657dd22a3abd529f gas/testsuite/gas/d10v/warning-018.s
+bffc20273f7fc4a8784a60c939f7ac55 gas/testsuite/gas/d10v/warning-019.d
+b889bbac23357064c465d79fbef70546 gas/testsuite/gas/d10v/warning-019.s
+a15d68d40c502f8fb891fb71e6a331b4 gas/testsuite/gas/d30v/align.d
+8ab5843e51782cc8150825c0aed13da9 gas/testsuite/gas/d30v/align.s
+8a9471a2ce14a0c94c7af09fd8cf6f7c gas/testsuite/gas/d30v/array.d
+afb9ee8fc39b6c6a3b5a607f0958dd2b gas/testsuite/gas/d30v/array.s
+d7768075c27bdbdff4a1347c6b1746d0 gas/testsuite/gas/d30v/bittest.d
+36ccce5414200c372215e06d70d6aad0 gas/testsuite/gas/d30v/bittest.l
+4b9689db23a80dfeeb4e6217aaf0a8ad gas/testsuite/gas/d30v/bittest.s
+884aac41a47a3f37d3e9201099de04d7 gas/testsuite/gas/d30v/d30.exp
+d57a8494033a5610ebb1ec72067db1a2 gas/testsuite/gas/d30v/guard-debug.d
+739c4467a3344e1787f7b4bdbf919705 gas/testsuite/gas/d30v/guard-debug.s
+24a691232054571885f6c30112e51658 gas/testsuite/gas/d30v/guard.d
+59254ab788d218d38c2c0d6e71251e76 gas/testsuite/gas/d30v/guard.s
+748040da85ada059191e19f00e2488f6 gas/testsuite/gas/d30v/inst.d
+39cdbdd6bd65bb5930b303daa6d76dcd gas/testsuite/gas/d30v/inst.s
+02e401be332104808af7c8300005fe7d gas/testsuite/gas/d30v/label-debug.d
+7f982990c748276d508b09332cdae4f6 gas/testsuite/gas/d30v/label-debug.s
+c483a48ce51ab77c8dee11cfab64b50a gas/testsuite/gas/d30v/label.d
+7f982990c748276d508b09332cdae4f6 gas/testsuite/gas/d30v/label.s
+26406f9a3cbcac3df375ce96f2bf6d60 gas/testsuite/gas/d30v/mul.d
+d16bd2d8de2333b4d7ee533c7fbdb1c4 gas/testsuite/gas/d30v/mul.s
+3f5d45bfe5794cd78197dab5eba2c4e6 gas/testsuite/gas/d30v/opt.d
+cd67e61c7ea236940d9b65c880a564b4 gas/testsuite/gas/d30v/opt.s
+7ede5044d404df6c8e7e4397218784b3 gas/testsuite/gas/d30v/reloc.d
+2ed511260d2382d512257ccd75e39887 gas/testsuite/gas/d30v/reloc.s
+b37a654d4656a56a2e285628e3dcc39a gas/testsuite/gas/d30v/serial.l
+26005134b177b676ea077b771aa246cc gas/testsuite/gas/d30v/serial.s
+d62f3b2cffd953e7c0e21545f7ca1218 gas/testsuite/gas/d30v/serial2.l
+4c96fc10e8ae0de631d7681473ac66eb gas/testsuite/gas/d30v/serial2.s
+2f580294b862674be54215921b4f726a gas/testsuite/gas/d30v/serial2O.l
+4c96fc10e8ae0de631d7681473ac66eb gas/testsuite/gas/d30v/serial2O.s
+7fc2a4f0d0ed0a1e698ef2e351bacd11 gas/testsuite/gas/d30v/warn_oddreg.l
+04cb44d9a5a4e2791243c475947c1dfa gas/testsuite/gas/d30v/warn_oddreg.s
+e05430230b3286dc1934d1143d7dc0c1 gas/testsuite/gas/dlx/alltests.exp
+127efafe2527347fb64508e20cf7edf6 gas/testsuite/gas/dlx/branch.d
+b975e32977a78732d7f30c7df8a2c435 gas/testsuite/gas/dlx/branch.s
+4bbefc6e223f23c5d05239b6ca0e8332 gas/testsuite/gas/dlx/itype.d
+8465c3b2b019e9a4abb4d73ce4504525 gas/testsuite/gas/dlx/itype.s
+a22e2d08b6e6db063f2da8dbf367a0d8 gas/testsuite/gas/dlx/lhi.d
+39d88e8c2a6293235b494d613a3915b5 gas/testsuite/gas/dlx/lhi.s
+618d2e0a1cd63a9c64d4944ce69905a7 gas/testsuite/gas/dlx/load.d
+d88a4c8eb6d282949b5295d826d76311 gas/testsuite/gas/dlx/load.s
+17da9fc13d8f2ccbe72fc26797011a5c gas/testsuite/gas/dlx/lohi.d
+7270daf39763944ec620ee05dcf2f778 gas/testsuite/gas/dlx/lohi.s
+7116badc2e0160e1a8333f8995323b08 gas/testsuite/gas/dlx/rtype.d
+628f043cea1680e500b5ac0c309c91e9 gas/testsuite/gas/dlx/rtype.s
+6d63b30eb9f2666bb4ac2456afb427c6 gas/testsuite/gas/dlx/store.d
+336400205f3c98f8a8d2200e3e6e0fc3 gas/testsuite/gas/dlx/store.s
+e8b98e1895ab5aaebf5d318ba94cccc0 gas/testsuite/gas/elf/bad-group.d
+e82fefdb2700a66caf0331e54e36589d gas/testsuite/gas/elf/bad-group.err
+7b24bff8e309f5262d367217379123b8 gas/testsuite/gas/elf/bad-group.s
+94df0a59f9d8a3fc7dc0b5b45d36060d gas/testsuite/gas/elf/bad-section-flag.d
+2623eda24a8bcefd26f472707bd1c853 gas/testsuite/gas/elf/bad-section-flag.err
+6430c98b054029e200685848eed745e2 gas/testsuite/gas/elf/bad-section-flag.s
+5cb00dec7f4dbf738104c6107731c51f gas/testsuite/gas/elf/bad-size.d
+c489049b65777ca07cb885ba8faa82e3 gas/testsuite/gas/elf/bad-size.err
+0b4954500101a4643e67e2187e9d11e4 gas/testsuite/gas/elf/bad-size.s
+69fd0b66a67c0e0762f791bb253fb1c4 gas/testsuite/gas/elf/dwarf2-1.d
+886e868c75eeb4c7c472e9bc2a51671f gas/testsuite/gas/elf/dwarf2-1.s
+15479241a11880212952fa8603ac6b96 gas/testsuite/gas/elf/dwarf2-2.d
+bef888929f0f1c60b25d843d33691a5b gas/testsuite/gas/elf/dwarf2-2.s
+c1be095bfef4c59f73de7624ba87ab00 gas/testsuite/gas/elf/dwarf2-3.d
+4b37154778bdd05b2ded6aa8db2e8e7e gas/testsuite/gas/elf/dwarf2-3.s
+a874534eea08f6e8f44db5bfb2c83533 gas/testsuite/gas/elf/dwarf2-4.d
+b257e9cf74e2c36733ddd286459faf46 gas/testsuite/gas/elf/dwarf2-4.s
+3aa51e33fc3c4fb00d9f02ab8b6c1412 gas/testsuite/gas/elf/ehopt0.d
+67a6ccaa7bc82ccb6a932a7231db4059 gas/testsuite/gas/elf/ehopt0.s
+87c6212516d01685510840b397726b02 gas/testsuite/gas/elf/elf.exp
+ca117d1ef9797c2abe5802d4fa8953c4 gas/testsuite/gas/elf/equ-reloc.d
+c917159b2489776acdf15f164d0905e4 gas/testsuite/gas/elf/equ-reloc.s
+e0e8e71c5b48f21bddb98d7c45e5a583 gas/testsuite/gas/elf/file.d
+70b6289bdadaae1b408e2805dec8f770 gas/testsuite/gas/elf/file.s
+075bcea3ebc7d9e53c3f6ed79210d4bb gas/testsuite/gas/elf/group0.s
+f3fe13947fc2773e330e76030688e58c gas/testsuite/gas/elf/group0a.d
+199deab556037b69231c9a2a5fcd7da0 gas/testsuite/gas/elf/group0b.d
+4e43d7c0ca48309f31d3275428a0d06f gas/testsuite/gas/elf/group0c.d
+21207251ef2eda07347adf8e8edb60ba gas/testsuite/gas/elf/group1.s
+81308e53a5378b04d84c69d13e1fe5c1 gas/testsuite/gas/elf/group1a.d
+1660e7fd50797e925b14fe48f38e6a8f gas/testsuite/gas/elf/group1b.d
+9fcd9e2d59191f503d33a601a36c6fc6 gas/testsuite/gas/elf/groupauto.s
+87af60f43e6dd4e7057cffce97b867f3 gas/testsuite/gas/elf/groupautoa.d
+b15f107f41c0ebc724111ee307897879 gas/testsuite/gas/elf/groupautob.d
+8c3d9ac3c4caf973dd6a05a01e0b9876 gas/testsuite/gas/elf/ifunc-1.d
+18ba3548b49775bd97fafca717aea4f2 gas/testsuite/gas/elf/ifunc-1.s
+09604fea2cc552ec3892fddb19ee9bfe gas/testsuite/gas/elf/pseudo.d
+b7dca28f0b423b0d369fe38bf1111166 gas/testsuite/gas/elf/pseudo.l
+4aa99fb516e06d2680468c67564fd554 gas/testsuite/gas/elf/pseudo.s
+3e5cf7b8de55f655bac59c3a542a01dd gas/testsuite/gas/elf/redef.d
+080d4cd3dac37ed1af74006cc7d9c39f gas/testsuite/gas/elf/redef.s
+4e0cecedecf31818ef0d9697bdf9caf1 gas/testsuite/gas/elf/section0.d
+94799bbca15898e61e62e52d81f0bcca gas/testsuite/gas/elf/section0.s
+d626bedcb06fe46beda865191bb6f8f5 gas/testsuite/gas/elf/section1.d
+b892afd90c0c8f8d9b5486dcd484d815 gas/testsuite/gas/elf/section1.s
+4b340c0af90ecc105a81851e1966f0ba gas/testsuite/gas/elf/section2.e
+d9725bd7c385eecd7381fbf1345ef172 gas/testsuite/gas/elf/section2.e-armeabi
+02b0b5ec70de7787aea2109fefce87ec gas/testsuite/gas/elf/section2.e-armelf
+296c7316bca4530074ecc07e84697adf gas/testsuite/gas/elf/section2.e-m32r
+1c15de91b7de7e91d980379ab5b1753d gas/testsuite/gas/elf/section2.e-mips
+59905bd5c30a169359abf06bbc009e5c gas/testsuite/gas/elf/section2.e-miwmmxt
+e2542a5376b2bcbcfb252c7f6e1ecc70 gas/testsuite/gas/elf/section2.e-rx
+ec29409d2983f481160b1ea103fa898b gas/testsuite/gas/elf/section2.e-score
+3412d0f90f486b30ef4ef1f5f42f22ee gas/testsuite/gas/elf/section2.e-tic6x
+d9725bd7c385eecd7381fbf1345ef172 gas/testsuite/gas/elf/section2.e-xtensa
+f3e508e3e2bbb1749ab1e9e1c23289af gas/testsuite/gas/elf/section2.l
+5a42c78c814dadc7e4a11cba2a795f97 gas/testsuite/gas/elf/section2.s
+4db32453c693fea535afeeecfdc98d26 gas/testsuite/gas/elf/section3.d
+ad3086bd2d519f6116efe933469ccf23 gas/testsuite/gas/elf/section3.s
+50efb8918f1cbba284b2e00647f6a312 gas/testsuite/gas/elf/section4.d
+c8f62533d742858880692eebc43aeba6 gas/testsuite/gas/elf/section4.s
+f96c6ef9cb2e1718e696c7c2a7894dc7 gas/testsuite/gas/elf/section5.e
+b2537849a5f8a60a51d11c25ef8b35bb gas/testsuite/gas/elf/section5.l
+171e7d89c21777c752f738470cc015d4 gas/testsuite/gas/elf/section5.s
+6bd732a352cbb7fba1e53b1e713b19ca gas/testsuite/gas/elf/section6.d
+c0f115cd31b453f8dc5eea69f31b3559 gas/testsuite/gas/elf/section6.s
+19897bdf9f0a992019b8e84f857df064 gas/testsuite/gas/elf/section7.d
+77a6f78a8e155ff7fd6a7449558288fb gas/testsuite/gas/elf/section7.s
+e110e825fdacdc63909a469f293a1d24 gas/testsuite/gas/elf/section8.d
+8a9c43fb38d8837da4e10eac0a5e5901 gas/testsuite/gas/elf/section8.s
+e76f1f507faa639c9cb09e133f62bd80 gas/testsuite/gas/elf/section9.d
+a9091ca6f2ad94c418b4c98e99aaf66b gas/testsuite/gas/elf/section9.s
+f515cccf76165e218e62e79d2281c712 gas/testsuite/gas/elf/struct.d
+6f56598922a76124d2a548fab88ba85b gas/testsuite/gas/elf/struct.s
+8a03014dc08ca3d66c23a052bda32bcb gas/testsuite/gas/elf/symtab.d
+f1c6fc0d518739e2c3b35e592d56ec44 gas/testsuite/gas/elf/symtab.s
+416fc65ca0766b5c8ac9bc0ab7a587f6 gas/testsuite/gas/elf/symver.d
+335a17f208c2cc7ba886bde49f02c8ca gas/testsuite/gas/elf/symver.s
+6b6dbd6e6db2cd6dfa6e62fe49aa2705 gas/testsuite/gas/elf/type-noifunc.e
+7f202b033c0a9f7250c05cb73d767ef0 gas/testsuite/gas/elf/type-noifunc.s
+eb2637faa5af7f65ca063335b2dfe876 gas/testsuite/gas/elf/type.e
+9906d2abeb8c4f046b15b957922e02b2 gas/testsuite/gas/elf/type.s
+a6533781ebde6c5cb83b2aaa3e21e1df gas/testsuite/gas/elf/warn-2.s
+8f760ce7cf5b0bcea1fd0c123134bc4b gas/testsuite/gas/fr30/allinsn.d
+f43f517834a1bcead42dab25e75f41d0 gas/testsuite/gas/fr30/allinsn.exp
+fdf34a19cb21c9273e472a9bb4c9e97f gas/testsuite/gas/fr30/allinsn.s
+4a1055775cc266d1a0458ce050e653d3 gas/testsuite/gas/fr30/fr30.exp
+b0855b80218f5a929ddc68a70763ee63 gas/testsuite/gas/frv/allinsn.d
+860200e9c4ec6ec494622c3114aecd33 gas/testsuite/gas/frv/allinsn.exp
+92314edf2be71ae28723da713527c08c gas/testsuite/gas/frv/allinsn.s
+456f60acbaf3cd31306a78c6de9d687a gas/testsuite/gas/frv/fdpic.d
+4a756f9eddacb55c29e7749c7d329fc6 gas/testsuite/gas/frv/fdpic.s
+fbd858a348c03a817f91d1baaf188efa gas/testsuite/gas/frv/fr405-insn.d
+6c750867adf0ae2771b86d450aaa4c76 gas/testsuite/gas/frv/fr405-insn.l
+33aa70a706c8c1e4947c31bf4d6d7060 gas/testsuite/gas/frv/fr405-insn.s
+72828c0c9b13cc77056a142cd9cd12a7 gas/testsuite/gas/frv/fr450-insn.d
+12c5b76c970eef88a502b59f99ccecf3 gas/testsuite/gas/frv/fr450-insn.l
+37f3a8bb1162bec7a4743a32734fa811 gas/testsuite/gas/frv/fr450-insn.s
+6b0037374ce715d5ea2edf9a2dabcc83 gas/testsuite/gas/frv/fr450-media-issue.l
+736a21f8dda496bd1603011ea7630639 gas/testsuite/gas/frv/fr450-media-issue.s
+d8784a35ef3909a48bd09d1106ccffb3 gas/testsuite/gas/frv/fr450-spr.d
+971a9c1f4690b7a705b50272aeb714a9 gas/testsuite/gas/frv/fr450-spr.s
+c5885c2815100c4a3407a1451cf15e77 gas/testsuite/gas/frv/fr550-pack1.d
+fc5ef29bc53543bbebe47be7f19f68bf gas/testsuite/gas/frv/fr550-pack1.s
+837f9d1dd1571d4c81bf1766f9f99407 gas/testsuite/gas/frv/reloc1.d
+3a06ca65e67fbb7f94e33c8c7c6b46f2 gas/testsuite/gas/frv/reloc1.s
+2924c535df55b6a32889011860a29689 gas/testsuite/gas/h8300/addsub.s
+8b119bf28b7ba30807a8850b9edf96d3 gas/testsuite/gas/h8300/addsubh.s
+493e1fa4afffc9276ad5d14b0530d6fb gas/testsuite/gas/h8300/addsubrxcheck.s
+5b8c73d8de33afa02ff707f67065a1ef gas/testsuite/gas/h8300/addsubs.s
+d86b31775e7398f8bc4d446d9d0a017b gas/testsuite/gas/h8300/bitops1.s
+15fd0f35907c986489fa36bddebbb526 gas/testsuite/gas/h8300/bitops1h.s
+584a7cd8ad886afe1f0d2f9b5d817467 gas/testsuite/gas/h8300/bitops1s.s
+30ff0841f2e26ebb8e15aa636a64e4a5 gas/testsuite/gas/h8300/bitops2.s
+a741bf520d8175248d8c363dd660cad9 gas/testsuite/gas/h8300/bitops2h.s
+2e137c2f7cf12903edc7dd00bfe6d409 gas/testsuite/gas/h8300/bitops2s.s
+3d15e82abb0f85bdfacdbb653e083999 gas/testsuite/gas/h8300/bitops3.s
+82edeaa989ae932805db0608f8cc235a gas/testsuite/gas/h8300/bitops3h.s
+f5395cd9806896db584e3fbbdb548389 gas/testsuite/gas/h8300/bitops3s.s
+6249a5e4419949642c98aaa14f3d8b10 gas/testsuite/gas/h8300/bitops4.s
+5a394a0dbef8a7f14e4294b4dcfed8a5 gas/testsuite/gas/h8300/bitops4h.s
+791083648e92754b6c62f3201681ece1 gas/testsuite/gas/h8300/bitops4s.s
+23aecc0c8af29a4bf18f97a9607677d5 gas/testsuite/gas/h8300/branch-coff.s
+e4b78fbf88f2a797780cdbc116842e82 gas/testsuite/gas/h8300/branch-elf.s
+1f02561f75f4c45679ba42b0492cc58a gas/testsuite/gas/h8300/branchh-coff.s
+1f02561f75f4c45679ba42b0492cc58a gas/testsuite/gas/h8300/branchh-elf.s
+e251ed292c39572dbd1364f73d5fd32e gas/testsuite/gas/h8300/branchs-coff.s
+e251ed292c39572dbd1364f73d5fd32e gas/testsuite/gas/h8300/branchs-elf.s
+f0e5262ac4229fe320614df5a40f35e9 gas/testsuite/gas/h8300/cbranch.s
+30d75e5d8c2ef426fe42a377456bda0b gas/testsuite/gas/h8300/cbranchh.s
+5fdbcffb87056d813eafd925d9c763f0 gas/testsuite/gas/h8300/cbranchs.s
+ff5dba96cd99c306ec26780fc9069d8a gas/testsuite/gas/h8300/cmpsi2.s
+3be6267a929c5b26e8f4d69491d0877a gas/testsuite/gas/h8300/compare.s
+b2030d679f34f4563b5a00cbe2c1d072 gas/testsuite/gas/h8300/compareh.s
+94eec517c2a5cefb40f7bcc8a338a83a gas/testsuite/gas/h8300/compares.s
+437e6b6cef5f904dd70a700cd486f7ea gas/testsuite/gas/h8300/decimal.s
+9b32251ca7b543949470558b507ca6b3 gas/testsuite/gas/h8300/decimalh.s
+56fe63d196d46b2f8dc1c4bfca0c351d gas/testsuite/gas/h8300/decimals.s
+0c35be5ae497429ff49aa3076805fda3 gas/testsuite/gas/h8300/divmul.s
+d37984dfb136ed1c465a17ac6ff8cbb4 gas/testsuite/gas/h8300/divmulh.s
+d37984dfb136ed1c465a17ac6ff8cbb4 gas/testsuite/gas/h8300/divmuls.s
+f813008dac0b658d469085e795844664 gas/testsuite/gas/h8300/extendh.s
+4d7497fb959f22fd9f7b666d4c61eee6 gas/testsuite/gas/h8300/extends.s
+a9838bcffe296065862a083c5cdb2072 gas/testsuite/gas/h8300/ffxx1-coff.d
+1d4afbfb9c48d8842384c1908e31c40f gas/testsuite/gas/h8300/ffxx1-coff.s
+a4b0d327d0a7cd6348b06fc021bdacce gas/testsuite/gas/h8300/ffxx1-elf.d
+1d4afbfb9c48d8842384c1908e31c40f gas/testsuite/gas/h8300/ffxx1-elf.s
+3bce55aac5e784084083b48f3c9c6cdf gas/testsuite/gas/h8300/h8300-coff.exp
+a2ee2d306e1cf5965164cdb2483bdeed gas/testsuite/gas/h8300/h8300-elf.exp
+7adb98483f916e844b0109048bae6af7 gas/testsuite/gas/h8300/h8300.exp
+b2c1b7579c1a011689e0f84dee026841 gas/testsuite/gas/h8300/h8sx_disp2.d
+24bfa8fe6c7ea23669a8b7ddbb532df3 gas/testsuite/gas/h8300/h8sx_disp2.s
+55085df87374e05b6ca2887bfdad18f3 gas/testsuite/gas/h8300/h8sx_mov_imm.d
+8de24eb964deaeba9ab216fe5a83ae57 gas/testsuite/gas/h8300/h8sx_mov_imm.s
+180177e9b13daf5c97a907883a3b15df gas/testsuite/gas/h8300/h8sx_rtsl.d
+cbf4c219011b472494b1c9886803d88b gas/testsuite/gas/h8300/h8sx_rtsl.s
+d068dc8b49ea5e3a2841052399d04411 gas/testsuite/gas/h8300/incdec.s
+57ef072e39a9e088908da70b650fe6b7 gas/testsuite/gas/h8300/incdech.s
+68127cbf4156b232462ded46fb1eeb96 gas/testsuite/gas/h8300/incdecs.s
+ad670f4be1807bfa3361ea5dfdc0658d gas/testsuite/gas/h8300/logical.s
+4baf511d4fbb91925e6de834c9b49ea5 gas/testsuite/gas/h8300/logicalh.s
+c4d9cba61beedae407c0c1260e6e1d5d gas/testsuite/gas/h8300/logicals.s
+3c56ddac8216a69a609103570d7b3e49 gas/testsuite/gas/h8300/macs.s
+fb0d77314633b62d40a4a054311960e8 gas/testsuite/gas/h8300/misc.s
+0474a81ccc5b5408fc54aa171faafb52 gas/testsuite/gas/h8300/misch.s
+11bb474016acda38cc0db95df94487a3 gas/testsuite/gas/h8300/miscs.s
+9193c97fad2ede164c0c90d605b70f46 gas/testsuite/gas/h8300/mov32bug.s
+1883f564d24d685c8dc63486f070f4a6 gas/testsuite/gas/h8300/movb.s
+fcd326aa9537340e99b1100508c3aa5b gas/testsuite/gas/h8300/movbh.s
+7145f97672f9645e3de195a7fdf55a1b gas/testsuite/gas/h8300/movbs.s
+d8c9bc7371b9b1d46a2eefb32d90d58d gas/testsuite/gas/h8300/movlh.s
+0e5f5a058fd24a750a53bfa817b326a5 gas/testsuite/gas/h8300/movls.s
+3674b05426b7d9c23e487af7bb8465e2 gas/testsuite/gas/h8300/movw.s
+75e9728e4f42fb7fbedbba7ed96b11db gas/testsuite/gas/h8300/movwh.s
+b0068c567a3f9efc6b3b31cf95a5a318 gas/testsuite/gas/h8300/movws.s
+f6cedb831b52df4b3928a3a2f77a26c9 gas/testsuite/gas/h8300/multiples.s
+966c74d143895095ee54889081de41bf gas/testsuite/gas/h8300/pr3134.d
+a094b8eb92e6398adc065bf2c7ff0a97 gas/testsuite/gas/h8300/pr3134.s
+4393180d58ab1ed9d690f02ff183b6f6 gas/testsuite/gas/h8300/pushpop.s
+4d82e273acc364dfaddc59b3a13ee22e gas/testsuite/gas/h8300/pushpoph.s
+8ff1c8b35100699d39d44f67e19a5176 gas/testsuite/gas/h8300/pushpops.s
+6cc6731a0e070e666e164d9163629113 gas/testsuite/gas/h8300/rotsh.s
+7bc113956c8ca4ddcd42503e4bd530e3 gas/testsuite/gas/h8300/rotshh.s
+811af24ecd9436d020bfaf84413f5847 gas/testsuite/gas/h8300/rotshs.s
+c1d90a226053f4ce7c7adff387f20b54 gas/testsuite/gas/h8300/symaddgen.s
+ce55a85d73c6a1310de2454624c136e2 gas/testsuite/gas/h8300/t01_mov.exp
+a3cbe564e8d6faf41cbf463811c89e02 gas/testsuite/gas/h8300/t01_mov.s
+241f2fa417c5a917fe083c7190e3b861 gas/testsuite/gas/h8300/t02_mova.exp
+8384c0c60131ab5ec30e614ac5304d36 gas/testsuite/gas/h8300/t02_mova.s
+4372217c1898413da0cb442d8b83774c gas/testsuite/gas/h8300/t03_add.exp
+b177ab180d26977ff43d8e5c6e38c907 gas/testsuite/gas/h8300/t03_add.s
+6df403b20c72718d5385aaa8de8ec6ed gas/testsuite/gas/h8300/t04_sub.exp
+26cf1c6a7495448281a2626e9393d099 gas/testsuite/gas/h8300/t04_sub.s
+421f2108c19848bc75c4c2a6a876f86b gas/testsuite/gas/h8300/t05_cmp.exp
+80158a3d34d939766f837f9e15e8fe2d gas/testsuite/gas/h8300/t05_cmp.s
+13364c83674e3c7487ec96e9518cda19 gas/testsuite/gas/h8300/t06_ari2.exp
+d9fbbf75a69dc39e28564cd3dfd89e5a gas/testsuite/gas/h8300/t06_ari2.s
+54e194caef15999a18c006e28d3c8de8 gas/testsuite/gas/h8300/t07_ari3.exp
+fbeccdb5c7220c385d8e4aee4f4c980d gas/testsuite/gas/h8300/t07_ari3.s
+e0687fc4edbab3948726261d87477db2 gas/testsuite/gas/h8300/t08_or.exp
+49ac32af6d29776560d6c3df80fe3a09 gas/testsuite/gas/h8300/t08_or.s
+5f9e00cc1a79212cd05863950a01d8e7 gas/testsuite/gas/h8300/t09_xor.exp
+a9d861fcb5888bf017b04692c6f95372 gas/testsuite/gas/h8300/t09_xor.s
+9d73fa90207efffe2171ff5a43d4cb3e gas/testsuite/gas/h8300/t10_and.exp
+1d08d13909be8fd1f1aefa95f62fc34b gas/testsuite/gas/h8300/t10_and.s
+43ee497fe85e8b3221220a38a10edb69 gas/testsuite/gas/h8300/t11_logs.exp
+036ff295450c4dc80011e85d74bd071f gas/testsuite/gas/h8300/t11_logs.s
+d8ca7ba717f5fcdd2c32f72bef137c98 gas/testsuite/gas/h8300/t12_bit.exp
+85bdc6caec434dbce8666be195bab7de gas/testsuite/gas/h8300/t12_bit.s
+2c19c41ef2b05680493db17768a42b35 gas/testsuite/gas/h8300/t13_otr.exp
+1110071293056d18834477e3b461aebe gas/testsuite/gas/h8300/t13_otr.s
+7b1625a1a6ca53e3c9dd6d06b27ee995 gas/testsuite/gas/hppa/basic/add.s
+e851cf6a3db3347c6f8bd107dbdacedc gas/testsuite/gas/hppa/basic/add2.s
+57ad58f96f1a781f50c99315319025b2 gas/testsuite/gas/hppa/basic/addi.s
+11a0221d409845a72fa783727e783440 gas/testsuite/gas/hppa/basic/basic.exp
+23cbc90c2d163ffda4b92ac5670374b7 gas/testsuite/gas/hppa/basic/branch.s
+018bafaddc464bf5344056a4a6ba62aa gas/testsuite/gas/hppa/basic/branch2.s
+2744044afb6af0ffe892e71482c7e83b gas/testsuite/gas/hppa/basic/comclr.s
+30e98c333c6c3c41f4230609d617d4bd gas/testsuite/gas/hppa/basic/copr.s
+18c064b287abc57be5f66793ce0a4ed8 gas/testsuite/gas/hppa/basic/coprmem.s
+5b953b17809a50b68718cad20f6b3cd5 gas/testsuite/gas/hppa/basic/dcor.s
+54b1bb4ce869350a6860eea7ef011576 gas/testsuite/gas/hppa/basic/dcor2.s
+7f9d07824ecdd65dce64fdbb8ab88668 gas/testsuite/gas/hppa/basic/deposit.s
+9e7936d6dca987e90acb029a0794e50c gas/testsuite/gas/hppa/basic/deposit2.s
+4179bc45da0c3f5c674c51bce4f3ef42 gas/testsuite/gas/hppa/basic/deposit3.s
+5532f754b3ee74d823c916f73352f531 gas/testsuite/gas/hppa/basic/ds.s
+ebef581b3abd2e0a860dc45c474dcc77 gas/testsuite/gas/hppa/basic/extract.s
+f0c6b56da1f75e189baf27d8c1f535fe gas/testsuite/gas/hppa/basic/extract2.s
+51d8fb411be8712bd0c7ce811ad6dc38 gas/testsuite/gas/hppa/basic/extract3.s
+a982fc398cedf2e44201d59012ee7066 gas/testsuite/gas/hppa/basic/fmem.s
+a0babc25ea6d4372cb5eccc0ae3f4825 gas/testsuite/gas/hppa/basic/fmemLRbug.s
+12d638623e2fda0109342643a918858e gas/testsuite/gas/hppa/basic/fp_comp.s
+9847e0fce8c6da72b7f980b441367739 gas/testsuite/gas/hppa/basic/fp_comp2.s
+698e8f34a3b345696ad42ea0fe3a42dc gas/testsuite/gas/hppa/basic/fp_conv.s
+50c67d6e1a3d6914794a948be62b14f6 gas/testsuite/gas/hppa/basic/fp_fcmp.s
+67b6a72f5e598098f02c322b08238380 gas/testsuite/gas/hppa/basic/fp_misc.s
+bf748287a3393071018df9ef711ff79e gas/testsuite/gas/hppa/basic/imem.s
+382400fc1867cc374e7a9a97620ba203 gas/testsuite/gas/hppa/basic/immed.s
+2b4d0bc9df8ca71e1b7c3af01a60d9e0 gas/testsuite/gas/hppa/basic/logical.s
+40808c7e14c9dd94905f168f5bd28a9d gas/testsuite/gas/hppa/basic/media.s
+3f9890f5f05691d773c5252cca7c3bdb gas/testsuite/gas/hppa/basic/perf.s
+5cc775342d33290ccc79a2c3392ba59c gas/testsuite/gas/hppa/basic/purge.s
+585389c4c1113b467f309f8b53564ddf gas/testsuite/gas/hppa/basic/purge2.s
+bc0a3320065bbb6f8c7226807fa35e7d gas/testsuite/gas/hppa/basic/sh1add.s
+7682c249ad6ac5dce5a7a0d5c70b9759 gas/testsuite/gas/hppa/basic/sh2add.s
+3976fa98bed24429b469cc702b660e93 gas/testsuite/gas/hppa/basic/sh3add.s
+69cfdc26fc07d25504dfb30978448340 gas/testsuite/gas/hppa/basic/shift.s
+f588468f60d1393a578d3147a655f303 gas/testsuite/gas/hppa/basic/shift2.s
+d35888a201d29276d5f468576ce69678 gas/testsuite/gas/hppa/basic/shift3.s
+1288a8d17a77098169f032cf5dd63455 gas/testsuite/gas/hppa/basic/shladd.s
+8ed6a738a1fd2383dbe99d68c8cf59e4 gas/testsuite/gas/hppa/basic/shladd2.s
+b8f517402a2c82b158d9e1df1a11779a gas/testsuite/gas/hppa/basic/special.s
+1af275b55a5680b0a941bfdf1e5496e9 gas/testsuite/gas/hppa/basic/spop.s
+4d54a793881d666296b48b0b2ac763e2 gas/testsuite/gas/hppa/basic/sub.s
+f16923e9ababc303530ffa9835a0edf4 gas/testsuite/gas/hppa/basic/sub2.s
+c2fd7d2c7fc3f77c944b5af56ebbcb7d gas/testsuite/gas/hppa/basic/subi.s
+c8284a379fc4d3b89da889cbd99a4565 gas/testsuite/gas/hppa/basic/system.s
+9dec6c8e5b94b75cb0e0fb27c16ce4ee gas/testsuite/gas/hppa/basic/system2.s
+179a4ad64c7d1a3faa0d9945c41b5b35 gas/testsuite/gas/hppa/basic/unit.s
+1ed85cf259a78d3d86ea435e74dfcbe6 gas/testsuite/gas/hppa/basic/unit2.s
+03008cde62428d4ff2464bef8cb8bcd2 gas/testsuite/gas/hppa/basic/weird.s
+d93edd3b974fa05de350f6104c63af74 gas/testsuite/gas/hppa/parse/align1.s
+6a7df2ab8d1491f8f64f60fb0a359558 gas/testsuite/gas/hppa/parse/align2.s
+85d6e969f063c0bee9565d096c43657e gas/testsuite/gas/hppa/parse/appbug.s
+72ae2fe9c7ff74b0267402ab93c59282 gas/testsuite/gas/hppa/parse/badfmpyadd.s
+324e688a23442952378a5807132d00be gas/testsuite/gas/hppa/parse/block1.s
+44d0164ab1f3f2f8201ca4cac02f0a91 gas/testsuite/gas/hppa/parse/block2.s
+7012f9c767f18688e051c168e218464b gas/testsuite/gas/hppa/parse/calldatabug.s
+d26fcb5186e8ffda4892557ecf9d836a gas/testsuite/gas/hppa/parse/callinfobug.s
+36132d401bbf31234a71915b94762a26 gas/testsuite/gas/hppa/parse/defbug.s
+8355f3baa7c8bf6dfdde12165f166988 gas/testsuite/gas/hppa/parse/entrybug.s
+a8c2940c51c368a14265009963ce4a7d gas/testsuite/gas/hppa/parse/exportbug.s
+0aa9ab25448da72ed059168f45ee4e11 gas/testsuite/gas/hppa/parse/exprbug.s
+464c7378f55821348860da76fd77ed2e gas/testsuite/gas/hppa/parse/fixup7bug.s
+69d79811f23cb30bd2c536063a29c137 gas/testsuite/gas/hppa/parse/global.s
+eae1949a6363097a7e2ef5bd260b9aa7 gas/testsuite/gas/hppa/parse/labelbug.s
+500906f02f2d8b74365d5c87cf1c4cc4 gas/testsuite/gas/hppa/parse/linesepbug.s
+adf3dd32e97d184fa3a923e977ac0f20 gas/testsuite/gas/hppa/parse/lselbug.s
+e09d99b9bb0cc52546de922bf02a3a13 gas/testsuite/gas/hppa/parse/nosubspace.s
+935cffd940f103074de27bfe5f50d367 gas/testsuite/gas/hppa/parse/parse.exp
+030b7a7332dca245ae8a65a00ab8e169 gas/testsuite/gas/hppa/parse/procbug.s
+ba4a443e4362a957c9eda52f33e9ed56 gas/testsuite/gas/hppa/parse/regpopbug.s
+1e6c961fc9120126cbb70fea5a79b599 gas/testsuite/gas/hppa/parse/space.s
+b19738063af645b6f2231ee644131542 gas/testsuite/gas/hppa/parse/spacebug.s
+16d00a249972a7d82fd5b443a6c006ea gas/testsuite/gas/hppa/parse/ssbug.s
+6e77c97c02695c15f9f54b9b531a5e2b gas/testsuite/gas/hppa/parse/stdreg.s
+e4c3228c9e3a74eb9b2170caafd9cf4c gas/testsuite/gas/hppa/parse/stringer.s
+b91fabc2587cd34b7543fe16032d9c3e gas/testsuite/gas/hppa/parse/undefbug.s
+ad0e0513effd832ce4787671ac4c5eac gas/testsuite/gas/hppa/parse/versionbug.s
+7f9b2353d22448012a9435f7b80ccf1a gas/testsuite/gas/hppa/parse/xmpyubug.s
+73cbb56b2c330327d9c06ea89af0cd91 gas/testsuite/gas/hppa/README
+629e685800d946a73fba78f4f9e2a342 gas/testsuite/gas/hppa/reloc/applybug.s
+e7eccf3a36e653b9312fc78bb40a5022 gas/testsuite/gas/hppa/reloc/blebug.s
+9c8150c0635455986ba2e99432e230ad gas/testsuite/gas/hppa/reloc/blebug2.s
+cfe88051f0bd644932bc22814216e804 gas/testsuite/gas/hppa/reloc/blebug3.s
+2e83d05979fd4ec0c399182ad7513423 gas/testsuite/gas/hppa/reloc/exitbug.s
+a7ab875345b2ba9a0c1e6aee0c0b23cb gas/testsuite/gas/hppa/reloc/fixupbug.s
+84f724d5d6335f9367de5e493847499c gas/testsuite/gas/hppa/reloc/funcrelocbug.s
+8fd8e8d6557a090221c4b9382f712183 gas/testsuite/gas/hppa/reloc/labelopbug.s
+79c490df3cf5ac395769cfd1378b598b gas/testsuite/gas/hppa/reloc/longcall.s
+6fedcfa10d24c76dde19990cbdb53c1a gas/testsuite/gas/hppa/reloc/picreloc.s
+a30d0372d62d0a448e374ed80897e3bf gas/testsuite/gas/hppa/reloc/plabelbug.s
+f2f905140c0955e2a88e451fad681f42 gas/testsuite/gas/hppa/reloc/r_no_reloc.s
+5042b71ae3f83b270fa17a2b7f27fc92 gas/testsuite/gas/hppa/reloc/reduce.s
+bc728b6253b6c770472ed22f5def04e0 gas/testsuite/gas/hppa/reloc/reduce2.s
+45668f4718492900a833f2d3ebe47e57 gas/testsuite/gas/hppa/reloc/reduce3.s
+24778206aa7c2e579232a86fc6416c3f gas/testsuite/gas/hppa/reloc/reloc.exp
+2813e26c00aa991fb8cc3f67b56ae4f6 gas/testsuite/gas/hppa/reloc/roundmode.s
+c690211a1ccb9ebe1cda17e17b5d1cf4 gas/testsuite/gas/hppa/reloc/selectorbug.s
+c0e4f0dd244fb83332f776ca09756e5b gas/testsuite/gas/hppa/unsorted/align3.s
+a7b6914341e97c943a5b931b5ff724a1 gas/testsuite/gas/hppa/unsorted/align4.s
+d5ecda3dffcd60591d33b1718f89d02c gas/testsuite/gas/hppa/unsorted/brlenbug.s
+0854f5ede3fb810256df5394b5d17a6f gas/testsuite/gas/hppa/unsorted/common.s
+563abc929a52d7539bb83a990fbfcb65 gas/testsuite/gas/hppa/unsorted/fragbug.s
+3c295194b6d3754be9b7b7da67fddcb4 gas/testsuite/gas/hppa/unsorted/globalbug.s
+af9e915b6ea1a8a691914d94bb230546 gas/testsuite/gas/hppa/unsorted/importbug.s
+741867661d59451b7d71d392fc0d7206 gas/testsuite/gas/hppa/unsorted/labeldiffs.s
+0aa46fc17784b72b21d387564dddde36 gas/testsuite/gas/hppa/unsorted/locallabel.s
+f8705df6b564ae8bc51ff8255048afd1 gas/testsuite/gas/hppa/unsorted/ss_align.s
+fd1722938dd9b247d2bc012816b7474f gas/testsuite/gas/hppa/unsorted/unsorted.exp
+cfbacb867fc23e46eb5cc453b29e996e gas/testsuite/gas/i386/287.d
+171a2a6a1a526682c97dc638228ac3d2 gas/testsuite/gas/i386/287.s
+1f34c095fb15a02b950b8584dd28d6ab gas/testsuite/gas/i386/387.d
+16ef730d8dc6335b7e046292d35e13bf gas/testsuite/gas/i386/387.s
+202a1104702a1ab88cf1155edd6d8555 gas/testsuite/gas/i386/8087.d
+e62b68bf9ccf183fcc4276aa425cfb47 gas/testsuite/gas/i386/8087.s
+24010b9a4f38ef4e53794bbf69dbe9b9 gas/testsuite/gas/i386/absrel.d
+44d1a7733eab035047de0217133c8049 gas/testsuite/gas/i386/absrel.s
+6ca25f25d906ca4e1f42a524d56dedbb gas/testsuite/gas/i386/addr16.d
+70add2d5b558cddf1c5bc90d4f7e771e gas/testsuite/gas/i386/addr16.s
+4f73f8a4612da1cb112877293278ca77 gas/testsuite/gas/i386/addr32.d
+74cc2d6dafabdd5075b1cbf0093a970c gas/testsuite/gas/i386/addr32.s
+75d586d2a364298d7b0ac00b307483d0 gas/testsuite/gas/i386/aes-intel.d
+303189f3b0a196261790b8c9c1a21187 gas/testsuite/gas/i386/aes.d
+3006616545a323ecea7618dbf4a90dc7 gas/testsuite/gas/i386/aes.s
+11975e08de2a2b280f20e23efea011e8 gas/testsuite/gas/i386/amd.d
+490292ab4ea047011bb404ae769deba3 gas/testsuite/gas/i386/amd.s
+a89088c88a88f80e5311c75c676ead59 gas/testsuite/gas/i386/amdfam10.d
+aca65b19ecb300fd23ac54c091aa7c8a gas/testsuite/gas/i386/amdfam10.s
+4140fffdbe1146a3111d3a455a103600 gas/testsuite/gas/i386/arch-1.d
+4cd49cad88f9a8c0c16e5702f6801b6e gas/testsuite/gas/i386/arch-1.s
+9029e12df192c6e7dc6f785e547818bc gas/testsuite/gas/i386/arch-10-1.l
+4c7fbb695ec8e2da9b8a5b5d1285788b gas/testsuite/gas/i386/arch-10-1.s
+0b1e6cfa37ae0010602cbe92c754f516 gas/testsuite/gas/i386/arch-10-2.l
+4c7fbb695ec8e2da9b8a5b5d1285788b gas/testsuite/gas/i386/arch-10-2.s
+82b72690964fdc58c48ebd6ac26259ba gas/testsuite/gas/i386/arch-10-3.l
+4c7fbb695ec8e2da9b8a5b5d1285788b gas/testsuite/gas/i386/arch-10-3.s
+a471a60b85be8a309e3fce7f7a134810 gas/testsuite/gas/i386/arch-10-4.l
+4c7fbb695ec8e2da9b8a5b5d1285788b gas/testsuite/gas/i386/arch-10-4.s
+bd79ef4055168d7551dd94ca5a0ad90d gas/testsuite/gas/i386/arch-10-lzcnt.d
+a1b7af16b68f6d6cda343c479c545cc4 gas/testsuite/gas/i386/arch-10.d
+17bcdf6f34bf0ca39d958879816fc2c1 gas/testsuite/gas/i386/arch-10.s
+55e60d9a0f9c5741095a4e4cd0ff269d gas/testsuite/gas/i386/arch-11.d
+a0ba0f4ee22157c7b827a05809c74252 gas/testsuite/gas/i386/arch-11.s
+bd5ebc374ccc1141114d427b606893b9 gas/testsuite/gas/i386/arch-12.d
+e33093a9e0e46d682d68f7e8d1879ba5 gas/testsuite/gas/i386/arch-12.s
+42d0f4545615d1ee10e8838c62268b30 gas/testsuite/gas/i386/arch-2.d
+98890f04f76c669902e924263f3a4388 gas/testsuite/gas/i386/arch-2.s
+c643432a697f1eaca5b6c2f04d9f2f59 gas/testsuite/gas/i386/arch-3.d
+51947cf37cd9d6584de752422b3fa7f4 gas/testsuite/gas/i386/arch-3.s
+d715fd01a7c1e2dc76cae1231db9caa3 gas/testsuite/gas/i386/arch-4.d
+dacf75da2d6832e65f00676df7c9a013 gas/testsuite/gas/i386/arch-4.s
+407c9c0c081ad4ed23e3eed383bd1ca6 gas/testsuite/gas/i386/arch-5.d
+881a1d13bb99416017d937e5effa8afe gas/testsuite/gas/i386/arch-5.s
+7b839f7ef0a473d69e9c928ae299be80 gas/testsuite/gas/i386/arch-6.d
+b3a48fb746350655b78b981634817d9d gas/testsuite/gas/i386/arch-6.s
+279db54fe3dc1b2ad2706510a0a072d0 gas/testsuite/gas/i386/arch-7.d
+8c0e50647ead9e7958d12dfb9fcf919f gas/testsuite/gas/i386/arch-7.s
+f6136cb1d84660930a63974fafefe89f gas/testsuite/gas/i386/arch-9.d
+977c4e7a3894b8727a607b5db85087e5 gas/testsuite/gas/i386/arch-9.s
+d71f7aaa6431d9f97d2f252bf1f598c6 gas/testsuite/gas/i386/arch-avx-1-1.l
+1d3c045b12dca5123c1f1c072760599a gas/testsuite/gas/i386/arch-avx-1-1.s
+d71f7aaa6431d9f97d2f252bf1f598c6 gas/testsuite/gas/i386/arch-avx-1-2.l
+1d3c045b12dca5123c1f1c072760599a gas/testsuite/gas/i386/arch-avx-1-2.s
+d71f7aaa6431d9f97d2f252bf1f598c6 gas/testsuite/gas/i386/arch-avx-1-3.l
+1d3c045b12dca5123c1f1c072760599a gas/testsuite/gas/i386/arch-avx-1-3.s
+3213b3903043c42c1e565d662c165639 gas/testsuite/gas/i386/arch-avx-1-4.l
+1d3c045b12dca5123c1f1c072760599a gas/testsuite/gas/i386/arch-avx-1-4.s
+438e3620835c28a62d0d40d8fe63b86c gas/testsuite/gas/i386/arch-avx-1-5.l
+1d3c045b12dca5123c1f1c072760599a gas/testsuite/gas/i386/arch-avx-1-5.s
+d71f7aaa6431d9f97d2f252bf1f598c6 gas/testsuite/gas/i386/arch-avx-1-6.l
+1d3c045b12dca5123c1f1c072760599a gas/testsuite/gas/i386/arch-avx-1-6.s
+62fd5a3bf586aa6a49c795ba95dda468 gas/testsuite/gas/i386/arch-avx-1.d
+6fd5639d4ad175fa23bd73487ecedc10 gas/testsuite/gas/i386/arch-avx-1.s
+b03a4e1f362f7544d45d25e4d2bff12e gas/testsuite/gas/i386/att-regs.d
+cc0d8b6d9603acdb81cc3a3b58cddedf gas/testsuite/gas/i386/att-regs.s
+204308fdda1295977796d7b583fa7fde gas/testsuite/gas/i386/avx-gather-intel.d
+512235971837376879c46abbda91fd90 gas/testsuite/gas/i386/avx-gather.d
+067fc780fc1d8a7df5f87f6e8335a561 gas/testsuite/gas/i386/avx-gather.s
+4fc048736a2c084bee1908ed33ad0178 gas/testsuite/gas/i386/avx-intel.d
+a06b8f951f2c69d5430b30c43adac226 gas/testsuite/gas/i386/avx-scalar-intel.d
+3e04e47b54e1889ba607c91443e22ec7 gas/testsuite/gas/i386/avx-scalar.d
+627c851404d1bafd5ae9ce2649b36d44 gas/testsuite/gas/i386/avx-scalar.s
+9a809d4a118138a33a385cbabd9f3efe gas/testsuite/gas/i386/avx.d
+5edb3797f38fe1008d8dff820bfb17f8 gas/testsuite/gas/i386/avx.s
+63e41ec69ba7585cdf8e6343bd0963ab gas/testsuite/gas/i386/avx2-intel.d
+8914b2a9fc24d1e24dc3d1d58073a6a5 gas/testsuite/gas/i386/avx2.d
+15c1c4db95335650a57de9d6acf12528 gas/testsuite/gas/i386/avx2.s
+4fff5d800d96f132317a4e11bcab1956 gas/testsuite/gas/i386/avx256int-intel.d
+c64593a8ca631f1937c9ad6a51a9a515 gas/testsuite/gas/i386/avx256int.d
+f14cfb582b15f84852a900686c462ba5 gas/testsuite/gas/i386/avx256int.s
+4e344296641bfd2128a5cc0827f7afba gas/testsuite/gas/i386/bad-size.d
+2cb02be063b81df1a93f7aacb6e0a209 gas/testsuite/gas/i386/bad-size.s
+b4d3f465c5e64ba8955ca95984516e65 gas/testsuite/gas/i386/bad-size.warn
+c36066b7f07db4fcea92b62c0c8bb715 gas/testsuite/gas/i386/bmi-intel.d
+5851ad2e4711f5eb46857dc958c20394 gas/testsuite/gas/i386/bmi.d
+ff40be471674a3b3290eb9b699614ae5 gas/testsuite/gas/i386/bmi.s
+4a93dfd1586b17c9300f7d4349fad70f gas/testsuite/gas/i386/bmi2-intel.d
+0d21bb7f0cb7179d7eda89d14fb487b4 gas/testsuite/gas/i386/bmi2.d
+f770ccd7151113d5dd19cdd9f2f1a0e0 gas/testsuite/gas/i386/bmi2.s
+4fcdf4ddc2c648f228400a3349b3cfd2 gas/testsuite/gas/i386/bss.d
+873bd22e2aefafbf190efebc31f90ba8 gas/testsuite/gas/i386/bss.s
+79f73dddb88f227947e29b673f5f6d89 gas/testsuite/gas/i386/clmul-intel.d
+5cbae0d2dc80c2917d1b649cd2cc5819 gas/testsuite/gas/i386/clmul.d
+0bbda8b5cbddb5c69a8259affdefa47d gas/testsuite/gas/i386/clmul.s
+13eb7a28fbf1022b85287860a4c1e6df gas/testsuite/gas/i386/compat-intel.d
+946e035f667a16e08ae486622ddfedd1 gas/testsuite/gas/i386/compat.d
+b9dc0897d5efa8fa23e144276af2fda0 gas/testsuite/gas/i386/compat.s
+48ac5ede74694da5a5c30740ae07542b gas/testsuite/gas/i386/cr-err.l
+682ff4e79cf55bde7df5a585334244f1 gas/testsuite/gas/i386/cr-err.s
+9e528b11bf49b0271e767ce686beafc1 gas/testsuite/gas/i386/crc32-intel.d
+b63fd1728be7f8ab7ad68b43d7859094 gas/testsuite/gas/i386/crc32.d
+8eadf5c51b3ff6e11360e1e46341064b gas/testsuite/gas/i386/crc32.s
+5fc6911024266e35d7a7c6ddd9d2dcc8 gas/testsuite/gas/i386/crx.d
+cd065840b7ecff5d83aa9701a1479e35 gas/testsuite/gas/i386/crx.s
+94c401fadc8b3eca17a53e475be54b63 gas/testsuite/gas/i386/debug1.d
+fcb662f6083710b2db7e90393ccc75d9 gas/testsuite/gas/i386/debug1.s
+f5eae70842a215bcac877e124765f9b8 gas/testsuite/gas/i386/disp-intel.d
+a31dea706d02991a25bb3fa43e910339 gas/testsuite/gas/i386/disp.d
+2edcd8110d38767edd6cbddbd90cdc3b gas/testsuite/gas/i386/disp.s
+4e8e7c8aa970e8c747d4a649b8f3a20a gas/testsuite/gas/i386/disp32.d
+0d2042e6dcbc790ca78032ed45b944d7 gas/testsuite/gas/i386/disp32.s
+189be01fb122304d37ce73bc98f846c0 gas/testsuite/gas/i386/divide.d
+33c0d04dc841d220224f80125d856600 gas/testsuite/gas/i386/divide.s
+c6be67da74ec273b5a95bb1e074c41ba gas/testsuite/gas/i386/dw2-compress-1.d
+c83938985211abdfda1de50ecadf9db5 gas/testsuite/gas/i386/dw2-compress-1.s
+b04fd5e77f20a41f39d3be429d3193d6 gas/testsuite/gas/i386/dw2-compress-2.d
+6adc5de214dc31900028867a47408dee gas/testsuite/gas/i386/dw2-compress-2.s
+d5d131a9412b15ede69a454b650832e3 gas/testsuite/gas/i386/ept-intel.d
+33d05ee98f24760dc1781feb775c639e gas/testsuite/gas/i386/ept.d
+15eaf1303baff77f35818d7933ce2e0e gas/testsuite/gas/i386/ept.s
+9670cfca7b529cc6b85cfb6bc1fe9bf0 gas/testsuite/gas/i386/equ.d
+6790d514023dc266c846e5e3c2193d49 gas/testsuite/gas/i386/equ.s
+670ca9d041e26d6ad52538f0848e25e0 gas/testsuite/gas/i386/f16c-intel.d
+aea9d80d5ab333f09676da2840d527d2 gas/testsuite/gas/i386/f16c.d
+709ee9724e4ab84481450a7b37995d3a gas/testsuite/gas/i386/f16c.s
+481a82666e24dd35712ddbe1953070fc gas/testsuite/gas/i386/float.l
+0df7ab956e3209428d665890983ef957 gas/testsuite/gas/i386/float.s
+3ea2c5bd85f72208e712b4642a1f2d70 gas/testsuite/gas/i386/fma-intel.d
+1b594228cefc4b5c16caad468781b1c7 gas/testsuite/gas/i386/fma-scalar-intel.d
+b744639e88e21d0d19b7ec1319b71be5 gas/testsuite/gas/i386/fma-scalar.d
+67e8d9ebe9297a5f7975087017bc07ca gas/testsuite/gas/i386/fma-scalar.s
+d8c614d055ecfd66f4ef6ce62f3e4101 gas/testsuite/gas/i386/fma.d
+305dabcbe317bc5f1549fd6d1633f02e gas/testsuite/gas/i386/fma.s
+7e5e384f1b32b26958f8af641023a2c6 gas/testsuite/gas/i386/fma4.d
+8d76c68f0c2de1fc309442b6c6054271 gas/testsuite/gas/i386/fma4.s
+827d73ef30f7ac676b39933e05215587 gas/testsuite/gas/i386/fp.d
+7bcb8a12861c81cdcb2c0bb7de330f1b gas/testsuite/gas/i386/fp.s
+6a6f3f219da1517555a2e3c2d1f42c06 gas/testsuite/gas/i386/fsgs-intel.d
+eb3698c46ad08724de91ff7943f743d4 gas/testsuite/gas/i386/fsgs.d
+81a2842104b82fd33309bf1e53ef590f gas/testsuite/gas/i386/fsgs.s
+8080d881efa149202b251d632f28cb7c gas/testsuite/gas/i386/general.l
+1db75486be70699071b9a6564e5f843a gas/testsuite/gas/i386/general.s
+f6f171e3ed5e8b2fb2a22b376eb49f3f gas/testsuite/gas/i386/gotpc.d
+b518d2eb2658745af0bf58cbd295eec9 gas/testsuite/gas/i386/gotpc.s
+c42f10e9f4ecdddcbd48ea204dec710b gas/testsuite/gas/i386/i386.d
+b735130773f9b0bb9bfabba433b7de30 gas/testsuite/gas/i386/i386.exp
+8eb567b76b592760d5316213b76a6d85 gas/testsuite/gas/i386/i386.s
+0c804ba116de81860c5b4592ac701919 gas/testsuite/gas/i386/ifunc-2.l
+f5d8fb713f7aa9f005521f9da7af1b08 gas/testsuite/gas/i386/ifunc-2.s
+7eba5b9ca7814406d3c41abb2acc3b3b gas/testsuite/gas/i386/ifunc-3.d
+df71a69b7aa589034050faedee8d0e44 gas/testsuite/gas/i386/ifunc-3.s
+65dfa028ff8d7a64716f3669cb2f53cb gas/testsuite/gas/i386/ifunc.d
+82b099704e53725014c0deae97bad932 gas/testsuite/gas/i386/ifunc.s
+3df78821a0064d78577e8535c07ffcea gas/testsuite/gas/i386/ilp32/cfi/cfi-common-1.d
+ab4bb667cf0e51ef13eaa6213dd84a97 gas/testsuite/gas/i386/ilp32/cfi/cfi-common-2.d
+1174864a74f88e4ef8273b42f8266c8d gas/testsuite/gas/i386/ilp32/cfi/cfi-common-3.d
+1c6c12c64c446a53b08c7c1aa051dd9d gas/testsuite/gas/i386/ilp32/cfi/cfi-common-4.d
+79df02eb71bee33baa0e5a488272704e gas/testsuite/gas/i386/ilp32/cfi/cfi-common-5.d
+97a123c12520f3e4f3c3d3052b430054 gas/testsuite/gas/i386/ilp32/cfi/cfi-common-6.d
+93b0333f2a44ee2f8010c5a178daac22 gas/testsuite/gas/i386/ilp32/cfi/cfi-common-7.d
+edac528bdfbe54e3bef23f6994121c95 gas/testsuite/gas/i386/ilp32/cfi/cfi-x86_64.d
+8b17764a49ed0f93bb8eb1c7bc9c569b gas/testsuite/gas/i386/ilp32/cfi/ilp32.exp
+5161181167c7011eb0db45cdc71943ff gas/testsuite/gas/i386/ilp32/elf/ehopt0.d
+3852ff733d92251dc53294d23a41723d gas/testsuite/gas/i386/ilp32/elf/equ-reloc.d
+0ffd8df241a3aab9936a19f8bb697772 gas/testsuite/gas/i386/ilp32/elf/file.d
+c82aaf4c739e2b0a3bf7a81130c5433f gas/testsuite/gas/i386/ilp32/elf/group0a.d
+8e5758cc5ae65c6f53d1b7a6f5d9c09b gas/testsuite/gas/i386/ilp32/elf/group0b.d
+6d366d0c18e682d56ea20e160b7cc05f gas/testsuite/gas/i386/ilp32/elf/group1a.d
+98b7d2f0672b9946cd3c1fbd1c559117 gas/testsuite/gas/i386/ilp32/elf/group1b.d
+c1e5c6040ea899706e93bbb089a9f7c7 gas/testsuite/gas/i386/ilp32/elf/ifunc-1.d
+8b17764a49ed0f93bb8eb1c7bc9c569b gas/testsuite/gas/i386/ilp32/elf/ilp32.exp
+67a6bb8ea5ebc16c6bebdd0733290d3d gas/testsuite/gas/i386/ilp32/elf/redef.d
+dcbf92f6a87febf4150119fb6a024d4d gas/testsuite/gas/i386/ilp32/elf/section0.d
+da350bef14ac55f68e6891a7839bd793 gas/testsuite/gas/i386/ilp32/elf/section1.d
+bee9d1befc23d5261aae48b05e4fb067 gas/testsuite/gas/i386/ilp32/elf/section3.d
+479fa4a30b1ecb5e1af1560c981e09df gas/testsuite/gas/i386/ilp32/elf/section4.d
+3194b6c4cc1b10c6c8e9663d18185cfd gas/testsuite/gas/i386/ilp32/elf/section6.d
+e6fec4e140cf4ff214a7b12b6c2dcc40 gas/testsuite/gas/i386/ilp32/elf/section7.d
+a1ae4a1f79c782124ebc9057fc92aba8 gas/testsuite/gas/i386/ilp32/elf/struct.d
+d02f8c60e09d2949aedf1d1bd2825e0a gas/testsuite/gas/i386/ilp32/elf/symtab.d
+04d2b37b4d37201b1a9fff9cbbb5ab92 gas/testsuite/gas/i386/ilp32/elf/symver.d
+1d83e568aec28f15a0d64b19cea75685 gas/testsuite/gas/i386/ilp32/ilp32.exp
+64e911f51146d8fa875f91152210a4a0 gas/testsuite/gas/i386/ilp32/immed64.d
+2833ab469120fcf40bab61da9310e585 gas/testsuite/gas/i386/ilp32/immed64.s
+8b17764a49ed0f93bb8eb1c7bc9c569b gas/testsuite/gas/i386/ilp32/lns/ilp32.exp
+1ec9a904bec40029b6c55a5de818424a gas/testsuite/gas/i386/ilp32/lns/lns-common-1.d
+51b92f5736b04d44b5f86b1b79413bae gas/testsuite/gas/i386/ilp32/lns/lns-duplicate.d
+57781fd1330a4fdcf7ffbb2fe82d8c2d gas/testsuite/gas/i386/ilp32/mixed-mode-reloc64.d
+ba62ade5841d563a4be93312ed80500f gas/testsuite/gas/i386/ilp32/quad.d
+968510511922ffd73f9ce351e916d5a0 gas/testsuite/gas/i386/ilp32/quad.s
+1ee9180d49c54cf4039608fab7f9728e gas/testsuite/gas/i386/ilp32/reloc64.d
+0f780e1b02473c26e39590bab2c2736e gas/testsuite/gas/i386/ilp32/reloc64.l
+67d2922e632ef0c4a4a699ab3ec85d65 gas/testsuite/gas/i386/ilp32/reloc64.s
+94747d62265e52fd21f9768eb257044b gas/testsuite/gas/i386/ilp32/rex.d
+091bf5f771ed2c13816c82c901569130 gas/testsuite/gas/i386/ilp32/rexw.d
+f7c34f523157cc22bbdb4c173754d118 gas/testsuite/gas/i386/ilp32/svme64.d
+c039cb81629fc6e70e10cde7baaa665f gas/testsuite/gas/i386/ilp32/x86-64-addr32-intel.d
+6129948fdd6a227a875b5a09294a4f6b gas/testsuite/gas/i386/ilp32/x86-64-addr32.d
+f837788a5c44c4d5609d78a30a60d527 gas/testsuite/gas/i386/ilp32/x86-64-aes-intel.d
+933b8bc00c5ca2364c797a2833ba3888 gas/testsuite/gas/i386/ilp32/x86-64-aes.d
+d65c86f1f7943a8ee200f514ff5e0f1c gas/testsuite/gas/i386/ilp32/x86-64-amdfam10.d
+ed625b2e7d464175a5843a38c4ba9c77 gas/testsuite/gas/i386/ilp32/x86-64-arch-1.d
+d544001f61622013efbdc30052fc035e gas/testsuite/gas/i386/ilp32/x86-64-arch-2.d
+33b1761d7c94802f68eaf6a7a0c077dc gas/testsuite/gas/i386/ilp32/x86-64-avx-intel.d
+3cbec967b6e302b8ccfe39c892b6a8eb gas/testsuite/gas/i386/ilp32/x86-64-avx-swap-intel.d
+cabf474b86feb7f08177df00d87743fb gas/testsuite/gas/i386/ilp32/x86-64-avx-swap.d
+d27cba0e5c504a4643dafcda752c2376 gas/testsuite/gas/i386/ilp32/x86-64-avx.d
+25cb44655988f34bec1f3a50c558f1e2 gas/testsuite/gas/i386/ilp32/x86-64-branch.d
+8051718ed58247a8581c69c6fd35984a gas/testsuite/gas/i386/ilp32/x86-64-cbw-intel.d
+b13c4d8555f39366287af7684bf2344f gas/testsuite/gas/i386/ilp32/x86-64-cbw.d
+5e5e11eca24557cc72ada9cbcbfccc5a gas/testsuite/gas/i386/ilp32/x86-64-clmul-intel.d
+475308c2cf70008ff9857300c2fda523 gas/testsuite/gas/i386/ilp32/x86-64-clmul.d
+a10419265e64f39133663018ac41b3e2 gas/testsuite/gas/i386/ilp32/x86-64-crc32-intel.d
+c6e512e7f347f5f4f9e44dc1250d94c2 gas/testsuite/gas/i386/ilp32/x86-64-crc32.d
+fd89c20e58a5932b7780b428139c3f43 gas/testsuite/gas/i386/ilp32/x86-64-crx-suffix.d
+5ece27a509cd364929b7d08a02ceefa5 gas/testsuite/gas/i386/ilp32/x86-64-crx.d
+683e030f7c5237f6d6ad750654ddddd4 gas/testsuite/gas/i386/ilp32/x86-64-disp-intel.d
+268faa642f40031509fafa4d65b15ccc gas/testsuite/gas/i386/ilp32/x86-64-disp.d
+310577f2da9b725f5c905a0d5b085691 gas/testsuite/gas/i386/ilp32/x86-64-drx-suffix.d
+3dd53a565bb9d3332d493549bdac46bc gas/testsuite/gas/i386/ilp32/x86-64-drx.d
+f45268bda416f4f4d43cbb136d40f688 gas/testsuite/gas/i386/ilp32/x86-64-ept-intel.d
+ee3d6adde67cd3af844956e9b01db85e gas/testsuite/gas/i386/ilp32/x86-64-ept.d
+f711e8466d7397bf9c293e335306610d gas/testsuite/gas/i386/ilp32/x86-64-fma-intel.d
+74a1273930b2fb5a7e35fc06f0d6ded9 gas/testsuite/gas/i386/ilp32/x86-64-fma.d
+4a8752c77dea49095e2ec253901d5b41 gas/testsuite/gas/i386/ilp32/x86-64-fma4.d
+bae71559c8ddcd78dcdaec3d6c2d58f0 gas/testsuite/gas/i386/ilp32/x86-64-gidt.d
+014193fbdf50f4329bf3ed93939da480 gas/testsuite/gas/i386/ilp32/x86-64-ifunc.d
+2b6b30a70c44b1f6d7b43422cd8a3bdb gas/testsuite/gas/i386/ilp32/x86-64-intel64.d
+99c2a3675c7456463244fe9c0be245cc gas/testsuite/gas/i386/ilp32/x86-64-io-intel.d
+2f44168786a80f39e5d76dc4e82b296e gas/testsuite/gas/i386/ilp32/x86-64-io-suffix.d
+90a62a52d0e2c2359830099f1c69cc0f gas/testsuite/gas/i386/ilp32/x86-64-io.d
+407553c22d29562717fe64d4168ef21c gas/testsuite/gas/i386/ilp32/x86-64-localpic.d
+40ede28427b82ae3e4658a49ff8cbeab gas/testsuite/gas/i386/ilp32/x86-64-mem-intel.d
+9e634631cd34df405fd8be627b1b88d8 gas/testsuite/gas/i386/ilp32/x86-64-mem.d
+703fabc67572478eb6db8a13bd74e916 gas/testsuite/gas/i386/ilp32/x86-64-movbe-intel.d
+49b0f7443931b77dff720c925308a19f gas/testsuite/gas/i386/ilp32/x86-64-movbe.d
+f826ef0b288ab7dd460a1431d3e24a71 gas/testsuite/gas/i386/ilp32/x86-64-nops-1-core2.d
+d27a265d3f9343ac86560289681486ed gas/testsuite/gas/i386/ilp32/x86-64-nops-1-k8.d
+b8c04fec6e0a3299b5fa5d0a6bee45d4 gas/testsuite/gas/i386/ilp32/x86-64-nops-1-nocona.d
+fc252e86b680bcaaf1a05091eb822545 gas/testsuite/gas/i386/ilp32/x86-64-nops-1-pentium.d
+26293be853ce56559b8c413379b971df gas/testsuite/gas/i386/ilp32/x86-64-nops-1.d
+34a7718e4efb6c99e1d994b029a03680 gas/testsuite/gas/i386/ilp32/x86-64-nops-2.d
+523c654317980a0665725745133ee502 gas/testsuite/gas/i386/ilp32/x86-64-nops-3.d
+6def06e86d9a3ab76ad68e77e5569ab9 gas/testsuite/gas/i386/ilp32/x86-64-nops-4-core2.d
+4c19e1081706fe9d4f358757e2d05e41 gas/testsuite/gas/i386/ilp32/x86-64-nops-4-k8.d
+d46f707a4993a3d06765d169d2c89afc gas/testsuite/gas/i386/ilp32/x86-64-nops-4.d
+e023edc22d6f87af8284abfdfcbfd38f gas/testsuite/gas/i386/ilp32/x86-64-nops-5-k8.d
+cc0b219a4e7d5fb226806244501edfe4 gas/testsuite/gas/i386/ilp32/x86-64-nops-5.d
+bef2ae89d7d5c9c4f7cd636c14e752c9 gas/testsuite/gas/i386/ilp32/x86-64-nops.d
+df16126acfb56e9c8bfb55cd8828611e gas/testsuite/gas/i386/ilp32/x86-64-opcode-inval-intel.d
+4259b1cae34a4f696c010cb2a4d87e81 gas/testsuite/gas/i386/ilp32/x86-64-opcode-inval.d
+ca5321f8e0308af417a19cd3e46eba54 gas/testsuite/gas/i386/ilp32/x86-64-opcode.d
+ce941c1b76388d97a77019ce753f996b gas/testsuite/gas/i386/ilp32/x86-64-opts-intel.d
+787aa21140eadc2cdcfac4e9437c6852 gas/testsuite/gas/i386/ilp32/x86-64-opts.d
+cbc5b15e7fc07f41496aa5e12f93e1d6 gas/testsuite/gas/i386/ilp32/x86-64-pcrel.d
+7f474e4895a09cd83f21b42aee76fbad gas/testsuite/gas/i386/ilp32/x86-64-pcrel.s
+71f8263c587a46434c7d63a2bed4a543 gas/testsuite/gas/i386/ilp32/x86-64-reg-intel.d
+8394efdd2473ae7f9a00b01cbb21ef0e gas/testsuite/gas/i386/ilp32/x86-64-reg.d
+3eab8632041a9f795247fe555af55c95 gas/testsuite/gas/i386/ilp32/x86-64-rep-suffix.d
+0cfb959748d2765b026f479492302685 gas/testsuite/gas/i386/ilp32/x86-64-rep.d
+cd4261d448c5661ac2160e41ec5b0995 gas/testsuite/gas/i386/ilp32/x86-64-rip-intel.d
+cb412a6bedcb98fb9dd9eae289f892e9 gas/testsuite/gas/i386/ilp32/x86-64-rip.d
+856a89e2121d0f890ee876875e8483df gas/testsuite/gas/i386/ilp32/x86-64-sib-intel.d
+4ec74fcd08be7b4b358e8305fd0ef1ad gas/testsuite/gas/i386/ilp32/x86-64-sib.d
+7a5f2dbac770eba590529953e8f5bfd3 gas/testsuite/gas/i386/ilp32/x86-64-simd-intel.d
+7a96805b21ce30d177bd437f7bdba072 gas/testsuite/gas/i386/ilp32/x86-64-simd-suffix.d
+03126c8bcd434c33341cc6bf9d845a82 gas/testsuite/gas/i386/ilp32/x86-64-simd.d
+81ba2eb302a7cf061a8fec009c4d32f2 gas/testsuite/gas/i386/ilp32/x86-64-sse-check-none.d
+0197094a9385985b1e4eb108844cb639 gas/testsuite/gas/i386/ilp32/x86-64-sse-check-warn.d
+da0a46c46e1c4e1c914162f3ab2de5fe gas/testsuite/gas/i386/ilp32/x86-64-sse-check.d
+9e066d0ac79e17457e5b950543b39556 gas/testsuite/gas/i386/ilp32/x86-64-sse-noavx.d
+a0d817cab7c5a6e2f03e2f4222ecae5d gas/testsuite/gas/i386/ilp32/x86-64-sse2avx-opts-intel.d
+2c3ca42ce824461ff18acc9b35d66014 gas/testsuite/gas/i386/ilp32/x86-64-sse2avx-opts.d
+a29da9ac70bf23316f9442ee2207f2e0 gas/testsuite/gas/i386/ilp32/x86-64-sse2avx.d
+82d4f03fde7ebb13d5a960da416fca21 gas/testsuite/gas/i386/ilp32/x86-64-sse3.d
+0e08b57387501efff4dd240707347a13 gas/testsuite/gas/i386/ilp32/x86-64-sse4_1-intel.d
+164b3f3b0bc3cfbc8f9768a0e7ce5538 gas/testsuite/gas/i386/ilp32/x86-64-sse4_1.d
+9f07f2016caed1bb56c294d1f0caaf95 gas/testsuite/gas/i386/ilp32/x86-64-sse4_2-intel.d
+f21e69257b122606ddc99717ccbf50e2 gas/testsuite/gas/i386/ilp32/x86-64-sse4_2.d
+9cbe7bd79644371dd0a0305ad34f0453 gas/testsuite/gas/i386/ilp32/x86-64-ssse3.d
+7d7cb1a556286105ba1b9ed4eb46116a gas/testsuite/gas/i386/ilp32/x86-64-stack-intel.d
+6220a6c3770ca5d801d2de69c75ace72 gas/testsuite/gas/i386/ilp32/x86-64-stack-suffix.d
+9f282e622001e91deda7eb8014adebfd gas/testsuite/gas/i386/ilp32/x86-64-stack.d
+a7e456d18941f1aa004c73051332f298 gas/testsuite/gas/i386/ilp32/x86-64-unwind.d
+0362e325ae03f7841c862f1faf6569e2 gas/testsuite/gas/i386/ilp32/x86-64-vmx.d
+34311f9bc61ed6aa88f4278a98d39e9c gas/testsuite/gas/i386/ilp32/x86-64-xsave-intel.d
+82ccddf4546498fc3ed56ae4ccfa1759 gas/testsuite/gas/i386/ilp32/x86-64-xsave.d
+86b585a4ab87c0059a40cfaccbd4c4bb gas/testsuite/gas/i386/ilp32/x86-64.d
+558dfa0ff47174a56fdb77cc4abfdda9 gas/testsuite/gas/i386/ilp32/x86-64.s
+ae2e0be16100f21dd7ca822d5d462e4a gas/testsuite/gas/i386/immed32.d
+87fbc24db5a886748c5a92b86f0bc6b3 gas/testsuite/gas/i386/immed32.s
+6272a52f78a3e539faeeb78c25efe500 gas/testsuite/gas/i386/immed64.d
+1eb96aabc3d1172ecee1c818483d0caf gas/testsuite/gas/i386/immed64.s
+acad3adc7150a8ab49fae5d753930d85 gas/testsuite/gas/i386/intel-expr.d
+296c27ba04bdeab744e43fd92bbcd60a gas/testsuite/gas/i386/intel-expr.s
+45f8fb682b27ba478df9f2d637eeb202 gas/testsuite/gas/i386/intel-got32.d
+91a804c847bda059688149ce3e82abe9 gas/testsuite/gas/i386/intel-got32.s
+9e4ec3f3bd3e885fc099fe387573bc0a gas/testsuite/gas/i386/intel-got64.d
+80a03ddb8d21737a404a109e0db0a111 gas/testsuite/gas/i386/intel-got64.s
+fd0541170c653ad47f1b91eaebe962c0 gas/testsuite/gas/i386/intel-regs.d
+a8909489e3ce4f2f3a6f37415f1931d9 gas/testsuite/gas/i386/intel-regs.s
+cd059a817988d83fac0bb5896c1d5c65 gas/testsuite/gas/i386/intel.d
+a51910f6973ebe550d20e21bb85d34ba gas/testsuite/gas/i386/intel.e
+fbed5b55122a503ae0da16c4b9a629ac gas/testsuite/gas/i386/intel.s
+c6d309e665ba7201bb4410be04c96087 gas/testsuite/gas/i386/intel16.d
+8ce11aeb67d3ed972d5eb3c90e5e94f4 gas/testsuite/gas/i386/intel16.s
+ce49e8118193f845b50ca7d4994d5435 gas/testsuite/gas/i386/intelbad.l
+8bec947baed5b06bce4cc4f951d68571 gas/testsuite/gas/i386/intelbad.s
+f3f92d0c3d309edf9ec9a973c3cb08ef gas/testsuite/gas/i386/intelok.d
+3e05e60b08be317dc957729c0d438e7e gas/testsuite/gas/i386/intelok.s
+b83a2a0dbc42d7719c1f3773e5ece505 gas/testsuite/gas/i386/intelpic.d
+8555f3b34fdffff6df460123cab004a2 gas/testsuite/gas/i386/intelpic.s
+7d29d7830f6d684717aed5c27411734a gas/testsuite/gas/i386/inval-avx.l
+a7b6a8c2865124822043ef0e02c71562 gas/testsuite/gas/i386/inval-avx.s
+277eec2e7d58fa65cb3e60587ae96e40 gas/testsuite/gas/i386/inval-crc32.l
+35b185f6b91fb6037ca025d85a808fd0 gas/testsuite/gas/i386/inval-crc32.s
+3f29ec220a7adb3693a3cacb9876e6d4 gas/testsuite/gas/i386/inval-ept.l
+5fc14add67d4bcc3e5622f38ac12a797 gas/testsuite/gas/i386/inval-ept.s
+653c1bfa5acbed73845e9e4f0ac025bf gas/testsuite/gas/i386/inval-equ-1.l
+ad64e4e52649facd07693d70163a109c gas/testsuite/gas/i386/inval-equ-1.s
+58126930aef7bbe31b4dc18cb4e80d0d gas/testsuite/gas/i386/inval-equ-2.l
+9d24aa6584eab0a1186f17bdb964200d gas/testsuite/gas/i386/inval-equ-2.s
+a450a7a8c4535aaf595b98e8af418639 gas/testsuite/gas/i386/inval-invpcid.l
+0c5fd56b405c29b473c429cff6b6e427 gas/testsuite/gas/i386/inval-invpcid.s
+d78190becdda6021676d5832373afc7f gas/testsuite/gas/i386/inval-movbe.l
+12f93fc08afaf9bfb6f54089f3511f37 gas/testsuite/gas/i386/inval-movbe.s
+b94377afd7b01cc32db6b37e5ea630d4 gas/testsuite/gas/i386/inval-reg.l
+747f53f51416cff88b86ca5c63e46445 gas/testsuite/gas/i386/inval-reg.s
+f7a89c19a9f1cb3e85637ebe9f67e057 gas/testsuite/gas/i386/inval-seg.l
+f021a269046335d2df67eb196fee389f gas/testsuite/gas/i386/inval-seg.s
+890cfc8ddc682354d92865b8e02cc0f2 gas/testsuite/gas/i386/inval.l
+380b8be614c2725ff5c127ad3b757848 gas/testsuite/gas/i386/inval.s
+147e701a51e08124a3482e3899c25a71 gas/testsuite/gas/i386/invpcid-intel.d
+c05bfc313bacdcc4774e2dbc4be372ce gas/testsuite/gas/i386/invpcid.d
+e0ed401fc7e84ee536b96145e21e1bab gas/testsuite/gas/i386/invpcid.s
+8d968c107e13ba687eb12926719adb44 gas/testsuite/gas/i386/jump.d
+42b0107629a2a3d206a26a157a93e3ff gas/testsuite/gas/i386/jump.s
+d5ca309d7d4537ef130eb7165376036d gas/testsuite/gas/i386/jump16.d
+d7d31bb833c5765c095c612d30520833 gas/testsuite/gas/i386/jump16.s
+d7f8400590524bb79c7a8b32e3ebfd94 gas/testsuite/gas/i386/k1om-inval.l
+0f21416e489dae757bb03a5039e498d7 gas/testsuite/gas/i386/k1om-inval.s
+31ce2d117c1ae5bf811a9bc60aba2010 gas/testsuite/gas/i386/k1om.d
+ccf3a80b02bd62f291ff4a473ad72be4 gas/testsuite/gas/i386/katmai.d
+184fb56a639e2576e761632f3fbd4cb9 gas/testsuite/gas/i386/katmai.s
+cee3d19c62cb9bca0ac47a548f30858b gas/testsuite/gas/i386/l1om-inval.l
+0f21416e489dae757bb03a5039e498d7 gas/testsuite/gas/i386/l1om-inval.s
+314d1b2f054ba21e0c9aaf8bc6d32e96 gas/testsuite/gas/i386/l1om.d
+a39dcd817c512ae873dff25a14c171ff gas/testsuite/gas/i386/list-1.l
+fc66ec5cd46138f7cd3ead91679c9fa7 gas/testsuite/gas/i386/list-1.s
+a5e2cc20cc32a456cba57a28c13c18e5 gas/testsuite/gas/i386/list-2.l
+ecaf63b5fb174b39641263c157f857fa gas/testsuite/gas/i386/list-2.s
+52c75ea4e411d04c5971c3e8dec8f013 gas/testsuite/gas/i386/list-3.l
+7466e291420e797a803e9201ef88c039 gas/testsuite/gas/i386/list-3.s
+f25b4b35620c2d7e510e811d37698fbc gas/testsuite/gas/i386/localpic.d
+4e09ecab41571383910000edd7515775 gas/testsuite/gas/i386/localpic.s
+74720fc7bc721c83eae64f2dc2ba94aa gas/testsuite/gas/i386/lock-1-intel.d
+fdb142aa76fad022fa423552cde40462 gas/testsuite/gas/i386/lock-1.d
+dfc4ac89a0fb64cc8479dd64a3267692 gas/testsuite/gas/i386/lock-1.s
+bbd99783af207bd5b47b392cb5604825 gas/testsuite/gas/i386/lockbad-1.l
+2ce461380f139daf73afb299c404081b gas/testsuite/gas/i386/lockbad-1.s
+4438f00ef1c1e53918012bc35389d8b3 gas/testsuite/gas/i386/long-1-intel.d
+4aa1a1e863966181bc432f017fe2243a gas/testsuite/gas/i386/long-1.d
+ae5cb3ce2d1779fd2f32ceffa6d3a038 gas/testsuite/gas/i386/long-1.s
+0a774e8f1a233946f9bd50c54305c6ac gas/testsuite/gas/i386/lwp.d
+a51bccb0f43817a150bf55900f995a49 gas/testsuite/gas/i386/lwp.s
+b4d5520a82ffd4a0a13f5c0d2bd8ba62 gas/testsuite/gas/i386/mem-intel.d
+5fe4ae6c810ca1e91f8c8bc7630de456 gas/testsuite/gas/i386/mem.d
+5926795552df7942d593482625c9c50b gas/testsuite/gas/i386/mem.s
+d004208db701b4e9c43957689eb71dab gas/testsuite/gas/i386/mixed-mode-reloc.s
+f4d4dceee0d93929433daba8a389ca55 gas/testsuite/gas/i386/mixed-mode-reloc32.d
+397c657036288a4b0e096e37942d74cd gas/testsuite/gas/i386/mixed-mode-reloc64.d
+d566afc7ce85d649e11306e09c745945 gas/testsuite/gas/i386/modrm.l
+1d1696a1b6db5c16aa2463cdd8b6a045 gas/testsuite/gas/i386/modrm.s
+d66566456198a09537b0816548f065a4 gas/testsuite/gas/i386/movbe-intel.d
+61f6075da202c6dac27b16fa708d6fc9 gas/testsuite/gas/i386/movbe.d
+a91058699397fb64756b3ef31b12f1e3 gas/testsuite/gas/i386/movbe.s
+49e46a5f863be9fdb62ff21a13d0472e gas/testsuite/gas/i386/naked.d
+b4fe60a42e7f416e8bcfc4c911652c79 gas/testsuite/gas/i386/naked.s
+a222b072dd6dcf34da7d441b99bef225 gas/testsuite/gas/i386/no87-2.l
+6dbfb50008d6f3fce14f55d98ccb5277 gas/testsuite/gas/i386/no87-2.s
+c211c30a2ca8c8af5dfb9de9ed947b54 gas/testsuite/gas/i386/no87.l
+40ffeadf079c8c28a36f6efcc580d508 gas/testsuite/gas/i386/no87.s
+2104665d17640a64efe7b5881e419f6f gas/testsuite/gas/i386/nops-1-bdver1.d
+79324c17d7a317bdeb38558fdef17d65 gas/testsuite/gas/i386/nops-1-bdver2.d
+05ad0e5841a6d7bf557ff6a439f766f1 gas/testsuite/gas/i386/nops-1-core2.d
+1b6d99fa9f483ca4a983e086c3bfbd86 gas/testsuite/gas/i386/nops-1-i386-i686.d
+390ea68aac15a2de94c241b84fd60d83 gas/testsuite/gas/i386/nops-1-i386.d
+180fb5dfeedfebbed76b3ce02867a7ed gas/testsuite/gas/i386/nops-1-i686.d
+5c837a002b3c88949c904d1b3b43b25d gas/testsuite/gas/i386/nops-1-k8.d
+08f3d5ceb9530c9068f2e0fa74f75834 gas/testsuite/gas/i386/nops-1.d
+025026ce822ca51940d7d32199a1ac49 gas/testsuite/gas/i386/nops-1.s
+fc008c47b628e4419701c15a6c1a7663 gas/testsuite/gas/i386/nops-2-core2.d
+b7d7dd981c6a71fe1d9a3e31afe082f6 gas/testsuite/gas/i386/nops-2-i386.d
+8e52edd48c85bf50fd9f345bda7dad2d gas/testsuite/gas/i386/nops-2.d
+1e88981495159fad22fb66e99c65f80e gas/testsuite/gas/i386/nops-2.s
+2bb47f6c6770c2c5eae0f0c268350d7b gas/testsuite/gas/i386/nops-3-i386.d
+f2d0bfc3c44aad2ba8d26f2f0bfaa472 gas/testsuite/gas/i386/nops-3-i686.d
+01ce50d52bd3841b1b4dceda08b12340 gas/testsuite/gas/i386/nops-3.d
+e2e942ec18e872d0b484adccc83ecbf1 gas/testsuite/gas/i386/nops-3.s
+ba2f203a1dfb65d33e88609107e446c7 gas/testsuite/gas/i386/nops-4-i386.d
+0e0158a3a5deb5ae71501c21a65576b5 gas/testsuite/gas/i386/nops-4-i686.d
+1b4aa6eb8ab48e67516865f2bb1d3b8c gas/testsuite/gas/i386/nops-4.d
+0398244609681bda2062cb83cda985ad gas/testsuite/gas/i386/nops-4.s
+be8d1c29fe2460cd77dda65b5feec594 gas/testsuite/gas/i386/nops-4a-i686.d
+02e4570b8ca23c5e910fb74faa9ec631 gas/testsuite/gas/i386/nops-5-i686.d
+41ac30746d51e82e4d7aef3e516f1cfc gas/testsuite/gas/i386/nops-5.d
+8d916471b35b3710cce5fb2721841320 gas/testsuite/gas/i386/nops-5.s
+ff3c1c93f90d9087be51e53d4025ed66 gas/testsuite/gas/i386/nops-6.d
+4615c74bcbd0f731edbd5bae47389ff0 gas/testsuite/gas/i386/nops-6.s
+9eb66d9f6a5447c410317912af428fff gas/testsuite/gas/i386/nops.d
+49a629575fb35d8e4bf06ac877f30d5e gas/testsuite/gas/i386/nops.s
+33932fd124b1f4ad06740656ba7247ce gas/testsuite/gas/i386/nops16-1.d
+f32aad7991cf969bca5f315431ac3318 gas/testsuite/gas/i386/nops16-1.s
+cb9b4ea0047dc619ac8138b43bc36504 gas/testsuite/gas/i386/opcode-intel.d
+3cbc8c1d75684a436f58e3da7d64ae56 gas/testsuite/gas/i386/opcode-suffix.d
+3909078572824bd0fb70e5fa20e5867d gas/testsuite/gas/i386/opcode.d
+e31d78e87c6aba989be9ce4d285c9ccb gas/testsuite/gas/i386/opcode.s
+419a77b5e4fee4bf64f776b0e0df2443 gas/testsuite/gas/i386/opts-intel.d
+8df6448b4aba8bfe18866c3541c34fae gas/testsuite/gas/i386/opts.d
+4727954d4a6c2602077eec2e70077137 gas/testsuite/gas/i386/opts.s
+1c91055fbce0587f02a34bb69c2165bb gas/testsuite/gas/i386/padlock.d
+e4a72b1d388038cb07dd34cdc0a38452 gas/testsuite/gas/i386/padlock.s
+b71a7c0a1c6237878c6a6c534563445a gas/testsuite/gas/i386/pcrel.d
+2a069b87359bb962df261b870b939b15 gas/testsuite/gas/i386/pcrel.s
+dd5c556919ef2c377a504fa4d999a8a6 gas/testsuite/gas/i386/pr12589-1.d
+4b6eb108930d23fa1f582b5a91ff251e gas/testsuite/gas/i386/pr12589-1.s
+beead5b7e8679add4114a22d147ca430 gas/testsuite/gas/i386/prefix.d
+3a00b6ea2b8f8f6b17136c2735787e71 gas/testsuite/gas/i386/prefix.s
+f9363ec16769b2e350e2cdf930d90785 gas/testsuite/gas/i386/rdrnd-intel.d
+a7a3a52e590fab01fcde1b0a17731b7e gas/testsuite/gas/i386/rdrnd.d
+43766dcc6cb3491e198e4d07c9e9889d gas/testsuite/gas/i386/rdrnd.s
+85d24187a437cd04fddf138f5495c0e5 gas/testsuite/gas/i386/reg-intel.d
+9664bb4ff4175097f7da9fbea55a7a31 gas/testsuite/gas/i386/reg.d
+dee1fc5bee092a6bfbe376415a1bef6f gas/testsuite/gas/i386/reg.s
+73fc6f379a60b1c67af137c67709a8ee gas/testsuite/gas/i386/relax-1.d
+298779399b17b78f52c1fdcf886b46a1 gas/testsuite/gas/i386/relax-1.s
+4fae09334600a881a60a28f2c5dfc2f3 gas/testsuite/gas/i386/relax-2.d
+03950f23a946b75f9accb17e47326341 gas/testsuite/gas/i386/relax-2.s
+88ff146a0aed9dc67489b41b0fb6f3cb gas/testsuite/gas/i386/relax.d
+af8b77b677b0bd3471e7ca21a60c445a gas/testsuite/gas/i386/relax.s
+cd3c7378640156c530cbd28aa6ee9e02 gas/testsuite/gas/i386/reloc.d
+785e2743dba0137e0235c3a40f7ed72b gas/testsuite/gas/i386/reloc.s
+bcce880a7c30b65850e47c08f64f318b gas/testsuite/gas/i386/reloc32.d
+ce14bb73228ed5e15623e58140110f06 gas/testsuite/gas/i386/reloc32.l
+b4e477ea59987907644527d7bee16e72 gas/testsuite/gas/i386/reloc32.s
+280669dae3c92b261776c12df35ef7e1 gas/testsuite/gas/i386/reloc64.d
+659181965dae7c7eb05fb37e42c3dab8 gas/testsuite/gas/i386/reloc64.l
+c1ef724b0348d32279094b876a0b2d7f gas/testsuite/gas/i386/reloc64.s
+7147d515916f972e12b9b60c4757f5b2 gas/testsuite/gas/i386/rep-suffix.d
+dc27e5546173842a2a19812f95a809d9 gas/testsuite/gas/i386/rep-suffix.s
+165b35bf517c13862a58bf7133d403e1 gas/testsuite/gas/i386/rep.d
+58db4a5760d1bc9deac225c520b3489d gas/testsuite/gas/i386/rep.s
+68f136651bb2441af19136053d7f3192 gas/testsuite/gas/i386/rex.d
+fcf6d1c7d088d63ac70f079baf51bae5 gas/testsuite/gas/i386/rex.s
+659ad43e992ab39f00c08bf853cffd61 gas/testsuite/gas/i386/rexw.d
+c73a446ebdac9845f2d0f061e6ce30d3 gas/testsuite/gas/i386/rexw.s
+d72937f5ee7c1feeecf96248fe38b509 gas/testsuite/gas/i386/secrel.d
+ae437b9d8fe2c177c2672e5ca17b9942 gas/testsuite/gas/i386/secrel.s
+49756badbd07c6541f231a7a4a0f869a gas/testsuite/gas/i386/segment.l
+c31999cdae4d3da1d2eedfd3d840b32c gas/testsuite/gas/i386/segment.s
+6404e1eb22da46c6a4c172ea467bbef6 gas/testsuite/gas/i386/sib-intel.d
+9a3bcd542318f16d548e4955e4645bc9 gas/testsuite/gas/i386/sib.d
+b66b458374927f587de8154fba02388a gas/testsuite/gas/i386/sib.s
+a992b3c02920c37bb352e29dd9349769 gas/testsuite/gas/i386/simd-intel.d
+3508f1f7b92e9e7150a9a9993fae168b gas/testsuite/gas/i386/simd-suffix.d
+030c1b7ab763fc84598d3f520477a33f gas/testsuite/gas/i386/simd.d
+76e857d973e2cba0a8533b8948f846fb gas/testsuite/gas/i386/simd.s
+210c38789f8d91dd2bb3e7e7dbed15bd gas/testsuite/gas/i386/smx.d
+ab961d062b9e42924d1ce445461acdbc gas/testsuite/gas/i386/smx.s
+c5940fc5532e5f9b71392c5eec523273 gas/testsuite/gas/i386/space1.l
+adb7dc5186c781e6abf5370324bfabe6 gas/testsuite/gas/i386/space1.s
+2acce4070701696412e9818cb64d4a8f gas/testsuite/gas/i386/sse-check-error.l
+b3107e3ecbe1f95d1979dad18d08e9bd gas/testsuite/gas/i386/sse-check-error.s
+d5186a3bed5e64b4747f40dfa2482300 gas/testsuite/gas/i386/sse-check-none.d
+002cc480328868c3f768c18a63359ecb gas/testsuite/gas/i386/sse-check-none.s
+5332e3e8b4b2f145003a96c61d344bea gas/testsuite/gas/i386/sse-check-warn.d
+b62430479db336d229bd4f5a96753817 gas/testsuite/gas/i386/sse-check-warn.e
+b4427b60d5725e027a564e6286de0161 gas/testsuite/gas/i386/sse-check.d
+d2acfb5cec64db4d416e8802c558aae4 gas/testsuite/gas/i386/sse-check.s
+d4a02ecdf169c29e7b9bc2c179d742ec gas/testsuite/gas/i386/sse-noavx.d
+a9a2369892572dc748ed0b4fc41a929e gas/testsuite/gas/i386/sse-noavx.s
+44bd52b79c6f71a7d20853ceb70c6469 gas/testsuite/gas/i386/sse2.d
+526d36a3997a81ba5954ef83a247b2a9 gas/testsuite/gas/i386/sse2.s
+4bce69df6dc7d2ed41562a539bc09b2f gas/testsuite/gas/i386/sse2avx-opts-intel.d
+692e107b09e32118499d5bf32a9bc193 gas/testsuite/gas/i386/sse2avx-opts.d
+37c21f9ada747da880bfb214da9e6dc6 gas/testsuite/gas/i386/sse2avx.d
+0a94d8e1bb6c4a3c561f519952e1e471 gas/testsuite/gas/i386/sse2avx.s
+e29d70b6aa1e695bd768f8e267849e50 gas/testsuite/gas/i386/sse3.d
+5a1f10a03c575e38b20768f76809e343 gas/testsuite/gas/i386/sse3.s
+a8e1a6346c7e4bc99e311492a78cc5c2 gas/testsuite/gas/i386/sse4_1-intel.d
+33832b995dfbf2925f9d238e5ec3c838 gas/testsuite/gas/i386/sse4_1.d
+b1b71079c7459c816607fb29cbede17a gas/testsuite/gas/i386/sse4_1.s
+36eb0028140d7c6c47196b2c076723eb gas/testsuite/gas/i386/sse4_2-intel.d
+93af119559a52ebf85d97cb372ad5eab gas/testsuite/gas/i386/sse4_2.d
+ec5956da945fcc83b87996dcaabb37cc gas/testsuite/gas/i386/sse4_2.s
+c10822c38c0829d874e2ab8397c27c4c gas/testsuite/gas/i386/ssemmx2.d
+e73e0f652b697100e02db9b419b06cd0 gas/testsuite/gas/i386/ssemmx2.s
+b8f4c55f5234aeb290314b2d83edd0a3 gas/testsuite/gas/i386/ssse3.d
+ed0d94e9192c9372bab004595128cbde gas/testsuite/gas/i386/ssse3.s
+e27241e6070578f0f8cce034161228b0 gas/testsuite/gas/i386/string-bad.l
+e8f03f631e9257f500cf01931f64f707 gas/testsuite/gas/i386/string-bad.s
+e5d93dde85f1490393cb8c822f498d7b gas/testsuite/gas/i386/string-ok.d
+7841aac9467176a21b691ef1f40adedf gas/testsuite/gas/i386/string-ok.e
+3d50d86c37dbe01fd17bb4d1218749de gas/testsuite/gas/i386/string-ok.s
+63e6c02ab5f64af6dd5235e3c374ac08 gas/testsuite/gas/i386/sub.d
+833f164bd60a9f7c4db8ccf2b0bf711b gas/testsuite/gas/i386/sub.s
+255ecabbcbb774d2b711f9c2a6467c2b gas/testsuite/gas/i386/suffix.d
+cc898efb930fe1387f95ddbc6c296877 gas/testsuite/gas/i386/suffix.s
+f1360fbb543b1013b19d7262aae59e6f gas/testsuite/gas/i386/svme.d
+915ae3844040d7de954451e1b08f6a57 gas/testsuite/gas/i386/svme.s
+eee803f12a554f2eb62215d142149b50 gas/testsuite/gas/i386/svme64.d
+16b726a0ab15c9e41d15ea931a8f789e gas/testsuite/gas/i386/tbm-intel.d
+94e41da3fe5e40f88558b8d684a0c912 gas/testsuite/gas/i386/tbm.d
+e329028a576c858fefba49b0529cc68b gas/testsuite/gas/i386/tbm.s
+263666276bb58f1bf236a81bdec1b54b gas/testsuite/gas/i386/tlsd.d
+6276d7a325e095cb7d76ae4bc0664de9 gas/testsuite/gas/i386/tlsd.s
+6b3d04bba181b4c798d810f19600c76c gas/testsuite/gas/i386/tlsnopic.d
+57fea1ba6cb8614eb9cf26948a633c80 gas/testsuite/gas/i386/tlsnopic.s
+e014b2640b81c8867b9b28162242eccf gas/testsuite/gas/i386/tlspic.d
+6e8c2126aec7e76808eef1c12cfd676d gas/testsuite/gas/i386/tlspic.s
+6b5d014a42b77623734a199666d99bb1 gas/testsuite/gas/i386/vmx.d
+f567d2fe791abd9688dd01e4425c5165 gas/testsuite/gas/i386/vmx.s
+5e753c7bc49fa309e62b92585e011e08 gas/testsuite/gas/i386/white.l
+305b7d730a90ea5ac8fb330a3bf13fec gas/testsuite/gas/i386/white.s
+c3cd7c105b9a66cee5d6bc4e23c37867 gas/testsuite/gas/i386/x86-64-addr32-intel.d
+2cece402fabefaf8c047415710ee45ff gas/testsuite/gas/i386/x86-64-addr32.d
+4d31d6588877be06398af1634ee64f11 gas/testsuite/gas/i386/x86-64-addr32.s
+896b54b9ab0a9ea541d5fc9b4b82438b gas/testsuite/gas/i386/x86-64-aes-intel.d
+48a0ebaa8c9aac9ededb58da073622da gas/testsuite/gas/i386/x86-64-aes.d
+3fb7db5827fe31cc0d16326df78ba65b gas/testsuite/gas/i386/x86-64-aes.s
+f15f671c7bd802a582f8926994aee1d9 gas/testsuite/gas/i386/x86-64-amdfam10.d
+41c630bb8d9011efd9ed2c5a9865247e gas/testsuite/gas/i386/x86-64-amdfam10.s
+d511c53578d546bbd365d601bde6f476 gas/testsuite/gas/i386/x86-64-arch-1.d
+5877d9937eb3a902a284a77ee38cbfc1 gas/testsuite/gas/i386/x86-64-arch-1.s
+c18ed88b5b6a6d6ac493aefd79c93d0a gas/testsuite/gas/i386/x86-64-arch-2-lzcnt.d
+ad3aafd7ed68b4704900f2c062b2e422 gas/testsuite/gas/i386/x86-64-arch-2.d
+9fc9d686e682bea822a026377256278a gas/testsuite/gas/i386/x86-64-arch-2.s
+3b42f87f3f86bd791bf6f88bab9edb02 gas/testsuite/gas/i386/x86-64-avx-gather-intel.d
+98e74b0a51558787cb0572c38ee07680 gas/testsuite/gas/i386/x86-64-avx-gather.d
+ab783a919c96165d6060c621ea1f369b gas/testsuite/gas/i386/x86-64-avx-gather.s
+d06958988acae2d053b6192eb478a605 gas/testsuite/gas/i386/x86-64-avx-intel.d
+80954342266c024ec37c5a896698d95d gas/testsuite/gas/i386/x86-64-avx-scalar-intel.d
+820feabbb8a518d840d2664d1cc119e8 gas/testsuite/gas/i386/x86-64-avx-scalar.d
+172024d18e68679c0b3d1c1e85290d99 gas/testsuite/gas/i386/x86-64-avx-scalar.s
+05e5126338040a91e74a5ce32698e9aa gas/testsuite/gas/i386/x86-64-avx-swap-intel.d
+376fde462fbfc57f900a79e05d751af4 gas/testsuite/gas/i386/x86-64-avx-swap.d
+791fc7ec51e7b0a8447e4d33ba45fc7f gas/testsuite/gas/i386/x86-64-avx-swap.s
+9f126e0a184cb48a11fc8afc2c7475d2 gas/testsuite/gas/i386/x86-64-avx.d
+ad1c14483a554397bc4f01ca22f66aa3 gas/testsuite/gas/i386/x86-64-avx.s
+b37b58fe6eef9d307c5306b0f60c8916 gas/testsuite/gas/i386/x86-64-avx2-intel.d
+5313e418221d24e63c58d95f87510bee gas/testsuite/gas/i386/x86-64-avx2.d
+34febabee466af149b330c64b83bd932 gas/testsuite/gas/i386/x86-64-avx2.s
+a4513f45130ade2b6db37295b2fc5f3e gas/testsuite/gas/i386/x86-64-avx256int-intel.d
+9ea867de6cd0be10cd7a2cbe621f9e53 gas/testsuite/gas/i386/x86-64-avx256int.d
+683ac44a9918fc498de36dcd30b79395 gas/testsuite/gas/i386/x86-64-avx256int.s
+00374533429542db7db8a7703a57f30a gas/testsuite/gas/i386/x86-64-bmi-intel.d
+cf123707d0b94f2c2c3d4a752b804ee7 gas/testsuite/gas/i386/x86-64-bmi.d
+a1a05256c61fedaffa9068350c2e649c gas/testsuite/gas/i386/x86-64-bmi.s
+09eb75575fe2158c1634100977167f15 gas/testsuite/gas/i386/x86-64-bmi2-intel.d
+994b20437eb312a444f54af9e5b2b997 gas/testsuite/gas/i386/x86-64-bmi2.d
+fd4cf2e268fa18ad5c90aadcb0eb95c7 gas/testsuite/gas/i386/x86-64-bmi2.s
+8c319f894375c4bd2f8a12f1924a3001 gas/testsuite/gas/i386/x86-64-branch.d
+c4efdf33b6f56c1fddeba9bde36023a1 gas/testsuite/gas/i386/x86-64-branch.s
+fd4a09f7c9d009aff7f0daf052a5d0d4 gas/testsuite/gas/i386/x86-64-cbw-intel.d
+bab2814cc9341ef0bd1c5836487daafa gas/testsuite/gas/i386/x86-64-cbw.d
+7cb413e2c9874960869757f756a06f23 gas/testsuite/gas/i386/x86-64-cbw.s
+8a11d39ecd63e330283964f2eafc363a gas/testsuite/gas/i386/x86-64-clmul-intel.d
+89e93c2801a40b41a71536cb2f480bd1 gas/testsuite/gas/i386/x86-64-clmul.d
+cbcd06603aae8ae9c0cdf2608186957a gas/testsuite/gas/i386/x86-64-clmul.s
+76361e45fe248ed398757ce9a8c0fa2e gas/testsuite/gas/i386/x86-64-crc32-intel.d
+fed4ab27f975a72592a414b0047c50be gas/testsuite/gas/i386/x86-64-crc32.d
+ed77424d334554e3af2ab65b4927029b gas/testsuite/gas/i386/x86-64-crc32.s
+408a227f72aef795f76d1d6d91d2fb5b gas/testsuite/gas/i386/x86-64-crx-suffix.d
+c45b4527c3859f718512fd1b7d4d59f2 gas/testsuite/gas/i386/x86-64-crx.d
+c1aefb6d2c81ed0ab02401fe81cef10b gas/testsuite/gas/i386/x86-64-crx.s
+1032228937b3c89c054aaa3d57409641 gas/testsuite/gas/i386/x86-64-disp-intel.d
+1770f507d85c5d10503e2387e31a86de gas/testsuite/gas/i386/x86-64-disp.d
+b80fd8ed96178c27c38fd768587671dc gas/testsuite/gas/i386/x86-64-disp.s
+0320dd76a79dc76c2808ab1b3c969644 gas/testsuite/gas/i386/x86-64-disp32.d
+b8e1d12bcddd07a2b7516cf45a695262 gas/testsuite/gas/i386/x86-64-disp32.s
+7ea4308b329685e530be74addaac7c94 gas/testsuite/gas/i386/x86-64-drx-suffix.d
+601a338970ce4ec3f3105cd754da7d70 gas/testsuite/gas/i386/x86-64-drx.d
+3a07eba6a88df41e1026628ed70fc0f7 gas/testsuite/gas/i386/x86-64-drx.s
+f1f851027fb5e26cd59acde5d67e0be1 gas/testsuite/gas/i386/x86-64-dw2-compress-2.d
+8b4cd73338e8ca5b71d745d09a42ba02 gas/testsuite/gas/i386/x86-64-dw2-compress-2.s
+da3dd52dd882fbeb25b06ac67e7a57c9 gas/testsuite/gas/i386/x86-64-ept-intel.d
+d0bf3bf279651bd316c93ff43c463544 gas/testsuite/gas/i386/x86-64-ept.d
+af5153ea1d101e1a57f06fb8084d0587 gas/testsuite/gas/i386/x86-64-ept.s
+54787e1ae9043a2e9eecf6bb14ba3d23 gas/testsuite/gas/i386/x86-64-f16c-intel.d
+5de961f1b201848fe38c976a0e626450 gas/testsuite/gas/i386/x86-64-f16c.d
+f815bb815cb6b136cd3a3827fa9da925 gas/testsuite/gas/i386/x86-64-f16c.s
+b818e0c05dfcd88bad6f2f6a945fabb7 gas/testsuite/gas/i386/x86-64-fma-intel.d
+3bf22fa11ee637992ee90ffca0330390 gas/testsuite/gas/i386/x86-64-fma-scalar-intel.d
+b62146f5453748b8af305f2d60226bc6 gas/testsuite/gas/i386/x86-64-fma-scalar.d
+5af787ea3662a03228126d86723ad155 gas/testsuite/gas/i386/x86-64-fma-scalar.s
+4b646df079f1155c762a3585445c0370 gas/testsuite/gas/i386/x86-64-fma.d
+4487a492b1ccc7f563936720d6030640 gas/testsuite/gas/i386/x86-64-fma.s
+d225c8cfa138a31d7d590b6e2467f9f4 gas/testsuite/gas/i386/x86-64-fma4.d
+d7a5ee53a09a5ccc309e8e8ab4935d5d gas/testsuite/gas/i386/x86-64-fma4.s
+bb6f2cb11b9ca6bd7036ce32b1ffd9d1 gas/testsuite/gas/i386/x86-64-fsgs-intel.d
+51e77697056473e2482152a41ef64588 gas/testsuite/gas/i386/x86-64-fsgs.d
+cfdeed03e85153bd0935f7e15031d9b2 gas/testsuite/gas/i386/x86-64-fsgs.s
+40e721419538b1a411f0e4cc4f676926 gas/testsuite/gas/i386/x86-64-fxsave-intel.d
+cd4620df6f7617d5b76aa2787bb83f22 gas/testsuite/gas/i386/x86-64-fxsave.d
+514a99c306d6be131106fffaad17a286 gas/testsuite/gas/i386/x86-64-fxsave.s
+f3980dbba32c8b1971090a7171fc74cf gas/testsuite/gas/i386/x86-64-gidt.d
+a7520374ab1003bb34da98f1092259f4 gas/testsuite/gas/i386/x86-64-gidt.s
+b991cb403890fff249f739f2c7ffc2b6 gas/testsuite/gas/i386/x86-64-ifunc.d
+3e36e6d86634f92f1f6291467be0f793 gas/testsuite/gas/i386/x86-64-intel64.d
+1a65340d4c294e0fa94570a988000db6 gas/testsuite/gas/i386/x86-64-intel64.s
+b82675e46ad27cc7822c6d6d0a48e496 gas/testsuite/gas/i386/x86-64-inval-avx.l
+d188ad45ca39e2008505d054ac718c20 gas/testsuite/gas/i386/x86-64-inval-avx.s
+a3d6edef82b387f3ca0976ed140df294 gas/testsuite/gas/i386/x86-64-inval-crc32.l
+79aeffa32888a76dda8bec9573539359 gas/testsuite/gas/i386/x86-64-inval-crc32.s
+a2b4be01be260e759dc8d4059dce61cf gas/testsuite/gas/i386/x86-64-inval-ept.l
+fd4e0c3bbf6678f11083a48810f9fe6a gas/testsuite/gas/i386/x86-64-inval-ept.s
+8109306ce796d59a855ee2075aff143e gas/testsuite/gas/i386/x86-64-inval-invpcid.l
+4a1fdd3f2764d0f0eace322c197d5617 gas/testsuite/gas/i386/x86-64-inval-invpcid.s
+f4a31debb295755ed98dcff0d33364e3 gas/testsuite/gas/i386/x86-64-inval-movbe.l
+a310f52211c8a33fa99f7b161f578ab6 gas/testsuite/gas/i386/x86-64-inval-movbe.s
+162538feb667384563ddb3678c76eea7 gas/testsuite/gas/i386/x86-64-inval-seg.l
+aae525360b98db49675b427a0fa29d0f gas/testsuite/gas/i386/x86-64-inval-seg.s
+6a7952345cc6373e0633ada1849cb761 gas/testsuite/gas/i386/x86-64-inval.l
+df5bd8c1c597a738108b55fca38ba5ce gas/testsuite/gas/i386/x86-64-inval.s
+f3ef80b96f2260ec2379202332b7ca17 gas/testsuite/gas/i386/x86-64-invpcid-intel.d
+3e53e9dddabf9609e1354c1a4fc6fe13 gas/testsuite/gas/i386/x86-64-invpcid.d
+fa312942aa9bc43bf137f70f5ff62487 gas/testsuite/gas/i386/x86-64-invpcid.s
+207f557c92d6401ba7abc31ef565b3a9 gas/testsuite/gas/i386/x86-64-io-intel.d
+bc0c7c65971adbb31b6578d3735e06f8 gas/testsuite/gas/i386/x86-64-io-suffix.d
+a9ba872efa989a23615d35f5714b4842 gas/testsuite/gas/i386/x86-64-io.d
+b41fdb1ead1f865980afbb60003170e5 gas/testsuite/gas/i386/x86-64-io.s
+a2343b7fb5016a700374004853422f2c gas/testsuite/gas/i386/x86-64-localpic.d
+72d3840189715b3135f0c0f813173f51 gas/testsuite/gas/i386/x86-64-localpic.s
+bb6a0e9ffcc1b7b608131bb2c950cdbb gas/testsuite/gas/i386/x86-64-lock-1-intel.d
+f5c2950078d64dec53bdcc74469819ee gas/testsuite/gas/i386/x86-64-lock-1.d
+f43153fb2619da317aae1ec777a4b319 gas/testsuite/gas/i386/x86-64-lock-1.s
+b8f3cf2cea0a23c51931bb390fefd78a gas/testsuite/gas/i386/x86-64-lockbad-1.l
+aff509f67e9046da980e945bfbe5497c gas/testsuite/gas/i386/x86-64-lockbad-1.s
+facc341b4de4956c632ba17a7a3ec338 gas/testsuite/gas/i386/x86-64-long-1-intel.d
+2da4e7265772248a90334877aca7dd12 gas/testsuite/gas/i386/x86-64-long-1.d
+865539e94446ad4efd756579a27fba89 gas/testsuite/gas/i386/x86-64-long-1.s
+f22c6294fbee5a304e5fb648792e73cd gas/testsuite/gas/i386/x86-64-lwp.d
+65192bf4bfcafd84a2f687d13684141c gas/testsuite/gas/i386/x86-64-lwp.s
+8c09cea912742744d023e341487caa2c gas/testsuite/gas/i386/x86-64-mem-intel.d
+26bb425fdbe17360fe2d8ae648dcc112 gas/testsuite/gas/i386/x86-64-mem.d
+b203d4a0600350c32fc158b31b557118 gas/testsuite/gas/i386/x86-64-mem.s
+61e1b53a504761449a119ff583bbd567 gas/testsuite/gas/i386/x86-64-movbe-intel.d
+ee8078df09bdd71739be7304418bb861 gas/testsuite/gas/i386/x86-64-movbe.d
+901ae1e6492d264d4e0f0572ec7385d8 gas/testsuite/gas/i386/x86-64-movbe.s
+fd10486938952d90b3d194faf5d7c9f6 gas/testsuite/gas/i386/x86-64-nops-1-bdver1.d
+4a83154b9dc3a825c1783412e06cbc7b gas/testsuite/gas/i386/x86-64-nops-1-bdver2.d
+c086871015486490e83c27be83809dfb gas/testsuite/gas/i386/x86-64-nops-1-core2.d
+07b090b42d825a9705ff6ab76c32f22b gas/testsuite/gas/i386/x86-64-nops-1-g64.d
+3cc072985433b4982a88772dd6bf139a gas/testsuite/gas/i386/x86-64-nops-1-k8.d
+af24f4708195e759b01739728c35dc70 gas/testsuite/gas/i386/x86-64-nops-1-nocona.d
+b216e15f6699624ab094d8fb795b3cfb gas/testsuite/gas/i386/x86-64-nops-1-pentium.d
+8ad0e28a3aebc21f95a3a8b5cad21f2c gas/testsuite/gas/i386/x86-64-nops-1.d
+ad9e8e0c32e1a6560b062553bac14943 gas/testsuite/gas/i386/x86-64-nops-2.d
+a24b8011ca8a4fc24b90ea2159fbf178 gas/testsuite/gas/i386/x86-64-nops-3.d
+070865f6d6683e1f111d467091298a48 gas/testsuite/gas/i386/x86-64-nops-4-core2.d
+9cef0e02c0747da2fb7231aeb2178020 gas/testsuite/gas/i386/x86-64-nops-4-k8.d
+3c84568dfc6dfa56129674b1242ebcc5 gas/testsuite/gas/i386/x86-64-nops-4.d
+fbb38b9b2bbb0003846c9f8dac33ec41 gas/testsuite/gas/i386/x86-64-nops-5-k8.d
+c31880b461e256399ff73ef4ba47aa5d gas/testsuite/gas/i386/x86-64-nops-5.d
+c23c056fa6d755b9134cb8da66b25299 gas/testsuite/gas/i386/x86-64-nops.d
+00d30d117160daed04e8aae9b6902e3b gas/testsuite/gas/i386/x86-64-nops.s
+41de16a767ee52fe8c4b2a6079f3a334 gas/testsuite/gas/i386/x86-64-opcode-inval-intel.d
+683397974ca1a61b3ed636965f138885 gas/testsuite/gas/i386/x86-64-opcode-inval.d
+12f4d57eb3aeae85595763edafcbf4c4 gas/testsuite/gas/i386/x86-64-opcode-inval.s
+0aaf3ce9232975532d630391d0c1ef49 gas/testsuite/gas/i386/x86-64-opcode.d
+73612ec8e104e706a1ec9dcefa329317 gas/testsuite/gas/i386/x86-64-opcode.s
+ece6d2dc04373d49a07edc839f22380b gas/testsuite/gas/i386/x86-64-opts-intel.d
+3bdcb51cc99a9b8fe0bf3b0f5c4ba0c7 gas/testsuite/gas/i386/x86-64-opts.d
+a9360f523521034d3b2b6eca492e1dff gas/testsuite/gas/i386/x86-64-opts.s
+fcfa76b77a04ec8990457e98374564ce gas/testsuite/gas/i386/x86-64-pcrel.d
+0102d6957be1a24ff2c324dbb1b2a850 gas/testsuite/gas/i386/x86-64-pcrel.s
+7fb970b61c4a6637d1160822b9c5a7ba gas/testsuite/gas/i386/x86-64-rdrnd-intel.d
+5c1b9124898c4b986a1001adfdbc3a51 gas/testsuite/gas/i386/x86-64-rdrnd.d
+cbf9cf7c561c50b0984846d36eae681c gas/testsuite/gas/i386/x86-64-rdrnd.s
+9b06d374617d60f3a675354cc82f715d gas/testsuite/gas/i386/x86-64-reg-intel.d
+03b2d7204d96cb46b316c9311b280f4a gas/testsuite/gas/i386/x86-64-reg.d
+e7a1d00ff46cd6b3c7af47e81b2c71e8 gas/testsuite/gas/i386/x86-64-reg.s
+69ea2f386da120feddc84322100d86e3 gas/testsuite/gas/i386/x86-64-relax-1.d
+08a56d5d3e02804c0a0e6b9654805d64 gas/testsuite/gas/i386/x86-64-relax-1.s
+294a7d75648643e6d32e8e3fc60c900b gas/testsuite/gas/i386/x86-64-rep-suffix.d
+3ad8098f3d537ceba97b5b8b22a406e3 gas/testsuite/gas/i386/x86-64-rep-suffix.s
+ce4edb0506bfb1937b3a10a7e3e818d6 gas/testsuite/gas/i386/x86-64-rep.d
+0230ea92a85352895e515489f8d1b6e2 gas/testsuite/gas/i386/x86-64-rep.s
+282412e30927c979e7ec80f2ff628621 gas/testsuite/gas/i386/x86-64-rip-intel.d
+fa314cbc7e9de53772c530b30157f65e gas/testsuite/gas/i386/x86-64-rip.d
+722677b05d3cd317657a418b4f5ff9ed gas/testsuite/gas/i386/x86-64-rip.s
+8dc4e34c9b1fe8d7582db1437973c356 gas/testsuite/gas/i386/x86-64-segment.l
+93582bffb446e522b0e4c96c89d2d901 gas/testsuite/gas/i386/x86-64-segment.s
+28bbb19963a9f7f45e93c2c272b50fbe gas/testsuite/gas/i386/x86-64-sib-intel.d
+fac2672f643fdcf2deee16c52eaebaab gas/testsuite/gas/i386/x86-64-sib.d
+9e14a1b044d5ab4cadce1af8beaff84e gas/testsuite/gas/i386/x86-64-sib.s
+2afd9a88eca247565be74d977ac1e69d gas/testsuite/gas/i386/x86-64-simd-intel.d
+b79357dd1880f27de5a407c43d0ac66d gas/testsuite/gas/i386/x86-64-simd-suffix.d
+27b8c066889fd3aab885c6a79ac40ef0 gas/testsuite/gas/i386/x86-64-simd.d
+932fb4785c354cd5757f408f7488d85a gas/testsuite/gas/i386/x86-64-simd.s
+2acce4070701696412e9818cb64d4a8f gas/testsuite/gas/i386/x86-64-sse-check-error.l
+b3107e3ecbe1f95d1979dad18d08e9bd gas/testsuite/gas/i386/x86-64-sse-check-error.s
+661674d3bc8da3d09f060de41ffea949 gas/testsuite/gas/i386/x86-64-sse-check-none.d
+d5bc96d7fccc04de9b014d9e958edf15 gas/testsuite/gas/i386/x86-64-sse-check-warn.d
+8ec24ada69da5dae7ef3de0d416a3343 gas/testsuite/gas/i386/x86-64-sse-check.d
+71c5eff10e0c5d7af2fc929d131dfd69 gas/testsuite/gas/i386/x86-64-sse-noavx.d
+6e95bf187d1d5a90824236bec3f40f8e gas/testsuite/gas/i386/x86-64-sse-noavx.s
+07b14f230e4b909755529333b0e9e959 gas/testsuite/gas/i386/x86-64-sse2avx-opts-intel.d
+130bb3f6f6bf30a8f18399e97d0721b6 gas/testsuite/gas/i386/x86-64-sse2avx-opts.d
+65178da268630d21977edc9ad1a27c35 gas/testsuite/gas/i386/x86-64-sse2avx.d
+e737a9cde96e0acc0b05613d5623ff76 gas/testsuite/gas/i386/x86-64-sse2avx.s
+a604d3babf870782b67de50cbd33af9a gas/testsuite/gas/i386/x86-64-sse3.d
+5d99b531c8604a1e6bc9dbd0d7badd2c gas/testsuite/gas/i386/x86-64-sse3.s
+06e6a782cf8587c1c694b5d45a4185bd gas/testsuite/gas/i386/x86-64-sse4_1-intel.d
+82ee7d8d95134bcf793b0ef7dae56246 gas/testsuite/gas/i386/x86-64-sse4_1.d
+2d21a1ac44c06d3cbb312bd577128cd2 gas/testsuite/gas/i386/x86-64-sse4_1.s
+2cc52dd756b84bca3107ad34947a1828 gas/testsuite/gas/i386/x86-64-sse4_2-intel.d
+2009480df2cc1bd49fa9fff12d5a0ab6 gas/testsuite/gas/i386/x86-64-sse4_2.d
+1c30ca3e112d8d50e21868014efe7506 gas/testsuite/gas/i386/x86-64-sse4_2.s
+f7de2a101d07bd6d5badf4f04a54c089 gas/testsuite/gas/i386/x86-64-ssse3.d
+e626aa86fe2d9cd3c1458fcc2326bcb2 gas/testsuite/gas/i386/x86-64-ssse3.s
+bd47dfa2daaf66b78a3540dc95438c2e gas/testsuite/gas/i386/x86-64-stack-intel.d
+45fe23990bf360d603c91628892aae33 gas/testsuite/gas/i386/x86-64-stack-suffix.d
+9a320248e1c4cf156ebd2eeb4c0ff190 gas/testsuite/gas/i386/x86-64-stack.d
+c1424bba614929e99fa1271fa973035f gas/testsuite/gas/i386/x86-64-stack.s
+b35fdffa4ab966fce27f87ecee3b1c00 gas/testsuite/gas/i386/x86-64-tbm-intel.d
+908bdffcf04087bb53d54486dbb8b742 gas/testsuite/gas/i386/x86-64-tbm.d
+e3f8369e2b62c2e731f3dd732dbf2980 gas/testsuite/gas/i386/x86-64-tbm.s
+3d44f651eec84e5de4399aeda9d26bf8 gas/testsuite/gas/i386/x86-64-unwind.d
+8d64d6d63476e651d51e8675349b18aa gas/testsuite/gas/i386/x86-64-unwind.s
+2c6b752faa6d31fd1e4f1e37d70413d1 gas/testsuite/gas/i386/x86-64-vmx.d
+993cb43ba3bb5e400fb34ce7bdec1d05 gas/testsuite/gas/i386/x86-64-vmx.s
+cfe756b9e9133a917d6cde5925f527be gas/testsuite/gas/i386/x86-64-w64-pcrel.d
+42b0672374dd1e60e36754c4e68fdfb7 gas/testsuite/gas/i386/x86-64-xop.d
+21ccad8f83a34690bde5fb58bdeaa8a3 gas/testsuite/gas/i386/x86-64-xop.s
+6864f95fc602a7e62a8547affd4aa13c gas/testsuite/gas/i386/x86-64-xsave-intel.d
+96aa878f6092e2a2f81cd569d19ac20d gas/testsuite/gas/i386/x86-64-xsave.d
+38ccf97adabd0fab3e1b0b9c0151f80c gas/testsuite/gas/i386/x86-64-xsave.s
+dcb5db4be19f6dac9e7592a8ca287271 gas/testsuite/gas/i386/x86_64.d
+e5f0729957b1ccfe5d1e53627f1ec8c4 gas/testsuite/gas/i386/x86_64.s
+ae4b2b29255e275badc694c9e2a5277a gas/testsuite/gas/i386/xop.d
+699962e500ee74d43bb5c8a3c5db23b9 gas/testsuite/gas/i386/xop.s
+5fcc3e737c2469401a12f25e608f6146 gas/testsuite/gas/i386/xsave-intel.d
+fcca61b167124ff4360bed7b09de35d2 gas/testsuite/gas/i386/xsave.d
+4c4aebcb24bf60e92bdc02ebee85c740 gas/testsuite/gas/i386/xsave.s
+f5ad41f835f6e2d3ba8795a4f7dec86f gas/testsuite/gas/i860/bitwise.d
+2b774a4f549067873f0af07fb9de56a3 gas/testsuite/gas/i860/bitwise.s
+9828012860f1606656f7f365218dc2cf gas/testsuite/gas/i860/branch.d
+f16bd2426aa90da0f32896bd84435eb5 gas/testsuite/gas/i860/branch.s
+7000f335c5d097a92ed25701d3fc6a18 gas/testsuite/gas/i860/bte.d
+117061acc7f7acf1f514a9cd358c9db8 gas/testsuite/gas/i860/bte.s
+0903b2b332fbbbe09878c4169fb4ab10 gas/testsuite/gas/i860/dir-align01.d
+6ae106da9f3a85291506ce9fe6e4e3c6 gas/testsuite/gas/i860/dir-align01.s
+f26e1261c99d19590548ae75623cb7f6 gas/testsuite/gas/i860/dir-intel01.d
+6cc636d75ee8165da9ed09918e3199bf gas/testsuite/gas/i860/dir-intel01.s
+79272e9295d72e86387d67378781c814 gas/testsuite/gas/i860/dir-intel02.d
+cee730e93b3c40620622b831abb15929 gas/testsuite/gas/i860/dir-intel02.s
+df4b2e4160f4fedf91c0e8fde37b0b21 gas/testsuite/gas/i860/dir-intel03-err.l
+5c611081998a4ada6f2e9b03043f2716 gas/testsuite/gas/i860/dir-intel03-err.s
+c6c428e83407fbf5793d5af32241f564 gas/testsuite/gas/i860/dual01.d
+37fd18f754ecc8344934c71f1392633e gas/testsuite/gas/i860/dual01.s
+5596264e96a68a24c9be980a60a3a117 gas/testsuite/gas/i860/dual02-err.l
+69f9c17232090c9ff45f1cd69c9d2001 gas/testsuite/gas/i860/dual02-err.s
+19afb4e2d3c77d070c87e221647ac664 gas/testsuite/gas/i860/dual03.d
+fb14098c629da7cb9313e06eed37d807 gas/testsuite/gas/i860/dual03.s
+cadcac169600d1350fcdfcb64b4ad27a gas/testsuite/gas/i860/fldst01.d
+97321626bfe0c85cdcf948a32397ebb7 gas/testsuite/gas/i860/fldst01.s
+686a13e797f9b6a7fe7ca9f36fd9fc3b gas/testsuite/gas/i860/fldst02.d
+79878081a47eef91e7f41ae24f200330 gas/testsuite/gas/i860/fldst02.s
+436e4b4af356ae63d02cd500c1f745bb gas/testsuite/gas/i860/fldst03.d
+02832b2cbfa7efa88955cdf1542081c3 gas/testsuite/gas/i860/fldst03.s
+45eca40b3d986f598c4ebf568268fb66 gas/testsuite/gas/i860/fldst04.d
+fcff1e7676d8160f47d068e2db68819e gas/testsuite/gas/i860/fldst04.s
+8b2b509a36427ef1cbf6e25e76ea6b6f gas/testsuite/gas/i860/fldst05.d
+dd6941ef803c746c2c77da5da56b34f8 gas/testsuite/gas/i860/fldst05.s
+2caff1d8ced86429ab5a617b991a3a0f gas/testsuite/gas/i860/fldst06.d
+54597c78b75cee621a2e62fd38a99dff gas/testsuite/gas/i860/fldst06.s
+cf7920c9b2405c650856f4aa0374cf25 gas/testsuite/gas/i860/fldst07.d
+eda94c6341d1d271fd45fc529b88d442 gas/testsuite/gas/i860/fldst07.s
+d4ba4327e97b9e951f005588457caaa5 gas/testsuite/gas/i860/fldst08.d
+267d98a7ae79aa3538d5b37255ab9733 gas/testsuite/gas/i860/fldst08.s
+879345c052279235a62534050fe6a506 gas/testsuite/gas/i860/float01.d
+6f259108ec9a42a90991b6de65b6f308 gas/testsuite/gas/i860/float01.s
+bce16a53ba73f7e46f1800374d1876db gas/testsuite/gas/i860/float02.d
+da9e09037beef0d229289b7719f1d730 gas/testsuite/gas/i860/float02.s
+c6c100da2e2965efaefc00a111af4185 gas/testsuite/gas/i860/float03.d
+07480a0c8c5c69b52a630f94bfbaf582 gas/testsuite/gas/i860/float03.s
+96c3c2fc58836a46fd9a35577da09994 gas/testsuite/gas/i860/float04.d
+4b14215cdbc0a5bfc8c42ab39397164b gas/testsuite/gas/i860/float04.s
+8776893d98fcb46514ef9f34fa7f0e9c gas/testsuite/gas/i860/form.d
+25dc56533faa254aa5b6b15fd9469565 gas/testsuite/gas/i860/form.s
+8e37d5473b134e283b76beeb06d48e2f gas/testsuite/gas/i860/i860.exp
+8369d3b3ff0084e16260cbfcebe66ebe gas/testsuite/gas/i860/iarith.d
+8309075608d50e06ca4a159b068211f2 gas/testsuite/gas/i860/iarith.s
+ef617fda8f52baa1f59cc4b57469dc8c gas/testsuite/gas/i860/ldst01.d
+2f8d0b96710ed27d3ebccc9a7c32de92 gas/testsuite/gas/i860/ldst01.s
+9f84376dfdea002935eb41e0ab41e6b3 gas/testsuite/gas/i860/ldst02.d
+3bbfa7720f4dbd2b5d08f284efc9d841 gas/testsuite/gas/i860/ldst02.s
+24948145c80649312afc2f09cba29a6e gas/testsuite/gas/i860/ldst03.d
+f2d621ee2a971085de0750d7aec9ec94 gas/testsuite/gas/i860/ldst03.s
+27be67914f6cb6832442727bbd91a840 gas/testsuite/gas/i860/ldst04.d
+f24b9098dbb2311dad448ba672986a85 gas/testsuite/gas/i860/ldst04.s
+9abbb1f8a49b98aba5cfa073d915217e gas/testsuite/gas/i860/ldst05.d
+02bdbd530696cb9509284c97ba6eb99a gas/testsuite/gas/i860/ldst05.s
+e125965d3c2c889c9753706b7b311b64 gas/testsuite/gas/i860/ldst06.d
+a2f062ff5a39ec0fafeaeffe8f492779 gas/testsuite/gas/i860/ldst06.s
+bacafd03fff48001eeaadf13b60d375f gas/testsuite/gas/i860/pfam.d
+5440ae594422d037458d87a70fb7708f gas/testsuite/gas/i860/pfam.s
+389acd95b74da50abf697d8448f75a90 gas/testsuite/gas/i860/pfmam.d
+3f85e5e49191d2039cd11675284eca8c gas/testsuite/gas/i860/pfmam.s
+8a1d5790ec258d8d574e7c0b948f73d9 gas/testsuite/gas/i860/pfmsm.d
+5ba78d272a0c2d22de071e03aa1b1aaf gas/testsuite/gas/i860/pfmsm.s
+39851734f26e9eeb49b7548995830e72 gas/testsuite/gas/i860/pfsm.d
+2b691612d72dc03e06b426d719622dc8 gas/testsuite/gas/i860/pfsm.s
+a81a57c63b7130129d02ba0692659392 gas/testsuite/gas/i860/pseudo-ops01.d
+d2572c9521bb99521ffb95f2caecc51f gas/testsuite/gas/i860/pseudo-ops01.s
+212987111270138069139a2e478d5bc4 gas/testsuite/gas/i860/README.i860
+8f354a029a247621b668ba706c48949f gas/testsuite/gas/i860/regress01.d
+9653c34da92fa639fc96e13206273aaa gas/testsuite/gas/i860/regress01.s
+7097eb47e3d70de1cf45f2eb94283dad gas/testsuite/gas/i860/shift.d
+24e2e5de98632c8c8b900d1592709397 gas/testsuite/gas/i860/shift.s
+d8ac2dcdfd994b9933eae7794a6a1562 gas/testsuite/gas/i860/simd.d
+369369bca7c9a1f488807234c1271ae7 gas/testsuite/gas/i860/simd.s
+94bfbda029352e2eb43710295a07c02d gas/testsuite/gas/i860/system.d
+b0e13677168237ff8300437ed101e4b4 gas/testsuite/gas/i860/system.s
+8867d533598bda8b5fecaa99354d1d98 gas/testsuite/gas/i860/xp.d
+ade8add590ef6c12e6b3ad21e52cc7c0 gas/testsuite/gas/i860/xp.s
+408b32d880d4fbd661ec530b1bbcde97 gas/testsuite/gas/ia64/alias-ilp32.d
+aa4bb141211ac2dab2144ab4cc61cf95 gas/testsuite/gas/ia64/alias.d
+03b362d40d896c73b7ca83e014e65f54 gas/testsuite/gas/ia64/alias.s
+5fed37c2d4517d6ccdb0b8214e9fbe89 gas/testsuite/gas/ia64/align.d
+2b6aaf64f25203ee6d42b883877b3d29 gas/testsuite/gas/ia64/align.s
+56482f48ecf5d0871055f1032761c296 gas/testsuite/gas/ia64/alloc.l
+465b7817b7039151414335b624f87b50 gas/testsuite/gas/ia64/alloc.s
+e455b8bd8879fe91fbb7e9a9054396c4 gas/testsuite/gas/ia64/bundling.d
+6e8b4d46ad5bc8cf77ae32da0543a189 gas/testsuite/gas/ia64/bundling.s
+5db8eca540fe74cf7a3c2987a4eb9854 gas/testsuite/gas/ia64/dependency-1.d
+1469dfc61e75bd0ff0848df2a3d0491f gas/testsuite/gas/ia64/dependency-1.s
+5eb8214dbc6a81515361f587403fb112 gas/testsuite/gas/ia64/dv-branch.d
+ec058dd65d1af91fe84f41b725857462 gas/testsuite/gas/ia64/dv-branch.s
+956561267da937b1be0fada7c6ea25c7 gas/testsuite/gas/ia64/dv-entry-err.l
+e635d21d0f94975c7df306096506d41b gas/testsuite/gas/ia64/dv-entry-err.s
+66c561db454fffc01897c1dc5d51cd8a gas/testsuite/gas/ia64/dv-imply.d
+a4c835f4336ab0d7bea5c1251fe02f94 gas/testsuite/gas/ia64/dv-imply.s
+719d55382abbfde4dad96f2ab530444a gas/testsuite/gas/ia64/dv-mutex-err.l
+8af39c8ed0db1166ee73bcc08b4f2c16 gas/testsuite/gas/ia64/dv-mutex-err.s
+aa623148bfa19343f426f1d7594acc0b gas/testsuite/gas/ia64/dv-mutex.d
+ae4b264474b1d1488371dfba05a807ff gas/testsuite/gas/ia64/dv-mutex.s
+502fa49f2e1cb1d1c02b4d5a4d9359a4 gas/testsuite/gas/ia64/dv-raw-err.l
+5b0b0943c41ffdf3d4352f4f2e0a1810 gas/testsuite/gas/ia64/dv-raw-err.s
+98c0c365a1901745072e5d9c957e3793 gas/testsuite/gas/ia64/dv-safe.d
+c06a2d45e380eacc79be2946865839ea gas/testsuite/gas/ia64/dv-safe.s
+cf844a278adf50073cdefda6d28b307d gas/testsuite/gas/ia64/dv-srlz.d
+fcb5ba635bb6c1bf11217572aed8c194 gas/testsuite/gas/ia64/dv-srlz.s
+47a1c9e8c8d646cb1276022156938aef gas/testsuite/gas/ia64/dv-war-err.l
+96d62a881175a15f9d0eb1464592de82 gas/testsuite/gas/ia64/dv-war-err.s
+219dc898bb30c667cc0adfdf37d0434e gas/testsuite/gas/ia64/dv-waw-err.l
+eca51ba28eea7ec14dcf4b65e57b93e9 gas/testsuite/gas/ia64/dv-waw-err.s
+4702e0589d4ecfea81d623654726c865 gas/testsuite/gas/ia64/fixup-dump.pl
+043c181b05ead62073d60fe4f7b5bdef gas/testsuite/gas/ia64/forward.d
+c8d38e32fb63d2231618bb65b2d95a44 gas/testsuite/gas/ia64/forward.s
+a50ca06a252db2759c2aa74a2cf8d1dc gas/testsuite/gas/ia64/global.d
+3abe04e058c73f3963c6957c842aa0c7 gas/testsuite/gas/ia64/global.s
+e081822a4d9a8a6577be11efaf490dd7 gas/testsuite/gas/ia64/group-1.d
+ecd81ce660f62c1ab3b2b1b89f5e37e6 gas/testsuite/gas/ia64/group-1.s
+4fa99ed51f2e6df4be16ab164d3643c5 gas/testsuite/gas/ia64/group-2.d
+23fd69f5c2f9e4329d761e82165d2b1c gas/testsuite/gas/ia64/group-2.s
+ae4cfc6a16703b6c2586c99215ad32e2 gas/testsuite/gas/ia64/hint.b-err.l
+bc38d9bf826a3c9d36e322b0fdc4b1ce gas/testsuite/gas/ia64/hint.b-err.s
+53d2625d7ca78e2bf4b13272b30ae1e2 gas/testsuite/gas/ia64/hint.b-warn.l
+bc38d9bf826a3c9d36e322b0fdc4b1ce gas/testsuite/gas/ia64/hint.b-warn.s
+9a5848ee1ab36f03c1079eb789685e4b gas/testsuite/gas/ia64/ia64.exp
+f2da605500359eb8d432dc726bffd0b3 gas/testsuite/gas/ia64/index.l
+0939d8b0fe59c828407681a0a32a2274 gas/testsuite/gas/ia64/index.s
+daae8c66fb42361d7a68bcacc7b61034 gas/testsuite/gas/ia64/invalid-ar.l
+60080346d8ab041cc302938e65f29808 gas/testsuite/gas/ia64/invalid-ar.s
+f4d82e4423f8b9465e9276e22157086a gas/testsuite/gas/ia64/label.l
+f87ee9f9d1ba626560bf804ba13165f1 gas/testsuite/gas/ia64/label.s
+ae7aa2fe2ba69fd12fb73ed958f135d1 gas/testsuite/gas/ia64/last.l
+88f1e3a9ef6fa419edb1f9bcae711a4b gas/testsuite/gas/ia64/last.s
+d45e2dd3f78812fc115b032e13df93bf gas/testsuite/gas/ia64/ldxmov-1.d
+9d82fbaec119beb2b468c79b0c133608 gas/testsuite/gas/ia64/ldxmov-1.s
+c7d19ca874ed086c03d6b51fcf4e1840 gas/testsuite/gas/ia64/ldxmov-2.l
+277c0508ade20f90c962e8cf59208830 gas/testsuite/gas/ia64/ldxmov-2.s
+393a02369db1631378b57d74a1f99193 gas/testsuite/gas/ia64/ltoff22x-1.d
+aca1c86bea7050f880ec98f303f05f10 gas/testsuite/gas/ia64/ltoff22x-1.s
+3e6d619d427dfee32e76df8e213271b6 gas/testsuite/gas/ia64/ltoff22x-2.d
+64e1de175dcb23ad6dc5580e687f7b7d gas/testsuite/gas/ia64/ltoff22x-2.s
+47c64f668a7d8b584e9d2179cf9956da gas/testsuite/gas/ia64/ltoff22x-3.d
+917b987097cafc1ef21e048eb58822c9 gas/testsuite/gas/ia64/ltoff22x-3.s
+1a6d95bfe578be2a2f8b98f63ae32754 gas/testsuite/gas/ia64/ltoff22x-4.d
+fe9dcfc6429f362540004b9bd1144253 gas/testsuite/gas/ia64/ltoff22x-4.s
+77d6d217c1d60250f98082dce2352b31 gas/testsuite/gas/ia64/ltoff22x-5.d
+b8638cad333d86872c59a42fb825ceb0 gas/testsuite/gas/ia64/ltoff22x-5.s
+77e40f73ba5abae861ad0694f63c1590 gas/testsuite/gas/ia64/mov-ar.d
+26a8d20f240ff4a568945caab6f453f5 gas/testsuite/gas/ia64/mov-ar.s
+42f96f97f58a5c2aabc914e6b56e95de gas/testsuite/gas/ia64/no-fit.l
+147999e5afd9e1f4fcd30dbcad182685 gas/testsuite/gas/ia64/no-fit.s
+ede15f90446f84059e1a9ec36b9b66f6 gas/testsuite/gas/ia64/nop_x.d
+3ac96c6eb59cc7e0ba11f3d1ab36d4a5 gas/testsuite/gas/ia64/nop_x.s
+47072d4d678212573562867320a4b168 gas/testsuite/gas/ia64/nostkreg.d
+8936ee3120b0746e5f3d8f7ac460e9db gas/testsuite/gas/ia64/nostkreg.s
+5cf1f05daff9171dcf5275963c6acde0 gas/testsuite/gas/ia64/opc-a-err.l
+c10f248c93a66cf00810e181bcf47859 gas/testsuite/gas/ia64/opc-a-err.s
+a8b761b96823d4971f5532faf0b6e808 gas/testsuite/gas/ia64/opc-a.d
+7a4b4b8b83d010b15200291b7428d900 gas/testsuite/gas/ia64/opc-a.pl
+25a4e13b65c5c563854c68b27850ec27 gas/testsuite/gas/ia64/opc-a.s
+26a9c024547dfe3267afa0149e4683c5 gas/testsuite/gas/ia64/opc-b.d
+a6e1c6d4094099abc90c4eddf392cf90 gas/testsuite/gas/ia64/opc-b.pl
+28d8e6ea8a3ec4beed93c2365ca7497d gas/testsuite/gas/ia64/opc-b.s
+c26da9c6f5e6a73d1b146d094ebbb496 gas/testsuite/gas/ia64/opc-f.d
+e44f587f12c4e939d44570b92b5ca82b gas/testsuite/gas/ia64/opc-f.pl
+5e132c425eaf71cbab3e7401b4750bf2 gas/testsuite/gas/ia64/opc-f.s
+b9edfed480c2b5f01e2e5ae0cb76be81 gas/testsuite/gas/ia64/opc-i.d
+6df89ea375d396efe8cd150381479c12 gas/testsuite/gas/ia64/opc-i.pl
+15969b5f65383a6c5490609cf4882545 gas/testsuite/gas/ia64/opc-i.s
+0a8ec8b04449de207537d0c935e610e7 gas/testsuite/gas/ia64/opc-m.d
+85878e0564576b3b7bafb3eb82660f7d gas/testsuite/gas/ia64/opc-m.pl
+8ee1765ede253208db01ce9942f5e248 gas/testsuite/gas/ia64/opc-m.s
+7e3531997644b2ced7b435b593274057 gas/testsuite/gas/ia64/opc-x.d
+254e69bf1897bb4265e21eb488dde3c4 gas/testsuite/gas/ia64/opc-x.s
+e493b86e79cd1b7840768ee7dd17d09b gas/testsuite/gas/ia64/operand-or.d
+c80613e26ec1eb58b400ecff241c7888 gas/testsuite/gas/ia64/operand-or.s
+b549252aed96485cbe78566d3933da97 gas/testsuite/gas/ia64/operands.l
+324983368e3aa0fb1f6c43d2889be129 gas/testsuite/gas/ia64/operands.s
+2e9a0176afdb932248384cfd21bf0e02 gas/testsuite/gas/ia64/order.d
+8a919a8db6e6db348bb9ee3988ad4793 gas/testsuite/gas/ia64/order.s
+318b8c28644b4dc8b5a6a3b5ad8c2235 gas/testsuite/gas/ia64/pcrel.d
+2802f15229a6741bef0e11984a2ad74e gas/testsuite/gas/ia64/pcrel.s
+8234b13102e2b89a9b8e480032ba3644 gas/testsuite/gas/ia64/pound.l
+eb163238d1c14067c10cfbdad2862823 gas/testsuite/gas/ia64/pound.s
+31540ad89afaad27718f40ab9f0ec3fd gas/testsuite/gas/ia64/pr13167.d
+8e0b9e244acda82824979cddb190549a gas/testsuite/gas/ia64/pr13167.s
+2d77a6a88ef14d7c6a371b09dea5e828 gas/testsuite/gas/ia64/pred-rel.s
+9d7a9d7f3a6b43c525af6c8c836cb80e gas/testsuite/gas/ia64/proc.l
+68da861b5a85e3dda838bfae4f4268f1 gas/testsuite/gas/ia64/proc.s
+c601f808ca38269043ad1225cb6627ee gas/testsuite/gas/ia64/pseudo.d
+8faa98b105a425b150f9a6d3c14b46b7 gas/testsuite/gas/ia64/pseudo.s
+2a9394f919186edb77a43fc7accd0490 gas/testsuite/gas/ia64/radix.l
+5e58119bdddd1664dd77c7b8b1f5ca9c gas/testsuite/gas/ia64/radix.s
+2d512ebbb3a824bfd3015573ceaf138a gas/testsuite/gas/ia64/real.d
+11b022573ee9135d09a4a6415e44bc9a gas/testsuite/gas/ia64/real.s
+a59ab6cf70a3161c725bfaefa0746827 gas/testsuite/gas/ia64/reg-err.l
+3e5336a037f53d43a195dd49a885ec59 gas/testsuite/gas/ia64/reg-err.s
+2c784ab89aa2aecdd47ca522eaeaaf1c gas/testsuite/gas/ia64/regs.d
+5746998fdbaa367bda22d9fa0a7a0d5b gas/testsuite/gas/ia64/regs.pl
+f5f8e77b8ef2296ae6a175af689b4291 gas/testsuite/gas/ia64/regs.s
+def1a1e264aabe3865f5b91719ac6bb0 gas/testsuite/gas/ia64/regval.l
+3aec93f48ade47b1ba22328aa49a521d gas/testsuite/gas/ia64/regval.s
+e1fa07919615f734c4e8ffadc711b9df gas/testsuite/gas/ia64/reloc-bad.l
+ebed991bbb8cac30da10846599d0abf8 gas/testsuite/gas/ia64/reloc-bad.s
+2936fd2043217d53a51e8f059e9a217b gas/testsuite/gas/ia64/reloc-uw-ilp32.d
+a701045f5a463b1a4e625df26718524b gas/testsuite/gas/ia64/reloc-uw.d
+f6a87b3768a5c169d53a30d9b37ef686 gas/testsuite/gas/ia64/reloc-uw.s
+e4ee7f44af64e924aa5272bea9c4fed1 gas/testsuite/gas/ia64/reloc.d
+a0141232635833d498f3c634ce9e040a gas/testsuite/gas/ia64/reloc.s
+f624e9e16c9ea00f80d7f7f8ca3806f3 gas/testsuite/gas/ia64/rotX.l
+84d7e53abab60346dc101441409d2dc3 gas/testsuite/gas/ia64/rotX.s
+05b7e3e645abcd447134fc1679135743 gas/testsuite/gas/ia64/secname-ilp32.d
+d5f6f52389d039016fb3c421f106f981 gas/testsuite/gas/ia64/secname.d
+67e890795ba55b2d84251e903e037f86 gas/testsuite/gas/ia64/secname.s
+d273dc8aa1c413904f1e9bb44b22dcb1 gas/testsuite/gas/ia64/slot2.l
+8515f2db3d0906171c4864bfb4529d63 gas/testsuite/gas/ia64/slot2.s
+d5c8aaa0ac46df82f4b885dcc7db9b77 gas/testsuite/gas/ia64/slotcount.d
+bfc2afe48b96d5505933256ac502852f gas/testsuite/gas/ia64/slotcount.s
+89ba4b7622e2c68e6d20a22f99cf8b8c gas/testsuite/gas/ia64/strange.d
+a5d6bfa2c1f6ab988b6d48dc46777280 gas/testsuite/gas/ia64/strange.s
+c3e6542e6b17a77846eacecd2c05178b gas/testsuite/gas/ia64/tls.d
+97ecd7035c79cd4143cc804ffbab35ea gas/testsuite/gas/ia64/tls.s
+2fbb049aecd48365579d9cb782030908 gas/testsuite/gas/ia64/unwind-bad.l
+72b9d9dd8acfcca2b9fa80d9c3c0e3eb gas/testsuite/gas/ia64/unwind-bad.s
+3f56f1eee93d0c7aa2ba06039255ff07 gas/testsuite/gas/ia64/unwind-err.l
+099da3b00ff767938efd408bd9e4494f gas/testsuite/gas/ia64/unwind-err.s
+0606c4b397212803e71345845703cb26 gas/testsuite/gas/ia64/unwind-ilp32.d
+b473c7b739dba295e4ac12c1e812dd8f gas/testsuite/gas/ia64/unwind-ok.d
+b30847e1866f172dd9b6b9123228a836 gas/testsuite/gas/ia64/unwind-ok.s
+cdde4f4669d489077d31d8f53c0d743e gas/testsuite/gas/ia64/unwind.d
+54b7e8d3c7762c7c3c95272c2d0c0b8a gas/testsuite/gas/ia64/unwind.s
+d6b0de0e58c262ebb157991b42cef765 gas/testsuite/gas/ia64/xdata-ilp32.d
+2ee10569dbfbd5553f167899e75e454a gas/testsuite/gas/ia64/xdata.d
+0efee14c792c025001d68ffe3c09f7a9 gas/testsuite/gas/ia64/xdata.s
+3cd9cc915e08c2ea2792b9fc2ca95ab5 gas/testsuite/gas/ieee-fp/x930509a.exp
+b0509b0492fd2fc8448b011ae03a41b8 gas/testsuite/gas/ieee-fp/x930509a.s
+a93dccf731a42c0d3faf11b8d3b96979 gas/testsuite/gas/iq2000/allinsn.d
+5fa4d4e98afb53abc8b3e453cf923c5c gas/testsuite/gas/iq2000/allinsn.exp
+206095bc34484f0f35c4d8624850c5a8 gas/testsuite/gas/iq2000/allinsn.s
+d3cfbfc4a609d152b16632b7a0731679 gas/testsuite/gas/iq2000/hazard0.s
+4090ba0aef5f9561bae85399b661dd03 gas/testsuite/gas/iq2000/hazard1.s
+8096370e741ff2148ba3dbc04d7f6f65 gas/testsuite/gas/iq2000/hazard2.s
+d42820e6042ae5abe8607d7f1123267c gas/testsuite/gas/iq2000/hazard3.s
+5453db52ad62f96abe48e513f0a1de98 gas/testsuite/gas/iq2000/hazard4.s
+e1977723de2aa2900402d9d49f0fc3a8 gas/testsuite/gas/iq2000/hazard5.s
+a3ef8bdc261d09c6e6e47f3bd7635234 gas/testsuite/gas/iq2000/load-hazards.exp
+d2ca68442ebbf5c76394139ece449352 gas/testsuite/gas/iq2000/nohazard.s
+a0dd34dfd76fa982804ba071ac664ca1 gas/testsuite/gas/iq2000/noyield.s
+09bcfc91a01a1c522b87fa6bdfac41cb gas/testsuite/gas/iq2000/odd-ldw.exp
+ab2ec0875f6420b97c4a235c0f277a65 gas/testsuite/gas/iq2000/odd-sdw.exp
+e3867e77791054668d1326bec538f841 gas/testsuite/gas/iq2000/oddldw.s
+da5573533b31cbcbe3f4ac6bcdc6ef1b gas/testsuite/gas/iq2000/oddsdw.s
+8de426a4930bc007a732d0bd48044691 gas/testsuite/gas/iq2000/yield.exp
+d69a091035a2f9e4c062c985c1c3233c gas/testsuite/gas/iq2000/yield0.s
+1debd376afeb9275adfb489a8339485e gas/testsuite/gas/iq2000/yield1.s
+4966d212d153760af9a23c515cb72b7e gas/testsuite/gas/iq2000/yield2.s
+fbac7003d0b47cb3f5a6983acba7475c gas/testsuite/gas/lm32/all.exp
+ff4502aa7dc77cf08312db254ad91645 gas/testsuite/gas/lm32/csr.d
+417489f15a37a5755508e5e2673ae67e gas/testsuite/gas/lm32/csr.s
+ed4c78d2b7f6be3b4d8e1e25d53ae2a1 gas/testsuite/gas/lm32/insn.d
+3ae64ee4b2c7163e40b5da7d4e5be673 gas/testsuite/gas/lm32/insn.s
+1dda15251a9f7565eae5b07a6ca2d8f0 gas/testsuite/gas/lns/lns-big-delta.d
+61f9144503868f8a70263764471ecb48 gas/testsuite/gas/lns/lns-big-delta.s
+c94a65a88ad101c3fb42f9f426c0b902 gas/testsuite/gas/lns/lns-common-1-alt.d
+1c6a26bb6f6b79087960114f78b1e053 gas/testsuite/gas/lns/lns-common-1-ia64.s
+cd70f28a0ac0310abfd7bff12d708541 gas/testsuite/gas/lns/lns-common-1.d
+1383f4115f40b84bb075557279ce8e14 gas/testsuite/gas/lns/lns-common-1.s
+a8dbe4ac283be70b5d876b90dca2424d gas/testsuite/gas/lns/lns-diag-1.l
+be4c80cf566add41e4c6e4f89b90a741 gas/testsuite/gas/lns/lns-diag-1.s
+954850238a93c595a847c807deb9b4cd gas/testsuite/gas/lns/lns-duplicate.d
+8e96abf784afc033cf7995d6681b2e91 gas/testsuite/gas/lns/lns-duplicate.s
+d53ef790c02dbff0e065b5e31ec07b78 gas/testsuite/gas/lns/lns.exp
+dcba3dd13f89544c92ccc86e5dcccdeb gas/testsuite/gas/m32r/allinsn.d
+239bb6ea0e35bbe2e8a5939edab2a2cb gas/testsuite/gas/m32r/allinsn.exp
+5f9b6e2b9934e8a02576ba496d16ab72 gas/testsuite/gas/m32r/allinsn.s
+418ea1f8c144280c2bfa54387e8beba0 gas/testsuite/gas/m32r/error.exp
+d71cb8f6eee3bbdd0ccecaaca513831a gas/testsuite/gas/m32r/fslot.d
+da6bcd9a061b6fdd7a4ee5b2aec6811a gas/testsuite/gas/m32r/fslot.s
+da48ccf2513f4723fced3d98ee902eee gas/testsuite/gas/m32r/fslotx.d
+c81e23eb3020f45236c4ef7e98a14008 gas/testsuite/gas/m32r/fslotx.s
+e0a4e41d1665c5e0c4ca13ec9b548568 gas/testsuite/gas/m32r/high-1.d
+0c257c8a3667fa667e99bb3cb9aff5a7 gas/testsuite/gas/m32r/high-1.s
+873accfff909b6aac6b9a2e8cf961856 gas/testsuite/gas/m32r/interfere.s
+ab5eeb92f7ceecff8accd6105563fb00 gas/testsuite/gas/m32r/m32r.exp
+f8356fa33e1aa40f0f48046e766c07e4 gas/testsuite/gas/m32r/m32r2.d
+cb569d8cd9b19f9c80158a7dcc9641c0 gas/testsuite/gas/m32r/m32r2.exp
+05c2334e103e8a64c1d354b608d9c26f gas/testsuite/gas/m32r/m32r2.s
+925faf7606bb992896b5d0a3fedac174 gas/testsuite/gas/m32r/m32rx.d
+778e305ed7747652af13150f315591a9 gas/testsuite/gas/m32r/m32rx.exp
+18de980a0f79928c1374c957b0ada6a9 gas/testsuite/gas/m32r/m32rx.s
+c0b5f95ee4eec971ea74dc81435baec8 gas/testsuite/gas/m32r/outofrange.s
+b6ca1e88ef4cd2485fbd0985ecbd4639 gas/testsuite/gas/m32r/parallel-2.d
+f7243334f19988521763b86ec05466af gas/testsuite/gas/m32r/parallel-2.s
+1a923d7008ef300fe48e715181d60b38 gas/testsuite/gas/m32r/parallel.s
+aa8f2ce59d396c44db841950b4ccbc8e gas/testsuite/gas/m32r/pic.d
+12fb586950543782bfbb2aebb34d2d1d gas/testsuite/gas/m32r/pic.exp
+a7a53dd0986080053acfd273280e0cac gas/testsuite/gas/m32r/pic.s
+5fa25afca5b586459bb9f769c043a10a gas/testsuite/gas/m32r/pic2.d
+185cde387728a8a52cc89c0f2c62a88b gas/testsuite/gas/m32r/pic2.s
+9aefae09c6bf69a68813bfe3b9d522c3 gas/testsuite/gas/m32r/rel32-err.s
+ae60ca76e0212930ab00672ebfc161ef gas/testsuite/gas/m32r/rel32-pic.d
+81e0a14fcf378b9846014f8cdbeeead1 gas/testsuite/gas/m32r/rel32-pic.s
+2a9f12f6cefbb953d8484d4ad6a51eee gas/testsuite/gas/m32r/rel32.d
+7dde0592afcf5178f27becd62452ca56 gas/testsuite/gas/m32r/rel32.exp
+81e0a14fcf378b9846014f8cdbeeead1 gas/testsuite/gas/m32r/rel32.s
+e35cfe164c66c6df8f9937607e1804f2 gas/testsuite/gas/m32r/rela-1.d
+91da9eadacb178cf7af3b6367b27f076 gas/testsuite/gas/m32r/rela-1.s
+e458c3261d10b7430278bedfbaf77b57 gas/testsuite/gas/m32r/relax-1.d
+ee56272ade0ca1ed891d0bcdc81d1173 gas/testsuite/gas/m32r/relax-1.s
+ffadebffc2057e150da0f56aa0f6d511 gas/testsuite/gas/m32r/relax-2.d
+dfd4ad2ea1d8b29e222e48a671c648e1 gas/testsuite/gas/m32r/relax-2.s
+da3c17f4b7848e845a19d80fa48898ec gas/testsuite/gas/m32r/seth.d
+a977285fa6cb4bb433ff8d661160802b gas/testsuite/gas/m32r/seth.s
+5eeabc5a49a2b873a05fdddf449913df gas/testsuite/gas/m32r/signed-relocs.d
+0d78c451dfb7d578f7b5c1734ee03f3b gas/testsuite/gas/m32r/signed-relocs.s
+65a3c2ab71799199c7a45459a9a87b1a gas/testsuite/gas/m32r/uppercase.d
+3ad7dc32e323605aaf71cc84e39717df gas/testsuite/gas/m32r/uppercase.s
+d21d472754ca0f699e8faf8c95175ec1 gas/testsuite/gas/m32r/wrongsize.s
+34e89680b972896b988178cc4a253dfa gas/testsuite/gas/m68hc11/abi-m68hc11-16-32.d
+5c60b03593e7a4936417e9cdd732a004 gas/testsuite/gas/m68hc11/abi-m68hc11-16-64.d
+246ec931f4cac7abf9be7788326737e8 gas/testsuite/gas/m68hc11/abi-m68hc11-32-32.d
+438a68daa3fbd0dabbeffcb033a9cc6b gas/testsuite/gas/m68hc11/abi-m68hc11-32-64.d
+1b0ca1676265b3dd66785e9656ddd199 gas/testsuite/gas/m68hc11/abi.s
+2ab706a9850050b395067c61297153d2 gas/testsuite/gas/m68hc11/all_insns.d
+57022ccbd6cef54a3a8ece7847d6569f gas/testsuite/gas/m68hc11/all_insns.s
+7f32a49a34b114c05a55da1eeafb4d3b gas/testsuite/gas/m68hc11/branchs12.d
+17a5e088710208e31860e64eda08f969 gas/testsuite/gas/m68hc11/branchs12.s
+7e59a46e650941fdb70180d8251a289d gas/testsuite/gas/m68hc11/bug-1825.d
+9cb931f3ec3500c72620a735c8e03c5b gas/testsuite/gas/m68hc11/bug-1825.s
+ae4a96f35d63157d5133ac82854449eb gas/testsuite/gas/m68hc11/indexed12.d
+0d2b7ea9c6ed562cfc3566b68729e78b gas/testsuite/gas/m68hc11/indexed12.s
+9cf492f0689b8eb9d820ec16d72514a4 gas/testsuite/gas/m68hc11/insns-dwarf2.d
+7e1438d4bf83a2c1102470d47fc56846 gas/testsuite/gas/m68hc11/insns.d
+c689de902a3cd3f23889c6e7e81ae737 gas/testsuite/gas/m68hc11/insns.s
+4737eff61ed660da03cfdceac21f0155 gas/testsuite/gas/m68hc11/insns12.d
+141b3a4c374a6000333e228ba3b9e47e gas/testsuite/gas/m68hc11/insns12.s
+0b1954f09f62ef7435476b0ddc00072f gas/testsuite/gas/m68hc11/lbranch-dwarf2.d
+ccb57bcbe25baef712b2a96fa9a5a3ce gas/testsuite/gas/m68hc11/lbranch.d
+270514d96ae94f63ea38a4eb9fccd095 gas/testsuite/gas/m68hc11/lbranch.s
+c1060a813d93b1996f80a1d4862fe7c4 gas/testsuite/gas/m68hc11/m68hc11.exp
+7e3463ce5e0c47ca8bdaaf6f3d443f8d gas/testsuite/gas/m68hc11/malis-include.s
+39a35b2b1583a2636a92fe70c4d055ba gas/testsuite/gas/m68hc11/malis.d
+a469d5986f2366e13cba507b0314fdfd gas/testsuite/gas/m68hc11/malis.s
+7db9f17261e7d7f985b870ce6f2ad9f7 gas/testsuite/gas/m68hc11/movb.d
+585f39e35793807e3fded97c021bd282 gas/testsuite/gas/m68hc11/movb.s
+246a84b3f7ff2215d7479d2c19faa780 gas/testsuite/gas/m68hc11/opers12-dwarf2.d
+dc9b04a98a41dea42bad2049f46223cc gas/testsuite/gas/m68hc11/opers12.d
+a782d69af0f936aa9fcdfc1ecbac3c57 gas/testsuite/gas/m68hc11/opers12.s
+5ce2e2ebfd1f67275d61be1a00c3680d gas/testsuite/gas/m68k/all.exp
+2c8cff99738cc49d98ae27854aaf533b gas/testsuite/gas/m68k/arch-cpu-1.d
+a86d265e30a74bc8fdaa89c1a72e9c16 gas/testsuite/gas/m68k/arch-cpu-1.s
+d36654135443b0740d6b2c78b03ad44b gas/testsuite/gas/m68k/bitfield.d
+fa19c98907bd173f6de4c396ef9acd45 gas/testsuite/gas/m68k/bitfield.s
+8e7bf83e13e2a12239dba9a08d6863d0 gas/testsuite/gas/m68k/br-isaa.d
+041e7f276b89d95a06712b8b30458aaa gas/testsuite/gas/m68k/br-isaa.s
+304c7517aff62a47078625f6612ed1ad gas/testsuite/gas/m68k/br-isab.d
+6f347ccf4e15f7e8e7f0b4820b47aefe gas/testsuite/gas/m68k/br-isab.s
+6cfb94a0c3a281dd912564c93c0afaaf gas/testsuite/gas/m68k/br-isac.d
+918b15696e0a972ec6ff5b0b008d6bd2 gas/testsuite/gas/m68k/br-isac.s
+1c229d52fdc1160c9dd9f74b19c1ec69 gas/testsuite/gas/m68k/cas.d
+20e0445e36d8d9f35c6022fa7118a3da gas/testsuite/gas/m68k/cas.s
+b0368605069653c8c9aa0369b591d66d gas/testsuite/gas/m68k/cpu32.d
+ca551aa8a506abbc251df076ee45824a gas/testsuite/gas/m68k/cpu32.s
+0ddad6a07716faf9e725ca91096138a6 gas/testsuite/gas/m68k/ctrl-1.d
+820b9d7dbe0833991c6cedb6fbcdbdc3 gas/testsuite/gas/m68k/ctrl-1.s
+0987622d3d08e015c32e827c55c9a847 gas/testsuite/gas/m68k/ctrl-2.d
+3ee4700b8114f24f7e96d2a8639d2f5f gas/testsuite/gas/m68k/ctrl-2.s
+96de03f7fc5967e5d267ae957ac508cf gas/testsuite/gas/m68k/disperr.s
+ed716320dc539ce302d4b42c342d98dc gas/testsuite/gas/m68k/fido.d
+d271df8524c5abe940b868ec36df598b gas/testsuite/gas/m68k/fido.s
+26dfd242ac765008271e85e25d9d8446 gas/testsuite/gas/m68k/fmoveml.d
+205a85d6482891f58292e065222b78fa gas/testsuite/gas/m68k/fmoveml.s
+b14e11a2793fb32f7d471e31e4ecf7b9 gas/testsuite/gas/m68k/link.d
+ea9ee18230b981ada48e2b69bb566220 gas/testsuite/gas/m68k/link.s
+8bbf9a7c8ed981bfdf33164bc8c1795e gas/testsuite/gas/m68k/mcf-coproc.d
+cc3d620bbd810b86ac329d88356c2293 gas/testsuite/gas/m68k/mcf-coproc.s
+e9d65843e9ff4815317147668bb3eabc gas/testsuite/gas/m68k/mcf-emac.d
+3b828ef829ca22f8225d76201d49099d gas/testsuite/gas/m68k/mcf-emac.s
+04174ed46591a66a3724a8669e44bb8c gas/testsuite/gas/m68k/mcf-fpu.d
+985b81bde386078023cf775e177e8398 gas/testsuite/gas/m68k/mcf-fpu.s
+d4579214757fe915fc67ea05f7e7c699 gas/testsuite/gas/m68k/mcf-mac.d
+98c8243f9c3e6f7b032b5ae0e1051927 gas/testsuite/gas/m68k/mcf-mac.s
+c06fb50473bc5cc2ef7658e6306256bf gas/testsuite/gas/m68k/mcf-mov3q.d
+dc28098ce202f2d02aeead18ddac25ca gas/testsuite/gas/m68k/mcf-mov3q.s
+ff2b8dbae08361ab60a5f38c1d20c8ba gas/testsuite/gas/m68k/mcf-movsr.d
+708a66c1d76c25ececc29a5e21a3eaa7 gas/testsuite/gas/m68k/mcf-movsr.s
+3349dc41612e21d338aaf37aca84e2ad gas/testsuite/gas/m68k/mcf-trap.d
+2f883f9901e7b4db6f38e516b45b7d75 gas/testsuite/gas/m68k/mcf-trap.s
+f89fe622eac815915a29f397b204e46a gas/testsuite/gas/m68k/mcf-wdebug.d
+37d85bbc31cec38641d8f89a70e5ec80 gas/testsuite/gas/m68k/mcf-wdebug.s
+6e646c11198f5c995aeef425542bd408 gas/testsuite/gas/m68k/mode5.d
+d4dffd0c1722e83ddbbe8fbb999107df gas/testsuite/gas/m68k/mode5.s
+85e6de04e2d6138d3b0e1e3e932fc884 gas/testsuite/gas/m68k/op68000.d
+d72997199e7c0cfb9dae24c9bc0347fd gas/testsuite/gas/m68k/operands.d
+d5012d936b1b45db947e4a29a883fc9d gas/testsuite/gas/m68k/operands.s
+91aa93e55ee135f07c4262e7cf5c282d gas/testsuite/gas/m68k/p11673.s
+b334f15354ebeffb3acba502cc1dae67 gas/testsuite/gas/m68k/p2410.s
+ce5152b0da290f444d58c6ef03d48e02 gas/testsuite/gas/m68k/p2663.s
+4983e0937ec21aa3f61107606aa2948a gas/testsuite/gas/m68k/p3041.d
+ad91a599d1015c362fa6a496fb99c4f3 gas/testsuite/gas/m68k/p3041.s
+6c9fd4e21fb5f16c6d3c7b79cbae935f gas/testsuite/gas/m68k/p3041data.d
+7c61363a5349ec89742e03a17aee542e gas/testsuite/gas/m68k/p3041data.s
+55dbfc5435291d0f8fc2904dc7925d41 gas/testsuite/gas/m68k/p3041pcrel.d
+14366dfe4862f354aa3acc8d1d0a4afe gas/testsuite/gas/m68k/p3041pcrel.s
+9f97c8240a44cb8d55e355b3577f7a7d gas/testsuite/gas/m68k/pcrel.d
+3bc8cba59ef27f67c6c6e2a67717db04 gas/testsuite/gas/m68k/pcrel.s
+c1fce4f35335083fbf7d4538c5a7230f gas/testsuite/gas/m68k/pic1.s
+feaf8891278b0160a4e8977a751c9ecf gas/testsuite/gas/m68k/pr11676.d
+61047c9a4075c1ed3be31b965f0a9dff gas/testsuite/gas/m68k/pr11676.s
+6ebe1f8291de253ee6ce0e469b3e03aa gas/testsuite/gas/m68k/t2.d
+ba9a3e851cb31d41e5a33c44dc3ebd13 gas/testsuite/gas/m68k/t2.s
+549aa5394e345619c2985ff6e8965149 gas/testsuite/gas/m68k/tls-gd-3.d
+f10c7fc453a90020e6009ef0796e4815 gas/testsuite/gas/m68k/tls-gd-3.s
+4117edd076cf599f92777cbfea5d59ba gas/testsuite/gas/m68k-coff/gas.exp
+45f1ecda71b05960409560f553228a2d gas/testsuite/gas/m68k-coff/p2389.s
+3a162ab2de5525fc4745144a511922c9 gas/testsuite/gas/m68k-coff/p2389a.s
+2c65e9837c0fa5884e6d7aa8ab7f5b27 gas/testsuite/gas/m68k-coff/p2430.s
+29f7789ff1bca9100fda6a1276c73f70 gas/testsuite/gas/m68k-coff/p2430a.s
+9ae5a3f91535cb9ce86b48698e6096b1 gas/testsuite/gas/m68k-coff/t1.s
+acda61b9872f053659f8f970762ebb6a gas/testsuite/gas/macros/altmacro.d
+f7fe0f7c09603779be48d47927811570 gas/testsuite/gas/macros/altmacro.s
+a7bb771f464a0b5ecf0c4d5ba774593d gas/testsuite/gas/macros/and.s
+4df56374dec5a1c76dd066c3d729c85d gas/testsuite/gas/macros/app1.d
+5a379b4af4da66bf04866a810b4de97b gas/testsuite/gas/macros/app1.s
+33aa8d4b13e498f0d7e15beca1f27ced gas/testsuite/gas/macros/app2.d
+9d06cd31170f7f48701da42df9632246 gas/testsuite/gas/macros/app2.s
+c0cfe9bcc558ec1eb1f1c3a127e5f4ea gas/testsuite/gas/macros/app3.d
+a4a1a4a55d0b3203d8ed8dd831826fc3 gas/testsuite/gas/macros/app3.s
+74ba97a7638d2b3a01bbeb4461fb1eb5 gas/testsuite/gas/macros/app4.d
+fdd040aa869c081694e5e2f65100bf19 gas/testsuite/gas/macros/app4.s
+d2f0e95bde22021aa580233d12b5f859 gas/testsuite/gas/macros/app4b.s
+79c4224dcaa95d47119575859a12f052 gas/testsuite/gas/macros/badarg.l
+e7b8d7dc34667abdcad825d3af9e324c gas/testsuite/gas/macros/badarg.s
+ef4d8ec6d2488a5bb4d83550b40ef6d1 gas/testsuite/gas/macros/dot.l
+3a9f384d6f335d0422e058696f0d491f gas/testsuite/gas/macros/dot.s
+24acd998ad2fbeeae147bbd23108b9e6 gas/testsuite/gas/macros/end.l
+08af75c12d981d83fc2ddb9976a60205 gas/testsuite/gas/macros/end.s
+06148aa2e0046074be6e05308a79b642 gas/testsuite/gas/macros/err.s
+ab33edd7c59372a1fffccf5d8ec74af4 gas/testsuite/gas/macros/exit.s
+f64593bf9530d575f681a8566ef216c3 gas/testsuite/gas/macros/irp.d
+e284db7fba30dba3218492a95521d6b1 gas/testsuite/gas/macros/irp.s
+5a989ab1c657b34af2f6423b6c25bc15 gas/testsuite/gas/macros/macros.exp
+57f89b0f39596194cda700208502784d gas/testsuite/gas/macros/paren.d
+645a2095f5f91978eedce3fbf6711923 gas/testsuite/gas/macros/paren.s
+8a89a449aeedd42a670a4edc8c9ee377 gas/testsuite/gas/macros/purge.l
+2878ce4eb08bcf5a66dfc813d10012bd gas/testsuite/gas/macros/purge.s
+c1ae846d289af2aadf8628fd4065b805 gas/testsuite/gas/macros/redef.l
+4a17dc932e2a386dfd63e54c978ebfdd gas/testsuite/gas/macros/redef.s
+e01c1559f46ebcc9e71e12bbbe29d50a gas/testsuite/gas/macros/repeat.d
+c50b4097dfec4d64d80d9d35282be338 gas/testsuite/gas/macros/repeat.s
+b320acc9c113dd9d1967db7ee0857e8a gas/testsuite/gas/macros/rept.d
+f5abc6437f073dff4af533a36ea9d280 gas/testsuite/gas/macros/rept.s
+4bf4ec50a66311911e2120d1cdc8bbcb gas/testsuite/gas/macros/semi.d
+16079c6681fc293376e83b74d4b5ffe4 gas/testsuite/gas/macros/semi.s
+4441ddbad8be79e14a096f879b1ece66 gas/testsuite/gas/macros/strings.d
+8990b11a483140af060adb1ff48c4cc5 gas/testsuite/gas/macros/strings.s
+3468ca74d70167a37cf3e040dfedf5ac gas/testsuite/gas/macros/test1.d
+78d91d34e2f43f8c90923a237fa2004e gas/testsuite/gas/macros/test1.s
+ac43f2633f23586812df9e1a40627d82 gas/testsuite/gas/macros/test2.d
+c881555cf20f7d8ed8635c1bf0d11b37 gas/testsuite/gas/macros/test2.s
+7e8aafe277f842553e1bf935c32fa0e8 gas/testsuite/gas/macros/test3.d
+1dbcc25102396060274f0b3d1268f47c gas/testsuite/gas/macros/test3.s
+3b25365dfe02718a9704624a1860b9a5 gas/testsuite/gas/macros/vararg.d
+4dfb839d34233c6e8f4d0873cb7adb02 gas/testsuite/gas/macros/vararg.s
+fe98b2cc453fcf7a781ca1bb78913020 gas/testsuite/gas/mcore/allinsn.d
+3f84389ae5d2fa1891f6db5a66746c47 gas/testsuite/gas/mcore/allinsn.exp
+733e0ea4313c0aae461d17a553aed497 gas/testsuite/gas/mcore/allinsn.s
+0ab81dff36829f3dd7bbd1000ad03faf gas/testsuite/gas/mep/allinsn.be.d
+5f3c2e7fe192b6e4c616becfbe63a0f0 gas/testsuite/gas/mep/allinsn.exp
+725eb39dcaf4cd62b058ccd8b5efa5fc gas/testsuite/gas/mep/allinsn.le.d
+96a535cdd38bb7538883d0327d38be12 gas/testsuite/gas/mep/allinsn.s
+5356d87f136bd7bfe2edab640c4728b4 gas/testsuite/gas/mep/branch1.be.d
+1c6c48f29b74dc09f4b0a0c97219a6e5 gas/testsuite/gas/mep/branch1.le.d
+35ca0818d841dc654ce874b0e5de304e gas/testsuite/gas/mep/branch1.s
+3b3e148b6c63bd6f09e82ddc569ca5d8 gas/testsuite/gas/mep/complex-relocs.exp
+d186d3afc3ee54e09960714a5c1fd68d gas/testsuite/gas/mep/dj1.be.d
+5b33491fed5eb691c4e00c6c3becd2ef gas/testsuite/gas/mep/dj1.le.d
+45b36e3d305a2889fbbed26b5e729dc8 gas/testsuite/gas/mep/dj1.s
+957c407a026ec401a7bc9994f8d529ed gas/testsuite/gas/mep/dj2.be.d
+2da07098a3e20b991b905f02b8bb5a85 gas/testsuite/gas/mep/dj2.le.d
+87c597ad8f492dc4e3e38f48e761e40d gas/testsuite/gas/mep/dj2.s
+7d315bcdac108aa66f27cf2319d818e9 gas/testsuite/gas/mep/relocs-bad3.s
+beb5219eec5436d53c2b958cba6c341e gas/testsuite/gas/mep/relocs-junk1.s
+f41d2f0901c9e89c07c0b9420205546f gas/testsuite/gas/mep/relocs-junk2.s
+739d59546a384a25c2a60ed430171998 gas/testsuite/gas/mep/relocs-refs.s
+8969af38a3bee22a2099c343ca67ebd2 gas/testsuite/gas/mep/relocs-syms.s
+cc2cb034acd8c8f03940a99aa3a9075c gas/testsuite/gas/mep/relocs.d
+5fdcd8929b031a5442439eaa95b83274 gas/testsuite/gas/mips/24k-branch-delay-1.d
+b765fc592389e7ebc505b7f8993d3dfb gas/testsuite/gas/mips/24k-branch-delay-1.s
+a0eb6b5c2c7e449beec99672da081297 gas/testsuite/gas/mips/24k-triple-stores-1.d
+144715aea0b56014b54d983879544e2f gas/testsuite/gas/mips/24k-triple-stores-1.s
+ac3b30f0adfa688567ead81ee3167c1c gas/testsuite/gas/mips/24k-triple-stores-10.d
+5729b6e78d97fceca29ab2dad1e5277a gas/testsuite/gas/mips/24k-triple-stores-10.s
+d1bea3bad326c751b5a201c336fe5a9f gas/testsuite/gas/mips/24k-triple-stores-11.d
+d3acbcfede6e83b6991cd8b768603358 gas/testsuite/gas/mips/24k-triple-stores-11.s
+71e234391af0fba8cc66a063df4ebb08 gas/testsuite/gas/mips/24k-triple-stores-2.d
+8d772867f2e4c03ecae4a5b14c774638 gas/testsuite/gas/mips/24k-triple-stores-2.s
+c4efda54c00c361d6b06621ab2abce3b gas/testsuite/gas/mips/24k-triple-stores-3.d
+55b44f4e95bcf72ad60d64463bcd7d83 gas/testsuite/gas/mips/24k-triple-stores-3.s
+fe5775611a762e9d8f76d8aa0966a706 gas/testsuite/gas/mips/24k-triple-stores-4.d
+e23a173120673650061005bf637f693e gas/testsuite/gas/mips/24k-triple-stores-4.s
+e4f053e00dcd85008f7d4562fd552686 gas/testsuite/gas/mips/24k-triple-stores-5.d
+0ed14396e7b4d14a31b50b4653e9eef6 gas/testsuite/gas/mips/24k-triple-stores-5.s
+6acf77ead10d3d947dada3e9b6e074f6 gas/testsuite/gas/mips/24k-triple-stores-6.d
+b06f0c90767ef3eeeb87195ef0c626a2 gas/testsuite/gas/mips/24k-triple-stores-6.s
+84febf75b46904b8bed3dd1ef323aae5 gas/testsuite/gas/mips/24k-triple-stores-7.d
+c2b8d1b4a407ea3f00031335669b1257 gas/testsuite/gas/mips/24k-triple-stores-7.s
+94d7591accec581c1c11618d147b0661 gas/testsuite/gas/mips/24k-triple-stores-8.d
+43094d366c39ecd105bcd55f2cec5e88 gas/testsuite/gas/mips/24k-triple-stores-8.s
+dbef5e69e724f2fcaa24295d9414dde8 gas/testsuite/gas/mips/24k-triple-stores-9.d
+809a9fa5ac03a70596c8b41f3aa61d99 gas/testsuite/gas/mips/24k-triple-stores-9.s
+4185980a1e50b8b935d3ee3b658b36cf gas/testsuite/gas/mips/abs.d
+93b8bd81a813fed709cc6b5639d4552a gas/testsuite/gas/mips/abs.s
+f98b54818883ed309062b1cbf40844e3 gas/testsuite/gas/mips/add.d
+3aee944bf3dc58dded8dd88c0ef7e205 gas/testsuite/gas/mips/add.s
+f78397ef61e3d8da80f298878e9283fc gas/testsuite/gas/mips/aent.d
+da8f8ab41c6a1f9d1b814110b074d73c gas/testsuite/gas/mips/aent.s
+4861ffe49175e7f09f5bd11de5552347 gas/testsuite/gas/mips/align.d
+e9a5e259296d0f0ccd600d0126e4bcc3 gas/testsuite/gas/mips/align.s
+cc90ff1dfb8c42f725f5672f67df5e5f gas/testsuite/gas/mips/align2-el.d
+6682916ca021cfdcc7c316b4da832da6 gas/testsuite/gas/mips/align2.d
+a3e19ffb2b473d10cc37328a4fab9623 gas/testsuite/gas/mips/align2.s
+35bef725463dbf1117b375c03b7e0ed8 gas/testsuite/gas/mips/alnv_ps-swap.d
+ddebd3e526fa95fd7a69806746db984b gas/testsuite/gas/mips/alnv_ps-swap.s
+87fbd1425a84674f2996096bb1887a91 gas/testsuite/gas/mips/and.d
+c22e6aa3e89ed73291d018a5de51a7bb gas/testsuite/gas/mips/and.s
+e09ea26af6b44682876f3ea4d8e488b7 gas/testsuite/gas/mips/at-1.d
+0afeecd617af15073b4492b76ed2e936 gas/testsuite/gas/mips/at-1.s
+f4b5f3ed67c7aa945bc0dc52a82c9209 gas/testsuite/gas/mips/at-2.l
+5aaeb070968adf05b2730ac4d0f39209 gas/testsuite/gas/mips/at-2.s
+b4cc184c25e23755df2ecda7f5b1e988 gas/testsuite/gas/mips/baddata1.l
+b412b27903c83a7e1d80e6ceadb05db1 gas/testsuite/gas/mips/baddata1.s
+b059d4bf55162ce8ac5d0238565e030f gas/testsuite/gas/mips/beq.d
+88604f6faddd89f48b7b9a32c0617dba gas/testsuite/gas/mips/beq.s
+4f314b785a459560acacb3731c25a579 gas/testsuite/gas/mips/bge.d
+240831523e05ebe83934eb2db885b941 gas/testsuite/gas/mips/bge.s
+7d33222ee708dcb6e432682e567d9506 gas/testsuite/gas/mips/bgeu.d
+17a7104bf8f6ef5362b500d8d35103ba gas/testsuite/gas/mips/bgeu.s
+c49ddf090ddd24f7546b153e4e50ac3b gas/testsuite/gas/mips/blt.d
+19084048b3a6573d8d8a7360567b5de0 gas/testsuite/gas/mips/blt.s
+5dda29e22a9d387906f0d17f0ed8a3cc gas/testsuite/gas/mips/bltu.d
+867a78155944ae35d3edd46759c4664d gas/testsuite/gas/mips/bltu.s
+d872abda04111d7f21451dfd37a93159 gas/testsuite/gas/mips/branch-likely.d
+a429d28dab2e28e92a8ef3f5eb1a2e1e gas/testsuite/gas/mips/branch-likely.s
+47226f542b146b7fa4a41cbd47427ac5 gas/testsuite/gas/mips/branch-misc-1.d
+9121204cadf61e01caeac35fbbdf4611 gas/testsuite/gas/mips/branch-misc-1.s
+525dbff998fa46471531687a7ae1fc86 gas/testsuite/gas/mips/branch-misc-2-64.d
+d5409d6246f40fa3132d5e4ebd0a0bc6 gas/testsuite/gas/mips/branch-misc-2.d
+5c88646f3e0762f8577328b330cb94e0 gas/testsuite/gas/mips/branch-misc-2.s
+5384713ad00067ea0909fc00a33e38a5 gas/testsuite/gas/mips/branch-misc-2pic-64.d
+b8c0ac3c0d474923637b3c71e8bcf087 gas/testsuite/gas/mips/branch-misc-2pic.d
+c759e7da1ca3460a3f3aecb62d752a57 gas/testsuite/gas/mips/branch-misc-3.d
+03386ef0c29fc9cd797e867b45ccc281 gas/testsuite/gas/mips/branch-misc-3.s
+033ebad4d7f779b189ff05dac2939b5d gas/testsuite/gas/mips/branch-misc-4-64.d
+cb434a44cac31cf53713c222f9a50d99 gas/testsuite/gas/mips/branch-misc-4.d
+c0f2d806c6c663925b39078acabcc13b gas/testsuite/gas/mips/branch-misc-4.s
+1a2d5403ca9b20fad9fe48f6a88333dd gas/testsuite/gas/mips/branch-swap.d
+0a639c15c4cf5d990d1e342faab9013a gas/testsuite/gas/mips/branch-swap.s
+9019640b31913709f26c121174ed6f31 gas/testsuite/gas/mips/break20.d
+01e30fca71ae643c6acb0e4c3d579f1c gas/testsuite/gas/mips/break20.s
+f9f3fa4f557fa10b3ea3632e7f2267ad gas/testsuite/gas/mips/cache.d
+69766c8b19aeb811928ae4d1e97144e5 gas/testsuite/gas/mips/cache.s
+a8d3324ce7f2b736e86b0b37863c3284 gas/testsuite/gas/mips/call-nonpic-1.d
+ab3d77562d7321251bb71cda5b59841a gas/testsuite/gas/mips/call-nonpic-1.s
+d6fe1f527092210021dfbe21fdc8b348 gas/testsuite/gas/mips/cfi-n64-1.d
+fcbbec6f83a1baf944b58b5e4d5b75e5 gas/testsuite/gas/mips/cfi-n64-1.s
+30612145052e1d2fe5fb72653f2b1c21 gas/testsuite/gas/mips/cp0-names-mips32.d
+f257dc9a16a2d8c1c7fa591ae1367e27 gas/testsuite/gas/mips/cp0-names-mips32r2.d
+85d6bc895e6396d1220b182ee81497d1 gas/testsuite/gas/mips/cp0-names-mips64.d
+3449570fae576b82c519c71630237f7e gas/testsuite/gas/mips/cp0-names-mips64r2.d
+820045ce9ca1a528b336ed1613fe9ab8 gas/testsuite/gas/mips/cp0-names-numeric.d
+8ccaae0bb0f23368e83025d1a176c246 gas/testsuite/gas/mips/cp0-names-r3000.d
+17c6e4db198bb1467ce086a3497f1cfc gas/testsuite/gas/mips/cp0-names-r4000.d
+435490224450a34be4dfd2ae5c62d629 gas/testsuite/gas/mips/cp0-names-sb1.d
+0eef2b21d782da076667ee1d1be4c0b1 gas/testsuite/gas/mips/cp0-names.s
+2ceebd2a22d7e2bbbd437ba81930d083 gas/testsuite/gas/mips/cp0sel-names-mips32.d
+efdfebc4309127eac2ecd8db816246c3 gas/testsuite/gas/mips/cp0sel-names-mips32r2.d
+fb2beb4484f7975a92f9d87f55ea7879 gas/testsuite/gas/mips/cp0sel-names-mips64.d
+2fc73a454a98ea1455aa5edf1afc6fb6 gas/testsuite/gas/mips/cp0sel-names-mips64r2.d
+7b656e828f45bcd53f460b5c862af427 gas/testsuite/gas/mips/cp0sel-names-numeric.d
+8c78816fa436c9deae7f7c868033283f gas/testsuite/gas/mips/cp0sel-names-sb1.d
+1d57095720d3c2d464ceecd3230b0b1d gas/testsuite/gas/mips/cp0sel-names.s
+5382505c92fbf9f5df6e1da1307d6fc2 gas/testsuite/gas/mips/daddi.d
+17d29a01ad74635f2897df923f3d65a5 gas/testsuite/gas/mips/daddi.s
+03a662feca559831acdbf0a3f76f5c70 gas/testsuite/gas/mips/delay.d
+538610ec904788baaf4b069afb5b75e4 gas/testsuite/gas/mips/delay.s
+6ce614bbef53b14bfaae9d392f25d8e4 gas/testsuite/gas/mips/div-ilocks.d
+ca695be3a404528913fa436b4773fa33 gas/testsuite/gas/mips/div.d
+6da8cc8418138e9b9ee39ac970e437da gas/testsuite/gas/mips/div.s
+bd708578daa50a1d48a09e757f0cbcd9 gas/testsuite/gas/mips/dli.d
+cd7c76b9945bf3197f55dd60337a2a1c gas/testsuite/gas/mips/dli.s
+ff1205f20042f44eab860e0933c64965 gas/testsuite/gas/mips/e32-rel2.d
+f1ad67a0879b7afd28bf7364cb0834a3 gas/testsuite/gas/mips/e32-rel4.d
+61726b9e6598707a9acc650e0d3a4a50 gas/testsuite/gas/mips/e32el-rel2.d
+936b705835c37402172a63f006d02014 gas/testsuite/gas/mips/ecoff@ld-forward.d
+ebfb58e498eaf4013d918988693816b2 gas/testsuite/gas/mips/ecoff@ld.d
+d0ced5bb168c9f7d18c43f690480400e gas/testsuite/gas/mips/ecoff@sd-forward.d
+e47740e421951a741cd23d1c8c7c8b53 gas/testsuite/gas/mips/ecoff@sd.d
+4db6e83621d51e75691a170444580c92 gas/testsuite/gas/mips/elf-consthilo.d
+7d6fc8c3c1f4707ba226b63b085eccc9 gas/testsuite/gas/mips/elf-consthilo.s
+b9095f709ac8275face75cd731c7e345 gas/testsuite/gas/mips/elf-jal.d
+e1a412b36896d1df31ae1a5723d913fc gas/testsuite/gas/mips/elf-rel-got-n32.d
+b703fb7c98d9ca3ae7188b4ca9f7884f gas/testsuite/gas/mips/elf-rel-got-n32.s
+dca717c07ec35a9a3c2e120c19509ee8 gas/testsuite/gas/mips/elf-rel-got-n64.d
+c09c6e2e13ec39459171d47a0a1de0dc gas/testsuite/gas/mips/elf-rel-got-n64.s
+246786fedabd1bc55678a626281d56c1 gas/testsuite/gas/mips/elf-rel-xgot-n32.d
+5e43392b134b49756e570cb8d7c92dd0 gas/testsuite/gas/mips/elf-rel-xgot-n64.d
+b30098857b466696409095e2f291d560 gas/testsuite/gas/mips/elf-rel.d
+502a3f9d5d4d477818aa628da52d9dc7 gas/testsuite/gas/mips/elf-rel.s
+fd815ecb2e693579935d3f7d528f98b3 gas/testsuite/gas/mips/elf-rel10.d
+9edb23aa539a4eb538ab2ae82789cb72 gas/testsuite/gas/mips/elf-rel10.s
+d9a6383654de3b0a3253251fc51545d1 gas/testsuite/gas/mips/elf-rel11.d
+976f6c1629fb9665abfe19081a6e2e77 gas/testsuite/gas/mips/elf-rel11.s
+45839cc4faac9e5feac6a60aea98e8ef gas/testsuite/gas/mips/elf-rel12.d
+cfbd6623492939a879a8c06ec19c9782 gas/testsuite/gas/mips/elf-rel12.s
+bee5e6e9059c6f9de42a09a56d4c30ad gas/testsuite/gas/mips/elf-rel13-mips16.d
+5fe1d10ae49768cd2cbf2adf6b284a46 gas/testsuite/gas/mips/elf-rel13-mips16.s
+1a2b7b746c809d850a52b210805534bb gas/testsuite/gas/mips/elf-rel13.d
+7d15dc149c45847f3da69f237b49f75c gas/testsuite/gas/mips/elf-rel13.s
+5c320d3cb1beb042486e9a8745b4c2c6 gas/testsuite/gas/mips/elf-rel14.d
+f0b56f0ca5879b02a735a42d59550e96 gas/testsuite/gas/mips/elf-rel14.s
+b1948a758b8a0bfdef54909a790e4548 gas/testsuite/gas/mips/elf-rel15.d
+cd997153f06e3c05746f8d2660b406f3 gas/testsuite/gas/mips/elf-rel15.s
+c8d2800a57b09863e267abbc84d6013b gas/testsuite/gas/mips/elf-rel16.d
+c84fdf9f052ea8c6520ac0a0b3ad4a53 gas/testsuite/gas/mips/elf-rel16.s
+3cb2a7baa417f6f854b5fba684329ea8 gas/testsuite/gas/mips/elf-rel17.d
+a2e720638aed5afda45f03d004fb6940 gas/testsuite/gas/mips/elf-rel17.s
+7dad2d4e65bdb6c66a8c66b6bad1b9e6 gas/testsuite/gas/mips/elf-rel18.d
+2f9e052ff885274c4e13e6f605cab8d3 gas/testsuite/gas/mips/elf-rel18.s
+3491f79ba615bc3f9bcb54d0713a6aad gas/testsuite/gas/mips/elf-rel19.d
+af8416449087ed017bdfe9307e1b6500 gas/testsuite/gas/mips/elf-rel19.s
+d749327fe86acaf8385049aa9770bfa9 gas/testsuite/gas/mips/elf-rel2.d
+f7a0c6062a5a8fe838e93a14441b72bc gas/testsuite/gas/mips/elf-rel2.s
+b044ed458368bf7bd0706a3e4a8ea1c9 gas/testsuite/gas/mips/elf-rel20.d
+982048418bd0153f8c1117b51c685e2f gas/testsuite/gas/mips/elf-rel20.s
+a13edfcf468e99da0de2514f1e853fdd gas/testsuite/gas/mips/elf-rel21.d
+701aaa1b0c7d66a1697166b9b854245c gas/testsuite/gas/mips/elf-rel21.s
+e05a3c34f7cdbed02f3c53dce1fea3d6 gas/testsuite/gas/mips/elf-rel22.d
+d2bbcb6ddb42de18b0f6fdc8faf14780 gas/testsuite/gas/mips/elf-rel22.s
+9be1e5f72ab920ba4f8e5554836b81b2 gas/testsuite/gas/mips/elf-rel23.d
+ac83e63959938893af13b631921cbdf1 gas/testsuite/gas/mips/elf-rel23.s
+a26069fba96baec6f50d247bf7ce5011 gas/testsuite/gas/mips/elf-rel23a.d
+820be43d9775898d155af457141b2dde gas/testsuite/gas/mips/elf-rel23b.d
+4d58f6bdbdb4b350c49d12d719d3805a gas/testsuite/gas/mips/elf-rel24.d
+f8e5b9d5e57f774b7426c2834fd2dbc7 gas/testsuite/gas/mips/elf-rel24.s
+b3633d6652d00fab06d8a19f602ca2c3 gas/testsuite/gas/mips/elf-rel25.d
+1c736e711964110cc8f5fc80fba12af6 gas/testsuite/gas/mips/elf-rel25.s
+37e4931f9f5d2b267e03aaecda86d635 gas/testsuite/gas/mips/elf-rel25a.d
+b8a8ddd377f5aab5eb78d68d1a0f140a gas/testsuite/gas/mips/elf-rel26.d
+25bf5299f9445d2a8b741a37d2dcc94f gas/testsuite/gas/mips/elf-rel26.s
+29ddd7f71aa6ad863e9569f99e49cfb8 gas/testsuite/gas/mips/elf-rel27.d
+db6328a447bd906e6310a2561a786899 gas/testsuite/gas/mips/elf-rel27.s
+ef6570d063e0f2f9602f6356ccbd637a gas/testsuite/gas/mips/elf-rel28-n32.d
+6e6bea48787a8d625ab6bc947fceff03 gas/testsuite/gas/mips/elf-rel28-n64.d
+edbe4d68770d26bd52ca17917a51456a gas/testsuite/gas/mips/elf-rel28.s
+63c3597acf4a86494166dc23ca1b5d76 gas/testsuite/gas/mips/elf-rel3.d
+e410b64c4640b935f6bb831e74cd2870 gas/testsuite/gas/mips/elf-rel3.s
+4b7429259a1a34ec68bd6044981bfd92 gas/testsuite/gas/mips/elf-rel4.d
+1c442eac01601b144d6c4996f135529e gas/testsuite/gas/mips/elf-rel4.s
+7da48a40b9c65128701389907d56e77b gas/testsuite/gas/mips/elf-rel5.d
+afc1f5689df1d0e4acbdc2b757e6cb16 gas/testsuite/gas/mips/elf-rel5.s
+5d94a0ffcf8dccff9a47b65329bed287 gas/testsuite/gas/mips/elf-rel6-n32.d
+d646e43e35cbf157d7438aeabcdb02c2 gas/testsuite/gas/mips/elf-rel6-n64.d
+72f5dbd4ceb377d2b7d838cbe58e8b3f gas/testsuite/gas/mips/elf-rel6.d
+6a31d45f2d668f87dd958a3ec5818dff gas/testsuite/gas/mips/elf-rel6.s
+5547d261f60275f6c55c3dae337efa6f gas/testsuite/gas/mips/elf-rel7.d
+b6baa98ec9d4b2adfd3f5d39bbeae554 gas/testsuite/gas/mips/elf-rel7.s
+c7fc4ade739ba6c4251429ad2ca33595 gas/testsuite/gas/mips/elf-rel8-mips16.d
+171e760b94403603a29328cecfe6f02f gas/testsuite/gas/mips/elf-rel8-mips16.s
+b190c96744ac9f75edb8afcd4eac2508 gas/testsuite/gas/mips/elf-rel8.d
+4e472ae6748e852b7042fa1f4c93adb7 gas/testsuite/gas/mips/elf-rel8.s
+21b3361ec604af7eda9b4b1371806461 gas/testsuite/gas/mips/elf-rel9-mips16.d
+3e7e6755eded083db22a495f9533b414 gas/testsuite/gas/mips/elf-rel9-mips16.s
+0d920384da162c2db2e07d8229712b4d gas/testsuite/gas/mips/elf-rel9.d
+b2bbff55e0858b353cbab866d75a667e gas/testsuite/gas/mips/elf-rel9.s
+33497173dfabd65fb6dcdd870c38284e gas/testsuite/gas/mips/elf_arch_mips1.d
+2f7189968598e85e9a6d9553ad4bd98f gas/testsuite/gas/mips/elf_arch_mips2.d
+a59ce8a45ea4d62efead35c03e80c946 gas/testsuite/gas/mips/elf_arch_mips3.d
+24a6739368675680e62da8b43229db24 gas/testsuite/gas/mips/elf_arch_mips32.d
+9a87a8c1c1e14c84eed5b0a170fe2f87 gas/testsuite/gas/mips/elf_arch_mips32r2.d
+fabd38587c85d4b0d4d03161e20f80df gas/testsuite/gas/mips/elf_arch_mips4.d
+1a0323806fc40e26782f9ce94d44aa3d gas/testsuite/gas/mips/elf_arch_mips5.d
+cd1bdbc63429b93b91d3c926091a21d4 gas/testsuite/gas/mips/elf_arch_mips64.d
+4487722fdd93cd65723774f04e4c62ae gas/testsuite/gas/mips/elf_arch_mips64r2.d
+823bc814523dbcb0ca578007a4ef6b8d gas/testsuite/gas/mips/elf_ase_micromips-2.d
+43326b04a96561ff2e11e1fb1a2e3125 gas/testsuite/gas/mips/elf_ase_micromips.d
+f2641b7c748ae9495374e6a8bfc42a8f gas/testsuite/gas/mips/elf_ase_mips16-2.d
+5c39d0cbad042e1266c9acbf55d98baf gas/testsuite/gas/mips/elf_ase_mips16.d
+6531d00a109f1e0829eda1178a1b886a gas/testsuite/gas/mips/elf_e_flags.c
+6bbeff5a2159c064f18894cc7bd9b7ef gas/testsuite/gas/mips/elf_e_flags.s
+5195b99d09665b7ef9b71e2c53bb8fd6 gas/testsuite/gas/mips/elf_e_flags1.d
+bb39999583f7c2aca308a93651cf8c68 gas/testsuite/gas/mips/elf_e_flags2.d
+f63ed5c3cdbd37ab7940faa40cf8f2b5 gas/testsuite/gas/mips/elf_e_flags3.d
+f63ed5c3cdbd37ab7940faa40cf8f2b5 gas/testsuite/gas/mips/elf_e_flags4.d
+7ed80a5d8b87105ce7c5f0d36faeba6d gas/testsuite/gas/mips/elfel-rel.d
+617e895ce1525446cfdfd10dd93f0656 gas/testsuite/gas/mips/elfel-rel2.d
+ff629ca128c6d5d661058f5d9a1242a5 gas/testsuite/gas/mips/elfel-rel3.d
+78bc390993b007fb9b0866209d3c30d1 gas/testsuite/gas/mips/empty.s
+e3977ecfe77dc7125c939f3d9b2a12cb gas/testsuite/gas/mips/eret-1.d
+daa352ee43f9804ee315eff1622faf55 gas/testsuite/gas/mips/eret-1.s
+6ed7a7d5d3d0ac80f3fe3f643778e53f gas/testsuite/gas/mips/eret-2.d
+6f37c89b983a95bd535c3650c398218f gas/testsuite/gas/mips/eret-2.s
+5ce75bcb281795ced9c46e74f501fde1 gas/testsuite/gas/mips/eret-3.d
+485d74927d6edab032af9f55a963a6e4 gas/testsuite/gas/mips/eret-3.s
+bcf73183f8949a816b6901d22fbe1162 gas/testsuite/gas/mips/expr1.d
+6fb3005d059cb1b45a4a86e14c56fcac gas/testsuite/gas/mips/expr1.s
+32922f0496e841aa3a1bd4209a4cd901 gas/testsuite/gas/mips/fpr-names-32.d
+c113920cb549a0af681b07ea67a13218 gas/testsuite/gas/mips/fpr-names-64.d
+4cb09267c5e0b68305e75d7c9d1e4bd5 gas/testsuite/gas/mips/fpr-names-n32.d
+a43e6c1cd7d89b4b715b852927d5135b gas/testsuite/gas/mips/fpr-names-numeric.d
+824a085f211c176750127e9a311c514d gas/testsuite/gas/mips/fpr-names.s
+d74dfe4a05aff75e80e09e2afad6ac01 gas/testsuite/gas/mips/gpr-names-32.d
+8ea9e708ff9c7c31e60e3b46e16838aa gas/testsuite/gas/mips/gpr-names-64.d
+bb6c0c7be041ec5f6406ae33c304c041 gas/testsuite/gas/mips/gpr-names-n32.d
+75457dd316069b8bb3e5afce3748723e gas/testsuite/gas/mips/gpr-names-numeric.d
+7500fbfda3124c0dbda33a9b704a44f5 gas/testsuite/gas/mips/gpr-names.s
+f415b030a55928482057aea074f309f8 gas/testsuite/gas/mips/hwr-names-mips32r2.d
+862acc414d4dda65d1e20f56cbfaf7c1 gas/testsuite/gas/mips/hwr-names-mips64r2.d
+2b9a455406eb8f66f8f200bcf2ee0466 gas/testsuite/gas/mips/hwr-names-numeric.d
+849a87fc73c7b8b6f65392a02df39104 gas/testsuite/gas/mips/hwr-names.s
+3cc2090a29285939cfefea6406e3ffe4 gas/testsuite/gas/mips/illegal.l
+75704852136f9d0d9888c8899cca307e gas/testsuite/gas/mips/illegal.s
+b47234477b017d8640d0a583d17b44cb gas/testsuite/gas/mips/itbl
+3be9cfa967f82e0b4325b152baf0f23a gas/testsuite/gas/mips/itbl.s
+45f0c80b7327d4d02804ed71299fdc2b gas/testsuite/gas/mips/jal-mask-1.s
+ef62dd730021f9ba5345eb51787de1d8 gas/testsuite/gas/mips/jal-mask-11.d
+c10b3a20127cde09f5e62be66746ee8e gas/testsuite/gas/mips/jal-mask-12.d
+ef2ab95e9a7924b784919de105703082 gas/testsuite/gas/mips/jal-mask-2.s
+f04a4ad7e2f310d73b3152d6852d7547 gas/testsuite/gas/mips/jal-mask-21.d
+02ffa077e00411500c80511d7ffdd297 gas/testsuite/gas/mips/jal-mask-22.d
+806671f3ba17b750c415c62f3483b1a8 gas/testsuite/gas/mips/jal-newabi.d
+05fc99b54ef095862bfb5f15fdfdbb59 gas/testsuite/gas/mips/jal-newabi.s
+af73cf131e4217ded49d9937721c78ac gas/testsuite/gas/mips/jal-range.l
+d37160d514747dbd273f2dae78242675 gas/testsuite/gas/mips/jal-range.s
+9f76abe17eae5e832e3fe8e2561c3a7d gas/testsuite/gas/mips/jal-svr4pic-noreorder.d
+69acea1a2f0dc70e2298bc9b1c22be97 gas/testsuite/gas/mips/jal-svr4pic-noreorder.s
+2413cb3ebf65878045559e3180a64294 gas/testsuite/gas/mips/jal-svr4pic.d
+496e5c986c5989166eba2d42de91dee3 gas/testsuite/gas/mips/jal-svr4pic.s
+19c8a1209668b1d8b7e9c2dfa5c41223 gas/testsuite/gas/mips/jal-xgot.d
+7d5f55558c4d32d5c46562b22e10b684 gas/testsuite/gas/mips/jal.d
+c91da61468610b71bd8209d11d782b4d gas/testsuite/gas/mips/jal.s
+0ae9d1d0a0e98ce6040e3939b92a53f4 gas/testsuite/gas/mips/jalr.l
+d740c4cef36b7968eff6955682fafa5f gas/testsuite/gas/mips/jalr.s
+eaf7641276b663bb8bd51fcb75da2fe8 gas/testsuite/gas/mips/jalr2.d
+e91e123d8da933f0d9cd44baa42fc6bd gas/testsuite/gas/mips/jalr2.s
+8c9d1af49f7ec6b67cbf99241cab1562 gas/testsuite/gas/mips/l_d-forward-n32.d
+08d422b335a6625653d61fcdd41db149 gas/testsuite/gas/mips/l_d-forward-n64.d
+2764794e60779f3ce4f29e88e30db73a gas/testsuite/gas/mips/l_d-forward.d
+32d75e50f2ff5ffc25d0779fb6f68cf4 gas/testsuite/gas/mips/l_d-n32.d
+d67ec836c157d20163fbef6a02e69aca gas/testsuite/gas/mips/l_d-n64.d
+e4e995234f99d6f68349712c6239eaf6 gas/testsuite/gas/mips/l_d.d
+15356c60bcac6e156c5f629a88d92fe0 gas/testsuite/gas/mips/la-svr4pic.d
+45f6ffc8e167946c3e1d44a703cba0e4 gas/testsuite/gas/mips/la-xgot.d
+11e4734b84595954b767eba5d0bb1044 gas/testsuite/gas/mips/la.d
+f479612dc60112156a66a5292a60b205 gas/testsuite/gas/mips/la.s
+cf4d58f62d8c3f7a1bdbfd58ba6cc86b gas/testsuite/gas/mips/lb-pic.s
+d80e8d1ab0a8aabb265cc4a63fb15a17 gas/testsuite/gas/mips/lb-svr4pic-ilocks.d
+28a1aeb5b798b08aeb8f41952783613e gas/testsuite/gas/mips/lb-svr4pic.d
+f8212d08fb744582e87e55a54250a46a gas/testsuite/gas/mips/lb-xgot-ilocks.d
+4226b46737391e95c5b2739382046806 gas/testsuite/gas/mips/lb-xgot.d
+07546687a8afde203d0e83551c213a67 gas/testsuite/gas/mips/lb.d
+e9d35a3d0cdd51294a858378d467574d gas/testsuite/gas/mips/lb.s
+12bd768f81937939f2f0f8232a2f2dde gas/testsuite/gas/mips/lca-svr4pic.d
+53cd33ce035fdad5cde09253c9ebb6f1 gas/testsuite/gas/mips/lca-xgot.d
+f23be7fae2a96c3284a681a8e2207752 gas/testsuite/gas/mips/lca.s
+fb73f8a70eb9198026905e3a82eaa01f gas/testsuite/gas/mips/ld-forward-n32.d
+f46b2bf09beb7b80ddb70b6fbb330de2 gas/testsuite/gas/mips/ld-forward-n64.d
+ac95f8fe4efde5ed904cf5ae177ad821 gas/testsuite/gas/mips/ld-forward.d
+330347418e6fbfbf7884cf95bd5d5ad3 gas/testsuite/gas/mips/ld-n32.d
+c97bff2f3f821b2198610ff968b0acc6 gas/testsuite/gas/mips/ld-n64.d
+1040f7d178a2863a838e2a807fc50f06 gas/testsuite/gas/mips/ld-pic.s
+a48027431f0a603aa97ae1688b56e5ab gas/testsuite/gas/mips/ld-svr4pic.d
+db420551b3b1124e47242a855b04a348 gas/testsuite/gas/mips/ld-xgot.d
+a5222f51b7aecf12f2e42c9a054293b5 gas/testsuite/gas/mips/ld.d
+c3339588aceb9f9f7f4650b3156b483f gas/testsuite/gas/mips/ld.s
+002631a74bfdd358e1a48431b6723c1b gas/testsuite/gas/mips/ldc1-forward-n32.d
+6e35231f7b1a142dec8920d9a346bf20 gas/testsuite/gas/mips/ldc1-forward-n64.d
+d7c7f14bdc9c4f05e823dd0cc196f77f gas/testsuite/gas/mips/ldc1-forward.d
+71dfc20b34f768a82e9cea826d3648a2 gas/testsuite/gas/mips/ldc1-n32.d
+a98204b0290fe9ed6d5020e8b7219563 gas/testsuite/gas/mips/ldc1-n64.d
+667f9870ef9993dc224342147912693a gas/testsuite/gas/mips/ldc1.d
+e3c5f4701fa5ef6da67ab162e0701906 gas/testsuite/gas/mips/ldstla-32-1.l
+e715607a1b2e59844473eea6a28b3b3d gas/testsuite/gas/mips/ldstla-32-1.s
+8f6518564ee0f0b69553f9081bcd8787 gas/testsuite/gas/mips/ldstla-32-mips3-1.l
+bdfff1940f0efbe7e068b5611681b82d gas/testsuite/gas/mips/ldstla-32-mips3-1.s
+a040703947672deddbb541a293c6b1a6 gas/testsuite/gas/mips/ldstla-32-mips3-shared.d
+db6df3bc2b3ec66f3b66337031f2f3ae gas/testsuite/gas/mips/ldstla-32-mips3.d
+67cc1f7a7b4b84eaef6c85592ca0942f gas/testsuite/gas/mips/ldstla-32-mips3.s
+94b885bbc3a86cc92e817d48cd7dceb1 gas/testsuite/gas/mips/ldstla-32-shared.d
+71ee7a5d7dd944b56243a89f9b283fa4 gas/testsuite/gas/mips/ldstla-32.d
+424e9e3a1c37af4b60498276e4e9af35 gas/testsuite/gas/mips/ldstla-32.s
+3d4151db916f1064692db92eb644cbd9 gas/testsuite/gas/mips/ldstla-eabi64.d
+6076b4210a9e688df8fd43c16e493ba2 gas/testsuite/gas/mips/ldstla-n64-shared.d
+3e0fa8e7e5fc151ea9fad9b2bf44c2ad gas/testsuite/gas/mips/ldstla-n64-sym32.d
+eb30f1d704a4444b9000e819c618424c gas/testsuite/gas/mips/ldstla-n64.d
+58dae8f6134587e036344a9428ce6586 gas/testsuite/gas/mips/ldstla-n64.s
+e17dbe468d298789464c46b6e6e39d27 gas/testsuite/gas/mips/ldstla-sym32.s
+a37c4b011335b468d1f281815cf5e52d gas/testsuite/gas/mips/li.d
+04a3780fac2911246ce59f521b91f676 gas/testsuite/gas/mips/li.s
+d5d5aaf1d8ceef401619713a7b82ddde gas/testsuite/gas/mips/lif-svr4pic.d
+f0a2320bdd6af639af27993f486030bb gas/testsuite/gas/mips/lif-xgot.d
+a0ca08a8353d2c7bc90c3d3a90ba541c gas/testsuite/gas/mips/lifloat.d
+50ee76bc3e007e2aea14b01a980091b3 gas/testsuite/gas/mips/lifloat.s
+ed5ce13048b0a45f36cbdc1fcc4d6c19 gas/testsuite/gas/mips/lineno.d
+431d0cb02d76e0cee8af0a855bf15842 gas/testsuite/gas/mips/lineno.s
+021781f724e40caa2371a8f4a3b95137 gas/testsuite/gas/mips/loc-swap-2.d
+f67255606d6ab4fcddc6043232a8fd47 gas/testsuite/gas/mips/loc-swap-2.s
+fd1c9aae935b5d7620cd4c158368f377 gas/testsuite/gas/mips/loc-swap-dis.d
+b33d162eb085ff16398b2519a6e2ad13 gas/testsuite/gas/mips/loc-swap.d
+fc0804db02b9b639ce307981c6c6ce6c gas/testsuite/gas/mips/loc-swap.s
+2c05d6e0135964a7fb7bff8948ac903b gas/testsuite/gas/mips/loongson-2e.d
+42be265f01c9dc06f443800d494c0a19 gas/testsuite/gas/mips/loongson-2e.s
+fe089e57a535f00057a2e44959161caf gas/testsuite/gas/mips/loongson-2f-2.d
+6ed141db25596eecbb21f66874b72440 gas/testsuite/gas/mips/loongson-2f-2.s
+bd1b38ccfe2af5382f95cfce2f0f6c47 gas/testsuite/gas/mips/loongson-2f-3.d
+ed330c6efd79d4a20d7d0c8200d38553 gas/testsuite/gas/mips/loongson-2f-3.s
+c145fc3a2dd8a9f0eefb75f1c80a0488 gas/testsuite/gas/mips/loongson-2f.d
+68b6527ca799c669b744069b7f6167f5 gas/testsuite/gas/mips/loongson-2f.s
+39487ecfd545b9ba745744dfdf4dca3d gas/testsuite/gas/mips/loongson-3a-2.d
+0ee2ea8a01c42a4d4983bf06eb550038 gas/testsuite/gas/mips/loongson-3a-2.s
+f6c2ac39c9eb72be1c2ad621c3c1a018 gas/testsuite/gas/mips/loongson-3a-3.d
+23f5fc04508fd01556b40bb66974a1c7 gas/testsuite/gas/mips/loongson-3a-3.s
+9f39f193a67802ac320336d4e3a7c2bb gas/testsuite/gas/mips/loongson-3a.d
+2d2c9d3248200a829ed315a1dd054f40 gas/testsuite/gas/mips/loongson-3a.s
+d8456a592251a715d03edd92470bdf06 gas/testsuite/gas/mips/macro-warn-1-n32.d
+773413904dd1ddfa0cdbd72042dffa1b gas/testsuite/gas/mips/macro-warn-1-n32.l
+6ee48c6e65d0c8a2f7cea8071bf5c975 gas/testsuite/gas/mips/macro-warn-1.d
+32fa865bbc5c3e7febd1e665068b87ea gas/testsuite/gas/mips/macro-warn-1.l
+ab66485696c800a8416450e1b36f092a gas/testsuite/gas/mips/macro-warn-1.s
+c92bb255d0a4b5117dbd3d089b3249fc gas/testsuite/gas/mips/macro-warn-2-n32.d
+99db57727f1b9241274b974a6688e594 gas/testsuite/gas/mips/macro-warn-2.d
+db8744b3c40056b50c250f4b2787539f gas/testsuite/gas/mips/macro-warn-2.l
+2709f4454ddc55c88beb2b5fc524755f gas/testsuite/gas/mips/macro-warn-2.s
+0e2295f4991fc3534fec5e257cfb4042 gas/testsuite/gas/mips/macro-warn-3.d
+16da7d3602a7a6547d4f40c59a2eb5f2 gas/testsuite/gas/mips/macro-warn-3.l
+91289ab33e95282457567256ff70bcfb gas/testsuite/gas/mips/macro-warn-3.s
+45701b0c9f7fc1cdf218c256905da73b gas/testsuite/gas/mips/macro-warn-4.d
+e2242cb25647a83087c9035837475bf6 gas/testsuite/gas/mips/macro-warn-4.l
+1a6e68b5c63e3a7fd2c4f55e00b2f543 gas/testsuite/gas/mips/macro-warn-4.s
+bbaf9a8f8265bcdc0ec57be140e791d1 gas/testsuite/gas/mips/mcu.d
+eb476525339ed6d18e69d8f0a8424611 gas/testsuite/gas/mips/mcu.s
+776c309bbe8786388252a44182698677 gas/testsuite/gas/mips/micromips-branch-delay.d
+377b10f234f1bbce4377d5029bceef0c gas/testsuite/gas/mips/micromips-branch-delay.l
+ccc65118c4fe4fbcc38a1e1a8f5273e6 gas/testsuite/gas/mips/micromips-branch-delay.s
+1e45b83d06ea9ed6ee869c6987bce7ad gas/testsuite/gas/mips/micromips-branch-relax-pic.d
+a51b698ca9738c1f275bd0804348e950 gas/testsuite/gas/mips/micromips-branch-relax-pic.l
+57bebe5335f7848f68bf73fcbd31ae49 gas/testsuite/gas/mips/micromips-branch-relax.d
+12e064bba9afbff8e7c2093a9623b0b6 gas/testsuite/gas/mips/micromips-branch-relax.l
+98a90a338941b432557487fb9b2612c0 gas/testsuite/gas/mips/micromips-branch-relax.s
+780c2dd67f02a89039063c3367a1e649 gas/testsuite/gas/mips/micromips-size-0.l
+7f33c2a229d0a96f132f6ae0b100b632 gas/testsuite/gas/mips/micromips-size-0.s
+0b619e0246da809e172e62412814b433 gas/testsuite/gas/mips/micromips-size-1.d
+f22c488ff580284a425c2c86c3c3b797 gas/testsuite/gas/mips/micromips-size-1.l
+bfd14976773cf4d84b3d683279dbbb15 gas/testsuite/gas/mips/micromips-size-1.s
+02aa7d519682f03ee271d6c40bbcaa34 gas/testsuite/gas/mips/micromips-trap.d
+0d42022d80b06483539419398aa297a9 gas/testsuite/gas/mips/micromips.d
+7fa796a732cdaad43cb61cefd49b57bc gas/testsuite/gas/mips/micromips.l
+6ba349895cda3a06a94523118edba070 gas/testsuite/gas/mips/micromips.s
+93dbbdea7f49971fe55c2ea6f5b10e06 gas/testsuite/gas/mips/micromips@abs.d
+bde3ec95a6eb673d6add604fce812e11 gas/testsuite/gas/mips/micromips@add.d
+94362b3d3f6ab04ee6a39d7ad2e774e0 gas/testsuite/gas/mips/micromips@alnv_ps-swap.d
+9d227311d301c41dc435667d23db692b gas/testsuite/gas/mips/micromips@and.d
+4525247c28fbaa622195e1b724aae7d9 gas/testsuite/gas/mips/micromips@beq.d
+6f3d0a7696d191edfd0438170e3da4c3 gas/testsuite/gas/mips/micromips@bge.d
+e9cb030dd9cf179b6d0d0cc7f239e8b8 gas/testsuite/gas/mips/micromips@bgeu.d
+cca307c64e8710a57428cd3b0ee798d8 gas/testsuite/gas/mips/micromips@blt.d
+e6bb1bf5282d9ad3955bd46901d9f5bf gas/testsuite/gas/mips/micromips@bltu.d
+149b089b2b937acde6928ba9f78c36d0 gas/testsuite/gas/mips/micromips@branch-likely.d
+78745b81ec52fb53c783a0908da70abd gas/testsuite/gas/mips/micromips@branch-misc-1.d
+638e5e2bf1ba771296afb2fb5966c2e3 gas/testsuite/gas/mips/micromips@branch-misc-2-64.d
+d0a75d3ede5409809bfa636a011500dd gas/testsuite/gas/mips/micromips@branch-misc-2.d
+46b95eedafacda78caf4fc84b97e6d2e gas/testsuite/gas/mips/micromips@branch-misc-2pic-64.d
+c377558df8044fbe3d18bb74213a31d3 gas/testsuite/gas/mips/micromips@branch-misc-2pic.d
+7a16cc8f6cec020b40815f67cb65f8d4 gas/testsuite/gas/mips/micromips@branch-misc-4-64.d
+399294fbae619c7202f9ea840c46606e gas/testsuite/gas/mips/micromips@branch-misc-4.d
+2c481ca5509f40efa33ddda4daad5a45 gas/testsuite/gas/mips/micromips@branch-self.d
+42fa7746c515b34b1247e6dcf7153252 gas/testsuite/gas/mips/micromips@cache.d
+adf3006245d838f2f3a18b55c9aa8a92 gas/testsuite/gas/mips/micromips@daddi.d
+6d81b59c5dfe3a2eacdc21cd14adafdb gas/testsuite/gas/mips/micromips@dli.d
+d19b6b342b2549abfc0911cd8dd69f55 gas/testsuite/gas/mips/micromips@elf-jal.d
+926e4c7f24396ffed0e11bf8955761cd gas/testsuite/gas/mips/micromips@elf-rel2.d
+18ac0da9e7433c2364887abc9ea3fdae gas/testsuite/gas/mips/micromips@elf-rel4.d
+4a287489ab50b5fe99afe6ce4152e57c gas/testsuite/gas/mips/micromips@elfel-rel2.d
+3e6195b177a70ae0bc181d911a09b03c gas/testsuite/gas/mips/micromips@jal-mask-11.d
+e98a1cc4672ad58c154dde8a4622a55d gas/testsuite/gas/mips/micromips@jal-mask-12.d
+ae39ffcb13472ac744b2ef316cd7be8f gas/testsuite/gas/mips/micromips@jal-svr4pic-noreorder.d
+7813ea3aa3644a8719b62ad8d391fe6f gas/testsuite/gas/mips/micromips@jal-svr4pic.d
+dffe5b53f35f0cb35bd502d6ad18cd56 gas/testsuite/gas/mips/micromips@lb-svr4pic-ilocks.d
+3c8ebc042a187303e43e3ed64d3218c3 gas/testsuite/gas/mips/micromips@li.d
+dd4d8a919e4df53674b6b7283b96a713 gas/testsuite/gas/mips/micromips@loc-swap-2.d
+401b0819f70dba35be2ce7c9b1f5f092 gas/testsuite/gas/mips/micromips@loc-swap-dis.d
+081d21c311c8ffa260639e48cdf38015 gas/testsuite/gas/mips/micromips@loc-swap.d
+f5916925a29572a759288446f129668f gas/testsuite/gas/mips/micromips@mcu.d
+03b6a2facab8afb47537c16dffb2c233 gas/testsuite/gas/mips/micromips@mips1-fp.d
+969019e1ca47382f828354a3dc02ffd8 gas/testsuite/gas/mips/micromips@mips32-cp2.d
+9c9e963126258d4d73d1d9bc3df654b5 gas/testsuite/gas/mips/micromips@mips32-cp2.s
+8f201427eb39109c368b807f0e501a00 gas/testsuite/gas/mips/micromips@mips32-imm.d
+7a777c36c108509ea0d4480b70311159 gas/testsuite/gas/mips/micromips@mips32-imm.s
+a8c7eecbce04c426a00dd194517bb006 gas/testsuite/gas/mips/micromips@mips32-sf32.d
+bc2727ae46b6b19cf7ae1af2e49b4eb2 gas/testsuite/gas/mips/micromips@mips32.d
+582df2797966993d06d0081528b4b10e gas/testsuite/gas/mips/micromips@mips32r2-cp2.d
+cf2e0f3efff2648195aff4c23997c2e7 gas/testsuite/gas/mips/micromips@mips32r2-cp2.s
+ac8a693b166a6acd4363a896625868ff gas/testsuite/gas/mips/micromips@mips32r2-fp32.d
+f9e7abb8bd762c2545d34d05ec92f1e6 gas/testsuite/gas/mips/micromips@mips32r2-sync.d
+e7ac49c71c3b2c9f3dba106ddd2360b3 gas/testsuite/gas/mips/micromips@mips32r2.d
+a253d46098cbee8e928d856a35694b2d gas/testsuite/gas/mips/micromips@mips4-branch-likely.d
+32418bdf8808aad7f44f6250ab1b7cb0 gas/testsuite/gas/mips/micromips@mips4-fp.d
+0bf951f61cd230a1efb45eb07554b926 gas/testsuite/gas/mips/micromips@mips4.d
+adbd1e26b3301dbbbb9bfe13452c0164 gas/testsuite/gas/mips/micromips@mips5-fp.d
+0603107bfbed6ca2f03bccd7a5fde0dc gas/testsuite/gas/mips/micromips@mips64-cp2.d
+0301477066fe978986865714e775fe25 gas/testsuite/gas/mips/micromips@mips64-cp2.s
+6e85ce8da66e06aadea3327b1a332c5a gas/testsuite/gas/mips/micromips@mips64.d
+10b3d5a070900cd286fa5243a5477c73 gas/testsuite/gas/mips/micromips@mips64r2.d
+368f104a2080700c9e53cd7d2c18f8d2 gas/testsuite/gas/mips/micromips@pref.d
+69ee1cd13c91d87df2f3bd5e480242db gas/testsuite/gas/mips/micromips@relax-at.d
+4688c53aea531e25142b98978ee273ab gas/testsuite/gas/mips/micromips@relax-swap3.d
+bb3799f80211cb38af512a71ef731a48 gas/testsuite/gas/mips/micromips@relax.d
+ba3129228b6551e19233f8c6e23d5b0e gas/testsuite/gas/mips/micromips@rol-hw.d
+904cb0c3ee6f7d87e9d38ad61d08437f gas/testsuite/gas/mips/micromips@uld2-eb.d
+f8c212937cc629e0420a53521cd0f31a gas/testsuite/gas/mips/micromips@uld2-el.d
+7afe371c8a1cf116f658a973fb1302f5 gas/testsuite/gas/mips/micromips@ulh2-eb.d
+1e1bb9897da647388d57ac6f7f51c526 gas/testsuite/gas/mips/micromips@ulh2-el.d
+26b02e61544b76df2e336c755a44e61b gas/testsuite/gas/mips/micromips@ulw2-eb-ilocks.d
+3eb6a45d16a7fff7b9822f6a77e17d4e gas/testsuite/gas/mips/micromips@ulw2-el-ilocks.d
+f90e6665ee364e66764ad76ea38d581c gas/testsuite/gas/mips/mips-abi32-pic.d
+3e79a0a6b17b839dbc4d121dd0bf0472 gas/testsuite/gas/mips/mips-abi32-pic.s
+364a5dc1665c4a2a2806f357e34ff35e gas/testsuite/gas/mips/mips-abi32-pic2.d
+9a43c32af8a197c8734ea9e2fb371eb1 gas/testsuite/gas/mips/mips-abi32-pic2.s
+219f20a6f3faa15badcbf4b475d92b5c gas/testsuite/gas/mips/mips-abi32.d
+310ea844ee3e8aced00ea6ee27db05f4 gas/testsuite/gas/mips/mips-abi32.s
+be138003a03404e351e849f06bf1350d gas/testsuite/gas/mips/mips-double-float-flag.l
+914dd96309b8af020441a45bd3f7bba3 gas/testsuite/gas/mips/mips-double-float-flag.s
+501c37622a3a634443963259b0106b1a gas/testsuite/gas/mips/mips-gp32-fp32-pic.d
+2b5da35909aae208e59ed71f01f84a00 gas/testsuite/gas/mips/mips-gp32-fp32-pic.s
+ef2849bfb75296b84e13354c7023031d gas/testsuite/gas/mips/mips-gp32-fp32.d
+38402d7406992c005e3d22c792095906 gas/testsuite/gas/mips/mips-gp32-fp32.s
+caeac07dda2e3ba801d6a62e64ceca30 gas/testsuite/gas/mips/mips-gp32-fp64-pic.d
+6fec84d1a325308f963f9813d5a9df84 gas/testsuite/gas/mips/mips-gp32-fp64-pic.s
+efa5f771ebee275494762b5ca2973274 gas/testsuite/gas/mips/mips-gp32-fp64.d
+795b6fd35774d1b29cefb03bc8f1a04e gas/testsuite/gas/mips/mips-gp32-fp64.l
+c8b1255a48810ecd5641efd78f9fac67 gas/testsuite/gas/mips/mips-gp32-fp64.s
+87f0e281b0daa59d0050d9130df7c545 gas/testsuite/gas/mips/mips-gp64-fp32-pic.d
+1e84a0631149baa9435b4334b7bcdf97 gas/testsuite/gas/mips/mips-gp64-fp32-pic.l
+2db2ff450b5afa36c19534edab7192b2 gas/testsuite/gas/mips/mips-gp64-fp32-pic.s
+0d651402a5fbbf29f2e52cb3f7cf8f30 gas/testsuite/gas/mips/mips-gp64-fp32.d
+1e6f61d7ae9ac182db762b0e4c8a9271 gas/testsuite/gas/mips/mips-gp64-fp32.l
+0c487b950f2e00c12c4f3bd2d2f597a1 gas/testsuite/gas/mips/mips-gp64-fp32.s
+12cec0f1bd9c11425f4eb5f7bdc5f311 gas/testsuite/gas/mips/mips-gp64-fp64-pic.d
+49eaf79b46ed3df73a7bd49dda0611ed gas/testsuite/gas/mips/mips-gp64-fp64-pic.s
+79b5f54ad25f04362492f4cef9d315ff gas/testsuite/gas/mips/mips-gp64-fp64.d
+e6be4d9ff36fe372a5b838c914461929 gas/testsuite/gas/mips/mips-gp64-fp64.l
+0bba7e49525b335ca7a88ea75cb22c73 gas/testsuite/gas/mips/mips-gp64-fp64.s
+fc0703d098b9243ea2771a15a530bc69 gas/testsuite/gas/mips/mips-hard-float-flag.l
+418ef1b98869ee9a5ddbffb48ec88ee6 gas/testsuite/gas/mips/mips-hard-float-flag.s
+75ae19684fdab50c7312caa074a3d93d gas/testsuite/gas/mips/mips-jalx-2.d
+19c174e7163ffe6a72be560e026bd6b6 gas/testsuite/gas/mips/mips-jalx-2.s
+c0510bc1b6445ec158c3c85f37c19ee4 gas/testsuite/gas/mips/mips-jalx.d
+1f6a560c324971ac8573be14aacc528f gas/testsuite/gas/mips/mips-jalx.s
+75f06a4cc8efae4d60c9582a87640c8d gas/testsuite/gas/mips/mips-macro-ill-nofp.l
+cce840b0285e8acb86caa07b81590dfb gas/testsuite/gas/mips/mips-macro-ill-nofp.s
+deb1c801ef639ed932140d2dba02b95b gas/testsuite/gas/mips/mips-macro-ill-sfp.l
+066c4e7b6705e4be69dee6e1a61e6aa7 gas/testsuite/gas/mips/mips-macro-ill-sfp.s
+8e4e0c3501ebfef5679e4824e2e730a4 gas/testsuite/gas/mips/mips.exp
+9ebbe8ac1d038076975e33308084d08d gas/testsuite/gas/mips/mips1-fp.d
+2867b7b4f1e06f673fff3b9f4c1d601e gas/testsuite/gas/mips/mips1-fp.l
+670af8eb95b87df0e913a4ff9891a9c7 gas/testsuite/gas/mips/mips1-fp.s
+69fcac4647653e47e7cdb109987121cf gas/testsuite/gas/mips/mips16-64.d
+1f16ab56eccaf7cc655d5642009788f0 gas/testsuite/gas/mips/mips16-dwarf2-n32.d
+d1849362896f01c1adf09da894f75c5f gas/testsuite/gas/mips/mips16-dwarf2.d
+6b805809a6f9a5b4ff587982aeb3aa57 gas/testsuite/gas/mips/mips16-dwarf2.s
+3d5b6e3da111a5087aeb3b8f3ab690b9 gas/testsuite/gas/mips/mips16-e.d
+4785c49a602347865df48551df7121fc gas/testsuite/gas/mips/mips16-e.s
+ab3e65486a24379a8ddcfe2ebcf3c1fe gas/testsuite/gas/mips/mips16-f.d
+7146e7075936aa4a1434864cf7bf6d4e gas/testsuite/gas/mips/mips16-f.s
+13d5e2e012ad1c97c3227b25539936d6 gas/testsuite/gas/mips/mips16-hilo-match.d
+b570359884087730d05a0aaa6c4644e9 gas/testsuite/gas/mips/mips16-hilo-match.s
+f9406b9f1a2f835edaf26bdf89dd4af5 gas/testsuite/gas/mips/mips16-hilo-n32.d
+67199cb41a90f4e6c33e930c6ac84ccc gas/testsuite/gas/mips/mips16-hilo.d
+729ccfc0e7f073829ca7f69545469c93 gas/testsuite/gas/mips/mips16-hilo.s
+fdeee05b3addaea3355019b07fc7d8f0 gas/testsuite/gas/mips/mips16-intermix.d
+c2efc9d570972b526a9e277bae42879d gas/testsuite/gas/mips/mips16-intermix.s
+c0332c4d7395b7941df1e9141cf038f0 gas/testsuite/gas/mips/mips16-jalx.d
+c6f91156b0d13de84854f1c20c862aba gas/testsuite/gas/mips/mips16-jalx.s
+de7b9c119cbf71d0e12b6643fa5dd37d gas/testsuite/gas/mips/mips16-vis-1.d
+e2dbdaf3493dfa5a0b7e02e4e0dcb73d gas/testsuite/gas/mips/mips16-vis-1.s
+30869d85612d49b0966673de6178997c gas/testsuite/gas/mips/mips16.d
+a686ad0a2da9fe043d717c57b4580d0b gas/testsuite/gas/mips/mips16.s
+b70bff395055452842cfbfec8b4d9e73 gas/testsuite/gas/mips/mips16@loc-swap-2.d
+fa0e904c14899b96035b80f4fd1ef1f4 gas/testsuite/gas/mips/mips16@loc-swap-dis.d
+f8c23acbceb2f65308019737540696fd gas/testsuite/gas/mips/mips16@loc-swap.d
+902f307654cca653204de6f67f79f23e gas/testsuite/gas/mips/mips16@relax-swap3.d
+9ae52f2c47f989d6bc2170949e96e57d gas/testsuite/gas/mips/mips16e-64.d
+5ad7162a1b6a7cbe775adf4c08063c55 gas/testsuite/gas/mips/mips16e-64.l
+30021283e31eada0b13da587af3bc4eb gas/testsuite/gas/mips/mips16e-64.s
+d634740f3f4bc17bbf064a5317cb0260 gas/testsuite/gas/mips/mips16e-jrc.d
+ecce530f17dabb5411175579862663fc gas/testsuite/gas/mips/mips16e-jrc.s
+9a512a5339561a764c8938f5947a90c0 gas/testsuite/gas/mips/mips16e-save.d
+9989e440758c83f4183c998e3f5840dc gas/testsuite/gas/mips/mips16e-save.s
+8ca4a6199fde7381f7a42d398693af63 gas/testsuite/gas/mips/mips16e.d
+214b27ce6c50ab9b455cb925a9745678 gas/testsuite/gas/mips/mips16e.s
+e1e66a37e6e87b3e986eda3ad5b562a4 gas/testsuite/gas/mips/mips1@ecoff@sd-forward.d
+4bcf3140b90db3a0858a565055acc4e8 gas/testsuite/gas/mips/mips1@ecoff@sd.d
+823c8780c34e6454d4f01ae4e3ea6b6a gas/testsuite/gas/mips/mips1@jal-svr4pic-noreorder.d
+2d77e7b8cb5805b8bfe19abd8653770c gas/testsuite/gas/mips/mips1@jal-svr4pic.d
+1cb61742f13c0bec9dfde377d4980f2c gas/testsuite/gas/mips/mips1@l_d-forward.d
+9e3917e2b60fee8993c2baf23c8b0383 gas/testsuite/gas/mips/mips1@l_d.d
+e1eab5230fb7366e300272d5b084b54f gas/testsuite/gas/mips/mips1@ld-forward.d
+f9b6fc05c41b9086e807c3fbb033a9de gas/testsuite/gas/mips/mips1@ld.d
+44b26dcb0f152b51a4bd37acfd78a133 gas/testsuite/gas/mips/mips1@s_d-forward.d
+7032c5e82001f1c7260d8314d034cd21 gas/testsuite/gas/mips/mips1@s_d.d
+ac95f8fe4efde5ed904cf5ae177ad821 gas/testsuite/gas/mips/mips2@ecoff@ld-forward.d
+ec50b9a1794608609e529cfdd4e5b558 gas/testsuite/gas/mips/mips2@ecoff@ld.d
+e1e66a37e6e87b3e986eda3ad5b562a4 gas/testsuite/gas/mips/mips2@ecoff@sd-forward.d
+4bcf3140b90db3a0858a565055acc4e8 gas/testsuite/gas/mips/mips2@ecoff@sd.d
+3ac8c01b5ac399868c084635f6d51e96 gas/testsuite/gas/mips/mips32-cp2.d
+cca58b2b00c7a04c1beca2a664d048d4 gas/testsuite/gas/mips/mips32-cp2.s
+b4bfc16b7383c950c323d556a3f2b526 gas/testsuite/gas/mips/mips32-dsp.d
+9b4d8c0efead7c0250b77d6432a28f15 gas/testsuite/gas/mips/mips32-dsp.s
+90a8ce11aeceb5e8ed29ab6eb6aeddb4 gas/testsuite/gas/mips/mips32-dspr2.d
+bfa27a2156914ea3ace07577e0dcd679 gas/testsuite/gas/mips/mips32-dspr2.s
+114de0ff23260d1eb1bde1fee20b1e71 gas/testsuite/gas/mips/mips32-imm.d
+66b2443546c844ceaf9f00c0d0ab4367 gas/testsuite/gas/mips/mips32-imm.s
+64a28f6acbb4d482836d6340973cfc82 gas/testsuite/gas/mips/mips32-mt.d
+ad88d7cd1ce33d00f4605c2f97d4cd40 gas/testsuite/gas/mips/mips32-mt.s
+2a527714d86f6fdcf069af2c9edbbefa gas/testsuite/gas/mips/mips32-sf32.d
+fb0d10a030367ce4f9425c74cbe13ffa gas/testsuite/gas/mips/mips32-sf32.l
+58f9d1e3083cdee930bedb837c1ae488 gas/testsuite/gas/mips/mips32-sf32.s
+e042203402e3536ca64300255432ca85 gas/testsuite/gas/mips/mips32-sync.d
+f977577efe12606bfb0d5034bec79e34 gas/testsuite/gas/mips/mips32-sync.s
+c9f638fb95ff4cc7f7538a49b22324f5 gas/testsuite/gas/mips/mips32.d
+72bfcc15bc68c0e0a52f26c776219335 gas/testsuite/gas/mips/mips32.s
+ac95f8fe4efde5ed904cf5ae177ad821 gas/testsuite/gas/mips/mips32@ecoff@ld-forward.d
+ec50b9a1794608609e529cfdd4e5b558 gas/testsuite/gas/mips/mips32@ecoff@ld.d
+e1e66a37e6e87b3e986eda3ad5b562a4 gas/testsuite/gas/mips/mips32@ecoff@sd-forward.d
+4bcf3140b90db3a0858a565055acc4e8 gas/testsuite/gas/mips/mips32@ecoff@sd.d
+be0eb533ebc0379d9c0babb2185c5f07 gas/testsuite/gas/mips/mips32r2-cp2.d
+43f63601c20612d60d43155640818766 gas/testsuite/gas/mips/mips32r2-cp2.s
+e3a8b21bb26ed5d1b4704477725bb733 gas/testsuite/gas/mips/mips32r2-fp32.d
+d8f9ae302cc28b03add0589217f0015e gas/testsuite/gas/mips/mips32r2-fp32.l
+fac86714ad2220b1da5bb1a055f7cd8b gas/testsuite/gas/mips/mips32r2-fp32.s
+d03f555bc073f0038562c3019d0327d6 gas/testsuite/gas/mips/mips32r2-ill-fp64.l
+59658e0b3428861ed4e4ef74205fcd95 gas/testsuite/gas/mips/mips32r2-ill-fp64.s
+d03f555bc073f0038562c3019d0327d6 gas/testsuite/gas/mips/mips32r2-ill-nofp.l
+e73cc5c25e6b3f2e531219ef62595785 gas/testsuite/gas/mips/mips32r2-ill-nofp.s
+4d93dbd622d7b77c4afb1a3e9aa1e5ef gas/testsuite/gas/mips/mips32r2-ill.l
+e4bf167b7f52ae862811e7b158f205a8 gas/testsuite/gas/mips/mips32r2-ill.s
+6b9fc0eb0902f23169ed72569d9385bc gas/testsuite/gas/mips/mips32r2-sync.d
+7978aa13d44bd672d20166d47c60bf3e gas/testsuite/gas/mips/mips32r2-sync.s
+2078bac166b96d97257a938d09d130db gas/testsuite/gas/mips/mips32r2.d
+c4126d70aba28fe3b9f82f581c71a6e8 gas/testsuite/gas/mips/mips32r2.s
+ac95f8fe4efde5ed904cf5ae177ad821 gas/testsuite/gas/mips/mips32r2@ecoff@ld-forward.d
+ec50b9a1794608609e529cfdd4e5b558 gas/testsuite/gas/mips/mips32r2@ecoff@ld.d
+e1e66a37e6e87b3e986eda3ad5b562a4 gas/testsuite/gas/mips/mips32r2@ecoff@sd-forward.d
+4bcf3140b90db3a0858a565055acc4e8 gas/testsuite/gas/mips/mips32r2@ecoff@sd.d
+9ccc3aa4ff6b2df17149fd1b5f23b389 gas/testsuite/gas/mips/mips4-branch-likely.d
+663815c07b7dc27f751e08e542959898 gas/testsuite/gas/mips/mips4-branch-likely.l
+4b23881c6c4acda288472e518f42f70c gas/testsuite/gas/mips/mips4-branch-likely.s
+afef3707d4e51fe43a60afbc5bae9617 gas/testsuite/gas/mips/mips4-fp.d
+750ab0efe12f0b9439748323976430d8 gas/testsuite/gas/mips/mips4-fp.l
+53fdf5667fb95d6d2c5983663f1462b1 gas/testsuite/gas/mips/mips4-fp.s
+e474f9b093713dc5babf179126366635 gas/testsuite/gas/mips/mips4.d
+235d83eb54cc54bf8ff8672570adb2c9 gas/testsuite/gas/mips/mips4.s
+525b9feded73ef555e7eb94cd1459dcc gas/testsuite/gas/mips/mips4010.d
+cd49d59fb8e9057e6313f5ff630015b9 gas/testsuite/gas/mips/mips4010.s
+e1387d3ba60454e12f2fd65e0dc8f0f1 gas/testsuite/gas/mips/mips4100.d
+f864a3faa585a344dde75972a70d1a52 gas/testsuite/gas/mips/mips4100.s
+3987ab6f2aea0552dd948c4dc75be6e4 gas/testsuite/gas/mips/mips4650.d
+5c10900661e0928e9a340c3c925418b1 gas/testsuite/gas/mips/mips4650.s
+f3d31954c8a976ee5879965c3c9604ec gas/testsuite/gas/mips/mips5-fp.d
+63e8effa871782fd33ecc97d55a2feb2 gas/testsuite/gas/mips/mips5-fp.l
+0e532e8bc0d3c26c91d11ab05bc992a5 gas/testsuite/gas/mips/mips5-fp.s
+351dc5d23c29961553f599c529664d16 gas/testsuite/gas/mips/mips64-cp2.d
+e02ec9472963db2e6ce59b1c34ca245e gas/testsuite/gas/mips/mips64-cp2.s
+134ae5f0901c0a21a3418223b3d6f4df gas/testsuite/gas/mips/mips64-dsp.d
+191d27162763bdc3ed4f080cbdcac276 gas/testsuite/gas/mips/mips64-dsp.s
+560bcd3d2db7bc623eb910f984ed146e gas/testsuite/gas/mips/mips64-mdmx.d
+1febffb6dc592c8a10b7237347f30aa2 gas/testsuite/gas/mips/mips64-mdmx.s
+9145d945fcd903fd77f64bff32cb959d gas/testsuite/gas/mips/mips64-mips3d-incl.d
+6d0bc31fe00d5d9c9a4fd07e931d6d45 gas/testsuite/gas/mips/mips64-mips3d.d
+f2f60961d3a921f1e20c2d386e782f09 gas/testsuite/gas/mips/mips64-mips3d.l
+c2a456cf65796a255e1b157f0a487e58 gas/testsuite/gas/mips/mips64-mips3d.s
+38754ef857cb66d93893cd6097cd6c31 gas/testsuite/gas/mips/mips64.d
+9d99c971f911bc7cc0cbf3d35545271f gas/testsuite/gas/mips/mips64.s
+786eb2843ed8ffe47e69bc81724f1c16 gas/testsuite/gas/mips/mips64r2-ill.l
+813b1f7f0ece03c4c2566ee2e85529b0 gas/testsuite/gas/mips/mips64r2-ill.s
+df92f25d4122d36c854f1f375992b9d3 gas/testsuite/gas/mips/mips64r2.d
+bb49ade11c2fd90af659940cd085b04c gas/testsuite/gas/mips/mips64r2.s
+1fbc2503a07a256c660f271994dd8066 gas/testsuite/gas/mips/mipsel16-e.d
+b92a96c8cebc41672d627eb963464d34 gas/testsuite/gas/mips/mipsel16-f.d
+ef0171001ae8a851199eae2014924bcd gas/testsuite/gas/mips/mul-ilocks.d
+da8dbb1647cec16e39fdbef014fdc323 gas/testsuite/gas/mips/mul.d
+03190409f6e3f76c2b66c8ab590d10bf gas/testsuite/gas/mips/mul.s
+bf74a40c246451b61a011e5c879c7612 gas/testsuite/gas/mips/n32-consec.d
+fd247b9288db956e0a2713c9f23b1ce5 gas/testsuite/gas/mips/n32-consec.s
+7dfc6463d7e1cf9f73bfd449ab2b7863 gas/testsuite/gas/mips/noat-1.d
+7050bff7639ba21ec7e51b3895f2c6c7 gas/testsuite/gas/mips/noat-1.s
+95eca9454317755995388cb1dd49e2cf gas/testsuite/gas/mips/noat-2.l
+b44500553d2ad422012f6078cc100bff gas/testsuite/gas/mips/noat-2.s
+95eca9454317755995388cb1dd49e2cf gas/testsuite/gas/mips/noat-3.l
+932b518a8c80d85b280867bba5dc9d4a gas/testsuite/gas/mips/noat-3.s
+95eca9454317755995388cb1dd49e2cf gas/testsuite/gas/mips/noat-4.l
+9a876de7280b37f5d9b43e00cb5b2894 gas/testsuite/gas/mips/noat-4.s
+95eca9454317755995388cb1dd49e2cf gas/testsuite/gas/mips/noat-5.l
+357277a91ad103c38e71855307ea123f gas/testsuite/gas/mips/noat-5.s
+95eca9454317755995388cb1dd49e2cf gas/testsuite/gas/mips/noat-6.l
+9969f029155afc0cb5a1e48dbfc0c8ea gas/testsuite/gas/mips/noat-6.s
+95eca9454317755995388cb1dd49e2cf gas/testsuite/gas/mips/noat-7.l
+3a02483408099325a9be213dc97b067c gas/testsuite/gas/mips/noat-7.s
+bc093d7454fb79cc787981a1fda8af1f gas/testsuite/gas/mips/nodelay.d
+801d14a6810ebae1f5eefda4bac2a4d8 gas/testsuite/gas/mips/nop.s
+47276e7d0842efddcef6af9781e894a9 gas/testsuite/gas/mips/noreorder.d
+fb2bae7dc69d4fa8ef75ea2f12131cb2 gas/testsuite/gas/mips/noreorder.s
+7cb4a3257e850a426d21d4dd1bd4fc1f gas/testsuite/gas/mips/octeon-ill.l
+f01de68f773c8c0971fec0c8e98bb471 gas/testsuite/gas/mips/octeon-ill.s
+111dd660b24d0af1c03ab82289a6f3a1 gas/testsuite/gas/mips/octeon-pref.d
+127ab9d3e2693f2274f177fa484154a9 gas/testsuite/gas/mips/octeon-pref.s
+a493491c607cfbf665501980826de438 gas/testsuite/gas/mips/octeon.d
+711a87dbbd5705dc78bb3582e4cbbb18 gas/testsuite/gas/mips/octeon.s
+b01faab0afc57debbb4b0fb3e5ec1e3c gas/testsuite/gas/mips/octeon@mips32r2-sync.d
+5761aa099e32b2fb86dce98a61bf78fc gas/testsuite/gas/mips/odd-float.d
+95ed2d0da0ad874beed09ec727b4e16b gas/testsuite/gas/mips/odd-float.s
+244569e0b92ee735e76258141d2a39ff gas/testsuite/gas/mips/perfcount.d
+5e216e3c77bb4c99c824b308a1617395 gas/testsuite/gas/mips/perfcount.s
+b6e40c562a931b741cd1282c2dc11d2e gas/testsuite/gas/mips/pr12915.d
+377cb66597b8da088293a65340028f37 gas/testsuite/gas/mips/pr12915.s
+b981910e16055769981d610b35544eec gas/testsuite/gas/mips/pref.d
+e1e66a37e6e87b3e986eda3ad5b562a4 gas/testsuite/gas/mips/r3000@ecoff@sd-forward.d
+4bcf3140b90db3a0858a565055acc4e8 gas/testsuite/gas/mips/r3000@ecoff@sd.d
+4ca43985c965ed9a9f0ce0ccf74b939f gas/testsuite/gas/mips/r3000@jal-svr4pic-noreorder.d
+b513db2b66766dc702d2e90438349615 gas/testsuite/gas/mips/r3000@jal-svr4pic.d
+1cb61742f13c0bec9dfde377d4980f2c gas/testsuite/gas/mips/r3000@l_d-forward.d
+99c2ff79deb5b659bfa390975f2e8393 gas/testsuite/gas/mips/r3000@l_d.d
+2e12b0aa44c03a5d09c97f9ae47df74a gas/testsuite/gas/mips/r3000@ld-forward.d
+1695b23defb1235e47baf3c17b8d1d8a gas/testsuite/gas/mips/r3000@ld.d
+44b26dcb0f152b51a4bd37acfd78a133 gas/testsuite/gas/mips/r3000@s_d-forward.d
+4db72c66fa1c2fd7c2af7f4a4f3e2c30 gas/testsuite/gas/mips/r3000@s_d.d
+ac95f8fe4efde5ed904cf5ae177ad821 gas/testsuite/gas/mips/r3900@ecoff@ld-forward.d
+ec50b9a1794608609e529cfdd4e5b558 gas/testsuite/gas/mips/r3900@ecoff@ld.d
+e1e66a37e6e87b3e986eda3ad5b562a4 gas/testsuite/gas/mips/r3900@ecoff@sd-forward.d
+4bcf3140b90db3a0858a565055acc4e8 gas/testsuite/gas/mips/r3900@ecoff@sd.d
+1cb61742f13c0bec9dfde377d4980f2c gas/testsuite/gas/mips/r3900@l_d-forward.d
+99c2ff79deb5b659bfa390975f2e8393 gas/testsuite/gas/mips/r3900@l_d.d
+44b26dcb0f152b51a4bd37acfd78a133 gas/testsuite/gas/mips/r3900@s_d-forward.d
+4db72c66fa1c2fd7c2af7f4a4f3e2c30 gas/testsuite/gas/mips/r3900@s_d.d
+ceed4836c54a8bf404a1a3d82ce775e7 gas/testsuite/gas/mips/reginfo-1.s
+6c578da9ac01cb3cf02739c3188e7e68 gas/testsuite/gas/mips/reginfo-1a.d
+08bcb6aee0e0506c6cbd10ee558039bb gas/testsuite/gas/mips/reginfo-1b.d
+b3f57ed00f3b069586a2d4030cffc62b gas/testsuite/gas/mips/relax-at.d
+c6bcb1b90b7783e34a2a74e43b532d91 gas/testsuite/gas/mips/relax-bposge.l
+114ce5752bffc3cbf668d0883d90f0b2 gas/testsuite/gas/mips/relax-bposge.s
+f4857653176b13a84af6c6343d716c7c gas/testsuite/gas/mips/relax-swap1-mips1.d
+412554087d305d51108b71c6fc71fae6 gas/testsuite/gas/mips/relax-swap1-mips2.d
+d12b6a49c8eb5ac8dd27fb70f2a1d7c9 gas/testsuite/gas/mips/relax-swap1.l
+ba43b08ac1e83497175b0e8b7a40e18a gas/testsuite/gas/mips/relax-swap1.s
+17672430609ffd531e4dc027a286f25f gas/testsuite/gas/mips/relax-swap2.d
+9fd39030ace0cd3480e0c983d878131e gas/testsuite/gas/mips/relax-swap2.l
+ec1c525167ce7e482502efe31f330243 gas/testsuite/gas/mips/relax-swap2.s
+52161186d7a2a5a2cfce1daa4806e255 gas/testsuite/gas/mips/relax-swap3.d
+4a20cb5523b0ef23d4dc2a4bf918083e gas/testsuite/gas/mips/relax-swap3.s
+70a72b5d24ef45bab4081623136ad4bb gas/testsuite/gas/mips/relax.d
+5ac7ad74fdcc363065381dd52adc8e19 gas/testsuite/gas/mips/relax.l
+ef04f6b27acedf43f04f236dc405867f gas/testsuite/gas/mips/relax.s
+1683fa4d4b6a696380beea3012ab1723 gas/testsuite/gas/mips/rm7000.d
+6e59f1b5da58f7015fa2c48d29c73445 gas/testsuite/gas/mips/rm7000.s
+d95ec21282d79a677dbbade498f21838 gas/testsuite/gas/mips/rol-hw.d
+209795675f9ba233ca89b305f6631b19 gas/testsuite/gas/mips/rol.d
+f5fc4c2b2064d692482dc6c04c4b64c7 gas/testsuite/gas/mips/rol.s
+5f65c9a166dc08f0527a93030918ae2d gas/testsuite/gas/mips/rol64-hw.d
+a784263fc184c27bd9630f7b5ee7129d gas/testsuite/gas/mips/rol64.d
+2b7d0f4345402303774e4fd6aa9acfd5 gas/testsuite/gas/mips/rol64.s
+5258ba7786086636397572fbaf57bdd2 gas/testsuite/gas/mips/s_d-forward-n32.d
+4919bbe9009cb11551fa61c7accb2679 gas/testsuite/gas/mips/s_d-forward-n64.d
+61d2b3e6baba6742f3a0c230e5aa78c0 gas/testsuite/gas/mips/s_d-forward.d
+0fe4f63b37df6dbabb3ac44d86361a54 gas/testsuite/gas/mips/s_d-n32.d
+794feaf65f6e45a55c5d41621a43cbc3 gas/testsuite/gas/mips/s_d-n64.d
+d2fbd774ca9c0d447c731fece36767a8 gas/testsuite/gas/mips/s_d.d
+3d26839ae55d7f0a445d21ce0c0a6ca8 gas/testsuite/gas/mips/sb.d
+15410af41b16b3678e11c8c7d4d6d7a7 gas/testsuite/gas/mips/sb.s
+be616c1178a3455eaa497791ecc9048a gas/testsuite/gas/mips/sb1-ext-mdmx.d
+f803ea0e2f3ddc0f8ee9e48021fcdb97 gas/testsuite/gas/mips/sb1-ext-mdmx.s
+3805f0fb2ef9beb840e865a88acfaf29 gas/testsuite/gas/mips/sb1-ext-ps.d
+2614c94e549a3ad9a0a0aa2ea8a351bd gas/testsuite/gas/mips/sb1-ext-ps.s
+dd4fb82bb446e6ee108b64752eeb0fe1 gas/testsuite/gas/mips/sd-forward-n32.d
+b2253aca46772d9bb27b28bdea9defae gas/testsuite/gas/mips/sd-forward-n64.d
+e1e66a37e6e87b3e986eda3ad5b562a4 gas/testsuite/gas/mips/sd-forward.d
+fa7437542d4aef669710063a2926e92b gas/testsuite/gas/mips/sd-n32.d
+87d71bc3fa496aee97088759d60903cf gas/testsuite/gas/mips/sd-n64.d
+5880c6e94a3765d0b348b66d53ce341c gas/testsuite/gas/mips/sd.d
+5672bc2ab0c07f19403beeb3efb7dbf2 gas/testsuite/gas/mips/sdc1-forward-n32.d
+d90262acbdb4dd25cfbbb0922f7d5541 gas/testsuite/gas/mips/sdc1-forward-n64.d
+5ae1786b22b9c5213e2828f89d469ed0 gas/testsuite/gas/mips/sdc1-forward.d
+c3c713a2f3fef70c4669aa33571d85d8 gas/testsuite/gas/mips/sdc1-n32.d
+969daae3ea1d02d9e213534bdc1700c0 gas/testsuite/gas/mips/sdc1-n64.d
+5966d368ce31b1011c90f4e187725813 gas/testsuite/gas/mips/sdc1.d
+61e0b7643c32dabdde089aadf8f77e83 gas/testsuite/gas/mips/set-arch.d
+9bd9d69167ebd4fd9f8479644f983776 gas/testsuite/gas/mips/set-arch.l
+99703d8a479f56f255c88de6b9e4aad5 gas/testsuite/gas/mips/set-arch.s
+07e4b7c46d6e7f1efa76f09aed05b729 gas/testsuite/gas/mips/smartmips.d
+6302eb2a242d1bc67c42ed4e285702f4 gas/testsuite/gas/mips/smartmips.s
+5c695a603e00085a7b10d1bba40797fc gas/testsuite/gas/mips/sync.d
+ffcef95bbefaf3a59e62285fe39bda76 gas/testsuite/gas/mips/sync.s
+b4313e24f964607fe9300e864defaddc gas/testsuite/gas/mips/tls-ill.l
+18b2a1f39231651953b79b9d00a78cc7 gas/testsuite/gas/mips/tls-ill.s
+9f54485c542c260c134cd55e3eaaa225 gas/testsuite/gas/mips/tls-o32.d
+63d081834c2f6458bb42a7cba5d64585 gas/testsuite/gas/mips/tls-o32.s
+b4b76f2a25aa887e2f997e5494bdc4ee gas/testsuite/gas/mips/tmips16-e.d
+716d43b55d294bf024b0ff1ec6280187 gas/testsuite/gas/mips/tmips16-f.d
+a0de20c8d7285243fe357bed568d89cb gas/testsuite/gas/mips/tmipsel16-e.d
+0afcc057897c5e8af6d8a1e7bea9785b gas/testsuite/gas/mips/tmipsel16-f.d
+c6faf677ae575fdd8391967f98b55d74 gas/testsuite/gas/mips/trap20.d
+f7d1e998d2057f17dfa22040879794f5 gas/testsuite/gas/mips/trap20.s
+cab593c0de28116e5e1f095538ad94d2 gas/testsuite/gas/mips/trunc.d
+6206de0006f0d3b3552c2c4de6d4d40c gas/testsuite/gas/mips/trunc.s
+2f5b7d1678cf1b6e1165a4b867e8dff9 gas/testsuite/gas/mips/uld.d
+4dfc3d5c85518711401b4a15122c6cea gas/testsuite/gas/mips/uld.s
+9ce58dbafe045ce8413548e10bdb9463 gas/testsuite/gas/mips/uld2-eb.d
+99e062d0d9c5f975f916ea3b3a0661fc gas/testsuite/gas/mips/uld2-el.d
+e28802806bd5ef68b52dd91e1920e9cd gas/testsuite/gas/mips/uld2.s
+42668d2b953e17216dad9ff5b51a11b8 gas/testsuite/gas/mips/ulh-pic.s
+c35b62f79f0859a346aa71ff356d81f1 gas/testsuite/gas/mips/ulh-svr4pic.d
+71ad3063c1e7c793ed4ab3721bb8c010 gas/testsuite/gas/mips/ulh-xgot.d
+6b4a6661af69823228f094c7320aaaad gas/testsuite/gas/mips/ulh.d
+d4c1e8e91b66176d0dd73baa903929d9 gas/testsuite/gas/mips/ulh.s
+09b2c179d09dcf2b7efe3a1bc1242d55 gas/testsuite/gas/mips/ulh2-eb.d
+96c237c1e09d8b1c26630c300f5544ae gas/testsuite/gas/mips/ulh2-el.d
+1a9824601df339b12b2b6b333d9736e5 gas/testsuite/gas/mips/ulh2.s
+421b8bf53bb68929c956dd5dd46b1e87 gas/testsuite/gas/mips/ulw.d
+ed019962f9d9264d80ac0a3ec29faaf3 gas/testsuite/gas/mips/ulw.s
+114a410a05c97c0c8fe619c65636c92e gas/testsuite/gas/mips/ulw2-eb-ilocks.d
+6ad67afaca99229225f074045961238d gas/testsuite/gas/mips/ulw2-eb.d
+4c5dc6056ad1d321bc9c6e61e0e4a37f gas/testsuite/gas/mips/ulw2-el-ilocks.d
+f7ea6b4feb2825b1d09522cb95ff16c9 gas/testsuite/gas/mips/ulw2-el.d
+912b64752da5c9169377e7a2cb776ab1 gas/testsuite/gas/mips/ulw2.s
+b199151899739fe3da4095dd802a0ace gas/testsuite/gas/mips/usd.d
+c4f723634a0f69013515468922c55a04 gas/testsuite/gas/mips/usd.s
+fe1d1ac2ee009fc930cc33e7fffe4bc4 gas/testsuite/gas/mips/ush.d
+fa20601e0c404bd38a90edf5f43077bb gas/testsuite/gas/mips/ush.s
+4e63b49d94ab23228fcb90c6349e8f39 gas/testsuite/gas/mips/usw.d
+59b429c3b2d1ea0daf2377204cbdfdca gas/testsuite/gas/mips/usw.s
+3edd410a5aa5b9f5d758b1adc1f49fb9 gas/testsuite/gas/mips/vr4111.d
+30e841daffadd416efdc8d69e610f1c0 gas/testsuite/gas/mips/vr4111.s
+630a9c9515c3337805d3eeb106ffc5a2 gas/testsuite/gas/mips/vr4120-2.d
+5cb0c12ce626a0552294c07722d422ea gas/testsuite/gas/mips/vr4120-2.s
+839e011f47b7731b49c02091ac9af98c gas/testsuite/gas/mips/vr4120.d
+1e3c30fb569bbfc45123d1bd5e8fad0a gas/testsuite/gas/mips/vr4120.s
+0ad5fb6419e64d84ea516918fa2dadb9 gas/testsuite/gas/mips/vr4130.d
+2891c907beff2e31797795d557c22731 gas/testsuite/gas/mips/vr4130.s
+ee28818ae758acdf2c080395529c25aa gas/testsuite/gas/mips/vr5400.d
+786e24034bb7f726b0b9a2c655602ee4 gas/testsuite/gas/mips/vr5400.s
+609370d69163331ef4f43a6c87fd4dcb gas/testsuite/gas/mips/vr5500.d
+288a96b264d206269b98bac834ca2eac gas/testsuite/gas/mips/vr5500.s
+bd571532865b58cabf0532fd93b135d8 gas/testsuite/gas/mips/vxworks1-el.d
+7214aef9a23acc2ebca1e68761edc8e5 gas/testsuite/gas/mips/vxworks1-xgot-el.d
+3e2660b36dd36e1e9b6f89dc54f33109 gas/testsuite/gas/mips/vxworks1-xgot.d
+49d8ecc14ff63470df46a1a1a006e6a8 gas/testsuite/gas/mips/vxworks1.d
+c967b7a1e8670a369febcfcd753e2278 gas/testsuite/gas/mips/vxworks1.s
+6e9fe7b2712a73f0a416254ee174cb9e gas/testsuite/gas/mips/xlr-ext.d
+1aa62a7471838fa8aa62563674ec1e31 gas/testsuite/gas/mips/xlr-ext.s
+128cd247dc9b5fc1e4095be0175c68b3 gas/testsuite/gas/mmix/1cjmp1b-n.d
+74c43d2897673eba56f848f3c9e582e9 gas/testsuite/gas/mmix/1cjmp1b-r.d
+82a7b6f8756a9c25cf63220f51d50894 gas/testsuite/gas/mmix/1cjmp1b.d
+89f0c4732be8764cdb492101c5e133fb gas/testsuite/gas/mmix/1cjmp1b.l
+881ba3c8d1533c13a83890a3cf4e81ac gas/testsuite/gas/mmix/1cjmp1b.s
+0c469f8d44281c440d85bce259e57c30 gas/testsuite/gas/mmix/1cjmp1brn.d
+2f9164da7cf8c6ebdfd5bcdc577e240d gas/testsuite/gas/mmix/1hjmp1b.d
+66b71f9ca4e8ab891eceb33d8b70edea gas/testsuite/gas/mmix/1hjmp1b.l
+1fdbcd1b5b2d1e8ac693bc3930a280ef gas/testsuite/gas/mmix/1hjmp1b.s
+31f69a67b9b7e148d0d728174b9bafad gas/testsuite/gas/mmix/align-1.d
+539e37c235abebf695117c2a7aac792b gas/testsuite/gas/mmix/align-1.s
+3d4c45f5bc305c6a14f64435f7a9ae85 gas/testsuite/gas/mmix/basep-1.d
+9ff16f3fd803fbd6de4ec3c4fc1b91d5 gas/testsuite/gas/mmix/basep-1.s
+fd1e7e6eee81c3d8c509281af313b55e gas/testsuite/gas/mmix/basep-10.d
+1ba8130d377a89330e9a2961035698d3 gas/testsuite/gas/mmix/basep-10.s
+7f349e2b425f77806eae81d24f051542 gas/testsuite/gas/mmix/basep-11.d
+9df5d5188edfe9b7ecdc684ffb4bbcc9 gas/testsuite/gas/mmix/basep-11.s
+c2b0896cf0de5c5865b3117e6e9a04ee gas/testsuite/gas/mmix/basep-1b.d
+afc588fb075a882468e4c3298fa3d1e8 gas/testsuite/gas/mmix/basep-2.d
+41ee35510d8e57395b691de4dc61af2c gas/testsuite/gas/mmix/basep-2.s
+df421621dc5559b5e55c1a0648273539 gas/testsuite/gas/mmix/basep-2b.d
+7157178c9b964e7bef9ba57fa4bb5ea0 gas/testsuite/gas/mmix/basep-3.d
+574cafac4ef562c1d5504795856b02c8 gas/testsuite/gas/mmix/basep-3.s
+2347f514fe5c947dbe8baa6623bb02fd gas/testsuite/gas/mmix/basep-3b.d
+287b843c8f84ddac104ebad25e7f7b1a gas/testsuite/gas/mmix/basep-4.d
+7796faaec560c84b3ef2e985ff22da9a gas/testsuite/gas/mmix/basep-5.d
+fa2a52315eac56422ec4731ba486a318 gas/testsuite/gas/mmix/basep-6.d
+f2ed48da2536f27d417ee6dd44afe132 gas/testsuite/gas/mmix/basep-7.d
+f928a5ad8bf3feaf6e0012a112d43fb9 gas/testsuite/gas/mmix/basep-8.d
+05d195120b5515ee53b3684af0886c8f gas/testsuite/gas/mmix/basep-8.s
+a868944a5fb6ba375aeb1ff7a162ada8 gas/testsuite/gas/mmix/basep-9.d
+a6c575e157fa1cc3b59fe0673bfdb774 gas/testsuite/gas/mmix/basep-9.s
+b2ccf513d3e172062ef36001bd19004b gas/testsuite/gas/mmix/bspec-1.d
+3b3451908e6ec6497534ad8235de53ed gas/testsuite/gas/mmix/bspec-1.s
+16f4ef3b0b253022999a04e9fe6cf611 gas/testsuite/gas/mmix/bspec-2.d
+f179d58461561c9d5fe4a315ba7279be gas/testsuite/gas/mmix/bspec-2.s
+9f493737447c1fe99300fe898e942dac gas/testsuite/gas/mmix/builtin1.d
+686fcfd029e0d7ae40eb9d1ebd2a555f gas/testsuite/gas/mmix/builtin1.s
+6c65a8e088aecf2bb80cb6ace221eb80 gas/testsuite/gas/mmix/builtin2.d
+783e769408bbf34e0bf246ba16be1a10 gas/testsuite/gas/mmix/builtin3.d
+9c4981a2ff3306cbfd4a6350a0e2f201 gas/testsuite/gas/mmix/byte-1.d
+213a0515cb4eabca23e4b8085a9a1541 gas/testsuite/gas/mmix/byte-1.s
+02b986dd3dfa5073b6bbbaee237d17a0 gas/testsuite/gas/mmix/bz-c.d
+19eb7e29b6312fb84cd4b8369206e437 gas/testsuite/gas/mmix/bz-c.s
+5895af0967fa9047e444e0e99736f87d gas/testsuite/gas/mmix/comment-1.d
+2b581d9ded37c949d0f9cd141cedde94 gas/testsuite/gas/mmix/comment-1.s
+4dadef05d27959743a4924d0f7f7924d gas/testsuite/gas/mmix/comment-2.d
+d9246d1719c9b5d96f744ae8a5d335a0 gas/testsuite/gas/mmix/comment-2.s
+62ee5afe80f72260d3faadfd4639d5ff gas/testsuite/gas/mmix/comment-3.d
+74e34ff3097862ae06dbfd8c742ef966 gas/testsuite/gas/mmix/comment-3.s
+e44938b0115eb4a01f1c6045416ff2a8 gas/testsuite/gas/mmix/cons-1.d
+0f36dac5b63ac65c4efae27fefd1a5b0 gas/testsuite/gas/mmix/cons-1.s
+68dc1c1251793e1f023eacb74d2d1aab gas/testsuite/gas/mmix/cons-2.d
+818d889dd03c1058405e86e7843d6a6c gas/testsuite/gas/mmix/cons-2.s
+ae68ba46ad3fd3d3b84e2caebb37e266 gas/testsuite/gas/mmix/err-bpo1.s
+1275b4e1c37d61021d17ce82415846ba gas/testsuite/gas/mmix/err-bpo2.s
+5a8e1cadcb9e90eed7439e0a216627e2 gas/testsuite/gas/mmix/err-bpo3.s
+74b2268a44f4615c6644eeefe45fb86b gas/testsuite/gas/mmix/err-bpo4.s
+8283e195bad143522dc6644924732ee1 gas/testsuite/gas/mmix/err-bpo5.s
+8fa6fbacee3649b1add139c544bed44d gas/testsuite/gas/mmix/err-bpo6.s
+6316596656e1df8f51a8e6bdbcfeb5be gas/testsuite/gas/mmix/err-bspec-1.s
+662ecee5325d52a264c4bb079d0a5fb4 gas/testsuite/gas/mmix/err-bspec-2.s
+fda06bc9042df00a4a79d696fc4f7c16 gas/testsuite/gas/mmix/err-bspec-3.s
+a651af237184e7463946f57a60d6be60 gas/testsuite/gas/mmix/err-bspec-4.s
+adc04c51cb3a3f504e288ee68f7debc7 gas/testsuite/gas/mmix/err-bspec-5.s
+b2f1d968f9de4a9e15a68e57335a2c24 gas/testsuite/gas/mmix/err-builtin.s
+f3cda197e002842b0c3ce05aa49d7fca gas/testsuite/gas/mmix/err-byte1.s
+8539931858377bd48fe6cf3c2ca912d8 gas/testsuite/gas/mmix/err-byte2.s
+9d5e96de1ac7e0aaae3a4efdf6d78679 gas/testsuite/gas/mmix/err-case.s
+59c8d12a69e35db0f258ad6bc61b0f1f gas/testsuite/gas/mmix/err-fb-1.s
+ac70409b365e20a8d76cd491151b1910 gas/testsuite/gas/mmix/err-greg1.s
+ba8862575d249330cf0798f6a1b4d001 gas/testsuite/gas/mmix/err-insn.s
+7a3d8d8405a5b30c635a3b477d625cb4 gas/testsuite/gas/mmix/err-is-1.s
+fdac5781e3da1a1ae49cac9fc82a9c5e gas/testsuite/gas/mmix/err-loc-1.s
+c8d723f14ad9f6d4aa2a5e17d597a0bc gas/testsuite/gas/mmix/err-loc-10.s
+549875cfbefa9e91ace5418b8c2e4685 gas/testsuite/gas/mmix/err-loc-2.s
+fae8e890f6ec60834383086e4512c99d gas/testsuite/gas/mmix/err-loc-3.s
+e485810c615531746f6ed3e9bc68fbc7 gas/testsuite/gas/mmix/err-loc-4.s
+f0aebec806255dc6887a2874de66292b gas/testsuite/gas/mmix/err-loc-5.s
+08b3644351e747e28015f9d078b3bbc2 gas/testsuite/gas/mmix/err-loc-6.s
+e66b98b1e174189295e48a180225ccaf gas/testsuite/gas/mmix/err-loc-7.s
+fc1de659115cb734fbff9eab020ec4ae gas/testsuite/gas/mmix/err-loc-8.s
+7f7691babb2bd47ef0a700eb700e51d5 gas/testsuite/gas/mmix/err-loc-9.s
+b148a5329404e262c827ea25df4a6152 gas/testsuite/gas/mmix/err-local1.s
+2f3e9b4550f4465d96e5483ae03be2e7 gas/testsuite/gas/mmix/err-local2.s
+4f1054a028c3a46a2d585d9e412ab7df gas/testsuite/gas/mmix/err-ser-1.s
+0f418d2c4355113cc9dcd588493ef24f gas/testsuite/gas/mmix/err-set.s
+8d1de4b18d36ebaffcc7ea7d6333b891 gas/testsuite/gas/mmix/err-swym1.s
+b107b4f8542a6d9d1c062c1c6421dc18 gas/testsuite/gas/mmix/expr-1.d
+ac2ab6118a2572de016beab5067f2b5a gas/testsuite/gas/mmix/expr-1.s
+7698e6b9d14deb45266bb0ea05239c05 gas/testsuite/gas/mmix/fb-1.d
+bb7f46033941ffb2e1cc3877a0da5320 gas/testsuite/gas/mmix/fb-1.s
+1069e96f41887e614d981c612f1c7b7a gas/testsuite/gas/mmix/fb-2.d
+4af0f1f0e1f787f3398b118b30868b8f gas/testsuite/gas/mmix/fb-2.s
+3be4957a0437d6bce8245a8ab812aa37 gas/testsuite/gas/mmix/get-op-r.d
+e38f71e500ffcaf19723536468a223d6 gas/testsuite/gas/mmix/get-op.d
+b45d4ccee0f87bfba2e0f97d93789362 gas/testsuite/gas/mmix/get-op.l
+11e3fca7cf0cb9cbdc42277fc2eee4e6 gas/testsuite/gas/mmix/get-op.s
+0f58bfd23d1021aec899fc7d1ba314be gas/testsuite/gas/mmix/geta-c.d
+6c55f79cc4e6ac3df0fbb2ce3b207431 gas/testsuite/gas/mmix/geta-c.s
+25e0b5f18f5465d009fec57744a869a4 gas/testsuite/gas/mmix/geta-op-r.d
+2fe216ed1abb558c66d43e1c16437aa5 gas/testsuite/gas/mmix/geta-op.d
+b657bbecda4773680389a4c4bd9b6902 gas/testsuite/gas/mmix/geta-op.l
+7c7f7a7f7171c12c7210fa2b8e80ccc5 gas/testsuite/gas/mmix/geta-op.s
+4221d993bd9f8353c290f497b488d372 gas/testsuite/gas/mmix/geta-opn.d
+0014085389ed74190a50d06229cac927 gas/testsuite/gas/mmix/geta-oprn.d
+1873fa761a9a364894a226fa79b74cdd gas/testsuite/gas/mmix/greg1.d
+4dcdef09957ba93c577caa743a2c96ed gas/testsuite/gas/mmix/greg1.s
+b59a6a7c02ac8c7c5efca4c3e68af2ec gas/testsuite/gas/mmix/greg1a.d
+1873fa761a9a364894a226fa79b74cdd gas/testsuite/gas/mmix/greg2.d
+650cd7ff2e361240741dad80b02caa44 gas/testsuite/gas/mmix/greg2.s
+13ba3aa7e3a9b720e3144e0e31688403 gas/testsuite/gas/mmix/greg2a.d
+66863b0cc43aaa3cdd1e0a7a4f5d7ebf gas/testsuite/gas/mmix/greg3.d
+fbccd7f708d3c8019c9ea83addc1fe52 gas/testsuite/gas/mmix/greg3.s
+dcc3a1a5751220ab763ffa79d41d6e6f gas/testsuite/gas/mmix/greg4.d
+cb7cc10a15aa6c6e59f1363ed8d9c289 gas/testsuite/gas/mmix/greg4.s
+f17175fc300e10669f8fe527ae44dfc0 gas/testsuite/gas/mmix/greg5.d
+c916fda34b8833bb842b3632f4f7f7d1 gas/testsuite/gas/mmix/greg5.s
+bf0ab68484f4dd0159b9a0d4c08d818f gas/testsuite/gas/mmix/greg6.d
+5225ff7b64ac1f436e34063b599fc14b gas/testsuite/gas/mmix/greg6.s
+2e13249dba8af8235b9098457a446bba gas/testsuite/gas/mmix/greg7.d
+942dd6a809b486ff9d5fe222a392e858 gas/testsuite/gas/mmix/greg7.s
+45a8a180a1168cddd351fc14c1ae938e gas/testsuite/gas/mmix/greg8.d
+4c2bdf546eec695fc77da75ea4ee00eb gas/testsuite/gas/mmix/greg8.s
+10157ad0e4001dd9fa08a15848ab3b75 gas/testsuite/gas/mmix/greg9.d
+9a7a1d211583d6a01c010c74d7d6bc56 gas/testsuite/gas/mmix/greg9.s
+f75e30a43a1cf086fcb98936ddc8448d gas/testsuite/gas/mmix/hex-r.d
+8c4fbc467f6b4539cd2cb9be8da3c582 gas/testsuite/gas/mmix/hex.d
+cd4e8dca887b719af2fb05753a02cc10 gas/testsuite/gas/mmix/hex.l
+18f0bccec0ea1ebbc96c0cc73f0b0d54 gas/testsuite/gas/mmix/hex.s
+ffef9d561521432621d7d3755077ddb1 gas/testsuite/gas/mmix/hex2.d
+5abe2a4e4b7f785802c6c1b4d23c5206 gas/testsuite/gas/mmix/hex2.s
+c06a1dff5b48b8064fd1bd062449e9ed gas/testsuite/gas/mmix/is-1.d
+e4e256dd068fdf987f8acbdb99aa434f gas/testsuite/gas/mmix/is-1.s
+98bbfda658e53f01fcb8ce24f14a4b72 gas/testsuite/gas/mmix/jmp-op-n.d
+0cad9077ab17ccf0569686e9df692e06 gas/testsuite/gas/mmix/jmp-op-r.d
+2ebb9cde592cebd83ee28e5f0f67fa1a gas/testsuite/gas/mmix/jmp-op.d
+b393cff736e29e563b062f5ea5685b21 gas/testsuite/gas/mmix/jmp-op.l
+46c5951d3b2fc15eedc95ef05851280c gas/testsuite/gas/mmix/jmp-op.s
+3259465258c4c0be7a905496dacf85bd gas/testsuite/gas/mmix/jmp-oprn.d
+8896b95a48e891268d9ec6f5c2c6db2b gas/testsuite/gas/mmix/jump-c.d
+a9884fc1a72db8aa308ec235f4e563bf gas/testsuite/gas/mmix/jump-c.s
+bdf70a3557efcad03bd8cee4f05d0ef3 gas/testsuite/gas/mmix/list-in-n.d
+329782e004db82b64e4c10c64d7eb1c7 gas/testsuite/gas/mmix/list-in-r.d
+5e22741d4a07ac3c73798b525fa107dc gas/testsuite/gas/mmix/list-in-rn.d
+2fe1ce272754ce0e6570de1acea60dda gas/testsuite/gas/mmix/list-insns.d
+0c73a39e078a7740205f49c6c1d35d1e gas/testsuite/gas/mmix/list-insns.l
+b9ffc6c91ccb57078a96ba9d4ca6ccb9 gas/testsuite/gas/mmix/list-insns.s
+336901c2592954e7b98195b2b0dc0af6 gas/testsuite/gas/mmix/list-pseudoints.l
+d3f1df27ab65809fcf90d66c9e1dca47 gas/testsuite/gas/mmix/list-pseudoints.s
+d3ba5e5a432a80e318dbbf7c1ffcaeba gas/testsuite/gas/mmix/list-textfirst
+ea622b544f91c9cac4f4c0eccb074384 gas/testsuite/gas/mmix/list-textfirst.l
+cbb1d5ec86a35f9c9fb9a65cb509bbfb gas/testsuite/gas/mmix/list-textfirst.s
+f3b3bc86c4b76d8c3bbee0ee678139eb gas/testsuite/gas/mmix/loc-1.d
+63f7de75c9a5e51ff9ab0ad7fdb0b9f4 gas/testsuite/gas/mmix/loc-1.s
+1add4b42756c41e8fba548ab513e2dd5 gas/testsuite/gas/mmix/loc-2.d
+df7a8704912ff84da190cf6c74cde8bf gas/testsuite/gas/mmix/loc-2.s
+337d5e73fc389f901c875ba1578f1961 gas/testsuite/gas/mmix/loc-3.d
+46d704c994c961cdf0e42ed4d102473f gas/testsuite/gas/mmix/loc-3.s
+611bac92266b0f73088d10ad61ce5993 gas/testsuite/gas/mmix/loc-4.d
+c0be6d63230ab4cc233cb7639712a703 gas/testsuite/gas/mmix/loc-4.s
+a7a91321cf3a4b8030fada3cb782c89f gas/testsuite/gas/mmix/loc-5.d
+a40ae1e12f135a531776202e96ca056c gas/testsuite/gas/mmix/loc-5.s
+b0c0526e93df70f14736854c7a164206 gas/testsuite/gas/mmix/loc-6.d
+a012f6a9d738c51806bc9069c6ecc233 gas/testsuite/gas/mmix/loc-6.s
+ea0084c7135c97a97a7817cb2c434b00 gas/testsuite/gas/mmix/loc-7.d
+502e95ffb524e5c5d3a16b6fbf217eec gas/testsuite/gas/mmix/loc-7.s
+6231c6e8b6d3ef4a6f029e4d901bb605 gas/testsuite/gas/mmix/local-1.d
+34c218e4cb651e644775be70e617677a gas/testsuite/gas/mmix/local-1.s
+213cb0057034d949a2fce44fcb4fc6f5 gas/testsuite/gas/mmix/locall1.d
+06034183f0a150f972e5ae0729f907ed gas/testsuite/gas/mmix/locall1.s
+ed4a9ed51e658c2c1d27a461a043501e gas/testsuite/gas/mmix/mmix-err.exp
+b62d9cfb0d03ebcb0ff4649069792a81 gas/testsuite/gas/mmix/mmix-list.exp
+e3f4cb38a6356be19d3d6e53eac7959a gas/testsuite/gas/mmix/mmix.exp
+441c50bf582f978db4380515d9918898 gas/testsuite/gas/mmix/odd-1.d
+2f7a35c2988104cc8ffc49e6b00f82a1 gas/testsuite/gas/mmix/odd-1.s
+bc215b49fb312e4642d2aeaa0ba2a87f gas/testsuite/gas/mmix/op-0-1.d
+241721593347f7d44d9dad3757aa4208 gas/testsuite/gas/mmix/op-0-1.s
+962835a331b121a3b659bf2c199119e4 gas/testsuite/gas/mmix/op-0-1s.d
+d80eac57925f764b03531287d930d748 gas/testsuite/gas/mmix/op-0-2.d
+8974b44d390a07de5f2f06f48073d69f gas/testsuite/gas/mmix/pop-op-r.d
+62ab5bcab4914622624e9df6a32563d9 gas/testsuite/gas/mmix/pop-op.d
+5a01a6f993695b312673cef6eff040f5 gas/testsuite/gas/mmix/pop-op.l
+5bed8bb92bcee70e3b7048f34f88abb8 gas/testsuite/gas/mmix/pop-op.s
+820396b2a50c73167dca87af0bd9bc42 gas/testsuite/gas/mmix/prefix1.d
+0e79466a08de17dab3a0e33a92e3fd71 gas/testsuite/gas/mmix/prefix1.s
+fdbf170ea94d3f39f6e336345f309992 gas/testsuite/gas/mmix/prefix2.d
+15ab43fbfcc930a1b55ddf5ef7479cbe gas/testsuite/gas/mmix/prefix2.s
+2d8032487109e24b8140e4bef8d022a1 gas/testsuite/gas/mmix/prefix3.d
+8d09c63b0c427cdcd918872021f32ac5 gas/testsuite/gas/mmix/prefix3.s
+7a1f96374983984f58d50db393350e25 gas/testsuite/gas/mmix/pseudo-1.d
+79522ead0cb1ef910b010d2a11f5aa50 gas/testsuite/gas/mmix/pseudo-1.s
+dc644b1202b89dde4c55ad43b6918a08 gas/testsuite/gas/mmix/pushgo-op-r.d
+bd8593ef76058b289d20304526f35630 gas/testsuite/gas/mmix/pushgo-op.d
+69440a759f9bf3db92cef5d2b24cee49 gas/testsuite/gas/mmix/pushgo-op.l
+131b9ee7dd3d141c6952e6ac02988e1b gas/testsuite/gas/mmix/pushgo-op.s
+e61f87906afcf2c1ebd413ded69362d3 gas/testsuite/gas/mmix/pushj-c.d
+2d9d62c614612030d82a5c36d3fb377d gas/testsuite/gas/mmix/pushj-c.s
+a0c20764ef7e0b1ceb5b94bfe1bbceea gas/testsuite/gas/mmix/pushj-cs.d
+fb4aae82df74f1b81679cb764bb2e597 gas/testsuite/gas/mmix/put-op-r.d
+a775433aabbc28f4de55ff967b901687 gas/testsuite/gas/mmix/put-op.d
+f92f56bf4cc05890b07040f5cfe025f2 gas/testsuite/gas/mmix/put-op.l
+018bb9b0e95057b4decb22f5c9feacf1 gas/testsuite/gas/mmix/put-op.s
+8f1f6562a9da6870378512529f91f48e gas/testsuite/gas/mmix/reg-op-r.d
+f89d0ea15d7a2d1eab2840c7a9d49eaf gas/testsuite/gas/mmix/reg-op.d
+582d2a7b84f54c5d54653cfbf1c0d3d1 gas/testsuite/gas/mmix/reg-op.l
+745990eee9776b12c4a897d6bc3c6d6e gas/testsuite/gas/mmix/reg-op.s
+c8f2963976ac4f7ce95a3495cbe28015 gas/testsuite/gas/mmix/reg3-op-r.d
+e28cd26f439118017f4693c5c41863b1 gas/testsuite/gas/mmix/reg3-op.d
+cbfaf1d2c8ba3064c58bbf7574f04fa6 gas/testsuite/gas/mmix/reg3-op.l
+172f1341911863bdff4d2a6a239801a1 gas/testsuite/gas/mmix/reg3-op.s
+5b4ce8d1dd2320e060206a1a1ee3f852 gas/testsuite/gas/mmix/regt-op-r.d
+1acef71c452293140a6d5f7e97a87706 gas/testsuite/gas/mmix/regt-op.d
+0850ed03f3ffa8434f98d0d681229d11 gas/testsuite/gas/mmix/regt-op.l
+e302ca8bef6a6b0acf0334aaf0faf9ec gas/testsuite/gas/mmix/regt-op.s
+e868589e4d591b2e298076f91c052340 gas/testsuite/gas/mmix/regx-op-r.d
+c977b2c8ccbac2c67faf49d13b23b655 gas/testsuite/gas/mmix/regx-op.d
+980378185cf82f1e38a36e783428455a gas/testsuite/gas/mmix/regx-op.l
+90c16cb8a8af0c6a70adb99659f96766 gas/testsuite/gas/mmix/regx-op.s
+69a6e5487f3416bf43b2aa2278977e72 gas/testsuite/gas/mmix/regy-op-r.d
+8a395f5e533d5b4230a5144a41df4194 gas/testsuite/gas/mmix/regy-op.d
+0272aed229ff57d24aa8a7c0b3469543 gas/testsuite/gas/mmix/regy-op.l
+2507661cd901f97d1609ff4d932eb789 gas/testsuite/gas/mmix/regy-op.s
+5a29d8701884532f845385ba34eab024 gas/testsuite/gas/mmix/relax1-n.d
+d1c04da647167a2cfc16623ad19e9ddc gas/testsuite/gas/mmix/relax1-r.d
+57169c96a3bee990d8e03003644ac129 gas/testsuite/gas/mmix/relax1-rn.d
+d29b5176b1a13ddd482cc59101e9e9c3 gas/testsuite/gas/mmix/relax1.d
+38ac570097c9cdda8d8eecaf04092601 gas/testsuite/gas/mmix/relax1.l
+587232b031ce2501a918dc361c8406e1 gas/testsuite/gas/mmix/relax1.s
+448d4c29937e946865b434f0f5efd21d gas/testsuite/gas/mmix/relax2.d
+417ae7c1e0d143bfd2163eb33f2e5d0e gas/testsuite/gas/mmix/relax2.s
+d65f74eb228073ca8269c2ae8efc41b4 gas/testsuite/gas/mmix/reloc16-n.d
+0e68f5aeb91077a2ef1f0a5482675db6 gas/testsuite/gas/mmix/reloc16-r.d
+863f07fe1c4e926ae8bd783966f4311b gas/testsuite/gas/mmix/reloc16.d
+75561a53cf10f62341b7ca23fba9a7cc gas/testsuite/gas/mmix/reloc16.l
+51355d73d525e07d1956c845b71481c9 gas/testsuite/gas/mmix/reloc16.s
+b436025a6918a74cf9ca753e04ad72ca gas/testsuite/gas/mmix/reloc8-r.d
+88ab983d053a9aff9ec04afa37b23c05 gas/testsuite/gas/mmix/reloc8.d
+989a380fe8b838e5c80a53908e40971d gas/testsuite/gas/mmix/reloc8.l
+b74d47dfcb362faa2f510011378cca7c gas/testsuite/gas/mmix/reloc8.s
+4884296463db88343efd6f8a54838429 gas/testsuite/gas/mmix/relocl-n.d
+a876c35b97351eb3d69074dde61e08b5 gas/testsuite/gas/mmix/reloclab-r.d
+83e613f897714a4c8531742f7e350d87 gas/testsuite/gas/mmix/reloclab-rs.d
+088218002fb1ecb82172820dd678e1af gas/testsuite/gas/mmix/reloclab-s.d
+d5539f113c067f66a439de11e059f532 gas/testsuite/gas/mmix/reloclab.d
+966ca1ba7f8f17bee81c63682a596aa5 gas/testsuite/gas/mmix/reloclab.l
+f4c3a919a430c75cb8be68f5cd7c3fc3 gas/testsuite/gas/mmix/reloclab.s
+173d401cb28062237e5b1560e4600f02 gas/testsuite/gas/mmix/reloclrn.d
+1d9a899c4d72757bf6b0b9b6a71f1044 gas/testsuite/gas/mmix/relocxrn.d
+10449c3a7fd6cc8d0594c9e6f8f5521a gas/testsuite/gas/mmix/resume-op-r.d
+9a0517a889e73842824013ab2d618f69 gas/testsuite/gas/mmix/resume-op.d
+c97820027f0575acea8ed1087337b7d8 gas/testsuite/gas/mmix/resume-op.l
+cfcbf81639741ae8db615671a48cde7d gas/testsuite/gas/mmix/resume-op.s
+56f09db3c3a16b368d12a64ed52f10d5 gas/testsuite/gas/mmix/round2-op-r.d
+f44e6dfcdba0773b16440711f17ef80b gas/testsuite/gas/mmix/round2-op.d
+1aef9aa7620ec2177d66895af5488615 gas/testsuite/gas/mmix/round2-op.l
+30d227deb194d05c613d9f4b26a9a3f3 gas/testsuite/gas/mmix/round2-op.s
+02af45b86e2f31a0b42e0a74bc9c8055 gas/testsuite/gas/mmix/roundi-op-r.d
+85d7513fec13879d3cc3fa4c962c7fc3 gas/testsuite/gas/mmix/roundi-op.d
+2badf0c4966760eb25394dc6c58357cc gas/testsuite/gas/mmix/roundi-op.l
+161db8f66e10dc2b57c677be95904a77 gas/testsuite/gas/mmix/roundi-op.s
+002d7c47d1e264de3378e4b672234fc1 gas/testsuite/gas/mmix/roundr-op-r.d
+674ded804328a5865b1a8dcea25b4dc7 gas/testsuite/gas/mmix/roundr-op.d
+04d09bbbab585fdb54c69b919576bde4 gas/testsuite/gas/mmix/roundr-op.l
+d166315a18bdcd867def21596f0e6bf2 gas/testsuite/gas/mmix/roundr-op.s
+4bd440c1a61accbe310ffa5861d020d0 gas/testsuite/gas/mmix/save-op-r.d
+9a299ee55c14d36ac1e13fd7e21b7b5b gas/testsuite/gas/mmix/save-op.d
+78c603b16a7e5be2c1ebdbccc0d9a1fb gas/testsuite/gas/mmix/save-op.l
+999db326e26e668c1ba94d31d55ccee4 gas/testsuite/gas/mmix/save-op.s
+0fdb19b2dc462b298af175eb285d2898 gas/testsuite/gas/mmix/set-r.d
+7c171ada0e52fa57483a77bdcbfd1125 gas/testsuite/gas/mmix/set.d
+8dff7be7e45d5eb791c4b5e27264cd34 gas/testsuite/gas/mmix/set.l
+11f3a945d2d4e214bf4888fdd5c6b56b gas/testsuite/gas/mmix/set.s
+a8c21be21f3bced6a45be5d01a88f780 gas/testsuite/gas/mmix/swym-op-r.d
+bc60c7fcffe92acf0775a1f4304bee64 gas/testsuite/gas/mmix/swym-op.d
+7612ba4cbb41c0bb297608198b8475f6 gas/testsuite/gas/mmix/swym-op.l
+c266e0350f0a98e0f59ddf449a51bb63 gas/testsuite/gas/mmix/swym-op.s
+b99245530dc2e11af83c3aad154c3ead gas/testsuite/gas/mmix/swym-opreg1.d
+84a56d4349b75f1311b85c3a6974d28c gas/testsuite/gas/mmix/swym-opreg1.s
+afb30c789d4c23ed647e32277051cac6 gas/testsuite/gas/mmix/swym-opreg2.d
+98350e39352e863aa7c97decb3af66d9 gas/testsuite/gas/mmix/swym-opreg2.s
+69082e0d2ad1c1f54cb86d6892cb63d6 gas/testsuite/gas/mmix/sym-1.d
+0ffe574581a6090acc3369be14ded4d4 gas/testsuite/gas/mmix/sym-1.s
+098846e2a99f9013d95ef10e6ec50839 gas/testsuite/gas/mmix/sync-op-r.d
+040bd52ba089ab30f6291e9d3c4e278d gas/testsuite/gas/mmix/sync-op.d
+e93db32d7d2c78650597fd5ed2ad7b6d gas/testsuite/gas/mmix/sync-op.l
+c79a98acc47d182f9630727f61ca34f3 gas/testsuite/gas/mmix/sync-op.s
+0ed09fdc04112dbc6311ad68a08c0c5f gas/testsuite/gas/mmix/two-op-r.d
+406103963689254a6b360a5f1a449d6e gas/testsuite/gas/mmix/two-op.d
+ca6a23d92e67c5494c7b63f332b05226 gas/testsuite/gas/mmix/two-op.l
+434868110d14ace5244b3ae9dfc75a5d gas/testsuite/gas/mmix/two-op.s
+5e004b78b5149d38f3c432b9ae264238 gas/testsuite/gas/mmix/unsave-op-r.d
+91dbac2579bdc75ab5d604fa49c278f0 gas/testsuite/gas/mmix/unsave-op.d
+5b91809e619a66d9cee34dd2280bfaee gas/testsuite/gas/mmix/unsave-op.l
+f5d6823ab550c4ea97a04f14883a0c0d gas/testsuite/gas/mmix/unsave-op.s
+7030c201bb92111a1da35bc8b48c84d1 gas/testsuite/gas/mmix/weak1-s.d
+7124dcb9a6f4203ee9433df1cccbc17e gas/testsuite/gas/mmix/weak1.d
+64ee02ee7066364e0eadac9c2c9508d6 gas/testsuite/gas/mmix/weak1.s
+126c93f26971e35435da3ff524100936 gas/testsuite/gas/mmix/zerop-1.d
+f2a213b73ea27ef622ba39f9ec2987ec gas/testsuite/gas/mmix/zerop-1.s
+c58581edb3ac95b306f040bbc2c16678 gas/testsuite/gas/mn10200/add.s
+5acee31afe42e7665198639d3ec8a999 gas/testsuite/gas/mn10200/basic.exp
+9411b8190fac3aad748696ea30bba5b0 gas/testsuite/gas/mn10200/bcc.s
+efa2232339233fab01e2fe7ca6c2f3cf gas/testsuite/gas/mn10200/bccx.s
+aabf4d8010190b4ebadb4d4dce938282 gas/testsuite/gas/mn10200/bit.s
+3f51363ea969316f726dc5529904888e gas/testsuite/gas/mn10200/cmp.s
+874b6bc0f155eecbaffecb93a5642416 gas/testsuite/gas/mn10200/ext.s
+b117e36f812c2eb416156d441f26185e gas/testsuite/gas/mn10200/logical.s
+ea8599975d89b01f9aaba3b664947565 gas/testsuite/gas/mn10200/mov1.s
+3386b14210f3cd873dde20c6166162c6 gas/testsuite/gas/mn10200/mov2.s
+a0b70b1cc9ec5e2783428dcc483ee86d gas/testsuite/gas/mn10200/mov3.s
+6e62837e492b9688e29de9625549b402 gas/testsuite/gas/mn10200/mov4.s
+e37e1b13a06659d005a650675dcf3935 gas/testsuite/gas/mn10200/movb.s
+f6ce44141165b449c3cb51ebe486e98e gas/testsuite/gas/mn10200/movbu.s
+32dfde7ae5c5361c03c746481b7aee8d gas/testsuite/gas/mn10200/movx.s
+1ff17a9ade34cc243a67f4e5afb1873e gas/testsuite/gas/mn10200/muldiv.s
+723c642cba806a6ce6dda8c3881ef233 gas/testsuite/gas/mn10200/other.s
+21b9f1644f5a62fdc603b218708648f3 gas/testsuite/gas/mn10200/shift.s
+7ac2864fac53b6b778c4aba3efb1a2e1 gas/testsuite/gas/mn10200/sub.s
+02ba050389aba06e510285db97af882b gas/testsuite/gas/mn10300/add.s
+5eef807cd489dde2f30b1632fd6afbfe gas/testsuite/gas/mn10300/am33-2.c
+07dafb504919d0d5fa6316d1dd0340b5 gas/testsuite/gas/mn10300/am33-2.d
+57ded92cab96f53eab4d7545c5da40f4 gas/testsuite/gas/mn10300/am33-2.s
+3bb44c38f4fbab75c570123d255c57f8 gas/testsuite/gas/mn10300/am33.s
+3c5d635c4e529ba743b2062006ab8a00 gas/testsuite/gas/mn10300/am33_2.s
+dfe221c89fe65738a2360f231c2b6794 gas/testsuite/gas/mn10300/am33_3.s
+593bbef9992d2f23b91f4ea176b28957 gas/testsuite/gas/mn10300/am33_4.s
+62ae8325beee2a8180a39e125355ba2b gas/testsuite/gas/mn10300/am33_5.s
+90dcb58c5eb364963271d465adac73ef gas/testsuite/gas/mn10300/am33_6.s
+ae77079066eabaa0cc3b0db53f95500b gas/testsuite/gas/mn10300/am33_7.s
+631a649907d27d317cee70928c6c27fc gas/testsuite/gas/mn10300/am33_8.s
+58a3b61a4e5b2332b7ccfc3345aeaca7 gas/testsuite/gas/mn10300/basic.exp
+9411b8190fac3aad748696ea30bba5b0 gas/testsuite/gas/mn10300/bcc.s
+b15e3790182c7ba25b21a4185f2a55e6 gas/testsuite/gas/mn10300/bit.s
+647a9c89d56b470cb3fef7839a32834d gas/testsuite/gas/mn10300/cmp.s
+3828018d3809076328223d9d3c1e48c5 gas/testsuite/gas/mn10300/ext.s
+f6db4622ff4a88bc9ebf44aec56bc245 gas/testsuite/gas/mn10300/extend.s
+f2b5260884e40bc35f8694403da505f8 gas/testsuite/gas/mn10300/logical.s
+d3d15560536638ff0e38a1cd6bea678a gas/testsuite/gas/mn10300/loop.s
+e554261a6559698fe2722b841dd1b5e3 gas/testsuite/gas/mn10300/mov1.s
+1453d74ea0d60c24e054f9443aa26fe4 gas/testsuite/gas/mn10300/mov2.s
+8d091f8bc50686881c4104f6dc9b6ab7 gas/testsuite/gas/mn10300/mov3.s
+e5df57ebcca23c27b6c2399780e9a146 gas/testsuite/gas/mn10300/mov4.s
+93c07b147a466794f87711cdcf29260b gas/testsuite/gas/mn10300/mov5.s
+384122880cfa3e6fa4a8b08c350c62a8 gas/testsuite/gas/mn10300/movbu.s
+075a3ba2756f3cf09ac1926492ccf614 gas/testsuite/gas/mn10300/movhu.s
+155d5bd225998f0bf8a65d543230adc5 gas/testsuite/gas/mn10300/movm.s
+c5809213cfc952d8ef5a1ba5dc19ac45 gas/testsuite/gas/mn10300/movpc.l
+5ecbbe391a24afd44dd2bcb121f73a34 gas/testsuite/gas/mn10300/movpc.s
+aa222b2f903cde208e2be8c3972e3c8a gas/testsuite/gas/mn10300/muldiv.s
+9cbe29313848966be970cdecdc09e7b2 gas/testsuite/gas/mn10300/other.s
+dfc3d45f9e6158dc60df0f11f0a5fcd8 gas/testsuite/gas/mn10300/pr11973.d
+652b95875e861a99061ca410b572e2d4 gas/testsuite/gas/mn10300/pr11973.s
+84f424dbb966962121e979865351bc32 gas/testsuite/gas/mn10300/pr997.l
+6d91b72c1022fe9177282cbf4177a861 gas/testsuite/gas/mn10300/pr997.s
+6fbf563cb5f0417f1854771c757bcc2d gas/testsuite/gas/mn10300/relax.d
+db8f508c818806185ed645d0f3cc9b2d gas/testsuite/gas/mn10300/relax.s
+293fa500fcb2e85940176a545801b046 gas/testsuite/gas/mn10300/shift.s
+ed9edfd6a0eea176f6974376bd321b10 gas/testsuite/gas/mn10300/sub.s
+961a51d51720b650cb383a6aa510d4d9 gas/testsuite/gas/mn10300/udf.s
+5ffc5b9af8cd82e8ff721a39d583a9cb gas/testsuite/gas/mri/char.d
+016f8a629209b7d7313c4a4e3c37c909 gas/testsuite/gas/mri/char.s
+4b259d611c94c789b73572d5b0863a5b gas/testsuite/gas/mri/comment.d
+84c565776c727a1f5986b5d8d39ba13e gas/testsuite/gas/mri/comment.s
+aca62962ea755bbc1aaeb56b32c53974 gas/testsuite/gas/mri/common.d
+7b6bfc157de809b518bb8820f293f78c gas/testsuite/gas/mri/common.s
+c3db4a831aaf5f148abfde517fff14f2 gas/testsuite/gas/mri/constants.d
+df9ad2212b59618793c7080d043c14e4 gas/testsuite/gas/mri/constants.s
+2258c0445fb6b2005828c77b96c0520a gas/testsuite/gas/mri/empty.s
+78ea402a49a07c1a325a03a28be37678 gas/testsuite/gas/mri/equ.d
+83843a1d515852848a6fc1054a984792 gas/testsuite/gas/mri/equ.s
+ceec8399c07b39bee0a4ea07eece6d2f gas/testsuite/gas/mri/expr.d
+21255a47a57f7e00246072b10af9b641 gas/testsuite/gas/mri/expr.s
+bc4dc43acfdddf49f994908c7e26abe6 gas/testsuite/gas/mri/float.d
+4f7756364607bd924587f3689b8b16b7 gas/testsuite/gas/mri/float.s
+913e1698712694951d89ee24192adc91 gas/testsuite/gas/mri/for.d
+70d33f74b91d862f9f9b6c4dd173ce58 gas/testsuite/gas/mri/for.s
+ca4307ea874afdb8a107b9d4c044ce26 gas/testsuite/gas/mri/if.d
+ba2ce35b0663f91570cc0725695f2f0f gas/testsuite/gas/mri/if.s
+4b03ed946465a72d469e2aeff2ddd6f5 gas/testsuite/gas/mri/immconst.d
+f1f5c0c93c39409b9a82cf956d42e39e gas/testsuite/gas/mri/label.d
+ed17ca77ec65b8492a436ad06a222487 gas/testsuite/gas/mri/label.s
+0a83209c98b7595f7f0746456efa0243 gas/testsuite/gas/mri/moveml.d
+4e57586c117d02856b0a1e2fe1e199cb gas/testsuite/gas/mri/moveml.s
+18b692b0e34dbcf4e04942615cd0d9f0 gas/testsuite/gas/mri/mri.exp
+8efb23fdda5c25b88340a543cfeac30f gas/testsuite/gas/mri/repeat.d
+1684df3330c24639ae41d526858b2a80 gas/testsuite/gas/mri/repeat.s
+67ebccbf76d5002534361af491abfddf gas/testsuite/gas/mri/semi.d
+da1cdabe1af1adb9735d5d609dccca32 gas/testsuite/gas/mri/semi.s
+f1f4f19cd59ca00cd8ba1bac7a168d5f gas/testsuite/gas/mri/while.d
+cdd1ad74d4bb0147f32931b83c7383be gas/testsuite/gas/mri/while.s
+3f1f7f6d07db2c788e7151606795585a gas/testsuite/gas/msp430/msp430.exp
+9bf928c45624dccd08f6738ba89d135e gas/testsuite/gas/msp430/opcode.d
+7aac268e1d72f0297f919284f1fb3502 gas/testsuite/gas/msp430/opcode.s
+d7a16a3bc92230b4d592bbd4e87380c1 gas/testsuite/gas/mt/allinsn.d
+7a4c57d16a6d86c35116aed72b075942 gas/testsuite/gas/mt/allinsn.s
+3d9e0c76ac292498ab35ea0982abb1d6 gas/testsuite/gas/mt/badinsn.s
+4d2dcdb363d2f27fbf8abe1f2ebbf5b0 gas/testsuite/gas/mt/badinsn1.s
+3e442cb56c28162e51fc72327dc01c3c gas/testsuite/gas/mt/badoffsethigh.s
+348a658fb73a449ee0f05dc7a0a5e66d gas/testsuite/gas/mt/badoffsetlow.s
+e0b8e33d55f0908382ec2958e56746ac gas/testsuite/gas/mt/badorder.s
+7341f098f821fb2bbff60760e71c69c8 gas/testsuite/gas/mt/badreg.s
+be8f979079c42cd218688a06a69d5952 gas/testsuite/gas/mt/badsignedimmhigh.s
+be6d01290eae0b220a95cb29c6b33459 gas/testsuite/gas/mt/badsignedimmlow.s
+205b6842294d5db7cdcd6989b2ce5d0c gas/testsuite/gas/mt/badsyntax.s
+7130385ceb73e9687e0f84ffc49049dc gas/testsuite/gas/mt/badsyntax1.s
+fa2cf99574f4fe9a7bc377642eeb8a3c gas/testsuite/gas/mt/badunsignedimmhigh.s
+421ee6bb49c170add850a3fee23441f0 gas/testsuite/gas/mt/badunsignedimmlow.s
+876d751b737fa5d5b633f219294cfdc3 gas/testsuite/gas/mt/errors.exp
+bc9b891086b60b59c357a0d853aa022f gas/testsuite/gas/mt/ldst.s
+4f8e71e8cf331137c3f336aa91c6ad45 gas/testsuite/gas/mt/misc.d
+5b80d5b239649f291fea8d4dd2a7c9d0 gas/testsuite/gas/mt/misc.s
+715cbc3a022f4cab8186ef1649526e8e gas/testsuite/gas/mt/ms1-16-003.d
+3aebdfcb7a46df06bea5ada46f5aecce gas/testsuite/gas/mt/ms1-16-003.s
+79eea58fd131fc4a04503206807045f4 gas/testsuite/gas/mt/ms2.d
+7581af9f6edce4220949225f386bd96b gas/testsuite/gas/mt/ms2.s
+29bfbb076d69ac98656871de79c8dd02 gas/testsuite/gas/mt/msys.d
+ed7cc04edf600fa086f611443fde050e gas/testsuite/gas/mt/msys.s
+cb2ddf46ed713e3cee1a889a471db947 gas/testsuite/gas/mt/mt.exp
+ce4f15550816f84e686171c52ab4caba gas/testsuite/gas/mt/relocs.d
+42a48f92eaf736f7bdca950d44b5bc4e gas/testsuite/gas/mt/relocs.exp
+72a6accb16fa3045da840a35c403c8af gas/testsuite/gas/mt/relocs1.s
+9f35d2e0a5e23346e97fb52443fd3ee0 gas/testsuite/gas/mt/relocs2.s
+0f4b7bc9edd01dc9fb590e23e45d45ba gas/testsuite/gas/openrisc/addi.d
+805e669e897b3dc1b7062edc45f09d7f gas/testsuite/gas/openrisc/addi.s
+745fc0a057d8ba007c88fffe2c0bb434 gas/testsuite/gas/openrisc/allinsn.d
+a55077cac843dd6c1af5269546a2ab6b gas/testsuite/gas/openrisc/allinsn.exp
+f3d8381e0e379835553db59cba908711 gas/testsuite/gas/openrisc/allinsn.s
+974b82bc6b25c55d65c70bbd83a8d41a gas/testsuite/gas/openrisc/lohi.d
+d906479f52be5937ccbcb6b59e18d265 gas/testsuite/gas/openrisc/lohi.s
+c9192e457e9a372b6ee3168d396ecc69 gas/testsuite/gas/openrisc/store.d
+1b1f6769e09f9c308a211891e04ff8c8 gas/testsuite/gas/openrisc/store.s
+279b16c6aed695ea2c29a0f6073cf85b gas/testsuite/gas/pdp11/absreloc.d
+15748007ed4702c3c820d16fe8946c98 gas/testsuite/gas/pdp11/absreloc.s
+e25229a10a540fcfadebf33b23951dce gas/testsuite/gas/pdp11/opcode.d
+4a2b0b7305e0d85696a3d5761dc2ace5 gas/testsuite/gas/pdp11/opcode.s
+1b954c5cd69de5059a2972ddda82ae7c gas/testsuite/gas/pdp11/pdp11.exp
+f87710fc72b7634b268501b2b519b7e2 gas/testsuite/gas/pe/aligncomm-a.d
+4b69133546e836426d88e02b2beda29d gas/testsuite/gas/pe/aligncomm-a.s
+b01266334ed3408665a7c3989d570a6e gas/testsuite/gas/pe/aligncomm-b.d
+18f2ca846a66a7f8e4cec8dfa893b24c gas/testsuite/gas/pe/aligncomm-b.s
+e5850882d7661e18312b7adad553ba84 gas/testsuite/gas/pe/aligncomm-c.d
+022aa068d648739647e467cd768f603f gas/testsuite/gas/pe/aligncomm-c.s
+d3a74136f06cb60020d9d8662b5b9702 gas/testsuite/gas/pe/aligncomm-d.d
+87202c1ee6ceb1e831ae1b57d2506121 gas/testsuite/gas/pe/aligncomm-d.s
+8db13f60b148d508907272f47f73a247 gas/testsuite/gas/pe/pe.exp
+14b5e450c7b52ba42af8e3f5b122d024 gas/testsuite/gas/pe/peseh-x64-2.d
+c83a67346c3e46e5611a265a633a5a22 gas/testsuite/gas/pe/peseh-x64-2.s
+b0753685dfb74e4bb7f0be57ed939f47 gas/testsuite/gas/pe/peseh-x64-3.d
+43f4160b55994ea4fa63fb39f7d16287 gas/testsuite/gas/pe/peseh-x64-3.s
+8519bb15460ddbec27adeaccea61eb55 gas/testsuite/gas/pe/peseh-x64-4.d
+ab50d587344a92b5d17ec3f25a41456d gas/testsuite/gas/pe/peseh-x64-4.s
+491ebe2ffdd55231ea9b442af7bf51f3 gas/testsuite/gas/pe/peseh-x64-5.d
+d64bddbfb416d9c12eac3c17f91e120b gas/testsuite/gas/pe/peseh-x64-6.d
+00fa72a6fef11012e7948717b2524dfc gas/testsuite/gas/pe/peseh-x64.d
+4f321b37833fe37deb73da16942735d3 gas/testsuite/gas/pe/peseh-x64.s
+cf1138a294ab7d6e8d2ff734630730dc gas/testsuite/gas/pe/section-align-1.d
+5ab659a1d28d273669e669582aa5474f gas/testsuite/gas/pe/section-align-1.s
+914530c1307708d7330b54a2f5e1b113 gas/testsuite/gas/pe/section-align-3.d
+579e63be19d5a83aa3edeebbcaf0d852 gas/testsuite/gas/pe/section-align-3.s
+4f21032e12b25c725ee4802b8f48158e gas/testsuite/gas/pe/seh-x64-err-1.l
+7ea8bc872bacd31fbb83e507025e3e1b gas/testsuite/gas/pe/seh-x64-err-1.s
+f3a7124485548781ba12a81c18199e29 gas/testsuite/gas/pj/ops.d
+308d2177ed3b3b087d977e46c924fc0c gas/testsuite/gas/pj/ops.s
+a6667ed6fc7b116477f95ef897bc5444 gas/testsuite/gas/pj/pj.exp
+7998e80131b20ddc9a87ffcbc55296e6 gas/testsuite/gas/ppc/476.d
+615b428c516fa68eba4e68423890d0d6 gas/testsuite/gas/ppc/476.s
+783f255e9001b203c80913c86e2fa05a gas/testsuite/gas/ppc/a2.d
+ae55fc8dcb8fb87afb6d4db30c00bda3 gas/testsuite/gas/ppc/a2.s
+995494cc71eaac0de2d6d0df022d432e gas/testsuite/gas/ppc/aix.exp
+1144f1624f81b2bf57bc44af8e76f9bb gas/testsuite/gas/ppc/align.s
+78ff04d1b9877427fac95abb3a2c09c2 gas/testsuite/gas/ppc/altivec.d
+da75a2b442b5537342a3fb0ae74a0510 gas/testsuite/gas/ppc/altivec.s
+5bb0cea3beaab672ecd7271c2d380d8d gas/testsuite/gas/ppc/altivec_and_spe.d
+25f7266b7d2018e3d6ada872b8781bec gas/testsuite/gas/ppc/altivec_and_spe.s
+a4f8e829f2bbb753b664451a0431cb97 gas/testsuite/gas/ppc/altivec_xcoff.d
+01ef4fa1c9223585909c1314f1412a43 gas/testsuite/gas/ppc/altivec_xcoff.s
+75d993b58f0b561c72c03e42b6c041b3 gas/testsuite/gas/ppc/altivec_xcoff64.d
+87d11cb66e10ea7d6a07293cb45e8799 gas/testsuite/gas/ppc/altivec_xcoff64.s
+172a30768ef125e522380000282ea0c7 gas/testsuite/gas/ppc/astest.d
+5254d1fc440f434a46e97eb96b2735c1 gas/testsuite/gas/ppc/astest.s
+8f377d927ab1a25ef74a404f9da39852 gas/testsuite/gas/ppc/astest2.d
+679686746eeffb584f428b319e1d60e7 gas/testsuite/gas/ppc/astest2.s
+7f23c4ac16d5164a642a0d9250d4d57e gas/testsuite/gas/ppc/astest2_64.d
+144fe63958860bc4f47e29e6d334f7de gas/testsuite/gas/ppc/astest2_64.s
+aa6e3da11bbf146a7269f12df1e53c48 gas/testsuite/gas/ppc/astest64.d
+7b85234004920f7134df77e2f1931c13 gas/testsuite/gas/ppc/astest64.s
+814b9384e012ee9f649e6512cd5bc73d gas/testsuite/gas/ppc/booke.d
+882fec9b42306ecf5c5ca234dd38c7d4 gas/testsuite/gas/ppc/booke.s
+b965e2e9b08bb26c920ddbca2d3ceae3 gas/testsuite/gas/ppc/booke_xcoff.d
+2a6d0fd8f30dbe6f0a2ee6e441b5073f gas/testsuite/gas/ppc/booke_xcoff.s
+fbe1c4c6def5d4e68a43405632093a2b gas/testsuite/gas/ppc/cell.d
+53a63b8602866480769f214b0d02de49 gas/testsuite/gas/ppc/cell.s
+6615dec72032153ab2d1c2c0ab15cc17 gas/testsuite/gas/ppc/common.d
+4d4a527779dba30e1417156fe5750979 gas/testsuite/gas/ppc/common.s
+5a245bc1775a0187259ad57ec31020e3 gas/testsuite/gas/ppc/e500.d
+8cae9a555b49d3b88b9fa9e41c384edc gas/testsuite/gas/ppc/e500.s
+6bbc9dfd706bc2ac8993f34dbabc5691 gas/testsuite/gas/ppc/e500mc.d
+709c5b7abcd10261e08338d6148c307d gas/testsuite/gas/ppc/e500mc.s
+05271d9cdd13ebcebd7662d04285d5af gas/testsuite/gas/ppc/generate.sh
+c587e1022ddcd82f029387d1a0a27562 gas/testsuite/gas/ppc/machine.d
+ff408fd5be06ddf91987583d7e49c157 gas/testsuite/gas/ppc/machine.s
+889666cde90be418b342903e4c6da6d2 gas/testsuite/gas/ppc/power4.d
+7e32750fd4d73ca95fc2905868e37cf0 gas/testsuite/gas/ppc/power4.s
+c730a7c1697ce1b178e7ca65e6335a45 gas/testsuite/gas/ppc/power4_32.d
+5db471f78c7a217e8f43a9e38e1e66de gas/testsuite/gas/ppc/power4_32.s
+073d34c5f86176192cdc9c7912a3c885 gas/testsuite/gas/ppc/power6.d
+2edeead6e85ba8e901425779110950cd gas/testsuite/gas/ppc/power6.s
+29187993668e409cb616c535a22f339f gas/testsuite/gas/ppc/power7.d
+d708d009c1d3702668c49c3373a7ed92 gas/testsuite/gas/ppc/power7.s
+5292ae05d49968dd862bed7e3bb35f25 gas/testsuite/gas/ppc/ppc.exp
+9f2fd57e7d204e3e0cd75d1987a95e78 gas/testsuite/gas/ppc/ppc750ps.d
+8199ee4187314431099549660ceee5a1 gas/testsuite/gas/ppc/ppc750ps.s
+b136c48de02880f92600e15502079cbd gas/testsuite/gas/ppc/range.l
+437da5d8021d72cd229eb7b18d244451 gas/testsuite/gas/ppc/range.s
+a2fd6cc4d110fec6262d9c0a97e193c1 gas/testsuite/gas/ppc/range64.l
+db560f88366d3c0e44c52d438bf7fa47 gas/testsuite/gas/ppc/range64.s
+adbd495a100eb239848aea6e37340a88 gas/testsuite/gas/ppc/regnames.d
+b318f99332cc8875eeb2b1e63205efa4 gas/testsuite/gas/ppc/regnames.s
+afc3d3ec2754e8dc184c562e4de77a4a gas/testsuite/gas/ppc/reloc.d
+e2ca5089c4db50f97a3bec4e6f71854f gas/testsuite/gas/ppc/reloc.s
+d2e3625ca66a7c30b9270f806c67c877 gas/testsuite/gas/ppc/simpshft.d
+b09f6e7ab2e1416379f9512d1abe3afc gas/testsuite/gas/ppc/simpshft.s
+52c2f10e54b1b94b494715da3c2a71f2 gas/testsuite/gas/ppc/test1elf.asm
+c6c389f73289209973a4a40e2f7af221 gas/testsuite/gas/ppc/test1elf32.d
+69b9dc5b20503079be857e83ad7e6d24 gas/testsuite/gas/ppc/test1elf32.s
+c6ae7aea99b8f7d5b690081c72f616f4 gas/testsuite/gas/ppc/test1elf64.d
+a8ab8683a00320673194096739412def gas/testsuite/gas/ppc/test1elf64.s
+6b5dede6da756c49ce5fc9127d0a6510 gas/testsuite/gas/ppc/test1xcoff.asm
+f34f706916a8b93f41cf7f809563ddee gas/testsuite/gas/ppc/test1xcoff32.d
+68e09cd1bae67cb9bdbb378d986ebc5b gas/testsuite/gas/ppc/test1xcoff32.s
+7d26a371daee8844b9a874ea29f62b16 gas/testsuite/gas/ppc/textalign-xcoff-001.d
+b60a4ad89a80b60d95fc5d73ec5e02d9 gas/testsuite/gas/ppc/textalign-xcoff-001.s
+b0f0a0f307149b00c01eb907197dd91e gas/testsuite/gas/ppc/textalign-xcoff-002.d
+74b87caae3a9839dbb0d84ac48ebbb93 gas/testsuite/gas/ppc/titan.d
+2717127e5f63eb13a54799851eedf836 gas/testsuite/gas/ppc/titan.s
+5bcbd729e2c0f44f2afd013db1ba0dee gas/testsuite/gas/ppc/vsx.d
+521a68b0b766533df40b6a6a6ec922bd gas/testsuite/gas/ppc/vsx.s
+08ea62f057fad4130ab4496b10773187 gas/testsuite/gas/ppc/xcoff-branch-1-32.d
+8e884141661fddd367c49211824ec4dc gas/testsuite/gas/ppc/xcoff-branch-1-64.d
+80d642f21d1d3f314901cc58bd518132 gas/testsuite/gas/ppc/xcoff-branch-1.s
+f5c9bc0a18773d1bf7f99806a00efdfb gas/testsuite/gas/ppc/xcoff-dwsect-1-32.d
+d6eaed6c0ca0de13aa3cee67f499030b gas/testsuite/gas/ppc/xcoff-dwsect-1-64.d
+ac5681bad739dbc93a0593b34dd4e884 gas/testsuite/gas/ppc/xcoff-dwsect-1.s
+1f3ca01c9d7afa8a580c73ee371fee03 gas/testsuite/gas/ppc/xcoff-ref-1.l
+1e195c4e7e61cabafec65c9c47e4a7ad gas/testsuite/gas/ppc/xcoff-ref-1.s
+71c5f6565eae6138dec18a7c3133bbd8 gas/testsuite/gas/rx/abs.d
+57914b62441aa5b32fb9760c2935321f gas/testsuite/gas/rx/abs.sm
+b048d3c4304a81e88a3b8a664ba02721 gas/testsuite/gas/rx/adc.d
+2d6940166d3de253abc100cd9a1282a6 gas/testsuite/gas/rx/adc.sm
+ae3b6977397e67d3a744df524e8c7e11 gas/testsuite/gas/rx/add.d
+7aa990f49aa4148434319eeb8d257d4d gas/testsuite/gas/rx/add.sm
+99dc23f583f78027f3f212f87a56a59b gas/testsuite/gas/rx/and.d
+ed68765a3d896b4aaa9120e4424f9665 gas/testsuite/gas/rx/and.sm
+169174d211e0c66b6ce470293348a3aa gas/testsuite/gas/rx/bclr.d
+deb0d8eeb4cb7fb3edea5dc757efcf32 gas/testsuite/gas/rx/bclr.sm
+a89fd288ed65b1f109da51e63f86c1f9 gas/testsuite/gas/rx/bcnd.d
+1b11c559ec4f7c09813f3f35310677e4 gas/testsuite/gas/rx/bcnd.sm
+00749ad683564469b6ab3c84992a2b53 gas/testsuite/gas/rx/bmcnd.d
+f17cd72c85ff80e16b8331c8ac2514d6 gas/testsuite/gas/rx/bmcnd.sm
+bebb6132c423435536a0ae7c8f23055f gas/testsuite/gas/rx/bnot.d
+bece335b9a213f01289e78a9905553c6 gas/testsuite/gas/rx/bnot.sm
+ceb6c219e179ccba72ce842356e0230b gas/testsuite/gas/rx/bra.d
+bcf0d139b5a7d7bf5d286921b40e8eb8 gas/testsuite/gas/rx/bra.sm
+56fdc89391eed35b67c1b581225759d9 gas/testsuite/gas/rx/brk.d
+210e06f27c91dfeea0b15367be8182a5 gas/testsuite/gas/rx/brk.sm
+7364258a2f719f9fa11522149936caa5 gas/testsuite/gas/rx/bset.d
+3803c911b7f99eef6a1188ad241d1fca gas/testsuite/gas/rx/bset.sm
+cfd26e005712b4c8e6e251655444018e gas/testsuite/gas/rx/bsr.d
+bcfdf7c9037623b2dc2c2f55f78ab388 gas/testsuite/gas/rx/bsr.sm
+ac735f1b1f0a1634a620828ba0452aa4 gas/testsuite/gas/rx/btst.d
+123735debe669e405d26224fded45a1f gas/testsuite/gas/rx/btst.sm
+2070f1a4655835c842b156d761a4c3e0 gas/testsuite/gas/rx/clrpsw.d
+53b580f3aaf8e173e7b407a118197ce3 gas/testsuite/gas/rx/clrpsw.sm
+72434b2d6197ac4eb874435654876efc gas/testsuite/gas/rx/cmp.d
+9d246f343ff85cf0e39313bc3e66f1d4 gas/testsuite/gas/rx/cmp.sm
+d3d99191bf101ab81a2c5b0396b0d67b gas/testsuite/gas/rx/dbt.d
+80958735878b351e5540a9e704d545f3 gas/testsuite/gas/rx/dbt.sm
+897f3f117c7e9246cf52f8344349fb2a gas/testsuite/gas/rx/div.d
+7aa068444f2b8c9065aa84c29d7bf4a4 gas/testsuite/gas/rx/div.sm
+a5a172166694021dee0536abb39cfbb4 gas/testsuite/gas/rx/divu.d
+c0fe0690acf56e1ebb2a20fcf080951b gas/testsuite/gas/rx/divu.sm
+64ca82295b3e3527237595d64e2ec4fd gas/testsuite/gas/rx/emul.d
+e156d3cf3cefbd71e2b94bb584f14057 gas/testsuite/gas/rx/emul.sm
+4be3fb5bc2da577668fa279a0e5379ca gas/testsuite/gas/rx/emulu.d
+da20d6937cb0a93d404a7f36552f598d gas/testsuite/gas/rx/emulu.sm
+9a46e594c4281388165045e550e192cb gas/testsuite/gas/rx/explode
+be77a9ce9fe0f3fc98b9c1a5f9dee598 gas/testsuite/gas/rx/fadd.d
+ec80bf2c13f161e0e1d0eea3071b4d6d gas/testsuite/gas/rx/fadd.sm
+344785c6f3789972a52648efcefe1298 gas/testsuite/gas/rx/fcmp.d
+2e68fcf2ff2194fd41c776e5be3847be gas/testsuite/gas/rx/fcmp.sm
+25fe18b9673181e8607c9c9a8c5a4cb7 gas/testsuite/gas/rx/fdiv.d
+ce2676a80a637f40d5a58122d2fefbac gas/testsuite/gas/rx/fdiv.sm
+d8a840ad93bca4bab75e270a700dae51 gas/testsuite/gas/rx/fmul.d
+4f5f04b4bbb87ea99a0b7d6dc2fd7f5f gas/testsuite/gas/rx/fmul.sm
+bdf7fbc45d7f9d9aef69c185a3f006ac gas/testsuite/gas/rx/fsub.d
+6d8e744da2e3789c27474f208e6bcd90 gas/testsuite/gas/rx/fsub.sm
+fd84cd91b0196c3ad5911af7a61f5d2e gas/testsuite/gas/rx/ftoi.d
+cc153bcbcc2613a0b294874d83bb8801 gas/testsuite/gas/rx/ftoi.sm
+483f744974cf5b30c0caaa2d4185b78a gas/testsuite/gas/rx/gprel.d
+0b959340efd688ecd7efa4df2c1ee387 gas/testsuite/gas/rx/gprel.sm
+a55f487298c5289bf22dc2c2b40aa283 gas/testsuite/gas/rx/int.d
+932b876ccb68e904a163f31c112d48af gas/testsuite/gas/rx/int.sm
+dd8aeadae1a4c0c09404fd8829d03b33 gas/testsuite/gas/rx/itof.d
+1aa0d64b0c977f357d50740b93e1825a gas/testsuite/gas/rx/itof.sm
+fa0e692161f88294c9da57e1dd50c6a8 gas/testsuite/gas/rx/jmp.d
+50581a2620e3e6750c81bd889311e643 gas/testsuite/gas/rx/jmp.sm
+d3f51b064682737990930c85a49607cf gas/testsuite/gas/rx/jsr.d
+875b577c5716ea80ac37b10a7409b9f3 gas/testsuite/gas/rx/jsr.sm
+4cadb514c54d054ee5c48964aed8fdad gas/testsuite/gas/rx/machi.d
+9d0b79ce54c30af9142a81e05389ae2d gas/testsuite/gas/rx/machi.sm
+716c4a0604a903373c7b8c75a0973984 gas/testsuite/gas/rx/maclo.d
+80245ef6485b99eb515fa280ec4c9932 gas/testsuite/gas/rx/maclo.sm
+80e574bf0a58a211c77e6bd24a40bd24 gas/testsuite/gas/rx/macros.inc
+47d54c96fb80856510f0ff8bf6866fa2 gas/testsuite/gas/rx/make-d
+9a862758ff038db92ecba963bc9e8f2b gas/testsuite/gas/rx/max.d
+acea9f2e9d6300fe32b280ceab296313 gas/testsuite/gas/rx/max.sm
+682159cd39cb1f88595265c178857b92 gas/testsuite/gas/rx/min.d
+d95dfd96010938f9f79c939540f18015 gas/testsuite/gas/rx/min.sm
+d9054381f9affe93f65ab35e05869af1 gas/testsuite/gas/rx/mov.d
+12ad788223244fffa744ad446f307fb7 gas/testsuite/gas/rx/mov.sm
+b6220779ac3784c717f342f0ae4d9779 gas/testsuite/gas/rx/movu.d
+17304b659a294283fee0bb2172ea3fe6 gas/testsuite/gas/rx/movu.sm
+62023c9742713644bc372ff9f67688fa gas/testsuite/gas/rx/mul.d
+62a850c704ad34ca760c68500b6305bd gas/testsuite/gas/rx/mul.sm
+39925b5c6445ece419613bd42466f521 gas/testsuite/gas/rx/mulhi.d
+815b1ab028634144eb289a39c716a26a gas/testsuite/gas/rx/mulhi.sm
+cae0c70f270750dbc742a6b048c513c5 gas/testsuite/gas/rx/mullo.d
+b849b163a8607d5c65ba288da3115365 gas/testsuite/gas/rx/mullo.sm
+b59bdded2bfff2e6484a2295683b2743 gas/testsuite/gas/rx/mvfachi.d
+a0f4216e57978ee5c9c4d3036d381cd1 gas/testsuite/gas/rx/mvfachi.sm
+8252622aaf2585e46949d0b5ab78cc72 gas/testsuite/gas/rx/mvfaclo.d
+f3216eb5860608c49c1170d136b71b43 gas/testsuite/gas/rx/mvfaclo.sm
+8aa008b398f233f643a3d5b45993d654 gas/testsuite/gas/rx/mvfacmi.d
+30dfdae83b5a43f60e426edba343a3ee gas/testsuite/gas/rx/mvfacmi.sm
+733e3b0d08ef962d3f8ae4ac4e834499 gas/testsuite/gas/rx/mvfc.d
+5654b52fb25c6f0f20155e424fdce749 gas/testsuite/gas/rx/mvfc.sm
+61de9c081ecf4f86ebc420bc49279a00 gas/testsuite/gas/rx/mvfcp.d
+7b3a558f817438f0501d9c73e39d2921 gas/testsuite/gas/rx/mvfcp.sm
+06cb093e7c94c7afc81b3e3b171ae61d gas/testsuite/gas/rx/mvtachi.d
+9d499f4b523c571b1cbacd616c46af92 gas/testsuite/gas/rx/mvtachi.sm
+731c1ae090efecb2187429ae52a3c618 gas/testsuite/gas/rx/mvtaclo.d
+2a35618a002a919c1059cd66a198486e gas/testsuite/gas/rx/mvtaclo.sm
+f31110ab1204c74f0b4ed17459e220bb gas/testsuite/gas/rx/mvtc.d
+ed6e831528d0d66abae516ca14078779 gas/testsuite/gas/rx/mvtc.sm
+61de9c081ecf4f86ebc420bc49279a00 gas/testsuite/gas/rx/mvtcp.d
+b64e28358653987bc6d67e565b758aa5 gas/testsuite/gas/rx/mvtcp.sm
+9c34af5aca08eaba86077ba8cf6fcf93 gas/testsuite/gas/rx/neg.d
+1205defe5bc999ba88485b040317aeb4 gas/testsuite/gas/rx/neg.sm
+c812ce4deb3e2378b3e0cb7cd22124c8 gas/testsuite/gas/rx/nop.d
+801d14a6810ebae1f5eefda4bac2a4d8 gas/testsuite/gas/rx/nop.sm
+7a5b7e56ad16b8d009c329b60dc95fc0 gas/testsuite/gas/rx/not.d
+4d9e9ddd2a666f58f3ecdcc1d6cda308 gas/testsuite/gas/rx/not.sm
+61de9c081ecf4f86ebc420bc49279a00 gas/testsuite/gas/rx/opecp.d
+aabdfcba99ffe44bc380af93936e8bfc gas/testsuite/gas/rx/opecp.sm
+702baf9aa1860abbb87465367e7fbf0b gas/testsuite/gas/rx/or.d
+02b41e6c1928b870b5e5b218bc7a22b9 gas/testsuite/gas/rx/or.sm
+086361006f946fe5b451edcb72340bc4 gas/testsuite/gas/rx/pop.d
+a2d84a508769af38cd42c65899b90f4c gas/testsuite/gas/rx/pop.sm
+84375b4f4560924448fcfeaad8ab4845 gas/testsuite/gas/rx/popc.d
+d8dc76e252c3f2d9f914ab95f785f243 gas/testsuite/gas/rx/popc.sm
+63dff8e2578028f02d0a2cf1f47be845 gas/testsuite/gas/rx/popm.d
+c5feb43571cf9c69b2ede29b85cc229d gas/testsuite/gas/rx/popm.sm
+1798ab935ea0e36f5e2adaf7e9b25f05 gas/testsuite/gas/rx/push.d
+5fd4b35ac45d14b26132e893546309a7 gas/testsuite/gas/rx/push.sm
+3789e0e50d71498be10ac56ab47a73b7 gas/testsuite/gas/rx/pushc.d
+31c549753fc2cdafe0b1ea22381995d4 gas/testsuite/gas/rx/pushc.sm
+897fce7adc397e67ace678380d76edf9 gas/testsuite/gas/rx/pushm.d
+31e6424c05fa0118196e58df84d46c33 gas/testsuite/gas/rx/pushm.sm
+fa888390f54df9caaefe5a0e6f5a7ed2 gas/testsuite/gas/rx/r-bcc.d
+1a99d1947bcae0662631069327fabcf0 gas/testsuite/gas/rx/r-bcc.sm
+71f21938bb576c7f6141843eb87a4456 gas/testsuite/gas/rx/r-bra.d
+c6a84826af465f62a588c342941868dc gas/testsuite/gas/rx/r-bra.sm
+622c76c337dbac3fb25bb7556ac1af86 gas/testsuite/gas/rx/racw.d
+b115d0aa01f0ea984757c3cc45658d7a gas/testsuite/gas/rx/racw.sm
+fed07e594602888169bc89562f51057f gas/testsuite/gas/rx/revl.d
+c892f2d179c9e3a054792b3dd33118ab gas/testsuite/gas/rx/revl.sm
+7fce081688df6feb995457faa6c75606 gas/testsuite/gas/rx/revw.d
+e5a36a930e316c17e8575fbe75063ba2 gas/testsuite/gas/rx/revw.sm
+474c11d100134fdd86a1d10b46c1f0de gas/testsuite/gas/rx/rmpa.d
+08d26b967c211f2348569c1628ceb2a6 gas/testsuite/gas/rx/rmpa.sm
+4b6b8909375e6c66164f0c76c54a4ca8 gas/testsuite/gas/rx/rolc.d
+7265865f4ad692797331c14cab6c7789 gas/testsuite/gas/rx/rolc.sm
+b399a4666515a870afd9747d32060bbc gas/testsuite/gas/rx/rorc.d
+0553eb6304233f40fb5b12e8427bb104 gas/testsuite/gas/rx/rorc.sm
+9ba511a30afbb28ae983871316ec4072 gas/testsuite/gas/rx/rotl.d
+ef57b6a0c7da62c2bbf0e86fe184c808 gas/testsuite/gas/rx/rotl.sm
+276f4fb95cff7811f4eeef74b387ebe9 gas/testsuite/gas/rx/rotr.d
+06945679975a1cbd6bb75438fdfd0fb1 gas/testsuite/gas/rx/rotr.sm
+a15fa81374d772b26ee907aabf411da4 gas/testsuite/gas/rx/round.d
+0cf45b8285e5d4295f80ad8f3f7e2154 gas/testsuite/gas/rx/round.sm
+e644c19442ae5298ce9b32a0221fee44 gas/testsuite/gas/rx/rte.d
+2540473fb6034a8e1b586afff89ba600 gas/testsuite/gas/rx/rte.sm
+4c62eafb55176b1936291784407f4609 gas/testsuite/gas/rx/rtfi.d
+8edf85ae4c675d6a1585f65e5812f11a gas/testsuite/gas/rx/rtfi.sm
+438cada13e53ab9998cf620935b49eb7 gas/testsuite/gas/rx/rts.d
+d142e6a1ea2d9b2f64a0439381469c73 gas/testsuite/gas/rx/rts.sm
+1a764aa7e92058ebc617c88ceb5a13f9 gas/testsuite/gas/rx/rtsd.d
+9bc425e1e24ba5dd89eed1ed408a1d0f gas/testsuite/gas/rx/rtsd.sm
+bb0ff34c3ab9c2a478cb7b8b61139a78 gas/testsuite/gas/rx/rx-asm-bad.l
+61936a3f5fbdd9820e618749640e504a gas/testsuite/gas/rx/rx-asm-bad.s
+335f82bc634a376dc49da142a9562b7c gas/testsuite/gas/rx/rx-asm-good.d
+fa505b9a2a2bd46a898da5124274132a gas/testsuite/gas/rx/rx-asm-good.inc
+7431b0d36df683582ac103ddf6cc3bc0 gas/testsuite/gas/rx/rx-asm-good.s
+30e661a36185d8069e8c71902d8f641e gas/testsuite/gas/rx/rx.exp
+b2a174be9eab23d04fdd7e2b9ac22f60 gas/testsuite/gas/rx/sat.d
+b91e0dcd4df17a9f34e22ae004d71823 gas/testsuite/gas/rx/sat.sm
+2a34fc5a5c2e863b3bc464e00bddd7dc gas/testsuite/gas/rx/satr.d
+45f2eb6f90d369713a4d41cf25b7c841 gas/testsuite/gas/rx/satr.sm
+f07335a0fd889644fa6a5129ef81b609 gas/testsuite/gas/rx/sbb.d
+c18b15801487432cf19c5cc1f9e2e257 gas/testsuite/gas/rx/sbb.sm
+215c2af504c8c549b51d5921ed7ec14e gas/testsuite/gas/rx/sccnd.d
+7850ea31940e63fa1ef45abff25a89e4 gas/testsuite/gas/rx/sccnd.sm
+45ffc89b0c059abfc7655ebd17945b2d gas/testsuite/gas/rx/scmpu.d
+2148e7ba72bb63ff13a079c5523a610c gas/testsuite/gas/rx/scmpu.sm
+d7f29b311ef64a754e51311e3ed78f38 gas/testsuite/gas/rx/setpsw.d
+5d7d7b65407c898b6e132ddb9a30519a gas/testsuite/gas/rx/setpsw.sm
+db59e893fde1f4f78ba4fcac475c5c6b gas/testsuite/gas/rx/shar.d
+18fa908f4688b2ffd620e2d43aca938a gas/testsuite/gas/rx/shar.sm
+bad9e0177093d623d9e011d7cfdf703c gas/testsuite/gas/rx/shll.d
+9a55f7ee3f5f8dcb605c6191142ff73d gas/testsuite/gas/rx/shll.sm
+faf9726fad02245d00b56cd0c48c8ab0 gas/testsuite/gas/rx/shlr.d
+2c696e1e741fa0886eaacce00c4053a3 gas/testsuite/gas/rx/shlr.sm
+5f52c9e47c7801611c9f05a5450538b0 gas/testsuite/gas/rx/smovb.d
+9925cd0ed493e324ddc0717a3162e41e gas/testsuite/gas/rx/smovb.sm
+2178875bb875b5ff557e40b29e8ad3ae gas/testsuite/gas/rx/smovf.d
+64ce003ba8a54aa405b7013c1b0c0aa0 gas/testsuite/gas/rx/smovf.sm
+62ab149d6ea0bdf5954a82b875c2f78f gas/testsuite/gas/rx/smovu.d
+c450ecc9e30aaecdffab682b4a0d34a7 gas/testsuite/gas/rx/smovu.sm
+649a7431df0ef24c61e6b53c677110f6 gas/testsuite/gas/rx/sstr.d
+51aefed80127887cd629d888dc527fe3 gas/testsuite/gas/rx/sstr.sm
+ae8608b6ebb97f867c43f55ea2517abe gas/testsuite/gas/rx/stnz.d
+9fbb8be3e0e696a884133506073c80b2 gas/testsuite/gas/rx/stnz.sm
+77b2c62de607bcec7c251c77997aba48 gas/testsuite/gas/rx/stz.d
+e2553dbd60352f13ec9a377985d3fa28 gas/testsuite/gas/rx/stz.sm
+368b8c160b4ec95a989ea8b4dc88ba0e gas/testsuite/gas/rx/sub.d
+1b02e8cb4fe0984e50e625accddd8e47 gas/testsuite/gas/rx/sub.sm
+63a20cd3d9aa6ea043777cc3000637d1 gas/testsuite/gas/rx/suntil.d
+18f454dc532d9c87732d7a505ed9f15e gas/testsuite/gas/rx/suntil.sm
+c3cbfcc3e2dd463a7384a818c39c7da7 gas/testsuite/gas/rx/swhile.d
+bbdc61efa10ce63739970dbc071c623c gas/testsuite/gas/rx/swhile.sm
+d6d3a369df3952b8be1297bab047884f gas/testsuite/gas/rx/tst.d
+e55278f40c448972bacf359a3e83f3e4 gas/testsuite/gas/rx/tst.sm
+beb0ade7b33e10c7f58571302ff64be5 gas/testsuite/gas/rx/wait.d
+bb63d5a084fb1b0b55cb7a81dfde1244 gas/testsuite/gas/rx/wait.sm
+93d86c44b26f0577648177fa7e89e017 gas/testsuite/gas/rx/xchg.d
+84a1ad4883556028255c67db6c8fd83d gas/testsuite/gas/rx/xchg.sm
+f43607cd0da97a35bf26d20aa651083e gas/testsuite/gas/rx/xor.d
+1126037c4c2e5c7aec115d5a3cfe082d gas/testsuite/gas/rx/xor.sm
+1b76c401c6cd50032e66cf61af09dc3f gas/testsuite/gas/s390/esa-g5.d
+2289221f9f2f5966a51af63b25032174 gas/testsuite/gas/s390/esa-g5.s
+049e09aef849c8721bc128ebba592aa9 gas/testsuite/gas/s390/esa-operands.d
+0c35dd354b63c1f0f41821e01f0ea870 gas/testsuite/gas/s390/esa-operands.s
+91fa53d723e9af491ea1e2d5226521c6 gas/testsuite/gas/s390/esa-reloc.d
+837bc16ac99b9589f59da79225edfbfb gas/testsuite/gas/s390/esa-reloc.s
+00b3e601216c9640b79e439522ec3e19 gas/testsuite/gas/s390/esa-z9-109.d
+ffa2cb40d426d45f26754536ff6c55c7 gas/testsuite/gas/s390/esa-z9-109.s
+d41597300ce4a636bda3d29a48ce744b gas/testsuite/gas/s390/esa-z900.d
+34ed2f2e243cd65867ae7eead4937234 gas/testsuite/gas/s390/esa-z900.s
+41ed835e38fe9d1793972b837d21af76 gas/testsuite/gas/s390/esa-z990.d
+1db311482c3a68452e62bc6faa121e74 gas/testsuite/gas/s390/esa-z990.s
+89a9f4b81b75562d70751cb289ea6103 gas/testsuite/gas/s390/s390.exp
+9058bbee5af8d3b3cec81bf0b4dce4a3 gas/testsuite/gas/s390/zarch-machine.d
+1581b062c50becf7b85a232069e4e7d8 gas/testsuite/gas/s390/zarch-machine.s
+8ba9907de5d21ef3b208cfe32af15bc0 gas/testsuite/gas/s390/zarch-operands.d
+4e6e317e3db9c6d28907c3c6c431ace1 gas/testsuite/gas/s390/zarch-operands.s
+dd37fb6426063522f96f61085b4353f1 gas/testsuite/gas/s390/zarch-reloc.d
+0eef4465981789eff7ee6d934128da4b gas/testsuite/gas/s390/zarch-reloc.s
+ae7c0030f3a9f473e069dae58e318bdd gas/testsuite/gas/s390/zarch-z10.d
+686c25255de2f035d4cb2d7fad54a977 gas/testsuite/gas/s390/zarch-z10.s
+b78428880fa7c322e5d333a7473db26f gas/testsuite/gas/s390/zarch-z196.d
+e61751b9ee411f88b550a70a3f4a97dc gas/testsuite/gas/s390/zarch-z196.s
+d5ceeba8087f472509c745613dece0de gas/testsuite/gas/s390/zarch-z9-109.d
+4208ff65cd0fb1b7f866eb68311b318d gas/testsuite/gas/s390/zarch-z9-109.s
+4e03839ebe73d46d14c2af98220f9e90 gas/testsuite/gas/s390/zarch-z9-ec.d
+81c218c7eab8f08b1613d2589cedcfbc gas/testsuite/gas/s390/zarch-z9-ec.s
+a29a94bd7596d9ab4070c61f6ee00445 gas/testsuite/gas/s390/zarch-z900.d
+886cc452d745a53a15f7b8ad3ab18325 gas/testsuite/gas/s390/zarch-z900.s
+d4b89460c301fd7f61c3281c368e5d9a gas/testsuite/gas/s390/zarch-z990.d
+8150bdbf42298de02f4a1c8eb9989161 gas/testsuite/gas/s390/zarch-z990.s
+8a1c89adbb047693ca8a9e34ec23645b gas/testsuite/gas/score/addi.d
+9f807c9d5872de3135bb10ec78c03d55 gas/testsuite/gas/score/addi.s
+cd16adfc5cd30ec14014a689aab4ebd9 gas/testsuite/gas/score/arith_32-lt.d
+5ae5ddfd989865f0275cfcad530608d1 gas/testsuite/gas/score/arith_32.d
+f39662493a5a5fe1605406d4bd00a0ee gas/testsuite/gas/score/arith_32.s
+09be25b16639d5258b0a231a7924cb12 gas/testsuite/gas/score/b.d
+9e5400dd46eb0e0bdcddce1b68c603aa gas/testsuite/gas/score/b.s
+f78a758787e84cd17a6b11c7ad5e0ea0 gas/testsuite/gas/score/bit_32-lt.d
+8e56be3955cc9c17609bb4aed76bebd4 gas/testsuite/gas/score/bit_32.d
+e1ba46344102ed4c52059505b90a0c43 gas/testsuite/gas/score/bit_32.s
+59674b6578113897a840babf4a58ff44 gas/testsuite/gas/score/bittst.d
+7ebe5068ea1b457f8a2b1e5590321485 gas/testsuite/gas/score/bittst.s
+d39d9c89aff5ba9a319d63429367c58f gas/testsuite/gas/score/br.d
+dbf50132189f8223e3192fc4ab7023c9 gas/testsuite/gas/score/br.s
+491e4d3453ea79f21ea01b140b6880be gas/testsuite/gas/score/branch_32-lt.d
+fa0db79e835f839731cbfdb6fcf4fa4f gas/testsuite/gas/score/branch_32.d
+3bc4ee7caa6c938f5987fd12159fb776 gas/testsuite/gas/score/branch_32.s
+973fd2449a69da20c46a7c2e2c1b79e6 gas/testsuite/gas/score/cmp_32-lt.d
+6db2b6be738a4a1b8a7871f6763316cd gas/testsuite/gas/score/cmp_32.d
+7e52c312976135824736792385b593ac gas/testsuite/gas/score/cmp_32.s
+1ff1246a2c0f29f56b1469d28e2e5621 gas/testsuite/gas/score/ldi.d
+17af7bab7eae4003148984673d54c4cb gas/testsuite/gas/score/ldi.s
+b8ad1458cd3016f9d7bf119701eaa4ef gas/testsuite/gas/score/load_store_32-lt.d
+0b798b22162b0ec1790a362fbeac2bfb gas/testsuite/gas/score/load_store_32.d
+9f1cdff0d54b789b6651f3c5b5add09d gas/testsuite/gas/score/load_store_32.s
+c72322cf27238e40202a7438b9f0fb4a gas/testsuite/gas/score/logical_32-lt.d
+5c13a0409663f407b2e3f5d2da3da581 gas/testsuite/gas/score/logical_32.d
+a6504948ee7984768746e8a6da48c74c gas/testsuite/gas/score/logical_32.s
+0c7ff0a53c30985ff824d658386dc73c gas/testsuite/gas/score/ls32ls16.d
+b14eba6473ab67646bac7791a891137f gas/testsuite/gas/score/ls32ls16.s
+eee4d8c816dcb23112fbc920272b8c09 gas/testsuite/gas/score/ls32ls16p.d
+1b1164c85d52444e0be834538542bbcc gas/testsuite/gas/score/ls32ls16p.s
+8a39e6a858081de923317e08781fa778 gas/testsuite/gas/score/move.d
+3b389721a2fb77af1dc9d313397538b9 gas/testsuite/gas/score/move.s
+a550b1a71ab9b27245cb27e9a11c0f3d gas/testsuite/gas/score/mv_32-lt.d
+1abdfe7d99f2ee01c17e044411b70ee0 gas/testsuite/gas/score/mv_32.d
+01ae572b8fc5e87722e959c9c1167aa8 gas/testsuite/gas/score/mv_32.s
+dd5b1ea842a48583633881aec13854cc gas/testsuite/gas/score/nop.d
+3828587e6ac2f22ab8e87adaaaa6aa47 gas/testsuite/gas/score/nop.s
+bf200398eee9c775a2ff37110c043cd1 gas/testsuite/gas/score/postlw.d
+5b77f1b87e8245cc9a37d570894914a6 gas/testsuite/gas/score/postlw.s
+e3062e05f17810c0b22c38d11fd2bcc8 gas/testsuite/gas/score/presw.d
+7bf99e258cb450b00e7a03e9d733ed91 gas/testsuite/gas/score/presw.s
+a2f278ba771fd7c290800f2228997c7f gas/testsuite/gas/score/rD_rA.d
+6d7afb0614ec0f3b9bac11969a035948 gas/testsuite/gas/score/rD_rA.s
+617c6c5b76e2a5ef4c70688263172042 gas/testsuite/gas/score/rD_rA_BN.d
+2bd56b39ff74c73344c61cb6c5e4d7a5 gas/testsuite/gas/score/rD_rA_BN.s
+f903eb0b8485b2afada9efefcae85deb gas/testsuite/gas/score/rD_rA_rB.d
+51c3f04ef872ee6bd9f2461bff0c3a3e gas/testsuite/gas/score/rD_rA_rB.s
+592a9514216fe1e841b427b8f4696bf5 gas/testsuite/gas/score/relax.exp
+317927209aa3e0afd2d5988e55ba86ff gas/testsuite/gas/score/relax_32.exp
+700303f88910ab7c3d4ca2244d4b4bb9 gas/testsuite/gas/score/relaxation_macro.h
+53e6b7f4b785a41009e6b205d5d9e883 gas/testsuite/gas/score/shift_32-lt.d
+b93417d720a444980d78911c82d85e5a gas/testsuite/gas/score/shift_32.d
+9362659ffd0fff9876685ec35f19cc53 gas/testsuite/gas/score/shift_32.s
+83623afc38654251f9190992f737167e gas/testsuite/gas/score/syscontrol_32-lt.d
+250d349607a8b4890e1e45396b57c7cd gas/testsuite/gas/score/syscontrol_32.d
+38150bf39bb92b2182170dbb598e6345 gas/testsuite/gas/score/syscontrol_32.s
+6ef2563969fd066b1b920c087c2beb6f gas/testsuite/gas/score/tcond.d
+15ce7ca423c876d27acb4bd78e298fef gas/testsuite/gas/score/tcond.s
+496db8c96a1a44ae75bc8773ebbd88ae gas/testsuite/gas/sh/arch/arch.exp
+9c9f92d72af037d87d5f68baa46e1b63 gas/testsuite/gas/sh/arch/arch_expected.txt
+557989b111b9dab8e12592d4468c3e37 gas/testsuite/gas/sh/arch/sh-dsp.s
+fad623280164b76e8e26f3fefeb21456 gas/testsuite/gas/sh/arch/sh.s
+d4b973efa0a1174ecf7403b949d8fef5 gas/testsuite/gas/sh/arch/sh2.s
+902449247a1f51fe8d542285c15186fe gas/testsuite/gas/sh/arch/sh2a-nofpu-or-sh3-nommu.s
+597181c5e888fec077372304556c6b14 gas/testsuite/gas/sh/arch/sh2a-nofpu-or-sh4-nommu-nofpu.s
+c99858e0fe821ffaa35d9f79326782be gas/testsuite/gas/sh/arch/sh2a-nofpu.s
+001175cf372c9958c8edbd1a9c673896 gas/testsuite/gas/sh/arch/sh2a-or-sh3e.s
+fcd26cad36753392667255e1206d9023 gas/testsuite/gas/sh/arch/sh2a-or-sh4.s
+a58353e9d1a147699f4b511c583787f7 gas/testsuite/gas/sh/arch/sh2a.s
+66b8534721a9a4642d334ca7ffaf493f gas/testsuite/gas/sh/arch/sh2e.s
+ba99caf1cf49cc62487f954f25421850 gas/testsuite/gas/sh/arch/sh3-dsp.s
+29d33f8568c4725231c2987e265a2368 gas/testsuite/gas/sh/arch/sh3-nommu.s
+c49644b7b8370e6427f9feaf80e70b2b gas/testsuite/gas/sh/arch/sh3.s
+4d36649f1200dcdb4901e2551b378729 gas/testsuite/gas/sh/arch/sh3e.s
+0e5fbe5b90dc04d700fc142c0bf211ad gas/testsuite/gas/sh/arch/sh4-nofpu.s
+abc2ec66346c95fa67fa4e92cbd18a02 gas/testsuite/gas/sh/arch/sh4-nommu-nofpu.s
+e3ad9d8364abb400e720c763f2015f49 gas/testsuite/gas/sh/arch/sh4.s
+b70176213702cb636c0e11124483c6c9 gas/testsuite/gas/sh/arch/sh4a-nofpu.s
+38e54ba4a93b881e8d378cc0e93e99e4 gas/testsuite/gas/sh/arch/sh4a.s
+08b3726b81639384ea64661f7b57faad gas/testsuite/gas/sh/arch/sh4al-dsp.s
+03049005440a99fbf0886c408d64336f gas/testsuite/gas/sh/basic.exp
+5587c33a91c8d806a2e2974a9ef6ec69 gas/testsuite/gas/sh/dsp.d
+4a91ff56c55784feb5b426e1873c1b72 gas/testsuite/gas/sh/dsp.s
+83d353a7646413b74d2087aa22fae13b gas/testsuite/gas/sh/err-1.s
+a0ad5112c5f2c5b716feadb70e9b9b75 gas/testsuite/gas/sh/err-at.s
+3d3e9ab1c01d5068d93f52aa77f72eb5 gas/testsuite/gas/sh/err-be.s
+2c810a3f6741effd3db6c1a9ac7f312d gas/testsuite/gas/sh/err-le.s
+1791836ba27d0f15037d2e77eb2d0c58 gas/testsuite/gas/sh/err-mova.s
+f816019c871b5e6adcc42febdfb003ff gas/testsuite/gas/sh/err-sh4a-fp.s
+d828b6f7773dbd15941f186102f3f6b8 gas/testsuite/gas/sh/err-sh4a.s
+331a6e02a9da0ad1ec9a54be37b5bd1d gas/testsuite/gas/sh/err-sh4al-dsp.s
+ed7c19de1dc911e216af593e3b2ca574 gas/testsuite/gas/sh/err.exp
+5988292c3f4864af1512190686d2e22b gas/testsuite/gas/sh/fdpic.d
+7a3473b5856b9ead9a8a884dc0ce9d55 gas/testsuite/gas/sh/fdpic.s
+70b8c1e3f6395cf992292993dcbdf601 gas/testsuite/gas/sh/fp.s
+f240f299c103126b672ea24bfab01fd1 gas/testsuite/gas/sh/pcrel-coff.d
+0935a11b35249a2ef563467f6e77b5f1 gas/testsuite/gas/sh/pcrel-coff.s
+7f46ac79bd9ca52a2105f00ffab0c4a1 gas/testsuite/gas/sh/pcrel-hms.d
+1161c6b191d101ba7565ec2de44d7856 gas/testsuite/gas/sh/pcrel.d
+bcfb9e14ef9619580a5b5245103eb424 gas/testsuite/gas/sh/pcrel.l
+823af07829673a6bdd394804057aa053 gas/testsuite/gas/sh/pcrel.s
+e9f94174ec8961010b05df00914d6846 gas/testsuite/gas/sh/pcrel2.d
+8f223941cff6690661e5bdf8244c4698 gas/testsuite/gas/sh/pcrel2.s
+aa856567dcbacd54c74725b54745760d gas/testsuite/gas/sh/pic.d
+22eafa66b3775951b6e619a3e2e5c0e0 gas/testsuite/gas/sh/pic.s
+bf92958f1e9c80b352a33f8c09edb46a gas/testsuite/gas/sh/reg-prefix.d
+5188e7fe2ea21d2ddb6b7c16949ca6e0 gas/testsuite/gas/sh/reg-prefix.s
+8f268462c23e1ff53e57ff0cf5782a49 gas/testsuite/gas/sh/renesas-1.d
+136ece0d6cadeaeef5d23bc103357880 gas/testsuite/gas/sh/renesas-1.s
+dfdcb4d6177fdba54fa0b33d2cf0d55e gas/testsuite/gas/sh/sh2a-pic.d
+6ae8401f913088baefba363e4938f8e3 gas/testsuite/gas/sh/sh2a-pic.s
+f0665e0d668ec16d2fb188dfad1d3454 gas/testsuite/gas/sh/sh2a.d
+0906d437e44d69cbce59163bac3d6431 gas/testsuite/gas/sh/sh2a.s
+f4c2ad14cd9d20c194b57df39f544a9d gas/testsuite/gas/sh/sh4a-dsp.d
+676ee564dee670f1ca81c2c18d3475a0 gas/testsuite/gas/sh/sh4a-dsp.s
+fb4380450ed880975ee81e7ae9bdea17 gas/testsuite/gas/sh/sh4a-fp.d
+db8b098c222e3c21f69d415642a75b3e gas/testsuite/gas/sh/sh4a-fp.s
+d7ca60046a60171eeea814558a0561a8 gas/testsuite/gas/sh/sh4a.d
+deb4a9d8191424a3b2c1ab3bf2ec6dd2 gas/testsuite/gas/sh/sh4a.s
+9798df68f545e2f72e6cbbcdea0edd6f gas/testsuite/gas/sh/sh4al-dsp.d
+487eb47915254c0f5d9a9eed6ea79d3c gas/testsuite/gas/sh/sh4al-dsp.s
+44470af9404b0991f0a8de53aaeb5961 gas/testsuite/gas/sh/sh64/abi-32.d
+0749692ff0242f9f07bb4fedb31c8733 gas/testsuite/gas/sh/sh64/abi-32.s
+3eb436b712f4fa178b0dd638bc6c1744 gas/testsuite/gas/sh/sh64/abi-64.d
+06245a59e3a5b739e18ecbb319af197f gas/testsuite/gas/sh/sh64/abi-64.s
+6aa899f57c5766b03146255ef6239d48 gas/testsuite/gas/sh/sh64/basic-1.d
+1e6f51fad3cd1b1d5ab2c45eea796556 gas/testsuite/gas/sh/sh64/basic-1.s
+c1f445c9c11eb4488bc89f51fe050f0e gas/testsuite/gas/sh/sh64/case-1.d
+2b296b90afe0943f8333698c664fcf49 gas/testsuite/gas/sh/sh64/case-1.s
+0235887659edff3be08bb5d027ddeafa gas/testsuite/gas/sh/sh64/case-noexp-1.d
+b81ca12af382f0818d84ddbc86fc4c40 gas/testsuite/gas/sh/sh64/crange1-1.d
+8b7d4def4f8a0794ea8afafc05807b08 gas/testsuite/gas/sh/sh64/crange1-2.d
+d0c5cb7872cd00006024e62ef6167c91 gas/testsuite/gas/sh/sh64/crange1.s
+2bedb9bdf5f758f990b1510797e5d8ea gas/testsuite/gas/sh/sh64/crange2-1.d
+2330c6f137034bb0654cd57edab0fe66 gas/testsuite/gas/sh/sh64/crange2-2.d
+760d6157b530940b62c20ddcf087fc10 gas/testsuite/gas/sh/sh64/crange2-noexp-1.d
+74b54c2a8026893d9b508971db63013d gas/testsuite/gas/sh/sh64/crange2.s
+ab06bd154d96e763a48d1017a0a24b2f gas/testsuite/gas/sh/sh64/crange3-1.d
+dddce6ad991b22d2a332fde254163f0f gas/testsuite/gas/sh/sh64/crange3.s
+618bdbf3046c133bdb19d489b1fbd20d gas/testsuite/gas/sh/sh64/crange4-1.d
+c7a9cf3f74ff694be740e78caef2ac27 gas/testsuite/gas/sh/sh64/crange4.s
+eebbf27928bc7a11690f561255962650 gas/testsuite/gas/sh/sh64/crange5-1.d
+0364881d49d33cbe2fe09bc51a8d6c96 gas/testsuite/gas/sh/sh64/crange5.s
+edcb28050f43b6494d13e9c69b9dac5e gas/testsuite/gas/sh/sh64/creg-1.d
+322b2608922b8e4aa4a24dcb41bce231 gas/testsuite/gas/sh/sh64/creg-1.s
+21efc2fb414915b801d5726c6466ac26 gas/testsuite/gas/sh/sh64/creg-2.d
+e43ba692ffe7c41968b358f642fbe269 gas/testsuite/gas/sh/sh64/creg-2.s
+841d2514094c765db5d9e6d7dba608f7 gas/testsuite/gas/sh/sh64/datal-1.s
+9052931d984dcc499b11d89706a8e954 gas/testsuite/gas/sh/sh64/datal-2.d
+cb0045841d83f37f4eb400eedc84bd88 gas/testsuite/gas/sh/sh64/datal-2.s
+8bcac43832f5c6bfeb52f53fb371c3a2 gas/testsuite/gas/sh/sh64/datal-3.s
+9ee5c29701a8d086d1009ff641ca0ed6 gas/testsuite/gas/sh/sh64/datal32-1.d
+19427ccccb932e285f3237284e2e0d8c gas/testsuite/gas/sh/sh64/datal32-3.d
+e9690169872c2de7dcd749d8ab3f1b7d gas/testsuite/gas/sh/sh64/datal64-1.d
+e2eacd79ed4a1860c3796eb83d0beda2 gas/testsuite/gas/sh/sh64/datal64-3.d
+e79cf2cd84e64f89bdf83480399ee871 gas/testsuite/gas/sh/sh64/eh-1.d
+1073be6cfae9cdafff43809c055de36c gas/testsuite/gas/sh/sh64/eh-1.s
+8c114620f0ef14cf3de9fdbe132b6121 gas/testsuite/gas/sh/sh64/endian-1.d
+5e4c7d2bf96d59c028edefdbafb057a8 gas/testsuite/gas/sh/sh64/endian-1.s
+4344249ac44ce11b32909e0627ff3f8a gas/testsuite/gas/sh/sh64/endian-2.d
+5e4c7d2bf96d59c028edefdbafb057a8 gas/testsuite/gas/sh/sh64/endian-2.s
+5f1257702ef4f1cf2aa7b45773be88b5 gas/testsuite/gas/sh/sh64/err-1.s
+9aae56187a70428a96c3f8b63f0b298e gas/testsuite/gas/sh/sh64/err-2.s
+65d1645ea1b20153be5b8f7835b6a8a1 gas/testsuite/gas/sh/sh64/err-3.s
+1b65e948107dc0338e992bd9514546e6 gas/testsuite/gas/sh/sh64/err-4.s
+71c4c7e159664025065628ccf021f714 gas/testsuite/gas/sh/sh64/err-abi-32.s
+2b150650d4db3e862adc6a56be595791 gas/testsuite/gas/sh/sh64/err-abi-64.s
+8abc3ab97b785a7ebfd4275a97b348ca gas/testsuite/gas/sh/sh64/err-dsp.s
+08dc6b9013499ecd50a548efb48466fc gas/testsuite/gas/sh/sh64/err-movi-noexp-1.s
+8f8f3efdf43bf2d38efd13d8553ecfbc gas/testsuite/gas/sh/sh64/err-noexp-cmd1.s
+74d8b483a9ca10e22a81becf75f93688 gas/testsuite/gas/sh/sh64/err-pt-1.s
+d8d83758870e2005c9ee8016fc5fd919 gas/testsuite/gas/sh/sh64/err-pt32-cmd1.s
+394ffd725133deb9202ca31ee4b1affd gas/testsuite/gas/sh/sh64/err-pt32-cmd2.s
+ce241d95818d7925a626fd2bb67af1b0 gas/testsuite/gas/sh/sh64/err-pt32-cmd3.s
+fe313ea51eecd9687f6c9b1ea1ad437d gas/testsuite/gas/sh/sh64/err-ptb-1.s
+53467e7f7bd3ee54d509f1abf897bb7b gas/testsuite/gas/sh/sh64/err-ptb-2.s
+652957f30edf944c4fa37ec078dee284 gas/testsuite/gas/sh/sh64/err.exp
+a302ce857f60bb21d3b5ab167c701392 gas/testsuite/gas/sh/sh64/immexpr1.s
+1e551fd277888b925aa72edcc9b47245 gas/testsuite/gas/sh/sh64/immexpr2.s
+c778a3f14d70c99360fd986af0cb6328 gas/testsuite/gas/sh/sh64/immexpr32-1.d
+33114323bf4032165ef36d2d065df31d gas/testsuite/gas/sh/sh64/immexpr32-2.d
+014665cdf46430e77619b873139aaeb0 gas/testsuite/gas/sh/sh64/immexpr64-1.d
+49306968516a75177497a629cf099124 gas/testsuite/gas/sh/sh64/immexpr64-2.d
+5336236826c97b8654780279b7c822c7 gas/testsuite/gas/sh/sh64/lineno.d
+1906fe63cf773b8ac3eb075401c8b72a gas/testsuite/gas/sh/sh64/lineno.s
+95cbdbb1e8917c7545652de0a3ec238f gas/testsuite/gas/sh/sh64/localcom-1.d
+c70e2eb58f1fe991dd7d3908cbaa951d gas/testsuite/gas/sh/sh64/localcom-1.s
+656cf6fdc90218a6795ca05018d54b7a gas/testsuite/gas/sh/sh64/mix-1.d
+e50f90df0b060272483afbd16c103c5a gas/testsuite/gas/sh/sh64/mix-1.s
+c1ce2a4b462e4d334b16320deba64423 gas/testsuite/gas/sh/sh64/mix-noexp-1.d
+23823dcdcf05139e4d7252959e4fb5a9 gas/testsuite/gas/sh/sh64/movi-1.s
+b80a38885a06fc68ff405564a6a9f570 gas/testsuite/gas/sh/sh64/movi-2.s
+6f41450ee68e54256fa18e24b33d05ae gas/testsuite/gas/sh/sh64/movi-3.d
+12ae1cdfb0bbdaaf3a126ee70fe789ab gas/testsuite/gas/sh/sh64/movi-3.s
+e76eb1e8a1a9db6b1f7fd80febdd28b4 gas/testsuite/gas/sh/sh64/movi32-1.d
+5047d114f091d4508aaf5e889100cd37 gas/testsuite/gas/sh/sh64/movi32-2.d
+08fa128e90a5638d3165265047ba109a gas/testsuite/gas/sh/sh64/movi32-noexp-2.d
+9dff88384cf4e1318198df8076e59801 gas/testsuite/gas/sh/sh64/movi64-1.d
+716e0122742f29659bad2c2d9c95c4de gas/testsuite/gas/sh/sh64/movi64-2.d
+b20bbf68d1532d1a7dceed831201b105 gas/testsuite/gas/sh/sh64/movi64-2.s
+b5f8911ff2187db6f3487e67c6f46ec5 gas/testsuite/gas/sh/sh64/movi64-3.d
+fd1344ac02580b0051598095547d35df gas/testsuite/gas/sh/sh64/movi64-noexp-2.d
+b239a01074851fb2e4ff1114bc99f20c gas/testsuite/gas/sh/sh64/pt-1.d
+977a0fa9b8369db70c3b38ac06f12780 gas/testsuite/gas/sh/sh64/pt-1.s
+75eda68c6a7031aa1c65acd62c33c3ec gas/testsuite/gas/sh/sh64/pt-2.s
+e8a236e070173d72dba8a9ff9e8ff1c4 gas/testsuite/gas/sh/sh64/pt-noexp-1.d
+c9cc5ca087461fc49f082527050abe73 gas/testsuite/gas/sh/sh64/pt32-1.d
+4e7e7e9fdcde076652de7863f805d749 gas/testsuite/gas/sh/sh64/pt32-noexp-2.d
+4fd6da9845ac06905af82d15b4001bef gas/testsuite/gas/sh/sh64/pt64-1.d
+0f8e3e9d84479a1d0f21710af01df50c gas/testsuite/gas/sh/sh64/pt64-32-1.d
+c89849efcae55b728a13215ba3a74201 gas/testsuite/gas/sh/sh64/pt64-32-2.d
+abdf3ef94d02116c3b7999acd6ec653c gas/testsuite/gas/sh/sh64/pt64-noexp-2.d
+1a87cdae03956757559ed10057f2e640 gas/testsuite/gas/sh/sh64/ptc-1.s
+487b2b8f76b946228dad904a1959c47f gas/testsuite/gas/sh/sh64/ptc32-1.d
+9727dd27cc82ffc3eef1d1a6ac8a3a1e gas/testsuite/gas/sh/sh64/ptc32-noexp-1.d
+3366054bae21b384dfd86d777627ad05 gas/testsuite/gas/sh/sh64/ptc64-1.d
+841daec09a7f42a2e3a63931752c046b gas/testsuite/gas/sh/sh64/ptc64-32-1.d
+ab2cea95b143e19a9c0e4ff3bd330316 gas/testsuite/gas/sh/sh64/ptc64-noexp-1.d
+96cbd019d7ec79b3c16cda800f382b89 gas/testsuite/gas/sh/sh64/ptext-1.s
+eb804d1481a46c64b61804d9c8e4f209 gas/testsuite/gas/sh/sh64/ptext32-1.d
+e57efa406ea16084d014e1c26afa9d36 gas/testsuite/gas/sh/sh64/ptext32-noexp-1.d
+cac5ed29c9ac5a6a0a61b7dfc7689d71 gas/testsuite/gas/sh/sh64/ptext64-1.d
+5fc5a89754ea5477a34cef60004ee32a gas/testsuite/gas/sh/sh64/ptext64-32-1.d
+11101bcf2008ecaec3be09cae2f8a4cc gas/testsuite/gas/sh/sh64/ptext64-noexp-1.d
+4f4382a6dfe422af2b72650213c5a60e gas/testsuite/gas/sh/sh64/rel-1.s
+8abb4dfaebbb20b16c4b2883b5ab7dd0 gas/testsuite/gas/sh/sh64/rel-2.s
+57efdd6672d3ea92ea66001b514338df gas/testsuite/gas/sh/sh64/rel-3.s
+2e0d9b5d634a0eabdcd0b15a8974c0f0 gas/testsuite/gas/sh/sh64/rel-4.s
+c05e67e392648f4cb7b8f9eade0b7e3d gas/testsuite/gas/sh/sh64/rel-5.s
+4228e9087a58f128e96836eeff0668f3 gas/testsuite/gas/sh/sh64/rel32-1.d
+4bb108397bc9fb4eea10c4a38c448eac gas/testsuite/gas/sh/sh64/rel32-2.d
+d70065fcafbe4927e41a5b4a48f8c058 gas/testsuite/gas/sh/sh64/rel32-3.d
+14a03f44258d33c2a4128c092157650d gas/testsuite/gas/sh/sh64/rel32-4.d
+bb0b20da50325efadd908400439ff59b gas/testsuite/gas/sh/sh64/rel32-5.d
+ba7e5d433860b10e57d491ffa1e3ac03 gas/testsuite/gas/sh/sh64/rel64-1.d
+abb7346f1a3066cfc0a2db0c26283ecd gas/testsuite/gas/sh/sh64/rel64-2.d
+3fe577d87923cb4195c1579430b8b6c6 gas/testsuite/gas/sh/sh64/rel64-3.d
+fd2c887a32ccb111e7311a9861d43e10 gas/testsuite/gas/sh/sh64/rel64-4.d
+95340ee9c1127c68385d432dbd3cae3b gas/testsuite/gas/sh/sh64/rel64-5.d
+740521b18881de028fee6b20f7ccd04b gas/testsuite/gas/sh/sh64/relax-1.d
+839efefe10184f6e37271a4994b1b941 gas/testsuite/gas/sh/sh64/relax-1.s
+51da503e7bf63bc0bd9c8a4d7303405c gas/testsuite/gas/sh/sh64/relax-2.d
+ee117757e571098c2541629a6137fd5a gas/testsuite/gas/sh/sh64/relax-2.s
+91af884eb0b22a4650ec8d6f8b510931 gas/testsuite/gas/sh/sh64/relax-3.d
+3ee39c26dd95bfe4989cc95050a00c9c gas/testsuite/gas/sh/sh64/relax-3.s
+fd4e253acf6902089f7a2387d50ca4e3 gas/testsuite/gas/sh/sh64/sh64.exp
+29020352f23aeea0372f8703f586d6d1 gas/testsuite/gas/sh/sh64/shift-1.s
+1faf64608ba2f0f11fbd637c7a656434 gas/testsuite/gas/sh/sh64/shift-2.s
+54edab02d0536f97c10efa96cc9450da gas/testsuite/gas/sh/sh64/shift-3.s
+6e742f214357147914baae64b4922857 gas/testsuite/gas/sh/sh64/shift32-1.d
+b4a03634321906a242a3b4631f6f67fd gas/testsuite/gas/sh/sh64/shift32-3.d
+7f046c3dabb15b56c116801e9aa80a81 gas/testsuite/gas/sh/sh64/shift32-noexp-3.d
+bfa64daf3064cdd58c52e2889935c4e7 gas/testsuite/gas/sh/sh64/shift64-1.d
+2c1e84f74b7a62d407c1d3cf67c37777 gas/testsuite/gas/sh/sh64/shift64-2.d
+d09a37937d32f557434bdf59087e2209 gas/testsuite/gas/sh/sh64/shift64-3.d
+fc0d9fcb04df441c84d2ddb4381a1193 gas/testsuite/gas/sh/sh64/shift64-noexp-3.d
+a3d2bc97437c69b7d539eb7048f861d1 gas/testsuite/gas/sh/sh64/syntax-1.d
+3ff1ccb03a52bb73654895d9c1dd091c gas/testsuite/gas/sh/sh64/syntax-1.s
+55c187e1043e792fb85ad05e1f2cd446 gas/testsuite/gas/sh/sh64/syntax-2.d
+386f5facef43a6f08df831f880a377ba gas/testsuite/gas/sh/sh64/syntax-2.s
+f34ab08c5b50ac4e4f124b5ecba5ab19 gas/testsuite/gas/sh/sh64/ua-1.s
+bea89df02c11369585780e6764904b5b gas/testsuite/gas/sh/sh64/ua32-1.d
+99e5ceaf74ff9bfe84f74d42ecb6ac04 gas/testsuite/gas/sh/sh64/ua64-1.d
+184df89aa90dea6bd7b312ab1f7178fe gas/testsuite/gas/sh/sign-extension.d
+f84dabd7fffc2ac91ab7ef40494d1348 gas/testsuite/gas/sh/sign-extension.s
+17982698d458ba03872085040ba1a817 gas/testsuite/gas/sh/tlsd.d
+1a5dbdc955c0f79813f64148ddcd8353 gas/testsuite/gas/sh/tlsd.s
+805b98d070093e9a4b8b5d92f396cc22 gas/testsuite/gas/sh/tlsnopic.d
+0c7a54cecb95b9959ececc358af7d5db gas/testsuite/gas/sh/tlsnopic.s
+49f0c3f99f207b7cab4a5e3554774b8e gas/testsuite/gas/sh/tlspic.d
+ccef24743254119bfb0a1c84283253a9 gas/testsuite/gas/sh/tlspic.s
+b22d0748affc550308490e73c740db0f gas/testsuite/gas/sh/too_large.d
+314ff5a57af40c641f3b7a2ceb003074 gas/testsuite/gas/sh/too_large.s
+392efaa6637a8734d3ab35e579615a53 gas/testsuite/gas/sparc/asi.d
+8f35c68aef641d7cc35698d67a32557e gas/testsuite/gas/sparc/asi.s
+ef3fe6155d6cd4134bc1b70632ba3312 gas/testsuite/gas/sparc/gotop32.d
+5d533036b1e4c0a34a86f3595294aca5 gas/testsuite/gas/sparc/gotop32.s
+80c7f659aa406ac9b5fda38c766b7827 gas/testsuite/gas/sparc/gotop64.d
+4633f014f6e73296c124390a4c0c84fc gas/testsuite/gas/sparc/gotop64.s
+b016659d4ba6d4c4f31841b8c46fd680 gas/testsuite/gas/sparc/hpcvis3.d
+5ecb9537aba3f95a8c5513a2891fd5ee gas/testsuite/gas/sparc/hpcvis3.s
+eb20cec37ba75b64cfb66ba2ef4c7248 gas/testsuite/gas/sparc/imm-plus-rreg.d
+baf0d8acc429d839d582782ba995fb86 gas/testsuite/gas/sparc/imm-plus-rreg.s
+4b815d3da1c2d2bceeb98994c659c492 gas/testsuite/gas/sparc/membar.d
+521b5671f3aa6bae70f78b5f3d37de1a gas/testsuite/gas/sparc/membar.s
+12b5e618325d4a4bc80cb8766bbfc064 gas/testsuite/gas/sparc/mism-1.s
+706c79f848f389921b20f0f64dde1ecd gas/testsuite/gas/sparc/mismatch.exp
+3d4fc17a8ac5ea6103ec7b199573aca6 gas/testsuite/gas/sparc/pc2210.d
+a9d9b9652c9c9d90702f7be6097672a1 gas/testsuite/gas/sparc/pc2210.s
+44169c5563a88510bc703438a7eae8f4 gas/testsuite/gas/sparc/pcrel.d
+6065405af8fda4de18e07e1863d3e6dc gas/testsuite/gas/sparc/pcrel.s
+b1342d8f5d0190f0c50f2e9321f4e58e gas/testsuite/gas/sparc/pcrel64.d
+8c92147ad9a6ef778b5ccbf101ae253e gas/testsuite/gas/sparc/pcrel64.s
+22d75f06f968a1d689517b3271434c7c gas/testsuite/gas/sparc/plt.d
+830651a18c39323a5169f284cecfc66a gas/testsuite/gas/sparc/plt.s
+8c5e60de8c40ab24b01121661c24beac gas/testsuite/gas/sparc/plt64.d
+02b176ee41fceeab10ef800c7c2a8c7e gas/testsuite/gas/sparc/plt64.s
+353df91c8b350e8582ada2d2e2c816e2 gas/testsuite/gas/sparc/pr4587.l
+014d3e1694269604d495f7333dee9e0e gas/testsuite/gas/sparc/pr4587.s
+d85c226fa388a66bd2689ba3efedf5e4 gas/testsuite/gas/sparc/prefetch.d
+0b615422f6c8ad3fe5c42f2a8c7af1e4 gas/testsuite/gas/sparc/prefetch.s
+3f120e259bb733ce1ef75f0a68342cc0 gas/testsuite/gas/sparc/rdhpr.d
+2f411297453660c0100a244389bf7798 gas/testsuite/gas/sparc/rdhpr.s
+d77dc9121f8c4bca412d9a7f3ed35361 gas/testsuite/gas/sparc/rdpr.d
+3b1796f1e8b5020c05aa9f29aeba3967 gas/testsuite/gas/sparc/rdpr.s
+78517d2fce6c7707fd2f09689ebc3d72 gas/testsuite/gas/sparc/reloc64.d
+7d56aec0e050e09c004a33abd25a9293 gas/testsuite/gas/sparc/reloc64.s
+8ba4542c7545b40e466048feedaf6a62 gas/testsuite/gas/sparc/save-args.d
+cb23fd033ae0f3402a115de7507758ca gas/testsuite/gas/sparc/save-args.s
+08afa18cf165a3043a6b92153526c876 gas/testsuite/gas/sparc/set64.d
+1facb5655fe83c44ac900776c563e717 gas/testsuite/gas/sparc/set64.s
+115f1e093e29655563d1f9fda905cd27 gas/testsuite/gas/sparc/sparc.exp
+3564e46bcf53613a512e32f2633c3d05 gas/testsuite/gas/sparc/splet-2.d
+69817b445f39a0e3cf591de872fa74e5 gas/testsuite/gas/sparc/splet-2.s
+5fa3fb7a059f3fd315df0af21e0c9619 gas/testsuite/gas/sparc/splet.d
+6236b0423a317e0a2340bdb317c54d1e gas/testsuite/gas/sparc/splet.s
+a6b1a41bb26dc70e130bc42ef7133cc7 gas/testsuite/gas/sparc/synth.d
+0e0dead95b89c31c1ed49b21c430bc1a gas/testsuite/gas/sparc/synth.s
+b041cafa83c1f1f131ca949780217e54 gas/testsuite/gas/sparc/synth64.d
+0303005116e0116e28f1dd473ca39f28 gas/testsuite/gas/sparc/synth64.s
+5bce6170ac4dfffcad902214096c98ab gas/testsuite/gas/sparc/ticc-imm-reg.d
+2dd64c66c5621c4848bc214ddf855e05 gas/testsuite/gas/sparc/ticc-imm-reg.s
+d9387e1243975789897f80338801920f gas/testsuite/gas/sparc/unalign.d
+4f0d12b16f8afe39a387c14fd41d4382 gas/testsuite/gas/sparc/unalign.s
+e35e63553e1c720e4d7c4563d2f38a05 gas/testsuite/gas/sparc/v8-movwr-imm.d
+eb879ffcaa07471db4ecd7754ff059c7 gas/testsuite/gas/sparc/v8-movwr-imm.s
+bfd9b03ccd61839b71e47459eb40cbe0 gas/testsuite/gas/sparc/v9branch1.d
+096c1cdf2aeeaa59bfcb5df0e6036889 gas/testsuite/gas/sparc/v9branch1.s
+66779138a109c8fbbdd70da3f137c15d gas/testsuite/gas/sparc/v9branch2.d
+fe8f31f9d59c9508c0a5b8318b3e47f1 gas/testsuite/gas/sparc/v9branch2.s
+3e49e6c4b27c8e16bcd4fd910abba527 gas/testsuite/gas/sparc/v9branch3.d
+4fe9de8c112ff4fea5a6570502ac4b6d gas/testsuite/gas/sparc/v9branch3.s
+825979884774a5fad2259b6c7d1f11f0 gas/testsuite/gas/sparc/v9branch4.d
+ff8d44d6fdff4d2ca0508c3b281373eb gas/testsuite/gas/sparc/v9branch4.s
+573b3edad98d877cbcd9aa7a7ff0c744 gas/testsuite/gas/sparc/v9branch5.d
+ef34f726612640b58a20eacaea77c88e gas/testsuite/gas/sparc/v9branch5.s
+31b399c66449684fd71cf29e4947afe2 gas/testsuite/gas/sparc/vxworks-pic.d
+a3f26463209f0178d369c6a83b31f1cb gas/testsuite/gas/sparc/vxworks-pic.s
+7ce6d9aeae268f49a69d0988ace42ee6 gas/testsuite/gas/sparc/window.d
+156e5bb3b40ebb2c46988c64270e5137 gas/testsuite/gas/sparc/window.s
+9128a03ea2a83074a28f191ca90e896b gas/testsuite/gas/sparc/wrhpr.d
+7b8495e86ce639aa561385f702e67e4f gas/testsuite/gas/sparc/wrhpr.s
+8c901935caf906883529422755d1a4bf gas/testsuite/gas/sparc/wrpr.d
+ad65b667840b0c204c3c8379a0b38b8c gas/testsuite/gas/sparc/wrpr.s
+f65f40edb42735b8af3a4baaacd662f5 gas/testsuite/gas/sparc-solaris/addend.exp
+7dd4467acc1dda3c1753ebcbfeeead33 gas/testsuite/gas/sparc-solaris/addend.s
+dd2ab79e6bd90288569274206313966b gas/testsuite/gas/sparc-solaris/gas.exp
+b2d813e248b8ec085ca8d551271274bf gas/testsuite/gas/sparc-solaris/sol-cc.s
+2e927e8072e145441bb882a01e3ac8cd gas/testsuite/gas/sparc-solaris/sol-gcc.s
+54a6b727f437bf7989e266329d0dd875 gas/testsuite/gas/sun4/addend.d
+b648f70387617b14507805caeea0b6d6 gas/testsuite/gas/sun4/addend.exp
+7dd4467acc1dda3c1753ebcbfeeead33 gas/testsuite/gas/sun4/addend.s
+3453866e3d5ff2c0b47520e5c1bfe756 gas/testsuite/gas/symver/symver.exp
+85f57708f7d8db6957900a6fb76ab4fb gas/testsuite/gas/symver/symver0.d
+7f2d42503901978e4eb5bab37fd01df2 gas/testsuite/gas/symver/symver0.s
+9107b44387b3b0e9184504449d6e4d84 gas/testsuite/gas/symver/symver1.d
+1d6eb4d5a6cbf6ac541ca7d4c561b74f gas/testsuite/gas/symver/symver1.s
+719196efd607fc7ec9ba9c876bf2f00d gas/testsuite/gas/symver/symver2.l
+7214f11688ed0284f53c3c060fa973bf gas/testsuite/gas/symver/symver2.s
+d37568e052e76a50c9d4775eede01585 gas/testsuite/gas/symver/symver3.l
+7f58a39bd0e6eda06fa15260adaa1044 gas/testsuite/gas/symver/symver3.s
+aaf2746f913c7c81f487786bd9b99543 gas/testsuite/gas/symver/symver4.l
+ff40f84c77b398ca408422048eb1684e gas/testsuite/gas/symver/symver4.s
+c2401f7310b24ae252e1905a90fbb133 gas/testsuite/gas/symver/symver5.l
+ed56c563fc819e4c50c4160a17f8abae gas/testsuite/gas/symver/symver5.s
+a3a92a55022c0edb85d34af1d1739ee8 gas/testsuite/gas/symver/symver6.l
+73c983230d1435795774501e7247e78c gas/testsuite/gas/symver/symver6.s
+218ceddbec7e4efdd63a6186a62fded9 gas/testsuite/gas/template
+8ea79039a765caf02b0270c41d2aecea gas/testsuite/gas/tic4x/addressing.s
+1d1cd32af19bf411056f0e5dc6793704 gas/testsuite/gas/tic4x/addressing_c3x.d
+3a9747d4c737fcaa03d48bfb244c65d1 gas/testsuite/gas/tic4x/addressing_c4x.d
+87791d8e703ba0e4a6f558667ae0b37b gas/testsuite/gas/tic4x/allopcodes.S
+759572024f59fdd5f644cf67e6f534bb gas/testsuite/gas/tic4x/data.d
+9d1169a0d03a6cf2c75cd4ee202a28d6 gas/testsuite/gas/tic4x/data.s
+1eeee4f18eb831980279d37275498be8 gas/testsuite/gas/tic4x/float.d
+7e1d0515d6c0d58e786c6eba115d7f18 gas/testsuite/gas/tic4x/float.s
+edd930af223500ae3f3c8a6235859f7e gas/testsuite/gas/tic4x/opclasses.h
+3f4860301a631779c7ce027dfe991eea gas/testsuite/gas/tic4x/opcodes.s
+5dc32889ee5cceadaa36ed8edaa74110 gas/testsuite/gas/tic4x/opcodes_c3x.d
+1897a6f02cf723ddd4767fd6d08f92dc gas/testsuite/gas/tic4x/opcodes_c4x.d
+9143bb67c8b4f9c4981c736c09ad8d0e gas/testsuite/gas/tic4x/opcodes_new.d
+925a40c20b5622660b057bbe1607939d gas/testsuite/gas/tic4x/rebuild.sh
+749edd66d0478c88fb2fe6dbe1e43a6a gas/testsuite/gas/tic4x/registers.s
+298a8cba1f2f8117ba5d67e272c9f965 gas/testsuite/gas/tic4x/registers_c3x.d
+3bfcecd5b33adf2bd9b8d7def7786678 gas/testsuite/gas/tic4x/registers_c4x.d
+bc620bbcb914996a6b20eb637ffcaa1d gas/testsuite/gas/tic4x/tic4x.exp
+eefd3d89495af1e2d0bb45ba859d9481 gas/testsuite/gas/tic4x/zeros.d
+95dc276c67e715e06ef1690e2cc33bec gas/testsuite/gas/tic4x/zeros.s
+3445e4e0e63e380c58fa9a238a67aee5 gas/testsuite/gas/tic54x/address.d
+78c05303f9f0cbc1a4610cafd8684961 gas/testsuite/gas/tic54x/address.s
+1c273453dd66e3fe0b42ac96860cfe1c gas/testsuite/gas/tic54x/addrfar.d
+04728b4642409775852f79c1d68c4f54 gas/testsuite/gas/tic54x/align.d
+f705542096afe413c7ab6ffa17469af7 gas/testsuite/gas/tic54x/align.s
+7d55407efacfaa48a63c6f33ce4096bf gas/testsuite/gas/tic54x/all-opcodes.d
+16b138265d758ee38dbf89a41696f4b4 gas/testsuite/gas/tic54x/all-opcodes.s
+fade7483f79e5beef3973e1dd59c5713 gas/testsuite/gas/tic54x/asg.d
+64c9ec95e386f8e5d0040c26fee7321c gas/testsuite/gas/tic54x/asg.s
+d7b5d8e349a3f2f2b36167d8aad33d40 gas/testsuite/gas/tic54x/cons.d
+671f83be79acf4e42032f33d828864ac gas/testsuite/gas/tic54x/cons.s
+720ded5513845bac8bffaba11faa1bda gas/testsuite/gas/tic54x/consfar.d
+9d9a1c4f120f6ce8f3bd03ee0986c9c2 gas/testsuite/gas/tic54x/extaddr.d
+1eff597d688aedce62a361714b4bb6aa gas/testsuite/gas/tic54x/extaddr.s
+802b686cf4ec88db9eb851402427de50 gas/testsuite/gas/tic54x/field.d
+534ff025c4a332a0b3a4811c889d9637 gas/testsuite/gas/tic54x/field.s
+e8334221e9d81711a8120983fc654f4b gas/testsuite/gas/tic54x/in_mlib.asm
+1af2989af2066c93fd7ebc8b607b8fd2 gas/testsuite/gas/tic54x/labels.d
+aae9f04acb5f59969bf1f0465d7c78bd gas/testsuite/gas/tic54x/labels.inc
+398343a46a08804051ef4cb0fcd926b1 gas/testsuite/gas/tic54x/labels.s
+8734a1dfc7dd3bb849fe422776e761e2 gas/testsuite/gas/tic54x/loop.d
+4a609e1f44de00f164f48203d5df870b gas/testsuite/gas/tic54x/loop.s
+59a9b26dade4493634167731704fc899 gas/testsuite/gas/tic54x/lp.d
+2c650e0c313376b80d7a6950039ff3b4 gas/testsuite/gas/tic54x/lp.s
+816673a798bddfbface0f02c77beca0d gas/testsuite/gas/tic54x/macro.d
+d76d2e7a0d946a16279b4eeafcfa0cc7 gas/testsuite/gas/tic54x/macro.s
+09c277ba1f7d69551c473cd20cbb14bd gas/testsuite/gas/tic54x/macro1.s
+ddbfc019917d779c19002992f3929367 gas/testsuite/gas/tic54x/macros.lib
+0649dee6b4c28e25ae3db473f82bc0f2 gas/testsuite/gas/tic54x/math.d
+1ff7d6cd1fb20b8cde42e82ea5e38dfa gas/testsuite/gas/tic54x/math.s
+fb2be21a90949c70f748c2c937d6efa9 gas/testsuite/gas/tic54x/opcodes.d
+03c7d9751c849b0f4a04ce24d181e494 gas/testsuite/gas/tic54x/opcodes.s
+6680a6234b1ad893200ab5eb9360bc4d gas/testsuite/gas/tic54x/sections.d
+fe46811cda30294230b15a91c5b47d07 gas/testsuite/gas/tic54x/sections.s
+3a8e6d194159fe413ec370a0d8802c6f gas/testsuite/gas/tic54x/set.d
+cdf1f13fafc4d4abd831567cdda40eff gas/testsuite/gas/tic54x/set.s
+48c074b199687a4265e4bafcd7d35c9d gas/testsuite/gas/tic54x/struct.d
+28bcc7e09d20e59e1ccb70e318f45324 gas/testsuite/gas/tic54x/struct.s
+4563812083147c039c2b6048cdfe8b73 gas/testsuite/gas/tic54x/subsym.d
+a6d4e40952285da31a31a7146766dc04 gas/testsuite/gas/tic54x/subsym.s
+a3547e6b13dd61f04ad639ae18c38bb3 gas/testsuite/gas/tic54x/subsym1.s
+b2df4dd8056e7236407bbc4c60b27b02 gas/testsuite/gas/tic54x/tic54x.exp
+0292691d7ef542a74d2a551262b84974 gas/testsuite/gas/tic6x/align-1-be.d
+314ab4f7826e2b1b4cd56d1f6ad60a0a gas/testsuite/gas/tic6x/align-1.d
+e1678ba77aa41ef725bef04500901f57 gas/testsuite/gas/tic6x/align-1.s
+b830b1544d7da3d16c21d0df428f2602 gas/testsuite/gas/tic6x/align-2.d
+07e4448e8f279316c990d98671c88b5d gas/testsuite/gas/tic6x/align-2.s
+f6979aac6dd228b4ac8a1bd63662f2bf gas/testsuite/gas/tic6x/arch-invalid-1.d
+0f2b68b263d8e79b628903c269788099 gas/testsuite/gas/tic6x/arch-invalid-1.l
+452d718dbef6464e6191eb06892962c1 gas/testsuite/gas/tic6x/arch-invalid-2.d
+2566b7ba35e8d8294d37617ed6fe0833 gas/testsuite/gas/tic6x/arch-invalid-2.l
+da531320ba80965ddd10e2106a5fb286 gas/testsuite/gas/tic6x/arch-invalid-2.s
+20fddf24334ba240950cd76d0f712c7c gas/testsuite/gas/tic6x/attr-arch-directive-1.d
+43aca16807762a815a07fedcba994d19 gas/testsuite/gas/tic6x/attr-arch-directive-1.s
+5a7218a825f5aab2a5ce42669816fb0d gas/testsuite/gas/tic6x/attr-arch-directive-2.d
+ae4ef03990822b8f56e27f2374e2ca1d gas/testsuite/gas/tic6x/attr-arch-directive-2.s
+7f5f58d419517314fa89ea872db44769 gas/testsuite/gas/tic6x/attr-arch-directive-3.d
+1bab1da2b97874f2baab1c1626f40a28 gas/testsuite/gas/tic6x/attr-arch-directive-3.s
+c8865c853bc62a8707cc34b50f23ef46 gas/testsuite/gas/tic6x/attr-arch-directive-4.d
+5eb713d19630d7601ce377575f99a766 gas/testsuite/gas/tic6x/attr-arch-directive-4.s
+80599d828502a8e988bef81205eb299d gas/testsuite/gas/tic6x/attr-arch-directive-5.d
+4ad91d0e9b23d9ddf8ad4e8c9a57e908 gas/testsuite/gas/tic6x/attr-arch-directive-5.s
+56a2eec68fa61fa7fa42673aec41e2db gas/testsuite/gas/tic6x/attr-arch-opts-c62x.d
+dee3dce64c246b022086b6c7add381ec gas/testsuite/gas/tic6x/attr-arch-opts-c64x+.d
+3bd9b6ed4d8653ff669f06fbd5e2e490 gas/testsuite/gas/tic6x/attr-arch-opts-c64x.d
+1b3e69b1f9e5dce56882e55436e0f3d8 gas/testsuite/gas/tic6x/attr-arch-opts-c674x.d
+163cb9553f068b014ca2d521c5e534bf gas/testsuite/gas/tic6x/attr-arch-opts-c67x+.d
+c759dfb7a3f7fa5685a8c86a4f53e8e8 gas/testsuite/gas/tic6x/attr-arch-opts-c67x.d
+d4e4241ef156b64966ab65ac1c460378 gas/testsuite/gas/tic6x/attr-arch-opts-none-1.d
+ac66c3f7977b2e4103b2f9980da4eb13 gas/testsuite/gas/tic6x/attr-arch-opts-none-2.d
+3733df8484393aaa4d319d44c59d398c gas/testsuite/gas/tic6x/attr-arch-opts-override-1.d
+a19ca6bb8768df1addd2d37680c2701c gas/testsuite/gas/tic6x/attr-arch-opts-override-2.d
+1c29bc10eacc8c10f1ddb82331e5b439 gas/testsuite/gas/tic6x/attr-array-directive-1.d
+f0dba8bccb09da415b94992e06e7a47b gas/testsuite/gas/tic6x/attr-array-directive-1.s
+9a8df67f82c662c19995a762e603321b gas/testsuite/gas/tic6x/attr-array-directive-2.d
+080f97096e28a9f53d92a8843d5791aa gas/testsuite/gas/tic6x/attr-array-directive-2.s
+2351b5e02a4c1f13a438b69b68424549 gas/testsuite/gas/tic6x/attr-array-directive-3.d
+2c802bb2185db576f2be694c37e499c1 gas/testsuite/gas/tic6x/attr-array-directive-3.s
+310fc5993638cad29117cf39d51f0df5 gas/testsuite/gas/tic6x/attr-array-directive-4.d
+ebc4b14180dde8322060c1244d3c1c3e gas/testsuite/gas/tic6x/attr-array-directive-4.s
+d30fb58251e5d7739115b085a3d75844 gas/testsuite/gas/tic6x/attr-compatibility-directive-1.d
+e886896ee5d42dc31876cf12dc9d1778 gas/testsuite/gas/tic6x/attr-compatibility-directive-1.s
+6b99bbe72ede1c6dfe593a5884bc8fe8 gas/testsuite/gas/tic6x/attr-compatibility-directive-2.d
+ad27bb702cd8f6c4b104296f586f9ecc gas/testsuite/gas/tic6x/attr-compatibility-directive-2.s
+f7cd95e99308c8fa460e51350747b2ab gas/testsuite/gas/tic6x/attr-conformance-directive-1.d
+786f3635b154df9fe6c29bab350fd463 gas/testsuite/gas/tic6x/attr-conformance-directive-1.s
+d22e95764d190c4e07a30ff0d932669a gas/testsuite/gas/tic6x/attr-conformance-directive-2.d
+b1680f78350f20794eb9f9541aa51b35 gas/testsuite/gas/tic6x/attr-conformance-directive-2.s
+bdef20c6246f3fbdcd6690a83a5df983 gas/testsuite/gas/tic6x/attr-dsbt-directive-1.d
+0fe070a48c2c9bf2fac7196d52429a66 gas/testsuite/gas/tic6x/attr-dsbt-directive-1.s
+bdef20c6246f3fbdcd6690a83a5df983 gas/testsuite/gas/tic6x/attr-dsbt-directive-2.d
+2b17ebffb20409aecabde431c3c9e421 gas/testsuite/gas/tic6x/attr-dsbt-directive-2.s
+a3fa82ff1a51e048e375ac6b09de7aba gas/testsuite/gas/tic6x/attr-dsbt-opts-mdsbt.d
+d5665f6a524c2ee75129d009fd8e2972 gas/testsuite/gas/tic6x/attr-dsbt-opts-mno-dsbt.d
+4ada588fa359b7cff746e20182329713 gas/testsuite/gas/tic6x/attr-pic-directive-1.d
+5d079c56a0ee00da96bf9adad4fb16b7 gas/testsuite/gas/tic6x/attr-pic-directive-1.s
+9270470e6d0eb89e68f54a9782755f4d gas/testsuite/gas/tic6x/attr-pic-directive-2.d
+6e9d8a9b241c7184b807b840650d0466 gas/testsuite/gas/tic6x/attr-pic-directive-2.s
+b25801987b41d9518083b238ad7e6fd0 gas/testsuite/gas/tic6x/attr-pic-opts-mno-pic.d
+a3be0fcc77f4854e562db86a0483c0c1 gas/testsuite/gas/tic6x/attr-pic-opts-mpic.d
+2f585e5b5e480285bca1e4cd944a90a6 gas/testsuite/gas/tic6x/attr-pid-directive-1.d
+c2ad71377c6220dbae8be6cc4eacfdaf gas/testsuite/gas/tic6x/attr-pid-directive-1.s
+a71701b4e667d244494733acac80fb92 gas/testsuite/gas/tic6x/attr-pid-directive-2.d
+ecaa62bb2c3e34c1c187a59ba8a1e452 gas/testsuite/gas/tic6x/attr-pid-directive-2.s
+11f3a10ccbfd254d8d0dc595f1a9aac7 gas/testsuite/gas/tic6x/attr-pid-opts-mpid-far.d
+dc3b7b460615e562f02dcc460fc56d05 gas/testsuite/gas/tic6x/attr-pid-opts-mpid-near.d
+68958d93c98213ba914771927c60efc7 gas/testsuite/gas/tic6x/attr-pid-opts-mpid-no.d
+ea849d8ff266b8adbb9caf2a82a32931 gas/testsuite/gas/tic6x/attr-stack-directive-1.d
+27a7b1ccb09fb00e3d53c4d5c9de9c4e gas/testsuite/gas/tic6x/attr-stack-directive-1.s
+f4bd95ee7b9a368df91e877d0989d188 gas/testsuite/gas/tic6x/attr-stack-directive-2.d
+6cd602df51d60bf4569cd9e9956d810f gas/testsuite/gas/tic6x/attr-stack-directive-2.s
+76844e58a66dae09a3976bcc562e1ed9 gas/testsuite/gas/tic6x/attr-wchar-directive-1.d
+f4d640b4b71b7f6f09646f92e39c5eba gas/testsuite/gas/tic6x/attr-wchar-directive-1.s
+a29cc1380e1b855fad6079a461f01312 gas/testsuite/gas/tic6x/attr-wchar-directive-2.d
+aa079f042cbb63c970da97194d81bc5e gas/testsuite/gas/tic6x/attr-wchar-directive-2.s
+1720cc96b91b1e8b80471a1cf755dec1 gas/testsuite/gas/tic6x/data-reloc.d
+0e8fc10d4de5d1f2d9a3e1d8379ac44d gas/testsuite/gas/tic6x/data-reloc.s
+90a95ea3d2fa2ccc2cfefbbd78aa78c2 gas/testsuite/gas/tic6x/dir-junk.d
+a42e9541540ca650f814df716ca8924a gas/testsuite/gas/tic6x/dir-junk.l
+37a0d6199b4eee9314d83459337152b4 gas/testsuite/gas/tic6x/dir-junk.s
+62b3eedee55ca149b115e7fd92ddce54 gas/testsuite/gas/tic6x/dummy.s
+307a9041af515f39eb2213be1d49c4a0 gas/testsuite/gas/tic6x/empty.s
+5a56af2d02f2f2ccaf0fb65567120165 gas/testsuite/gas/tic6x/endian-1.d
+dd5451103f901909b04672109f64767f gas/testsuite/gas/tic6x/endian-2.d
+5d859821871298e682cc9bf9acc22c6c gas/testsuite/gas/tic6x/endian-3.d
+a6a9f82e951ca61a4ebd8b7455c387a9 gas/testsuite/gas/tic6x/got-reloc.d
+8248d8e0809a86aa4471b561448d75b2 gas/testsuite/gas/tic6x/got-reloc.s
+a38f9b25ead59a336717d9302e831eaa gas/testsuite/gas/tic6x/insns-atomic.d
+dbef2d1637ad40cf1f9ce546861f0c5b gas/testsuite/gas/tic6x/insns-atomic.s
+c2447fff290d2bdc8fdf9637e6cbe07e gas/testsuite/gas/tic6x/insns-bad-1.d
+f2b8be95bf18b62391b23f49fc86b7ba gas/testsuite/gas/tic6x/insns-bad-1.l
+86e1db7b882a49c3629f650d2becaca3 gas/testsuite/gas/tic6x/insns-bad-1.s
+173d499230b240e5527a0c17914bbad6 gas/testsuite/gas/tic6x/insns-bad-2.d
+87f671addae18926aa640abce60ffaf3 gas/testsuite/gas/tic6x/insns-bad-2.l
+a40fd236a95340d2dfa534a86b6e369a gas/testsuite/gas/tic6x/insns-bad-2.s
+f78b9e4f68c8215a7488f5ee30931781 gas/testsuite/gas/tic6x/insns-c674x-pcrel.d
+a557e1c7cb560f21c16e399772dae3ba gas/testsuite/gas/tic6x/insns-c674x-pcrel.s
+7e04b71a0f2d922ed5b571b19711146e gas/testsuite/gas/tic6x/insns-c674x-reloc.d
+348f97e32f4441c73c72e9112f0b52f8 gas/testsuite/gas/tic6x/insns-c674x-reloc.s
+661acb955ac7369905391334fd33abe7 gas/testsuite/gas/tic6x/insns-c674x-sploop.d
+3805027efd5ca5d8c0187e065dad0a0a gas/testsuite/gas/tic6x/insns-c674x-sploop.s
+b49da0d78c8900e4c02c2a7961dc4c18 gas/testsuite/gas/tic6x/insns-c674x.d
+92a255490de4241753bc11152b831e31 gas/testsuite/gas/tic6x/insns-c674x.s
+7d7f7de4b59638a56e8b196b42be479e gas/testsuite/gas/tic6x/insns-parallel-be.d
+0ba16ba6bd3ee7790759af2b6afaeee6 gas/testsuite/gas/tic6x/insns-parallel-le.d
+e51b5004cb21d29d610392037e0d8e88 gas/testsuite/gas/tic6x/insns-parallel-multi.d
+c722408d039a0eb6d616c6b1ecb98fcd gas/testsuite/gas/tic6x/insns-parallel-multi.s
+459ad66f53e9cc5c8e5a5c6a6fd1e6f7 gas/testsuite/gas/tic6x/insns-parallel.s
+f5267472ca3a19c098ee201ff786ce61 gas/testsuite/gas/tic6x/insns-predicate.d
+a70f660f28fa4488a39e43503d4f6ee0 gas/testsuite/gas/tic6x/insns-predicate.s
+f5a3a284999c79808681b012508d84ca gas/testsuite/gas/tic6x/parallel-bad-1.d
+d809a198cfdf69218576cc69577bc652 gas/testsuite/gas/tic6x/parallel-bad-1.l
+f36413f9e5ec3461f551fcaa51686887 gas/testsuite/gas/tic6x/parallel-bad-1.s
+df65ded8be67b1c50e781d11ab4fd0bd gas/testsuite/gas/tic6x/parallel-bad-2.d
+74ab5f162a462fb31f06af5f269322ed gas/testsuite/gas/tic6x/parallel-bad-2.l
+1d85516e09e5177b4a27aa3c2c8a650c gas/testsuite/gas/tic6x/parallel-bad-2.s
+a60003f468f96155173d0038e096b0a4 gas/testsuite/gas/tic6x/parallel-bad-3.d
+278faa1dc9675aa435650f2e54b1a53d gas/testsuite/gas/tic6x/parallel-bad-3.l
+207a432af1d51fef4ed7510997d7a417 gas/testsuite/gas/tic6x/parallel-bad-3.s
+bd8e7dfb3d414df29defc15bdad94e2b gas/testsuite/gas/tic6x/parallel-bad-4.d
+6673ba5cef14483e723c006f4b58161a gas/testsuite/gas/tic6x/parallel-bad-4.l
+b4116db61c069c104754eac5ef709cca gas/testsuite/gas/tic6x/parallel-bad-4.s
+c7d737c37a1a0e0271b72bc0e3e2e925 gas/testsuite/gas/tic6x/pcr-relocs-undef.d
+149af792629a558aa749ee68fdc1c866 gas/testsuite/gas/tic6x/pcr-relocs-undef.s
+340b81e4c642f9902866420556fa8d3b gas/testsuite/gas/tic6x/pcr-relocs.d
+4c748bfffa7033a3c4eea2d24dc98a2c gas/testsuite/gas/tic6x/pcr-relocs.s
+a37d644d05b070755dd5a6f02e893647 gas/testsuite/gas/tic6x/predicate-bad-1.d
+5bf15cf1d8344ea46bef6b2b33784577 gas/testsuite/gas/tic6x/predicate-bad-1.l
+e96f3d394d750cecab51ab53fe16f771 gas/testsuite/gas/tic6x/predicate-bad-1.s
+844d491506d593cb40a9ddc61241532a gas/testsuite/gas/tic6x/predicate-bad-2.d
+e8d102e3737270245af7a30b4ddde075 gas/testsuite/gas/tic6x/predicate-bad-2.l
+6603efc1d375e70988c31322b3c72eba gas/testsuite/gas/tic6x/predicate-bad-2.s
+f9ed74292532f3f71c62831cbfbe210d gas/testsuite/gas/tic6x/predicate-bad-3.d
+8a9f49b2f4ce1e3d62cbb13031f518b2 gas/testsuite/gas/tic6x/predicate-bad-3.l
+0f3f6808d72b6cf1c872bb3f6733d72d gas/testsuite/gas/tic6x/predicate-bad-3.s
+e6a9692f4ababe4217f7c53eaa61ea18 gas/testsuite/gas/tic6x/reloc-bad-1.d
+3c0d41c058bcd25fd4afa6b7b60e493e gas/testsuite/gas/tic6x/reloc-bad-1.l
+a92fb62ec7720d4e9c944f64015d85ad gas/testsuite/gas/tic6x/reloc-bad-1.s
+1fcf20be09eba994a39187ddc9e1e674 gas/testsuite/gas/tic6x/reloc-bad-2.d
+b5cb2f8bf7756524e68077e29982cf57 gas/testsuite/gas/tic6x/reloc-bad-2.l
+7329e886d201b3a516b575d747bd13dd gas/testsuite/gas/tic6x/reloc-bad-2.s
+d2a29898101577ad60df9faa6bfaf89e gas/testsuite/gas/tic6x/reloc-bad-3.d
+8691f48c0e751b835bea2b8b1ff07052 gas/testsuite/gas/tic6x/reloc-bad-3.l
+661f07caa4741fcb8c4cc32862bd5d8e gas/testsuite/gas/tic6x/reloc-bad-3.s
+6d8d853f4454fe22d2bc73f21d478f19 gas/testsuite/gas/tic6x/reloc-bad-4.d
+5bf30d493bdc35c6bdc3a064fb9eca50 gas/testsuite/gas/tic6x/reloc-bad-4.l
+633c7c4826bfff06f579048d64d850d9 gas/testsuite/gas/tic6x/reloc-bad-4.s
+15af7c03daf11c8003dbe770bd60282c gas/testsuite/gas/tic6x/reloc-bad-5.d
+8bf61094a5f8c36b905ac232a888afb0 gas/testsuite/gas/tic6x/reloc-bad-5.l
+5cfc742bec771868c4872e4072824ace gas/testsuite/gas/tic6x/reloc-bad-5.s
+8b083b96669141fb8e4aafd4384cf86e gas/testsuite/gas/tic6x/reloc-bad-6.d
+3b67ac0816b1a93a56bea2973819068e gas/testsuite/gas/tic6x/reloc-bad-6.l
+63ae8145d338102f2029f8c3820206f8 gas/testsuite/gas/tic6x/reloc-bad-6.s
+319f1a8820a16f4d740bf087c222794d gas/testsuite/gas/tic6x/resource-func-unit-1.d
+5234e446a5e922291e1729d6aabe3453 gas/testsuite/gas/tic6x/resource-func-unit-1.l
+942f6857cdca34e758b9cfa46e6e72c1 gas/testsuite/gas/tic6x/resource-func-unit-1.s
+04ea445a4735bb4bb8294a8707b4565e gas/testsuite/gas/tic6x/resource-func-unit-2.d
+50429ccd3bea99a635218d10b35eb9bc gas/testsuite/gas/tic6x/resource-func-unit-2.l
+063bec4468dad620804c43a003d442e5 gas/testsuite/gas/tic6x/resource-func-unit-2.s
+8c1cfc99e396e9519813244c9ea0b511 gas/testsuite/gas/tic6x/scomm-directive-1.d
+16a38e48c689f24e9ffa1f32d33588e3 gas/testsuite/gas/tic6x/scomm-directive-1.s
+7138bca3184590cb1ebedde478ffbb2a gas/testsuite/gas/tic6x/scomm-directive-2.d
+8db1061bb9068179a2d25ede2e3bf9c0 gas/testsuite/gas/tic6x/scomm-directive-2.s
+5ac54992e1a475fc8760567206b0218f gas/testsuite/gas/tic6x/scomm-directive-3.d
+ab884915e5f858e9433896d4db7c8ced gas/testsuite/gas/tic6x/scomm-directive-3.s
+e7e3d15939e37b77676b50983c892735 gas/testsuite/gas/tic6x/scomm-directive-4.d
+0ca18b7b621d2bc1146d651ee98705b6 gas/testsuite/gas/tic6x/scomm-directive-4.s
+2d8d6e42de1587c21ce823c0a26b930e gas/testsuite/gas/tic6x/scomm-directive-5.d
+2bfba7dbc8c3c09a7fcc47fa8125a199 gas/testsuite/gas/tic6x/scomm-directive-5.s
+cd74dca6ee482cf6302ab0fe5af6edc7 gas/testsuite/gas/tic6x/scomm-directive-6.d
+6bccd6ec9c63322b63fa4b4077fa76cb gas/testsuite/gas/tic6x/scomm-directive-6.s
+83d935abbccea7045b6994c30bd0fbb0 gas/testsuite/gas/tic6x/scomm-directive-7.d
+183f90899ca987840dd25a1e9fcf915b gas/testsuite/gas/tic6x/scomm-directive-7.s
+7d39f97e822caf4f2e5e1d2fdd4a68c8 gas/testsuite/gas/tic6x/scomm-directive-8.d
+5e8d7ca08115be47412fa2917584f787 gas/testsuite/gas/tic6x/scomm-directive-8.s
+d438c15d99c89ecf97e58dc6a88e0fc8 gas/testsuite/gas/tic6x/sploop-bad-1.d
+e64fd235ab54cd4e183bcf6fa0b612fd gas/testsuite/gas/tic6x/sploop-bad-1.l
+dc5e79a0720607dd86bba0b739835b53 gas/testsuite/gas/tic6x/sploop-bad-1.s
+001726ba669b3f22952bda6da259a372 gas/testsuite/gas/tic6x/sploop-bad-2.d
+918ec190e57cb54530e80a5740345f8e gas/testsuite/gas/tic6x/sploop-bad-2.l
+452b48e0f430ae7a0f9eeaa66cc04058 gas/testsuite/gas/tic6x/sploop-bad-2.s
+42819d33d0098bf3dfc4583cadcbcc09 gas/testsuite/gas/tic6x/sploop-bad-3.d
+ef260649f39e1fe49eb15ce708627e47 gas/testsuite/gas/tic6x/sploop-bad-3.l
+5b1df4b9f9f66941a478a4fcafc42aa7 gas/testsuite/gas/tic6x/sploop-bad-3.s
+20303d99e8f8df5b5b00dac2983221d9 gas/testsuite/gas/tic6x/sploop-bad-4.d
+7828bf28b034b422f7aba840482b457a gas/testsuite/gas/tic6x/sploop-bad-4.l
+5d912fb61a36c62334cfc2eb7ef33197 gas/testsuite/gas/tic6x/sploop-bad-4.s
+d2f1ebe6d4a2b0873e69e64cb76a141e gas/testsuite/gas/tic6x/sploop-bad-5.d
+0a0c272ee31f594c05de8a03a2ccb671 gas/testsuite/gas/tic6x/sploop-bad-5.l
+41912b22aa2f441fd37d51b065a209be gas/testsuite/gas/tic6x/sploop-bad-5.s
+d8e8c7cc5d21465f80ee188aa9c46f7e gas/testsuite/gas/tic6x/sploop-bad-6.d
+f9475a6b38fe3c22d830b209a968aae7 gas/testsuite/gas/tic6x/sploop-bad-6.l
+a68011cf3c6829ecdb38fb481e833959 gas/testsuite/gas/tic6x/sploop-bad-6.s
+f173a1672f1736d22fa60aec50716d92 gas/testsuite/gas/tic6x/sploop-bad-7.d
+2e0455de0927f225035de61e37c159a2 gas/testsuite/gas/tic6x/sploop-bad-7.l
+08d8027f46982627fb96f729aac156c7 gas/testsuite/gas/tic6x/sploop-bad-7.s
+a3c602f713f339f45a3115d08131de85 gas/testsuite/gas/tic6x/syntax.d
+622f074e9750f32b1b3049caf28bf022 gas/testsuite/gas/tic6x/syntax.s
+05cd90abed0f22506361adfc1f0c1bca gas/testsuite/gas/tic6x/tic6x.exp
+7de248ac3020a9455de02a7bbdf7d195 gas/testsuite/gas/tic6x/unwind-1.d
+52f861d4eb5237992dd629e51c064d54 gas/testsuite/gas/tic6x/unwind-1.s
+fece3517007eb4f9306e99377e172a85 gas/testsuite/gas/tic6x/unwind-2.d
+6aaeaa764a1d0bb49b97b297e2d66fdf gas/testsuite/gas/tic6x/unwind-2.s
+08171ee03b37cff8afa367b15eade18b gas/testsuite/gas/tic6x/unwind-3.d
+9f274d7c18497faa9fdff643efc85942 gas/testsuite/gas/tic6x/unwind-3.s
+3cf151ca4cd641205959c21da387056f gas/testsuite/gas/tic6x/unwind-bad-1.d
+1a546443bfdae63539184169e5d30ab1 gas/testsuite/gas/tic6x/unwind-bad-1.l
+733fa46a8b460a1b397f5cfc097238b9 gas/testsuite/gas/tic6x/unwind-bad-1.s
+4004feb44851aecf3ab90dc47f9461f4 gas/testsuite/gas/tic6x/unwind-bad-2.d
+5356e3641cb596ee28dff24a9eacd21f gas/testsuite/gas/tic6x/unwind-bad-2.l
+e31d5b10f3d263459ed7d6db8e4079da gas/testsuite/gas/tic6x/unwind-bad-2.s
+4dc38895f0191487e8fb6e1e83be4ed7 gas/testsuite/gas/tilegx/t_insns.d
+cfcc8d0fa3c49333c4c2661613f2fc05 gas/testsuite/gas/tilegx/t_insns.s
+b0a5f5ee47ae8c2e5b01678b945df479 gas/testsuite/gas/tilegx/tilegx.exp
+7517e1f64362b3580d0049ab73d26abe gas/testsuite/gas/tilepro/t_constants.d
+23d4d2ce8eeacebfeed51686a24116cd gas/testsuite/gas/tilepro/t_constants.s
+6ad3aebff6418f5b057cd2d052487d90 gas/testsuite/gas/tilepro/t_insns.d
+04b0ea6a3eba9a7a2e11225c13bb2bdd gas/testsuite/gas/tilepro/t_insns.s
+e81f5fbb964adeb73c4f2156d55d78cf gas/testsuite/gas/tilepro/tilepro.exp
+b3daff1073feeab915c5d25268ab1d71 gas/testsuite/gas/v850/arith.s
+e578aefe805ee5ad3ee58d0ef2832b18 gas/testsuite/gas/v850/basic.exp
+fd5263cb3409650f6bb2e9b610eab2d9 gas/testsuite/gas/v850/bit.s
+d33db5351243bff28f76ada8284737dc gas/testsuite/gas/v850/branch.s
+e3d311e55349338e4876c3711ed91c46 gas/testsuite/gas/v850/compare.s
+986292c2ba21464166aa337ab580a139 gas/testsuite/gas/v850/fepsw.s
+5f8e79e5bec30791f19218a7ad23040d gas/testsuite/gas/v850/hilo.s
+f7d87df456dee97f2d28be5a29afde0a gas/testsuite/gas/v850/hilo2.s
+36254aabdcf9005f2dd8e7fba47de388 gas/testsuite/gas/v850/jumps.s
+ee5a6da54e89a759bccef5da2ce4747e gas/testsuite/gas/v850/logical.s
+79263247214c7d46c383e26aafc74d31 gas/testsuite/gas/v850/mem.s
+2db16d6b7c2aa2cc17e621ac1da852eb gas/testsuite/gas/v850/misc.s
+8c5fd0446e831223f93adebecec8a2b2 gas/testsuite/gas/v850/move.s
+90c3465d11f275837ad5b9cac2dd51c4 gas/testsuite/gas/v850/range.s
+10e8b025bce8af1b59c395fc5799236c gas/testsuite/gas/v850/reloc.s
+378cfe25e8ce273611d7d2f43d70cfe9 gas/testsuite/gas/v850/split-lo16.d
+eee775291469641dfa761921ed942688 gas/testsuite/gas/v850/split-lo16.s
+4508b29270952dbf4203e35db3d39dbe gas/testsuite/gas/v850/v850e1.d
+eedf6270a3f4501ed56b62c6a386ca44 gas/testsuite/gas/v850/v850e1.s
+97c4b5a719430010c15bae2299ce58fe gas/testsuite/gas/vax/elf-rel.d
+93d331c520e6b5b5b63f7010f800b523 gas/testsuite/gas/vax/elf-rel.s
+c8557b4b40ce9690c81d77b9502a959c gas/testsuite/gas/vax/flonum.d
+2cf8b02a3bf0517e18f9e972f496f396 gas/testsuite/gas/vax/flonum.s
+aa03dd0743c96363f2bbd4a8d6bf5930 gas/testsuite/gas/vax/quad.s
+b5281ff49f97d0836ede49ab60f0b84e gas/testsuite/gas/vax/quad_elf.s
+5573f76fbd39f4ef631b12ccfe26082e gas/testsuite/gas/vax/vax.exp
+b898eb8de608f2a58e457819a18fc6b5 gas/testsuite/gas/xc16x/add.s
+5f315bec363a06d8c499bfef6a910ae4 gas/testsuite/gas/xc16x/add_test.s
+1dc4db7d28ad50d346642f6dbf5df632 gas/testsuite/gas/xc16x/addb.s
+d301d0d9a87958794c84ad7da238c117 gas/testsuite/gas/xc16x/addc.s
+cbc27d426e01a6b1787ca0874a40ec64 gas/testsuite/gas/xc16x/addcb.s
+ec736a95397739f0e5d7ebebad55f68d gas/testsuite/gas/xc16x/and.s
+901d19e05a01c914be683e6ef837e9d3 gas/testsuite/gas/xc16x/andb.s
+f4f8565d3423ec279b25c291c489ac5f gas/testsuite/gas/xc16x/bfldl.s
+7abe30bd4385dc6cc9991dee613c31b6 gas/testsuite/gas/xc16x/bit.s
+72072eaeb0ce024c58e07b6821e122f3 gas/testsuite/gas/xc16x/calla.s
+c4432ec0aeee6567803279d86b2ed6c1 gas/testsuite/gas/xc16x/calli.s
+81a7564b23206ef107f01041892f1a9a gas/testsuite/gas/xc16x/cmp.s
+1a42e3b54e1c1f12cb59756592a4e4bd gas/testsuite/gas/xc16x/cmp_test.s
+b3db7ee9fa74afda3c5a7c4563500151 gas/testsuite/gas/xc16x/cmpb.s
+2c9832a9dbde30032fb81ddbd0c7e6f6 gas/testsuite/gas/xc16x/cmpi.s
+af0d2186664faa9760fdd9c9b96e6237 gas/testsuite/gas/xc16x/cpl.s
+fb689b8eb0e2d2948c81871e4437eb55 gas/testsuite/gas/xc16x/div.s
+39a90f3f13cb6ebd7bbf254f53b1f06e gas/testsuite/gas/xc16x/jmpa.s
+393bd96fab3a174b68fa2a11698517ac gas/testsuite/gas/xc16x/jmpi.s
+344ed28d4ba4d16c75b7c3b3804c222e gas/testsuite/gas/xc16x/jmpr.s
+78fe1a285b5a9300fd6870afc8d7a624 gas/testsuite/gas/xc16x/mov.s
+14e2e5dda69ea4c34dad7fc422218333 gas/testsuite/gas/xc16x/mov_test.s
+568a5a3459bce6973680b30bac821450 gas/testsuite/gas/xc16x/movb.s
+84938c2fa9619b926b0cbaf47c0bad1f gas/testsuite/gas/xc16x/movbs.s
+606f31c66b3eb70c5535a0d5d3c5269b gas/testsuite/gas/xc16x/movbz.s
+c171a5c5b96d9090fb5c0abf5f9cdc06 gas/testsuite/gas/xc16x/mul.s
+94af5bd0dbfab715edd926f4b6386997 gas/testsuite/gas/xc16x/neg.s
+112290437259ed40e1d74b876e21f444 gas/testsuite/gas/xc16x/nop.s
+4027f70a69e5ee51af01107f742db8db gas/testsuite/gas/xc16x/or.s
+39ebd060389b04ee9b451b65d48aabdb gas/testsuite/gas/xc16x/orb.s
+191945b9ed36a3dd3a8350289f1eec47 gas/testsuite/gas/xc16x/prior.s
+d3d778fd4c04043cf34b85499dd25b44 gas/testsuite/gas/xc16x/pushpop.s
+1b77424053fd88917ab756f4aa5b126b gas/testsuite/gas/xc16x/ret.s
+06da10d686c4a6de64553c6208c87d1a gas/testsuite/gas/xc16x/scxt.s
+d9d7113ce6edc188b99ac7ea87402cf7 gas/testsuite/gas/xc16x/shlrol.s
+adc7510e48e55d117ea82b69328d15b4 gas/testsuite/gas/xc16x/sub.s
+deaa94ee201bb59e369f29f575a897d8 gas/testsuite/gas/xc16x/sub_test.s
+bd05476dae49fa2a7bbbf86e7a5c60a1 gas/testsuite/gas/xc16x/subb.s
+cc52ade9bcdf936042ef42b922f19105 gas/testsuite/gas/xc16x/subc.s
+49f7f3fcf66ba02d15f5ee099ac4625f gas/testsuite/gas/xc16x/subcb.s
+1a0cbe2eff7809873f2845c05a13b284 gas/testsuite/gas/xc16x/syscontrol1.s
+76c8d37a5a3e663f33e7899beac2bcc1 gas/testsuite/gas/xc16x/syscontrol2.s
+6e499f9be2aff00b249bd7e2b8fa3454 gas/testsuite/gas/xc16x/trap.s
+7d10540fbf64a1d6db6b7f179eed4b3a gas/testsuite/gas/xc16x/xc16x.exp
+396543dd8f02cd8bd81a9b0a8d8358b6 gas/testsuite/gas/xc16x/xor.s
+235321f531fc18a5f7156f103c618fc5 gas/testsuite/gas/xc16x/xorb.s
+9bd3cbd5df41ccea979773da1a06d25e gas/testsuite/gas/xstormy16/allinsn.d
+7389542aad96c9680c2964c5585bd7e1 gas/testsuite/gas/xstormy16/allinsn.exp
+0578374b0231a4f3a76bceecd452af8c gas/testsuite/gas/xstormy16/allinsn.s
+1e5f1e10cec9b3c80aebd2d85bf9f4ab gas/testsuite/gas/xstormy16/allinsn.sh
+424739d1d4a83c8dd312ff4a255fe33a gas/testsuite/gas/xstormy16/gcc.d
+34eb714356686c594ea470d037ff980d gas/testsuite/gas/xstormy16/gcc.s
+2bab00917391fa8fe1dda5938f6ad558 gas/testsuite/gas/xstormy16/gcc.sh
+497560cde7dc6be28345811a294871c8 gas/testsuite/gas/xstormy16/reloc-1.d
+7b2f6fd28e4136ed51af9fa15bfbc87c gas/testsuite/gas/xstormy16/reloc-1.s
+e2364d93d941960a57bdec88bca95f47 gas/testsuite/gas/xstormy16/reloc-2.d
+688ac14ef52d1f032c6e360b5e8d2607 gas/testsuite/gas/xstormy16/reloc-2.s
+14ad1e88c9c24f7a3ec9eb738af6685f gas/testsuite/gas/xtensa/all.exp
+febb407b84d25094205ffd8a82c8f3f8 gas/testsuite/gas/xtensa/entry_align.s
+047b105217cfb35f7b85b27982de9ee0 gas/testsuite/gas/xtensa/entry_misalign.s
+98754ef2b2ad4579570fc6cff9e5f465 gas/testsuite/gas/xtensa/entry_misalign2.s
+b2aff7acb77401a9e680b20148109634 gas/testsuite/gas/xtensa/err-pcrel.s
+feb6bdf09b3344bce0d6638dc2c34d25 gas/testsuite/gas/xtensa/j_too_far.s
+70b6a1943f31e85e4a40c7106205d6cc gas/testsuite/gas/xtensa/jlong.d
+e910c7d2ee2aa41e6baf7c2eccedbecf gas/testsuite/gas/xtensa/jlong.s
+ab9272fb92c36f6cc58921de84c4a0eb gas/testsuite/gas/xtensa/loop_align.s
+89c5bc675c0f6e4d485383908be47831 gas/testsuite/gas/xtensa/loop_misalign.s
+2c16b47ffb1bdf68123ae890f0a53d90 gas/testsuite/gas/xtensa/pcrel.d
+836acd098dba389006887f1032de1d0d gas/testsuite/gas/xtensa/pcrel.s
+89136e7c8b9eff77fbcb58c94a361f37 gas/testsuite/gas/xtensa/short_branch_offset.d
+3050cc891aa6dc3b721df7adcc1e9e9f gas/testsuite/gas/xtensa/short_branch_offset.s
+caa3c813d0d190a10143bb1726af402b gas/testsuite/gas/xtensa/weak-call.d
+e9cbcae183da4f3236cf8e232960c533 gas/testsuite/gas/xtensa/weak-call.s
+0b94f1ec5d4daeb9620ac56e7a5c9832 gas/testsuite/gas/xtensa/xtensa-err.exp
+76096e7df8eeb0c73bd5aa7bfb34255e gas/testsuite/gas/z80/arith.d
+8118fc03539fde92b0de9cae6188372c gas/testsuite/gas/z80/arith.s
+e0dc1a059c74faaac5ad2ee2ccb3e36d gas/testsuite/gas/z80/atend.d
+c9633957effeec0ed1dad46964e975ab gas/testsuite/gas/z80/atend.s
+950e301bffae63b183aca2c8f224cb7f gas/testsuite/gas/z80/bit.d
+cc6040323b82ab0d7e368abd06c1ad7b gas/testsuite/gas/z80/bit.s
+21f5b15722fce227204cb650accda912 gas/testsuite/gas/z80/block.d
+5a511ead974b283bdda5668428c09393 gas/testsuite/gas/z80/block.s
+cb3c6c56e18d6f2710326d97939c4768 gas/testsuite/gas/z80/branch.d
+8c45e2c4272f9169f12025386f007298 gas/testsuite/gas/z80/branch.s
+9d9964701252eee897f484dee8ce307c gas/testsuite/gas/z80/equ.d
+585c2593f699832516b10888efcb3501 gas/testsuite/gas/z80/equ.s
+57f344303eafeb80a995d32b81411fb8 gas/testsuite/gas/z80/inout.d
+90a1576adecaca86f780c1550872ea47 gas/testsuite/gas/z80/inout.s
+2aeaecb345eaead5b7d3c61fa873603b gas/testsuite/gas/z80/ld-group.d
+32f329efa727bf528ccce3f380573caf gas/testsuite/gas/z80/ld-group.s
+e315baa412368a90c904c56bfd495f2f gas/testsuite/gas/z80/misc.d
+68084a742592799b5a051ffbb6ee140e gas/testsuite/gas/z80/misc.s
+408cc9b5ff8576a0af9a6303a060a84a gas/testsuite/gas/z80/offset.d
+34d65c390eed4096165f7b9589edf9a9 gas/testsuite/gas/z80/offset.s
+ed248a2dc8a185797dd5ccacae58d6bf gas/testsuite/gas/z80/quotes.d
+968a4dd849f36bf8929291ec2ddb7575 gas/testsuite/gas/z80/quotes.s
+6f4f086c484747ed4ddb587e56797097 gas/testsuite/gas/z80/redef.d
+15faccb7602127c05c2ae5fafe5a2227 gas/testsuite/gas/z80/redef.s
+fb219e51df0e277f3ac3c62283ae9cbf gas/testsuite/gas/z80/rotate.d
+1b4b12e40cc8a7fc2c7dfdeb15b7e7c0 gas/testsuite/gas/z80/rotate.s
+fb0806d8887b68b7f863f42c7a45a645 gas/testsuite/gas/z80/suffix.d
+a738f0cca1753ef4b1c78743e366ffc3 gas/testsuite/gas/z80/suffix.s
+80dc5223661a959b82224eb6067f0e3f gas/testsuite/gas/z80/z80.exp
+b49428eb4ba63d8dac5690c08355ebc2 gas/testsuite/gas/z8k/calr-backf.s
+6e4950abd9e763001ccc0bbc0babaf23 gas/testsuite/gas/z8k/calr-forwf.s
+86577ff2937c59bafae28abe1bbb9baf gas/testsuite/gas/z8k/calr.d
+541f7c8179a6e454326ce7b21bf8d7d2 gas/testsuite/gas/z8k/calr.s
+b17b39612ad59025b551ce2038897c79 gas/testsuite/gas/z8k/ctrl-names.d
+9af934d7ef4cc61120ac722bd3447044 gas/testsuite/gas/z8k/ctrl-names.s
+28483e5b3cf53bc3ba9a9901f6f43cdd gas/testsuite/gas/z8k/dec.s
+c1e81cc8fc32752bf759d6cb3f4077d5 gas/testsuite/gas/z8k/decbf.s
+92c0157129bceb932434c0c3bd500365 gas/testsuite/gas/z8k/decf.s
+570b5ee7aa92ae18483423aeafaf4c54 gas/testsuite/gas/z8k/djnz-backf.s
+a3fe9dfe1ae7aa5b675bbaff933a172c gas/testsuite/gas/z8k/djnz-backf2.s
+6bfbbe34e06a02f656a19b014d287c62 gas/testsuite/gas/z8k/djnz.d
+bdae045f9b33f16fe1fa345ed1725848 gas/testsuite/gas/z8k/djnz.s
+b305ef7b6f6709032524f6568266ec54 gas/testsuite/gas/z8k/eidi.s
+17135d7105f96ceb57f7d2df1ceaf288 gas/testsuite/gas/z8k/eidif.s
+ed322b14e46464bec51ecb589c340dc5 gas/testsuite/gas/z8k/inc.s
+1b718e47798f82cc751183fb7bd1570d gas/testsuite/gas/z8k/incbf.s
+5c236b616e7830fe0e367398a9126d18 gas/testsuite/gas/z8k/incf.s
+cb0eeef7fe997388c62e67c9fcb4516e gas/testsuite/gas/z8k/inout.d
+bc612d839839a7edd8a6edb414fcaece gas/testsuite/gas/z8k/inout.s
+71c54c4ae22dbe8878b1227d49606aac gas/testsuite/gas/z8k/jmp-cc.d
+31118c0ac719666949c9ca49fa349d0b gas/testsuite/gas/z8k/jmp-cc.s
+fe1ac4303fe3baf72c7f534c7df60cf7 gas/testsuite/gas/z8k/jr-back.d
+30a99e6ef53c4f50d1a33c8a96b24515 gas/testsuite/gas/z8k/jr-back.s
+c8d698d13dfb162e769f8802fd9b0d74 gas/testsuite/gas/z8k/jr-backf.s
+539854b970b0949b0aeed74e7bc5b3c3 gas/testsuite/gas/z8k/jr-forw.d
+1e22a5e25eae4439cc2d1642fe4c25d7 gas/testsuite/gas/z8k/jr-forw.s
+2e9d4668c8f7269b9d013e5f6acb866e gas/testsuite/gas/z8k/jr-forwf.s
+e2882e18046d6c5e38967bd4a873a424 gas/testsuite/gas/z8k/ldk.s
+67a6618ad1b858a214e45638cf227a5a gas/testsuite/gas/z8k/ldkf.s
+0fb8a216833a93af0c8a0e5dab536925 gas/testsuite/gas/z8k/reglabel.d
+98c23d4ff5397fcd6c075b365b0f8712 gas/testsuite/gas/z8k/reglabel.s
+caf6a6138b956da27b9b42beabea1c2d gas/testsuite/gas/z8k/ret-cc.d
+f23b1d6008927d7ae445999b7f5f0bf3 gas/testsuite/gas/z8k/ret-cc.s
+a8db3b4208084b45c4116081711019fb gas/testsuite/gas/z8k/z8k.exp
+5725f8e58e03bd6026f3e2721e1db22e gas/testsuite/lib/doboth
+133e9f8bb4d12ac7e498f0ac5d0246c0 gas/testsuite/lib/doobjcmp
+aad4965bf0067bf9fb71acc19f7877d4 gas/testsuite/lib/dostriptest
+bdf5e4dee40167a92f0a45965b0375b7 gas/testsuite/lib/dotest
+af650aab07403b5a05623713b613856f gas/testsuite/lib/dounsreloc
+30764ced5c424e3c2c384059cbe2a227 gas/testsuite/lib/dounssym
+454ecc6320ae2b041609bc729dcb6bf2 gas/testsuite/lib/gas-defs.exp
+b4a303f3223f3695d37e231d7e691500 gas/testsuite/lib/gas-dg.exp
+fa15c7b10accc66a51aef7768472e371 gas/write.c
+3b955fb7ab2ef082f90865d180ed0ef5 gas/write.h
+920138da7dbc4f3ef4ba32e27f2886a9 gold/aclocal.m4
+cfb2f43a125170e66c90d7170bbca885 gold/archive.cc
+ae2022764dc7407a210d4bd795f4054a gold/archive.h
+e9a57934d59bf0fb1770c13e36bffc86 gold/arm-reloc-property.cc
+ae313dff2413bd2819f4ab0f6e0d0cb3 gold/arm-reloc-property.h
+0c8fa104bc816e2bb99c31e3a3a04a76 gold/arm-reloc.def
+3f304928f9da5dd7194793bddeff5888 gold/arm.cc
+c4bdb95759b2562e84e2e3ae745bf9b9 gold/attributes.cc
+106b7b5a4a9cc14109c6e36f9fbd0bce gold/attributes.h
+443debdf67a99cfafda83df5229fc05f gold/binary.cc
+db3d9c5c5950fe999accc7ea1c5b659a gold/binary.h
+dbcabe17c3375de8e45bce5bbe0d1a70 gold/ChangeLog
+bbfe76b7753e98622f708aa3fffd0c3b gold/common.cc
+6fdb26c4e334a794349d0bf97a3ca52c gold/common.h
+22d1af5b1f164c50043ae43a0e5dfa1d gold/compressed_output.cc
+cf591901128363a830ef32628ca6b897 gold/compressed_output.h
+fac10aec1128d2b5aceadd073972bea5 gold/config.in
+ca0321fb64d97dfef14b178f4792bd14 gold/configure
+62137e9f53aae20fb701180dca73e4ef gold/configure.ac
+3be298db81c4436a57939f940ba0c51d gold/configure.tgt
+9f638a42370a8550f31bc9ba277bc9fb gold/copy-relocs.cc
+65af0f3de57eba50bfa65b4bb351721d gold/copy-relocs.h
+359ce2e8c11d71f261e9033704859e50 gold/cref.cc
+7f252be444e9576bda4a3496216280d1 gold/cref.h
+1a17a3a8e4d700beb6624384b67653a7 gold/debug.h
+deea133840491c307096f770a4e7cb84 gold/defstd.cc
+a76f48603de929b8ed7a7a656ba630b0 gold/defstd.h
+51aa13f4c42e0c49266e38716b9f40ff gold/descriptors.cc
+8f1817f08b09eb28b618e3b5a8983ae6 gold/descriptors.h
+498a015c853882a7db3f60c18d4d2263 gold/dirsearch.cc
+76814987cdbef988686518ad901349e2 gold/dirsearch.h
+e8eafdf68ee7aecb5c5d9d94abed2491 gold/dwarf_reader.cc
+f0fc9ac6b6999ece3dfeb0eb0cf65120 gold/dwarf_reader.h
+b27404aa89d6155a7e09c48161676246 gold/dynobj.cc
+012314e00730338b1f1792bc6dea5267 gold/dynobj.h
+178087b6c80f243c7d8716c889d31940 gold/ehframe.cc
+08ca553efd91c9aa852f8ec8f01c9391 gold/ehframe.h
+6b230b219482ec1881e61bd2fefb6c28 gold/errors.cc
+502f1f3e8db45d063449d815b408ac3a gold/errors.h
+fc5109bfa612a13c5d17b3a71641f08b gold/expression.cc
+0d16fb621ed6640e97dbbbdf9be676e7 gold/ffsll.c
+c623b09362766dc4444b8c926fc258d3 gold/fileread.cc
+57aa1c270d4f542d72ef143fd1552c60 gold/fileread.h
+310a31b0e99dfae0c2c96dc810033ac8 gold/freebsd.h
+76b1ff3cb93502be702953b2ed781993 gold/ftruncate.c
+42a796cf816f168b25e699ece6e79b82 gold/gc.cc
+0f730d0302ae9d61af6fd154dd5f5977 gold/gc.h
+08fc5a346abbe8bf5949c93911bf798d gold/gold-threads.cc
+debf2f81aed982206e3480926240ca46 gold/gold-threads.h
+a5843f95b51889701783274d1c39d7a1 gold/gold.cc
+bb7785887b2d637ba758bc74de64d95d gold/gold.h
+2815749b39a66699b1171db54f4cbad7 gold/i386.cc
+50da54a753bb24a26a5295eb4e459aed gold/icf.cc
+350f34e563eeb79e3c0cac57dc5e422b gold/icf.h
+dde2d0915d47c2927b1ac1d26fa8fb6a gold/incremental-dump.cc
+2c234bc06bcad20a4e8fb4b01fc26b04 gold/incremental.cc
+da6e4c29aa8052bda1d1344db723a1f4 gold/incremental.h
+61a997f99180a69371fb830efe2e575d gold/int_encoding.cc
+884bd8912c1eda493a1f05d26086f1fe gold/int_encoding.h
+bed39fe37a1fbbbd0a0820def0335399 gold/layout.cc
+32f22b82f014418d043e7385a4239f0e gold/layout.h
+2e6d13e4a9ddfb02d86e35926ffdc745 gold/main.cc
+4c6d7c49559bbdf6dbd6a279370b6698 gold/Makefile.am
+79f21660f61562f063a819bd5bb824c9 gold/Makefile.in
+f6c7da31fb8c70fa4cdcfc5922b61809 gold/mapfile.cc
+be05d404cabe66f01ab7133085791763 gold/mapfile.h
+0c2d358d5ed3faaed479e871f3e400a6 gold/merge.cc
+50d803537d079c668db7d6cb45f8ff6a gold/merge.h
+1bb3bbab24172b571b72c7fb127e2b3c gold/mremap.c
+d6d999c5dc1e4cc4032ee874d917f984 gold/NEWS
+045f126a4a656a4188cb5b349e33708e gold/object.cc
+f105a9f6e7b4948abfdc94d6be0ce2ad gold/object.h
+f5777ed1ffc04741b6468ccdba5cc498 gold/options.cc
+62e78dd665221763629d3085ac3cfc47 gold/options.h
+f444561088c5564729f1e1ff452a6258 gold/output.cc
+1f90c1b2e32fb14616b69d7bfc12614c gold/output.h
+a961cd014f34ef80b3a3c86045823d1d gold/parameters.cc
+63209f69ed52a0b0542d50f1b65a66cc gold/parameters.h
+afbedc5f3aaa3cc3413fb629a716a853 gold/plugin.cc
+00197e1366b23a0d9ff3506cf2eb1cfc gold/plugin.h
+f5d465c1def148c3688d691b6676f6a1 gold/po/es.gmo
+e51f6cc3911ee1349c59c6661da4e6db gold/po/es.po
+e872d3ee22824820ca7746144ab3eedc gold/po/fi.gmo
+922ee405bf33ff9b7e96969b86c8b927 gold/po/fi.po
+2b7ec11aad5f113736fd4e91b78f3bf8 gold/po/gold.pot
+7103bf2876d97b9e71f3e6b20e3a16e7 gold/po/id.gmo
+b4492d1a0779dc0b6da2911fd1bcccf7 gold/po/id.po
+e2216e0ba2da7ea411d167673d7009a0 gold/po/Make-in
+232ba86994f5d311461c2f71232f9ff2 gold/po/POTFILES.in
+0952fb13719f896dee741e4dd733e6a5 gold/po/vi.gmo
+c5ec0edbb404e147aeaea802372fa8a1 gold/po/vi.po
+56858b341a0d327563af83ac257b1ef3 gold/powerpc.cc
+c423652afda43455ca78c502b716405e gold/pread.c
+5f7f19cf26bc8107507cabe85cf27a51 gold/README
+c02555882a81e8e5e20cba8bc2159c9f gold/readsyms.cc
+f7fd13e96623b8a1b40354922397a8d6 gold/readsyms.h
+ea0f1898029ac031868a6d029105d16e gold/reduced_debug_output.cc
+f5564bad622af448481d52505f289cc1 gold/reduced_debug_output.h
+c0e5fe55ab808bdd8cb47edd4786aceb gold/reloc-types.h
+89614c5630f8fb5c447861ab9a62b56a gold/reloc.cc
+0871e7463f1218ff84d364850a893614 gold/reloc.h
+4fee05a6178b729688ab4200d9ea19eb gold/resolve.cc
+46267ceb3ae8dc1be4267823e81ec980 gold/script-c.h
+4169a516b6d6924432669e728c08ea4b gold/script-sections.cc
+6db36bd21f208d6fa3f0990c3d7da9b1 gold/script-sections.h
+0f2108e0079a1c2933614ac94951056d gold/script.cc
+89c5d078ec9e3cc9b1c0a1c6c8aeda03 gold/script.h
+0ce7f7dbf461652175b6e9e4df27ab10 gold/sparc.cc
+f595f00790530b9d393df99edc6807a8 gold/stringpool.cc
+2bdda92ce7e34717260a1d26bdcb517d gold/stringpool.h
+22706de3ea04bd7b974b9dbff15aa5e4 gold/symtab.cc
+764f7045526cc89c06199ac495685aba gold/symtab.h
+c8e3f77291b633610ba2cd8acd642c27 gold/target-reloc.h
+af45e3feab8afda96001e46b148f4869 gold/target-select.cc
+32f344ac69843866c71a5205243e2e64 gold/target-select.h
+73ca989c92338dc42965d2b2d6d1b98f gold/target.cc
+255d45e3ef131663da5d2062f0c6f2e7 gold/target.h
+80b509c91549c14b2bf6a55edd4d2143 gold/testsuite/arm_abs_global.s
+eb46a49b940ea9c372ab29281d3d4946 gold/testsuite/arm_abs_global.sh
+9ac09610a2d87c662a5ceeaf1b025d15 gold/testsuite/arm_abs_lib.s
+80018cea4a4d102d59fcc1e8fa6f28eb gold/testsuite/arm_attr_merge.sh
+20754945d78d1f5638f26634b47e8f59 gold/testsuite/arm_attr_merge_6a.s
+66df9ecd840e9fe0126a9852dbee3e3e gold/testsuite/arm_attr_merge_6b.s
+4c155f3e2d74bfaaee87bf34c5f9370a gold/testsuite/arm_attr_merge_7a.s
+8383d587d80276d4b6a8dd6bab556839 gold/testsuite/arm_attr_merge_7b.s
+e347b22d67c811662c5d61834f924831 gold/testsuite/arm_bl_in_range.s
+4b002882f3ce289d3e92d29404bd773b gold/testsuite/arm_bl_out_of_range.s
+3f97a52ef33dc972c572d4533ef92f90 gold/testsuite/arm_branch_in_range.sh
+af46825e07ac2bdd6427457997a7d57e gold/testsuite/arm_branch_out_of_range.sh
+e9ff846223ed2bbeb803610a3ca91c1f gold/testsuite/arm_branch_range.t
+b2b7a67ff2a1cf5d62db786501507dd5 gold/testsuite/arm_cortex_a8.sh
+652d0cde19d3d66a1725d54fc2a5b91c gold/testsuite/arm_cortex_a8_b.s
+7f068ed6006aa356331a5aebfcb2b4fc gold/testsuite/arm_cortex_a8_b_cond.s
+d94bd04b915e0260ae7f85bd883faf67 gold/testsuite/arm_cortex_a8_b_local.s
+3aa21fc062ab2dffd7db4d368bf0a907 gold/testsuite/arm_cortex_a8_bl.s
+40ddb04f944f422900dccd988911d365 gold/testsuite/arm_cortex_a8_blx.s
+f8361e5ebf0488807385746412b86a21 gold/testsuite/arm_cortex_a8_local.s
+1dbff22390a0dd9f90d8b32a0947f0e8 gold/testsuite/arm_cortex_a8_local_reloc.s
+998e450377cb15c7882b4287b1df80d3 gold/testsuite/arm_exidx_test.s
+714ea4e5bb09a41ae492683f4143b1f5 gold/testsuite/arm_exidx_test.sh
+83d80a7ef45408d267162af94a007143 gold/testsuite/arm_farcall_arm_arm.s
+0b96c24216f4074132f7937594b94859 gold/testsuite/arm_farcall_arm_arm.sh
+feafda34a355cec86381a9424c1923e0 gold/testsuite/arm_farcall_arm_thumb.s
+0ef25a2e00c3770723c30e71a6053af3 gold/testsuite/arm_farcall_arm_thumb.sh
+938e05203cf88a8f3d61328da7f40b6f gold/testsuite/arm_farcall_thumb_arm.s
+809e9caae992873fdeff43cbd844e699 gold/testsuite/arm_farcall_thumb_arm.sh
+1748da76b5b6995c5e5246beaf550c89 gold/testsuite/arm_farcall_thumb_thumb.s
+b0eacfe2d4b3e8ea6a38ff5bdf53f3b5 gold/testsuite/arm_farcall_thumb_thumb.sh
+e0c37a2fccb6d4aeea259944dd0507e9 gold/testsuite/arm_fix_1176.s
+1c6a16b232cb814b1d10258e768931b2 gold/testsuite/arm_fix_1176.sh
+863a1a2ed16aabfcf03175997f5861a2 gold/testsuite/arm_fix_v4bx.s
+b9847ccd3bf1bf55d364499f0d4d0b1b gold/testsuite/arm_fix_v4bx.sh
+8c177688e29dbba293d61890595593bd gold/testsuite/arm_thm_jump11.s
+f8f4052351a5f8078bb4b3ac8bbf9bf6 gold/testsuite/arm_thm_jump11.t
+b1d476427b02fb14b51fac920bae98ea gold/testsuite/arm_thm_jump8.s
+8eaf6d4826efe781c387711e5e0c7eab gold/testsuite/arm_thm_jump8.t
+9c97f80983fba914f9dea285bb54c38f gold/testsuite/arm_unaligned_reloc.s
+ba4482d8c1ff810e16aa0635f07b9613 gold/testsuite/arm_unaligned_reloc.sh
+86ebe14fc53f726766fd6094c1762d17 gold/testsuite/basic_test.cc
+3b0f70d2cd5589a910279456f68336df gold/testsuite/binary.in
+25bc594a25d9f7b4cbdb47b027baf133 gold/testsuite/binary_test.cc
+6a820f1483951e06232a40197daac6e4 gold/testsuite/binary_unittest.cc
+b1ac1067b03972c85e0d1d49c900bca7 gold/testsuite/common_test_1.c
+e20717f09bcc933dd470474d72c0e446 gold/testsuite/common_test_1_v1.c
+d3a9dd16d78f5ebce76ad1e50121d236 gold/testsuite/common_test_1_v2.c
+0e6373efe5a79c8c395b1d2ee593e9a9 gold/testsuite/common_test_2.c
+8fdd7fcccb703cb70d67418105f7a4da gold/testsuite/common_test_3.c
+5b81b33dbafa5458aa9ac274b163c884 gold/testsuite/constructor_test.cc
+3420133aec5fd8fc5887def3d4cd1c7c gold/testsuite/copy_test.cc
+7612b383879374076b3110cc006d8224 gold/testsuite/copy_test_1.cc
+b3a44a7dbf5812854ae0d89dd447bd38 gold/testsuite/copy_test_2.cc
+4cd88b3578712ac527d0613a5ee0e728 gold/testsuite/copy_test_v1.cc
+6a8b9e7eacaff9ef2c252ead48e2f148 gold/testsuite/debug_msg.cc
+8f95430c9cf2ad73430cd70162f02d0b gold/testsuite/debug_msg.sh
+5b358034ecf1505d8675495e4e624623 gold/testsuite/discard_locals_relocatable_test.c
+e04c1316bcdeb97e0a8595dbe92d780f gold/testsuite/discard_locals_test.c
+fa32967cc44d43d4e1c73aad0f6b621d gold/testsuite/discard_locals_test.sh
+c9db537eb345d2e8155e17958d9d019a gold/testsuite/dyn_weak_ref.sh
+f6a22adb5ec303edd3b35c489bb0d1d3 gold/testsuite/dyn_weak_ref_1.c
+a04a49c0115a84e4324919da8a59d6fe gold/testsuite/dyn_weak_ref_2.c
+2fecf188d24d7c64c08c68483dd38473 gold/testsuite/dynamic_list.sh
+c0e08db807c4397f49bed99938e507db gold/testsuite/dynamic_list.t
+d84823c386b251a50d30b84626f2f182 gold/testsuite/exception_test.h
+2db52f66cd4624f76c03bc7744e557aa gold/testsuite/exception_test_1.cc
+0ad98b0e6bf2e6817f843782512e0bb0 gold/testsuite/exception_test_2.cc
+2f5a4607c092a09d1088dbf423981b23 gold/testsuite/exception_test_main.cc
+e64b239526003ae455fc6a2944d34ce5 gold/testsuite/exclude_libs_test.c
+5e751e6115ac8ee739e510325fc360e4 gold/testsuite/exclude_libs_test.sh
+740e416c0b6d2930d485ba5105130ce0 gold/testsuite/exclude_libs_test_1.c
+4b3c9863720fc755f063974fbaabd4be gold/testsuite/exclude_libs_test_2.c
+893351b0ec9cbfa21e0f884fcfeebf54 gold/testsuite/exclude_libs_test_3.c
+d9925bfa0462085af12a2f6fd97862c7 gold/testsuite/final_layout.cc
+97bfae757dbd15e1a7428f2225222833 gold/testsuite/final_layout.sh
+ff6b8a56847ee596ced08c23e49c1e17 gold/testsuite/gc_comdat_test.sh
+2fa43e0e436bcc6299fe05771aa1bb8c gold/testsuite/gc_comdat_test_1.cc
+7cec6896b02d316149aa526a082b359f gold/testsuite/gc_comdat_test_2.cc
+e61998214250c4a64e0ee91e66679999 gold/testsuite/gc_orphan_section_test.cc
+0505de398c8a3a820bb025ebb35f5eea gold/testsuite/gc_orphan_section_test.sh
+4dd1d6984551b2598df7d7f6220fa565 gold/testsuite/gc_tls_test.cc
+dedc8fae056b79820e781eec66f44334 gold/testsuite/gc_tls_test.sh
+97f6e21a09bed87161b94ce25951bb50 gold/testsuite/hidden_test.sh
+7307261e8720367aba744859958b1700 gold/testsuite/hidden_test_1.c
+db4a336c6c9c6120f5c0ff04097b7061 gold/testsuite/hidden_test_main.c
+39cc2487a8aa8d07cd43237a02d18c81 gold/testsuite/icf_keep_unique_test.cc
+6d707279237ff0073212cf18c1f63220 gold/testsuite/icf_keep_unique_test.sh
+eba7bf7e0a5fb9ae780f7c255a28abfe gold/testsuite/icf_preemptible_functions_test.cc
+974b10045822dcf27c1da02ead7e2277 gold/testsuite/icf_preemptible_functions_test.sh
+dbe37f764ab9d017bcb0cf9080b88426 gold/testsuite/icf_safe_so_test.cc
+d87cca5952715bab965e5ba705cc05c8 gold/testsuite/icf_safe_so_test.sh
+894868f60fd41765a92d882d77d357ed gold/testsuite/icf_safe_test.cc
+aa2529b30aec0cd7c305b9bbc5604a55 gold/testsuite/icf_safe_test.sh
+7bf16735ca553cf8c8d4f2110f581e94 gold/testsuite/icf_sht_rel_addend_test.sh
+c072acfe20a945d106bd1616dc126258 gold/testsuite/icf_sht_rel_addend_test_1.cc
+9aeda08248fb32af6fbaedc786c9b7e7 gold/testsuite/icf_sht_rel_addend_test_2.cc
+e79ceba2f1f4bee0c058fd9cd4ba6aa2 gold/testsuite/icf_string_merge_test.cc
+e3cc6d79af13ecc1f7bba5336d151b0c gold/testsuite/icf_string_merge_test.sh
+ead6454590ffb78112089ee878e99040 gold/testsuite/icf_test.cc
+5836f93b421f3a20bccd239587234dd6 gold/testsuite/icf_test.sh
+ad8de88fb33fe0412f4003774aabf0bf gold/testsuite/icf_virtual_function_folding_test.cc
+b21ad12a2ad23a55c7cd878016e3df6a gold/testsuite/ifunc-sel.h
+86a84ae9d37784b4fd773b0fa913e75e gold/testsuite/ifuncdep2.c
+36105ea36ae78f1358061b5cafe4f049 gold/testsuite/ifuncmain1.c
+3223fc2f00c6328c56e1eef47619091c gold/testsuite/ifuncmain1vis.c
+7a9dc0727592c03f021d90ec4b8d7fa6 gold/testsuite/ifuncmain2.c
+52b232060dd2ed88ff3fe9a1c80206fb gold/testsuite/ifuncmain3.c
+35c4dfe83d3aaa038b62d46203f84396 gold/testsuite/ifuncmain4.c
+d35d19a47708945bd834852e319bbb8f gold/testsuite/ifuncmain5.c
+db6ee45d78f8e4e03f54bcfa642978a0 gold/testsuite/ifuncmain6pie.c
+101daa6b653909395b9cbb4c597e93ed gold/testsuite/ifuncmain7.c
+3e078803e18828d03059de73cba7ba1c gold/testsuite/ifuncmod1.c
+7c02df556b86d56318f50afa8533aa27 gold/testsuite/ifuncmod3.c
+c97a7d851dfb9625975c8b6e35b32279 gold/testsuite/ifuncmod5.c
+06f48e84f9eb7409965eaadbde00af5b gold/testsuite/ifuncmod6.c
+26c7bea4cf5e792bca4e2592e4cba375 gold/testsuite/ifuncvar1.c
+93105bfafdabb199590707af7a834ffc gold/testsuite/ifuncvar2.c
+7450022de20fad74520e5baa717f5e3c gold/testsuite/ifuncvar3.c
+a34bee1d1a7b4c41cb6effbf77f97ee8 gold/testsuite/incr_comdat_test_1.cc
+b10259c8bf00761efc8701d17580cb30 gold/testsuite/incr_comdat_test_2_v1.cc
+50fbe3aca10cb9fdc08b4c04a362e07e gold/testsuite/incr_comdat_test_2_v2.cc
+637fc5ee63af1f2f527b80020e3b6197 gold/testsuite/incr_comdat_test_2_v3.cc
+045b6eb30ab2bb2b9bf3f78ec15de004 gold/testsuite/incremental_test.sh
+564d56618041450f346ab976eaa61c7f gold/testsuite/incremental_test_1.c
+26ebfc5653a661a125f378a2c3d1a4d9 gold/testsuite/incremental_test_2.c
+9581f14249af0949a34b805eca2c220c gold/testsuite/initpri1.c
+a2724cd18628c0d98d8f5beee833acbd gold/testsuite/initpri2.c
+32d55772fd511b95d87ade4373a30b89 gold/testsuite/initpri3.c
+066dfe40c23c09af4ceb1975b9012583 gold/testsuite/justsyms.t
+367168b4efa520b855148ce3f598a8f4 gold/testsuite/justsyms_1.cc
+c60367832efe45fa6723dd66e9ac5b05 gold/testsuite/justsyms_2.cc
+12d0f03a590433b78d1551a220c9a4ce gold/testsuite/justsyms_exec.c
+4ae956afa49ee72ad6f1df0694d1edb1 gold/testsuite/justsyms_lib.c
+f56a346fc9a2bcb6a4f0cc8f11c9a982 gold/testsuite/large.c
+349094e7d3a8b7733f1ddb6dd7e9163b gold/testsuite/Makefile.am
+53ab2814e7934bfdae92180956b38037 gold/testsuite/Makefile.in
+4fdd47206bc0385125e6d021aa14307a gold/testsuite/many_sections_test.cc
+583bee06b7ae8e1ebd4785762bb24bf8 gold/testsuite/memory_test.s
+6531523bfc4f5ff52f3cef93263ed798 gold/testsuite/memory_test.sh
+e82261fb2abdba3fd5af311575ad8443 gold/testsuite/memory_test.t
+b33adf188e54ec8bf8a8cefe2a33db59 gold/testsuite/no_version_test.c
+58be382ca4285cfee5767dc4eb27cb0c gold/testsuite/no_version_test.sh
+10c717dd95cada8753723d2e9a973437 gold/testsuite/object_unittest.cc
+30c3b467ce9d7551092d7f3c13886bc8 gold/testsuite/odr_header1.h
+810b515797a1ae720dbe559c96f6f8aa gold/testsuite/odr_header2.h
+d2cd4073d022541e7fba3162c7aa540b gold/testsuite/odr_violation1.cc
+d64b7cfb04ba4e60eac6db5fa9309eba gold/testsuite/odr_violation2.cc
+6a6f92c7fd2e7212418adb9095d72267 gold/testsuite/plugin_common_test_1.c
+d05a8a5aea99e607efcf0ba1ed948914 gold/testsuite/plugin_common_test_2.c
+f3465fa6136d73af4bd00205b504308c gold/testsuite/plugin_test.c
+c57bb784354b0cdffe1b6b057259a294 gold/testsuite/plugin_test_1.sh
+fa4b4ad9be3db3e90a35d2831867508d gold/testsuite/plugin_test_2.sh
+35b2bf95e682aa0e452aa96723c43db3 gold/testsuite/plugin_test_3.sh
+bca6113628db0717e20e2c1d9c0f857d gold/testsuite/plugin_test_4.sh
+babd41199703733916a4dcee04cd5a66 gold/testsuite/plugin_test_6.sh
+261da0c226d78509c9dd1af8638f6af3 gold/testsuite/plugin_test_7.sh
+127d7782cc0229bcbce7010945937695 gold/testsuite/plugin_test_7_1.c
+c18af6e29a62fb91d780c7429cc9075d gold/testsuite/plugin_test_7_2.c
+8fc0a654e08f79cd998b0aeefaacd13c gold/testsuite/pr12826.sh
+f67205103ab4ed24d22d1ee8600ab7a8 gold/testsuite/pr12826_1.s
+4950cb58ee8f6195869df0249101e45b gold/testsuite/pr12826_2.s
+a07e5eb89ec20de023a18d3682bae916 gold/testsuite/protected_1.cc
+5dbdaa63cf9fea403a320f846563b01f gold/testsuite/protected_2.cc
+228f14b040be1541678cefab27814a39 gold/testsuite/protected_3.cc
+647a519351194b76e6d0bef0de0214f7 gold/testsuite/protected_4.cc
+7af79e8f5d339223d69a8a762941643c gold/testsuite/protected_main_1.cc
+859efb322e32dee1f4f8f21c6e5fb6bf gold/testsuite/protected_main_2.cc
+b35d87a1a4f5b3dfe3d864916e042967 gold/testsuite/protected_main_3.cc
+5cc488b6518c24ca2409d55a3cc923a1 gold/testsuite/relro_script_test.t
+a37bc67f4dbcd87bcaa6c6b220c27513 gold/testsuite/relro_test.cc
+ec6697af4def9dd74a3fa4dde6e34a0d gold/testsuite/relro_test.sh
+88b854e0c2b0c5319da258766af03284 gold/testsuite/relro_test_main.cc
+271248ad882f12684eee0b6dbf55bce8 gold/testsuite/retain_symbols_file_test.sh
+39180a068348fd1c1215a38b8d633068 gold/testsuite/script_test_1.cc
+3a563adb4df0d719dd6a800daf329277 gold/testsuite/script_test_1.t
+4210035cfd18d6e9d68b2718a18f8b27 gold/testsuite/script_test_10.s
+c56033af9c8c34196fac9eed159b9115 gold/testsuite/script_test_10.sh
+085d6ddaef797dcea9d2e1707ee361bf gold/testsuite/script_test_10.t
+4411366032ece98b7c55998549f53a5c gold/testsuite/script_test_2.cc
+953d49b1bfd051dd9d9f69a183443d26 gold/testsuite/script_test_2.t
+19451d78fa1163268664f188e9211b78 gold/testsuite/script_test_2a.cc
+7b0e5b1d445feea506abb7da9d8ef168 gold/testsuite/script_test_2b.cc
+2939fbff7932bb95bf296d3e610585bd gold/testsuite/script_test_3.sh
+885b1f4a24902b0c2ad06c4fb9d27196 gold/testsuite/script_test_3.t
+689ea70c4e0d8f011b321a088b5323eb gold/testsuite/script_test_4.sh
+d8a46620baae25402bfe41a40188362e gold/testsuite/script_test_4.t
+14b92c452d67ab355f99b9525dcc9224 gold/testsuite/script_test_5.cc
+066d211a0717c0d74a5eb91307d14794 gold/testsuite/script_test_5.sh
+8d3e985a53460e7e9fb7ace265876e40 gold/testsuite/script_test_5.t
+3c91f257078cfecb860ee6a1c64591ff gold/testsuite/script_test_6.sh
+c1668bd6f86d1cff885b5e5a138d1f89 gold/testsuite/script_test_6.t
+391f5ddcd92576f694447b94d92c9aef gold/testsuite/script_test_7.sh
+7619a9f323c97a923fb675befc13a305 gold/testsuite/script_test_7.t
+ade28ed2703c3b34f9e3d6810191363f gold/testsuite/script_test_8.sh
+4e78bec9aba83de38c35529d4bde606b gold/testsuite/script_test_9.cc
+edd3e81ed58f2029416bd36a17ac28e2 gold/testsuite/script_test_9.sh
+059c878a569b3bfde82fb9f6877c2e5e gold/testsuite/script_test_9.t
+8c915430abad523a698b45f495830f44 gold/testsuite/searched_file_test.cc
+d25ad22662e92621bbd7ffc1497a76fe gold/testsuite/searched_file_test_lib.cc
+5f9efd4bba4273c4f1f93c8dff3690bb gold/testsuite/split_i386.sh
+92c11cdb9aea842d594b9424e9b2e3d0 gold/testsuite/split_i386_1.s
+66bd8fa6475d58e4d5c1250282207149 gold/testsuite/split_i386_2.s
+519c8104a43ce535996d4e2a1e1f24e8 gold/testsuite/split_i386_3.s
+99f5475ec63903df570d418a0b08c728 gold/testsuite/split_i386_4.s
+77b0a399acc870bc90a5338a92e2a599 gold/testsuite/split_i386_n.s
+e1d576034c0c7dbc847f4c7e3df553d1 gold/testsuite/split_x86_64.sh
+f63fdcb4a6e54aa57f88de09c817b52f gold/testsuite/split_x86_64_1.s
+b60c470795e496998f11ece6956a2002 gold/testsuite/split_x86_64_2.s
+85b4c26998b04b65acd6f6fd7801651e gold/testsuite/split_x86_64_3.s
+c3580b83ac55e873bf841065173dd2e3 gold/testsuite/split_x86_64_4.s
+b0c0742e6df0a34955d20797a071639a gold/testsuite/split_x86_64_n.s
+fce9bf62d81837159afeea4fafac82f2 gold/testsuite/start_lib_test_1.c
+c749fece8a8c8ad552933c2cdba1b73d gold/testsuite/start_lib_test_2.c
+3e26e8637b2167de82f07c5258d6379a gold/testsuite/start_lib_test_3.c
+b46a3e843a80ba9375dab2cfc3164a9e gold/testsuite/start_lib_test_main.c
+04d742ae16a0f5f8f3213ec68971c51d gold/testsuite/strong_ref_weak_def.sh
+7462c5f25ccd406fc6f9b0451cfd9b50 gold/testsuite/strong_ref_weak_def_1.c
+b5addfc24c12a59a153f149fd7e34d06 gold/testsuite/strong_ref_weak_def_2.c
+92a2f788eba64b331755cc0579f783c2 gold/testsuite/test.cc
+61a1a39977549e93f347220686ce4f9d gold/testsuite/test.h
+865cc6d89aee65b3ec22f99a866c5c34 gold/testsuite/testfile.cc
+7918d8c7bd159119eedbb2aad20da05c gold/testsuite/testfile.h
+5e680f660da830eeb807e760d248c887 gold/testsuite/testmain.cc
+df8a86dbed6dfbb59ea786b9c22f0c10 gold/testsuite/thin_archive_main.cc
+b3255ee5cd1b3c111c3c116d2f3ea14e gold/testsuite/thin_archive_test_1.cc
+a6c10c3b107a5fa9b54f467bac65c5c5 gold/testsuite/thin_archive_test_2.cc
+797d9b9004a5862e433154b6a19b80c0 gold/testsuite/thin_archive_test_3.cc
+da392c8e272fcca3d22c3a6bc4063a0e gold/testsuite/thin_archive_test_4.cc
+bf756e1012d336150378b6cfc9dfd081 gold/testsuite/thumb2_branch_range.t
+9362c778a05845384fe2994a2892e9e4 gold/testsuite/thumb_bl_in_range.s
+c3f11553ea12931497c562c3864aa594 gold/testsuite/thumb_bl_out_of_range.s
+c8ea5705d6e982f8268f8f9a4137c150 gold/testsuite/thumb_bl_out_of_range_local.s
+7d6754aa40903fb37d2b2624a193417d gold/testsuite/thumb_blx_in_range.s
+f94fc31d77082d754091a1f272948813 gold/testsuite/thumb_blx_out_of_range.s
+3731e95f245e102e1d863250a054b537 gold/testsuite/thumb_branch_range.t
+314cac0f6d51d09ff576a5afc1445a36 gold/testsuite/tls_test.cc
+e82ff898000bc8e949ed124b65de6aaf gold/testsuite/tls_test.h
+2e21e4374970271ac4a65291bac0a597 gold/testsuite/tls_test_c.c
+0330239e0c853bbc74e926bcc2c226ad gold/testsuite/tls_test_file2.cc
+fb2c02bee4360a3c68dd84cc13e402a0 gold/testsuite/tls_test_main.cc
+c0779b92c2034e44017e299b8439bd0b gold/testsuite/two_file_shared.sh
+5215960d6afbb41b8e45ee0a37a19719 gold/testsuite/two_file_test.h
+90b895eaa66266a27d57763d2adce03f gold/testsuite/two_file_test_1.cc
+5978286c8c2ab7fc747a768c45579a52 gold/testsuite/two_file_test_1_v1.cc
+bd95fd9d6127f3e1294207665cf52370 gold/testsuite/two_file_test_1b.cc
+4e30b6566dfd5650fe87774ed84cbaf9 gold/testsuite/two_file_test_1b_v1.cc
+d8fa3345100ea2e8255d8a16f329efb7 gold/testsuite/two_file_test_2.cc
+a455fd0eb4200e45799517762de553c3 gold/testsuite/two_file_test_2_v1.cc
+5b56f88017fc47926f1d9c3f5989c1e3 gold/testsuite/two_file_test_main.cc
+268e374cc74b6a5ef4552288dc23daca gold/testsuite/undef_symbol.cc
+3dd33a4f5afe7dd9271b34b797d0d84b gold/testsuite/undef_symbol.sh
+5715070e84f62d6ee8e377046e63e366 gold/testsuite/undef_symbol_main.cc
+bc58a234c75219d474aaa67e22656566 gold/testsuite/ver_matching_def.cc
+a60ce5a99c12565ed5c40ddd820dd951 gold/testsuite/ver_matching_test.sh
+beffa956f70cbc4a1732fa99fe909fc3 gold/testsuite/ver_test.h
+384ef699a55216bb312602b164af8ca8 gold/testsuite/ver_test_1.cc
+7e5064c7006e2d231f09ff08dac42c29 gold/testsuite/ver_test_1.sh
+03748fb27f0867c9a57807cf993d21cd gold/testsuite/ver_test_10.script
+6cab80863aca6054b92129e369543636 gold/testsuite/ver_test_10.sh
+d11105a86e14720017b1e2c269c7953d gold/testsuite/ver_test_2.cc
+c6c16debe9c8cc965791617baa2f47ec gold/testsuite/ver_test_2.script
+06f65e3a91f1371690f279c37f3053a1 gold/testsuite/ver_test_2.sh
+2fcdc5d9214ded2426b4e40af8f6d499 gold/testsuite/ver_test_3.cc
+068472b6093f7e002925d6efbe499d0c gold/testsuite/ver_test_4.cc
+b2d01290dcbd043c7af43d3755d6fd7c gold/testsuite/ver_test_4.script
+c3a654287019a6cbefe256d2b437b8cc gold/testsuite/ver_test_4.sh
+f44eab73816b100fe90be7878e8d9203 gold/testsuite/ver_test_5.cc
+ebe0c7c7674f000cd9681763cc254431 gold/testsuite/ver_test_5.script
+56969f9f537a373c1027bc9c1047f491 gold/testsuite/ver_test_5.sh
+910f0387b9b174a4f772c8a480cd9291 gold/testsuite/ver_test_6.c
+e4d053bdeedc7136f86dbccb3f4143f6 gold/testsuite/ver_test_7.cc
+447c7a6d3ef5dba00f56f4a3617de313 gold/testsuite/ver_test_7.sh
+b78ed4c062f3af1aa2d7d8e0af109b64 gold/testsuite/ver_test_8.script
+dc1f223d30a0a313893471d6cdb65410 gold/testsuite/ver_test_9.cc
+3ff3ea044c805be646385eeaab979e07 gold/testsuite/ver_test_main.cc
+f05fb8eff1750298a54b0484490a571f gold/testsuite/ver_test_main_2.cc
+aebe07d6e28f2c7ee5cec8d74b63dd54 gold/testsuite/version_script.map
+5bf5e9fc880e5b7e93b7d8d964a900a4 gold/testsuite/weak_alias_test.script
+5a714657e1f0769154be3d12f4d30473 gold/testsuite/weak_alias_test_1.cc
+fe9f3172d0ed0fb2ae23ae0b142b9c5f gold/testsuite/weak_alias_test_2.cc
+5d5efae0d256bb2f467ada9a855911b1 gold/testsuite/weak_alias_test_3.cc
+36c37c602257cd02876083e428f56384 gold/testsuite/weak_alias_test_4.cc
+b0df37e2239b69770ce3eafa9e9973e4 gold/testsuite/weak_alias_test_5.cc
+43d9f83948e1689acdf6b7f7cd91b6c7 gold/testsuite/weak_alias_test_main.cc
+e629f6c0e53c86f603909e751e690f9a gold/testsuite/weak_plt.sh
+6931c792306748004ca9badc85818bfd gold/testsuite/weak_plt_main.cc
+2cf9ee7eb929562a3275234d5ed8da59 gold/testsuite/weak_plt_shared.cc
+75c3f8bbad7bbd41407f745a912a96bf gold/testsuite/weak_test.cc
+2dbbc97ed424629b8db4d3edec61a0d6 gold/testsuite/weak_undef.h
+eee2f2336dbd6872707ff8583eb1a5d3 gold/testsuite/weak_undef_file1.cc
+8ae4b91e1cfa5b8944a13b22b6024081 gold/testsuite/weak_undef_file2.cc
+fc26afb96f348fd06e66eab4f0eb5576 gold/testsuite/weak_undef_test.cc
+8d96d1fbfa1c61fad71e0d371a16b067 gold/timer.cc
+7e6cb7703266905dc977ccd2fc2fdf61 gold/timer.h
+fb2f2b23678fd9fe40ce267f45866747 gold/tls.h
+9dc53739bd66ed923d6aab774d2fbf9b gold/TODO
+4e24824b3b6dcaff1d88e01e658f6d54 gold/token.h
+d5ad2a6b0e7a516c8289b050fe442c6a gold/version.cc
+2dc56f3a7a1ef7b914952877de97bd6e gold/workqueue-internal.h
+15304cbcde24f8a4428f965b57853ea3 gold/workqueue-threads.cc
+b15e7f397216d5a51dd46201ebd53567 gold/workqueue.cc
+224da8f6a03c481c61cb746bafc9f401 gold/workqueue.h
+6b11dc3372330d0627453f26fbce346a gold/x86_64.cc
+046741ffdf19b6092e26040b060a6f3a gold/yyscript.y
+b167dc5dcf583c07feecea0f8003e647 gprof/.gdbinit
+8257446e682118e49bf3006a90c44bd9 gprof/.gitignore
+c25e30ce37ff2c7dec4c9416e9def020 gprof/aclocal.m4
+b7f3f1dbdb1af21fadd9bad6efebe8c0 gprof/alpha.c
+7a5e6b6d3e5f41055c94ac0c2aba4686 gprof/basic_blocks.c
+68337233c4fbbae70f0c91b14ac23771 gprof/basic_blocks.h
+f28a2937af419e630b9fa9fa69f92220 gprof/bb_exit_func.c
+bb4081da1d9c7c6f056ec52fe9bc2ac6 gprof/bbconv.pl
+5bbcdaebdace1394d7b9a9e664af5ccd gprof/bsd_callg_bl.c
+cadeef23b67be4bb67efb8d51c426a84 gprof/bsd_callg_bl.m
+dba6b3485060a9752a60203a681f9eb8 gprof/call_graph.c
+5a84abf379cae2ccd9ce443822e8ca88 gprof/call_graph.h
+d49a8ea21b682aa7157b90da9d415692 gprof/cg_arcs.c
+e8684da93359ad97b5c235bab5c5474d gprof/cg_arcs.h
+dd5eca848b88b6d2fe6f0eaa280c0fe1 gprof/cg_dfn.c
+a1f9f8c6502a23c0f11956f1854376a8 gprof/cg_dfn.h
+397aa6fdcf671321fa19cb131b76ab72 gprof/cg_print.c
+7d0374db6f692e7a6e1fd69f2b7311e0 gprof/cg_print.h
+93ca5d4377944b7ed291c35b59cc3bcd gprof/ChangeLog
+a160966de58352bbe3351ef84b65cc5f gprof/ChangeLog-2004
+59394b05b4e06d2a4e779bf09e828a79 gprof/ChangeLog-2005
+6910e91285ad062c6c924f5a1dc9ca2f gprof/ChangeLog-2006
+b87ba12a146472b54416b46f18fa371d gprof/ChangeLog-2007
+40e0bc6ec4ffd8dbd114f18ce6a2abac gprof/ChangeLog-2008
+557f36e4287947ab6630317f0424188e gprof/ChangeLog-2009
+bd58b6671500d3bc2d84204f35b6a643 gprof/ChangeLog-2010
+7be7f2cec102ed4a91aba8985a704085 gprof/ChangeLog-9203
+745ff1b458c66a2bdcc3d275761355c9 gprof/config.texi
+f1e822f1c45291c7ec965337ae5d543b gprof/configure
+ccfe0b08eafef379d243a00d97e9d473 gprof/configure.in
+16a778434d1cd5848765ca6ab255fbbe gprof/corefile.c
+b0ce8fa6fde924d0e1883ade40c89573 gprof/corefile.h
+cec602aa7e8925e06a658a3060d42c1b gprof/dep-in.sed
+072910d553f79906db69fa7c0e956bba gprof/fdl.texi
+6b0c66b9f8ad2f32fed0575bc4f10bbd gprof/flat_bl.c
+d6498bb2d3ec24087785cd109c215067 gprof/flat_bl.m
+845df53b262986e413ab8333f3b60463 gprof/fsf_callg_bl.c
+609bbce6f5cedf6b0c8d25c3061b582a gprof/fsf_callg_bl.m
+b908740cf1594cdb62130cb966e0a79d gprof/gconfig.in
+2b39bf82ecbb857963231a1da2b79977 gprof/gen-c-prog.awk
+15df93a147b06f0f0d8cf05f2939ba4f gprof/gmon.h
+f7577744dca93e5dc3fd833e4db52c38 gprof/gmon_io.c
+bc9603fc7f31fc94bb1d3f9bd69faa51 gprof/gmon_io.h
+90584e94b238bb26c1dd5af55a09033c gprof/gmon_out.h
+ba427b1fe36ebc7769b7b9d6df88dbff gprof/gprof.1
+4c25239e032ba1183b18941e47af0b20 gprof/gprof.c
+ef2f65f1bb0fa0c98a044942eb493e15 gprof/gprof.h
+5b39d86670cb03213d45f18559d5063d gprof/gprof.info
+8bcf7676f463ff82f243c9c5f0a2570b gprof/gprof.texi
+78367cd648e22d38195bb574293e3be5 gprof/hertz.c
+24db7d8a9df2b0b4bf64f282fc3035a9 gprof/hertz.h
+f9d86d11e63224ffa1dfc385797e872b gprof/hist.c
+b0a33ff164aac1e9f56550c1194993bd gprof/hist.h
+a6429d3de563eb0422db7c58555a7b0b gprof/i386.c
+d618facc3e8ce8bf3d02ba452e1be6ab gprof/MAINTAINERS
+f43a7ce0699f7a7e7bb15cd62bee00c9 gprof/Makefile.am
+ed79995a32be351e6fb317e1dc76217b gprof/Makefile.in
+92a358204dc90732f5c3ffc4d16ef9dc gprof/mips.c
+5e484f64f2a4e94587e5a5b34a051608 gprof/po/bg.gmo
+b55b2ff070169006067a250ee0221783 gprof/po/bg.po
+48e64f6435b31c4a0cd11c906a0d206b gprof/po/da.gmo
+8eaf82a729b46891007cb58e3028f90f gprof/po/da.po
+f1c150dcdb59dfcf53610b240c629ba7 gprof/po/de.gmo
+852de791b4a6f1ea1af26a44aff56361 gprof/po/de.po
+0b53f02ce3a8eb7bb21dedc5b9d9a6e4 gprof/po/eo.gmo
+ad78a013a4bb557eb02c0a4c68e3a0aa gprof/po/eo.po
+3bd53d1b01f6bd62d97d53f552a56cf7 gprof/po/es.gmo
+c64dcbad3d4cf13bfb95824e7f948f4a gprof/po/es.po
+871b46017f0b1344ca87d65b49f1db6e gprof/po/fi.gmo
+bedf2b91236742150e4a4b618ed9d2f4 gprof/po/fi.po
+42e353d68b836d3e53533f27ca76e83b gprof/po/fr.gmo
+c5e27689bcbf9e35ab33c5c495dbd242 gprof/po/fr.po
+82d1a6e0345a6dc65b323f04ea1f1375 gprof/po/ga.gmo
+c46ba65e8300569e05946980c1c7c9a2 gprof/po/ga.po
+242b1947c33a01da9b769561d24bb37d gprof/po/gprof.pot
+c45783507056bc5710c73362dbe5fb8f gprof/po/id.gmo
+24c804330a015a44c58c8d307a2a3947 gprof/po/id.po
+b6b3fdee1867107468c837cd28e9f2cc gprof/po/Make-in
+7dfd99c4a1fcd67218ddf18e17d82cbf gprof/po/ms.gmo
+9b3ec05fd4e9a4a07b6c64a7bcf9266c gprof/po/ms.po
+8fbf0eb42cbc660fa4f531e95ea0827f gprof/po/nl.gmo
+07e0b8bdd5cf9ccfafc671d8a18e9860 gprof/po/nl.po
+954b09a7062a564dc338de22ef52c6e2 gprof/po/POTFILES.in
+e3fddb2aecf0942f7a13aa5348ddd11a gprof/po/pt_BR.gmo
+161f4f55fce356f7094d855fc8e5b792 gprof/po/pt_BR.po
+4f7dcbcf961a162151794fbd0be3da7d gprof/po/ro.gmo
+84b22161acbbfc32b35dcf3c9a4d7efa gprof/po/ro.po
+4ccf806f6741dd20dbd51ad675cf4877 gprof/po/ru.gmo
+6577e9d3a420b1c2a584846bca2771a5 gprof/po/ru.po
+6caef4d7466f584c8a1833f08dda3a5d gprof/po/rw.gmo
+d324bc814fd81a744f853d48ca2f8807 gprof/po/rw.po
+6f3be1926b6465af05884a7bbef70084 gprof/po/sv.gmo
+660a4c733d22fd06cafe2e5f2c75874a gprof/po/sv.po
+e8a064faa7431c3994490313f73d4823 gprof/po/tr.gmo
+ecb9cfdafed941c2fecc6273f53ea575 gprof/po/tr.po
+6672c85403a880ff77896d264d4e1dd6 gprof/po/vi.gmo
+604e0ce442e10d12a8e1b6c5c3318cfd gprof/po/vi.po
+43648972d2edef291b8576a493fba059 gprof/README
+b37c1ae4e02c17078cb33f195df6c840 gprof/search_list.c
+45b40bf6f6d8e8ee594f0fbbacdb5626 gprof/search_list.h
+82eeae5aca49920314ef3f149e5ea5a7 gprof/source.c
+f5bcd857626c6d9c14653f57431c36b7 gprof/source.h
+54d3572d0937665e0916878d1dc5130f gprof/sparc.c
+1ded054093de910d9786c62bc4fe8cc6 gprof/stamp-h.in
+49efc7499c1ec4be045bc78c1948f7f0 gprof/sym_ids.c
+6ee9f7aad26dd9bd38036a6c7988f9c1 gprof/sym_ids.h
+ebaa562f8fe94865131c9b04734f0c91 gprof/symtab.c
+8978a1f6bb28ebf3d289f6a0b4294e43 gprof/symtab.h
+737ea860b5dfbf959e6788867f07bb33 gprof/tahoe.c
+84c06350a03466660f0f691ed1220657 gprof/TEST
+6ad1234ccac48218eab0cd8e116d7a63 gprof/TODO
+d2e2755377f12d1da4af0a2232cdea8f gprof/utils.c
+69a2b7efd7466aeadfda109d360f088c gprof/utils.h
+f6a3f0884b4107faf0b7000f6236e4db gprof/vax.c
+34a574860b19567290ef5380ad1a2add include/alloca-conf.h
+9032b8a915f567d2b568e53ac7ac5b7a include/ansidecl.h
+9bf143ae20d22d602af1d3639222e405 include/aout/adobe.h
+95a11765956c61fab8c3a8df4512c2cd include/aout/aout64.h
+2dc6a66df1da224f7494f46a56dbf0dd include/aout/ar.h
+d6a0eb4eb539859174c017274cf514a3 include/aout/ChangeLog
+0c11e5e02f70aedc75c45feb5691d993 include/aout/dynix3.h
+5843207325783c921dcad8f11c9fa94f include/aout/encap.h
+5535a653d8c4500b71c03d39cfe0ff18 include/aout/host.h
+ccbe8dbbe26ecc468e56817063dca616 include/aout/hp.h
+017739730907b82915851f547d340b24 include/aout/hp300hpux.h
+d82993bf02befd5682dcd44b076ad991 include/aout/hppa.h
+843da52f6f139f2b0136b5d9e0648ca5 include/aout/ranlib.h
+4a3bdd2dd23d30f487baf5432c8d1b20 include/aout/reloc.h
+f82e6a620da3f1ed5a372941cb8aaa60 include/aout/stab.def
+300c0f2ae0122d204d21af15364632c6 include/aout/stab_gnu.h
+60533ae00228889f83a45c3d05e3e14f include/aout/sun4.h
+1db71a14c0f6670060e4d92570413cbd include/bfdlink.h
+8899f3b1094aed581ee5ce21fb77eeb5 include/binary-io.h
+f3c1e3130022d959443585d2333df0e8 include/bout.h
+290ba69831c663db0eba93c8df043251 include/cgen/basic-modes.h
+1fc7474f7dcecfd367aca58685f80784 include/cgen/basic-ops.h
+a952fcdbcbee3972d46d86c07c7d2c24 include/cgen/bitset.h
+03c05a0d9d58b7b3ba805b3565ae6667 include/cgen/ChangeLog
+3945456b78c6641d130fd7cc156b13c9 include/ChangeLog
+4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103
+b912255f6e27ae91ad42e1d7ac095574 include/coff/alpha.h
+76473e99ea362a19e104ac2974ddf083 include/coff/apollo.h
+e4635227d1ae2326c3a255390699d71a include/coff/arm.h
+3c016550ca6af194ea1339c2e6ba372e include/coff/aux-coff.h
+ef82b5f6eb836c079d0ec9f2423d6878 include/coff/ChangeLog
+3bad510fca185cf87d7b28b5e6bfe35a include/coff/ChangeLog-9103
+21aafdfa874270a0c1cd5fe8814e5636 include/coff/ecoff.h
+a7846784c562274dd60548b6f6982a3a include/coff/external.h
+16c0cbff134e50e9d1a22b00bd14ecba include/coff/go32exe.h
+ee904ce85485ac8f14171530b1a8eda2 include/coff/h8300.h
+68864eac4f79619d079902f9d024f771 include/coff/h8500.h
+48a80341899d6027eff2eee34ed64bf4 include/coff/i386.h
+4076f5d389f96789d30dafcf7bba4259 include/coff/i860.h
+865b4970180497b50c10cf0d42d1971d include/coff/i960.h
+b4230ed90450294aa5dfe15948e8e0a8 include/coff/ia64.h
+dd821a767d324f8a5f78fa1db1267387 include/coff/internal.h
+390c06c0c15fbd71ea17660f5b725895 include/coff/m68k.h
+2e9bd273421296554e8e7bdaf30783d0 include/coff/m88k.h
+bd63cdac412c78bd01e66d080f8db24d include/coff/mcore.h
+c7f00e9cf8b40362a1d6d53ac5f72b3f include/coff/mips.h
+e39fcff9b9b037210d4179939c2e5440 include/coff/mipspe.h
+e04cd0508f438882b386e0d4a3ba03ac include/coff/or32.h
+1df66128b6ccf64c7cee7b686fb30bef include/coff/pe.h
+a455fbd246f05ebb0bf66f690adb5a25 include/coff/powerpc.h
+61b3f01f01ee967546a45fc90decbf92 include/coff/rs6000.h
+88ecd5e08c4c3f1a4bf9c85dcf9e6b5b include/coff/rs6k64.h
+b2fe38acbabcd74e21ebb084348c6a40 include/coff/sh.h
+47e28de596b5c484de7fd948f55b1d0b include/coff/sparc.h
+49952fda1e759e5aa659f8f78d7e0ba0 include/coff/sym.h
+9548a06f2a9fb6be7f272df74ead65b7 include/coff/symconst.h
+5599c91440707355b854aded6fa13295 include/coff/ti.h
+6cc38eec1b5b24b287ad375e9ae20d24 include/coff/tic30.h
+f96b617a9b423ceffcb9ec89d921eac2 include/coff/tic4x.h
+cef5a0d8b9fa08040372dcbeb9a44b20 include/coff/tic54x.h
+d702c6ecd4ab88caaeefab21c1d47fdf include/coff/tic80.h
+ac0cc9e33ae81d7800e1edb4a68be73f include/coff/w65.h
+aaf4db02e2d234613e8c89ee80bff7b6 include/coff/we32k.h
+c9ca24217769549d3b1a88ae2d219412 include/coff/x86_64.h
+adb495746480cf5e4bec3fe6c3d3bceb include/coff/xcoff.h
+2abcef5d0d6f17bc50116ce28c2a9c79 include/coff/z80.h
+598577f829ade2923058b3aa70fbac61 include/coff/z8k.h
+59530bdf33659b29e73d4adb9f9f6552 include/COPYING
+d32239bcb673463ab874e80d47fae504 include/COPYING3
+552d5fee651e1276d17c0ad69e6e2364 include/demangle.h
+00b2d16b5f1a99fc74893b0eaae554b0 include/dis-asm.h
+5550f59655329d720b345cf218922666 include/dwarf2.h
+7e968442c6c0231dfe2def312758e765 include/dyn-string.h
+a0be754e05a23a8ec6b90db035b264fa include/elf/alpha.h
+07b373cba191d679f95f44fb56ee2f62 include/elf/arc.h
+f0fec15cd5722ca40e791ceb6fff0864 include/elf/arm.h
+cd6e7c61fd149a7c60a81e3f3172ab6c include/elf/avr.h
+6cdc5aea929775d124edd759932f0f21 include/elf/bfin.h
+fb94fb544380d87e639028d2cb08d8a2 include/elf/ChangeLog
+98f9c5b892b53edff47e277ff7d497f8 include/elf/ChangeLog-9103
+c7a329af90a38c1db550ad7c283cd51d include/elf/common.h
+833f67e93dfac42af486802c610b6e50 include/elf/cr16.h
+d557cb1da86b222f1d446100b403e863 include/elf/cr16c.h
+4a1fffce3fb4620d590f27cc8f28fe6e include/elf/cris.h
+2f58e940dabc8b46822bcbcd5d53a341 include/elf/crx.h
+155a903657d20855f461c6f75a3739c3 include/elf/d10v.h
+9be4d2fdbc9d1360c58311cdcbb3baa2 include/elf/d30v.h
+019dee3ec6de49f6d0ced447a205a765 include/elf/dlx.h
+3c1229f9c0cf59c62e1008761089fa45 include/elf/dwarf.h
+e13648b26b8f4455ba86c4762dcbd5bd include/elf/external.h
+ddcfe806124573919c45e574654f1aa3 include/elf/fr30.h
+f88e15682bbe1e7510da3cd862bca8f7 include/elf/frv.h
+a6628d3c5a0e2814931c9dbedc3817c6 include/elf/h8.h
+ab421f84fd2c6ba63f16f7b4f64636d3 include/elf/hppa.h
+9b18946aff312ca641ac8e1fc613a389 include/elf/i370.h
+46664d765c43e353af19ca90fe69034b include/elf/i386.h
+1aff1942cbf7aad0cc528362d5462b53 include/elf/i860.h
+bd1fb91bd2d5525fc0387aa51f12061f include/elf/i960.h
+a6df09804468c631260d4aae50f383aa include/elf/ia64.h
+c77ae174f27c7490e252c18e2c04ef1f include/elf/internal.h
+6eb429b4b795c777073550debb618c03 include/elf/ip2k.h
+2232e60b45500e60610102768597b74b include/elf/iq2000.h
+c419f9feca3ab0795a69b694858b8508 include/elf/lm32.h
+adc2d9020e08eaab707704eec6c20168 include/elf/m32c.h
+9cf7dfeb398922addf1273a9ed9a1cb8 include/elf/m32r.h
+b79cab44748c89662f9ba4c8eeb5e016 include/elf/m68hc11.h
+405a16584c84e60c8b230c7d1f449fa4 include/elf/m68k.h
+acd354050b83b2aecf2c78e0c2fc3b12 include/elf/mcore.h
+d81e7a0dca173a1ba09c1999fba38b56 include/elf/mep.h
+f330b5f3671b02e554c928157c1edd6b include/elf/microblaze.h
+45dd9dc4045aa4cd9019837bc8f163d9 include/elf/mips.h
+b841c8ba42956d6f7e17537ce63236c8 include/elf/mmix.h
+7ed67b249c64a72d05d9b4d87554dc18 include/elf/mn10200.h
+ccc949431c77de0330ee3c20548b7e67 include/elf/mn10300.h
+71e4a33766312419df99b0e62c39e445 include/elf/moxie.h
+eb3d9aab50e9c9fb6e18ad4812db0118 include/elf/msp430.h
+bbbd9d7f4e8f79f4d93e007aa07bf778 include/elf/mt.h
+b63470ef405cd3627e8a4fbff6bfd5e9 include/elf/openrisc.h
+8eabdfbd28ae6198beccb31177efe06e include/elf/or32.h
+8adb19e5cc46d08bd2e4956e35270751 include/elf/pj.h
+7c23650992c8b40893751f297da52275 include/elf/ppc.h
+831ad133be87ebb0c334458ac71e9b28 include/elf/ppc64.h
+b465c7a7c9368125ccd6102fafe986c5 include/elf/reloc-macros.h
+ee51909dc0566fac5333286a96f7c57d include/elf/rx.h
+ed1da1299b5bfacd5d3fedda42866edd include/elf/s390.h
+31572c17886e82b32afee52ddac4b8c7 include/elf/score.h
+fdf0c78b30e3def4265b84749ac7636b include/elf/sh.h
+4d28901c9577fde21e67f7ce7c60e0d4 include/elf/sparc.h
+14a24081c6a435663296024c32f2aaea include/elf/spu.h
+da1403a10c2f7da13868f1995ed765f8 include/elf/tic6x-attrs.h
+5d85ecbb50678de258bdfedad761475e include/elf/tic6x.h
+ce8fb71e4fd9470fdc0b3c6ca2a6d620 include/elf/tilegx.h
+d134e5d222ab02346e1bdc467076c9c5 include/elf/tilepro.h
+668ad953ff79fab28ea63be3c5e77db9 include/elf/v850.h
+cad5c91a81e838b439e530d350909b47 include/elf/vax.h
+08fba636fe2637ddc5176ab120cce6f0 include/elf/vxworks.h
+d12111ea734fb1577739f855f8ca6fec include/elf/x86-64.h
+4bc7ecb76afcc22d26fa3b926b6daada include/elf/xc16x.h
+08c0eb5204c37ddb199cbe638ff33c53 include/elf/xstormy16.h
+05ae7083595b682022f2dc9eecff9877 include/elf/xtensa.h
+6cd2afc8e147c2eed4404d0845dfa47a include/fibheap.h
+bf41284ba32805344a0d778b39b0220c include/filenames.h
+5029c34a63aebe10502a4059ffd7e427 include/floatformat.h
+7d6baaede380aa3344526a4bbf8a294f include/fnmatch.h
+b2cd17a9267bc2e92df461d3170cb15c include/fopen-bin.h
+87444b5c85b3c2bc734f8b86157b15db include/fopen-same.h
+90ae66560d6f5a60f2be1493783f4256 include/fopen-vms.h
+76e89e58bf3bcb64a9a124ca1f6f79c9 include/gdb/callback.h
+b06a09b21304623717f5d965810d8d74 include/gdb/ChangeLog
+88890aba9ba9a379347fc0f13ad20e87 include/gdb/fileio.h
+762106ad7714870a3ddaf6dd0dab581d include/gdb/remote-sim.h
+1a0caaf47b41137becfee497016350db include/gdb/signals.def
+7ff71ed6a6d28fa5e33ed9fb65fea692 include/gdb/signals.h
+a66d1966247983edead93b50886aa02f include/gdb/sim-arm.h
+3dbba30001272224cfba8454d542deb6 include/gdb/sim-bfin.h
+2648dd616f0b5fa37b24d72c54986c6c include/gdb/sim-cr16.h
+6568bb778a0a88e4d6cff2360d383eca include/gdb/sim-d10v.h
+0a293f5480904f2f5a50fc03b8bd440e include/gdb/sim-frv.h
+e2c61423df92fac36a88dbdcb259bec3 include/gdb/sim-h8300.h
+657d71193f5feb019a2d4a45e60581da include/gdb/sim-lm32.h
+def9cb2b62622a79033963dad3747b0c include/gdb/sim-m32c.h
+ee09f0399e70412f1ea7e35060c572e4 include/gdb/sim-ppc.h
+b5f795033999cf7d38f696d21da22c63 include/gdb/sim-rx.h
+3e4ad006c2a0987f4bb3aa22bc71ff8b include/gdb/sim-sh.h
+c6c79c7650e939987e61782932471d6f include/gdbm.h
+2df953364d736c4cc07d3f3b0ff63714 include/getopt.h
+b14b5907a8d21fe886487feead7161c8 include/hashtab.h
+27e2b82efdf39b6ec9889dcc03468d28 include/hp-symtab.h
+97a8767b7f95bd5bb7207d0215541d10 include/ieee.h
+05580593c4144ecc727aec0ba59701b0 include/libiberty.h
+741cac90249849bb61230ecd5fb777de include/lto-symtab.h
+3835b04e73ad824ae9a82745d6a9a310 include/mach-o/ChangeLog
+e47902a1febdb36ba352b012fac028b4 include/mach-o/external.h
+bc5266173f3a7c58944d74ccd77ab9c1 include/mach-o/loader.h
+a3be11cb068f8f33831c6f1233d92056 include/mach-o/reloc.h
+246ec9592b8643e0436200783361dda0 include/mach-o/x86-64.h
+d618facc3e8ce8bf3d02ba452e1be6ab include/MAINTAINERS
+e994d64a5f8fff3c81791b6d8a1d09b7 include/md5.h
+8987130f1c1fc6547fc26cc7dbafe0aa include/nlm/alpha-ext.h
+b3429a1bc8a629a099df6e98ab939602 include/nlm/ChangeLog
+daee4cce32528154a2b851cf0d306c8f include/nlm/common.h
+c5c9d05c1d16379fb9f96c8ec954c5c9 include/nlm/external.h
+978d7523b06b3abf40b17dfc4f5ce74e include/nlm/i386-ext.h
+09f97c76b2c744131a200bdc7fa33c35 include/nlm/internal.h
+ba3e2410c85ea661024a7d27360afb80 include/nlm/ppc-ext.h
+555d624236f77f04e2063d455fdd3c97 include/nlm/sparc32-ext.h
+9086b04095940294729fa4cb1525a519 include/oasys.h
+44b3dbe9efa457af0cf4f032193dd1f5 include/objalloc.h
+55eaec63943895d6e0b02bfdf96108cf include/obstack.h
+deaf0df0e2d6c5a7bf0ee9caba4305b1 include/opcode/alpha.h
+cee84b6ac4bf5ac5b70f37c43a47f8ec include/opcode/arc.h
+7394461a9415dc18f047497f1cf3ea2b include/opcode/arm.h
+a0c8eec19b02cdfe7360b3a4a8677ea2 include/opcode/avr.h
+3f33fd3299b17a72ced502e07febd074 include/opcode/bfin.h
+15a2fb48bf2c3ad804768e1e0d592960 include/opcode/cgen.h
+8fede7d5fa6ded6ce0c1b72fe8204f63 include/opcode/ChangeLog
+422ec9ceff6284c1c213760d8d847ace include/opcode/ChangeLog-9103
+fa4047908e1aff4811fe77680065510e include/opcode/convex.h
+a02c23db91d70feb3bbcfd667aa8dc73 include/opcode/cr16.h
+48bf08b1c7e518e2051141f5e241c998 include/opcode/cris.h
+e1e2463dfebecacab2cd54043b6ad31d include/opcode/crx.h
+7a4987744ef7a7f4078c5a8c576336b7 include/opcode/d10v.h
+2aab9f5c7ac5de630a5ab61dffee686b include/opcode/d30v.h
+f84b076cad9f87a270aa56cbea14f9ba include/opcode/dlx.h
+7f63cf5dfc5ef1fc339d6c7a6fee0056 include/opcode/h8300.h
+6b85b43c12d0761473e2d612dcd3d695 include/opcode/hppa.h
+54cbff9b5d02dc47b71ed655ef7737ff include/opcode/i370.h
+0427f68f546cb52b130235c1f6102f09 include/opcode/i386.h
+df8f12dfd8d0b1451ed5c2046312ddf6 include/opcode/i860.h
+a56f5898179c9fc902c6c327c783bb53 include/opcode/i960.h
+482b5385aadd9b8108be5ddf3b830368 include/opcode/ia64.h
+82ceedf44931bbd1f53e43446c16d98c include/opcode/m68hc11.h
+de8665a54a36f8c24293459b0600a29b include/opcode/m68k.h
+a7767c170cf4c03cfe45af922a9f4712 include/opcode/m88k.h
+a4fa648b79bd0c6d04e4ad66f450c3e8 include/opcode/mips.h
+5dcba87aeb69d978d0a18f90273f64b7 include/opcode/mmix.h
+f05383f2385be4bb45c21332d96ba6fd include/opcode/mn10200.h
+ea6d3f479e270d1b495da19cf71531a2 include/opcode/mn10300.h
+3cddcdeee0062df87a49ac336f06564e include/opcode/moxie.h
+1ee43c765dde8f3c0b837e7539a4a8a2 include/opcode/msp430.h
+420f975d9f61718b373e729f0828ead2 include/opcode/np1.h
+f098e4fee2a748c41d6d98adbf2400eb include/opcode/ns32k.h
+a20e9cd3cfdfd503ebc3832e99ce2d3d include/opcode/or32.h
+24f31cdc90efabd60c1b495ee36b4645 include/opcode/pdp11.h
+59f34e20ddfb8380dd5e14669903eac4 include/opcode/pj.h
+904930a6da216d930ed050e8fda269b4 include/opcode/pn.h
+ce376e5c05e5f11002c2b2aff453f585 include/opcode/ppc.h
+7bfc43cfb0a7db8606357492e077735c include/opcode/pyr.h
+d13912548d0ed599b86d03326e8bc298 include/opcode/rx.h
+3029b0bba5889b9f818db8e3e1d7cbdc include/opcode/s390.h
+df0c40d81329409d82344b6d266a8de9 include/opcode/score-datadep.h
+608ebdcc4ac46872571bfbe2d970d329 include/opcode/score-inst.h
+568c45ae2814c0396720e01f4dd2573a include/opcode/sparc.h
+4723833e3e62f9e982b99c58abb15b5d include/opcode/spu-insns.h
+c14771870a5df1b422affd75b5d38086 include/opcode/spu.h
+c69e19287023c929ac20ee5311acfadc include/opcode/tahoe.h
+029618d1a95331f166da6eb773a843c6 include/opcode/tic30.h
+8a9b5e28c9ab7622ebf89fc848ad12d4 include/opcode/tic4x.h
+d7e7baabb2b1b56ff3d4d69f65d10b99 include/opcode/tic54x.h
+a7e14cb11a0a5ac2e7c8d8c83c3202cb include/opcode/tic6x-control-registers.h
+c5a881e7ef0b1a02009742c2020a9e60 include/opcode/tic6x-insn-formats.h
+26df5941f5530c412ae5e078fa2e11c1 include/opcode/tic6x-opcode-table.h
+7185a3931c3f8698b9174b081caa875f include/opcode/tic6x.h
+908392f63074afd6f59631782b74b286 include/opcode/tic80.h
+3bb1feae07579ad29b706d73b1f9dfe7 include/opcode/tilegx.h
+6d3b86739c74f1047e9589ae4b52d9a5 include/opcode/tilepro.h
+1735b8cb5147cc087b956bf9f0025f84 include/opcode/v850.h
+b611a308a75056c2a8186199b92d8751 include/opcode/vax.h
+10cbf87ea52bafe84a696ec172e072d5 include/os9k.h
+b212dcdaf1121bd8a14b03ebb2ce5ce1 include/partition.h
+f09eca32351413c6ede8d270c2944078 include/plugin-api.h
+31582c91154fd42d85121c9b7dfa4404 include/progress.h
+f407187879a6cc40877c4b38ee717349 include/safe-ctype.h
+34b05c11cce7bd2bcc461549eb34bd09 include/sha1.h
+c2d8ea6a0bcacf3a3d5128a916291424 include/simple-object.h
+629ae8ac3ef91fc03af64dd1e2fbd58a include/som/aout.h
+c43947b0b5de54a75109c4cee325b363 include/som/ChangeLog
+085e076342ef6bf2062ba033f466ceae include/som/clock.h
+652226dcecf615295764cf795a829111 include/som/internal.h
+b35975811a6a1bad6e65ffcd2f5d122e include/som/lst.h
+0cf7926687d5ac13f2db7e083d428f38 include/som/reloc.h
+ffc879400e93c3be7e8727262ff65700 include/sort.h
+a137d3d4edba8fab397dddb9f3d5ccdb include/splay-tree.h
+4b6357d1d36b0981d1f437ab787cfa51 include/symcat.h
+3068b9fda8210770794c36af6e3b7b5b include/vms/ChangeLog
+a99f59546afadbe9e0cbb4ab49cb870a include/vms/dcx.h
+7055098b5e32e0622dc5b1c498523310 include/vms/dmt.h
+cb5b98595f89e309e206e03ebe3fca2a include/vms/dsc.h
+7d8b8feabfab97743446f9c3e9c5060c include/vms/dst.h
+c9fb0b5a672ac34a6c7e4f967c5bbaad include/vms/eeom.h
+e4f3e837078643449d52c0826d48f3f3 include/vms/egps.h
+13b57f463b5faf0b3f7c55b948c525b5 include/vms/egsd.h
+d77a65a171afa2f593aafcbfab318d42 include/vms/egst.h
+b011050578d8e742464c9247bf280a7b include/vms/egsy.h
+8fb6638fa6841c62014ceb7c27c9d4e7 include/vms/eiaf.h
+6e71d8901c5602633401887b010cdcfa include/vms/eicp.h
+2d802b0d38c9165e355c45147340311c include/vms/eidc.h
+46f2e728a1afb77bbec7f47cb668f750 include/vms/eiha.h
+16f9ceefbe1ab3c514890bfe75c572db include/vms/eihd.h
+7cc0a6acf771711b080d46228d2e8c3d include/vms/eihi.h
+14cff957d4170ea49ad7343a0ab1d629 include/vms/eihs.h
+925fb21d25b357ff5c4f716c9b42520e include/vms/eihvn.h
+d0ab99fa0a52f72bdcfc0dd8b833d765 include/vms/eisd.h
+a2b404dab5a3727c454c6757ce9336d9 include/vms/emh.h
+692c1da832e19b2524efeed122cb45d0 include/vms/eobjrec.h
+8582b500db6cab6d094dcc8527ea0b54 include/vms/esdf.h
+9f00644503ffd148bf547d27ff76eb3c include/vms/esdfm.h
+6686e0302854bbfa6bad267730bd2d4a include/vms/esdfv.h
+e1d4167d1da2a83946c0ed659ed17b7b include/vms/esgps.h
+886d6690946661bd6f445390cceb1dff include/vms/esrf.h
+eb03a3ab596017df4e6a454f550d2b0d include/vms/etir.h
+53f453335384805ad41365ad4cced40d include/vms/internal.h
+fd11cc047dbcc31cf234ee7f8a267896 include/vms/lbr.h
+b7f74b9489772248d46d28e6406d77b0 include/vms/prt.h
+96729d6fd64637a732ffd525e5a3a514 include/vms/shl.h
+53bdfdb5cd3c0c7831611602041cda52 include/xregex.h
+0294cecbb1f66d640ccba3a5d862d05b include/xregex2.h
+f648a66ed08e079e26a24c4346a3ba03 include/xtensa-config.h
+e3093b56a6dcb6d5b1407a44b0cbd002 include/xtensa-isa-internal.h
+919313164b5496f9ba6d24a99fc06ea8 include/xtensa-isa.h
+0afce91a3daa1fdc32ee36370c1129dd install-sh
+29ff905e8545642c89a94848f0bb8fed intl/aclocal.m4
+d4abe82ea322701d2385778a2fcd0804 intl/bindtextdom.c
+65b9dbdad96dc624307590d3c44cb870 intl/ChangeLog
+56f6438cd2c28d67b1bfa7e076f63acd intl/config.h.in
+8a751062d7db9b6e8163667e5626fcb5 intl/config.intl.in
+993b4622136b4ffceda016da629a45fc intl/configure
+13576a23b957f53b84954feaf7908d49 intl/configure.ac
+ff5c358b1507e45a2106b23b7e6c70a3 intl/dcgettext.c
+81b58accbd88cd8159471d322723c42d intl/dcigettext.c
+0cfc94e602bc20d958f014c77ebf357c intl/dcngettext.c
+c8501675ab40fcf8fe39364ab9de0e42 intl/dgettext.c
+45bd4be597b118d4bbbff6c9c6958e87 intl/dngettext.c
+6e671cf01cbb93dedaf7b3688062d7b8 intl/eval-plural.h
+1e4b5d6e86db4708199e0b7b61d06232 intl/explodename.c
+6f008e715086ccfb7e8e44c007fc7bc9 intl/finddomain.c
+24c6e42d8020a8759b3c8b13e0c37493 intl/gettext.c
+27f0efcc3ff8493519140cb36aeead2a intl/gettextP.h
+c6620ffc92d5853137d3ac11300de38a intl/gmo.h
+049ba34a0c8d1fe665e8119e579dce4c intl/hash-string.h
+7b5af5c4e777690b9851b3e85603bcc8 intl/intl-compat.c
+9f41e951f166a5aedcc25268c161d1da intl/l10nflist.c
+2cc2d036d8f77ec0243b3eaf942398ec intl/libgnuintl.h
+0ad4083e3b5df1f764bb605dcf657b88 intl/loadinfo.h
+d8e3733cf513bbf862ca090cf6403edf intl/loadmsgcat.c
+0ff7bc241f5ea36688cf8bb6ac801b5d intl/localcharset.c
+4d8b75dcdafb699870e4133fba5b58f0 intl/localcharset.h
+bb9312cab68737125445f5932ae7140a intl/locale.alias
+bdad874b80d29c70bb040f2ddeb67c5d intl/localealias.c
+8179cdac0affac17e1f1ed2087b4595a intl/localename.c
+78672e3784df9ceba75d1d004d6a1f78 intl/log.c
+cad1d6fab2274517783de7433c0faa74 intl/Makefile.in
+040acf17db43770b3eeab4337e031fc0 intl/ngettext.c
+506ef276b14575f52af7a6982d58e666 intl/osdep.c
+12ff40e8c89d99dc7b704bac9434124a intl/plural-exp.c
+4109118983200f4aa853bf0cb466c586 intl/plural-exp.h
+0f3d1bb596252bdacce100082392dedf intl/plural.c
+d50a8c6c5b41089930accbdce767d3c0 intl/plural.y
+6ec998bb4716c744bf8185e607f69301 intl/README
+b4758a0194e3e41362b939911472ce62 intl/relocatable.c
+bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h
+43f287d082528203fc85c1d2d81bf30d intl/textdomain.c
+76ca170a525d5b84d90f0478fe788931 intl/VERSION
+da73aad6396daa6072d443c12133ee0f ld/.gitignore
+92d9cf05210424df1cabbde6fe85d4e9 ld/aclocal.m4
+f36fb12a33c0e28469853b14555bfe68 ld/ChangeLog
+7ca725ba584a0477922ca681df841a08 ld/ChangeLog-0001
+1844c5088cd03b9246ecf58008c41d76 ld/ChangeLog-0203
+249882f8f7dd773b47dcbbe3f2aa56cc ld/ChangeLog-2004
+83dc7a007b7325a27e6f2d659558e999 ld/ChangeLog-2005
+d908d825fa1d2cd2d060d8ec9c7794d7 ld/ChangeLog-2006
+23f9e36aac04dff384e32f05281bd288 ld/ChangeLog-2007
+0175d1813c9ba7a591df78c204ce35b3 ld/ChangeLog-2008
+6b73307328980a2f623d982db89af0b8 ld/ChangeLog-2009
+bbf55c5a56e9ad5e17e15518aa95de92 ld/ChangeLog-2010
+8958c5b05a66e6b252f6978095132f7c ld/ChangeLog-9197
+b73f002c7cc445237e97e9ed358922e6 ld/ChangeLog-9899
+7b3e65b02c0a165963246bc205b3ee3c ld/config.in
+7f3de5527703e20cf2da845997c4e36a ld/configdoc.texi
+615bf04b4db284d47c5128f82a9e32f9 ld/configure
+448f247b772b9cf7f703d44d2818cd15 ld/configure.host
+95d5c2b300b625d3f338e9c0910e1adc ld/configure.in
+4fc0e6539a5f9507c4b552c086690c52 ld/configure.tgt
+b116956a62582d5a8ef1e1737d173eda ld/deffile.h
+6a22d6c744c42d279da5b22a36f82cf7 ld/deffilep.c
+b9ca5771abd362fd290e3cebfd920693 ld/deffilep.h
+c055ff7b56d40b00a335738f9b7f0cef ld/deffilep.y
+8d416c7b17011478442ba22d85f20c89 ld/dep-in.sed
+5161fad0ffdf3b72b12a39147e1300ee ld/elf-hints-local.h
+2c75cfcc19fb0ff973bddcbe5b567803 ld/emulparams/aix5ppc.sh
+afb6d2ea1df283801db141ab81692a24 ld/emulparams/aix5rs6.sh
+169b54f770bbc257d39ea459f48f2b00 ld/emulparams/aixppc.sh
+ebbb1119f11559e515e510c9587c780a ld/emulparams/aixrs6.sh
+29fda341c48f8b90fbf258b6d475867e ld/emulparams/alpha.sh
+afd41d5b0484fb3c045bfd81ce15307a ld/emulparams/alphavms.sh
+33a22a81f481989316591b168206ae74 ld/emulparams/arcelf.sh
+e6e4692ccff9621ebe97fb3896227b05 ld/emulparams/arm_epoc_pe.sh
+dbe3a08e6123cf6d11f5eedae27a31db ld/emulparams/arm_wince_pe.sh
+46cdfce2fec96767f9833e7b95dff674 ld/emulparams/armaoutb.sh
+db71752ff717b79212036e0ab57043eb ld/emulparams/armaoutl.sh
+d7a431dc9e8878378179623ccf9bfb47 ld/emulparams/armcoff.sh
+52a90d4b2874ec239d6f5efc7ac6a5ac ld/emulparams/armelf.sh
+85031385ab0663ce2a9113945a9e1185 ld/emulparams/armelf_fbsd.sh
+54f5793d97990666c0f63ae1e47d9f16 ld/emulparams/armelf_linux.sh
+9a8401cd572759b89d491cd7575fcaf5 ld/emulparams/armelf_linux_eabi.sh
+a83364fa7d65bd11812312c8d92ca64f ld/emulparams/armelf_nbsd.sh
+704ee604923d8f958cd72b8f9349a629 ld/emulparams/armelf_vxworks.sh
+2b5ea6fb0c548fe7f0a3903f843eef0a ld/emulparams/armelfb.sh
+908d061ee41ccefcae22c23644d0bcf1 ld/emulparams/armelfb_linux.sh
+de800cd350aed911b0515f2d8c6676ba ld/emulparams/armelfb_linux_eabi.sh
+31ef6d790e43f46c99d521132f670b0e ld/emulparams/armelfb_nbsd.sh
+a291ae3e8e735c25c2d4e86c55844730 ld/emulparams/armnbsd.sh
+e9e8e61e01fdc6a50835c277658eb02e ld/emulparams/armnto.sh
+5988d9ce7e8e4e5f20dc86deb1a8d5c0 ld/emulparams/armpe.sh
+c6ddf82dd7dd437d00502069197dd871 ld/emulparams/armsymbian.sh
+839084c3678686dacecfcfeffe2f479c ld/emulparams/avr1.sh
+c74004fd5fdf15a2acac505446b5c4be ld/emulparams/avr2.sh
+1356869a833a254e4ed4489493417b1b ld/emulparams/avr25.sh
+06305da975da19253161abf7e7ecff06 ld/emulparams/avr3.sh
+9947a5ecd1a931f1f54f424ebb681b39 ld/emulparams/avr31.sh
+6d7abb647d96bfb0659e4e26e80b6dc3 ld/emulparams/avr35.sh
+4e9564b0d40e69defa34a84e1caaae57 ld/emulparams/avr4.sh
+0a4f5fa88510cc67fde1e1ec512f5e9c ld/emulparams/avr5.sh
+4233da9ae9d1af991d81dc610e34a787 ld/emulparams/avr51.sh
+b6c40b35e6a63b17ac7a46ebe7de143a ld/emulparams/avr6.sh
+d0931fa9ab67d0f48df11ffbda9c4854 ld/emulparams/avrxmega1.sh
+27e3af2c4491628ac2b4b4a4ac72d539 ld/emulparams/avrxmega2.sh
+a4fd8920de8b91fdcb3468005224a1b0 ld/emulparams/avrxmega3.sh
+6cedeab34a47c82db7252f5294b4ca17 ld/emulparams/avrxmega4.sh
+101fc9d40672370f2807279d085743ce ld/emulparams/avrxmega5.sh
+d347e9fababef7f46786ac43a6289e64 ld/emulparams/avrxmega6.sh
+754e0415f37a441e2fa6ac510f31b885 ld/emulparams/avrxmega7.sh
+74a02cad5e562cbcc31626c09dbd3108 ld/emulparams/bfin.sh
+14c25a651ee75f6ff6e2c101836342fb ld/emulparams/coff_i860.sh
+7db190f5aef5799d9eb885e714b1ca3a ld/emulparams/coff_sparc.sh
+a28dfb57b8e1c89a1020ad7105f0cae1 ld/emulparams/crisaout.sh
+b647b233dae359c31f0ae40c4884fe52 ld/emulparams/criself.sh
+bacb8de12b3d71d0f165c95eade69a97 ld/emulparams/crislinux.sh
+0a5a4e98354a68189a2fd28cad8a232e ld/emulparams/d10velf.sh
+f03004d323541a267e123681bd285621 ld/emulparams/d30v_e.sh
+0cc51d61ed4bc75ebd7222fd67bbf6da ld/emulparams/d30v_o.sh
+038ce1ccec333e2db731a4ef0773525a ld/emulparams/d30velf.sh
+162d7cba8938432d260e1e9321bf43ce ld/emulparams/delta68.sh
+281ede04930040c8b5cdaaf27fc387c8 ld/emulparams/elf32_dlx.sh
+93e6170e112854a25f6d0a7348325ccd ld/emulparams/elf32_i860.sh
+6ca6c1e45e29690877676e1cfce40f6c ld/emulparams/elf32_i960.sh
+14d93f840884457614e1b01da72425c6 ld/emulparams/elf32_sparc.sh
+41c681403d8bd4b3dc8c258f83d115c8 ld/emulparams/elf32_sparc_sol2.sh
+b4bb140a4f6f1e022fcf40cb7421607a ld/emulparams/elf32_sparc_vxworks.sh
+c0c3b7d8380176026e4095e8d0f0653c ld/emulparams/elf32_spu.sh
+9fc991f39d21a2723758fac65a848fc7 ld/emulparams/elf32_tic6x_be.sh
+d0195b47edce309c3c06dead70f09855 ld/emulparams/elf32_tic6x_elf_be.sh
+5c2936c518f586b301b336c4e8fc5e96 ld/emulparams/elf32_tic6x_elf_le.sh
+5a274fc1e18a69b0670c8f922ce96333 ld/emulparams/elf32_tic6x_le.sh
+e134c77e1df463b8a776c2d656739603 ld/emulparams/elf32_tic6x_linux_be.sh
+90f3aa62a249159ed5b2d73957fc7209 ld/emulparams/elf32_tic6x_linux_le.sh
+05aa4a49e9631ac91399e07043c57747 ld/emulparams/elf32_x86_64.sh
+19fcb6f5bc2579ed99ee62162f7be002 ld/emulparams/elf32am33lin.sh
+a19f32e62df659289a168c3b8bf91a26 ld/emulparams/elf32b4300.sh
+f6767450cf9114d5f988594a59a0f315 ld/emulparams/elf32bfinfd.sh
+82c6911967f15d544655a3b397e83ed2 ld/emulparams/elf32bmip.sh
+9f509fd2413f065cdc1ddd40c4bcf870 ld/emulparams/elf32bmipn32-defs.sh
+1d35ec6cf83a2f822b3b324cf61e7544 ld/emulparams/elf32bmipn32.sh
+3f6bfa22dd4022cbc1b663f666405094 ld/emulparams/elf32bsmip.sh
+7bf0051b2c15332bed387e0a7ede2ac4 ld/emulparams/elf32btsmip.sh
+30d00579fda108701694e15ad202df85 ld/emulparams/elf32btsmip_fbsd.sh
+9d25d42b83902e4b3c270b0076e00ab9 ld/emulparams/elf32btsmipn32.sh
+085872893d41d25ac76a47801e321737 ld/emulparams/elf32btsmipn32_fbsd.sh
+8e67420dbe22309e4b8920b42bc25432 ld/emulparams/elf32cr16.sh
+ec222a2a5a57e2a67110a4a98903dc52 ld/emulparams/elf32cr16c.sh
+fd0c54397da835fb1e4a9c1389ee368e ld/emulparams/elf32crx.sh
+030179c4b8058c64aac3f9eb16c049a2 ld/emulparams/elf32ebmip.sh
+3194fd357ff2d0fffd4eee6c41623782 ld/emulparams/elf32ebmipvxworks.sh
+add91307fb4132685623c0895d6c9cca ld/emulparams/elf32elmip.sh
+3c7a2a63628dd038dc17fde980df3f42 ld/emulparams/elf32elmipvxworks.sh
+a2b5068c613c7030fe332e96decdd114 ld/emulparams/elf32fr30.sh
+395e9319d9a7240b466fa7c40eaaf29b ld/emulparams/elf32frv.sh
+c2e687126a2d9e6ee13cab2b6126a89c ld/emulparams/elf32frvfd.sh
+2db7ce792a3d945d2cedf73fc3a5a0d8 ld/emulparams/elf32i370.sh
+d7c61952d5f3ffbe6b9b6c3eaa30a52a ld/emulparams/elf32ip2k.sh
+7d512f0f06ad5a37f6752d575a9f3aa1 ld/emulparams/elf32iq10.sh
+a3d9317241b1de1ee98a1ef1db0fd484 ld/emulparams/elf32iq2000.sh
+ecd586db2a0021421401571e654fea1f ld/emulparams/elf32l4300.sh
+4d4025c885ffbed823c0ccb7e9af4ab3 ld/emulparams/elf32lm32.sh
+93bb669752491e62440a2bf79ee28c1f ld/emulparams/elf32lm32fd.sh
+61e10da892c21325ede0f1bee9358ad0 ld/emulparams/elf32lmip.sh
+6be422cbcb87234b6276db46559955e6 ld/emulparams/elf32lppc.sh
+7ef8f635c484537cc3265c9f9a254575 ld/emulparams/elf32lppcnto.sh
+0f1aa1d48d4fd1423bd74e566a9c774d ld/emulparams/elf32lppcsim.sh
+39123a7e34db239ef585e08f2ada9159 ld/emulparams/elf32lsmip.sh
+c85d16c23057685613ac3c770175421e ld/emulparams/elf32ltsmip.sh
+c2640a7d40d90413ddf7120400b7323d ld/emulparams/elf32ltsmip_fbsd.sh
+6524015c1e2e591fa0bb19f87f93151a ld/emulparams/elf32ltsmipn32.sh
+86016fb4e97f6dad75c7d282b3d83157 ld/emulparams/elf32ltsmipn32_fbsd.sh
+e4e39855d3ec1ad061c91ec9bf481016 ld/emulparams/elf32m32c.sh
+b308a0ea260bd6c2df2158f0981520bd ld/emulparams/elf32mb_linux.sh
+bd60bab0227b259fa0ef82986655cbd1 ld/emulparams/elf32mcore.sh
+b8edc45b52edec8507574609822d9245 ld/emulparams/elf32mep.sh
+1ea7a1c2c097d50dc05cefd47d51a630 ld/emulparams/elf32microblaze.sh
+1f512f809ac3a1ed6a7a3d8821047e83 ld/emulparams/elf32mipswindiss.sh
+a02b2f0bb1fe8e2040c70b3ace22f434 ld/emulparams/elf32moxie.sh
+2cd4f7e87711443ac0b3c0895804ef74 ld/emulparams/elf32mt.sh
+6537ae56ab1c8dbd3a13d6e77f4f2835 ld/emulparams/elf32openrisc.sh
+2b65c14e03c9354106a84acac55855a9 ld/emulparams/elf32ppc.sh
+e670625a198b1d6ef4813cc1131ef31b ld/emulparams/elf32ppc_fbsd.sh
+38bf9e30856b996dff2e9f7ef135a0b3 ld/emulparams/elf32ppccommon.sh
+e96923ed2cfd947005b4f2e01656094e ld/emulparams/elf32ppclinux.sh
+afe686ca1924108e64de174304e8ed13 ld/emulparams/elf32ppcnto.sh
+e6dc727c9b2f7c7a71c6076d46912861 ld/emulparams/elf32ppcsim.sh
+ff63cb22df9592464516a4fb36e511a6 ld/emulparams/elf32ppcvxworks.sh
+b2d4bd5d0c711e6b9372053f85303ad7 ld/emulparams/elf32ppcwindiss.sh
+cff0ae9d8fb3bf6ad12b075ce79f7414 ld/emulparams/elf32rx.sh
+7fdee88dfb8da06c4bd21c131f7c759b ld/emulparams/elf32tilegx.sh
+d6be6f81c5f218c06cbe1f428c47e6d1 ld/emulparams/elf32tilepro.sh
+86e5165609b36a444c0e3969b4495d8d ld/emulparams/elf32vax.sh
+485af2face9b02bf0fa49843691af836 ld/emulparams/elf32xc16x.sh
+57c65a0982bea3c70f8796e567990b6e ld/emulparams/elf32xc16xl.sh
+ee26e3e7d51c35186d4177393fe7dbda ld/emulparams/elf32xc16xs.sh
+4c1ee8cfc760d7253ebc5d80dc3650ef ld/emulparams/elf32xstormy16.sh
+e59def63f76fe88b1c463cd095639ef9 ld/emulparams/elf32xtensa.sh
+4bbff852e871cbef260a9b6b36fc424d ld/emulparams/elf64_aix.sh
+88a7fec714dc3c29ff9ab3602fff1873 ld/emulparams/elf64_ia64.sh
+a04b0f94c285057c4328da812b709ef5 ld/emulparams/elf64_ia64_fbsd.sh
+10dc541828463de1538cecccddecfcaa ld/emulparams/elf64_s390.sh
+bcaf1c0bb6008669b5e0b7a03ee83047 ld/emulparams/elf64_sparc.sh
+d2fba26c990c98b231a5d2d73d489965 ld/emulparams/elf64_sparc_fbsd.sh
+19ae478b4af6b7673eb0d5a6526e2db6 ld/emulparams/elf64_sparc_sol2.sh
+451a3b8e55d6665546582cf10855b48a ld/emulparams/elf64alpha.sh
+05b020ea8c063d832c43502bbf25a583 ld/emulparams/elf64alpha_fbsd.sh
+5ba3708f410eee98bd62896166a9f542 ld/emulparams/elf64alpha_nbsd.sh
+1b96840cab57c0e99d5cdaa3d33805c5 ld/emulparams/elf64bmip-defs.sh
+227184294d26af42ab50d948642ebd5c ld/emulparams/elf64bmip.sh
+45c8a91846eee7402bfb681984c0ebd6 ld/emulparams/elf64btsmip.sh
+119a650d6fe2c70509b59a4d88b18abf ld/emulparams/elf64btsmip_fbsd.sh
+03a3e4cc59750603e7edf00024b28531 ld/emulparams/elf64hppa.sh
+d969989e47badd85ab444fefa84656eb ld/emulparams/elf64lppc.sh
+5b2cfd0917902083166727b03fbd07c2 ld/emulparams/elf64ltsmip.sh
+072aac14506526ff6444c9d7eb6efe0f ld/emulparams/elf64ltsmip_fbsd.sh
+5b79366aa223913e714e04f4303594fc ld/emulparams/elf64mmix.sh
+7eede8d71c27b69ae9aa14766b377926 ld/emulparams/elf64ppc.sh
+879ef6b88a4346fa857bff264b2794e4 ld/emulparams/elf64tilegx.sh
+261c3ee23f1baba72638358c8121b622 ld/emulparams/elf_fbsd.sh
+f8a2111f9f189b492c833ead98a79e6d ld/emulparams/elf_i386.sh
+9d2ba4f316494a2bc26e467db70950f4 ld/emulparams/elf_i386_be.sh
+51f54951cbef8732065f16b6e250a0b6 ld/emulparams/elf_i386_chaos.sh
+df1ac3a0c604e72b025d24417ca1444a ld/emulparams/elf_i386_fbsd.sh
+0151824d82deaf4aeffa7b5f78bf1b60 ld/emulparams/elf_i386_ldso.sh
+22bc954c7382ad8ac04ce89b96ddcfc8 ld/emulparams/elf_i386_sol2.sh
+a284d97c3b89ab4c69706f18caa3efec ld/emulparams/elf_i386_vxworks.sh
+6f21c5e81a6a2e1ef8c31ec8230d1435 ld/emulparams/elf_k1om.sh
+70088dbfe7e6ea410bde8360f3b791c4 ld/emulparams/elf_k1om_fbsd.sh
+82eaa27d44e440f931bce0dd5c61b97c ld/emulparams/elf_l1om.sh
+136375a3d9165c866bf7074b12f2e24d ld/emulparams/elf_l1om_fbsd.sh
+9565483cf23ab9768056de0d3e35a9de ld/emulparams/elf_s390.sh
+7e289cfa68c6cfd257f54e9f019fb08f ld/emulparams/elf_x86_64.sh
+da938f85dc50f8f17dee922772db163b ld/emulparams/elf_x86_64_fbsd.sh
+df7d3c451969de5d9633859f4f185db9 ld/emulparams/elf_x86_64_sol2.sh
+f32127527a05a962f2608260b6989d2a ld/emulparams/gld960.sh
+9e9a98ed6d60b81d3c02fcaff209e48e ld/emulparams/gld960coff.sh
+87e6b58221679e6f984210beed2b30ea ld/emulparams/h8300.sh
+9b599accad5c3e7fdefeda498bd7fbb4 ld/emulparams/h8300elf.sh
+38e60b173489d53692974c5b6a04cfb9 ld/emulparams/h8300h.sh
+a6bc102b9076b326ed7f5d455a28ac90 ld/emulparams/h8300helf.sh
+6ddecfbf7937f059d93259f716d61d6d ld/emulparams/h8300hn.sh
+4a7f2b46d388252aabee2d2c52f6dfb8 ld/emulparams/h8300hnelf.sh
+f9d708a8c553ed19183a1f638fe633b4 ld/emulparams/h8300s.sh
+7034b51cf218f8977ba97e1131ac50cb ld/emulparams/h8300self.sh
+12989f4121fea14e6fc290662753febe ld/emulparams/h8300sn.sh
+29871377f4c035e1e74d454a3e62272f ld/emulparams/h8300snelf.sh
+7ff8cec0e8d6c8ff1e1c87372ebdbdb7 ld/emulparams/h8300sx.sh
+511bcbd2d3fe01774624774b25cdadeb ld/emulparams/h8300sxelf.sh
+15655df939874c463eff61983c973c90 ld/emulparams/h8300sxn.sh
+b870624012b66c296b1928232395b5f9 ld/emulparams/h8300sxnelf.sh
+b3b0d0be943fd5517fbc171778f63de0 ld/emulparams/h8500.sh
+6dabd6ffde56b2445c38969243d3575e ld/emulparams/h8500b.sh
+6d71814235108ce0faa35813c1959495 ld/emulparams/h8500c.sh
+e8b9174ddad38feceda59af2dbec0d09 ld/emulparams/h8500m.sh
+f0a112f331b4c6bfbfbb1895cdd63eff ld/emulparams/h8500s.sh
+54b7e862187330b80b6314b2c1c1b05e ld/emulparams/hp300bsd.sh
+4bbb1b67f14d1e124683aecbd19e69cf ld/emulparams/hp3hpux.sh
+3f03d94dd5a21e066de9e24fbd565113 ld/emulparams/hppa64linux.sh
+7af6e1ad74bc71f864b9c04412f1bebc ld/emulparams/hppaelf.sh
+361bce4513491c8a3189d414f3279f67 ld/emulparams/hppalinux.sh
+191811b4e0d736f8cea0156126b8a8cd ld/emulparams/hppanbsd.sh
+077c0ed6da091c491ec9e7046cd626dd ld/emulparams/hppaobsd.sh
+ce79eacf5f726c9c068a8f7265617861 ld/emulparams/i386aout.sh
+5ed1f528a6752f2ed12d48977cc43da1 ld/emulparams/i386beos.sh
+1ae0b0429ea988f07f3030f9b32daefc ld/emulparams/i386bsd.sh
+d05a50688386622b8ad4e4c1f2286662 ld/emulparams/i386coff.sh
+17f4c71862e163f04d7d090d954dbe33 ld/emulparams/i386go32.sh
+1feb75a206e03a8f90f86ae7a8116344 ld/emulparams/i386linux.sh
+677f9fe5ab33ec64ad5700337fa418ef ld/emulparams/i386lynx.sh
+7ccc33d344e06889c1a5ce446dc4f32a ld/emulparams/i386mach.sh
+8ec60ace7f9279b8b584e59bd6583fbd ld/emulparams/i386moss.sh
+2bfeb760ea387887b4d7cdb735a8e8c2 ld/emulparams/i386msdos.sh
+fd44b883579ad95580bf3cae88bd91b4 ld/emulparams/i386nbsd.sh
+db82cac7b140e1aa2bc1383d9bf58477 ld/emulparams/i386nto.sh
+7735ddb4fefb33a6fa7a1799d7aedae7 ld/emulparams/i386nw.sh
+c15181d7923108bc59c1898d2fa2a436 ld/emulparams/i386pe.sh
+8621077c937c52c0d192b76b507ad83a ld/emulparams/i386pe_posix.sh
+a670046af207e1887d4baf88075531f0 ld/emulparams/i386pep.sh
+8c809011235ff8bd5e0a1d9ba085ee46 ld/emulparams/lnk960.sh
+6435fc04027f0caf3844f0d3d6e88fe3 ld/emulparams/m32relf.sh
+beb5ec2ad3d2ca98aef07d55d5c479ef ld/emulparams/m32relf_linux.sh
+4caea040768fd3f34eb29f616a64f6d1 ld/emulparams/m32rlelf.sh
+ef322baa3cadee776415875de38be1a8 ld/emulparams/m32rlelf_linux.sh
+049218c3ff85b972beee9ab88e1b9fd9 ld/emulparams/m68hc11elf.sh
+cabb1e9932de933a5d006b14e50f41c3 ld/emulparams/m68hc11elfb.sh
+99f9a9c7dbc4e5d16cd7c346de7c8daa ld/emulparams/m68hc12elf.sh
+e6b6fc6ccd03411b402f3a6072588bad ld/emulparams/m68hc12elfb.sh
+7f51d23517a73cea7b0c13fea29d9030 ld/emulparams/m68k4knbsd.sh
+3d2234e0fc82b67e234d790ae94dbaac ld/emulparams/m68kaout.sh
+00b17c39c4dcf1058751dc07f30dbea3 ld/emulparams/m68kaux.sh
+f0580d8a518bcc77032874c9cb72809d ld/emulparams/m68kcoff.sh
+e5482539582a4e8b00f28dfca6676587 ld/emulparams/m68kelf.sh
+d5ca0a9aeac878263aa6caf077fa1826 ld/emulparams/m68kelfnbsd.sh
+0f785269424f5deab4437f29fc3fb1c2 ld/emulparams/m68klinux.sh
+1715e52513257034b76793cee27559ec ld/emulparams/m68knbsd.sh
+33685d637a1cce6d622232b066197510 ld/emulparams/m68kpsos.sh
+83963319b0e9d1a26022d42c1ded3dfd ld/emulparams/m88kbcs.sh
+9445dc4bcff8b854185fa5215b74f9b9 ld/emulparams/mcorepe.sh
+6c5efc2d80801d3ab24a03f11d108e39 ld/emulparams/mipsbig.sh
+8589776726fb0a88568b9dbda5660c35 ld/emulparams/mipsbsd.sh
+18c4e0d8ca8ec6e02035b574cb8b9844 ld/emulparams/mipsidt.sh
+c320c6fc627c281bc28fcfc7a9bcad5b ld/emulparams/mipsidtl.sh
+60661603c73c5ec9883d1f65e561e2d6 ld/emulparams/mipslit.sh
+8cb42fe6977ca6c642cb7b96a9b0fda0 ld/emulparams/mipslnews.sh
+9faffafc9a8c3244ba97da25c5082a56 ld/emulparams/mipspe.sh
+4ae7b44c630b4c5f2ab982d81f1df8f6 ld/emulparams/mmo.sh
+145049c7f07b5f03972e986b1d119603 ld/emulparams/mn10200.sh
+6305ae286ec175ee2d4c96f85a1371c9 ld/emulparams/mn10300.sh
+9519af2786e0d04b5608f84239418fac ld/emulparams/msp430all.sh
+49337298ecef7c4e2569237b614c9675 ld/emulparams/news.sh
+91f9caf89990024398fd3c30d545f77c ld/emulparams/ns32knbsd.sh
+7d4c113f2900a29c3d25a4ba5e00d8f0 ld/emulparams/or32.sh
+dfc530c215e98898cf75c555e374a3ab ld/emulparams/or32elf.sh
+520ec8503cf2ff801a48395e338729aa ld/emulparams/pc532macha.sh
+456a880b2bf36d968e2f2af383cc1abf ld/emulparams/pdp11.sh
+aaf0d6c989a8e24b28f8106c195874f1 ld/emulparams/pjelf.sh
+dcb56a623dfddf98dddac81206fabbf1 ld/emulparams/pjlelf.sh
+6f8d170c60825e65e555b527324c82bc ld/emulparams/plt_unwind.sh
+f8fe27e4766e815b076ccedba3821ee6 ld/emulparams/ppclynx.sh
+120c2ee7cc0cea78311c4d9e980e939a ld/emulparams/ppcmacos.sh
+52f9da7df47411bc7ee5dd90a1883114 ld/emulparams/ppcnw.sh
+59c040c18e2b3a9fc6fb06d435d05bdd ld/emulparams/ppcpe.sh
+2e897117043ad88f2c7bcf35a606d76b ld/emulparams/README
+ff7570d6bf2e39ba10e74a394052028b ld/emulparams/riscix.sh
+f0faf13830257f4689cae383838580d7 ld/emulparams/scoreelf.sh
+908fd348c9d3fd9c12647643d88b31c3 ld/emulparams/sh.sh
+55e7361b8eca765040b9c62d173fefa7 ld/emulparams/shelf.sh
+5bcbbb59a566bd8395d41bd8323e3a61 ld/emulparams/shelf32.sh
+291331616850dd83790ab2c24f992c2c ld/emulparams/shelf32_linux.sh
+622331d976e1c07c7d48e5c6ac03c2f1 ld/emulparams/shelf32_nbsd.sh
+32518a86aec278581dbb4174838aef74 ld/emulparams/shelf64.sh
+d31180db1f9253b62c3d9e1c121366cf ld/emulparams/shelf64_nbsd.sh
+145e7853413a3ef62c62a5b58414f422 ld/emulparams/shelf_fd.sh
+4b61937c3bfb4a5470c72eeb0bfd224b ld/emulparams/shelf_linux.sh
+39e939a626d83705198fc70fe5ecad12 ld/emulparams/shelf_nbsd.sh
+1bbc2f89e23821f9cc79898ab5586cb9 ld/emulparams/shelf_nto.sh
+7e5793bdfb27513e159f608cea15c050 ld/emulparams/shelf_uclinux.sh
+bb746254c72382f1234d821ad5580a9f ld/emulparams/shelf_vxworks.sh
+c7ccb5f7fe5f62d92dca7e1a71b02aff ld/emulparams/shl.sh
+a8e5e931e19cca314ba30a312884c2d5 ld/emulparams/shlelf.sh
+147ddbb0207d4b730f3ff45851cc3022 ld/emulparams/shlelf32.sh
+50e34d968b4ce95745e97ca5e24ee2c9 ld/emulparams/shlelf32_linux.sh
+414d3af83e84f7afd6dcc3afa2184fa7 ld/emulparams/shlelf32_nbsd.sh
+90c225b85052cd8cdf4ab8871bda1b20 ld/emulparams/shlelf64.sh
+2169ae2a71b4a6875eaa305168d042d1 ld/emulparams/shlelf64_nbsd.sh
+8cb196945623a9ffdbb37ac046644c09 ld/emulparams/shlelf_fd.sh
+ff9adc94a91c76bb6d8a113595061171 ld/emulparams/shlelf_linux.sh
+744f886f4baf1d4fe15ce1d0595dfc84 ld/emulparams/shlelf_nbsd.sh
+9b599e50c1edc57824ecfa5b37a55839 ld/emulparams/shlelf_nto.sh
+162898060928e895f8ab2a3452cab99c ld/emulparams/shlelf_vxworks.sh
+2b7af20012f444e77e36fe2340b966b2 ld/emulparams/shlsymbian.sh
+0e5bf12ecd3b1de4e0690b57870afb1a ld/emulparams/shpe.sh
+9df098ef8ecb368874c44df7fb248538 ld/emulparams/solaris2.sh
+34bc316904c6401355d6970a04f2574d ld/emulparams/sparcaout.sh
+a42336688d6d1fa719478caa5efc6e2d ld/emulparams/sparclinux.sh
+957bd3e925d255ac965dde1aa7303f40 ld/emulparams/sparcnbsd.sh
+8f86834d923d64e45861594e4dc8c457 ld/emulparams/st2000.sh
+34fa41ca09712e70f3719053d3d82ab2 ld/emulparams/sun3.sh
+b8f001f8578debcd12f5b61634f002ec ld/emulparams/sun4.sh
+5d10f221cc393b1ae1719132de13f3da ld/emulparams/tic30aout.sh
+4fc903e37671053625509f7486c63816 ld/emulparams/tic30coff.sh
+62d8066c77800eafa442197f8f07cade ld/emulparams/tic3xcoff.sh
+7bb0ad11ce41e9dfc28e690468c0770d ld/emulparams/tic3xcoff_onchip.sh
+e2ba12f737f075c7e880925f10dc19ec ld/emulparams/tic4xcoff.sh
+aead097a3385a27cba7210470e150a10 ld/emulparams/tic54xcoff.sh
+91cc82ae46f2254281e38817caa9f141 ld/emulparams/tic80coff.sh
+420ddfcb9cd84cd0898880dd72280f8e ld/emulparams/v850.sh
+829acdbee172341c4342095d82e19511 ld/emulparams/vanilla.sh
+4e93bfd2da37b36233e047a4bf15854e ld/emulparams/vax.sh
+7daece209bea326cdc906d0640ea017e ld/emulparams/vaxnbsd.sh
+ba6f9f82315ce20a64ec93bf3c2bee0d ld/emulparams/vsta.sh
+ff0ee3ea192be9116c08ca656cdc1337 ld/emulparams/vxworks.sh
+7efc4f8c9d1eca2e14084bcd65535b9a ld/emulparams/w65.sh
+88233c4b283975ba080bbb9738aa0a23 ld/emulparams/z80.sh
+cd93ec9e7e74cadfaf8044cca1581111 ld/emulparams/z8001.sh
+8890ef4fad0e25044c8d3200a9e77ee7 ld/emulparams/z8002.sh
+85712545e9dbaf7ed269122bbb77c375 ld/emultempl/aix.em
+a9d1ff6c62567cfe7f30bf671cd68a6b ld/emultempl/alphaelf.em
+605d6b9f4f0bdeb87945a943d27b0a18 ld/emultempl/armcoff.em
+f14927baf7693df53ddfdf25b3c64398 ld/emultempl/armelf.em
+995bbfc228460e4eef6eef52a09384a9 ld/emultempl/astring.sed
+b195c43933289b93e4d4ba8055964c81 ld/emultempl/avrelf.em
+4aff627620fbde4c8db9445bd04f0cc6 ld/emultempl/beos.em
+902891733be879da00dd41609bb3f2b4 ld/emultempl/bfin.em
+8c3a0d70721c730524a506a441c45155 ld/emultempl/cr16elf.em
+ce7d0f0b14a3b63a2cb10afc74da0999 ld/emultempl/crxelf.em
+8c679290e5df491294d8a4ec33c62b0a ld/emultempl/elf-generic.em
+6824ba103343f743721a20623c751881 ld/emultempl/elf32.em
+f161d20c137eedc9ebd1c716caff30a9 ld/emultempl/genelf.em
+8b1bb9cf0fdceee86785eb3f506855e8 ld/emultempl/generic.em
+38e9f8cb1a488c36bdf32df4caca8ec5 ld/emultempl/gld960.em
+18878e88fadd0c0124973091bd92e77a ld/emultempl/gld960c.em
+8fbc592f1b86f19c7341f566d9d11a56 ld/emultempl/hppaelf.em
+b567d5e4180bdf03e99d43beae69af51 ld/emultempl/ia64elf.em
+2ddf12b7a7e85f5260b019279bb00043 ld/emultempl/irix.em
+3a368fe9b04f91683dfa77c3e97debe7 ld/emultempl/linux.em
+558fc9279afea8366e8660167b813b72 ld/emultempl/lnk960.em
+4424030548811ff3cf002d324030e8b6 ld/emultempl/m68hc1xelf.em
+0f7dfd260376aff557939f9f9b0026ca ld/emultempl/m68kcoff.em
+907245fc4d9760679ec286585649b64d ld/emultempl/m68kelf.em
+b0ecbf9661634fe1d0b3153429b7d673 ld/emultempl/mipsecoff.em
+2cc2271a6594e680b581357e9f9e3173 ld/emultempl/mipself.em
+5d0343ade251326184c3a72f45360574 ld/emultempl/mmix-elfnmmo.em
+571de72fe5a66d0b44af003775cbebc5 ld/emultempl/mmixelf.em
+655a476a4517b93c050c4cfb5fde1fed ld/emultempl/mmo.em
+c027ffd86e4d75fc1df32edbd78ab8d3 ld/emultempl/needrelax.em
+7fd72a36cbd152af568f6c4dcc7a778f ld/emultempl/netbsd.em
+a8190e4a0b5cca5b8677d8bb2d39940f ld/emultempl/ostring.sed
+e8724f22a01df60528b910d27cef982e ld/emultempl/pe.em
+55ba4a985dfaf146af43af1cc8d0f044 ld/emultempl/pep.em
+3c27aed68da5d0374498d7a2e32d9b4c ld/emultempl/ppc32elf.em
+f7ae6fc7c9358ea0ba353ecae92a628b ld/emultempl/ppc64elf.em
+b812a798c37d8d5f5901f1821a8a648a ld/emultempl/README
+f9c5b909500dd0fe865f60f2c81c5319 ld/emultempl/rxelf.em
+ce0094a0aa88fefe12182d071d67d646 ld/emultempl/scoreelf.em
+8890876ee133f90c0426c4fc8ea83b5c ld/emultempl/sh64elf.em
+8c18b038e264514d353c5b109b68b080 ld/emultempl/solaris2.em
+218eb0caab01d73df5711094091dadb8 ld/emultempl/spu_icache.o_c
+93aab45b5b187873b67c127f02649429 ld/emultempl/spu_icache.S
+cb3ac7332c931570c921fe527c188d83 ld/emultempl/spu_ovl.o_c
+297ab6cf12270790536a64ec0ab49fbb ld/emultempl/spu_ovl.S
+7fd9d3c4a23b1ddb27d0e46ad0d048a1 ld/emultempl/spuelf.em
+b81a8a2926af643ec1359eb1a451e824 ld/emultempl/sunos.em
+f5e65d5d7173c6cd2a7d2bd83e5e12c7 ld/emultempl/tic6xdsbt.em
+a1e44428a80727b027cf3e187d094e33 ld/emultempl/ticoff.em
+2b93c5dc10438986805d040f0edf4b11 ld/emultempl/vanilla.em
+c5fd6427ee3885ffb9b9950457bee53a ld/emultempl/vms.em
+f539dfe654d52ba0f332048373d2355e ld/emultempl/vxworks.em
+fdb26042471456f3e3d990ab3ee89785 ld/emultempl/xtensaelf.em
+7fbba22460bb83ff451daf49d80fcd96 ld/emultempl/z80.em
+ab0fe311032294b952da80585b8b90e7 ld/fdl.texi
+7f3de5527703e20cf2da845997c4e36a ld/gen-doc.texi
+351c85fba3e46d48e9752dc51e2a0cac ld/genscrba.sh
+797aec8b606b9b48533c39356e3782a6 ld/genscripts.sh
+981d9fc565e24a50734af5902eb7c52e ld/h8-doc.texi
+c214b5973e81e2bbd397d3553a4b22e4 ld/ld.1
+59b3d878cf4fa65f9258cbc666c2e1b9 ld/ld.h
+79af4d31c25b791ac087898b07687999 ld/ld.info
+f6137f35adb067065dc34727fd512d8b ld/ld.texinfo
+67dde8616fb18b7af1fae96a239a52a9 ld/ldcref.c
+dff9a89bd49eb0176843e49c7ad7c0e2 ld/ldctor.c
+84414136f84aeaab8033428d4a0a330a ld/ldctor.h
+861dc78a5f1f967c0df792cb5736a150 ld/ldemul.c
+73feb06b0b17d058db587d5d6a5b3104 ld/ldemul.h
+6b4d33ab6e6612d92ededc353a37e4cc ld/ldexp.c
+fd7a51bab2155b9993d9968dc72ecc9f ld/ldexp.h
+c250222eb5e10657518baa64004bb173 ld/ldfile.c
+a6206a9e784f5dfa829372e92aa1eef7 ld/ldfile.h
+9687977fba92f6d94db6ae99347f847e ld/ldgram.c
+214d3eab15ebab9e5c1dfa92eb917f00 ld/ldgram.h
+9510f5190778fe5c725444c786eb839c ld/ldgram.y
+0973631ee12d99daed3e97216545aa9f ld/ldint.texinfo
+6b9cc202bd835fbdbb177d88887a78b6 ld/ldlang.c
+ab3a3a76c192957d4acb76c1f77636b2 ld/ldlang.h
+c9360e41eeba0f5febd651e1298c4c0b ld/ldlex-wrapper.c
+b348e41ce74d00d873495cde61e5bb94 ld/ldlex.c
+baeb3e241736fb852f797a5cbf9c163b ld/ldlex.h
+f8da75f665e0da400d43b5b609c2f37c ld/ldlex.l
+21b458ca5d2381eea4c87a6832d9bac3 ld/ldmain.c
+d80bce31760c2ec2d4ccf3499d8df452 ld/ldmain.h
+f668a8604f5ceb810e6c5ee78754587b ld/ldmisc.c
+a2bbb9a3e5ce870051999d5cbd4ffc22 ld/ldmisc.h
+6a03fbfc2360f93eb8e515d1728d564a ld/ldver.c
+f1d1d110b9e89a17eca7116545d66e79 ld/ldver.h
+66147726a96c958a6a63918d709d1a93 ld/ldwrite.c
+1d0ab77dd5d124786b3142aea0d9e88b ld/ldwrite.h
+0c112748c0e348937034915404256427 ld/lexsup.c
+d618facc3e8ce8bf3d02ba452e1be6ab ld/MAINTAINERS
+d75e83897707519666d34e55790eb45e ld/Makefile.am
+5c20ef99fab04255b7301c6c05476689 ld/Makefile.in
+942ad1e3f0e1e190714d2b7fda53bc4f ld/mri.c
+32569346651ca50342ad97f07baca5cf ld/mri.h
+40bc9bd51a44806f688c04c68ed6e897 ld/NEWS
+c8cc1a5a500ff6785ebc6e94f3ab2ad2 ld/pe-dll.c
+763a817ac4bf83bc5064f4dec8ac3f0d ld/pe-dll.h
+8b087227bfd826e425b9bc88f9a9c2e6 ld/pep-dll.c
+416b818dfa9c359535b00117ae94659a ld/pep-dll.h
+4f3fb0fe6f84a1808da36048c32cd85a ld/plugin.c
+36af6eb06e6aa087e9d75190fa942649 ld/plugin.h
+f6d8f46230eb87af11b5ec0b6b5b399d ld/po/bg.gmo
+5097dc0ebfb7addda287833496c3b348 ld/po/bg.po
+aa3f5b6b19d37fd67dae7c5f9d67c868 ld/po/da.gmo
+cdfef74e675d16fda762c677f6757811 ld/po/da.po
+a137a04abad2a023cb269e774e1d4a63 ld/po/es.gmo
+de24056abf1e2efb772e30aedbd01d08 ld/po/es.po
+b594a802f243ab42bf3ff5a27c39a22b ld/po/fi.gmo
+cab5733f1ae1160fd730552487201a8f ld/po/fi.po
+d5a10269096e204ee0ba6696952df9f4 ld/po/fr.gmo
+4e69484f40b02ed13933f43c576538fd ld/po/fr.po
+fc40639db7883536c193350b81dd7cc8 ld/po/ga.gmo
+6b597ac040f231ea3ed037773cf89082 ld/po/ga.po
+53c1557e853cab0747c7be2c851a7a36 ld/po/id.gmo
+8e978c7b22e7d2345dfaef2c4cbddd92 ld/po/id.po
+593c3d8483eeaffa54d5ac135f45f219 ld/po/ja.gmo
+94fbae08f056207fde9be4c61ed7561b ld/po/ja.po
+d4d9ac5897a4fd2b4228f52282dfeeb4 ld/po/ld.pot
+7cb7553c50642d63ccb14f30f66ca155 ld/po/Make-in
+7a287179b7f4c67f1b618821002ad5b9 ld/po/POTFILES.in
+1458a539ab520ec9ecde71e95b38d325 ld/po/sv.gmo
+6c881a8bbe72addbfc0267a9efda3850 ld/po/sv.po
+3d1ef990f300fb1817b57310a731db3e ld/po/tr.gmo
+a44c2934ddeb120e2f08ca74572a7573 ld/po/tr.po
+a5d95d7d9cb740c6063a10a39d0d38e5 ld/po/vi.gmo
+b7ef0492eef2d663197efdfdaba9aac4 ld/po/vi.po
+3efd8d4a930e84f4ad64bb4ccfab32aa ld/po/zh_CN.gmo
+e7c8a19b119746a607460fe98af06531 ld/po/zh_CN.po
+83c6d4c200b0dbaca4a92d64305ef342 ld/po/zh_TW.gmo
+a3966a60cb929bb5b812c3914663d7a6 ld/po/zh_TW.po
+305f3d03c641bc73c2e6ba871fdfe318 ld/README
+51b49fc4acb5799b7561eff69cdfc5de ld/scripttempl/aix.sc
+cca3acb2dbc409fd6ff5f17da85f0478 ld/scripttempl/alpha.sc
+b7af2fe723d10d9f922854eb3d14a056 ld/scripttempl/alphavms.sc
+11e720b2d4fbd6b8ad9ce26f980acd6a ld/scripttempl/aout.sc
+a354ffa3178f947e907c1d89c536fd8c ld/scripttempl/armaout.sc
+f9df9b9a472c5c7e214261e210b944fb ld/scripttempl/armbpabi.sc
+d95bfff20786bc2880153aec35544b13 ld/scripttempl/armcoff.sc
+299f28c30f8a19322df6025800766709 ld/scripttempl/avr.sc
+8980da56643d667c0ff54d23919a5cf3 ld/scripttempl/crisaout.sc
+206c75cbd7e5185b3ee0c11b5528baa1 ld/scripttempl/delta68.sc
+756f010bc1fcebe9cb08b1c8afa66389 ld/scripttempl/dlx.sc
+2e61c0376f967446aaeeab33c5298c29 ld/scripttempl/elf.sc
+2fbe76192c4153c98b995e8cbd0bb119 ld/scripttempl/elf32cr16.sc
+8222028cb2706153489bff8d5a823387 ld/scripttempl/elf32cr16c.sc
+03fa4a27215925af3a39d23023313935 ld/scripttempl/elf32crx.sc
+8563cd5ab5a5691bb99f61ac3b1c0649 ld/scripttempl/elf32msp430.sc
+40a02e3a1d0c83fd555f3089ccf49196 ld/scripttempl/elf32msp430_3.sc
+31577e0de0f8f3f08c1cca134a808d14 ld/scripttempl/elf32sh-symbian.sc
+1f4f2ecf763c7a8cae379d44080d27ce ld/scripttempl/elf32xc16x.sc
+26183dc800d2445fc9783faeb7f4a09c ld/scripttempl/elf32xc16xl.sc
+26183dc800d2445fc9783faeb7f4a09c ld/scripttempl/elf32xc16xs.sc
+f7c5795424490af39b3e6207e3f6c5c8 ld/scripttempl/elf64hppa.sc
+55c48d31a367874103ee640d1b8cad38 ld/scripttempl/elf_chaos.sc
+5fa4ee9418f39438deec99573812c3ab ld/scripttempl/elfd10v.sc
+2c41bd1ff6d91d6076eb31134dac238c ld/scripttempl/elfd30v.sc
+9b243fb72fdcbb010fd362927abd9bd0 ld/scripttempl/elfi370.sc
+1b3554b76eba2a91dfc4b4148839e92e ld/scripttempl/elfm68hc11.sc
+1388afffa87dba99cc3d42eaed3c5e73 ld/scripttempl/elfm68hc12.sc
+15697433a3af5d3bd995697fc56ef15b ld/scripttempl/elfmicroblaze.sc
+e4f897aa6f97dc7696d6cffd5f38ea77 ld/scripttempl/elfxtensa.sc
+558cf311f2393d6785ca38f20dac542e ld/scripttempl/epocpe.sc
+cda2a85ad5bebf3d42b9f0219e185d42 ld/scripttempl/h8300.sc
+a31cc1aeff826b4f48605fae2c9e7a17 ld/scripttempl/h8300h.sc
+c544c999740a0943c5c0fa48d43fd036 ld/scripttempl/h8300hn.sc
+0c68b8546d6279b5f564ce2dea8b915f ld/scripttempl/h8300s.sc
+ebc60b1d61cbb77823d945dec94d0d7a ld/scripttempl/h8300sn.sc
+381ce17048d5d91f113654cc4e8a29f5 ld/scripttempl/h8300sx.sc
+541328f18c8ae4ac182784e817c54b99 ld/scripttempl/h8300sxn.sc
+6c57b9f11a6f50c46ecce9df62061dbf ld/scripttempl/h8500.sc
+39da8240aa7f5aca7b23d93bcf243bb8 ld/scripttempl/h8500b.sc
+a1235b4e692307533adc69d75c98da06 ld/scripttempl/h8500c.sc
+45c5f295e421e663e1843207ae13951a ld/scripttempl/h8500m.sc
+b6ce335a288c23cf897c944a84aafe3b ld/scripttempl/h8500s.sc
+345bdda73fb357a6ae58654860af5778 ld/scripttempl/hppaelf.sc
+9cabd59c88eccf17f3ba4aed399fb8cc ld/scripttempl/i386beos.sc
+b83d2090c526ea76244fb001060b87aa ld/scripttempl/i386coff.sc
+781996f0bc02303778e28cca826ead23 ld/scripttempl/i386go32.sc
+dd4667c5e75a68e5bcc4b0769830974b ld/scripttempl/i386msdos.sc
+0acb5ea28c8feeee6aae68de5fb62a67 ld/scripttempl/i860coff.sc
+f14aed79776fb856704487766477ef6b ld/scripttempl/i960.sc
+56c554544d555716dbaa542dd8be6141 ld/scripttempl/ip2k.sc
+dc5d4ade67ff549a0ee0a727075a5d93 ld/scripttempl/iq2000.sc
+e540fae4addb8cf1d5c85f7e2386ccb3 ld/scripttempl/m68kaux.sc
+0acb5ea28c8feeee6aae68de5fb62a67 ld/scripttempl/m68kcoff.sc
+c6b7f25c2a22e109fe31d19e927a904c ld/scripttempl/m88kbcs.sc
+7145b5d7ef97d4349ec0a4ab8dfc4cb4 ld/scripttempl/mcorepe.sc
+5b68eb3b0430d858ea927ccb39b009e4 ld/scripttempl/mep.sc
+60543996ddabef7bf15c4e659e4715cc ld/scripttempl/mips.sc
+756f010bc1fcebe9cb08b1c8afa66389 ld/scripttempl/mipsbsd.sc
+511fa627b86fe9c3a20302b16b398e38 ld/scripttempl/mmo.sc
+5e33868aa49cdc31363e63450fa7cbb8 ld/scripttempl/moxie.sc
+ca0b5bbcf601b895d149c90dc54be768 ld/scripttempl/nw.sc
+fdcbfdd0b93aa6b73e1b73127b28bdae ld/scripttempl/or32.sc
+2b85ea488dec1f2ab3e4ad4af324e891 ld/scripttempl/pe.sc
+e43c1377e62f7ccf7c3b09e9e89d6ade ld/scripttempl/pep.sc
+47e02e8254495a858dbef6c19c1ac173 ld/scripttempl/pj.sc
+34e9e3ff43defb7975f446f017511ab8 ld/scripttempl/ppcpe.sc
+ab0f8d8220dc084233dee358c5e57433 ld/scripttempl/psos.sc
+01c6e3598e372d510730e381dd25c2cd ld/scripttempl/README
+1ca280b61dcc707ecc1128cfa80b8243 ld/scripttempl/riscix.sc
+e492e9686199c4307073777a09fe3652 ld/scripttempl/sh.sc
+9a6c27dca93759ca536b40f12d4d5ba6 ld/scripttempl/sparccoff.sc
+6277ea502afc8c184eeccce4362d538b ld/scripttempl/st2000.sc
+f9f56c0b4c0548aadba5f30ee7f105fe ld/scripttempl/tic30aout.sc
+581d4b5a31b2f67b8274aa96b201af92 ld/scripttempl/tic30coff.sc
+daa356e0072cd7638fa0b155ce9c5f52 ld/scripttempl/tic4xcoff.sc
+8b0583aa9c80a4bad0ee29ec99696b02 ld/scripttempl/tic54xcoff.sc
+55bb06a75d32be990c5e17654403970c ld/scripttempl/tic80coff.sc
+8aa6f8d6effa49d2f288870329e485cc ld/scripttempl/v850.sc
+922fccd6995f0a119365fd7ceb7b25ce ld/scripttempl/vanilla.sc
+9ef634e16ac4537117ea157867e85207 ld/scripttempl/w65.sc
+ad6aabb9d8a04c2828a9cd3a4005658e ld/scripttempl/xstormy16.sc
+40b944db8315cb484a442a7e3447da39 ld/scripttempl/z80.sc
+60b2f678a8887cae18760d0013bffa20 ld/scripttempl/z8000.sc
+1ded054093de910d9786c62bc4fe8cc6 ld/stamp-h.in
+436d69f69f4db1ef1fa178674525e4cf ld/sysdep.h
+4e3baa769dc8f858b1fc3ecf8e11fbe0 ld/testplug.c
+06262c57474646fa1934cd2e6c143e26 ld/testsuite/ChangeLog
+43821ec3e01aa56c69d031c9cb7aaac6 ld/testsuite/ChangeLog-2004
+0593940197fddd34e72d34ad4681e18d ld/testsuite/ChangeLog-2005
+13ed49b06cc49649e67f1df2f524946a ld/testsuite/ChangeLog-2006
+fdc85b5e1c70442c643dfd0338ef699f ld/testsuite/ChangeLog-2007
+aae40f3c4e2976bcc04690dcafecaee5 ld/testsuite/ChangeLog-2008
+ea60b8fb6103ed796041aa41c43334e3 ld/testsuite/ChangeLog-2009
+c74a5ff0059033a1ac5e743ee5e70ed9 ld/testsuite/ChangeLog-2010
+f6131533875b285cb0449a348fffaeea ld/testsuite/ChangeLog-9303
+94afe0fe97944ac401236e398bdb28e4 ld/testsuite/config/default.exp
+18325ab257cc940dcb70d61b6715538c ld/testsuite/ld-alpha/align.s
+cd84bd576f301ddb989ca9704571ab38 ld/testsuite/ld-alpha/alpha.exp
+8bf554efdd7f5c93133dfc8ba7151052 ld/testsuite/ld-alpha/emptygot.nm
+0149a5d2fce532f4a8e6476f1b999d7a ld/testsuite/ld-alpha/emptygot.s
+c4730c79b491970b9e7aa8e9bbe6c317 ld/testsuite/ld-alpha/tlsbin.dd
+2a7f751ec3b31fbc8706caf61ae3d95f ld/testsuite/ld-alpha/tlsbin.rd
+e4cc0945bf729834783cc392d04e8929 ld/testsuite/ld-alpha/tlsbin.s
+471ff630e1eb88135b396eb8077cf101 ld/testsuite/ld-alpha/tlsbin.sd
+0fdd3c7d51da0c6a74ad3818834ed2b6 ld/testsuite/ld-alpha/tlsbin.td
+f54f88a171d4a1a0502508fb4ba08259 ld/testsuite/ld-alpha/tlsbinpic.s
+556976926e9d8990df2467c2cbcf11d0 ld/testsuite/ld-alpha/tlsbinr.dd
+3bba5d5864c7a1727faea16a4f7372d6 ld/testsuite/ld-alpha/tlsbinr.rd
+d625489891d77ff8c6310f5f05486c77 ld/testsuite/ld-alpha/tlsbinr.sd
+4a8162da94dcca517a86059466c554ff ld/testsuite/ld-alpha/tlsg.s
+643df4e4ff122f2f6a1804aff730c793 ld/testsuite/ld-alpha/tlsg.sd
+b87c24c0e610b3ccf34b009a7280eefa ld/testsuite/ld-alpha/tlslib.s
+a802cac9f534fb99d25bc95cfc9a2ad3 ld/testsuite/ld-alpha/tlspic.dd
+4a90eb141aa0b858f420ee35ab0fc5dc ld/testsuite/ld-alpha/tlspic.rd
+d799d7afe5a44a1032c8a7b495b71f3b ld/testsuite/ld-alpha/tlspic.sd
+fa4f4d2a9aa095262c026d8b386826ce ld/testsuite/ld-alpha/tlspic.td
+66fa8fd9968bb830ab985fbaf9e9a7b2 ld/testsuite/ld-alpha/tlspic1.s
+1be6d8e1547c710f7bc12028c6522832 ld/testsuite/ld-alpha/tlspic2.s
+0c939da922c88b31326633cd4ac9b0b9 ld/testsuite/ld-arm/abs-call-1.d
+bc7a0100095ba568f92c5b4cb573c76e ld/testsuite/ld-arm/abs-call-1.s
+7895b15c6266c18505e625262eea54f0 ld/testsuite/ld-arm/arch-v6.s
+6aa37e1d35526c4d4eb5629eafe109e8 ld/testsuite/ld-arm/arch-v6k.s
+e1e08792660eae6fa0f4165f8320c73b ld/testsuite/ld-arm/arch-v6t2.s
+77d705dc1cb85b55d60a1a5ef372dda1 ld/testsuite/ld-arm/arm-app-abs32.d
+565634b571c9c9e088fb3416a62705f0 ld/testsuite/ld-arm/arm-app-abs32.r
+abe5df1b29a8c0085e2b425276030a2b ld/testsuite/ld-arm/arm-app-abs32.s
+44189b55bc98f5f1bde3d79507cc5877 ld/testsuite/ld-arm/arm-app-movw.s
+0e012f2cb1efd99af6b30be23fdade93 ld/testsuite/ld-arm/arm-app.d
+b0831c8e38b6165af9e9d82e1a242fbd ld/testsuite/ld-arm/arm-app.r
+20303773d7a50761a78fb7a3536407b5 ld/testsuite/ld-arm/arm-app.s
+5f2a54452016678abd05e0456b6a9e77 ld/testsuite/ld-arm/arm-be8.d
+9bd7893b6bd0aaee2575654eeb7b2806 ld/testsuite/ld-arm/arm-be8.s
+d7525ccd8931c32c432a3f3aa14174c5 ld/testsuite/ld-arm/arm-call.d
+a787400b6bcc43f49aa58957d81b56b9 ld/testsuite/ld-arm/arm-call1.s
+5e27a3edfbfbf3a12d65e227fab0c447 ld/testsuite/ld-arm/arm-call2.s
+62568113ccbc67acbec0b553c0ac27d9 ld/testsuite/ld-arm/arm-dyn.ld
+330686e07cf77888b9215b639186aa3c ld/testsuite/ld-arm/arm-elf.exp
+2a3abc273f1a81034c2252c1593c803a ld/testsuite/ld-arm/arm-lib-plt-2.dd
+57b6eb19e18b93ead28a446db8622778 ld/testsuite/ld-arm/arm-lib-plt-2.rd
+24d760eeef99d12b084bcad76b2f82c9 ld/testsuite/ld-arm/arm-lib-plt-2a.s
+73bf22104860bd41102419e3a4695235 ld/testsuite/ld-arm/arm-lib-plt-2b.s
+b04b3e1b69a55141a0ebfd7ae824ef8c ld/testsuite/ld-arm/arm-lib-plt32.d
+a167e469316cdd1ed8af41301205f0a0 ld/testsuite/ld-arm/arm-lib-plt32.r
+72d35e1785ba54a876601fb0dbeeab24 ld/testsuite/ld-arm/arm-lib-plt32.s
+14268c6b6cc4a710e8a2982a44641441 ld/testsuite/ld-arm/arm-lib.d
+0708cc1adcc6baf63231589c4ec9d60e ld/testsuite/ld-arm/arm-lib.ld
+cf684a9a844dd5b8f1e9e0059bd54fd1 ld/testsuite/ld-arm/arm-lib.r
+c4c6f3c32d459e57dbc71322834068c1 ld/testsuite/ld-arm/arm-lib.s
+f278856f60aa2e92fef6f8efcb95cd87 ld/testsuite/ld-arm/arm-movwt.d
+b426a92fe21a99c3863c6101c2313fdf ld/testsuite/ld-arm/arm-movwt.s
+d8a05038cb85c454ed420fb6915da278 ld/testsuite/ld-arm/arm-pic-veneer.d
+899b6abee6b02dc13cce6c0ddccd883e ld/testsuite/ld-arm/arm-pic-veneer.s
+c4ff75c0232f3b2256bc7aafc3bc8e40 ld/testsuite/ld-arm/arm-rel31.d
+8cebae8ee9a229083227e603191c0391 ld/testsuite/ld-arm/arm-rel31.s
+09ee606ddacc2f55cc25902f2a6d5515 ld/testsuite/ld-arm/arm-rel32.d
+1e2ce4555be8588f9ae73d3d59424e5c ld/testsuite/ld-arm/arm-rel32.s
+9fc3aef29b8fbf55de40dd3dc788b94c ld/testsuite/ld-arm/arm-static-app.d
+31e63d6e3b7ba27e293f96df500359d9 ld/testsuite/ld-arm/arm-static-app.r
+bf32a1e13602b56dbc2ccd6d3cc7075a ld/testsuite/ld-arm/arm-static-app.s
+a69a7159f61904208e6b1cc0d5b3c263 ld/testsuite/ld-arm/arm-target1-abs.d
+9614e4d603f01aa481ea9b010921613d ld/testsuite/ld-arm/arm-target1-rel.d
+4f25ab9246a0db32d11a546d9125b081 ld/testsuite/ld-arm/arm-target1.s
+db7bf3b0f71d8c6db5ba1593a29e2e4c ld/testsuite/ld-arm/arm-target2-abs.d
+bafd45e2fb70ed3e7636147857fb38a6 ld/testsuite/ld-arm/arm-target2-got-rel.d
+3450245b99e8b9ad0a7c1faa69461146 ld/testsuite/ld-arm/arm-target2-rel.d
+9cf9947ecc7d9790a8559eaf8ae700d4 ld/testsuite/ld-arm/arm-target2.s
+fe849e07c75e05d399efc326b296c435 ld/testsuite/ld-arm/arm.ld
+44893e5a5afc38ad27167c030ee5c958 ld/testsuite/ld-arm/armthumb-lib.d
+2bc49ee8cf149c8a9ee254d14f8385c0 ld/testsuite/ld-arm/armthumb-lib.sym
+efbfb53e4bea0790c927b2a3e318ca43 ld/testsuite/ld-arm/armv4-bx.d
+e2dadb7d750471c27af1efd41b48a882 ld/testsuite/ld-arm/armv4-bx.s
+e3663adf291034687f2310d8c36235a6 ld/testsuite/ld-arm/attr-merge-2.attr
+5f12936f87e1ed4b81d2a70331d30421 ld/testsuite/ld-arm/attr-merge-2a.s
+c8bd90e167a02533a37e59f8c5e4dbe2 ld/testsuite/ld-arm/attr-merge-2b.s
+4a5365fbbe1c0ebf6ef9b9716a8f862d ld/testsuite/ld-arm/attr-merge-3.attr
+1ba5e1d384cc9aff15613343d46585d4 ld/testsuite/ld-arm/attr-merge-3a.s
+08eb07a082249955d132e6c7039848de ld/testsuite/ld-arm/attr-merge-3b.s
+6da714aa56c470a02600e1d60c412e28 ld/testsuite/ld-arm/attr-merge-4.attr
+6f0ae206678ea57ff2000af1db378299 ld/testsuite/ld-arm/attr-merge-4a.s
+899f45463773d5eb3c444646029ce5f9 ld/testsuite/ld-arm/attr-merge-4b.s
+702d1f2815531ce86e0d10e88be0aa5b ld/testsuite/ld-arm/attr-merge-5.attr
+62f80cb0667f1f4f15b674a8af29dab4 ld/testsuite/ld-arm/attr-merge-5.s
+76c3e5190262fcaabbcd8a47e791c7b9 ld/testsuite/ld-arm/attr-merge-6.attr
+072e2bbfcbf5398506cd91cf59cfd204 ld/testsuite/ld-arm/attr-merge-6a.s
+92105a7efb116e4e72d261e1127a711c ld/testsuite/ld-arm/attr-merge-6b.s
+76c3e5190262fcaabbcd8a47e791c7b9 ld/testsuite/ld-arm/attr-merge-7.attr
+2e18644e38bb3e56b3f8810232878f50 ld/testsuite/ld-arm/attr-merge-7a.s
+43be1b33b4ba036cc07b070486447a6e ld/testsuite/ld-arm/attr-merge-7b.s
+a6f56cbf4b9ff50c842051a67ddc4114 ld/testsuite/ld-arm/attr-merge-arch-1.attr
+079f1aaeb79045c44b450ae046ad70bf ld/testsuite/ld-arm/attr-merge-arch-2.attr
+fe15ddce74851e7fbc2865200b34df67 ld/testsuite/ld-arm/attr-merge-incompatible.d
+fc3daa1b534d41b11840efff5c4c170a ld/testsuite/ld-arm/attr-merge-incompatiblea.s
+62f80cb0667f1f4f15b674a8af29dab4 ld/testsuite/ld-arm/attr-merge-incompatibleb.s
+0d80c6d12051d67b1b304bea1cdbbf55 ld/testsuite/ld-arm/attr-merge-unknown-1.d
+a0de730b63d5dfb48cf9cd87a0b7cb08 ld/testsuite/ld-arm/attr-merge-unknown-1.s
+564fc214fee68b50a10fe6c7617eee8c ld/testsuite/ld-arm/attr-merge-unknown-2.d
+e6d53a8df83263f9ddb77d774170ab4d ld/testsuite/ld-arm/attr-merge-unknown-2.s
+7b754df1f42c142b78e720da0ba254e2 ld/testsuite/ld-arm/attr-merge-unknown-2r.d
+cd4290118ac4cc3d77ec922696ca8d2b ld/testsuite/ld-arm/attr-merge-unknown-3.d
+bb7873ee1d585090f26689eb2c4014c7 ld/testsuite/ld-arm/attr-merge-vfp-1.d
+2eb41ed7bed45aad91bcdeacce7a8aa0 ld/testsuite/ld-arm/attr-merge-vfp-1r.d
+4e9dbd7dc5c977f7fd9dd43ec933d7e3 ld/testsuite/ld-arm/attr-merge-vfp-2.d
+f8b0584fc86faffed19d1130fc34dc93 ld/testsuite/ld-arm/attr-merge-vfp-2.s
+6741b604f0d2859db4903a2b8bec0828 ld/testsuite/ld-arm/attr-merge-vfp-2r.d
+f28af5c6a13398cbeac6f0c860d2dcd6 ld/testsuite/ld-arm/attr-merge-vfp-3-d16.s
+d52893c369f5394c56e38f653de48e8d ld/testsuite/ld-arm/attr-merge-vfp-3.d
+4c48ddba2fcd22187f0226a2012d5595 ld/testsuite/ld-arm/attr-merge-vfp-3.s
+2187bb1f951eded643ff496f0331c598 ld/testsuite/ld-arm/attr-merge-vfp-3r.d
+285bf2f43dcf84d9d2b6c39f34b357c4 ld/testsuite/ld-arm/attr-merge-vfp-4-d16.s
+d19dddc8dddc6e7b80627c63d2494f84 ld/testsuite/ld-arm/attr-merge-vfp-4.d
+8de7869cf10231747ddf8ead86b8b046 ld/testsuite/ld-arm/attr-merge-vfp-4.s
+44ee3543f69e1831b0a3f448abe0c85d ld/testsuite/ld-arm/attr-merge-vfp-4r.d
+02452b478b79db96253056986747ee16 ld/testsuite/ld-arm/attr-merge-vfp-5.d
+32cc70e21f3b5675d8a8f8ec8e4c2fce ld/testsuite/ld-arm/attr-merge-vfp-5r.d
+668996480394f949a3943b906b482feb ld/testsuite/ld-arm/attr-merge-vfp-6.d
+ab1d0c0d11a1d914975b7ae8200f7364 ld/testsuite/ld-arm/attr-merge-vfp-6r.d
+c50abc378811fb009b68ec103f8be197 ld/testsuite/ld-arm/attr-merge-vfpv3xd.s
+b4360e3265d2af1e542fed5b6fbccd53 ld/testsuite/ld-arm/attr-merge-wchar-0.s
+7fb29658bd9bc28063a58d7e8d570f92 ld/testsuite/ld-arm/attr-merge-wchar-00-nowarn.d
+f0f1d81df0769ada7748d424d85f0f97 ld/testsuite/ld-arm/attr-merge-wchar-00.d
+2b4a11110a04738d50457042148c288f ld/testsuite/ld-arm/attr-merge-wchar-02-nowarn.d
+d339f951c00ab9f2676ece4477d16a5b ld/testsuite/ld-arm/attr-merge-wchar-02.d
+d5448e3d00cfb657ae55ccaeb13654d9 ld/testsuite/ld-arm/attr-merge-wchar-04-nowarn.d
+d74677e3dd4e57f22e01e609be12e4de ld/testsuite/ld-arm/attr-merge-wchar-04.d
+2c296cb445843717d76f0e456347e416 ld/testsuite/ld-arm/attr-merge-wchar-2.s
+ecf839ea72713f6d3465f5f06c30ce4c ld/testsuite/ld-arm/attr-merge-wchar-20-nowarn.d
+844b927260ce385379bf83c79d6d83f5 ld/testsuite/ld-arm/attr-merge-wchar-20.d
+3b27a22c667e04291a9a80bcb68a437d ld/testsuite/ld-arm/attr-merge-wchar-22-nowarn.d
+766d16be48c8d68ce16c0b30b0dc4e00 ld/testsuite/ld-arm/attr-merge-wchar-22.d
+958586afae8bb2eff5887a4a09a85375 ld/testsuite/ld-arm/attr-merge-wchar-24-nowarn.d
+797c7798987c3a88b6728b08baa1d289 ld/testsuite/ld-arm/attr-merge-wchar-24.d
+e25c78be043d14cf8a3025dfafec8d7a ld/testsuite/ld-arm/attr-merge-wchar-4.s
+dd65ac98876c9fbfbbe7a9560a18d516 ld/testsuite/ld-arm/attr-merge-wchar-40-nowarn.d
+6d52dd393e397056682f562957478b23 ld/testsuite/ld-arm/attr-merge-wchar-40.d
+66b391040463dfa7c28843537b17ef4f ld/testsuite/ld-arm/attr-merge-wchar-42-nowarn.d
+d64d5b8c690cbc57d414656ea5259b4b ld/testsuite/ld-arm/attr-merge-wchar-42.d
+bdc41fca047e0ae8d657d30f9c2ef64c ld/testsuite/ld-arm/attr-merge-wchar-44-nowarn.d
+295dd091a506a3e4b1770cc8b7b9c8d5 ld/testsuite/ld-arm/attr-merge-wchar-44.d
+1d5222dd7f07618dae4fe1d52728376d ld/testsuite/ld-arm/attr-merge.attr
+8769cbbf0c802d7f2c4b4364ba841b4b ld/testsuite/ld-arm/attr-merge.s
+1632d9677c2b9800feac355724a3d9dc ld/testsuite/ld-arm/blank.s
+ba2e9f916e17ba98c1ce3d06e3221320 ld/testsuite/ld-arm/callweak-2.d
+1ff473794b52b3c0372dde027b120ebb ld/testsuite/ld-arm/callweak-2.s
+48ac319a0e3e64039e9fede6a80e386d ld/testsuite/ld-arm/callweak.d
+2e3b64e093e12c6da2f693266d058577 ld/testsuite/ld-arm/callweak.s
+7e22f1277033cc08b8fa53289b0779c6 ld/testsuite/ld-arm/cortex-a8-arm-target.s
+bab664f9cbbe460a870357a8fa8c8245 ld/testsuite/ld-arm/cortex-a8-far-1.s
+be27d10903245210f7ba901f98244343 ld/testsuite/ld-arm/cortex-a8-far-2.s
+6302f37d4b07b405a0d1741b0398365a ld/testsuite/ld-arm/cortex-a8-far-3.s
+948af81f56a6ef8c3f4872264f6d087f ld/testsuite/ld-arm/cortex-a8-far.d
+1ffe502271a5f68dc515a82af764d8fa ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d
+b50c2ae6aba4a0202cc17ff8e8b775ca ld/testsuite/ld-arm/cortex-a8-fix-b-plt.s
+01bba47886edfb28947408e14f5ec8f7 ld/testsuite/ld-arm/cortex-a8-fix-b-rel-arm.d
+045519d3c449489440e9ea52dae4e515 ld/testsuite/ld-arm/cortex-a8-fix-b-rel-thumb.d
+6b22eb67a82b0807b682a0e71c5502ca ld/testsuite/ld-arm/cortex-a8-fix-b-rel.s
+fb6ef44a33f7e0761ddaeae2c30ead18 ld/testsuite/ld-arm/cortex-a8-fix-b.d
+36631979a7237c784288b48a4d7d4d32 ld/testsuite/ld-arm/cortex-a8-fix-b.s
+0890156477a2ae6fd8c2650be3031f0d ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d
+2adbba2039a01ab3a6d57086fd991b78 ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.s
+11f72b8789056c492dc9c8b8d359e304 ld/testsuite/ld-arm/cortex-a8-fix-bcc-rel-thumb.d
+e451296a2ef78f15f6cf2fddb05237da ld/testsuite/ld-arm/cortex-a8-fix-bcc-rel.s
+d617939309f9ba77893f0621bbaf14d2 ld/testsuite/ld-arm/cortex-a8-fix-bcc.d
+6ef3522d14ec39cd532099e0302784f3 ld/testsuite/ld-arm/cortex-a8-fix-bcc.s
+28823d7677e078fe67736d3bc47bffec ld/testsuite/ld-arm/cortex-a8-fix-bl-plt.d
+e6c4fa37fc21418e2a20576d38ef0347 ld/testsuite/ld-arm/cortex-a8-fix-bl-plt.s
+f4045f402dfc1b574e9ca159f55d841c ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-arm.d
+cd0e6988625aed95688ccbc5339306f7 ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d
+73aaf1bc6445754cbb9abbf7f2f92e73 ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-thumb.d
+475faa739e8d5a8a44e123dc086001d0 ld/testsuite/ld-arm/cortex-a8-fix-bl-rel.s
+c94c625b4d0121a79118a8d8b96b4b02 ld/testsuite/ld-arm/cortex-a8-fix-bl.d
+2181cf399ebb5a864e48ad9199a00ec1 ld/testsuite/ld-arm/cortex-a8-fix-bl.s
+0dc55dd25c8252492a84ed229e7250da ld/testsuite/ld-arm/cortex-a8-fix-blx-bcond.d
+291f8743a6f9543a45f9bcd3638abd25 ld/testsuite/ld-arm/cortex-a8-fix-blx-bcond.s
+28823d7677e078fe67736d3bc47bffec ld/testsuite/ld-arm/cortex-a8-fix-blx-plt.d
+790d8a4a3d218060ad43a77255798379 ld/testsuite/ld-arm/cortex-a8-fix-blx-plt.s
+f4045f402dfc1b574e9ca159f55d841c ld/testsuite/ld-arm/cortex-a8-fix-blx-rel-arm.d
+73aaf1bc6445754cbb9abbf7f2f92e73 ld/testsuite/ld-arm/cortex-a8-fix-blx-rel-thumb.d
+af72dc49b413d92ed9667b4d63ed9ddf ld/testsuite/ld-arm/cortex-a8-fix-blx-rel.s
+6873878cb2ebaa1bf46010dabc5727f7 ld/testsuite/ld-arm/cortex-a8-fix-blx.d
+1e25975b509deb838f6e0d2254ff499f ld/testsuite/ld-arm/cortex-a8-fix-blx.s
+ce7c7287491dece28e98da1c3efe773d ld/testsuite/ld-arm/cortex-a8-fix-hdr.d
+48784d08956228e0d16b89ac340ea6ab ld/testsuite/ld-arm/cortex-a8-fix-hdr.s
+864221fec407b2c37533593c55894f02 ld/testsuite/ld-arm/cortex-a8-fix-hdr.t
+80854a8a9c4500cc20738d200a77b006 ld/testsuite/ld-arm/cortex-a8-fix-plt.ld
+a9dac8d0925445e9d10ce4f596b22e2a ld/testsuite/ld-arm/cortex-a8-thumb-target.s
+b88dcc9e56e2728d412f0d5743d028b0 ld/testsuite/ld-arm/data-only-map.d
+3e5794d866ad28c00e03cfc572e2c705 ld/testsuite/ld-arm/data-only-map.ld
+eb5f0ce3abd8b00466907d473b245d54 ld/testsuite/ld-arm/data-only-map.s
+560401691ef9f717d32d73bc749fbe16 ld/testsuite/ld-arm/discard-unwind.ld
+d3572717a33b9984a0736abd439301fb ld/testsuite/ld-arm/emit-relocs1-vxworks.d
+dc068f97c1fa2716277fa6e58f1b3fee ld/testsuite/ld-arm/emit-relocs1.d
+060f69d9ec279b88a035babbd2638197 ld/testsuite/ld-arm/emit-relocs1.s
+cd4c31e1aa87e9987fe51b559459c8a9 ld/testsuite/ld-arm/exec-got-1.d
+4a6620f5ffdf80120288d531181e52f9 ld/testsuite/ld-arm/exec-got-1a.s
+b434422e46503615e91cf825c828c2f5 ld/testsuite/ld-arm/exec-got-1b.s
+90320e8531ecf52267551ed492347720 ld/testsuite/ld-arm/farcall-arm-arm-pic-veneer.d
+759037c784bbc000f3fb6494333fdd34 ld/testsuite/ld-arm/farcall-arm-arm.d
+83d80a7ef45408d267162af94a007143 ld/testsuite/ld-arm/farcall-arm-arm.s
+da263ec380f531417f9934070f7d83d5 ld/testsuite/ld-arm/farcall-arm-thumb-blx-pic-veneer.d
+37ac132fdbf7a1e97348862517ba5412 ld/testsuite/ld-arm/farcall-arm-thumb-blx.d
+da263ec380f531417f9934070f7d83d5 ld/testsuite/ld-arm/farcall-arm-thumb-pic-veneer.d
+612fa477003bb6c3d2fd4305c8590242 ld/testsuite/ld-arm/farcall-arm-thumb.d
+feafda34a355cec86381a9424c1923e0 ld/testsuite/ld-arm/farcall-arm-thumb.s
+aed25e01070077e10df302eb4d39259a ld/testsuite/ld-arm/farcall-data.d
+77a25d7840b7eea965802b011cce6bf7 ld/testsuite/ld-arm/farcall-data.s
+bc8342bacca85509c43a781286219175 ld/testsuite/ld-arm/farcall-group-limit.d
+2f5489361a2dcfadb6f944f9cca65ae6 ld/testsuite/ld-arm/farcall-group-size2.d
+a0a58aad96873c94862b773f4af7c5df ld/testsuite/ld-arm/farcall-group.d
+dfaec37784ca0c2f25d2f04ebb05fdf9 ld/testsuite/ld-arm/farcall-group.s
+d61430b77747464e5d48aa940be39580 ld/testsuite/ld-arm/farcall-group2.s
+349d0f252076dfdc0de2b81a072b940f ld/testsuite/ld-arm/farcall-group3.s
+3cbbaa21c86c5e0cbf97d31c735740b8 ld/testsuite/ld-arm/farcall-group4.s
+fa28a8361a3595002a208780a18848d0 ld/testsuite/ld-arm/farcall-mix.d
+1017db2c56473761890b4d633b7f8699 ld/testsuite/ld-arm/farcall-mix.s
+38454c9e76cf1a3878147a0ba367ce6e ld/testsuite/ld-arm/farcall-mix2.d
+a90dede13396e671d72c9d9fa580deeb ld/testsuite/ld-arm/farcall-mix2.s
+8264d6b2f5abd02c1bc753d150d54fdc ld/testsuite/ld-arm/farcall-mixed-app-v5.d
+cbcb7b567114381e559938f0020cfbac ld/testsuite/ld-arm/farcall-mixed-app.d
+8655055d07990ff809303c4475e4a434 ld/testsuite/ld-arm/farcall-mixed-app.r
+c889e945f1869d0b5ed8ef8f51a83da2 ld/testsuite/ld-arm/farcall-mixed-app.s
+0a6c2d1e1c9c4b9b9e5ab3c83be5820e ld/testsuite/ld-arm/farcall-mixed-app.sym
+3828f51461c36d5c623d2cb4c99ffb19 ld/testsuite/ld-arm/farcall-mixed-lib-v4t.d
+90afc5525996d122c0b23a31f4f43096 ld/testsuite/ld-arm/farcall-mixed-lib.d
+38b363bcc83b5cef3b3f8f2a9a434185 ld/testsuite/ld-arm/farcall-mixed-lib.r
+b459c568af8f35839ef4077ae253512a ld/testsuite/ld-arm/farcall-mixed-lib1.s
+686cbdd2bd1f1c30c9631b49c25ebf43 ld/testsuite/ld-arm/farcall-mixed-lib2.s
+12c6cdcef0c645a44f0f118ce884014a ld/testsuite/ld-arm/farcall-section.d
+3c4d686c3c049de14838a526694239a1 ld/testsuite/ld-arm/farcall-section.s
+be48864e107495efc288f0640e224e3b ld/testsuite/ld-arm/farcall-thumb-arm-blx-pic-veneer.d
+e09e2081dad65507e45d9528b05d6954 ld/testsuite/ld-arm/farcall-thumb-arm-blx.d
+0dc2d82344eaac7fec38a680a346f5df ld/testsuite/ld-arm/farcall-thumb-arm-pic-veneer.d
+cec9550efcffd7c281d7370ee105f3a5 ld/testsuite/ld-arm/farcall-thumb-arm-short.d
+60c1e55d3ce000d9efab15dad7d9c387 ld/testsuite/ld-arm/farcall-thumb-arm-short.s
+d3b1918fe27953b249ca9e60b9a3ac23 ld/testsuite/ld-arm/farcall-thumb-arm.d
+938e05203cf88a8f3d61328da7f40b6f ld/testsuite/ld-arm/farcall-thumb-arm.s
+06fb862ae70622ddd9eae326873a6ee6 ld/testsuite/ld-arm/farcall-thumb-thumb-blx-pic-veneer.d
+389328084a5f337f3e8a4a519c58f0ca ld/testsuite/ld-arm/farcall-thumb-thumb-blx.d
+cea8612792533d221576548b5aa3d717 ld/testsuite/ld-arm/farcall-thumb-thumb-m-pic-veneer.d
+22a1e68933b8eec505a19b19d88950f5 ld/testsuite/ld-arm/farcall-thumb-thumb-m.d
+62776a7479e8115771ae878aaa1aa860 ld/testsuite/ld-arm/farcall-thumb-thumb-pic-veneer.d
+9a04dc62282034e81d8ab40d6fbbaba6 ld/testsuite/ld-arm/farcall-thumb-thumb.d
+1748da76b5b6995c5e5246beaf550c89 ld/testsuite/ld-arm/farcall-thumb-thumb.s
+5301164970cf5b3dfa9ebd66c1df0ae1 ld/testsuite/ld-arm/fix-arm1176-off.d
+9a783801d73e0f6e6756c32781e5a34c ld/testsuite/ld-arm/fix-arm1176-on.d
+e0c37a2fccb6d4aeea259944dd0507e9 ld/testsuite/ld-arm/fix-arm1176.s
+8c02ba56f0c8f3588233afedca05a14f ld/testsuite/ld-arm/gc-thumb-lib.s
+1c765050a71f5bf432d17b21156bfc2f ld/testsuite/ld-arm/gc-thumb.d
+6ffb0ee4ab2aa38ab7bcb4c8c3be6c1e ld/testsuite/ld-arm/gc-thumb.s
+bbcf9d024d1ee8f2d47abb91f42ba9e8 ld/testsuite/ld-arm/gc-unwind.d
+4bbe9404ed0e79bc734d7271a6635aad ld/testsuite/ld-arm/gc-unwind.s
+fcd7254515aeb9da7a9cc34316757871 ld/testsuite/ld-arm/group-relocs-alu-bad.d
+76c773939a0441f44c6bc6dbc081815d ld/testsuite/ld-arm/group-relocs-alu-bad.s
+00b5026469825891d84525fc4a61a2b4 ld/testsuite/ld-arm/group-relocs-ldc-bad.d
+bb9334a2ba26dcdce07f514ab138ae31 ld/testsuite/ld-arm/group-relocs-ldc-bad.s
+8ef803d391e047e300b8b10b635802b2 ld/testsuite/ld-arm/group-relocs-ldr-bad.d
+e96fa91669ff6054ee35c92122768211 ld/testsuite/ld-arm/group-relocs-ldr-bad.s
+28fa43dc8bcb87721103002b3f58673f ld/testsuite/ld-arm/group-relocs-ldrs-bad.d
+9693aef33aa3f5ee3818dc2204efce12 ld/testsuite/ld-arm/group-relocs-ldrs-bad.s
+ee4ef770572061ed1059a6c047237cfe ld/testsuite/ld-arm/group-relocs.d
+03e7c32feaf0a78ccde5ee5389ffffbd ld/testsuite/ld-arm/group-relocs.s
+a6710411b398ee9595e1ccc85c5ca1da ld/testsuite/ld-arm/ifunc-1.dd
+8df0f6d6af5f8ad2dd377e406417421c ld/testsuite/ld-arm/ifunc-1.gd
+aab57a58ead091719749e52bc9b0288f ld/testsuite/ld-arm/ifunc-1.rd
+0d4de4218e3ca91dc988e8e6b1e3ef20 ld/testsuite/ld-arm/ifunc-1.s
+baa3d9d8f85b5dbf35255f3f724ae6dd ld/testsuite/ld-arm/ifunc-10.dd
+91f972e1fd57d1b97f1e99c455bf6679 ld/testsuite/ld-arm/ifunc-10.gd
+0494c06eeb2dac556c5f489089760eb8 ld/testsuite/ld-arm/ifunc-10.rd
+476d1fd97b14dfc080a90d893793b963 ld/testsuite/ld-arm/ifunc-10.s
+d3e16de902b7a18de2d6a590a5ee1a37 ld/testsuite/ld-arm/ifunc-11.dd
+b02712f5fc11e5b12588309428dbdb6f ld/testsuite/ld-arm/ifunc-11.gd
+73211ce48cb17600d2cde81afbe05b59 ld/testsuite/ld-arm/ifunc-11.rd
+5189107445e618cf2d459e80c0f442c1 ld/testsuite/ld-arm/ifunc-11.s
+d3e16de902b7a18de2d6a590a5ee1a37 ld/testsuite/ld-arm/ifunc-12.dd
+58d38e6171844a187d90880c6efa541c ld/testsuite/ld-arm/ifunc-12.gd
+c5111eeaec95bafdf37189a7edfbd675 ld/testsuite/ld-arm/ifunc-12.rd
+27565857472e6dfb6f5f0d1e0eb9e9ed ld/testsuite/ld-arm/ifunc-12.s
+4c083076902479b27c6858c33f1015de ld/testsuite/ld-arm/ifunc-13.dd
+874a3e56ccc429ffcb496aff0ece4869 ld/testsuite/ld-arm/ifunc-13.gd
+1f2a12faccac07fa4906d13ef08aa104 ld/testsuite/ld-arm/ifunc-13.rd
+177a35974fd1f166319b424bed1614da ld/testsuite/ld-arm/ifunc-13.s
+bc3819b9826ba589526f8b2f19f27a07 ld/testsuite/ld-arm/ifunc-14.dd
+2c5d3d9cfe517b28252071905c6089ee ld/testsuite/ld-arm/ifunc-14.gd
+be9dd722aa5e320899f179719896127e ld/testsuite/ld-arm/ifunc-14.rd
+ece4f00edd71c05270d18832b1860afa ld/testsuite/ld-arm/ifunc-14.s
+6db8d15204bc93456ae8e630c92c0be4 ld/testsuite/ld-arm/ifunc-15.dd
+2c5d3d9cfe517b28252071905c6089ee ld/testsuite/ld-arm/ifunc-15.gd
+be9dd722aa5e320899f179719896127e ld/testsuite/ld-arm/ifunc-15.rd
+3deab62a36968e37b8c2fa75f8ff1862 ld/testsuite/ld-arm/ifunc-15.s
+f9487bea5bfb6cd151ef0977ed0835f2 ld/testsuite/ld-arm/ifunc-16.dd
+2f2d8fb64449091818ddd90679ee69ad ld/testsuite/ld-arm/ifunc-16.gd
+30eb42b09208249590397a29ede51b06 ld/testsuite/ld-arm/ifunc-16.rd
+1c0566c3d09e6f8041e6d59f9d8b62aa ld/testsuite/ld-arm/ifunc-16.s
+3be7270b7005ce0311c6e3a1357637e3 ld/testsuite/ld-arm/ifunc-2.dd
+0a17cc422e125bab358d4cf57732391e ld/testsuite/ld-arm/ifunc-2.gd
+9ab6e95fe2bf2c9c3ea298f8acd5b80b ld/testsuite/ld-arm/ifunc-2.rd
+ffe494ca12faae825c0c61d3cb152ab2 ld/testsuite/ld-arm/ifunc-2.s
+061b687be09f2437889f98675a3234a2 ld/testsuite/ld-arm/ifunc-3.dd
+57d6988d83210075134bb6cfe13f32f9 ld/testsuite/ld-arm/ifunc-3.gd
+3af3806cb0fff3a84a1c5647d28f4b78 ld/testsuite/ld-arm/ifunc-3.rd
+422cfa798bbc5f772caf833c9e3d6c47 ld/testsuite/ld-arm/ifunc-3.s
+54955a7c2c7776a91bb8e359948f671e ld/testsuite/ld-arm/ifunc-4.dd
+da59c76249f34e3da4c0c7fbddc7b271 ld/testsuite/ld-arm/ifunc-4.gd
+ab54c17ae17ff0a5d5e2a9665e45cb38 ld/testsuite/ld-arm/ifunc-4.rd
+1294b3289faaf0f4a2a491c0701146cd ld/testsuite/ld-arm/ifunc-4.s
+5921f04a50e20e64d364b50dd3b39a83 ld/testsuite/ld-arm/ifunc-5.dd
+67d3344e3680aeecf7e07d9a241de09a ld/testsuite/ld-arm/ifunc-5.gd
+aab57a58ead091719749e52bc9b0288f ld/testsuite/ld-arm/ifunc-5.rd
+185ce84137e9ca77d9f7f71b210b3af5 ld/testsuite/ld-arm/ifunc-5.s
+b9553f59feafdc8563558df5aa7f25b1 ld/testsuite/ld-arm/ifunc-6.dd
+80c067d92a3d84f410aa67cda4706699 ld/testsuite/ld-arm/ifunc-6.gd
+058fcecb8256e8885de3e6f8d0e433d6 ld/testsuite/ld-arm/ifunc-6.rd
+7d16c8d83ce6606675deb0f74ecc1176 ld/testsuite/ld-arm/ifunc-6.s
+41c4a428caf69fb31ac3aeb1f5f01200 ld/testsuite/ld-arm/ifunc-7.dd
+509a265d4fe0d75472a1cdf9d96b69e1 ld/testsuite/ld-arm/ifunc-7.gd
+e7a45e746b52e017922d8165e5093419 ld/testsuite/ld-arm/ifunc-7.rd
+200eae4c0be923c69e3840550fbc6c13 ld/testsuite/ld-arm/ifunc-7.s
+8e1cc904545be437d63158cf44f97442 ld/testsuite/ld-arm/ifunc-8.dd
+ef63be7f0b9483d7cdf79f030ec57c77 ld/testsuite/ld-arm/ifunc-8.gd
+b5cf2a0d3f6dfc9c7abf18e554ee7f56 ld/testsuite/ld-arm/ifunc-8.rd
+d6a1afb52dcb2f346938856b0de9b605 ld/testsuite/ld-arm/ifunc-8.s
+6b9e131e4ad668348819d153a1a528f5 ld/testsuite/ld-arm/ifunc-9.dd
+814d8b7972b856563e6c355ab0356864 ld/testsuite/ld-arm/ifunc-9.gd
+477a9683c43e87d8cfa6d746ee74f25b ld/testsuite/ld-arm/ifunc-9.rd
+62f7d0a0298f7800c2f674e364db1222 ld/testsuite/ld-arm/ifunc-9.s
+d597cf67123031a82eee9b1da9f869c1 ld/testsuite/ld-arm/ifunc-dynamic.ld
+101b4e65b6bc57296c808833b2ec7f82 ld/testsuite/ld-arm/ifunc-static.ld
+bb5e58349f11b25d307ad765a8a87a5b ld/testsuite/ld-arm/jump-reloc-veneers-long.d
+5119a2190ddc593f4a8bf5950b7f6f0d ld/testsuite/ld-arm/jump-reloc-veneers-short1.d
+7620283ae66569c459a5b78921e6a0b5 ld/testsuite/ld-arm/jump-reloc-veneers-short2.d
+c3a49e9c9c7b1a702e6ab9c83690636c ld/testsuite/ld-arm/jump-reloc-veneers.s
+aaeacb4c7723efa0592090d8e28aa38b ld/testsuite/ld-arm/jump19.d
+5fdb667b4eeed2b5a5e365f6157f7f53 ld/testsuite/ld-arm/jump19.s
+df7218912027fcf0e0f3f4faadca956e ld/testsuite/ld-arm/mixed-app-v5.d
+8151f417c87740a964fe3c72a4045469 ld/testsuite/ld-arm/mixed-app.d
+aefaac7192d3e47c827da951f89d2bae ld/testsuite/ld-arm/mixed-app.r
+7b3c6bc9827724b36f7df270af0ec4f5 ld/testsuite/ld-arm/mixed-app.s
+fc0e72844d705d53a0759effb558cc33 ld/testsuite/ld-arm/mixed-app.sym
+cf233c6eea8b0a23470d56a668f7c16f ld/testsuite/ld-arm/mixed-lib.d
+5ca1ed7123c1056cecf2efef0273bab5 ld/testsuite/ld-arm/mixed-lib.r
+d01eec610829680bb4e52a46bed255bc ld/testsuite/ld-arm/mixed-lib.s
+4b64293ae091d7fd6a1bf20ce11c3050 ld/testsuite/ld-arm/mixed-lib.sym
+20050f6942c1fc5bfdfdcd1b03dbfa8b ld/testsuite/ld-arm/movw-merge.d
+b79bc8448d795012b328ada735e12bee ld/testsuite/ld-arm/movw-merge.s
+53c96f044e7c3b502316c9f7f71e4bff ld/testsuite/ld-arm/movw-shared-1.d
+0bb28944ba6ceccc86437d91e86f7e26 ld/testsuite/ld-arm/movw-shared-1.s
+44c6dee9296cd27e5715b8175d18a234 ld/testsuite/ld-arm/movw-shared-2.d
+0a3da298be90f8c762211f45c7b68480 ld/testsuite/ld-arm/movw-shared-2.s
+98075e266e56c001a5e76a193b4a5241 ld/testsuite/ld-arm/movw-shared-3.d
+b943013da10e5665a271e33dbb520a58 ld/testsuite/ld-arm/movw-shared-3.s
+1aeba25e0021ee087a2b313ad603c0d2 ld/testsuite/ld-arm/movw-shared-4.d
+26671559674ff919a52ed229aadcb0c5 ld/testsuite/ld-arm/movw-shared-4.s
+4e3e9b2de84e9e9e6e81f7a3b2343cf4 ld/testsuite/ld-arm/preempt-app.s
+b63a115e69a4b335d3861f55c8f19568 ld/testsuite/ld-arm/preempt-app.sym
+38f453d1542cd24062978039b7c38765 ld/testsuite/ld-arm/reloc-boundaries.d
+baff38a8a30acb8c72fd4e7acafc2360 ld/testsuite/ld-arm/reloc-boundaries.s
+0c32e8b3b51d8548cdf9c775ee4797ca ld/testsuite/ld-arm/rodata-merge-map.ld
+1dfbf8ddc172e11c1d7dea588d0dcb28 ld/testsuite/ld-arm/rodata-merge-map.sym
+c1d6d8c92f02883092e4e8e85637ae8d ld/testsuite/ld-arm/rodata-merge-map1.s
+4a214a61ded90df27f5185a5ccffc5bf ld/testsuite/ld-arm/rodata-merge-map2.s
+bd696fad986a54fe1a3319d818b2ccf5 ld/testsuite/ld-arm/rodata-merge-map3.s
+ad5f1e26b66959f573e3bafa40758fd0 ld/testsuite/ld-arm/script-type.ld
+1d6496cff1fd71f774eb4cd7314249ac ld/testsuite/ld-arm/script-type.s
+1037f3c433338a4151ab923181aa8cb3 ld/testsuite/ld-arm/script-type.sym
+4efee958adfc0ada1f44fe3586a51db0 ld/testsuite/ld-arm/symbian-seg1.d
+2408cc9c760cf2059e964dff9f670006 ld/testsuite/ld-arm/symbian-seg1.s
+73ca4e992f5c70fb94a749aa53dbfb0d ld/testsuite/ld-arm/thumb-entry.d
+d4dd7676d18d8440e8dc78137276c2ba ld/testsuite/ld-arm/thumb-entry.s
+b0c5e71c9db3f59925be321612cf76dd ld/testsuite/ld-arm/thumb-rel32.d
+7f7c412a10dcd39feff7bfecbf3f875d ld/testsuite/ld-arm/thumb-rel32.s
+c5f7da09b76dfa38dc2ec27d2c83aeb0 ld/testsuite/ld-arm/thumb1-bl.d
+03eb0ba2c48ae2667d7a6ca898ea3beb ld/testsuite/ld-arm/thumb1-bl.s
+fa468fe009f1677ac87319602ae33155 ld/testsuite/ld-arm/thumb2-b-interwork.d
+ea814a50dd2b1f41b064d29387e4334f ld/testsuite/ld-arm/thumb2-b-interwork.s
+84a965aac564bb8b945b73ea75d6be8f ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad-noeabi.d
+aec7fd23eaaa64face2517c737c668a2 ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad.d
+892983309cd404fe52d55aa6979846fa ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad.s
+84a965aac564bb8b945b73ea75d6be8f ld/testsuite/ld-arm/thumb2-bl-bad-noeabi.d
+22ec46a0ec640631ff7fa0088354ede6 ld/testsuite/ld-arm/thumb2-bl-bad.d
+ddfacb39f8a0959e97c0d694a9f8c315 ld/testsuite/ld-arm/thumb2-bl-bad.s
+e6163d43f2569f249ff2b44adb24cd88 ld/testsuite/ld-arm/thumb2-bl-blx-interwork.d
+f637f4d61a039a90caa5d1aff2d1976d ld/testsuite/ld-arm/thumb2-bl-blx-interwork.s
+49fb48a76716c00fe6475c76c647c986 ld/testsuite/ld-arm/thumb2-bl-undefweak.d
+ba0a6eb7d3d568f8fe1d9293b5420aea ld/testsuite/ld-arm/thumb2-bl-undefweak.s
+ea21f941569b3de3ec0437495eefc779 ld/testsuite/ld-arm/thumb2-bl-undefweak1.d
+98fad64aa58fb2a2eb75d6eb58917adb ld/testsuite/ld-arm/thumb2-bl-undefweak1.s
+48deddf7c68baac25325992849fe5814 ld/testsuite/ld-arm/thumb2-bl.d
+9aba264c21b5441d2084b6e18b0aeaca ld/testsuite/ld-arm/thumb2-bl.s
+f0cc25e5eb5c416520f7c835abd1f32d ld/testsuite/ld-arm/tls-app.d
+d56bf5cfb58a3c8990894de5e0e0a5bc ld/testsuite/ld-arm/tls-app.r
+bc4dc7515cb97050d78993226b2fedb8 ld/testsuite/ld-arm/tls-app.s
+e48dc88517162bab90d0825db6b298c8 ld/testsuite/ld-arm/tls-descrelax-be32.d
+e26ad13f6391672c2cf17129d383bc92 ld/testsuite/ld-arm/tls-descrelax-be32.s
+5240c9e8d92aab0f960a67e693ef800a ld/testsuite/ld-arm/tls-descrelax-be8.d
+55af24eb165c542fdcb17f75e4c05af3 ld/testsuite/ld-arm/tls-descrelax-be8.s
+5240c9e8d92aab0f960a67e693ef800a ld/testsuite/ld-arm/tls-descrelax-v7.d
+55af24eb165c542fdcb17f75e4c05af3 ld/testsuite/ld-arm/tls-descrelax-v7.s
+6374aa68ce57f26b79d5d1dfd141cbb0 ld/testsuite/ld-arm/tls-descrelax.d
+1a44773a87c9dd55baf70236b7f36bbf ld/testsuite/ld-arm/tls-descrelax.s
+e9941c02499b4c5cee6880b1e04f3bd9 ld/testsuite/ld-arm/tls-descseq.d
+eea69985e64d1d536f68be2a4b0d2805 ld/testsuite/ld-arm/tls-descseq.r
+10beea88b85a552ae9434a9c77c6feb2 ld/testsuite/ld-arm/tls-descseq.s
+1cd746b24bf84348bebb78feecb93f9b ld/testsuite/ld-arm/tls-gdesc-got.d
+4e23daed336ff2ba1865770eec0ef661 ld/testsuite/ld-arm/tls-gdesc-got.s
+e81c93c74608053df30afa8a74f43f8c ld/testsuite/ld-arm/tls-gdesc-nlazy.g
+2192d8df89dfa1b5c93d4ad23a4e6586 ld/testsuite/ld-arm/tls-gdesc-nlazy.s
+9d0b90cbe9c9d3b2527695568edfe6c7 ld/testsuite/ld-arm/tls-gdesc.d
+bef27081b67787e0d42ae61f07b70849 ld/testsuite/ld-arm/tls-gdesc.r
+26f4d32f325082f087b8db9c219114c1 ld/testsuite/ld-arm/tls-gdesc.s
+65464899069a5af5f066f76718f13be6 ld/testsuite/ld-arm/tls-gdierelax.d
+cf62b197248ab9d838409e15d6ee2f30 ld/testsuite/ld-arm/tls-gdierelax.s
+ba4e19d10bceac591a7eeee7d11eacc6 ld/testsuite/ld-arm/tls-gdierelax2.d
+3b489e07b4e5e83033c20e1a75fb9370 ld/testsuite/ld-arm/tls-gdierelax2.s
+a18d98fc16de076317a8c50b7a75b8d5 ld/testsuite/ld-arm/tls-gdlerelax.d
+21143a3750a8bdadde7606fc95c357dc ld/testsuite/ld-arm/tls-gdlerelax.s
+15871e53d47bb4d23b2b187ac59e3cfa ld/testsuite/ld-arm/tls-lib-loc.d
+a944a12e800e231aa6cd77fe3275c993 ld/testsuite/ld-arm/tls-lib-loc.r
+4117623b509f123c9d526ac1afe9696f ld/testsuite/ld-arm/tls-lib-loc.s
+3c149ee6b006a1d5257be8b708f437ea ld/testsuite/ld-arm/tls-lib.d
+a3b71f6b593b007133a9d485c840d289 ld/testsuite/ld-arm/tls-lib.r
+b938da503cc6ccc3e40f0fd0651aeecf ld/testsuite/ld-arm/tls-lib.s
+2481238e1b7c2aa834c7cc697cb58c39 ld/testsuite/ld-arm/tls-longplt-lib.d
+4968ac3a96a401547e95a5a259caeca8 ld/testsuite/ld-arm/tls-longplt-lib.s
+30b46a546a6bec9f6c8a88b66f6afe1c ld/testsuite/ld-arm/tls-longplt.d
+72558e033ac20ff5f99511c5209bd01b ld/testsuite/ld-arm/tls-longplt.s
+870dd314c9f6decb751fc33626b65ad0 ld/testsuite/ld-arm/tls-mixed.r
+8d8c37619852fada3b1c587ce2548776 ld/testsuite/ld-arm/tls-mixed.s
+181d153cf20c1c761349a3c0d340f0b3 ld/testsuite/ld-arm/tls-thumb1.d
+24eed11e2f5ae18adb26a781288e0783 ld/testsuite/ld-arm/tls-thumb1.s
+d6c5be1332f3c510766e9c2e60f8dccf ld/testsuite/ld-arm/unresolved-1-dyn.d
+4d6f6ddc10a1b7d5c359a0ba2b1cb60e ld/testsuite/ld-arm/unresolved-1.d
+814783ce65d5180dbc97af88aa6ef3c2 ld/testsuite/ld-arm/unresolved-1.s
+98155639616ff023b84fc16a39af4d68 ld/testsuite/ld-arm/unwind-1.d
+a08d4fbc9da6302600541688e261923b ld/testsuite/ld-arm/unwind-1.s
+5d6f851cedb14ff9b6c9f767cb12111a ld/testsuite/ld-arm/unwind-2.d
+138558e0008e2e92277834247000ecd7 ld/testsuite/ld-arm/unwind-2.s
+92a18d52f70c07434af5a6b84a535f43 ld/testsuite/ld-arm/unwind-3.d
+6802a9d6b277b3b6a1fdf5e742ac5ede ld/testsuite/ld-arm/unwind-3.s
+4ae8b36ad194d5d581a09f41c0980fa4 ld/testsuite/ld-arm/unwind-4.d
+64efc6e0e87353b819851d03aa3d7b79 ld/testsuite/ld-arm/unwind-4.s
+9988e93507bcb10423cf8ecd2f1522cf ld/testsuite/ld-arm/unwind-5.d
+d428b81188e7ad0fefeacd7cd445f162 ld/testsuite/ld-arm/unwind-5.s
+fb429475715715627aafc8a32e2320f1 ld/testsuite/ld-arm/use-thumb-lib.s
+04931de298951b43360f67418be6ac25 ld/testsuite/ld-arm/use-thumb-lib.sym
+d05cf65a4bf68d1269500f3c0a331561 ld/testsuite/ld-arm/vfp11-fix-none.d
+5fd7b4a3fe5eb83c567f709b955c8469 ld/testsuite/ld-arm/vfp11-fix-none.s
+077270d01ab3ff154291a1c6bd576600 ld/testsuite/ld-arm/vfp11-fix-scalar.d
+cfa0eb1c39adcd6d90a8a20419966b3b ld/testsuite/ld-arm/vfp11-fix-scalar.s
+c49f3775666d12290e32b7ec2839acbc ld/testsuite/ld-arm/vfp11-fix-vector.d
+a843e8a871249735f03a3e0e9ed4514a ld/testsuite/ld-arm/vfp11-fix-vector.s
+a92f6f2d81ed7ababe27bb765db07789 ld/testsuite/ld-arm/vxworks1-lib.dd
+e79bf538427185b3ca75d00211102266 ld/testsuite/ld-arm/vxworks1-lib.nd
+ec444a82eab88a95636abf290c7ac6b7 ld/testsuite/ld-arm/vxworks1-lib.rd
+5f4070589555cbed355250f9deb0093f ld/testsuite/ld-arm/vxworks1-lib.s
+6dbdc5d4346169b9a3af98707d77be72 ld/testsuite/ld-arm/vxworks1-lib.td
+57e13e14adacc62cab22da622bbcb01e ld/testsuite/ld-arm/vxworks1-static.d
+6ab0beb8dd54b101c447b75ed090a3b2 ld/testsuite/ld-arm/vxworks1.dd
+ff6cb82bd3dda9cb4328b50f2d88614e ld/testsuite/ld-arm/vxworks1.ld
+b2237cabfb8182cf4769e450cb67a95f ld/testsuite/ld-arm/vxworks1.rd
+045aed3105ae55b645a8715f198c3860 ld/testsuite/ld-arm/vxworks1.s
+165ed1561458c0973255f985be876845 ld/testsuite/ld-arm/vxworks2-static.sd
+e191cf28ec5e3f69a0d89dd051130471 ld/testsuite/ld-arm/vxworks2.s
+7afb4e2fc8be35ad985dcb2e21b7cbef ld/testsuite/ld-arm/vxworks2.sd
+0b6c7ae053acc7186dacf752dd1dc367 ld/testsuite/ld-auto-import/auto-import.exp
+870d0c9532413d40575e2e793eaf0f48 ld/testsuite/ld-auto-import/client.c
+bc025b399dc1bf0e5fe050e08b235dff ld/testsuite/ld-auto-import/dll.c
+19339110affdee3fe8f8341e17989a1f ld/testsuite/ld-bootstrap/bootstrap.exp
+4b9f7ea09166acbf0b5d72c88c5b3956 ld/testsuite/ld-cdtest/cdtest-bar.cc
+74c52f98695bf1f3c1a15e820e785464 ld/testsuite/ld-cdtest/cdtest-foo.cc
+0329b786063f247527a5f98c53a3ea66 ld/testsuite/ld-cdtest/cdtest-foo.h
+42bc325afd7f1f937f20faa53c9f1490 ld/testsuite/ld-cdtest/cdtest-main.cc
+cc8e7cf87148e04a2dd8f166c3f3cfaa ld/testsuite/ld-cdtest/cdtest-nrv.dat
+cfb423f4424fe65c2fe45d99c49ff558 ld/testsuite/ld-cdtest/cdtest.dat
+c858af1140e2f6b05a7c89c75cb910c3 ld/testsuite/ld-cdtest/cdtest.exp
+328c5cac80b76bd422b0b77d5517d175 ld/testsuite/ld-checks/asm.s
+6903795a135ff658efd5d5e470d27451 ld/testsuite/ld-checks/checks.exp
+536a4d2e63692344109849b984f9da06 ld/testsuite/ld-checks/script
+028a3391ab77669d3571d4f6756e6e24 ld/testsuite/ld-cris/badgotr1.d
+330f51428dc34d1de15e854517e1db7e ld/testsuite/ld-cris/comref1.s
+87ee1f75d0ce21f1354697084feafac9 ld/testsuite/ld-cris/cris.exp
+bd2d934b7debc19ede2cb90e437186e7 ld/testsuite/ld-cris/def2.d
+aa4bf9d2db3ecc2102472e46f0495504 ld/testsuite/ld-cris/def3.d
+0ecfc29d8b495c3dbade6c4ec9e66613 ld/testsuite/ld-cris/dso-1.s
+8f2d8ccdebc59ed5edeed9a38532f222 ld/testsuite/ld-cris/dso-1b.s
+f73d09ac7bd8fdc83362c30cec088e28 ld/testsuite/ld-cris/dso-2.s
+0963170a19c851b655a44c694bdc09d2 ld/testsuite/ld-cris/dso-3.s
+555778245510ec8cd1e0fe59059905d5 ld/testsuite/ld-cris/dso12-pltdis.d
+9b4414953bd917a57878326c0303aebb ld/testsuite/ld-cris/dsofnf.s
+d7d2a11598bb675c9e852af7bf18f915 ld/testsuite/ld-cris/dsofnf2.s
+77b561688e2547f8d68e5cd9260c172e ld/testsuite/ld-cris/dsov32-1.s
+b3d1c880e11c1d592e10fb5aedb655f5 ld/testsuite/ld-cris/dsov32-2.s
+434758c86f0a616b126186d73a6895f7 ld/testsuite/ld-cris/dsov32-3.s
+bba3177ca04b5c1a8fab36de034931e1 ld/testsuite/ld-cris/dsov32-4.s
+5e0cd72ef03ae66100a223c3ac1ff509 ld/testsuite/ld-cris/euwref1.s
+5918576f278343302911679d578b1f23 ld/testsuite/ld-cris/expalltst3
+1023eb64e4465edf00138aaf8d7280ca ld/testsuite/ld-cris/expdref1.s
+c4996b40bccabdff3eb66c4ed510bd21 ld/testsuite/ld-cris/expdref2.s
+107917d9538f44957dfa2240c5ec058e ld/testsuite/ld-cris/expdref3.s
+ed035711171f1f7d20f0d20828fe5e50 ld/testsuite/ld-cris/expdref4.s
+f66bb017aa48f260a1111b20ff3b2ed0 ld/testsuite/ld-cris/expdyn1.d
+b40cfb11612986fe52121f5141810bb3 ld/testsuite/ld-cris/expdyn1.s
+eec3aa679c6a20c50efb060106717e8f ld/testsuite/ld-cris/expdyn1w.s
+a5cd0b3efb27eaa4893540fec9130357 ld/testsuite/ld-cris/expdyn2.d
+53bdb4432f1b5bf2af64a42900a59fbf ld/testsuite/ld-cris/expdyn2.s
+b136e897cab9add18604fa48cd5e6462 ld/testsuite/ld-cris/expdyn3.d
+47647f67fceb63ae3022ecdd1272680f ld/testsuite/ld-cris/expdyn4.d
+c59ef5bb4570c9ab1da147ed9c4e8a78 ld/testsuite/ld-cris/expdyn5.d
+531df4286483200742350c41e7fa25e2 ld/testsuite/ld-cris/expdyn6.d
+195c4ab4f311be98df9f88092201e9a7 ld/testsuite/ld-cris/expdyn7.d
+5e78e7ddf1b5aa917ea617a17235447f ld/testsuite/ld-cris/globsym1ref.s
+7d59c2f5e9279b6ace5aa4a9b7ad4db5 ld/testsuite/ld-cris/globsymw1.s
+bbdcdd1bad770e5eb3cf979eda64fa56 ld/testsuite/ld-cris/globsymw2.s
+5c651c2af895d93abf210b3ab6171465 ld/testsuite/ld-cris/got7.s
+680f085d12e3a89850ae59aeea73309c ld/testsuite/ld-cris/gotplt1.d
+c7799e2cd7102cb6c0575d9d85567503 ld/testsuite/ld-cris/gotplt2.d
+86bb0aa4b5c096a2ffdf95982b1fd2ea ld/testsuite/ld-cris/gotplt3.d
+beb4c53051cda32749a8b4628fb19f16 ld/testsuite/ld-cris/gotrel1.s
+16ac0aa5032e8dc85780bb8073131840 ld/testsuite/ld-cris/gotrel2.s
+d39e08b23d313014d2f12c4d29cb7e8a ld/testsuite/ld-cris/hiddef1.d
+2aeafbfc344edf57eff2027c2cfbe1d7 ld/testsuite/ld-cris/hiddef1.s
+0a2c0b67fcb79af873992b8aa6721e5b ld/testsuite/ld-cris/hide1
+5ba5524fb07f1ca49873a2746cab764a ld/testsuite/ld-cris/hidedsofns2468
+dcfc7b3526cca37684a42864dee9ed18 ld/testsuite/ld-cris/hidrefgotplt1.s
+fb1117b690962188968b5f2eb57211b8 ld/testsuite/ld-cris/init.s
+d0a2619e753e772735ce264e008ae124 ld/testsuite/ld-cris/ldsym1.d
+1ed92df704f4d4b8981af6c0a96b6da9 ld/testsuite/ld-cris/libdso-1.d
+757a5599ed4e5b03bf2defff6d25cbb1 ld/testsuite/ld-cris/libdso-10.d
+49bd70b15a95ac22ab5b3d8cd6f660de ld/testsuite/ld-cris/libdso-11.d
+4b4cb09269c192dda508bc10c140e903 ld/testsuite/ld-cris/libdso-12.d
+da70ad049e99c494df72e4635cfc5bc9 ld/testsuite/ld-cris/libdso-12b.d
+e896fe8c9f77152e2e3e0a1d5a1ed4aa ld/testsuite/ld-cris/libdso-12c.d
+5dc6af549ead00e0438dffdb7081a7a7 ld/testsuite/ld-cris/libdso-13.d
+00e56354e0d53d7c1aedc4f0f31d851d ld/testsuite/ld-cris/libdso-13b.d
+a8c3eedaaf75d72b3d2f58fa1e737ef8 ld/testsuite/ld-cris/libdso-14.d
+11740ef0d10f19c9cf5e51f5f38c889c ld/testsuite/ld-cris/libdso-15.d
+e7dff018a7d4e890e31c9b048c280178 ld/testsuite/ld-cris/libdso-15b.d
+08d349d68dae38f19732600cb6f2c92c ld/testsuite/ld-cris/libdso-1b.d
+1d92d10ce3151f36e6b0ffc0eeab1e11 ld/testsuite/ld-cris/libdso-1c.d
+0aff47ebdec98ce75841046c25913506 ld/testsuite/ld-cris/libdso-1d.d
+9b34e20b935565486f8345974db5db02 ld/testsuite/ld-cris/libdso-2.d
+aab518362b600fa763c58722941fa94e ld/testsuite/ld-cris/libdso-3.d
+3c92543c2f334c154ac36ccf470b0ef1 ld/testsuite/ld-cris/libdso-4.d
+592765f9d065627f0d3b5791347a54f0 ld/testsuite/ld-cris/locref1.d
+390593b2a658117399e7dbea69f03f64 ld/testsuite/ld-cris/locref1.s
+7814db4a10eb8a2c258605bdf2795e27 ld/testsuite/ld-cris/locref2.d
+fc2217195f7483a3ca55f8e9c1b05ee0 ld/testsuite/ld-cris/locref2.s
+689a0e95a0903b7673ee4db103ac323f ld/testsuite/ld-cris/move-1.s
+bc987ce36b491f13c24922047c76a1a3 ld/testsuite/ld-cris/nodyn4.d
+938de1a906afab6b795f7c4b709adc72 ld/testsuite/ld-cris/nodyn5.d
+7713000ae79494a9864d233f100b51d8 ld/testsuite/ld-cris/noglob1.d
+a4f4d34c69e2ee06e8e6cd8f6d564f9c ld/testsuite/ld-cris/noglob1.s
+8aa847fbe970d2b7c0eb26e36c0cac6f ld/testsuite/ld-cris/noov.d
+fb7be150fec11a8e315c5a9e92434af9 ld/testsuite/ld-cris/noov.s
+b35b21ec86ab9f821fae71a3888db73b ld/testsuite/ld-cris/pcrelcp-1.d
+f05b5e947853c848ce3b16ea72f89956 ld/testsuite/ld-cris/pcrelcp-1.s
+60783e487d9ed3277baed67d9a3ff8a2 ld/testsuite/ld-cris/pic-gc-72.d
+2e9ff32adf3155417cb25ee10251e6ec ld/testsuite/ld-cris/pic-gc-72.s
+15f4451f37cab28561dc61aca124ee3b ld/testsuite/ld-cris/pic-gc-73.d
+3096bcd8f2a8aac9637f270fcc05ea83 ld/testsuite/ld-cris/pic-gc-73.s
+30b9687806ce0305c161bb5c7128bd48 ld/testsuite/ld-cris/pv32-1.d
+151fbc0352fdf4668c9973dd14737265 ld/testsuite/ld-cris/pv32.s
+e589a68be11f502a3cf9e1d56fc8bca2 ld/testsuite/ld-cris/stabs1.s
+393141b1e937eeaf51caf8f49c50c3a8 ld/testsuite/ld-cris/start1.s
+302d5ad7fcd24be5673cddacba2f5303 ld/testsuite/ld-cris/tls-commx.s
+64cec56cb5f36b713d11787bae5d2a48 ld/testsuite/ld-cris/tls-dso-dtpoffd2.d
+33be652cd4e71798bf35fc31a113a311 ld/testsuite/ld-cris/tls-dso-dtpoffd4.d
+f500c9e0c1fc83ca25df07e515eca113 ld/testsuite/ld-cris/tls-dso-x1x2-1.d
+dc6a7771a81b22e57b5cc2723dd73819 ld/testsuite/ld-cris/tls-dso-xz-1.d
+d812a514a905d85452cb5d34e99c0b69 ld/testsuite/ld-cris/tls-dtpoffdx.s
+3da8008017f62a902040791e3996d1e3 ld/testsuite/ld-cris/tls-dtprelm.s
+da2557694d5684950af27d35ac4183a8 ld/testsuite/ld-cris/tls-e-20.d
+6ff1dec1d7491654e5dde42cbca47d3d ld/testsuite/ld-cris/tls-e-20a.d
+550a13c4e70ae123db6f471fbcb96ca1 ld/testsuite/ld-cris/tls-e-21.d
+23f2ffdceafd751d6db07fda526ef9a4 ld/testsuite/ld-cris/tls-e-22.d
+5699e4ea4ad88563da8ae26484bd289e ld/testsuite/ld-cris/tls-e-23.d
+45680291556e5a4ba2313535a7d73029 ld/testsuite/ld-cris/tls-e-66.d
+f8a9f502d5519161ef4d2ee8ab111e17 ld/testsuite/ld-cris/tls-e-80.d
+20471f1fcc2d0ae22084287775c19148 ld/testsuite/ld-cris/tls-e-dtpoffd1.d
+bfe76a492985c63a7ab23578af135953 ld/testsuite/ld-cris/tls-e-dtpoffd3.d
+7d282e67cadfe47360fd57b5f93b84c4 ld/testsuite/ld-cris/tls-e-tpoffcomm1.d
+50342aefaed14ebfd9238897c30e7168 ld/testsuite/ld-cris/tls-e-tpoffcomm1.s
+d25fd14c85c538cf35c5ff8f326d580f ld/testsuite/ld-cris/tls-err-20x.d
+fd84a9d934bc33bf2a0899abb35119ea ld/testsuite/ld-cris/tls-err-24.d
+ac2f392c56e121a2992568a8ec5685b9 ld/testsuite/ld-cris/tls-err-25.d
+249ae728a964f72799d794decaf0f97e ld/testsuite/ld-cris/tls-err-26.d
+2000384372d793465e8407a01dede5f1 ld/testsuite/ld-cris/tls-err-27.d
+e75648da1cb679edcd6097b483c69f38 ld/testsuite/ld-cris/tls-err-28.d
+40aba2abf4871c67fe605c2e3f524f6b ld/testsuite/ld-cris/tls-err-29.d
+0a6bdf8b30dc849717d88df3d2285ea5 ld/testsuite/ld-cris/tls-err-31.d
+cc6455910643b8309875795ef56a889f ld/testsuite/ld-cris/tls-err-33.d
+82a5120fd71f8d7f0e55082587f6ba46 ld/testsuite/ld-cris/tls-err-35.d
+cb48040bea3a21299a82197556b490eb ld/testsuite/ld-cris/tls-err-37.d
+a23c3ae051822709a0240ef9dd6e4bae ld/testsuite/ld-cris/tls-err-39.d
+ea9218010773966f0e2e804756f2727e ld/testsuite/ld-cris/tls-err-40.d
+8e04344e983d9443faa4f128ac989355 ld/testsuite/ld-cris/tls-err-41.d
+8feda78e2647cc3ad4e72bc5401e251e ld/testsuite/ld-cris/tls-err-43.d
+7669ac8d48e9a4647a9bd55efc25fa8e ld/testsuite/ld-cris/tls-err-44.d
+7407258e4f28144cc60d17ca52b18568 ld/testsuite/ld-cris/tls-err-45.d
+a900fae48f50140f33938acc5d2a8098 ld/testsuite/ld-cris/tls-err-47.d
+7fb36c6ab26bc63467d44558268235b9 ld/testsuite/ld-cris/tls-err-48.d
+a845720bddc125b9d3b668ef7d6e0662 ld/testsuite/ld-cris/tls-err-49.d
+9925f0c8c091f67358d5df5ccaecc3a0 ld/testsuite/ld-cris/tls-err-51.d
+efbc061f20d37c11c641f7b5a9f469bf ld/testsuite/ld-cris/tls-err-52.d
+1ae5a636fd8f939babf5e4791a634ea0 ld/testsuite/ld-cris/tls-err-53.d
+d1e2c235bd6da8173eca1754c937cfa8 ld/testsuite/ld-cris/tls-err-55.d
+d94645c2ec7630ea559ffdfb83353bfb ld/testsuite/ld-cris/tls-err-55.s
+6d9956249704da51d6f7bb503173e034 ld/testsuite/ld-cris/tls-err-56.d
+e886bfad99234c127ce82d391daac54c ld/testsuite/ld-cris/tls-err-56.s
+cd50a67b19a87416f40193b60c8c8825 ld/testsuite/ld-cris/tls-err-62.d
+9cea49f0088bd8d2226d69c83c8172d4 ld/testsuite/ld-cris/tls-err-62.s
+b9f4c772858366872f8725bab1f38a94 ld/testsuite/ld-cris/tls-err-65.d
+df2f4c172fbf7f7cb669fe49f1ccceee ld/testsuite/ld-cris/tls-err-67.d
+2b7b5d592cce606b75e3080ce6aef07c ld/testsuite/ld-cris/tls-err-77.d
+20655696d21d18bef060b7bd00099498 ld/testsuite/ld-cris/tls-gc-68.d
+80929f16eabf0d775b863ef38ba1b236 ld/testsuite/ld-cris/tls-gc-69.d
+23457c141d1f55486946097916b66566 ld/testsuite/ld-cris/tls-gc-70.d
+5dfc1223fc31c9204e1dfc27bbdb86e7 ld/testsuite/ld-cris/tls-gc-71.d
+1d334e4fd0ce9bb55b12f88888b5a502 ld/testsuite/ld-cris/tls-gc-71.s
+43a06d9019d1442de0ecbaa62c2eefa1 ld/testsuite/ld-cris/tls-gc-75.d
+4d0e9b1919f2a65d32cf9f8fa23d4069 ld/testsuite/ld-cris/tls-gc-76.d
+77931d8d14cb883d864cf6f6eeb28aeb ld/testsuite/ld-cris/tls-gc-76.s
+9ffeef549454abf1fc505765aef024ef ld/testsuite/ld-cris/tls-gc-79.d
+9dbcc4e2aa2a2bfadcc47e3aabb4821d ld/testsuite/ld-cris/tls-gd-1.d
+a2271e5313c908cec57856570e5ce4ec ld/testsuite/ld-cris/tls-gd-1.s
+bcc014751d82a34435b277d6d103e0d1 ld/testsuite/ld-cris/tls-gd-1h.d
+013ab22b01c3a2e7addabc40ccfdd635 ld/testsuite/ld-cris/tls-gd-2.d
+0928af50e393da67c7675370e241fd4b ld/testsuite/ld-cris/tls-gd-2.s
+2f488f3319797e402be4a9e9d5770e17 ld/testsuite/ld-cris/tls-gd-2h.d
+5aef151f40a450075aac047e3c9b2a25 ld/testsuite/ld-cris/tls-gd-3.d
+858c4140c6d2cde73e0219c69448aafb ld/testsuite/ld-cris/tls-gd-3.s
+82ba41c6703cd9b4800d512ac9c0b348 ld/testsuite/ld-cris/tls-gd-3h.d
+cb0345dba3852c34c011ac9b6da4f6b2 ld/testsuite/ld-cris/tls-gdgotrelm.s
+3db5f93b09db85fabad8b000e3748640 ld/testsuite/ld-cris/tls-global-74.d
+6518ab26a2deb12bbb04f8289b9c24a4 ld/testsuite/ld-cris/tls-gottprelm.s
+f2bf540024ba0fe56c607163131bc430 ld/testsuite/ld-cris/tls-hx.s
+668cd5cd04546080138484945ce7cecf ld/testsuite/ld-cris/tls-hx1x2.s
+adf684bb117f6d02cdb37445d5f7f232 ld/testsuite/ld-cris/tls-ie-10.d
+e207125a60e56c2e4c8101e668efe438 ld/testsuite/ld-cris/tls-ie-10.s
+e63067ed8857e6876262122ddc1d10cd ld/testsuite/ld-cris/tls-ie-11.d
+ccc553a960af1b2e18aa479f63b11980 ld/testsuite/ld-cris/tls-ie-11.s
+e4e75df63a89532bfde872582fd69378 ld/testsuite/ld-cris/tls-ie-78.d
+db1276dec83b53fda274ef3fd7d6e91f ld/testsuite/ld-cris/tls-ie-8.d
+ad0737dc62f589dcdcd74c47eee58e47 ld/testsuite/ld-cris/tls-ie-8.s
+fc54d68c890df7735b5e1e8c4990fd0b ld/testsuite/ld-cris/tls-ie-8e.s
+0583bc0aaf5bb2d6824ca8b08e83471d ld/testsuite/ld-cris/tls-ie-8e1.d
+26540a7b797011e40c4be2e7e37a1b4b ld/testsuite/ld-cris/tls-ie-9.d
+c25a5e09a76b70b58e92c63f7d752a29 ld/testsuite/ld-cris/tls-ie-9.s
+f1a3d405e57145ffb9e5efa444f4d490 ld/testsuite/ld-cris/tls-js1.d
+098d95ca99ad85464ddbbf22aac5245f ld/testsuite/ld-cris/tls-ld-4.d
+6d1a352e54fc0c6b169cc21bb0772013 ld/testsuite/ld-cris/tls-ld-4.s
+f0b3914545cae5bbad6b39b763369725 ld/testsuite/ld-cris/tls-ld-5.d
+6bced6cf5e82a90f165749c584a55261 ld/testsuite/ld-cris/tls-ld-5.s
+4320d87e90254c722a99c3c898b2cac1 ld/testsuite/ld-cris/tls-ld-6.d
+7e58dc96f6a97a2274d7c716bf7c15e7 ld/testsuite/ld-cris/tls-ld-6.s
+530cb9100fc390888b5b76d08480a5f0 ld/testsuite/ld-cris/tls-ld-7.d
+894b89a4cffadd26d735eaa3366bd014 ld/testsuite/ld-cris/tls-ld-7.s
+4f58d5b9672cebff975bed7a0c21dc8e ld/testsuite/ld-cris/tls-ldgd-14.d
+679fc1b710b09d032741fd6731445578 ld/testsuite/ld-cris/tls-ldgd-14.s
+96ce57b0500c9cbe580671d5cfe04dae ld/testsuite/ld-cris/tls-ldgd-15.d
+9797d6ca1f85e6324277c45b4a58601d ld/testsuite/ld-cris/tls-ldgd-15.s
+d973bab15935e4e25edced51c1f5a01f ld/testsuite/ld-cris/tls-ldgde-14.d
+0cd1e25768b29a2a5747b0bb6cad0651 ld/testsuite/ld-cris/tls-ldgde-15.d
+3fa67c64792bec501fb1db6e84bd34e1 ld/testsuite/ld-cris/tls-ldgdex-14.d
+0e7a22ba54362bde08475773967bb6a6 ld/testsuite/ld-cris/tls-ldgdex-15.d
+72f8b3d05ca40293b779dedb62650d95 ld/testsuite/ld-cris/tls-ldgdx-14.d
+0c27b3f4594dc269931e211405d20e35 ld/testsuite/ld-cris/tls-ldgdx-15.d
+d88ce0a5efe8a0b8cfe57e055411488c ld/testsuite/ld-cris/tls-le-12.d
+4640724276d2f40c90d12dffdc45ddd9 ld/testsuite/ld-cris/tls-le-12.s
+9972aa58ba49c913b16b5edde9b55dc0 ld/testsuite/ld-cris/tls-le-12s.d
+c1560db52d7629b28cacb1185f5a2711 ld/testsuite/ld-cris/tls-le-12s.s
+def01c8bde71ee583cba402a7a0508c9 ld/testsuite/ld-cris/tls-le-13.d
+d2772b6bc8dc511b37e72de179c8b901 ld/testsuite/ld-cris/tls-le-13.s
+1b1dece4a94a821d039c77258129116f ld/testsuite/ld-cris/tls-le-13s.d
+b48f5cda2e4bc1a02b0c0ec83363bef6 ld/testsuite/ld-cris/tls-le-13s.s
+cfd5ca14d3b9c67630913f6f556f6e01 ld/testsuite/ld-cris/tls-legd-16.d
+924ef2d81181b9a2870dd90a113a9723 ld/testsuite/ld-cris/tls-legd-16.s
+2691dca3d6824a6b26fd7722f8ee4740 ld/testsuite/ld-cris/tls-legd-17.d
+1b1167930e705405da3c2773e86dede1 ld/testsuite/ld-cris/tls-legdx-16.d
+7371c767359bead9ea2a9916193d8750 ld/testsuite/ld-cris/tls-legdx-17.d
+79d00e807ecfa98de4d7fe40d03a6925 ld/testsuite/ld-cris/tls-leie-18.d
+14265ec140d4a3e86f2ac5ff3c9d401e ld/testsuite/ld-cris/tls-leie-19.d
+3b30fa40c56ef891e60237ed38036a76 ld/testsuite/ld-cris/tls-leie-19.s
+74d9462640882b9e83c1056cc84edfa5 ld/testsuite/ld-cris/tls-local-54.d
+0fb2c91adbdcb3206ae06870de126ede ld/testsuite/ld-cris/tls-local-54.s
+27ccd8d59b26dff43911763c80597c65 ld/testsuite/ld-cris/tls-local-57.d
+7357194b45b00da3f4a3368f07173709 ld/testsuite/ld-cris/tls-local-57.s
+d5dd9368c65533e2ee958588cf4310e2 ld/testsuite/ld-cris/tls-local-58.d
+fc4152ffcff2e383c0c9423036a9ebdd ld/testsuite/ld-cris/tls-local-58.s
+578ae53d358085af655d374f1b423f7d ld/testsuite/ld-cris/tls-local-59.d
+43fae325509d5bb8b3bde1f46d313005 ld/testsuite/ld-cris/tls-local-59.s
+b1f59664795255cb3e72cdac9091703c ld/testsuite/ld-cris/tls-local-60.d
+0d00ea75131fd21f76af0443680d851d ld/testsuite/ld-cris/tls-local-61.d
+5377cb16b287b10ca274e216e76ee017 ld/testsuite/ld-cris/tls-local-63.d
+e3c2d64ec9c60dfc5e1f4380c2e643ba ld/testsuite/ld-cris/tls-local-64.d
+5fe92b73df12285d048b84b49011ef26 ld/testsuite/ld-cris/tls-ok-30.d
+5266df748d476261b3f50375e9deb7f3 ld/testsuite/ld-cris/tls-ok-32.d
+9d01f78de61c3ef6018352be477b0908 ld/testsuite/ld-cris/tls-ok-34.d
+703573ed2b2da6077075e1337da0b36e ld/testsuite/ld-cris/tls-ok-36.d
+a186fd4a36652812640d662133184bc2 ld/testsuite/ld-cris/tls-tbss64.s
+f98cb18cd863da89209e9351870421da ld/testsuite/ld-cris/tls-tprelm.s
+229a5d7ef3ce59d55cd458cdd9bc7382 ld/testsuite/ld-cris/tls-und-38.d
+7f27376ee3b1492321f4129cc0e3b3c6 ld/testsuite/ld-cris/tls-und-42.d
+a27afaec9ec9e1f38ca71a877ba2ab2a ld/testsuite/ld-cris/tls-und-46.d
+87c6780c84b2dc48348b4f84c4fcdab5 ld/testsuite/ld-cris/tls-und-50.d
+310058ccfc4424f5887c50144e3aff6e ld/testsuite/ld-cris/tls-x.s
+b7b2951b01f82a9fa108819ab29d15bd ld/testsuite/ld-cris/tls-x1x2.s
+20188daeeb47edbf2abda804d72c772d ld/testsuite/ld-cris/tls-z.s
+e10d3dcc56b936d6f1b62a178b0b3222 ld/testsuite/ld-cris/tls128.s
+9b5f4ba7330d0b65a374ce4ef37f5852 ld/testsuite/ld-cris/tls128g.s
+0397aade193de820b7a3d2012e71655e ld/testsuite/ld-cris/undef1.d
+c58ca745186c4bece924a88f288b02ec ld/testsuite/ld-cris/undef2.d
+5fd3e1533841a223eaf9fbd36b233b79 ld/testsuite/ld-cris/undef3.d
+2e48731f84bdc880610e6ca843b9d5b5 ld/testsuite/ld-cris/v10-v32.d
+4f95b9c42d7d9f9fbc0b62acc6b5883b ld/testsuite/ld-cris/v10-va.d
+af80ea10a64ea1db2e3e175cc54f4e9c ld/testsuite/ld-cris/v32-ba-1.d
+6fe1978274028b15612b8c29e55094e1 ld/testsuite/ld-cris/v32-ba-1.s
+aacc56a9cf2df86d1248ccc8017e9047 ld/testsuite/ld-cris/v32-bin-1.d
+6e1f1a177b0ddee8ddefc3d445d9c7d8 ld/testsuite/ld-cris/v32-bin-1.s
+4dd961002adb00a33b78ea6803442126 ld/testsuite/ld-cris/v32-v10.d
+752f3b5be6be178266b8316a9a88a82d ld/testsuite/ld-cris/v32-va.d
+ba34a95bf2c66e449608ee6617642633 ld/testsuite/ld-cris/va-v10.d
+48af179aaf1af4fec96516a80cc9c6cf ld/testsuite/ld-cris/va-v32.d
+b9288b16a367283e15a37e333fd97297 ld/testsuite/ld-cris/warn1.d
+d45bec3bf85d2aaf4821b0ffdccc0d12 ld/testsuite/ld-cris/warn2.d
+3a166d60129bbd19c207498e3844c09f ld/testsuite/ld-cris/warn3.d
+5df413483daafe5459511b97199f9511 ld/testsuite/ld-cris/warn4.d
+15419c07897ceba2e7f39ea0f173b12e ld/testsuite/ld-cris/weakhid.s
+47a48ebba48a5cb8d360306f283a9de4 ld/testsuite/ld-cris/weakhiddso.d
+0327bbd232bb585aea5c5461b9ffae26 ld/testsuite/ld-cris/weakref1.d
+98dd707805424be642ace5cb35055b58 ld/testsuite/ld-cris/weakref2.d
+c33fb1a1e0bd8782eadd7ee557666f5d ld/testsuite/ld-cris/weakref3.d
+0d1059f8894c2b812e0bb921a5b8ffb0 ld/testsuite/ld-cris/weakref4.d
+6886655aeb07410f4a344e7cf7c65447 ld/testsuite/ld-crx/crx.exp
+158760ac80129c2252f3042fef109f0c ld/testsuite/ld-crx/crx.ld
+e53f074773b19a4eccc59cb8a6a1d047 ld/testsuite/ld-crx/reloc-abs32.d
+af866ead95f29dac5b4f5c611888f53d ld/testsuite/ld-crx/reloc-abs32.s
+07ec95f0bb08e6c659d2057d79dcdeb6 ld/testsuite/ld-crx/reloc-imm16.d
+0084b8ad872c12e2a7be00eb8f98e91d ld/testsuite/ld-crx/reloc-imm16.s
+a5c9c0b54cad1488e914499c55278eb7 ld/testsuite/ld-crx/reloc-imm32.d
+1922ef2f5dc94a1fa330ac39838d1344 ld/testsuite/ld-crx/reloc-imm32.s
+94eba9a936aa6c422ad4e1145ae6ba30 ld/testsuite/ld-crx/reloc-num16.d
+182190b715b027b5a6c1d540c2f30f5c ld/testsuite/ld-crx/reloc-num16.s
+a3c38f5bef3c4f3393d89706ee257d8e ld/testsuite/ld-crx/reloc-num32.d
+3b171daa66954b0e4275a2553b3f7dcb ld/testsuite/ld-crx/reloc-num32.s
+06ecce975fa9296eefa5ae4808018565 ld/testsuite/ld-crx/reloc-num8.d
+e0d78086742196af5f70b2913df4ab9a ld/testsuite/ld-crx/reloc-num8.s
+09c4cacdf1025cc747cc0f35d7b64572 ld/testsuite/ld-crx/reloc-regrel12.d
+e7856861e2f6965e4e5064f21c4174c5 ld/testsuite/ld-crx/reloc-regrel12.s
+77b86ca3fc51bee6fd5b373482720500 ld/testsuite/ld-crx/reloc-regrel22.d
+12321019a8582ea1cf50f6e3af92d803 ld/testsuite/ld-crx/reloc-regrel22.s
+5f5e518bb54cbdbd53ec30c650984a73 ld/testsuite/ld-crx/reloc-regrel28.d
+cb3159e28c00f922bb551d0ed9d3bde1 ld/testsuite/ld-crx/reloc-regrel28.s
+44b40e9c2c37bb33120070a689253204 ld/testsuite/ld-crx/reloc-regrel32.d
+6a88a24f0d02fbca35b2ce3298b7ac38 ld/testsuite/ld-crx/reloc-regrel32.s
+01f6f4551c686de2fb0d397e8a4e6bf4 ld/testsuite/ld-crx/reloc-rel16.d
+dbb4d600f3ba3c9f8dc5581043812869 ld/testsuite/ld-crx/reloc-rel16.s
+8b8b1af61b3d471ef8bcb8df5bbf4494 ld/testsuite/ld-crx/reloc-rel24.d
+70b11bcd4b6100b4b4f459fd6cf683da ld/testsuite/ld-crx/reloc-rel24.s
+703d4e4e2ea36d634a0022cc44592335 ld/testsuite/ld-crx/reloc-rel32.d
+84ef401fcde006c9458e73efe2bdc3fe ld/testsuite/ld-crx/reloc-rel32.s
+0bb2340f51e8e31790c044611073539d ld/testsuite/ld-crx/reloc-rel4.d
+0474e638123f267f7c77bf7e6859e94f ld/testsuite/ld-crx/reloc-rel4.s
+952af075711bf5c0bd635ce9720648cb ld/testsuite/ld-crx/reloc-rel8-cmp.d
+d9692a48c3da7fe1f9e0454e2eaa3269 ld/testsuite/ld-crx/reloc-rel8-cmp.s
+2727f9d73da1e140e5d505f435359009 ld/testsuite/ld-crx/reloc-rel8.d
+817521c14f843019d77ce0d52fd53b5d ld/testsuite/ld-crx/reloc-rel8.s
+94efa5919eebf89b70f9a718d325c3bd ld/testsuite/ld-cygwin/exe-export.exp
+af0825aade69062e48c52ae8282d8834 ld/testsuite/ld-cygwin/testdll.c
+63d1aac1b038020ed973cfc29569732e ld/testsuite/ld-cygwin/testdll.def
+db019a3fc1cb1f9f59a6edfb1f73e957 ld/testsuite/ld-cygwin/testexe.c
+5f86698b1509034bc4f87f7d258217e9 ld/testsuite/ld-cygwin/testexe.def
+996184474b07558d10f2d05d6a69b592 ld/testsuite/ld-d10v/d10v.exp
+b4ead20b861eba109050533ef40db394 ld/testsuite/ld-d10v/default_layout.d
+c59c68825ca903db1904078c8e77f033 ld/testsuite/ld-d10v/linktest-001.s
+260cb1183491105181eded4c34963a9f ld/testsuite/ld-d10v/linktest-002.lt
+7232ced2d73d4bac32cf583a3d9d7a5a ld/testsuite/ld-d10v/linktest-002.s
+de046023db57d12594a89878e1caa893 ld/testsuite/ld-d10v/regression-001.lt
+01ffcb3c21fda44963dfafbd75b79da2 ld/testsuite/ld-d10v/regression-001.s
+4cdae0fb3d013dbd49153b555db35e74 ld/testsuite/ld-d10v/reloc-001.d
+a9cbb2de1956f46bf23bdbf3a39fb6b2 ld/testsuite/ld-d10v/reloc-001.ld
+96aac4fa15afbb40824d52d7f616aed1 ld/testsuite/ld-d10v/reloc-001.s
+22382460f767a35f7e3ee3e29082eb14 ld/testsuite/ld-d10v/reloc-002.d
+dcb59cfd3bc1ddd9661c33cec7111e62 ld/testsuite/ld-d10v/reloc-002.ld
+0b5fffa79db80b241c0c58105932d9bb ld/testsuite/ld-d10v/reloc-003.d
+3befa2048653d125ef17be9bcc94806b ld/testsuite/ld-d10v/reloc-003.ld
+89b112cc2cd58ae58999a5a105c33f5b ld/testsuite/ld-d10v/reloc-004.d
+bad4f70dce484b364577b7793db92505 ld/testsuite/ld-d10v/reloc-004.ld
+065a76f098ef26e7b2fe5f84a56f4193 ld/testsuite/ld-d10v/reloc-005.d
+5ff2e76a04204073ea7c50ee788a7034 ld/testsuite/ld-d10v/reloc-005.ld
+823a84ae7b851b134c9b94ab71d6f21a ld/testsuite/ld-d10v/reloc-005.s
+46dbf37acbdf0eadb8cc31ac2d3034f1 ld/testsuite/ld-d10v/reloc-006.d
+52632233b997a5226faff15567653f35 ld/testsuite/ld-d10v/reloc-006.ld
+e1b026019516bd1813ea6b33b3035ac8 ld/testsuite/ld-d10v/reloc-007.d
+ae9e1f771120fc9bad087de039bd10ad ld/testsuite/ld-d10v/reloc-007.ld
+aec120339e7ea93d7cba32b3be3c3899 ld/testsuite/ld-d10v/reloc-008.d
+c36d03bdbe812d34d81baa1df645be0f ld/testsuite/ld-d10v/reloc-008.ld
+4074889b9455b4f68f6e5fc23f265b32 ld/testsuite/ld-d10v/reloc-009.d
+5357ca9e709865a49021a2ad944f735e ld/testsuite/ld-d10v/reloc-009.ld
+778af85308c7cf5e618819f1089919bd ld/testsuite/ld-d10v/reloc-009.s
+2a269a1b6b912fbc838d30338721c4ce ld/testsuite/ld-d10v/reloc-010.d
+320d8cb2224a8c0d770c6c53fe56fa2a ld/testsuite/ld-d10v/reloc-010.ld
+c0db32e1b6970df36a2e01fc22a687c8 ld/testsuite/ld-d10v/reloc-011.d
+e4281f7304f32d7f2e355b4acdfa0f11 ld/testsuite/ld-d10v/reloc-011.ld
+d41b0a45b441f5bf3249edf3b2ffba89 ld/testsuite/ld-d10v/reloc-012.d
+36e865b7fd1320f476f20033b26aa23c ld/testsuite/ld-d10v/reloc-012.ld
+d1e67034df65b21f46e22414411a58bc ld/testsuite/ld-d10v/reloc-013.d
+88128837f15e0d761f24263bf4edf04a ld/testsuite/ld-d10v/reloc-013.ld
+4f315c84a8e4f35a0440568f2663eb87 ld/testsuite/ld-d10v/reloc-014.d
+f947210d3beb88287ce8b83f4ea0be06 ld/testsuite/ld-d10v/reloc-014.ld
+8ddc5315682698be2ec3a1c97299feac ld/testsuite/ld-d10v/reloc-015.d
+12e0f6ef50e603dd29670a80de467f0d ld/testsuite/ld-d10v/reloc-015.ld
+a07c508b520b6b9d14acc43aee99e066 ld/testsuite/ld-d10v/reloc-016.d
+24c58a8fa81d8b23eef3d2df94588713 ld/testsuite/ld-d10v/reloc-016.ld
+643376f9cf25b4ffa2a621b4ac850ff5 ld/testsuite/ld-d10v/simple.s
+d6e1861b929db9d7308a678c4f4f49a7 ld/testsuite/ld-discard/discard.exp
+74f98f91da03fdfbe4b598fa78509f21 ld/testsuite/ld-discard/discard.ld
+ad7a2ef376a2dbe50a1bbd332e0b351e ld/testsuite/ld-discard/exit.s
+c45aefbefada85ceaa983f3a2b9f4096 ld/testsuite/ld-discard/extern.d
+7db75ecbbac3202bb8ac52c4f75c4f4d ld/testsuite/ld-discard/extern.s
+db8d2d2a6b691737c9f546b83a907438 ld/testsuite/ld-discard/start.d
+859d4022d83abdfea3a6baa088067abd ld/testsuite/ld-discard/start.s
+594c1c727bd7a02d324d651dcd0d85c9 ld/testsuite/ld-discard/static.d
+f7164cd0e6027fe322ff8cc52dfaed98 ld/testsuite/ld-discard/static.s
+289a67ba76925e77ad96a6353f218680 ld/testsuite/ld-discard/zero-range.d
+b3aacae2cdc875e2ed0d13a699e8e27f ld/testsuite/ld-discard/zero-range.s
+d5a71e32cf583a65c3a8dca272678c04 ld/testsuite/ld-discard/zero-rel.d
+cdabdc56ea5e0ca66839a132e07d3f3f ld/testsuite/ld-discard/zero-rel.s
+f76b8ca85a9264bd80251fa2d31f50ab ld/testsuite/ld-elf/audit.exp
+d127dfb9d3bee4b01447fd7973244ac2 ld/testsuite/ld-elf/audit.rd
+5201888d2abb62612325556e633e001d ld/testsuite/ld-elf/begin.c
+500602556f86e18553ceb755366463be ld/testsuite/ld-elf/beginwarn.c
+5049b9807b5a7785f2482e385d7b668f ld/testsuite/ld-elf/binutils.exp
+b2ad7b75694dfd051322ff022289bf11 ld/testsuite/ld-elf/comm1.c
+62a6c175439b573fa477ec9d02c926c0 ld/testsuite/ld-elf/commonpage1.d
+e8c77fb65c093cf6d134a26be7ccca0b ld/testsuite/ld-elf/commonpage2.d
+effe3963d5b9a8ea4327d030aad908a9 ld/testsuite/ld-elf/compress.exp
+a01319306da910cb4d132877d84ae79a ld/testsuite/ld-elf/compress1.s
+24e773742b2290d1dedd7d19dcdf0cf5 ld/testsuite/ld-elf/compress1a.d
+dcf933a6a39b4cf2e648408d13399f21 ld/testsuite/ld-elf/compress1b.d
+0eb33d24f26607d364dfce52b8f63f15 ld/testsuite/ld-elf/compress1c.d
+deaa743c21343d50005ce2368a63da9f ld/testsuite/ld-elf/data1.c
+a89103ea5407b5013209fbcbec167652 ld/testsuite/ld-elf/data1.h
+92bc82dae4c7e3bcb8dc60d1fe19f914 ld/testsuite/ld-elf/del.cc
+95839eb1016346ee2559c3e5333d0fe3 ld/testsuite/ld-elf/depaudit.rd
+ee4280d9cc3ebd6a311813a827af1ab3 ld/testsuite/ld-elf/depaudit2.rd
+2346a5689cb09476d36961aaacb75bf6 ld/testsuite/ld-elf/discard.ld
+0aa8bc44a09aebea4521d19f6d677af3 ld/testsuite/ld-elf/discard1.d
+7276479d5b8d77364a20783c42127ba1 ld/testsuite/ld-elf/discard1.s
+5d9d3815f29613d5c4b4e3eec4b09d63 ld/testsuite/ld-elf/discard2.d
+050c530dc76004b149d0774320823d11 ld/testsuite/ld-elf/discard2.s
+241ee2db60ad7e0095c63dbcc15597cf ld/testsuite/ld-elf/discard3.d
+3cc896db0a5c046306e8f59d6e338b61 ld/testsuite/ld-elf/dl1.c
+a55c99379e6cc8b409bf78abfd503b06 ld/testsuite/ld-elf/dl1.list
+d36f8f9425c4a8000ad9c4a97185aca5 ld/testsuite/ld-elf/dl1.out
+533e1f48c93d2fb02d9bd9e13e6c7b0d ld/testsuite/ld-elf/dl1main.c
+f8635969b890926291bedaf59dfa6339 ld/testsuite/ld-elf/dl2.c
+3e3a30a7d2c4bc161dfbcabd0da3eddf ld/testsuite/ld-elf/dl2.list
+1b6856433525ea3368fe34b038dac9e7 ld/testsuite/ld-elf/dl2a.list
+1e62995e8f12105c3d0644164029a52a ld/testsuite/ld-elf/dl2a.out
+acec79ecf3be622edb219306d94e8d9e ld/testsuite/ld-elf/dl2b.out
+34ec9767ef0c38cceec85498ae831565 ld/testsuite/ld-elf/dl2main.c
+d3ea46a01e213097cc0cdfe32b2e2b40 ld/testsuite/ld-elf/dl2xxx.c
+92b988475bdc3be9578c6763845493a9 ld/testsuite/ld-elf/dl2xxx.list
+ca356d17104d231717f47294765a3426 ld/testsuite/ld-elf/dl3.cc
+01a200fcbd530ec075bce1c4ed6dfb62 ld/testsuite/ld-elf/dl3.list
+d36f8f9425c4a8000ad9c4a97185aca5 ld/testsuite/ld-elf/dl3a.out
+f27833e18c477308ac846ff6d845c9ff ld/testsuite/ld-elf/dl3b.out
+7e432ad95bb69e76cd8603cdeab45021 ld/testsuite/ld-elf/dl3header.h
+2b4c778842950d5668e79d84f7ff883e ld/testsuite/ld-elf/dl3main.cc
+423147404239d19016eac8564a27dc64 ld/testsuite/ld-elf/dl4.c
+fa0611727f18b1ff9fddbe7223e534ba ld/testsuite/ld-elf/dl4.list
+094e83b0e8a3bac549e59194f55b5747 ld/testsuite/ld-elf/dl4a.out
+cc0424b00e5ffac450f7ea94766f8f6b ld/testsuite/ld-elf/dl4b.out
+aecc359e727f1b704b0c8ef5009f00c4 ld/testsuite/ld-elf/dl4main.c
+e8f2fdaed4cd6335fcd46c96509c0002 ld/testsuite/ld-elf/dl4xxx.c
+6a46a6e4b285e54db50cc2ca5034c64b ld/testsuite/ld-elf/dl4xxx.list
+5086c214d0535229169bcfba11ea7354 ld/testsuite/ld-elf/dl5.cc
+32c0be4fb7f3030bf9c74c0a836d4f2e ld/testsuite/ld-elf/dl5.out
+a4eca8bb3aa1f7e3c370f372e05c734b ld/testsuite/ld-elf/dl6.c
+3710cccd088c153f04dd7c488c39fd72 ld/testsuite/ld-elf/dl6a.out
+9558d14ff0a86e0f246c0fcc5a42d572 ld/testsuite/ld-elf/dl6amain.c
+1bcbfa290fbebc90d1ef73c5cb502c35 ld/testsuite/ld-elf/dl6b.out
+bf078a4b794fc06301fe8be1d2f084c8 ld/testsuite/ld-elf/dl6bmain.c
+453f7a0d46db3f224fe0727d1c676272 ld/testsuite/ld-elf/dl6cmain.c
+70de1cbbabd01c363da28133752d0e2f ld/testsuite/ld-elf/dl6dmain.c
+d7e6a283405222184227df7278927181 ld/testsuite/ld-elf/dummy.c
+9cc77b49f8fb5963d7f789a4d47d0127 ld/testsuite/ld-elf/dwarf.exp
+b7e6c2837b679948cb3f9c13b128ca7b ld/testsuite/ld-elf/dwarf1.c
+e5c2a68d935b5a0f16a8862d9f8b1710 ld/testsuite/ld-elf/dwarf1.h
+d36f8f9425c4a8000ad9c4a97185aca5 ld/testsuite/ld-elf/dwarf1.out
+4453124c8ea473d5979542ecf254fc4c ld/testsuite/ld-elf/dwarf1main.c
+7fde0888ca02f48d9564fb66438db1cb ld/testsuite/ld-elf/dynamic1.d
+9527e1fa3e8f91ecd8d5763cf1b783bb ld/testsuite/ld-elf/dynamic1.ld
+f13be5703a6443b8b437e8b19da77d90 ld/testsuite/ld-elf/dynamic1.s
+7cb82de908ccd7e34102a6f59bf6cf85 ld/testsuite/ld-elf/dynbss1.c
+b206cae2bd509b452dfa45efa2588c9a ld/testsuite/ld-elf/dynsym1.d
+ff532fbbc995fb84bfa5f75487292d64 ld/testsuite/ld-elf/eh-frame-hdr.d
+1a78e931c5f561f9da30149889d4475d ld/testsuite/ld-elf/eh-frame-hdr.s
+103ebd89774fd14b8d18184ecc16759a ld/testsuite/ld-elf/eh-group.exp
+164c878d499cc8bbd09205f9d97e1201 ld/testsuite/ld-elf/eh-group1.s
+aaf2beebc700bda44248ece6cf722c87 ld/testsuite/ld-elf/eh-group2.s
+1cf82d74f5ee2530c06088223323c16f ld/testsuite/ld-elf/eh1.d
+b5fd9f6ef9840069748fe7913c2cc775 ld/testsuite/ld-elf/eh1.s
+febb082ba0de2ef03a9e8320a6ff1651 ld/testsuite/ld-elf/eh1a.s
+8bb11f090c5268476f25fc5e46098cdd ld/testsuite/ld-elf/eh2.d
+bc78ade1174bc87302d5ae6f3c9b04a4 ld/testsuite/ld-elf/eh2a.s
+ca3c2dc459e167d6c6a6714a0891589c ld/testsuite/ld-elf/eh3.d
+601c783a8ec20e9f09a919e68b46827c ld/testsuite/ld-elf/eh3.s
+f7edc6e0e0f66ffc923349b2a8c8a074 ld/testsuite/ld-elf/eh3a.s
+fcd105eeb574c28c886f5816b409c084 ld/testsuite/ld-elf/eh4.d
+f67e8b62d5d54fa2dc0b56021cd809d7 ld/testsuite/ld-elf/eh4.s
+f7edc6e0e0f66ffc923349b2a8c8a074 ld/testsuite/ld-elf/eh4a.s
+47cd5ff6c10d2faff913171db99bff3e ld/testsuite/ld-elf/eh5.d
+5b52059e5372224dfa7a7f020b6e1f12 ld/testsuite/ld-elf/eh5.s
+4487cbe51165a079690c15647948b499 ld/testsuite/ld-elf/eh5a.s
+097b4882179741247a872e38c2d84818 ld/testsuite/ld-elf/eh5b.s
+a106c5d2246e737fba1638c6b9c601f9 ld/testsuite/ld-elf/eh6.d
+302f5f1ee4503ca80d2eaa839c11e690 ld/testsuite/ld-elf/eh6.s
+628cd6f3a9e8d1319d2761b536f0cb1c ld/testsuite/ld-elf/elf.exp
+26b29b567247fd1f09aac7f76458d0ce ld/testsuite/ld-elf/empty.d
+9882073b563bb0a8e90d2902ebe358d7 ld/testsuite/ld-elf/empty.s
+bb2c54879ba74bae7e28696fb6c69d46 ld/testsuite/ld-elf/empty2.d
+ee46964160f0308864b3c9f673805ae4 ld/testsuite/ld-elf/empty2.s
+76a20654ee65488dea99f04f2245411f ld/testsuite/ld-elf/end.c
+09ad7a4b25e4d3a09e491665034b9e42 ld/testsuite/ld-elf/endhidden.c
+cd3620335344d83a9021beb69e1c5148 ld/testsuite/ld-elf/endprotected.c
+aed2239d5850bff270478a0044dc16d3 ld/testsuite/ld-elf/exclude.exp
+1cd4e62a9fc5452a45960a19f3e1f006 ld/testsuite/ld-elf/exclude1.s
+8226b1db9eb7e3f6257547fba8c4f6a2 ld/testsuite/ld-elf/exclude2.s
+4a5e353c23801ad5d7f1705efc5f42ed ld/testsuite/ld-elf/exclude3.s
+d46cb8ede74aa1da2a09041b9c352c80 ld/testsuite/ld-elf/exclude3a.d
+87bad70ffa3162708a50da90ce75dc44 ld/testsuite/ld-elf/exclude3b.d
+1222a0ac943a41a7c63e3196a4f5b6f0 ld/testsuite/ld-elf/exclude3c.d
+f6895fc216226ff34a085e826903203b ld/testsuite/ld-elf/exclude3d.d
+11a332bd6a41c9a9a278fbd0467e6d2c ld/testsuite/ld-elf/expr1.d
+12f308c92a57632db3ba119e9a8746a5 ld/testsuite/ld-elf/expr1.s
+5444084211e53b093674d4082c0d2707 ld/testsuite/ld-elf/expr1.t
+ee6a88046a68a434d178bc8cf8a19a1e ld/testsuite/ld-elf/extract-symbol-1.ld
+363de60328a3b2317105dc82c255a74c ld/testsuite/ld-elf/extract-symbol-1.s
+12275c75e6d7ffb03b76c871d2627b90 ld/testsuite/ld-elf/extract-symbol-1sec.d
+97b10ffd2ce490b280ca09b4f9e97f0b ld/testsuite/ld-elf/extract-symbol-1sym.d
+b9312be0ac0540e1bed7c423d7e86b7e ld/testsuite/ld-elf/fini.c
+6c870ef46ccd9128eef86ca8e23210f2 ld/testsuite/ld-elf/fini.out
+21b885380fd780b267b3b9b55e39189b ld/testsuite/ld-elf/flags1.d
+6d00ee0db5f5c13af13b690b2c33d642 ld/testsuite/ld-elf/flags1.ld
+7ac5a670ed46639acca959e753f7bb73 ld/testsuite/ld-elf/flags1.s
+e23b8d902b46d50011563346bcdef9cd ld/testsuite/ld-elf/foo.c
+b6c669a20974ba5592c2d3d61ca7139f ld/testsuite/ld-elf/foo.map
+f4a6c767448cc547d98cde1846c53b8d ld/testsuite/ld-elf/frame.exp
+849fea883bafed1cbcbaebbe323e7783 ld/testsuite/ld-elf/frame.s
+f5eb79eb13454634e50e29bfcf9127c8 ld/testsuite/ld-elf/func1.c
+c7759dae9e015b9ae60e349a19e57b8c ld/testsuite/ld-elf/group.ld
+0a972894292670bfc69c455a635cf111 ld/testsuite/ld-elf/group1.d
+d55510177d6c0bc3366c5a7a9f5b2bbf ld/testsuite/ld-elf/group10.d
+ee3a05cb416c169218e9a5a0cbdf2e93 ld/testsuite/ld-elf/group10.s
+1ec9a1e59acd27511474e69e4055d7e0 ld/testsuite/ld-elf/group1a.s
+d9f1334c22ad7c92426c95b7aa8a3049 ld/testsuite/ld-elf/group1b.s
+9d7adfffe33ba6445be5804bb5915cc4 ld/testsuite/ld-elf/group2.d
+e8f102e04a371d81bde7078c089fae5f ld/testsuite/ld-elf/group3a.d
+1de0968c385d41dca2452b5833f6a681 ld/testsuite/ld-elf/group3a.s
+d7c54a9b5cc48ca845828718fc515fd8 ld/testsuite/ld-elf/group3b.d
+57519cc08ef99dc4ef115ccc182382f0 ld/testsuite/ld-elf/group3b.s
+51760003b97fbb46fad9a7616ce4710d ld/testsuite/ld-elf/group4.d
+d9c70323dfd104f347d45b6ed4352925 ld/testsuite/ld-elf/group5.d
+23c9e928e2f6ef30893e1473f2084654 ld/testsuite/ld-elf/group6.d
+b8ffc5b4d4f9a053dea025d80a0226c3 ld/testsuite/ld-elf/group7.d
+558795e9087cb1bbd0ec5e825d26cc71 ld/testsuite/ld-elf/group8.s
+1a8c19fe7dbb384c45d35f9741745cb1 ld/testsuite/ld-elf/group8a.d
+df228f039cdaf757741fb9912b9d7b70 ld/testsuite/ld-elf/group8b.d
+48c8a06528948d58b5e80f4694c29fe1 ld/testsuite/ld-elf/group9.s
+b479c3d799754a4afdd1707fa3277f5e ld/testsuite/ld-elf/group9a.d
+88e0d80b525c08fbd1678f70e02e6f67 ld/testsuite/ld-elf/group9b.d
+d541c1b0473dadc5fe3632cae0051b7a ld/testsuite/ld-elf/hash.d
+b7e0a7a1b2d167a4459dcb79f6390efb ld/testsuite/ld-elf/header.d
+d20a232b867adf1bef08b4ce03cf1430 ld/testsuite/ld-elf/header.s
+9982da84d54af70ca2e81e3979251435 ld/testsuite/ld-elf/header.t
+89178798ccc30d52ff0924e01b5571bd ld/testsuite/ld-elf/hidden.out
+366c57f43172b2e431b341fbadf9892b ld/testsuite/ld-elf/init-fini-arrays.d
+39a2d240cb93d759b09a1dcf1f11d270 ld/testsuite/ld-elf/init-fini-arrays.s
+c014b107d3fe11b47a8b6033b9f97cfe ld/testsuite/ld-elf/init-mixed.c
+d36f8f9425c4a8000ad9c4a97185aca5 ld/testsuite/ld-elf/init-mixed.out
+95bcdb1f797589520105dd68e9af0c58 ld/testsuite/ld-elf/init.c
+f2e75103bd836ab4be11fd869823de13 ld/testsuite/ld-elf/init.out
+d2d2837a4a4461ffab6f30eaebe973d9 ld/testsuite/ld-elf/linkonce1.d
+5fe9a69bec87726ba46817b8f1ee2b75 ld/testsuite/ld-elf/linkonce1a.s
+ebb33a94c7a5b164956799b79385ca91 ld/testsuite/ld-elf/linkonce1b.s
+d93b0136e812b175d99e9de8d2d0f2db ld/testsuite/ld-elf/linkonce2.d
+74cfe401f62645cd60e07cf0480e9267 ld/testsuite/ld-elf/linkoncerdiff.d
+fe5bf27901db70ca55ed14c19833aa69 ld/testsuite/ld-elf/linkoncerdiff1.s
+f91dea4c322a581acfb738c6c194bef4 ld/testsuite/ld-elf/linkoncerdiff2.s
+5888bd99973e3054a85bc8270d625989 ld/testsuite/ld-elf/lma.lnk
+40dadc4124e56bdb402d4fd07200b825 ld/testsuite/ld-elf/lma.s
+afe8fcb284e3648437d0ab70fa59fcc3 ld/testsuite/ld-elf/loadaddr.s
+50559945e0e551693b7fc52a088bad25 ld/testsuite/ld-elf/loadaddr.t
+a4c87a4c61451a9fbadb42642ced68b5 ld/testsuite/ld-elf/loadaddr1.d
+40b0e64bed68782eeafc8dc4c92789f5 ld/testsuite/ld-elf/loadaddr1.t
+bd0d2a4f71e65e78f4011cb2dee33d75 ld/testsuite/ld-elf/loadaddr2.d
+6209e66373cc8cd7c4f45d2bd747037f ld/testsuite/ld-elf/loadaddr2.t
+97b5e122b2d1ad02ea731a7a0f1ba0f1 ld/testsuite/ld-elf/loadaddr3.t
+422cf93ab84a15f4fed963a32957e4ab ld/testsuite/ld-elf/loadaddr3a.d
+653cbbbc2a1d3baa3a0c7be0706645e5 ld/testsuite/ld-elf/loadaddr3b.d
+aeaf80a937a99f8af20a6a70cf83f86d ld/testsuite/ld-elf/local1.d
+6af340a84430524a5da1d524826433e6 ld/testsuite/ld-elf/local1.map
+d1d4e30dbf8ca0ca0ae2856357fd2a25 ld/testsuite/ld-elf/local1.s
+32c581c1cb0e39759bf16610383605ec ld/testsuite/ld-elf/main.c
+25b8360b78c9d21fc1365a3bf9a56008 ld/testsuite/ld-elf/maxpage1.d
+8e4fb0c70c9656f2c5a45b27727c46ca ld/testsuite/ld-elf/maxpage1.s
+95c6bf0eb1c1167c17739beb16812bde ld/testsuite/ld-elf/maxpage2.d
+f6c21b3d32c6aad6eba30f7e1f1b72a2 ld/testsuite/ld-elf/maxpage3.t
+ddfae0f52a1467975b1d3af6131b6268 ld/testsuite/ld-elf/maxpage3a.d
+e6697a3f5c6e26d60fb02ae070b455c2 ld/testsuite/ld-elf/maxpage3b.d
+a549e03f399fa2b8f48f28b0c7d30dbf ld/testsuite/ld-elf/maxpage3c.d
+27b3b015586e17eb3be7d5aef05d908d ld/testsuite/ld-elf/maxpage4.d
+e472066dbdc81546104875b2c59d5d17 ld/testsuite/ld-elf/maxpage4.t
+5a98fc137e3f3e38b4dd537407a8ca93 ld/testsuite/ld-elf/merge.d
+3adca40a51e300bbf27293c07b0b899b ld/testsuite/ld-elf/merge.ld
+4595be81b4985c3114128c2c50497ed7 ld/testsuite/ld-elf/merge.s
+c8f0bcccda3a4893d6ecf1e3acd7dfdd ld/testsuite/ld-elf/merge2.d
+82b53a1be4af0e7b9932bc4bac4a1f5b ld/testsuite/ld-elf/merge2.s
+dab8d983f764005be0d56e5e71c6d74b ld/testsuite/ld-elf/multibss1.d
+95739864db0e20752f2a8621045e2770 ld/testsuite/ld-elf/multibss1.s
+87b1cd84b94813d3f879e4bb66307a93 ld/testsuite/ld-elf/new.cc
+737e07c9b710b026cd01c38105c450b2 ld/testsuite/ld-elf/nobits-1.d
+1448d0c396a7540c385a6c24427dc8a8 ld/testsuite/ld-elf/nobits-1.s
+e933fe9c4ee897ce8767297ecd0f2676 ld/testsuite/ld-elf/nobits-1.t
+530a4ea166a9a853590f63c768d79a5f ld/testsuite/ld-elf/noload-1.d
+3171f16ade59868ff70aab3502f42649 ld/testsuite/ld-elf/noload-1.s
+68efb3156c20aeb9a95bcc40d679299f ld/testsuite/ld-elf/noload-1.t
+a7cdc4a0d7968b7b51299f35b4421fdd ld/testsuite/ld-elf/noload-2.d
+03e9267b196ec4b40bcc056e48f97851 ld/testsuite/ld-elf/noload-3.d
+cde0fc55cbb25aa66ccde74b87aa1a3a ld/testsuite/ld-elf/noload-3.s
+29cfe39333ea541949c52fa3568a7195 ld/testsuite/ld-elf/noload-3.t
+401fcac11c36214cce1f28d56bbf5fe8 ld/testsuite/ld-elf/normal.out
+a6dcf60520567b2d37489b9b13e0b287 ld/testsuite/ld-elf/note-1.d
+629568b7f4d00dcae1c48feb55a7efd5 ld/testsuite/ld-elf/note-1.s
+399dc17ec028793197a0e19a2dabda3c ld/testsuite/ld-elf/note-1.t
+1ac47c89082509561450496d0e4dcf36 ld/testsuite/ld-elf/note-2.d
+40682549e4c351b892bdb471e60b6a3c ld/testsuite/ld-elf/note-2.s
+5b3a8506065e6ef3b6b0098889c249b4 ld/testsuite/ld-elf/note-2.t
+c5006d0ccbb0c2aee724238c81fd084e ld/testsuite/ld-elf/note-3.l
+cc1ff6f126e817e915075e36dd88d7c0 ld/testsuite/ld-elf/note-3.s
+76fa31ee0dd00d4807f0ae9347046f23 ld/testsuite/ld-elf/note-3.t
+2b9125b2b5c18f81dedfacfeda5e58e5 ld/testsuite/ld-elf/orphan-region.d
+63fc2bb84bbec40616f2976aec073894 ld/testsuite/ld-elf/orphan-region.ld
+7edf13f9914b682c83f9d0cfa6ef7430 ld/testsuite/ld-elf/orphan-region.s
+24a338e873b210f2f1726c828a0ab1fd ld/testsuite/ld-elf/orphan.d
+d53032637c8ece91ff80d8c48b8d39c1 ld/testsuite/ld-elf/orphan.ld
+e10c2d6fb7b1862d72e784b3d68cad31 ld/testsuite/ld-elf/orphan.s
+65b282379c61547c696f167a12ca56e5 ld/testsuite/ld-elf/orphan2.d
+e7a16e18e2efc9cfdbbe32abaab5edca ld/testsuite/ld-elf/orphan2.s
+57569c6d1b06b57547c826a7facc2894 ld/testsuite/ld-elf/orphan3.d
+6154f0eca898629c83b18499fab900c5 ld/testsuite/ld-elf/orphan3a.s
+84b13c2a26dd0d005bde1604e5b2d19a ld/testsuite/ld-elf/orphan3b.s
+1e655a7d980456f14cf24ce85540cb81 ld/testsuite/ld-elf/orphan3c.s
+9a466c84001ebb48e1aaa0a73ae388f4 ld/testsuite/ld-elf/orphan3d.s
+0027c0b1504bc8b51d1caeebd687dd8c ld/testsuite/ld-elf/orphan3e.s
+d93b5a03df564c13648d5c4dc1104ba2 ld/testsuite/ld-elf/orphan3f.s
+3b2265dab8325ee291177829d4f62bf0 ld/testsuite/ld-elf/orphan4.d
+24f21dc4791f0eec749a165fbff9bb24 ld/testsuite/ld-elf/orphan4.ld
+299c87c84cff73c8fd133b27164d9ea1 ld/testsuite/ld-elf/orphan4.s
+8485c54fabb0e82155e1ee7a3c2ef43d ld/testsuite/ld-elf/overlay.d
+d4820191dbce8256c3f1f80984b67160 ld/testsuite/ld-elf/overlay.s
+2d997de1ae57807bbab493d208ca44ac ld/testsuite/ld-elf/overlay.t
+32c0be4fb7f3030bf9c74c0a836d4f2e ld/testsuite/ld-elf/pass.out
+93810c21d02634b47e6b0d68d8e2fbc6 ld/testsuite/ld-elf/pr11138-1.c
+2945ea31a0113cc212d6f38d344705a7 ld/testsuite/ld-elf/pr11138-1.map
+6d2633d6710838d2e3ea63c0b0ecec47 ld/testsuite/ld-elf/pr11138-2.c
+8d55e3e0f15eb6dd48dfa18a00f9efd4 ld/testsuite/ld-elf/pr11138-2.map
+b5a8b50ff530cdd3d3d9967312e02ab9 ld/testsuite/ld-elf/pr11138.out
+066dc12b5611d379e3f138ca0c0304a3 ld/testsuite/ld-elf/pr11304.d
+59a4b624ca0384784b4c88c5cbcbeaed ld/testsuite/ld-elf/pr11304a.s
+59a4b624ca0384784b4c88c5cbcbeaed ld/testsuite/ld-elf/pr11304b.s
+c83ddb75c46a371e1185f84f36d8dc97 ld/testsuite/ld-elf/pr12851.d
+a0e306b2e7e71bfcd446864ba0f72536 ld/testsuite/ld-elf/pr12851.s
+a2ea691d0ea70e481e7eee9079490d58 ld/testsuite/ld-elf/pr12975.d
+f1b24564683b83c422576e0762aaebcc ld/testsuite/ld-elf/pr12975.s
+db23ab87a9e5dd863e49d869df40bb2d ld/testsuite/ld-elf/pr12975.t
+8a1b43bb1b98d47569c87c7daeccf062 ld/testsuite/ld-elf/pr13195.c
+32cce9b7862b5c4d5f52e2256f1bc58b ld/testsuite/ld-elf/pr13195.d
+54cac995f6b307c9e6627262b3c5b979 ld/testsuite/ld-elf/pr13195.s
+bf1422584b0f4807d623c533360a3ae8 ld/testsuite/ld-elf/pr13195.t
+dfd511b4a96937c4de97a99a639288a4 ld/testsuite/ld-elf/pr13250-1.c
+8bfedd08090446f98f5d9ed8fd45a49e ld/testsuite/ld-elf/pr13250-2.c
+cfb926b6ab195c2cc31097e3cab41c87 ld/testsuite/ld-elf/pr13250-3.c
+9eaa52574b09fc06a3a9133e8ab494af ld/testsuite/ld-elf/pr349-1.s
+603b78df700993f74de4efe8300dea2c ld/testsuite/ld-elf/pr349-2.s
+815000c1d4742e802b83a8da90950409 ld/testsuite/ld-elf/pr349.d
+bd6e47747c9d2c55f67637c0cb446316 ld/testsuite/ld-elf/pr9676-1.c
+3cfd62244d92db0a1323beb5487ad025 ld/testsuite/ld-elf/pr9676-2.c
+f7a17bf2af3c100c51c7cc8bdba25530 ld/testsuite/ld-elf/pr9676-3.c
+779db82e3b226d53a48c1530a626c4eb ld/testsuite/ld-elf/pr9676-4.c
+d5e659c345d1806a8333d24938bc677b ld/testsuite/ld-elf/pr9676.rd
+4d9088ef903809d06d118353352bb3f3 ld/testsuite/ld-elf/pr9679-1.c
+01403fc34f8a10bf3c815d5d76fa6b38 ld/testsuite/ld-elf/pr9679-2.c
+d5e659c345d1806a8333d24938bc677b ld/testsuite/ld-elf/pr9679.rd
+9e0d2e1541e26e362a40a3d869af16d9 ld/testsuite/ld-elf/preinit.c
+2f7e06fc320d375e4bef8dad7a69e6e8 ld/testsuite/ld-elf/preinit.out
+39629aca7739c945da31396959581688 ld/testsuite/ld-elf/relocatable.d
+3dfb6f0bb7b61490710f87231b84a61a ld/testsuite/ld-elf/relocatable.t
+c4aa34f3eee6d09ecaa75450e25d2f78 ld/testsuite/ld-elf/relro1.s
+4e4b53efdd5a66a8f66f78fd45cddaed ld/testsuite/ld-elf/relro2.s
+7e91a461691ba9fd341b5767b14e2b22 ld/testsuite/ld-elf/sec-to-seg-script-adjoining-pages.t
+c1ac88f05a284d2ee7032528375ea0c0 ld/testsuite/ld-elf/sec-to-seg-script-disjoint-pages.t
+0a5529647d14f9b30d5bdfb3f622e3a2 ld/testsuite/ld-elf/sec-to-seg-script-same-page.t
+bddbe3cf3633af8f745bc173c9266f58 ld/testsuite/ld-elf/sec-to-seg.exp
+4feab35f04a5962d0f6f6642609234b3 ld/testsuite/ld-elf/sec-to-seg1.s
+484ab9249c42669aae8eaa5ce0073831 ld/testsuite/ld-elf/sec-to-seg2.s
+1d68645c6f5875e03f98bcf79bef64c0 ld/testsuite/ld-elf/sec64k.exp
+2172991a0be7bbcc919dd018cb3e1984 ld/testsuite/ld-elf/seg.d
+366d0c0a5413780d911830f52009bd84 ld/testsuite/ld-elf/seg.s
+33df9bb4b3d304089bbc3721861a181b ld/testsuite/ld-elf/seg.t
+d58dc176d4f19648ce82e752c715ec3f ld/testsuite/ld-elf/shared.exp
+6f4d84a169cac8e0dd19b4b396d69de4 ld/testsuite/ld-elf/simple.s
+bca204cb5e2f9dfd81723b0cf322fa76 ld/testsuite/ld-elf/stab.d
+3767ef0dfe3d8e6020018b6b438224be ld/testsuite/ld-elf/start.s
+f968d87a813716b366294f2338d3efb6 ld/testsuite/ld-elf/symbol1ref.s
+118d8abd984db821efeff9e387685685 ld/testsuite/ld-elf/symbol1w.s
+feb641ceead5630278338f34271c3f70 ld/testsuite/ld-elf/symbol2ref.s
+12ae3af7465ed5e608619f85e3bb1511 ld/testsuite/ld-elf/symbol2w.s
+bf10f94f4c2a0f312297f582b20fd617 ld/testsuite/ld-elf/symbol3.s
+348983f305353d8771aa5757ebc71baf ld/testsuite/ld-elf/symbol3w.s
+3726d33be7e71970731526d25c45b15b ld/testsuite/ld-elf/table.s
+2e5f0a039d8fe3b31bcbb1d924874abd ld/testsuite/ld-elf/tbss.s
+1814ada7f088af77312ac0b0da7df970 ld/testsuite/ld-elf/tbss1.s
+eb37b66eb5d253b3c2e97b3eea174ecd ld/testsuite/ld-elf/tbss2.s
+905e900305dc6bc49814c3d1f538ec90 ld/testsuite/ld-elf/tbss3.s
+a71ab05c910f1f346324725f36681373 ld/testsuite/ld-elf/tdata1.s
+1090d6567927a64cfb2f53974769536a ld/testsuite/ld-elf/tdata2.s
+e9da8cae86b12f3c9ffc28179dbebf76 ld/testsuite/ld-elf/tdata3.s
+e8cbccbf4eaaeadb30a740ca3a93d1af ld/testsuite/ld-elf/textaddr1.d
+81744aa1bb9f760ee8b5389a3149e744 ld/testsuite/ld-elf/textaddr2.d
+6a9cb314edd45ee5b4ae406daae14c22 ld/testsuite/ld-elf/textaddr3.d
+b61f2f154a3214936b06381ca0c1b987 ld/testsuite/ld-elf/textaddr4.d
+171deb77778587c381207a1fdf5eeca2 ld/testsuite/ld-elf/textaddr5.d
+912a76ba6752015a5860a43f7308049d ld/testsuite/ld-elf/textaddr6.d
+c5c1369478ecb9fdcd459a621d15c5af ld/testsuite/ld-elf/textaddr7.d
+231d80716b4f61bff66d55a981ee3ae3 ld/testsuite/ld-elf/tls_common.exp
+acfdcd6f073b4107aaf9525474caad57 ld/testsuite/ld-elf/tls_common.s
+08635fd0f8e8bfe1f48dfe1dcb64b8de ld/testsuite/ld-elf/tls_gc.s
+22d8dd6f061259f9e320ed5854e01cf5 ld/testsuite/ld-elf/unknown.d
+09ddd4fa5b27a4db72b0736b1ece2f51 ld/testsuite/ld-elf/unknown2.d
+5006410a4ea18cc1dde77669583c65c9 ld/testsuite/ld-elf/unknown2.s
+adda635e6bdb4ef98fa0edbeb39fe7f6 ld/testsuite/ld-elf/warn.out
+77cc2c6e2782ff44b42d0ecfeff62515 ld/testsuite/ld-elf/warn1.d
+5966c2b7435a8b360b573ccbf546b81f ld/testsuite/ld-elf/warn2.d
+ede420b2b8f9080185eef75d653326fc ld/testsuite/ld-elf/warn3.d
+f36aba062ff28f6008dc3639314814f5 ld/testsuite/ld-elf/weak-dyn-1.ld
+50dca04d1d979e25a207fb8b53cc5151 ld/testsuite/ld-elf/weak-dyn-1.rd
+5c7ae357b88eb28f90e2d856ed0714a0 ld/testsuite/ld-elf/weak-dyn-1a.s
+f77d9b90ac5ac50068dcf529303593e1 ld/testsuite/ld-elf/weak-dyn-1b.s
+24e3ead9346194e7d47603837170d315 ld/testsuite/ld-elf/wrap.exp
+a3f498bb3a5ca268b09eba5569b0f1ee ld/testsuite/ld-elf/wrap1.c
+b93d3de03fbdd2161586328bec0b9432 ld/testsuite/ld-elf/wrap1.out
+3bc7f7c7c0704dbeba179115cf844dcc ld/testsuite/ld-elf/wrap1a.c
+f1d243e2bd35acde0bfbdfcd126a2635 ld/testsuite/ld-elf/wrap1b.c
+4fd4394e0fffbea332fd110afa670884 ld/testsuite/ld-elfcomm/common1a.c
+1ded50eb4cc3807ba226bca7ed76082c ld/testsuite/ld-elfcomm/common1b.c
+0020d419b9a31d00ed6998fb7fb4b885 ld/testsuite/ld-elfcomm/elfcomm.exp
+8eb6a8cf48d79df5287e9493d40cf94d ld/testsuite/ld-elfcomm/sort-common.s
+011baf0e22ddb7097cb9f386b4bd2082 ld/testsuite/ld-elfvers/vers.exp
+4270927e9c2f6165646a82d996632ab2 ld/testsuite/ld-elfvers/vers.h
+d58a9a73fbbd753a66bbcca36dfc8cf4 ld/testsuite/ld-elfvers/vers1.c
+3671b7ddb61a0544b750dbb786402454 ld/testsuite/ld-elfvers/vers1.dsym
+e313fc6c0ab900457222aee483b85e3e ld/testsuite/ld-elfvers/vers1.map
+f5eb2d61f488f5c5d5a4867498b488db ld/testsuite/ld-elfvers/vers1.sym
+3adb6c27dcdea2d455db59cb811ccf1b ld/testsuite/ld-elfvers/vers1.ver
+ca85484e74a669868fc7e52fe11d7fb4 ld/testsuite/ld-elfvers/vers13.asym
+7457753bd762dab50560ce3773e3d987 ld/testsuite/ld-elfvers/vers15.c
+82a2ab777efc2bae6e2170f8a62f02d1 ld/testsuite/ld-elfvers/vers15.dsym
+543e6abbef56d4d71820bf2d7f7ff433 ld/testsuite/ld-elfvers/vers15.sym
+f13a39514754b4838f1309e21b00fe48 ld/testsuite/ld-elfvers/vers15.ver
+d71d95fe36a6bc2f88c952ac37cb990a ld/testsuite/ld-elfvers/vers16.c
+20063b9a96b0498c3363934929a47134 ld/testsuite/ld-elfvers/vers16.dsym
+d057681641b9fc14e87f35c677b6243d ld/testsuite/ld-elfvers/vers16.map
+92e6d0ae0c0aef2c17de9ef04d6bf7f2 ld/testsuite/ld-elfvers/vers16a.c
+f09fff1d10d49e948f5794e9d02b0f2a ld/testsuite/ld-elfvers/vers16a.dsym
+ba77ee63cb0c9441745f678371e8c573 ld/testsuite/ld-elfvers/vers16a.ver
+a2e06e03cf5f45c27839f309a5388b81 ld/testsuite/ld-elfvers/vers17.c
+fb96a6647ba7b667f7d36ea828bd35f1 ld/testsuite/ld-elfvers/vers17.dsym
+db62e32b4b422023390633f11005c406 ld/testsuite/ld-elfvers/vers17.map
+3f61673d5b6aded9b54d5a6d50bbe9db ld/testsuite/ld-elfvers/vers17.ver
+3eba3e7c2f298addf831ff2dda5ce4e5 ld/testsuite/ld-elfvers/vers18.c
+879ada875b24b80dda514c7e2e2af7b3 ld/testsuite/ld-elfvers/vers18.dsym
+ff664f0bcb51460658f2bd68559e58ce ld/testsuite/ld-elfvers/vers18.map
+29ff86c9e1e6ef2c71260ba2d1469708 ld/testsuite/ld-elfvers/vers18.sym
+922422137a8d9727622d676c21a89be5 ld/testsuite/ld-elfvers/vers18.ver
+039a925919afb81dc1ee342704f38935 ld/testsuite/ld-elfvers/vers19.c
+cf3aefa02697e84e0e6c2868b6f5c680 ld/testsuite/ld-elfvers/vers19.dsym
+8b010e222b5e868705f82bbb23e9ecae ld/testsuite/ld-elfvers/vers19.ver
+0a2838d86e28cda599478f48e5b5bdfd ld/testsuite/ld-elfvers/vers2.c
+9e68402a4985b7a4b4dc5ba50b229992 ld/testsuite/ld-elfvers/vers2.dsym
+0f243904b21ec2e5cda0083a35f9708e ld/testsuite/ld-elfvers/vers2.map
+74f7411e32fe765dc6a26a1b8b0fb023 ld/testsuite/ld-elfvers/vers2.ver
+4469f357ebf3ae54a6b7d3ac4dd45e02 ld/testsuite/ld-elfvers/vers20.c
+5ea20d0221b73c72bb641c79065d08ea ld/testsuite/ld-elfvers/vers20.dsym
+8bc8f7d4944729dc8b93a7411039edab ld/testsuite/ld-elfvers/vers20.map
+32f1fbc9d25386a28a726ba8213b0c50 ld/testsuite/ld-elfvers/vers20.ver
+46d437dd2ea257791fdff7e14e326256 ld/testsuite/ld-elfvers/vers20a.ver
+302adc31b972ff2d933201c8f4b84abe ld/testsuite/ld-elfvers/vers21.c
+bbfcf81776040e057fce57d60d68d5c1 ld/testsuite/ld-elfvers/vers21.dsym
+1d171dba2a073a9f452c6dc9738d9ab5 ld/testsuite/ld-elfvers/vers21.map
+1c785fd67664055b80771ed6cdd5825c ld/testsuite/ld-elfvers/vers21.sym
+9502301f11d072e0021a4c36a6a55871 ld/testsuite/ld-elfvers/vers21.ver
+f14e2a97a506acb8ccb16ae8169e02f0 ld/testsuite/ld-elfvers/vers22.c
+a3d23562ca52431974f3fa10acc9942e ld/testsuite/ld-elfvers/vers22.dsym
+73bdadb2bf334d7215bed4b3bbf79386 ld/testsuite/ld-elfvers/vers22.map
+5d2c09668da017aaa1a398b2866f7651 ld/testsuite/ld-elfvers/vers22.ver
+5422f7f0e7ee89007aa881bf34744156 ld/testsuite/ld-elfvers/vers22a.c
+cace02d0bb3e824647423b833370b72e ld/testsuite/ld-elfvers/vers22a.dsym
+0248e44186a26078d64b6f395b97fffc ld/testsuite/ld-elfvers/vers22a.sym
+d2dbe45f18e4edc221fa05515c8f87f3 ld/testsuite/ld-elfvers/vers22a.ver
+4f7246f39713bbd895f864c0575ba407 ld/testsuite/ld-elfvers/vers22b.c
+3de0eddf476f0be654f0e5918cb4e757 ld/testsuite/ld-elfvers/vers22b.dsym
+23a2621b4322026f42215399979cf422 ld/testsuite/ld-elfvers/vers22b.ver
+bbc9fc509cd541c3693ee9eccfbd5b9d ld/testsuite/ld-elfvers/vers23.c
+a5ebf070c6fc1bf2f3db91018bc1f649 ld/testsuite/ld-elfvers/vers23.dsym
+633a3d837043afb4e2e529e4c3e90935 ld/testsuite/ld-elfvers/vers23.ver
+fae2a28abdecb1706f8f3011f441045a ld/testsuite/ld-elfvers/vers23a.c
+744cd1ebd356a20b1ea8a90ee2947990 ld/testsuite/ld-elfvers/vers23a.dsym
+8343a077e30c61911ce93c6effc40152 ld/testsuite/ld-elfvers/vers23a.map
+0248e44186a26078d64b6f395b97fffc ld/testsuite/ld-elfvers/vers23a.sym
+68dbe79c82488593a3a00c5d4f254629 ld/testsuite/ld-elfvers/vers23a.ver
+60fc3d9c482fe99a2b93cb18e7e80609 ld/testsuite/ld-elfvers/vers23b.c
+3de0eddf476f0be654f0e5918cb4e757 ld/testsuite/ld-elfvers/vers23b.dsym
+73bdadb2bf334d7215bed4b3bbf79386 ld/testsuite/ld-elfvers/vers23b.map
+97b6652b41cf7947f6d77856bc082c38 ld/testsuite/ld-elfvers/vers23b.ver
+a3c80128cbd69d851c37fc62d70a1bbe ld/testsuite/ld-elfvers/vers23c.ver
+6df1e37b6ca916c4d1c8ec5813eaf507 ld/testsuite/ld-elfvers/vers23d.dsym
+e9fda16fba73fb7725109a8dbc9b602b ld/testsuite/ld-elfvers/vers24.map
+b8aafc5a20dfe2e23b770ee2e59bcc2c ld/testsuite/ld-elfvers/vers24.rd
+dcd045d4d5696948726cd1964a9817a7 ld/testsuite/ld-elfvers/vers24a.c
+9a260b109ac2c5d9b67c179a743164d2 ld/testsuite/ld-elfvers/vers24b.c
+793997d59be62b943c1aae95eaef6b99 ld/testsuite/ld-elfvers/vers24c.c
+0523f9af999af91bcc588cad64caa834 ld/testsuite/ld-elfvers/vers25a.c
+59aa7f567e00c4925219abdc39e1de42 ld/testsuite/ld-elfvers/vers25a.dsym
+57f961fd2476ec908ae22cca5bdc232d ld/testsuite/ld-elfvers/vers25a.map
+81e3c1cf35a071eb13a27e374dec7221 ld/testsuite/ld-elfvers/vers25a.ver
+12e05f0c04c3fe45dd5f8a9ce22f9f78 ld/testsuite/ld-elfvers/vers25b.c
+7d2a38f57ff8f9292dd32d86db3f1465 ld/testsuite/ld-elfvers/vers25b.dsym
+b8347f91cfb6122afdab80b966752a2c ld/testsuite/ld-elfvers/vers25b.ver
+e98c326ae1d6de1a6f02bbec6be09dd9 ld/testsuite/ld-elfvers/vers26a.c
+59aa7f567e00c4925219abdc39e1de42 ld/testsuite/ld-elfvers/vers26a.dsym
+57f961fd2476ec908ae22cca5bdc232d ld/testsuite/ld-elfvers/vers26a.map
+1a56e75735dd914b028707398606d9f1 ld/testsuite/ld-elfvers/vers26a.ver
+47bb2e0fbb87fcb4c863dfa911a22aec ld/testsuite/ld-elfvers/vers26b.c
+b8347f91cfb6122afdab80b966752a2c ld/testsuite/ld-elfvers/vers26b.dsym
+b8347f91cfb6122afdab80b966752a2c ld/testsuite/ld-elfvers/vers26b.ver
+0523f9af999af91bcc588cad64caa834 ld/testsuite/ld-elfvers/vers27a.c
+59aa7f567e00c4925219abdc39e1de42 ld/testsuite/ld-elfvers/vers27a.dsym
+57f961fd2476ec908ae22cca5bdc232d ld/testsuite/ld-elfvers/vers27a.map
+d60856e7654583644f69d753c28b6ff5 ld/testsuite/ld-elfvers/vers27a.ver
+5266024b8076b5b26794b09939d37166 ld/testsuite/ld-elfvers/vers27b.c
+b8347f91cfb6122afdab80b966752a2c ld/testsuite/ld-elfvers/vers27b.dsym
+b8347f91cfb6122afdab80b966752a2c ld/testsuite/ld-elfvers/vers27b.ver
+12e05f0c04c3fe45dd5f8a9ce22f9f78 ld/testsuite/ld-elfvers/vers27c.c
+b8347f91cfb6122afdab80b966752a2c ld/testsuite/ld-elfvers/vers27c.dsym
+b8347f91cfb6122afdab80b966752a2c ld/testsuite/ld-elfvers/vers27c.ver
+829aae1ccec6537f91efd3ea305f9e66 ld/testsuite/ld-elfvers/vers27d.dsym
+6b4020e10fb889eb3c832588997c8b67 ld/testsuite/ld-elfvers/vers27d.sym
+9f6f5bf5a47965e44de4c07fdc6660d5 ld/testsuite/ld-elfvers/vers27d.ver
+83c538703e21419330e9a2a91572dc38 ld/testsuite/ld-elfvers/vers27d1.c
+1ceed1e236c346112bd60a798bc5bee1 ld/testsuite/ld-elfvers/vers27d2.c
+88a2654d0eec5305a3c68d0592b793a7 ld/testsuite/ld-elfvers/vers27d3.c
+a5ebf070c6fc1bf2f3db91018bc1f649 ld/testsuite/ld-elfvers/vers27d4.dsym
+174698c458f46bd70b8accf50820f3d2 ld/testsuite/ld-elfvers/vers27d4.ver
+0523f9af999af91bcc588cad64caa834 ld/testsuite/ld-elfvers/vers28a.c
+b8347f91cfb6122afdab80b966752a2c ld/testsuite/ld-elfvers/vers28a.dsym
+b8347f91cfb6122afdab80b966752a2c ld/testsuite/ld-elfvers/vers28a.ver
+149133883cb0fb36026df232ff8a23d1 ld/testsuite/ld-elfvers/vers28b.c
+0569b27808decda4fbcdf7717e617d4a ld/testsuite/ld-elfvers/vers28b.dsym
+57f961fd2476ec908ae22cca5bdc232d ld/testsuite/ld-elfvers/vers28b.map
+72effba67ac2aab0b4eb6b36ef25358f ld/testsuite/ld-elfvers/vers28b.ver
+48737299e30907008d88fa0f1990de62 ld/testsuite/ld-elfvers/vers28c.c
+c50f9e28fc0fec9c7924fc471430c0aa ld/testsuite/ld-elfvers/vers28c.dsym
+9c5cf2b1eb3f0c7e801b91829ef5081b ld/testsuite/ld-elfvers/vers28c.ver
+47fef54f84aa89c6c41f11914aee3d65 ld/testsuite/ld-elfvers/vers29.c
+9f70d4b1ea9dbb73b07733538f41189a ld/testsuite/ld-elfvers/vers29.dsym
+40722f8e631cbf28b20f03c5cbfe38b9 ld/testsuite/ld-elfvers/vers29.ver
+2198856c8569cc7494ffe89650a9e63b ld/testsuite/ld-elfvers/vers3.c
+cf3aefa02697e84e0e6c2868b6f5c680 ld/testsuite/ld-elfvers/vers3.dsym
+8a491b80ca3b80c98fb3ef4b89144e65 ld/testsuite/ld-elfvers/vers3.ver
+f5c281cfb038224a4d4d58aef1722ea5 ld/testsuite/ld-elfvers/vers30.c
+7d31903e73639c4d55b43ad71b54bae8 ld/testsuite/ld-elfvers/vers30.dsym
+80c39498d585c4ed1e673c9913baad4c ld/testsuite/ld-elfvers/vers30.map
+5c50a408e839ce394d6afefc99c05f03 ld/testsuite/ld-elfvers/vers30.ver
+6e5a4cce520eb1d178d64b496ff8ecdb ld/testsuite/ld-elfvers/vers31.c
+b8b281ab353872a431ea8acefc969c08 ld/testsuite/ld-elfvers/vers31.dsym
+16b25cba9740f9d81f00ccd060795fb5 ld/testsuite/ld-elfvers/vers31.map
+4e6cd894f98b3986f8186c14b0f2e3d7 ld/testsuite/ld-elfvers/vers31.ver
+6b0b0fa55c95439cd34b997ab63b1d4a ld/testsuite/ld-elfvers/vers32.map
+95828e8bc4f7404dbf7526fb7bd0f192 ld/testsuite/ld-elfvers/vers32a.c
+a2d7608047175f1f9985a2f3b55fa352 ld/testsuite/ld-elfvers/vers32a.dsym
+11069de249c4f4a64927901070167be9 ld/testsuite/ld-elfvers/vers32a.ver
+a863ef5f1c11831afdaf974a863a0a63 ld/testsuite/ld-elfvers/vers32b.c
+4ca14c34fad7aee9f54ba020f0783562 ld/testsuite/ld-elfvers/vers32b.dsym
+db9c79e40e7fdca3d52eebe59cabf8af ld/testsuite/ld-elfvers/vers32b.ver
+ccd32291f12843a2fa3eef56c741404e ld/testsuite/ld-elfvers/vers4.c
+19bfa47f645607d5e10812a1da0f90f1 ld/testsuite/ld-elfvers/vers4.sym
+e3993b8a2e4f48f58b5d0ada10ba4561 ld/testsuite/ld-elfvers/vers4a.dsym
+19bfa47f645607d5e10812a1da0f90f1 ld/testsuite/ld-elfvers/vers4a.sym
+ce2400c96d4fc6123be2ef21d26463f5 ld/testsuite/ld-elfvers/vers4a.ver
+d1cfe9c70723b380ef055a682437ba30 ld/testsuite/ld-elfvers/vers5.c
+fc0867daf0fa30de46d2abacb8f9235f ld/testsuite/ld-elfvers/vers6.c
+89061a89d2c9496e0e97880d8c8c8c71 ld/testsuite/ld-elfvers/vers6.dsym
+5efeda74a14424e32fa46037c5d20d0d ld/testsuite/ld-elfvers/vers6.sym
+c6dda7839f06ae8858d0d413c6b436dc ld/testsuite/ld-elfvers/vers6.ver
+8c6338ab91836afb2918ef463e5e899a ld/testsuite/ld-elfvers/vers7.c
+9a7ae246a7154e67158fc0cdcda850d8 ld/testsuite/ld-elfvers/vers7.map
+141ee51799ca768deea7fb6747fbbfa2 ld/testsuite/ld-elfvers/vers7a.c
+3c7917b4f34e11502212e2c2ff5df713 ld/testsuite/ld-elfvers/vers7a.dsym
+0816eae48bb08edb4157eca3adf87f8e ld/testsuite/ld-elfvers/vers7a.sym
+ef725ba6c6212223dd638cc330f8ea07 ld/testsuite/ld-elfvers/vers7a.ver
+258f61144bcd39b444b75dba182129e6 ld/testsuite/ld-elfvers/vers8.c
+5eadb3d448dc734491d4524e07f15f63 ld/testsuite/ld-elfvers/vers8.map
+d7293eed499f910aaea96045a2ed2802 ld/testsuite/ld-elfvers/vers8.ver
+b4a26e17bd6950fc9e4bb0ab58b328fb ld/testsuite/ld-elfvers/vers9.c
+46706cabbc61aa28af8cc4e10e8ff65b ld/testsuite/ld-elfvers/vers9.dsym
+b376f4050a07745b5a27d5745e95135b ld/testsuite/ld-elfvers/vers9.sym
+98b81d902db96eca605162be67983d1f ld/testsuite/ld-elfvers/vers9.ver
+e7c2a2db4675513e62d8ffee0261114b ld/testsuite/ld-elfvsb/common.c
+4bb9ca85a1469d2af2ac23d7a8f540a0 ld/testsuite/ld-elfvsb/define.s
+ab58dd4aea8894af968cae07e98cce1c ld/testsuite/ld-elfvsb/elf-offset.ld
+311acb2b4478311b5dd7d43553e4167c ld/testsuite/ld-elfvsb/elfvsb.dat
+76478eabb555fa06acded5c157d6523b ld/testsuite/ld-elfvsb/elfvsb.exp
+77ac30a27063e4b52eabf74341e5a86e ld/testsuite/ld-elfvsb/hidden0.d
+976bd30c73849900caaed88cfb7244d7 ld/testsuite/ld-elfvsb/hidden1.d
+7a01224f5809d7cd3febff67ae8a633c ld/testsuite/ld-elfvsb/hidden2.d
+ab59f9746bcefe5b7366026573457d50 ld/testsuite/ld-elfvsb/hidden2.ld
+89ab48379336c8ecd7ea7cffdfe97ad3 ld/testsuite/ld-elfvsb/hidden2.s
+4bbbe82c403526fec859f0d13515aed8 ld/testsuite/ld-elfvsb/internal0.d
+6dd8cfa1fff25df3562ce03a8f44c837 ld/testsuite/ld-elfvsb/internal1.d
+c6bb503e50cc239732b047b2a912e731 ld/testsuite/ld-elfvsb/main.c
+66d400efff5fb93230ad8fcffe2bb186 ld/testsuite/ld-elfvsb/protected0.d
+facb8b5e9d55edeccf6658623ff6f56e ld/testsuite/ld-elfvsb/protected1.d
+61b7dea099eb11429588869780156a37 ld/testsuite/ld-elfvsb/sh1.c
+90812ab2b20216b53074ec98d6b410c3 ld/testsuite/ld-elfvsb/sh2.c
+164bf9fa3225c27578caf6a12ecc5779 ld/testsuite/ld-elfvsb/sh3.c
+44ad79da0c181cbfb55b2f36aac6a201 ld/testsuite/ld-elfvsb/test.c
+2f0256a43da423922ed1929bea438972 ld/testsuite/ld-elfvsb/undef.s
+046e158fe0af59748019e9d9d86bad4d ld/testsuite/ld-elfweak/bar.c
+96221199fd09def3e578f62aaa264c39 ld/testsuite/ld-elfweak/bar1a.c
+0e4106aabff604c09aa201ce238d54dd ld/testsuite/ld-elfweak/bar1b.c
+9f3b2607071ce0deb9d70f4e65b9cf9e ld/testsuite/ld-elfweak/bar1c.c
+e6ea1a4e59b88aef8402a40810ee14d7 ld/testsuite/ld-elfweak/dso.dsym
+ea0dc3c0c096c41a760230c1dbba5b5b ld/testsuite/ld-elfweak/dsodata.dsym
+671a2a5813ffb5b60a15d52b169f774f ld/testsuite/ld-elfweak/dsow.dsym
+494629f57fb3c0f4ca6336a5971875ef ld/testsuite/ld-elfweak/dsowdata.dsym
+a5217834af746e0716006ecdbab2c370 ld/testsuite/ld-elfweak/elfweak.exp
+0675dd6a498ed0fe35607abf03517c33 ld/testsuite/ld-elfweak/foo.c
+61ce595ea3b7dda0bed97536cc50991f ld/testsuite/ld-elfweak/foo1a.c
+d999331c477d9e594cdbe6642952da5a ld/testsuite/ld-elfweak/foo1b.c
+8ab030ac10dd0340d51ce6e293aa31b0 ld/testsuite/ld-elfweak/main.c
+d082bc04bb367593bf0d9403824584ac ld/testsuite/ld-elfweak/main1.c
+c0710d6b4f15dfa88f600b0e6b624077 ld/testsuite/ld-elfweak/size.dat
+ca873fa02ef818fdf7cadbf28d5830e9 ld/testsuite/ld-elfweak/size2.d
+7f8709337349165a691bfb796d9ba358 ld/testsuite/ld-elfweak/size2a.s
+3d27e4cedeb4cd50d6a3f4f56d3c6f6f ld/testsuite/ld-elfweak/size2b.s
+bb8fccf253fe11bdc128fb40ec1a1821 ld/testsuite/ld-elfweak/size_bar.c
+007464380f12ed6e882f8074a930292c ld/testsuite/ld-elfweak/size_foo.c
+79bafe4b4c71963e9efe1a2a99474fc6 ld/testsuite/ld-elfweak/size_main.c
+6ff9ed6df35266db3df63a42222569ff ld/testsuite/ld-elfweak/strong.dat
+60ee89049e15280964cd994ae23f4656 ld/testsuite/ld-elfweak/strong.sym
+7c19a4469f1f8e7fdf4bb5baa9a90223 ld/testsuite/ld-elfweak/strongcomm.sym
+5a6dd36b14499e59820a074213e6c5df ld/testsuite/ld-elfweak/strongdata.dat
+ca112024604c5006b1e1079eb9a110eb ld/testsuite/ld-elfweak/strongdata.sym
+dcf5e53a281f26dbad477cdba407e168 ld/testsuite/ld-elfweak/weak.dat
+671a2a5813ffb5b60a15d52b169f774f ld/testsuite/ld-elfweak/weak.dsym
+40040714fbc533439a8346bed87f39be ld/testsuite/ld-elfweak/weakdata.dat
+494629f57fb3c0f4ca6336a5971875ef ld/testsuite/ld-elfweak/weakdata.dsym
+740e6c75a141a24eb7156f293adc9c31 ld/testsuite/ld-fastcall/export.s
+85fb1bcd5f2d2732164c14cee7ad5fa1 ld/testsuite/ld-fastcall/fastcall.exp
+398cd605e80d06f2edbaa7bb1b81ee32 ld/testsuite/ld-fastcall/import.s
+cc41507ba2036874052bbab955b769b6 ld/testsuite/ld-frv/fdpic-pie-1.d
+c6a403fab71ad34af64723536c018756 ld/testsuite/ld-frv/fdpic-pie-2.d
+036f2e58a8bbbf45a822e963824e9eef ld/testsuite/ld-frv/fdpic-pie-5.d
+968734d40a8c4556b11608cedf60bc2d ld/testsuite/ld-frv/fdpic-pie-6-fail.d
+6e95984441beeca5f56bf0910b606fab ld/testsuite/ld-frv/fdpic-pie-6.d
+e288de935e2088c24012d910539e7aa8 ld/testsuite/ld-frv/fdpic-pie-7.d
+de5c6fce807f3bf3ea05d72e64847dc6 ld/testsuite/ld-frv/fdpic-pie-8.d
+e38d66851473ccb9acdb382ddf545173 ld/testsuite/ld-frv/fdpic-shared-1.d
+44f78d9d02ec25a226af8a0153d7f3ca ld/testsuite/ld-frv/fdpic-shared-2-fail.d
+2b1ecf50cb0ae530f538e41e534257e0 ld/testsuite/ld-frv/fdpic-shared-2.d
+cbb3d2f0bceb9c3d430f15b8157ac36a ld/testsuite/ld-frv/fdpic-shared-3.d
+c64f1ffc25ddabf83b05145828e6d973 ld/testsuite/ld-frv/fdpic-shared-4.d
+9eff95cea03ee8944f5ec4e22dc373bf ld/testsuite/ld-frv/fdpic-shared-5.d
+47129de7d81b57da3a558829c929a0e8 ld/testsuite/ld-frv/fdpic-shared-6-fail.d
+51002d66ea2bf42abadad053904a7dbe ld/testsuite/ld-frv/fdpic-shared-6.d
+3736ec9bc2505562d566f737de13d335 ld/testsuite/ld-frv/fdpic-shared-7.d
+df883e86ef4001df59397b1deddf779b ld/testsuite/ld-frv/fdpic-shared-8-fail.d
+4b0caf7ae0d50f59f001dd47aa8f791e ld/testsuite/ld-frv/fdpic-shared-8.d
+9400d6cc06da7cc32296226e84c3ff78 ld/testsuite/ld-frv/fdpic-shared-local-2.d
+d3d29fa692ee1b23ef350080de143c23 ld/testsuite/ld-frv/fdpic-shared-local-8.d
+ab6c75ef5e03df3b89c91ea68fbc803f ld/testsuite/ld-frv/fdpic-static-1.d
+62ce6d41d5c5e6ef2bd5852a7f173d41 ld/testsuite/ld-frv/fdpic-static-2.d
+38da2b407d6a293dcf365cac941194c8 ld/testsuite/ld-frv/fdpic-static-5.d
+7995cc7e9cd3d51c1854028567ddbd0e ld/testsuite/ld-frv/fdpic-static-6.d
+cc1097db4cd49675213230866ee591af ld/testsuite/ld-frv/fdpic-static-7.d
+930cf511857f462a346d097c88f7ffa0 ld/testsuite/ld-frv/fdpic-static-8.d
+2b882da98beaf0e3f6be9af4b2413dc3 ld/testsuite/ld-frv/fdpic.exp
+05e4f28acb84feeaf5710145293999db ld/testsuite/ld-frv/fdpic1.s
+c6d87683d1fa4888efa7ddc918099749 ld/testsuite/ld-frv/fdpic2.ldv
+cfa8675017dda6a3ec48235022d86a36 ld/testsuite/ld-frv/fdpic2.s
+d3a945e4376ce0ad93d1099a8dd3d1fc ld/testsuite/ld-frv/fdpic2min.ldv
+e455be96f7634ac1d9e36603b080db76 ld/testsuite/ld-frv/fdpic3.s
+63a031ad889a71153cb467efe899eb91 ld/testsuite/ld-frv/fdpic4.s
+cfb53b605cad0eede6f786417b40363d ld/testsuite/ld-frv/fdpic5.s
+5b6860c160aff69dfaedc50d8a0a6391 ld/testsuite/ld-frv/fdpic6.ldv
+a395bf06c37a4615ba0d0bcce7da833b ld/testsuite/ld-frv/fdpic6.s
+88ba83aa62acc75b0d9b601f2176e799 ld/testsuite/ld-frv/fdpic7.s
+d2006465db117fb02c0c9f1b5f6bd73c ld/testsuite/ld-frv/fdpic8.ldv
+ef0ec67da07de5b9741c96073f814175 ld/testsuite/ld-frv/fdpic8.s
+906b49e106ec05d8fd119a49bba35044 ld/testsuite/ld-frv/fdpic8min.ldv
+2aab41e05d636fa2c0c57d293674e41b ld/testsuite/ld-frv/fr450-link.d
+801d14a6810ebae1f5eefda4bac2a4d8 ld/testsuite/ld-frv/fr450-linka.s
+801d14a6810ebae1f5eefda4bac2a4d8 ld/testsuite/ld-frv/fr450-linkb.s
+801d14a6810ebae1f5eefda4bac2a4d8 ld/testsuite/ld-frv/fr450-linkc.s
+08403deb1fd72dd5f15a32a7d3d13503 ld/testsuite/ld-frv/frv-elf.exp
+98f770864b645ad0c0d7446ea2e654c8 ld/testsuite/ld-frv/tls-1-dep.s
+6237447698468c17c8cd3726671adc56 ld/testsuite/ld-frv/tls-1-shared.lds
+37fdb5cb8586d27c2d5465cd79a92132 ld/testsuite/ld-frv/tls-1.s
+e1f7b6df59d7016724ec121bb551bf0d ld/testsuite/ld-frv/tls-2.s
+f865508510be9a71fc6c039e3b113f7d ld/testsuite/ld-frv/tls-3.s
+44ba36d385d1535f2d4d3afc6924af55 ld/testsuite/ld-frv/tls-dynamic-1.d
+0a2cf2f8a22dd44afbd789b6dd0d9cee ld/testsuite/ld-frv/tls-dynamic-2.d
+2467f5b3a52c414033a73ca4b7b5de5e ld/testsuite/ld-frv/tls-dynamic-3.d
+e4c7efbfa45749da4fb80c9315bb4a5d ld/testsuite/ld-frv/tls-initial-shared-2.d
+840cf4a069daac4120e1b9f98aad9849 ld/testsuite/ld-frv/tls-pie-1.d
+f1685e112150f1c7e45762585ada9951 ld/testsuite/ld-frv/tls-pie-3.d
+8961a52a62db16458dc6252a46f492db ld/testsuite/ld-frv/tls-relax-dynamic-1.d
+cb0936e98f159cbf53a17c09049496e5 ld/testsuite/ld-frv/tls-relax-dynamic-2.d
+4c18cc9e6ebf9a3f2033bed06ad75b08 ld/testsuite/ld-frv/tls-relax-dynamic-3.d
+fc1ffa5981afb282539567848710be83 ld/testsuite/ld-frv/tls-relax-initial-shared-2.d
+d1d3a8cb2105a3fb2e6c55f91c1e8d7b ld/testsuite/ld-frv/tls-relax-pie-1.d
+ad57d800fd5554dea9ad46d4b417f6d8 ld/testsuite/ld-frv/tls-relax-pie-3.d
+1cc0150eec83ecbdc031b76cb7e26e8b ld/testsuite/ld-frv/tls-relax-shared-1.d
+abe458eed1c73c883f8d2a27a66fbb30 ld/testsuite/ld-frv/tls-relax-shared-2.d
+8a695eaaed5f713bb697bf511ffb9964 ld/testsuite/ld-frv/tls-relax-shared-3.d
+ae1bf958e55ae4c6f551d37a4b266e97 ld/testsuite/ld-frv/tls-relax-static-1.d
+dd8c28c9d4492ceca5c3ded82cc0921a ld/testsuite/ld-frv/tls-relax-static-3.d
+1ec18ca37d8187658f5a325dc3a6615a ld/testsuite/ld-frv/tls-shared-1-fail.d
+d9b11cc2a0549b9c6d4395d70a2267c1 ld/testsuite/ld-frv/tls-shared-1.d
+8874cc86dfb3de63a6861db32ab47bb0 ld/testsuite/ld-frv/tls-shared-2.d
+90b3609662b7b159ba82919e26480ca4 ld/testsuite/ld-frv/tls-shared-3.d
+6d6ed8c232b234daad8364fc28448526 ld/testsuite/ld-frv/tls-static-1.d
+ed3ef3320f222fa04b4b169e2476dd46 ld/testsuite/ld-frv/tls-static-3.d
+9c8894ae8e7c235c0285eb19d023557d ld/testsuite/ld-frv/tls.exp
+113edf8cd0e33b158a7971a13258deaf ld/testsuite/ld-gc/abi-note.d
+3fad837915c245c79835b1ee410092cd ld/testsuite/ld-gc/abi-note.s
+8374b35f68412379bade5bfa6ce108b2 ld/testsuite/ld-gc/dummy.s
+1280581bf96a5504b9f5b4c53f3eac57 ld/testsuite/ld-gc/gc.c
+8b398b7bbec6acc0aac9a98fb75962e4 ld/testsuite/ld-gc/gc.exp
+f358a4953dab53dfdbcd4468252eede5 ld/testsuite/ld-gc/noent.d
+6e9525f24877a300540fc764dc060c83 ld/testsuite/ld-gc/noent.s
+3bb07aab20b4927ea79436574a2cca57 ld/testsuite/ld-gc/pr11218-1.c
+f26c8add3dcc0793d01755e5bbb03024 ld/testsuite/ld-gc/pr11218-2.c
+d9baed37c81f7b2c2afe56409a56aa7b ld/testsuite/ld-gc/pr11218.d
+98e4b933ed2f369f8e11ef7283dd7a9e ld/testsuite/ld-gc/start.d
+d4b6668928d4109f8367ed06994cd9bd ld/testsuite/ld-gc/start.s
+98c4a6fd6872bcd109e317822e8a76b0 ld/testsuite/ld-h8300/gcsection.d
+6fe0410a922b80e1abc7ca25bf822f97 ld/testsuite/ld-h8300/gcsection.s
+cecd4ded0bc74aea9ffbb21f55ff43f1 ld/testsuite/ld-h8300/h8300.exp
+e6a00aab6e0b5068195989a402c44d69 ld/testsuite/ld-h8300/relax-2.d
+4f488bd30141b1f3cea35bd59a56bc2d ld/testsuite/ld-h8300/relax-2.s
+dfb37fd13b0c076c375d173f915b344d ld/testsuite/ld-h8300/relax-3-coff.d
+97c8bdda98b7d9c79d9c8fda62d56489 ld/testsuite/ld-h8300/relax-3.d
+a2e9dec4641c7321bc8b3a2425a2ef4e ld/testsuite/ld-h8300/relax-3.s
+6695dd115983f75263961b8f46393d1d ld/testsuite/ld-h8300/relax-4-coff.d
+5792d761c4b0c3456a39001785b73f87 ld/testsuite/ld-h8300/relax-4.d
+1dba717565a0240b28da4a5ad6ea175d ld/testsuite/ld-h8300/relax-4.s
+8e23d5349b426ea3bd58b6461dbfa3f0 ld/testsuite/ld-h8300/relax-5-coff.d
+d461ec778d28c967a8d80eb4453ffe04 ld/testsuite/ld-h8300/relax-5.d
+e99729d992d349d8efacc4be17ffc728 ld/testsuite/ld-h8300/relax-5.s
+6fc6e5f4f2d011f032d967d2c5c47a9b ld/testsuite/ld-h8300/relax-6-coff.d
+f03ce5f2426f3b9c3712d3ba8f266e30 ld/testsuite/ld-h8300/relax-6.d
+71494a5071587d58c44881ddba8f98b8 ld/testsuite/ld-h8300/relax-6.s
+a6d0a3d0032213f8a5f6a37259b4dad1 ld/testsuite/ld-h8300/relax.d
+cf8d1ef781c6a11ee4c2c65408f52849 ld/testsuite/ld-h8300/relax.s
+4eab08278dc62388fa451c0d215263f0 ld/testsuite/ld-i386/abs.d
+4223c02660ef295874b7f46e534bb756 ld/testsuite/ld-i386/abs.s
+abbd4c0e6060fa01f7f17ecdddf529b9 ld/testsuite/ld-i386/alloc.d
+170462078f6b736209d66144d5298673 ld/testsuite/ld-i386/alloc.s
+2a89bceef227b5ae12bb10f9d0904a4c ld/testsuite/ld-i386/alloc.t
+3514d60eeebcfc8f7d93239d00a042fa ld/testsuite/ld-i386/combreloc.d
+bfad8fd9caab1c503c3e547132bba8e3 ld/testsuite/ld-i386/combreloc.s
+3d3179e084e0db2e7dfa246916ca8b9f ld/testsuite/ld-i386/compressed1.d
+09a2601cf50aa61814ade41b8f3bc213 ld/testsuite/ld-i386/compressed1.s
+315a02c2a12f88930a0356cb4c14212d ld/testsuite/ld-i386/discarded1.d
+abd0b94a0fe91990730795e06e681e3b ld/testsuite/ld-i386/discarded1.s
+932839e2d4e600dcdc966010e4965a31 ld/testsuite/ld-i386/discarded1.t
+6a24bf2c11edfd744205734d0d2776f1 ld/testsuite/ld-i386/emit-relocs.d
+47a609aa14618023c1317f741f3810de ld/testsuite/ld-i386/emit-relocs.s
+e0b4ac393b55aa6dde9eeb2eac8dd281 ld/testsuite/ld-i386/hidden1.d
+d3e5ca870e218a1b1dcb656e0bfaa3ce ld/testsuite/ld-i386/hidden1.s
+fd28ba522821f5d534e85cafc8e5eac4 ld/testsuite/ld-i386/hidden2.d
+ecab80f3eb47cc5bc5871e947f9b395e ld/testsuite/ld-i386/hidden2.s
+e0b4ac393b55aa6dde9eeb2eac8dd281 ld/testsuite/ld-i386/hidden3.d
+d9d64e8ca2b43c851eacaa021767eafa ld/testsuite/ld-i386/hidden3.s
+051f784ea9318b8e384a43f178c1208a ld/testsuite/ld-i386/i386.exp
+74112f5d00b1bc8acfb9165b1b9ddd0c ld/testsuite/ld-i386/nogot1.d
+6578c6fdcd635f9a6f10174cc27f5125 ld/testsuite/ld-i386/nogot1.s
+1fe6ae6b1583214e2d42d6b94b234708 ld/testsuite/ld-i386/nogot2.d
+adf3d3417bacbbbbd44af52a3a9d1879 ld/testsuite/ld-i386/nogot2.s
+55da47cb01da3536927b36f6abf83bbc ld/testsuite/ld-i386/pcrel16.d
+86c55cbae78801844b5fbab4a5134989 ld/testsuite/ld-i386/pcrel16.s
+b5c9f63c2f1ee687e18c29a5560da724 ld/testsuite/ld-i386/pcrel16abs.d
+c28929bb26afb7e6e572ea7a94b2c468 ld/testsuite/ld-i386/pcrel16abs.s
+4d55687220a930ac78d5153b16fa70ad ld/testsuite/ld-i386/pcrel8.d
+72a801ea2498c750a89388b264ee332f ld/testsuite/ld-i386/pcrel8.s
+588029a62ada206efa182d3931deb519 ld/testsuite/ld-i386/pr12627.d
+01fbdaad0c2dd99a3c9a5aed298331b7 ld/testsuite/ld-i386/pr12627.s
+6efefb3ab9456a4a3f199f20488107fb ld/testsuite/ld-i386/pr12627.t
+aaea65b76e9800110d84072052355f06 ld/testsuite/ld-i386/pr12718.d
+f2aa8181f8bb6e72317ba9cf91579fa6 ld/testsuite/ld-i386/pr12718.s
+e3d30671954e979de708a6c0ef1b3dc6 ld/testsuite/ld-i386/pr12921.d
+9bc8273e473647c31df4d698250c1af1 ld/testsuite/ld-i386/pr12921.s
+92de073b153a3be8e4c2e986b9bc785d ld/testsuite/ld-i386/protected1.d
+538ea3fd8f05afd6d0dc78414f610d00 ld/testsuite/ld-i386/protected1.s
+339ba4f5757c67ee3e47afe85ecb3617 ld/testsuite/ld-i386/protected2.d
+3c225f378aa9175db095f949d3da69ee ld/testsuite/ld-i386/protected2.s
+e674277f637c3f35089da7167f4af13f ld/testsuite/ld-i386/protected3.d
+1a8d3bf27adc1c5b4d3a8332787b13d8 ld/testsuite/ld-i386/protected3.s
+d582159967d9ddbb79a87bedf04bfb45 ld/testsuite/ld-i386/reloc.d
+ee1b7cbb64cf7c75b90dc73e1c708915 ld/testsuite/ld-i386/reloc.s
+17cf5ec4f90f397f7ec1cb7bb8e9fac0 ld/testsuite/ld-i386/tlsbin.dd
+ee38fb15d66d91ca144cf419142bc1ad ld/testsuite/ld-i386/tlsbin.rd
+f1f22d7f610addfd37d52a7882ff0f9e ld/testsuite/ld-i386/tlsbin.s
+592ac2866623f1aaaede2fb4fbd4ca8f ld/testsuite/ld-i386/tlsbin.sd
+c918c7d05392fcad4b7ce29e9dee9bd2 ld/testsuite/ld-i386/tlsbin.td
+72e94d1daa0ef284f9d26c200f42fa52 ld/testsuite/ld-i386/tlsbindesc.dd
+19cff7f0908f26e8d80fb4b574a40bff ld/testsuite/ld-i386/tlsbindesc.rd
+c8e339bd9d5127a625f86dbf904aae86 ld/testsuite/ld-i386/tlsbindesc.s
+a1972e936a45133bfe60151ad66506a6 ld/testsuite/ld-i386/tlsbindesc.sd
+7106b1457d00c4cf9d6c8b6999843711 ld/testsuite/ld-i386/tlsbindesc.td
+f9c933eed17694eb542d9e7f42100728 ld/testsuite/ld-i386/tlsbinpic.s
+1d1a8f085cb88f347e6437da6ee8d8bf ld/testsuite/ld-i386/tlsdesc.dd
+56e48a5bc09a2b38419fca204ead7f0c ld/testsuite/ld-i386/tlsdesc.rd
+4ec4e709a96a11f0ed0cf6be12ab5fff ld/testsuite/ld-i386/tlsdesc.s
+1b77cde328a2a4224b9c5beebb573b18 ld/testsuite/ld-i386/tlsdesc.sd
+40510d27f6f5e766cdd9c4881e958ced ld/testsuite/ld-i386/tlsdesc.td
+4bb8cd4266640900774fe1b4ea80b868 ld/testsuite/ld-i386/tlsg.s
+52f26819c8f6efd2cd9d5b378518d949 ld/testsuite/ld-i386/tlsg.sd
+534ab7075af497c71c5d52d741b2955b ld/testsuite/ld-i386/tlsgd1.dd
+63026313b9fbc91347fd5886a87bc353 ld/testsuite/ld-i386/tlsgd1.s
+9ed97b84890d783b4d7831dd37adf3d5 ld/testsuite/ld-i386/tlsgd2.d
+2d9d0b02593ede41b0a823be4445cc9b ld/testsuite/ld-i386/tlsgd2.s
+0f868a0a5f9cae4adb6a4d76e88940fa ld/testsuite/ld-i386/tlsgdesc.dd
+38914ff1571c535bfd90c870b4feab08 ld/testsuite/ld-i386/tlsgdesc.rd
+085d73ea85a181ebdc323e641e36d1cb ld/testsuite/ld-i386/tlsgdesc.s
+a8274a590c125fa47d4c01ad12097b05 ld/testsuite/ld-i386/tlsie1.dd
+4d5c62f626a9092729a89456caef56e5 ld/testsuite/ld-i386/tlsie1.s
+0c53cf2b848a225ea05de9ce327469ea ld/testsuite/ld-i386/tlsie2.d
+305f1b6124b40a0bd5d46380336613bb ld/testsuite/ld-i386/tlsie2.s
+2ebeb06b9e469679c1137f8dd88648e5 ld/testsuite/ld-i386/tlsie3.d
+4f8063ce23f7412837909b1679da6002 ld/testsuite/ld-i386/tlsie3.s
+3c1230917a4bd2133b4fd0e4392ba5eb ld/testsuite/ld-i386/tlsie4.d
+be1c017c2ef4b96e45141b7623f44f25 ld/testsuite/ld-i386/tlsie4.s
+2472189eb7d10de2b023266f3cd2b430 ld/testsuite/ld-i386/tlsie5.d
+bfb250693eb4f19f41d0e22612740f41 ld/testsuite/ld-i386/tlsie5.s
+2e74682a19e57586b9823e31ecf73198 ld/testsuite/ld-i386/tlsindntpoff.dd
+eb49cc94ea6fe44f33898f97f42637f2 ld/testsuite/ld-i386/tlsindntpoff.s
+a2258ef6fa985a63e188695313feafc2 ld/testsuite/ld-i386/tlsld1.dd
+8c31e6d117eb25b1940b227863d86626 ld/testsuite/ld-i386/tlsld1.s
+1bdd583619347d5963aaad2762e13865 ld/testsuite/ld-i386/tlslib.s
+131b46a77cfbdd6dca5bcc9fa4988cdd ld/testsuite/ld-i386/tlsnopic.dd
+d323de8df6f10c7acdd9b6d9e94a01f5 ld/testsuite/ld-i386/tlsnopic.rd
+f74baa6eb70c0242343eeeb2ddba7017 ld/testsuite/ld-i386/tlsnopic.sd
+fd79d8e39eadeb4103c9d00fe0db5fe0 ld/testsuite/ld-i386/tlsnopic1.s
+aaa7d0d4d8b25c5f3462865cc7574b49 ld/testsuite/ld-i386/tlsnopic2.s
+458d207e2a9c36e3c4140f9fa80d6f09 ld/testsuite/ld-i386/tlspic.dd
+0682da90f3e1a1a3719df380835feec0 ld/testsuite/ld-i386/tlspic.rd
+a87e2c1b0b73ba2e42e339c317f289ba ld/testsuite/ld-i386/tlspic.sd
+4e485196fb484d720e6512187e28dfc4 ld/testsuite/ld-i386/tlspic.td
+4b385578f91c4d3a011c1b67e781f755 ld/testsuite/ld-i386/tlspic1.s
+1be6d8e1547c710f7bc12028c6522832 ld/testsuite/ld-i386/tlspic2.s
+e20febaba77d2da3c9261f1e3d8a84c3 ld/testsuite/ld-i386/tlspie1.d
+bf844d037f8c9ed6f64a640bfb1598fc ld/testsuite/ld-i386/tlspie1.s
+1d373c4f9365fedc0b3ab9009f548c82 ld/testsuite/ld-i386/tlspie2.d
+7eacd5087c13cbe24eb858f83a9be514 ld/testsuite/ld-i386/tlspie2.s
+b7f82843784cba881b7ea4785c86f790 ld/testsuite/ld-i386/vxworks1-lib.dd
+e79bf538427185b3ca75d00211102266 ld/testsuite/ld-i386/vxworks1-lib.nd
+a0819073ff1965a830139df2e13fed37 ld/testsuite/ld-i386/vxworks1-lib.rd
+5c0f0bd45acc45bbd63ef60c5c244d8f ld/testsuite/ld-i386/vxworks1-lib.s
+6dbdc5d4346169b9a3af98707d77be72 ld/testsuite/ld-i386/vxworks1-lib.td
+57e13e14adacc62cab22da622bbcb01e ld/testsuite/ld-i386/vxworks1-static.d
+8240644ff6e564425c5c3ed86538e298 ld/testsuite/ld-i386/vxworks1.dd
+fe0833150ad45b3187eaec9f4ee96ccd ld/testsuite/ld-i386/vxworks1.ld
+1f702480f27e22a8cae404bd9288c974 ld/testsuite/ld-i386/vxworks1.rd
+94b6da333cef7b619c459007a7afbbe5 ld/testsuite/ld-i386/vxworks1.s
+165ed1561458c0973255f985be876845 ld/testsuite/ld-i386/vxworks2-static.sd
+3f44beb3168341e8a45bfef5bb7e4076 ld/testsuite/ld-i386/vxworks2.s
+7afb4e2fc8be35ad985dcb2e21b7cbef ld/testsuite/ld-i386/vxworks2.sd
+75d3de90ae0af66942afe3c19de40dfd ld/testsuite/ld-i386/warn1.d
+cdf75144fa202701e59c77afe5e9adae ld/testsuite/ld-i386/warn1.s
+3a4d9e7d99555e90d70ca58fb8d82cd1 ld/testsuite/ld-i386/zero.s
+1909c12b33ef9687eb6af854ae5fb6bf ld/testsuite/ld-ia64/ia64.exp
+ef16f67383acdaaea0d59b046f51d940 ld/testsuite/ld-ia64/line.exp
+f58ac156c302a4a37579dd871018c503 ld/testsuite/ld-ia64/link-order.d
+6d0f24ad075bbdb8e8f0c39bd9eafbc0 ld/testsuite/ld-ia64/local1.d
+9f911aada66fa0c166c34664d8ae58c6 ld/testsuite/ld-ia64/local1.map
+45c2ee7ef4a936af8792999bc0ccf44d ld/testsuite/ld-ia64/local1.s
+06ef53a0168a0c91bb4c68dc3afc293b ld/testsuite/ld-ia64/merge1.d
+beb0c44acd970fe4c427256cd7d831a2 ld/testsuite/ld-ia64/merge1.s
+98e0b78c20d0cd7801cb7e515c3a68e5 ld/testsuite/ld-ia64/merge2.d
+a868b7b0681c6c238417e4bec0633bd2 ld/testsuite/ld-ia64/merge2.s
+d83f6380e0e28fdd3a1fbbbe7ad4bdcb ld/testsuite/ld-ia64/merge3.d
+3d3e06880036e684aeed1a68d7ef0f95 ld/testsuite/ld-ia64/merge3.s
+c9dd12b089e1aeb0c0a88a1a294f8576 ld/testsuite/ld-ia64/merge4.d
+f508927ed0b65390c57a6a996644a8eb ld/testsuite/ld-ia64/merge4.s
+b2b540be1a334a363a1fc9c8a40173f9 ld/testsuite/ld-ia64/merge5.d
+7fb26d27806c80c93a886bfbf89daeda ld/testsuite/ld-ia64/merge5.s
+8ec174d922ffce784b6c99f95dda9d3c ld/testsuite/ld-ia64/tlsbin.dd
+717ad7a3d785354a0f72a2273b7ce6f5 ld/testsuite/ld-ia64/tlsbin.rd
+e493af684ae154e5de6c44ac33c9b9bf ld/testsuite/ld-ia64/tlsbin.s
+1dd796f756e270667007008752d2e9ee ld/testsuite/ld-ia64/tlsbin.sd
+5425837cb644916b8fe5160eb7cac50a ld/testsuite/ld-ia64/tlsbin.td
+6351909433c62754cacb97095fbce3cb ld/testsuite/ld-ia64/tlsbinpic.s
+e0b0a05afe5e6efd10bc9fa42a6a0731 ld/testsuite/ld-ia64/tlsg.s
+7dbb29f667fa0797b82d97e60dea87ba ld/testsuite/ld-ia64/tlsg.sd
+1b26633dd00cb298fda05dd396fa6d88 ld/testsuite/ld-ia64/tlslib.s
+c3768bbbc35442a51b419997baf497da ld/testsuite/ld-ia64/tlspic.dd
+afea8bcec5e1cb7941be064ba247f43e ld/testsuite/ld-ia64/tlspic.rd
+1bac51ec2817188e77fcf070995210c7 ld/testsuite/ld-ia64/tlspic.sd
+4a995a6ff0cbe574e7514ac741408eac ld/testsuite/ld-ia64/tlspic.td
+0d107c5a1c032fcfa98538191696c5d4 ld/testsuite/ld-ia64/tlspic1.s
+1be6d8e1547c710f7bc12028c6522832 ld/testsuite/ld-ia64/tlspic2.s
+cb7eab87f6359afcce07348873f889ef ld/testsuite/ld-ia64/undefined.s
+54a3f0e6956e0ba92dc756b923be63c7 ld/testsuite/ld-ifunc/binutils.exp
+9cc79490ef74911c65bf9175cf722c6f ld/testsuite/ld-ifunc/ifunc-1-local-x86.d
+ace31ba9f2c7654cf96162af09051cf6 ld/testsuite/ld-ifunc/ifunc-1-local-x86.s
+d0464020e48e8dc0eaed21fefd1e659f ld/testsuite/ld-ifunc/ifunc-1-x86.d
+1ef34c7eba10038c97f00445717c80f7 ld/testsuite/ld-ifunc/ifunc-1-x86.s
+944d8592dc4a7c764677faf63a207602 ld/testsuite/ld-ifunc/ifunc-10-i386.d
+a8ed4afd6fad414bee6c05ed27794fc5 ld/testsuite/ld-ifunc/ifunc-10-i386.s
+2e5476a79546fb8c24820be4a316ab81 ld/testsuite/ld-ifunc/ifunc-10-x86-64.d
+bea1bb1dfc873471c7aaa3c88618d5a6 ld/testsuite/ld-ifunc/ifunc-10-x86-64.s
+944d8592dc4a7c764677faf63a207602 ld/testsuite/ld-ifunc/ifunc-11-i386.d
+1a0b0e1d75aaa2649329fa1a7d30c2ce ld/testsuite/ld-ifunc/ifunc-11-i386.s
+2e5476a79546fb8c24820be4a316ab81 ld/testsuite/ld-ifunc/ifunc-11-x86-64.d
+1b0289afa3a43a53b5f79d2f3bf4d73a ld/testsuite/ld-ifunc/ifunc-11-x86-64.s
+1571bc7a00b4b6a6c842e0c18680ea21 ld/testsuite/ld-ifunc/ifunc-12-i386.d
+51f087f6b851251109eaaedf229d49eb ld/testsuite/ld-ifunc/ifunc-12-i386.s
+0379f2fafebec90c929c970bc893ca04 ld/testsuite/ld-ifunc/ifunc-12-x86-64.d
+c5d904e46a444774c06e39c03bec94e5 ld/testsuite/ld-ifunc/ifunc-12-x86-64.s
+e3665cae20b295a927e787bae8b9c017 ld/testsuite/ld-ifunc/ifunc-13-i386.d
+fb55cd07e81221f0233e3efc7e83e88b ld/testsuite/ld-ifunc/ifunc-13-x86-64.d
+8f25b51a30ab1a2d47a6699bf6a7de72 ld/testsuite/ld-ifunc/ifunc-13a-i386.s
+b9572b418294bff5a7551c45d1485af9 ld/testsuite/ld-ifunc/ifunc-13a-x86-64.s
+a064bb4c91988373ef0548639f5e689f ld/testsuite/ld-ifunc/ifunc-13b-i386.s
+a064bb4c91988373ef0548639f5e689f ld/testsuite/ld-ifunc/ifunc-13b-x86-64.s
+d0f1714e4d80e23af3d3fc28e6c72b4c ld/testsuite/ld-ifunc/ifunc-14-i386.d
+d9883f726e8bbfbd7203affe7233db8a ld/testsuite/ld-ifunc/ifunc-14-x86-64.d
+fb6d109c14fc66d6234c2c7c539fe095 ld/testsuite/ld-ifunc/ifunc-14a.s
+b5aff5ef073fa09a0dbbfd555e4ff66c ld/testsuite/ld-ifunc/ifunc-14b.s
+3196233b7dd59c8abf0a4d102348d8c5 ld/testsuite/ld-ifunc/ifunc-15-i386.d
+ddb73d1cd99a95fe800cc099a7f627da ld/testsuite/ld-ifunc/ifunc-15-i386.s
+975ba252afac4003cc5afb81e8341b3e ld/testsuite/ld-ifunc/ifunc-15-x86-64.d
+24590608e6a9d6df360f4a007924b8ed ld/testsuite/ld-ifunc/ifunc-15-x86-64.s
+b14911e14aa4147c7e48720c958dd9fd ld/testsuite/ld-ifunc/ifunc-2-i386.d
+5450011e55e527e9c41f747e20d93356 ld/testsuite/ld-ifunc/ifunc-2-i386.s
+b14911e14aa4147c7e48720c958dd9fd ld/testsuite/ld-ifunc/ifunc-2-local-i386.d
+0ed85769aaa30ec681de3f44e8b763b1 ld/testsuite/ld-ifunc/ifunc-2-local-i386.s
+ea70d3f901e675db719d68d665efc0f3 ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.d
+1c39b0c1b74d581411debed0c6eb67e6 ld/testsuite/ld-ifunc/ifunc-2-local-x86-64.s
+ea70d3f901e675db719d68d665efc0f3 ld/testsuite/ld-ifunc/ifunc-2-x86-64.d
+1c39b0c1b74d581411debed0c6eb67e6 ld/testsuite/ld-ifunc/ifunc-2-x86-64.s
+cec051f23f977dd374cdf989a646d79d ld/testsuite/ld-ifunc/ifunc-3-x86.s
+31905fb416818a1606133ae70d675464 ld/testsuite/ld-ifunc/ifunc-3a-x86.d
+6e0c8a146aeb44cdd145452d5884e9e3 ld/testsuite/ld-ifunc/ifunc-3b-x86.d
+330efae2c2c55b0bb8cd97893a7768cb ld/testsuite/ld-ifunc/ifunc-4-local-x86.d
+0d74f7f1a3e809fa3c19babc8e826e2e ld/testsuite/ld-ifunc/ifunc-4-local-x86.s
+330efae2c2c55b0bb8cd97893a7768cb ld/testsuite/ld-ifunc/ifunc-4-x86.d
+24e5b658bf605597f36312d4d57c1d52 ld/testsuite/ld-ifunc/ifunc-4-x86.s
+46a17e657ce4e8c7105e7f96aeb8809d ld/testsuite/ld-ifunc/ifunc-4a-x86.d
+b6f602ca474976d6c3a5f501303fa026 ld/testsuite/ld-ifunc/ifunc-5-i386.s
+19fe7c13fb1d09f10a797eb2ef7b614a ld/testsuite/ld-ifunc/ifunc-5-local-i386.s
+34166ca01692e76c29f009ceb28cf455 ld/testsuite/ld-ifunc/ifunc-5-local-x86-64.s
+cb32ce224186652e3e17cc21090aa914 ld/testsuite/ld-ifunc/ifunc-5-x86-64.s
+4c7e11d13f7849ad3843d8c5843e1dec ld/testsuite/ld-ifunc/ifunc-5a-i386.d
+68b83eafc3e282540f275a94ef698316 ld/testsuite/ld-ifunc/ifunc-5a-local-i386.d
+00d3f6b3a8d2647bf9caab9474572c4f ld/testsuite/ld-ifunc/ifunc-5a-local-x86-64.d
+ab6453df0fcce699fa14e3f16ac08764 ld/testsuite/ld-ifunc/ifunc-5a-x86-64.d
+40a7b582f5f0ae2d19ddaafe9eaa9d97 ld/testsuite/ld-ifunc/ifunc-5b-i386.d
+6d16ccf06c97a5c7727e397aa7bfcfbc ld/testsuite/ld-ifunc/ifunc-5b-local-i386.d
+103356fa54f7510ebb11e1796d3fe237 ld/testsuite/ld-ifunc/ifunc-5b-local-x86-64.d
+3d1a94dda9922568a16ad8b32c3664b9 ld/testsuite/ld-ifunc/ifunc-5b-x86-64.d
+0a6d3eff262d42539ba730775a9b40e2 ld/testsuite/ld-ifunc/ifunc-5r-local-i386.d
+a4c4f736d7099b3cd5aaf89d1d354677 ld/testsuite/ld-ifunc/ifunc-5r-local-x86-64.d
+c33bd20b84debeef306fbac51829d907 ld/testsuite/ld-ifunc/ifunc-6-i386.s
+fcb22cf8a1f82a48942ed7db399e8991 ld/testsuite/ld-ifunc/ifunc-6-x86-64.s
+9e9cddc515d5c76e1d37ada15625ac4f ld/testsuite/ld-ifunc/ifunc-6a-i386.d
+dd69dff6d6f29a2fb47fb84bef86d39e ld/testsuite/ld-ifunc/ifunc-6a-x86-64.d
+aa56268b6d3699099403c9671116b33b ld/testsuite/ld-ifunc/ifunc-6b-i386.d
+982979daf8108fdd178362630417119a ld/testsuite/ld-ifunc/ifunc-6b-x86-64.d
+d2bc7a98e1ad3f5facb4df516e58643f ld/testsuite/ld-ifunc/ifunc-7-i386.s
+6e017e80c10f7b0ceb5e6d93357a836a ld/testsuite/ld-ifunc/ifunc-7-x86-64.s
+b0367de66362fb419d7d15833b4171ed ld/testsuite/ld-ifunc/ifunc-7a-i386.d
+ad222808f38f3f529802c8bfd986c915 ld/testsuite/ld-ifunc/ifunc-7a-x86-64.d
+f071da74779f564eb421eaf7ee0f294c ld/testsuite/ld-ifunc/ifunc-7b-i386.d
+2509498bbd43a843b1912cefd2b9d3e9 ld/testsuite/ld-ifunc/ifunc-7b-x86-64.d
+a08d86190092c51c1e03fab075dfdda6 ld/testsuite/ld-ifunc/ifunc-8-i386.d
+8ceeb8e10866511cd86eff1fc0de5c3b ld/testsuite/ld-ifunc/ifunc-8-x86-64.d
+ff52b26ccf21a1a818028ec0c49d21b0 ld/testsuite/ld-ifunc/ifunc-8a-i386.s
+c33bfa83931c45521c6e26ea02d5210c ld/testsuite/ld-ifunc/ifunc-8a-x86-64.s
+4b342a6f2f139f8ee1cdd8467c882b33 ld/testsuite/ld-ifunc/ifunc-8b-i386.s
+4b342a6f2f139f8ee1cdd8467c882b33 ld/testsuite/ld-ifunc/ifunc-8b-x86-64.s
+44a06231c791259992a3a242397c2b69 ld/testsuite/ld-ifunc/ifunc-9-x86.d
+b8920736ffb9e4c897a1c81ab98b35f0 ld/testsuite/ld-ifunc/ifunc-9-x86.s
+d12ae37b8e1f5b9019c1e3e2afb8153f ld/testsuite/ld-ifunc/ifunc.exp
+8a7b88909ed4d84e3d7f3062637e9b79 ld/testsuite/ld-ifunc/lib.c
+701455d51e8774d020b357d1c3b38367 ld/testsuite/ld-ifunc/prog.c
+a6407fc06c5f396064f2b3438cdbc266 ld/testsuite/ld-ifunc/test-1.c
+b5cd1bbd02a9b99f7f210a24255ffd0c ld/testsuite/ld-ifunc/test-2.c
+5e692e5e97c771d0e2e5048b44fd0854 ld/testsuite/ld-libs/lib-1.s
+ebb73d4ce0e23c5f2bd2771f10f3505b ld/testsuite/ld-libs/lib-2.d
+dbb96155f844adc2ad44b4cb85c1fd97 ld/testsuite/ld-libs/lib-2.s
+fc7d5109e6b60e7d53e9cccb81d1d359 ld/testsuite/ld-libs/libs.exp
+05a3d3ea0d652f9bc4bc1d813e085927 ld/testsuite/ld-linkonce/linkonce.exp
+5193ef30618a2f1f3af9019b7f4f62de ld/testsuite/ld-linkonce/x.s
+0f2ec669dedf9925f6ae0db3b1a43506 ld/testsuite/ld-linkonce/y.s
+525c44e6b03ce4357317f7dd3731d299 ld/testsuite/ld-linkonce/zeroeh.ld
+3402fd8f52353a44ac4a9011314bbdbf ld/testsuite/ld-linkonce/zeroehl32.d
+d4849e6542dd8b7ca3142e235d2b144b ld/testsuite/ld-m68hc11/adj-brset.d
+d064b67c8fa10a7c428de1ea6b9a1834 ld/testsuite/ld-m68hc11/adj-brset.s
+23949bf947540228ba8d72007abbd334 ld/testsuite/ld-m68hc11/adj-jump.d
+f8a56fc695e6ebcf52992449c5d76123 ld/testsuite/ld-m68hc11/adj-jump.s
+f2536953f333e9c10fd61191bd035e1b ld/testsuite/ld-m68hc11/bug-1403.d
+062e1dc7481f152c9b001e94f92b296a ld/testsuite/ld-m68hc11/bug-1403.s
+f3d845900cf3e345e78e8c3bec1ba8d1 ld/testsuite/ld-m68hc11/bug-1417.d
+4f8edafd4ad832f9189f7314a7b5f362 ld/testsuite/ld-m68hc11/bug-1417.s
+9d7f22b8c0e82bbde0bac7d72d89c4f6 ld/testsuite/ld-m68hc11/bug-3331.d
+6c76f540acdb2c2c1146f9445b6d85a7 ld/testsuite/ld-m68hc11/bug-3331.s
+1a8ffcaad7f9e84c1a1d1bd304ad8557 ld/testsuite/ld-m68hc11/far-hc11.d
+1361ee4f406e378eadeb5c629ba2d8a3 ld/testsuite/ld-m68hc11/far-hc11.s
+8aa3bad7129045a65da13eb15c286a54 ld/testsuite/ld-m68hc11/far-hc12.d
+abab65605cd8069cfb12e2bfb6ed0d7a ld/testsuite/ld-m68hc11/far-hc12.ld
+c66bf3caa9a73d1c7af542339777d150 ld/testsuite/ld-m68hc11/far-hc12.s
+062d67e556aa82cb73f9c74135511aed ld/testsuite/ld-m68hc11/link-hc12.s
+21f1eac8547085190c61077bf5de4016 ld/testsuite/ld-m68hc11/link-hcs12.d
+8f9300e38e9f0e03d41c02ab51a6fe94 ld/testsuite/ld-m68hc11/link-hcs12.s
+1c5d08d78e010248731f156f853fa4c4 ld/testsuite/ld-m68hc11/m68hc11.exp
+bdfe2be8c102635c96318d5b5a441e70 ld/testsuite/ld-m68hc11/relax-direct.d
+4b6225fc6c3bd84cfb4756daa73871b0 ld/testsuite/ld-m68hc11/relax-direct.s
+7d4b0b484e170fa223129467648ce61c ld/testsuite/ld-m68hc11/relax-group.d
+5f6185c53d79c83c661fbf096788bf1b ld/testsuite/ld-m68hc11/relax-group.s
+bd0d77a42707a1a30aa30a4d4cba1fce ld/testsuite/ld-m68k/got-1.d
+cc5e380add576706205ea6d7ff57ea74 ld/testsuite/ld-m68k/got-1.s
+c9743fc977113ae4f3981ea8bf789e03 ld/testsuite/ld-m68k/got-multigot-12-13-14-34-35-ok.d
+64597ba24c8a3a527ab4d86cea9071db ld/testsuite/ld-m68k/got-multigot-14-ok.d
+d1a55a1211bde7cc2542b745250bc4e0 ld/testsuite/ld-m68k/got-multigot-15-er.d
+295cec24b15d83ee5ea92ddfb240602c ld/testsuite/ld-m68k/got-negative-12-13-14-34-ok.d
+d73589a3a0e02601aa50066f14028cc1 ld/testsuite/ld-m68k/got-negative-12-13-14-35-er.d
+295cec24b15d83ee5ea92ddfb240602c ld/testsuite/ld-m68k/got-negative-14-ok.d
+681d4d181a9e9d1c1b34ebf47bdd8381 ld/testsuite/ld-m68k/got-negative-15-er.d
+5d1e61d3323d8e159922912c824ac209 ld/testsuite/ld-m68k/got-single-12-ok.d
+7603fdc8f523e8e5b1a2609688aa400f ld/testsuite/ld-m68k/got-single-13-er.d
+be898d22bfd9f57e761859dee750a7ba ld/testsuite/ld-m68k/got-xgot-12-13-14-15-34-35-ok.d
+4bcbba04fa72a8cf0c4d36e5cf41c655 ld/testsuite/ld-m68k/got-xgot-15-ok.d
+3d66b1dcb169ee2296a57f40470d3d03 ld/testsuite/ld-m68k/isaa-mac.d
+fd09cc020dd5e6330dfdc9b18283bc6d ld/testsuite/ld-m68k/isaa-mac.s
+7788f747bf8978d7dd787ec4e3a64c4e ld/testsuite/ld-m68k/isaa-nodiv.s
+70ebca0c69ece585152b92e085c7a2c4 ld/testsuite/ld-m68k/isaa.d
+bc863c4af78043879d4732211b98990f ld/testsuite/ld-m68k/isaa.s
+e1ea1dd9c58d7c05a5afa9ed9060a960 ld/testsuite/ld-m68k/isaaplus.d
+59604ffeea6bd5959eebc26fcfca4007 ld/testsuite/ld-m68k/isaaplus.s
+fbf6b20c03d4581ffadd57ad9d4b37df ld/testsuite/ld-m68k/isab-float.d
+40046811c312fa8b71a312e12c0a9d70 ld/testsuite/ld-m68k/isab-float.s
+4dc937ce9efa1cbfe790ec4319865ab9 ld/testsuite/ld-m68k/isab-nousp.s
+00af175e146ef2a68df76cfebb4842b8 ld/testsuite/ld-m68k/isab.d
+1941399b05bb80ea485c3ea8d1fba8ff ld/testsuite/ld-m68k/isab.s
+c8ad52290dc7441c67fa1ff519a5da46 ld/testsuite/ld-m68k/m68k-got.exp
+14c2b62e1ad6eb34f775d126fa1608aa ld/testsuite/ld-m68k/m68k.exp
+f2230989919c0fb529bad36510c345d2 ld/testsuite/ld-m68k/merge-error-1a.d
+d142e6a1ea2d9b2f64a0439381469c73 ld/testsuite/ld-m68k/merge-error-1a.s
+dbcf9fdd939e827f4f1858c21dfa0e8c ld/testsuite/ld-m68k/merge-error-1b.d
+d142e6a1ea2d9b2f64a0439381469c73 ld/testsuite/ld-m68k/merge-error-1b.s
+336f5a8bee8267818dfe299f1fdf4a73 ld/testsuite/ld-m68k/merge-error-1c.d
+1bf9feb7409956c01a54844d96a4bffd ld/testsuite/ld-m68k/merge-error-1d.d
+2177520e7c8602f768de1624768bc451 ld/testsuite/ld-m68k/merge-error-1e.d
+ea81ec679d10bdfb7d108ac2b9f7a14a ld/testsuite/ld-m68k/merge-ok-1a.d
+4abb166e0b29817f7db4f89b7596fc84 ld/testsuite/ld-m68k/merge-ok-1b.d
+6017935bb4fcfb908ca563c4d8b0e76c ld/testsuite/ld-m68k/merge-ok-1c.d
+1748e88a9ed6471d81aaf84f8f11480f ld/testsuite/ld-m68k/merge.ld
+86d0bd6729da092642038e3ba4125135 ld/testsuite/ld-m68k/plt1-68020.d
+446754b2bdb238ef7e6f47acdcc42358 ld/testsuite/ld-m68k/plt1-cpu32.d
+843ed92b08210cb34ef543decc158313 ld/testsuite/ld-m68k/plt1-empty.s
+95b5c59d6c7572a1116b51c8d576799b ld/testsuite/ld-m68k/plt1-isab.d
+40e382a0efaf53c44faf348d84cdc7e5 ld/testsuite/ld-m68k/plt1-isac.d
+d76b655b64da150400465e7439eeb011 ld/testsuite/ld-m68k/plt1.ld
+b4b0a11671663569fc42bc967928eaff ld/testsuite/ld-m68k/plt1.s
+21a9da34bb8287450f9f555a65e648f8 ld/testsuite/ld-m68k/tls-def-1.d
+32e644a0075a072f97f55ab5ca949e68 ld/testsuite/ld-m68k/tls-def-1.s
+f2d632d504e939807d932a7e3757533e ld/testsuite/ld-m68k/tls-gd-1.d
+365b9991f1c8d86f60a630da61fb3428 ld/testsuite/ld-m68k/tls-gd-1.d2
+d43277a919b054856cd85f8613256ab2 ld/testsuite/ld-m68k/tls-gd-1.d3
+8acb4be54e9fee56736afe1b4ed98fe1 ld/testsuite/ld-m68k/tls-gd-1.s
+71bc92ab15ef0972288548b39ceb1aa8 ld/testsuite/ld-m68k/tls-gd-2.d
+dee8f41e45f307bb18b81cd60b76d4b2 ld/testsuite/ld-m68k/tls-gd-2.s
+ea47f7f63370018679732154c0be8d23 ld/testsuite/ld-m68k/tls-gd-3.d
+c27927fb3d8790f40e5a4f1a1e77dd44 ld/testsuite/ld-m68k/tls-gd-3.s
+ba928ec8b9212d44ec4cb469f5cf33b2 ld/testsuite/ld-m68k/tls-gd-ie-1.d
+51230d2891dc4d2aafa75b9d9d5cd85c ld/testsuite/ld-m68k/tls-gd-ie-1.s
+c6c19d50f1adf38984593e5f5451520a ld/testsuite/ld-m68k/tls-ie-1.d
+2cb92a892bc92a77abef6336ba5bbf3c ld/testsuite/ld-m68k/tls-ie-1.s
+50b3f81fc20aa4d8575dd10f2fb68b16 ld/testsuite/ld-m68k/tls-ld-1.d
+8116727480004c58ce0214cbf6578e85 ld/testsuite/ld-m68k/tls-ld-1.s
+0b2a3c63cb7f0e6a6393f77c6f496033 ld/testsuite/ld-m68k/tls-ld-2.d
+b7323a3d641be4410896a46800c93169 ld/testsuite/ld-m68k/tls-ld-2.s
+09e69e02f38846954cca2fa11957f2ac ld/testsuite/ld-m68k/tls-le-1.s
+cc0dc2a05a96e8112c810ca453b05c07 ld/testsuite/ld-m68k/tls-main-1.d
+cce0a9f3976a215a65ada87c775006b5 ld/testsuite/ld-m68k/tls-main-1.s
+31387110658a3d1fa295871df8e7fe4d ld/testsuite/ld-m68k/tls-no-1.s
+c466907d99c3f78545808a0e0e1a20e3 ld/testsuite/ld-mep/mep.exp
+d20b99dce905a2312874fa91b13336f3 ld/testsuite/ld-mep/mep1.ld
+1793b72c9eb6d9aba1a29c524673b1de ld/testsuite/ld-mep/mep1.s
+eaab780bec027c6ef6ac334619ba2b18 ld/testsuite/ld-mips-elf/attr-gnu-4-0.s
+b164f9c15b6a8b4c06a300710e728fdd ld/testsuite/ld-mips-elf/attr-gnu-4-00.d
+863ad8cfba6fb8589a69ad00a90cea56 ld/testsuite/ld-mips-elf/attr-gnu-4-01.d
+a183f9aeacdb839c9570848ea62877b4 ld/testsuite/ld-mips-elf/attr-gnu-4-02.d
+3d26e1a9bdd16a3576c0ff42075721a6 ld/testsuite/ld-mips-elf/attr-gnu-4-03.d
+13cf2bf7c8d4c906b47e8e98fbbc24d9 ld/testsuite/ld-mips-elf/attr-gnu-4-04.d
+295bd66ae2d39f17210c3da92b24d5aa ld/testsuite/ld-mips-elf/attr-gnu-4-05.d
+018b97f0a56402eb7f0edfcc26b8cd1d ld/testsuite/ld-mips-elf/attr-gnu-4-1.s
+cc93c85d1686dafa0b5c435b1fee7a26 ld/testsuite/ld-mips-elf/attr-gnu-4-10.d
+d0b748e08daab28b520a79ec87cb90dc ld/testsuite/ld-mips-elf/attr-gnu-4-11.d
+6e817802a60026e48c4e3378e709049e ld/testsuite/ld-mips-elf/attr-gnu-4-12.d
+3da861eed3fe21344d4b2c49810916a9 ld/testsuite/ld-mips-elf/attr-gnu-4-13.d
+7e9c2cdf5ec01a659d2f59d45e9a4e91 ld/testsuite/ld-mips-elf/attr-gnu-4-14.d
+070b8382d6efd13336a5a9f7ded3de2b ld/testsuite/ld-mips-elf/attr-gnu-4-15.d
+eac9dfdfc46cc5dd33f029ec52ee6793 ld/testsuite/ld-mips-elf/attr-gnu-4-2.s
+b610c8981ebcf1fec15126ac7bfeccef ld/testsuite/ld-mips-elf/attr-gnu-4-20.d
+1a5e16d50a54250400809fbf9e06783a ld/testsuite/ld-mips-elf/attr-gnu-4-21.d
+817ac60707ec06f10501520d8a734499 ld/testsuite/ld-mips-elf/attr-gnu-4-22.d
+6c016688b2dfbc7357c868b789bb4c0f ld/testsuite/ld-mips-elf/attr-gnu-4-23.d
+72a6905754eca80e73876a16fe59966f ld/testsuite/ld-mips-elf/attr-gnu-4-24.d
+b3c2d69ab3d55c11d024f47dac76dcab ld/testsuite/ld-mips-elf/attr-gnu-4-25.d
+7fd562a8f705fa9e3d082842773a9fd7 ld/testsuite/ld-mips-elf/attr-gnu-4-3.s
+2cab259c1924ac7329f6f5ebba5d0588 ld/testsuite/ld-mips-elf/attr-gnu-4-30.d
+205972f6d1a117960675cd65448502d0 ld/testsuite/ld-mips-elf/attr-gnu-4-31.d
+889deb9006c21284a8a8d1920826ca48 ld/testsuite/ld-mips-elf/attr-gnu-4-32.d
+f5b41bd73f8127f5def3a3a96bf6fe2e ld/testsuite/ld-mips-elf/attr-gnu-4-33.d
+080c5281707b74db7fc2ccd811e79fc8 ld/testsuite/ld-mips-elf/attr-gnu-4-34.d
+2d1f48cfe6cbbb0b81cb5e411d9ae4cd ld/testsuite/ld-mips-elf/attr-gnu-4-35.d
+bd99d860c5949dcff583df0a100a0ab3 ld/testsuite/ld-mips-elf/attr-gnu-4-4.s
+275e6f85cd22392edc20ccb85051dbc5 ld/testsuite/ld-mips-elf/attr-gnu-4-40.d
+416240e316cfc790fd260645c90c80bd ld/testsuite/ld-mips-elf/attr-gnu-4-41.d
+0f60ca57e348fe60fa213c9bcec4d0da ld/testsuite/ld-mips-elf/attr-gnu-4-42.d
+e2e3335d240655d0b7012f2c920c3b29 ld/testsuite/ld-mips-elf/attr-gnu-4-43.d
+8445e0be7fa62bf2092053d873aa0d4a ld/testsuite/ld-mips-elf/attr-gnu-4-44.d
+90e19887141bf237b75245459136e874 ld/testsuite/ld-mips-elf/attr-gnu-4-45.d
+45482e1b49bd87067a3336f5f3c22c8b ld/testsuite/ld-mips-elf/attr-gnu-4-5.s
+92a344630c8ce051d1d15829aedfadd8 ld/testsuite/ld-mips-elf/attr-gnu-4-51.d
+1e32a0a0418596e4b5f7a413d7c5a3da ld/testsuite/ld-mips-elf/branch-misc-1.d
+6724eb67d96033cd62f6f0bbb0ba0357 ld/testsuite/ld-mips-elf/dyn-sec64.d
+a2e54355612fa6e667578c480a23b2ba ld/testsuite/ld-mips-elf/dyn-sec64.ld
+38213eb1f211f160b6ccc4e962fea3d7 ld/testsuite/ld-mips-elf/dyn-sec64.s
+1187adc6c3afe730321bec7d7cfa8cb9 ld/testsuite/ld-mips-elf/eh-frame1-n32.d
+aec5a394a5d64425e1a7d8d392a45606 ld/testsuite/ld-mips-elf/eh-frame1-n64.d
+6533ce16a794d9ef136aa92cc3fe72c5 ld/testsuite/ld-mips-elf/eh-frame1.ld
+e6e05cd9d53743932b95addc3b98a8d8 ld/testsuite/ld-mips-elf/eh-frame1.s
+af9ffb598ffd241e5518223b8351ea66 ld/testsuite/ld-mips-elf/eh-frame2-n32.d
+b82d1135c4cb8e6a0660e3aeca4f0567 ld/testsuite/ld-mips-elf/eh-frame2-n64.d
+f675e0b8a1309bdc2c534f69597abc5f ld/testsuite/ld-mips-elf/eh-frame3.d
+e1c0b3a142460f9e96bb95d86709a813 ld/testsuite/ld-mips-elf/eh-frame4.d
+df75730bfb47ed23d00d0275a59fc88e ld/testsuite/ld-mips-elf/eh-frame5.d
+c9d3ca0439a89dfe4bc3ab7145f30fbe ld/testsuite/ld-mips-elf/eh-frame5.ld
+35773ee20ada8ff563ed5b30a96e76fc ld/testsuite/ld-mips-elf/eh-frame5.s
+845d1331d4ff9abf9b039b5df0c5e9bf ld/testsuite/ld-mips-elf/elf-rel-got-n32.d
+2f1a2aac8769aa32876e430a94b53f3b ld/testsuite/ld-mips-elf/elf-rel-got-n64-linux.d
+cbde251997630b9d83f7ef3505e886aa ld/testsuite/ld-mips-elf/elf-rel-got-n64.d
+a8c10403e44be8caf8560c95471b3353 ld/testsuite/ld-mips-elf/elf-rel-xgot-n32.d
+1437216c9c999f056a639d9d277761ac ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-linux.d
+f781c834948bf54e9a88db3a1e4ccdb6 ld/testsuite/ld-mips-elf/elf-rel-xgot-n64.d
+1c056f99cf7b167a12a16c864667d56a ld/testsuite/ld-mips-elf/emit-relocs-1.d
+68726c174e72036ac5088bf9b1f81f96 ld/testsuite/ld-mips-elf/emit-relocs-1.ld
+9070e987231eb3b31f390146b225c6d6 ld/testsuite/ld-mips-elf/emit-relocs-1a.s
+04aea5d092fa2db166839099d0bc5491 ld/testsuite/ld-mips-elf/emit-relocs-1b.s
+54a45de7a7c51616578a54ecb6ef8c45 ld/testsuite/ld-mips-elf/got-dump-1.d
+b8d3e047cf470489e6c153167577b516 ld/testsuite/ld-mips-elf/got-dump-1.ld
+525b1ae7d8a1a97cc8f1bfcc6dc920f3 ld/testsuite/ld-mips-elf/got-dump-1.s
+0f8c9b9c799944f80acb18a157e2d453 ld/testsuite/ld-mips-elf/got-dump-2.d
+9fcd4b8fef5231301f105b69b472f41c ld/testsuite/ld-mips-elf/got-dump-2.ld
+fa6b3d99eefa3a6aa98b71a637eefe35 ld/testsuite/ld-mips-elf/got-dump-2.s
+6fcc05e871317e5207248b70d9705422 ld/testsuite/ld-mips-elf/got-page-1.d
+a04d9e05c18665e618d7955d0144c4be ld/testsuite/ld-mips-elf/got-page-1.ld
+f776dca2e6f11f44989f2005ecb58c2f ld/testsuite/ld-mips-elf/got-page-1.s
+d1e4058580919ef3d515f1610569e646 ld/testsuite/ld-mips-elf/got-page-2.d
+7798b57c7ebb2cab4e917c7e4b1cc989 ld/testsuite/ld-mips-elf/got-page-2.s
+5e2545fe4e4a7f2876696a309f7a9cca ld/testsuite/ld-mips-elf/got-page-3.d
+ed4f44b1dfbf7c5261938737527f3f7e ld/testsuite/ld-mips-elf/got-page-3a.s
+1c026072dacc0d7337f714103bd5f946 ld/testsuite/ld-mips-elf/got-page-3b.s
+0507b477c2a903398fa809ab11cdaf1d ld/testsuite/ld-mips-elf/got-page-3c.s
+59ae2f3f0063c59ae3fbb5a7b4bdbf36 ld/testsuite/ld-mips-elf/got-vers-1.dd
+bc27bd383137bf4d9952e46f5687659b ld/testsuite/ld-mips-elf/got-vers-1.rd
+5b03f8316a8828f397651f1b1202d608 ld/testsuite/ld-mips-elf/got-vers-1.sd
+5e8c20a9046a75510e6dcc5c44d828fd ld/testsuite/ld-mips-elf/got-vers-1.ver
+1df2d1e1679f721b863066c708fde7e0 ld/testsuite/ld-mips-elf/got-vers-1a.s
+c5f62e7b8a40978cfca1c566b1c91d0e ld/testsuite/ld-mips-elf/got-vers-1b.s
+801d14a6810ebae1f5eefda4bac2a4d8 ld/testsuite/ld-mips-elf/hash1.s
+5b31b1eb31a18306ebe610d93aaa547c ld/testsuite/ld-mips-elf/hash1a.d
+e0e0a1c03d1c09706bb585fa0b7607b4 ld/testsuite/ld-mips-elf/hash1b.d
+4099340571fa39b3c75cf24ea3bab07d ld/testsuite/ld-mips-elf/hash1c.d
+fa9a8631c53e918392527840fab7e3b6 ld/testsuite/ld-mips-elf/jalbal.d
+f37571577f21fbd2380b2d67bec2003c ld/testsuite/ld-mips-elf/jalbal.s
+1e46ae19324e1987c86e98f4d23952d2 ld/testsuite/ld-mips-elf/jaloverflow-2.d
+0f97678bd905b0f04380729e167f36ba ld/testsuite/ld-mips-elf/jaloverflow-2.s
+3e51ac18ee129575a0a23f91113cf311 ld/testsuite/ld-mips-elf/jaloverflow.d
+00610e4306ae3ff6e932f3554c8bbb0c ld/testsuite/ld-mips-elf/jaloverflow.s
+1538f1355aa100216daf62bcbf585535 ld/testsuite/ld-mips-elf/jalx-1.d
+2c106983bca32c56265a2e006793b712 ld/testsuite/ld-mips-elf/jalx-1.ld
+624a4512f6e70a1e07a4af46a74b84f8 ld/testsuite/ld-mips-elf/jalx-1.s
+9a24eb94b7e65a6dc1a373aad8d55341 ld/testsuite/ld-mips-elf/jalx-2-ex.s
+93b27f7f26409214bf2834dc33f8e296 ld/testsuite/ld-mips-elf/jalx-2-main.s
+6aaef432cfe83553dcf6814d5c74771a ld/testsuite/ld-mips-elf/jalx-2-printf.s
+438cb0c7848d2350dcb0911f7adf442e ld/testsuite/ld-mips-elf/jalx-2.dd
+25987c1715acb5400f204c95574a0cb7 ld/testsuite/ld-mips-elf/jalx-2.ld
+8afcb555ac802fbc018887f8f4ae23d3 ld/testsuite/ld-mips-elf/jr-to-b-1.d
+30792c630ceace95d660dde6e00dd8f2 ld/testsuite/ld-mips-elf/jr-to-b-1.s
+432f84db6dae443d96e55bdcaf87963f ld/testsuite/ld-mips-elf/jr-to-b-2.d
+016b338411caa57dffb40e8ef3431cf2 ld/testsuite/ld-mips-elf/jr-to-b-2.s
+01cd283c225235f48e77375210951566 ld/testsuite/ld-mips-elf/jr.s
+aab541cd224ffdc668cde05593710d3c ld/testsuite/ld-mips-elf/mips-dyn.ld
+760db145de029bfc7dff35652e11585f ld/testsuite/ld-mips-elf/mips-elf-flags.exp
+c35bd2fc7cf0d5dc9c9e56bec1e91404 ld/testsuite/ld-mips-elf/mips-elf.exp
+368075c3db254e6302fcf5b9e9d1ec7d ld/testsuite/ld-mips-elf/mips-lib.ld
+92f2128a15a5d4593d402ff9d7023bcd ld/testsuite/ld-mips-elf/mips16-1.d
+bda3e92a35c420f4d0cf101be022eb7e ld/testsuite/ld-mips-elf/mips16-1a.s
+785be539d405d32d87e61e6719da890d ld/testsuite/ld-mips-elf/mips16-1b.s
+440ab43a0b0b2ee2de48388555a628f8 ld/testsuite/ld-mips-elf/mips16-and-micromips.d
+7c0dc0f214de744dfb19ad53e6d15562 ld/testsuite/ld-mips-elf/mips16-call-global-1.s
+261041546ae359e0cc90968f8ded97c8 ld/testsuite/ld-mips-elf/mips16-call-global-2.s
+83396521c10e6e0eaa1894df2fdb4837 ld/testsuite/ld-mips-elf/mips16-call-global-3.s
+bb7450279b5abaafc0cf67515d6bbeb1 ld/testsuite/ld-mips-elf/mips16-call-global.d
+e692a3c6a1d69cb438a1e5c1868af8f0 ld/testsuite/ld-mips-elf/mips16-hilo-n32.d
+09cde5e4cfc3ffba30c68e880df660d3 ld/testsuite/ld-mips-elf/mips16-hilo.d
+545fcec307a4e45f2b26b40ce0700269 ld/testsuite/ld-mips-elf/mips16-hilo.ld
+b3e4b204fc6c603a0ea6eb1ce3c29fae ld/testsuite/ld-mips-elf/mips16-hilo.s
+06d124f197762fbed190c66d11bc6921 ld/testsuite/ld-mips-elf/mips16-intermix-1.s
+8646625108bdd2dcc23ad1e1a5d501a7 ld/testsuite/ld-mips-elf/mips16-intermix-2.s
+bdd2151726a6ac27b61020851bfc90e0 ld/testsuite/ld-mips-elf/mips16-intermix.d
+dbecde5b6f77ded6a957039faf0f1067 ld/testsuite/ld-mips-elf/mips16-local-stubs-1.d
+2241ceca1ee392127d41dbc282fbfa1d ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s
+81d37d76ce20ba52b220318eddd5e03f ld/testsuite/ld-mips-elf/mips16-pic-1-dummy.s
+dfc2b6f52de2391e2e17693253d33e9e ld/testsuite/ld-mips-elf/mips16-pic-1.dd
+c1e7ade5eafb7acd1602588df4c246a9 ld/testsuite/ld-mips-elf/mips16-pic-1.gd
+49625eea24fe06727d25b1d58bca504b ld/testsuite/ld-mips-elf/mips16-pic-1.inc
+ad35d0afe62d0d68963b08a08fd8ad32 ld/testsuite/ld-mips-elf/mips16-pic-1.ld
+863b5b5184faaa52d04a96ad41cdc0f1 ld/testsuite/ld-mips-elf/mips16-pic-1a.s
+5aa79de6989506714f0c1ac7b7eba4da ld/testsuite/ld-mips-elf/mips16-pic-1b.s
+8e557fb7902b49ce9b26de7f8b85e34f ld/testsuite/ld-mips-elf/mips16-pic-2.ad
+3dd7d7801ff75d5e6560e3160b6138e9 ld/testsuite/ld-mips-elf/mips16-pic-2.dd
+3faf2dd2ece00efcf0e37044825927af ld/testsuite/ld-mips-elf/mips16-pic-2.gd
+25c144f6871cc08cc46f488caac42d00 ld/testsuite/ld-mips-elf/mips16-pic-2.nd
+cc3510c0142aff6f61ff5013f5843fcd ld/testsuite/ld-mips-elf/mips16-pic-2.rd
+4ede35108518b6b38ff791576a5ef2cf ld/testsuite/ld-mips-elf/mips16-pic-2a.s
+b912c77f560fdec4351994c7f9513d5e ld/testsuite/ld-mips-elf/mips16-pic-2b.s
+b543eacce1d2bec3d10693f2055d2ace ld/testsuite/ld-mips-elf/mips16-pic-3.dd
+842060d2f54ac6bcef9e9f0bea9b6dec ld/testsuite/ld-mips-elf/mips16-pic-3.gd
+489813beddf523f1092a863c1708ac0b ld/testsuite/ld-mips-elf/mips16-pic-3.inc
+121a964d1332fe5cc9add7791515ddf9 ld/testsuite/ld-mips-elf/mips16-pic-3.rd
+a7e494cd288947d2c18fef7be4faebc8 ld/testsuite/ld-mips-elf/mips16-pic-3a.s
+203c5259e6bfec00f0a0c8fb8553ce21 ld/testsuite/ld-mips-elf/mips16-pic-3b.s
+46f23a15e7425e67aabacb465dab31e5 ld/testsuite/ld-mips-elf/mips16-pic-4.ver
+c491ed165d94555361d6fab5d010db01 ld/testsuite/ld-mips-elf/mips16-pic-4a.dd
+6e2b8bebe6cb536361b58a7f520a8ce0 ld/testsuite/ld-mips-elf/mips16-pic-4a.gd
+4b0f332e30127295e94516f41ca78ba3 ld/testsuite/ld-mips-elf/mips16-pic-4a.nd
+229965c1b80e1827c7e9b2e6bd080f23 ld/testsuite/ld-mips-elf/mips16-pic-4a.s
+fa8e0bdd2a55b5385e0a4af39c21b510 ld/testsuite/ld-mips-elf/mips16-pic-4b.dd
+9a6f8118e779f27cc3aa197cf3a2c608 ld/testsuite/ld-mips-elf/mips16-pic-4b.s
+8ebf7377448e525d7f43a2bff0f51dbd ld/testsuite/ld-mips-elf/mips16-pic-4c.s
+2d378cca3ffbc36424f9f2837589e911 ld/testsuite/ld-mips-elf/mode-change-error-1.d
+d862a9d3c5154d7d8a0f685e9b500cfc ld/testsuite/ld-mips-elf/mode-change-error-1a.s
+7155073aa28e0464fe88d592604e583b ld/testsuite/ld-mips-elf/mode-change-error-1b.s
+ae026e1e5ffd2a267ebfe4d636059d42 ld/testsuite/ld-mips-elf/multi-got-1-1.s
+547edd71875ed91b371f99af69c969fb ld/testsuite/ld-mips-elf/multi-got-1-2.s
+6bd9212db2700881be03f65cdc1f60cb ld/testsuite/ld-mips-elf/multi-got-1.d
+da39823dd9ec88c55b245d79fcbb19bc ld/testsuite/ld-mips-elf/multi-got-hidden-1.d
+9eb8263a7b17cc5f8f3f268cab6fd731 ld/testsuite/ld-mips-elf/multi-got-hidden-1.s
+0dfb48236919cce7fd8eb1d3aef98489 ld/testsuite/ld-mips-elf/multi-got-hidden-2.d
+99c68de31a553ed4556f6440f19f8615 ld/testsuite/ld-mips-elf/multi-got-hidden-2.s
+b0180cb7263b7943ec787e18ef17c0f5 ld/testsuite/ld-mips-elf/multi-got-no-shared-1.s
+ce39cc1939c286dd4991e0cfb54f9304 ld/testsuite/ld-mips-elf/multi-got-no-shared-2.s
+efbed788948cb30382ba0515961aad34 ld/testsuite/ld-mips-elf/multi-got-no-shared.d
+30a8a2f767dd0f081b746172c00544d5 ld/testsuite/ld-mips-elf/no-shared-1-n32.d
+c01d7a4c05171314b95ddfd8a7807f74 ld/testsuite/ld-mips-elf/no-shared-1-n64.d
+75f385bfa7b2c0ea116ab7dfd9c9d0e7 ld/testsuite/ld-mips-elf/no-shared-1-n64.s
+aadfbb91d834f9dea1576463eb929f1e ld/testsuite/ld-mips-elf/no-shared-1-o32.d
+a60f9d4df6e56988bab95b2e313efbc0 ld/testsuite/ld-mips-elf/no-shared-1-o32.s
+9a0eb2758e0aeb72d632e46fb01f9fd4 ld/testsuite/ld-mips-elf/no-shared-1.ld
+b349d3e330560678a5e33c7dab0433f7 ld/testsuite/ld-mips-elf/pic-and-nonpic-1-rel.dd
+e53d909c95b7ecefacb3a8f7161cc866 ld/testsuite/ld-mips-elf/pic-and-nonpic-1-rel.nd
+5f361d6c916ff126b290651084d08fe6 ld/testsuite/ld-mips-elf/pic-and-nonpic-1.dd
+2e247c0a2b5057df818fcd3d0556982d ld/testsuite/ld-mips-elf/pic-and-nonpic-1.ld
+6df59b03045bb5d0e4e98907336897bf ld/testsuite/ld-mips-elf/pic-and-nonpic-1.nd
+636df59b96847177efff7e4dbf85fe12 ld/testsuite/ld-mips-elf/pic-and-nonpic-1a.s
+8f8066be39378af8ecd26b5d8ac11753 ld/testsuite/ld-mips-elf/pic-and-nonpic-1b.s
+35d5a8331571e5d69489dd665ece02ff ld/testsuite/ld-mips-elf/pic-and-nonpic-2.d
+0234a0ddb572718f66bae8d63fc6d021 ld/testsuite/ld-mips-elf/pic-and-nonpic-2a.s
+6764e6db67e3a914ad463c69f2915f86 ld/testsuite/ld-mips-elf/pic-and-nonpic-2b.s
+326ab1fd4f743f19e06207587fb1ab7e ld/testsuite/ld-mips-elf/pic-and-nonpic-3-error.d
+7ed0f6f4892ec292b505a22877575215 ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.dd
+4df312642c14c7d3bdf98c604d5c97b6 ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.gd
+06a5efd6ffd2d5633435531309eaf936 ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.ld
+ed84c5b0970802fd5cc5c1d58892c646 ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.s
+5dbd2e45c4dd3c3c5dc4a73e5effc8a7 ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.sd
+e5233a5bca870fc6f5452a9a175b94ef ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.ad
+3076d15d6c14e03911b70a8d9b2b6023 ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.dd
+9a72343289dbd65e5b1f8626fba1992d ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.gd
+575fea85123a8c2803e6cfe73aadea02 ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.ld
+99e1951a1a3cdfdfd3f928c10fe220c9 ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.nd
+a62c39fed21d31568febb508114eedce ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.pd
+888172a03e85765eeca2c9aae3b2b9f7 ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.rd
+ebfedb2c710e4bc2d7114f3615babf07 ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.s
+be1b9b9a4a7a7db1453b66c93484ad0a ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.sd
+67d0fe8c82542da8c2e095051647ed6a ld/testsuite/ld-mips-elf/pic-and-nonpic-4-error.d
+c5beb74efb5aab7afb9cd4179bc54ed6 ld/testsuite/ld-mips-elf/pic-and-nonpic-4a.s
+41ffc74513f399800903d28bd0fd726c ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.ad
+c94b0c21bf21e4f106db3e3b83263a77 ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.dd
+788c0d0e591998726ecc5518ab48488d ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.gd
+1986c5ae746dd9168359eb2f172b4590 ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.ld
+32f332d8fee124c1be3ea91206b9e23c ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.nd
+39731da008f5bb0a2bb0c77802a0370a ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.rd
+eaf6964fc9fa4386f24c396a561f9a0f ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.s
+a364f769d45910b0bfc71fccee583053 ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.sd
+98398b97dd636c86168f01e369af97d5 ld/testsuite/ld-mips-elf/pic-and-nonpic-5a.s
+be45e58a2b688c1cc6cdd351a316d75b ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.ad
+3488ff77fadbcbc985e404479884c659 ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.dd
+1603051c5bb87ab95bb42bb0e3e78a82 ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.gd
+02e4fadf6cae47bd2b71ff68c831ece4 ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.ld
+93ebab355919ce36b53b4d3fad38e600 ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.nd
+c0561a7f93214272ba5a10ad0eb58f28 ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.pd
+43e52f191e4bf227cc00c4dcc4ed1ba7 ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.rd
+4def8c8a21ee2da9282483648295fd88 ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.s
+1f59d8393264a23e75648fd64f332dcf ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.sd
+830a2fbfb96054d5b6816f42c946f580 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.ad
+64f9532f113d349bc895577f6e5ef3e9 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.dd
+7a5634a4e2ea01989208cb48f32a8d8e ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.gd
+3bf64cf9feb417fbd8c9999f2e467e3c ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.nd
+ad99d90f41c2c466855f2632fb06c209 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.pd
+d6b199287e84a6690bcba1fe9203ab52 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.rd
+8aaa1d586c63c85d8901aed5d53b5e33 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.sd
+34dd5961805d999d712253770313d077 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32a.s
+bb52fe4127e0c17d6de7e6ead15511c4 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32b.s
+3d69c8ab5a72235e7b60bb18f8f40b15 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32c.s
+377485f8e8164931b1d04e7c3a2fe543 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.ad
+f3094954aa7472f0d4fe695159938882 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.dd
+0011c68b572e93e49d96a05ff81a93e7 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.gd
+6ae475c23b08901a546b6753ba4cbc7f ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.nd
+a78f62b8afe08a2be5646bdfd9f25ceb ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.pd
+78690a72d4db7b219a4405edf2aaf39c ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.rd
+030ad44ee088b245c526bb1cb8ecfdae ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.sd
+34dd5961805d999d712253770313d077 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64a.s
+103c17ccd1c838002f3de6e9803012d9 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64b.s
+3d69c8ab5a72235e7b60bb18f8f40b15 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64c.s
+830a2fbfb96054d5b6816f42c946f580 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.ad
+1f143938c970a5143219dc4c7cf3dc3f ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.dd
+7a5634a4e2ea01989208cb48f32a8d8e ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.gd
+3bf64cf9feb417fbd8c9999f2e467e3c ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.nd
+ad99d90f41c2c466855f2632fb06c209 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.pd
+d6b199287e84a6690bcba1fe9203ab52 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.rd
+8aaa1d586c63c85d8901aed5d53b5e33 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.sd
+34dd5961805d999d712253770313d077 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32a.s
+c77015d0f24de1fcbaa8a703ce6f3479 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32b.s
+3d69c8ab5a72235e7b60bb18f8f40b15 ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32c.s
+a63578b0085dfd84d8e6f929f44c1eeb ld/testsuite/ld-mips-elf/pic-and-nonpic-6.ld
+7520418cc156dc2eb353a7c527d0b7bc ld/testsuite/ld-mips-elf/region1.d
+8bddba546baafcfd0c720e84198b224a ld/testsuite/ld-mips-elf/region1.t
+19a77e97e16088a5a83b3916b5c9406f ld/testsuite/ld-mips-elf/region1a.s
+dbaca5ab0c56146533bcb91837e1ec4c ld/testsuite/ld-mips-elf/region1b.s
+d70bf451f5570cc8a71f1b92aab421d2 ld/testsuite/ld-mips-elf/rel32-n32.d
+0b2322ea91cf1abe07305e4afaacc2d7 ld/testsuite/ld-mips-elf/rel32-o32.d
+ddaac36abb5634e6b2fd1ed710875f2a ld/testsuite/ld-mips-elf/rel32.s
+c7aebba022efb0ce03977ce3ef07d756 ld/testsuite/ld-mips-elf/rel64.d
+36bb8fc0b193491dbdcab5452d411825 ld/testsuite/ld-mips-elf/rel64.s
+37f70b74c9562c8a28c72145a36a9893 ld/testsuite/ld-mips-elf/relax-jalr-n32-shared.d
+ee55093b6504613d255c4fd06ff46d20 ld/testsuite/ld-mips-elf/relax-jalr-n32.d
+c9b07aa5eb8bc72ee659dd6aded85554 ld/testsuite/ld-mips-elf/relax-jalr-n64-shared.d
+73f2e464c48afdd595353e7de102e014 ld/testsuite/ld-mips-elf/relax-jalr-n64.d
+f5a605435fe5054c5d7563852b8f52c6 ld/testsuite/ld-mips-elf/relax-jalr.s
+3e150097276b85ca1b466977321bd2eb ld/testsuite/ld-mips-elf/reloc-1-n32.d
+7d89dbf41e9f1db0ec7acf3a45ab20ea ld/testsuite/ld-mips-elf/reloc-1-n64.d
+616ac739ba5a655d578f1d1962761589 ld/testsuite/ld-mips-elf/reloc-1-rel.d
+35fedd85b8edee7ba5015139e03d7345 ld/testsuite/ld-mips-elf/reloc-1a.s
+db2a8158231f72fdc62917388227398c ld/testsuite/ld-mips-elf/reloc-1b.s
+ca8216c82884ad811b7edb3e9fbe9d72 ld/testsuite/ld-mips-elf/reloc-2.d
+ea87f337407d724f0873ca78cf340d58 ld/testsuite/ld-mips-elf/reloc-2.ld
+0adb1722a72e9a9a054f9a6b92b56e8d ld/testsuite/ld-mips-elf/reloc-2a.s
+f051089b05fc01590658e2bc45fa6cf1 ld/testsuite/ld-mips-elf/reloc-2b.s
+299f6c59760876195ff15972265c1c64 ld/testsuite/ld-mips-elf/reloc-3-n32.d
+30b4b2b4144a328e31d9ceebfc7c4e3f ld/testsuite/ld-mips-elf/reloc-3.d
+3ac472addfc5eb7cb6ec433e5644e6b4 ld/testsuite/ld-mips-elf/reloc-4.d
+d9d108ea9d1774ea9146f17ec8820099 ld/testsuite/ld-mips-elf/reloc-4.s
+f1dd265eb61abcd9887f645d33a22134 ld/testsuite/ld-mips-elf/reloc-5.d
+69f27006c1fefb9a60d0b877402a74ef ld/testsuite/ld-mips-elf/reloc-5.s
+5ecb4e10cfd2f6b4de9ee74c1ea2c975 ld/testsuite/ld-mips-elf/reloc-6a.s
+e1fdd53bd7febfd655245d57cdaf8962 ld/testsuite/ld-mips-elf/reloc-6b.s
+819a1ac49e774ccc8b68332aed02026e ld/testsuite/ld-mips-elf/reloc-estimate-1.d
+32f73a472ac5388b9e5554712552cd10 ld/testsuite/ld-mips-elf/reloc-estimate-1.ld
+6263ce38363c899a10f2cd9c833103ae ld/testsuite/ld-mips-elf/reloc-estimate-1a.s
+c5f62e7b8a40978cfca1c566b1c91d0e ld/testsuite/ld-mips-elf/reloc-estimate-1b.s
+5e53d69afb16b0aa1111842113ab9a4d ld/testsuite/ld-mips-elf/reloc-merge-lo16.d
+9053fa49eb5a350f5eb6ff68429b4b1c ld/testsuite/ld-mips-elf/reloc-merge-lo16.ld
+ca0f2383e1abaa4194db6d328616a283 ld/testsuite/ld-mips-elf/reloc-merge-lo16.s
+1d6f7a3dc089864de5e234e81880f984 ld/testsuite/ld-mips-elf/stub-dynsym-1-10000.d
+88f241289f9c5dbb15595f56e3bcbf6e ld/testsuite/ld-mips-elf/stub-dynsym-1-2fe80.d
+82b76bfd94c016f538e5a45536840144 ld/testsuite/ld-mips-elf/stub-dynsym-1-7fff.d
+019989e23ec375399af67c17ec061cd1 ld/testsuite/ld-mips-elf/stub-dynsym-1-8000.d
+ace95ceba6066d15c02d749bccb5c35a ld/testsuite/ld-mips-elf/stub-dynsym-1-fff0.d
+17472fd6bd43f7e0a0bbee7bec4b56d1 ld/testsuite/ld-mips-elf/stub-dynsym-1.ld
+771e5b7a77527a92c59bb09aacc2245b ld/testsuite/ld-mips-elf/stub-dynsym-1.s
+593b58531898d49f21950b0f1cb0028e ld/testsuite/ld-mips-elf/textrel-1.d
+5018b9cc7ffa201db975a01c554aa5d3 ld/testsuite/ld-mips-elf/textrel-1.s
+3366b6a082b650516fd6734b3f96d391 ld/testsuite/ld-mips-elf/tls-hidden2-got.d
+d0d03e116e69348f69f764e7cf07f65c ld/testsuite/ld-mips-elf/tls-hidden2.d
+8da4ca44d8d4d64da2f924f77f16ebff ld/testsuite/ld-mips-elf/tls-hidden2a.s
+28ebb08fa8f0f0384c6f6e94b017b6c4 ld/testsuite/ld-mips-elf/tls-hidden2b.s
+17a7c0117e9da22a28096e807e8f7a1a ld/testsuite/ld-mips-elf/tls-hidden3.d
+32e7a2e0848cd82eec644f4a53f3d82f ld/testsuite/ld-mips-elf/tls-hidden3.got
+4eeb160900459146ef2406dac1677b38 ld/testsuite/ld-mips-elf/tls-hidden3.ld
+987684d120f6213287cfe205e0bd173b ld/testsuite/ld-mips-elf/tls-hidden3.r
+596cb16541a279aea4116f695673985c ld/testsuite/ld-mips-elf/tls-hidden3a.s
+29d61123d595b387ed26211c5aeac27d ld/testsuite/ld-mips-elf/tls-hidden3b.s
+59bff5c0e2b3a11aa1872751d5200f00 ld/testsuite/ld-mips-elf/tls-hidden4.got
+6605a99a8dccc8e3b31db4d74deff5a7 ld/testsuite/ld-mips-elf/tls-hidden4.r
+18ce86b8cf6084e6197d64c86b95d9ad ld/testsuite/ld-mips-elf/tls-hidden4a.s
+bb0771146a19efa38c6dbab03a6677c5 ld/testsuite/ld-mips-elf/tls-hidden4b.s
+dcf6ae3878ee8bbe288194214b1cf4b8 ld/testsuite/ld-mips-elf/tls-multi-got-1-1.s
+e27dfdf2d9f50b3a1c3405c0928464f9 ld/testsuite/ld-mips-elf/tls-multi-got-1-2.s
+750508d078ee33a8416b8c61d31a6983 ld/testsuite/ld-mips-elf/tls-multi-got-1.d
+41bea7f9e24f1cf8d870aec4a3173ca0 ld/testsuite/ld-mips-elf/tls-multi-got-1.got
+586bb1ee2c39286e5309a52593be34cd ld/testsuite/ld-mips-elf/tls-multi-got-1.r
+3e3447a7625350bcb3a358526e3153a1 ld/testsuite/ld-mips-elf/tlsbin-o32.d
+c86a9ef2529736cdad96e9ca05707688 ld/testsuite/ld-mips-elf/tlsbin-o32.got
+c792434d81806a231d8c427cb4080159 ld/testsuite/ld-mips-elf/tlsbin-o32.s
+5e0d7ec5909fe5c8c577a04021165e39 ld/testsuite/ld-mips-elf/tlsdyn-o32-1.d
+c42a07f58b0fe77cd7af1f56818a28f2 ld/testsuite/ld-mips-elf/tlsdyn-o32-1.got
+530965bd6a985f0e94ecd0855dd5625d ld/testsuite/ld-mips-elf/tlsdyn-o32-2.d
+b2f5027a892621ff983a13f2c3240f5b ld/testsuite/ld-mips-elf/tlsdyn-o32-2.got
+fbdeab37b3ee0ec10ee1ef69f15c2fff ld/testsuite/ld-mips-elf/tlsdyn-o32-2.s
+00e982c2e86055bb322802c5add3c93c ld/testsuite/ld-mips-elf/tlsdyn-o32-3.d
+cc5c4d0ef65b6c81033d3d7769c8f29f ld/testsuite/ld-mips-elf/tlsdyn-o32-3.got
+b5d101e6cbeb4474a32c50f41d3d1ad8 ld/testsuite/ld-mips-elf/tlsdyn-o32.d
+1697af6e7fa1e547babbba1eedf80a32 ld/testsuite/ld-mips-elf/tlsdyn-o32.got
+2f7c87e5cb0941155de927c09a22f82a ld/testsuite/ld-mips-elf/tlsdyn-o32.s
+e04425f26450dde17dc78fd219a95744 ld/testsuite/ld-mips-elf/tlslib-hidden.ver
+70026058b0f598790d0b531c5982fb07 ld/testsuite/ld-mips-elf/tlslib-o32-hidden.got
+6d6da92087e5b37926abe8594d6b9175 ld/testsuite/ld-mips-elf/tlslib-o32-ver.got
+f486d96c706505877702cf6738edd6c4 ld/testsuite/ld-mips-elf/tlslib-o32.d
+f129dd016866df5151e6306b69af6f09 ld/testsuite/ld-mips-elf/tlslib-o32.got
+73d7902bba1b0277980dd7077187132d ld/testsuite/ld-mips-elf/tlslib-o32.s
+e79ddbda95735cce0f98745385b37e44 ld/testsuite/ld-mips-elf/tlslib.ver
+2836095ce053cfc7a2375672903484a6 ld/testsuite/ld-mips-elf/undefined.d
+74e832da3c27e918dcc12f23c88d7653 ld/testsuite/ld-mips-elf/undefined.s
+c28e9ba79d2a44a6345b6091aff6964c ld/testsuite/ld-mips-elf/vxworks-forced-local-1.d
+575c413b96d44bb8ec8ff7ac576ed0d8 ld/testsuite/ld-mips-elf/vxworks-forced-local-1.s
+73733e00bc2f549dd17e11ddcf5977a5 ld/testsuite/ld-mips-elf/vxworks-forced-local-1.ver
+135c05a549bb6dad013ee2ad7266feeb ld/testsuite/ld-mips-elf/vxworks1-lib.dd
+b074b2bbf5dfaf1b0c748786aaa5d748 ld/testsuite/ld-mips-elf/vxworks1-lib.nd
+5f45b6c9413d7836dfca685969f1955b ld/testsuite/ld-mips-elf/vxworks1-lib.rd
+32b8872e821ae6654c0b8b93831b090b ld/testsuite/ld-mips-elf/vxworks1-lib.s
+6dbdc5d4346169b9a3af98707d77be72 ld/testsuite/ld-mips-elf/vxworks1-lib.td
+2430b3e2167b5d1d1b8d6a75435a9522 ld/testsuite/ld-mips-elf/vxworks1-static.d
+45ff6994e80bfdd76f565ab15bd740fc ld/testsuite/ld-mips-elf/vxworks1.dd
+6eda7ca5e2b8a998f716b2914d22ca4c ld/testsuite/ld-mips-elf/vxworks1.ld
+d2de293548a76b5b287297fa26f82bdb ld/testsuite/ld-mips-elf/vxworks1.rd
+82bc233897ef8651545c08a78fc4199a ld/testsuite/ld-mips-elf/vxworks1.s
+165ed1561458c0973255f985be876845 ld/testsuite/ld-mips-elf/vxworks2-static.sd
+d0f1c70f160b4a40447679957bb43902 ld/testsuite/ld-mips-elf/vxworks2.s
+7afb4e2fc8be35ad985dcb2e21b7cbef ld/testsuite/ld-mips-elf/vxworks2.sd
+75e57156fec82444f8b081057aa3dd34 ld/testsuite/ld-misc/defsym.exp
+29b85abb584c499fb7c6e3c7d7c8d1ad ld/testsuite/ld-misc/defsym1.d
+68b329da9893e34099c7d8ad5cb9c940 ld/testsuite/ld-misc/dummy.s
+d3e2facb8eb14eb25571b0ba1978a5f2 ld/testsuite/ld-misc/foo.s
+8b7d482ede3ffef086e697dc7758e45c ld/testsuite/ld-misc/start.s
+29bbc00fcf8488cdcda5c967947c9abd ld/testsuite/ld-mmix/a.s
+832fb8cae0b098878fed53d48e807ce5 ld/testsuite/ld-mmix/areg-256.s
+92c2c53d6e192bf5692ce25b44285e67 ld/testsuite/ld-mmix/areg-t.s
+9c3467333c3017bb3487458a63a6a443 ld/testsuite/ld-mmix/aregm.s
+bbc12b910148056242b16ac06ffe658e ld/testsuite/ld-mmix/b-badfil1.d
+5757a79cbdb495ad2ebdb65ae1baee63 ld/testsuite/ld-mmix/b-badfil1.s
+d3539629793229e1bedc30fca7ebab4e ld/testsuite/ld-mmix/b-badfil2.d
+4d945d415b8a0b5d0d1960ae0aad8dd5 ld/testsuite/ld-mmix/b-badfil2.s
+6d361444d04985a9d6ffcd79ab0d9102 ld/testsuite/ld-mmix/b-badfixo.d
+696b375abc32c3e05c78864742e8ed0f ld/testsuite/ld-mmix/b-badfixo.s
+0ecd244dbb6bfba1aab4fd1c9ba36fed ld/testsuite/ld-mmix/b-badloc.d
+ca07c72cc90fe7958c01e45d0b299c07 ld/testsuite/ld-mmix/b-badloc.s
+03b06dbe7e50760382702f5cf5506e83 ld/testsuite/ld-mmix/b-badlop.d
+c0eda3287e093d9baa1a9976fc611109 ld/testsuite/ld-mmix/b-badlop.s
+cfa814a7c613f75d100f82cf82cd6082 ld/testsuite/ld-mmix/b-badm.d
+bece4f048fbf06e4397d09a0e8cf3f84 ld/testsuite/ld-mmix/b-badm2.s
+308e34a5c6526b3bc77c958a0be05e0f ld/testsuite/ld-mmix/b-badmain.s
+d372faf0a14a0dfcc1553deb051f94db ld/testsuite/ld-mmix/b-badquot.d
+27a23d67dc01f3c9ead4adb018ca1754 ld/testsuite/ld-mmix/b-badquot.s
+3f655a8b08008f054fdfa2a96de54a40 ld/testsuite/ld-mmix/b-badrx1.d
+b6dd30dc8691d22e1f65f4021f05c56b ld/testsuite/ld-mmix/b-badrx1.s
+cb9c0accff2b737374ca055f980dbe13 ld/testsuite/ld-mmix/b-badrx2.d
+93f541fd556713ab6d8d21db803d1b66 ld/testsuite/ld-mmix/b-badrx2.s
+c379ff543ab01fedc4ad86f98bbb5273 ld/testsuite/ld-mmix/b-badrx3.d
+bf429322a5db6134c31b0ad125e1fe47 ld/testsuite/ld-mmix/b-badrx3.s
+5d616c70e041440600527855ebae7cae ld/testsuite/ld-mmix/b-bend.s
+5ef90eb6d01c9c1e1f2a0d2262ae6b2e ld/testsuite/ld-mmix/b-bend1.d
+43b9f66679d171e04c8cd8945a8c9072 ld/testsuite/ld-mmix/b-bend2.d
+c6cded6f15b9f640cbdab924ee44c4e7 ld/testsuite/ld-mmix/b-bend3.d
+19278040a3ad12dfbb86423a42ee4944 ld/testsuite/ld-mmix/b-bstab1.d
+7f057b266c6e915c24c78e4914988a18 ld/testsuite/ld-mmix/b-bstab1.s
+6648449ade42be2fa0b9bfd929d0be34 ld/testsuite/ld-mmix/b-fixo2.d
+afd9d7783cf499b4bb54e673aa66cc9b ld/testsuite/ld-mmix/b-fixo2.s
+c70f1e9df4056a081a049a5e574504b7 ld/testsuite/ld-mmix/b-goodmain.s
+821bd78c586bcbbfcd74404cf57bb857 ld/testsuite/ld-mmix/b-loc64k.d
+22737b84a0ff00ce8bbbac51ba455171 ld/testsuite/ld-mmix/b-loc64k.s
+c6b46403437c6ee2562708fa1c475313 ld/testsuite/ld-mmix/b-nosym.d
+38dd1c80284932429686552b07d13ffb ld/testsuite/ld-mmix/b-nosym.s
+8d063312ad02da3debded99026386d32 ld/testsuite/ld-mmix/b-offloc.s
+3f86c44e8b8817e5c663f2d27f3bd115 ld/testsuite/ld-mmix/b-post1.s
+86f53aed3df4b314f3ed60fc1bc5390c ld/testsuite/ld-mmix/b-twoinsn.s
+19e58b2f38b76337bcaf380353b8b083 ld/testsuite/ld-mmix/b-widec.s
+be278fd0e2be7d211f9b9f01e9da153f ld/testsuite/ld-mmix/b-widec1.d
+b5acafcf483d63a9f77a5bfd3aa6268c ld/testsuite/ld-mmix/b-widec2.d
+c611d61d69d4f6525b97bf73f8ceb803 ld/testsuite/ld-mmix/b-widec2.s
+b0e738d0cadbba73f2fcb8d0e5db1017 ld/testsuite/ld-mmix/b-widec3.d
+538c648f35ef9b9744f3451d4b634614 ld/testsuite/ld-mmix/b-widec3.s
+0e3bd5d365022be3c1548dd5777bfcaa ld/testsuite/ld-mmix/bpo-1.d
+727b1769bece675574da8a7fe3fd7c78 ld/testsuite/ld-mmix/bpo-1.s
+a4bc144eea63cbf4af7e585bd0edc95e ld/testsuite/ld-mmix/bpo-10.d
+7806bfb4f80d0b995147abaef5043324 ld/testsuite/ld-mmix/bpo-10.s
+57d5eda861d87af042f47186f145543a ld/testsuite/ld-mmix/bpo-11.d
+6ffe6aa6c222b341fd60298d70f6c096 ld/testsuite/ld-mmix/bpo-11.s
+77b4f4eb49346620239ae760d080a897 ld/testsuite/ld-mmix/bpo-12.d
+8de7a3ef3b7bd942d63c83ee837ab9ef ld/testsuite/ld-mmix/bpo-12m.d
+3dedc8a556ca8e2e36516b6d401573ec ld/testsuite/ld-mmix/bpo-13.d
+548c55bffd4c89b7677633e176ce7642 ld/testsuite/ld-mmix/bpo-13m.d
+02f65eea305cdd049de3449497f212a2 ld/testsuite/ld-mmix/bpo-14.d
+c643669175f64da8335666d98707d371 ld/testsuite/ld-mmix/bpo-14m.d
+8f6569e3f528d5faa6667c06e373d4e6 ld/testsuite/ld-mmix/bpo-15.d
+98df5bb5f63901bb65b4da989825bee6 ld/testsuite/ld-mmix/bpo-15m.d
+6ec318d675955648a56a6831e299dc72 ld/testsuite/ld-mmix/bpo-16.d
+46c733f1f9d6891c280bd33a7a8ee49e ld/testsuite/ld-mmix/bpo-16m.d
+85d2f23d3507c87f82c322191238a7be ld/testsuite/ld-mmix/bpo-17.d
+2bd56eebb6f7f2557192b4218267e936 ld/testsuite/ld-mmix/bpo-17m.d
+53defe5eff096dddb5b90166160c491f ld/testsuite/ld-mmix/bpo-18.d
+75e497cf13bf228105b337ee5c9e4812 ld/testsuite/ld-mmix/bpo-18m.d
+b997daa1845ef49de1c27ae192a667eb ld/testsuite/ld-mmix/bpo-19.d
+2ab4fef8dc7d80065a78ea7b0e9ed0b3 ld/testsuite/ld-mmix/bpo-19m.d
+b2f2ffc9ebee61c08b8536ee393bf60d ld/testsuite/ld-mmix/bpo-1m.d
+60145581d35cf70b131bfb05287a92af ld/testsuite/ld-mmix/bpo-2.d
+941fdc1afbccc34132056c79cffd53a7 ld/testsuite/ld-mmix/bpo-2.s
+0fb61489c12f3b583e2c08ade6e8d653 ld/testsuite/ld-mmix/bpo-20.d
+fffb35a7fced3331a800461bc1ce9094 ld/testsuite/ld-mmix/bpo-20m.d
+5e8683bae8c6b6898f64e06e23abbccd ld/testsuite/ld-mmix/bpo-21.d
+73573410160cb6b280768902b3043b90 ld/testsuite/ld-mmix/bpo-21m.d
+c5d01652ee53ab129f2e03e352231dce ld/testsuite/ld-mmix/bpo-22.d
+263c76b6afbb38eab584434d4d6c6c2b ld/testsuite/ld-mmix/bpo-2m.d
+1b5307afa9a6f06cc02330c659d3365b ld/testsuite/ld-mmix/bpo-3.d
+18a744b115278b7722c291d0ffb50d7f ld/testsuite/ld-mmix/bpo-3.s
+bcdf1e512c4aee70c59fdd3660145af7 ld/testsuite/ld-mmix/bpo-3m.d
+b780d689f2a2f70c22fd43aa91fef18b ld/testsuite/ld-mmix/bpo-4.d
+27298e0392d3668044115ab5ab2d8f96 ld/testsuite/ld-mmix/bpo-4.s
+dd0d4ed3e462ccc4d407b1bf742d14be ld/testsuite/ld-mmix/bpo-4m.d
+8e5a3e3f230fc8f92300d241fd828acb ld/testsuite/ld-mmix/bpo-5.d
+7dbb13569ce91e34215372124be85954 ld/testsuite/ld-mmix/bpo-5.s
+ee7b15e113e1e43245843f5a67e4bd06 ld/testsuite/ld-mmix/bpo-5m.d
+7df5351a845c3b49a88cc8e98bdbd6c9 ld/testsuite/ld-mmix/bpo-6.d
+f2cceac4fc47fe392c8e4dc429f07561 ld/testsuite/ld-mmix/bpo-6.s
+2d7d7f08884d9c6f8b665361608621a0 ld/testsuite/ld-mmix/bpo-6m.d
+8bf2119bfa9a8f8ab1ad3a31ecc33e99 ld/testsuite/ld-mmix/bpo-7.d
+2baded74ed785888b38d2327cf0b292c ld/testsuite/ld-mmix/bpo-7.s
+973234218e86e5019e31fe579e3771f3 ld/testsuite/ld-mmix/bpo-7m.d
+4015cf8cce9a13b50227b5182b063c63 ld/testsuite/ld-mmix/bpo-8.d
+ebfa497b551fca4227045bd9c52591d7 ld/testsuite/ld-mmix/bpo-8.s
+1cb46b3bff8a3455f444bf47be753ebe ld/testsuite/ld-mmix/bpo-8m.d
+6a4bad3d3d3e7e47472c8bca3a180413 ld/testsuite/ld-mmix/bpo-9.d
+e6417328f720ed4af73d532d5578d4dc ld/testsuite/ld-mmix/bpo-9.s
+3f41674c05910b601b6428d93d075bf8 ld/testsuite/ld-mmix/bpo-9m.d
+31df213f14a88392ba820c0d322b2bf1 ld/testsuite/ld-mmix/bpo64addr.ld
+2f86e0f2ab9bdae57aa1cfff6e2bd250 ld/testsuite/ld-mmix/bspec1.d
+819de3680e13af74f5cc05450ba88c45 ld/testsuite/ld-mmix/bspec1.s
+9e65233ea9e683673fca19c9a7ac4146 ld/testsuite/ld-mmix/bspec1m.d
+b5287dc1f7bb2c618fb338cd51552771 ld/testsuite/ld-mmix/bspec2.d
+39f50619e3525dbc7bb1a57004fa7af8 ld/testsuite/ld-mmix/bspec2.s
+2264252fbee703755ad9ef0a84805b6e ld/testsuite/ld-mmix/bspec2m.d
+bf1d3c052201115389f9bf0d72b01dd1 ld/testsuite/ld-mmix/bspec801.s
+11b7fccb5486483850799cc7f3531c75 ld/testsuite/ld-mmix/bspec802.s
+22de3233920da1dfe5c1a59869059167 ld/testsuite/ld-mmix/bspec803.s
+48aa9f881a98497446e5127b530cbc0b ld/testsuite/ld-mmix/bspec804.s
+ef5ba77ef818567f2363a64a61136d07 ld/testsuite/ld-mmix/bspec805.s
+17e99c51f9fa5ef8f9dbf96b77ceb859 ld/testsuite/ld-mmix/bspec806.s
+f410482e950d36d3493dbde6ac0fa801 ld/testsuite/ld-mmix/bspec807.s
+0ef3802570112a82a32152b8615812a1 ld/testsuite/ld-mmix/bspec808.s
+a085e5ee962603b54dc4f79c8c194ee8 ld/testsuite/ld-mmix/bza-1b.d
+14eb18f6d6f609ada3232e30185e6ecd ld/testsuite/ld-mmix/bza-1f.d
+27f3762fa59df67c0890e5450cd4e2d5 ld/testsuite/ld-mmix/bza-2b.d
+2dde578feed1feed4f3d2656dc5cc096 ld/testsuite/ld-mmix/bza-2f.d
+89e214c7b44550c8c6e0516a73136d24 ld/testsuite/ld-mmix/bza-7b.d
+bacb69bdb70ce627aa3b9616c163501d ld/testsuite/ld-mmix/bza-7f.d
+6d9d599df19d65dd9733089fdcbd49ec ld/testsuite/ld-mmix/bza-8b.d
+12f488f003ac547001f13eaaa119da19 ld/testsuite/ld-mmix/bza-8f.d
+9da6a6460ebe9fa4649bf1066400630c ld/testsuite/ld-mmix/bza.s
+1174557b17ce40bbf65d516763faa9f5 ld/testsuite/ld-mmix/data1.s
+3c6cb0cb624868efe21dcb90b2a234ff ld/testsuite/ld-mmix/dloc1.s
+139ef9ed9aeef66b603b49b28a4b7cd3 ld/testsuite/ld-mmix/dloc2.s
+232026219508f7b71f6ee431840c6433 ld/testsuite/ld-mmix/ext1-254.s
+3a7cd12a9f3c4885d04f1c0813847708 ld/testsuite/ld-mmix/ext1.s
+7da77ff68e0bf805f728c01fe4970428 ld/testsuite/ld-mmix/ext1g.s
+c00696319193078a3f54bee1e3c13245 ld/testsuite/ld-mmix/ext1l.s
+f778d456be4ce9d20cc4f82b909cc799 ld/testsuite/ld-mmix/getaa-1b.d
+81cbf4605355e835ff6909c9499c8932 ld/testsuite/ld-mmix/getaa-1f.d
+4ac2b7156cc86e1da126405840d6a77c ld/testsuite/ld-mmix/getaa-2b.d
+0171fc55ec2e6b96fa7449ded4308e9d ld/testsuite/ld-mmix/getaa-2f.d
+ec5e997656fa82a54deace1a49af4006 ld/testsuite/ld-mmix/getaa-4b.d
+4e33bb67a21b0925e2f67da6b497667a ld/testsuite/ld-mmix/getaa-4f.d
+57065ae45a55d7b177b6c7e570143f37 ld/testsuite/ld-mmix/getaa-6b.d
+fcb94cf8adc18ff997bb67111d93fd38 ld/testsuite/ld-mmix/getaa-6f.d
+03d4176debdd643f4346b38381232e95 ld/testsuite/ld-mmix/getaa-7b.d
+603f2f3a78e12c0e620b56e4af943053 ld/testsuite/ld-mmix/getaa-7f.d
+6493dd727ad7957aa7cbd84f2042e569 ld/testsuite/ld-mmix/getaa-8b.d
+3ea37a2af736602c0607e73aebf6f32b ld/testsuite/ld-mmix/getaa-8f.d
+db60b0f96a0ecc05d8b34582430930cf ld/testsuite/ld-mmix/getaa.s
+cd9b942d75b2cd9f16f3e2a97421cf30 ld/testsuite/ld-mmix/getaa12b.d
+955393ce5664bd2add2eb31ba04ad921 ld/testsuite/ld-mmix/getaa12f.d
+55735ac048b10ea2324d0dd89d4802bc ld/testsuite/ld-mmix/getaa14b.d
+3a66b9fccc865bc6698401aec03638da ld/testsuite/ld-mmix/getaa14f.d
+d15a667ae769b6fdb599e2fafcf18901 ld/testsuite/ld-mmix/greg-1.d
+09bdeabfdc8bad2aa2102a69f2acec6c ld/testsuite/ld-mmix/greg-1.s
+3e8753750bd03d1b8cc47973bf0c5fa8 ld/testsuite/ld-mmix/greg-10.d
+52fbd6227f7f3e5728b8350c69d33742 ld/testsuite/ld-mmix/greg-11.d
+6fe8e51b99e9625c021dc8b50da3f7e8 ld/testsuite/ld-mmix/greg-11b.d
+c08a75bfc1dbf3d5076fc4e61dfcf362 ld/testsuite/ld-mmix/greg-12.d
+7462e0377d376b0bd47753854a6a407f ld/testsuite/ld-mmix/greg-13.d
+0f5ca7c06e9079441da2c7a84b922e76 ld/testsuite/ld-mmix/greg-14.d
+7e20aba7bfc285ad4569f7dbf995f575 ld/testsuite/ld-mmix/greg-14s.d
+172c9bc30b96bbc7f5d47dc3f2c3d7fb ld/testsuite/ld-mmix/greg-15.d
+a3ff1f310992ee435c7e2635d8d29460 ld/testsuite/ld-mmix/greg-16.d
+d01503c2c69d7f452f4eefacaa68899d ld/testsuite/ld-mmix/greg-17.d
+b11ff19d10f01e1e3f56e46144a2221f ld/testsuite/ld-mmix/greg-18.d
+467ea26fedbd20ac06f1f535006faa9a ld/testsuite/ld-mmix/greg-19.d
+4547d19a8920b5f63dccc18e0b02b270 ld/testsuite/ld-mmix/greg-2.d
+d32fe386de0bb7cbeae911f55b74f28c ld/testsuite/ld-mmix/greg-2.s
+f7a8dad75521d024520597ea106b9aea ld/testsuite/ld-mmix/greg-20.d
+13fe89a7dd43832d54cc0db06cb5b99d ld/testsuite/ld-mmix/greg-3.d
+fd8c230efbb1e8e9644f278fc55956d1 ld/testsuite/ld-mmix/greg-3.s
+620f140d5c613e86521a64ff9b30ff09 ld/testsuite/ld-mmix/greg-4.d
+ca83717a845f3471de058678cd3d768d ld/testsuite/ld-mmix/greg-4.s
+517a41ee10b02ecbe9842f014bc4a895 ld/testsuite/ld-mmix/greg-5.d
+6480362111f72bcd1075662b96302bda ld/testsuite/ld-mmix/greg-5.s
+9935d0deb3efa07e81f8b2c5a6b7380b ld/testsuite/ld-mmix/greg-5s.d
+ce16f9bb5d81df7ab48c501599413eac ld/testsuite/ld-mmix/greg-6.d
+418b000655af054b390b8bb2b874c60e ld/testsuite/ld-mmix/greg-7.d
+59e0e7eb634040c0b9cbd93f668ccc98 ld/testsuite/ld-mmix/greg-8.d
+d93fac49ebe47c54143f6d735cbd0d2b ld/testsuite/ld-mmix/greg-9.d
+52303123f40dff47906913e8da9c286e ld/testsuite/ld-mmix/gregbza1.s
+7f3142883e0933aff11c0c1cb95a77fa ld/testsuite/ld-mmix/gregget1.s
+2cb7950e0a1953d2b987a9f8cc7c4512 ld/testsuite/ld-mmix/gregget2.s
+e550195681ad09a232fe5aee1377329d ld/testsuite/ld-mmix/gregldo1.s
+ca8df40c1626e176553bb89a9e763fdb ld/testsuite/ld-mmix/gregpsj1.s
+9ab537a0341b7c4352c8611cceea62ef ld/testsuite/ld-mmix/hdr-1.d
+947dee63abfc6e1d2189ad4fd9b66eb6 ld/testsuite/ld-mmix/jumpa-1b.d
+d584fc102026b000a7fc6b96d9963230 ld/testsuite/ld-mmix/jumpa-1f.d
+c40d746d73d8ea03d1af670cf0396d1a ld/testsuite/ld-mmix/jumpa-2b.d
+e1307a32eda7c8432b3f989be35b6b8c ld/testsuite/ld-mmix/jumpa-2f.d
+f0604395727a87a9f44e5f3a2022ae6f ld/testsuite/ld-mmix/jumpa-3b.d
+de6787c0fa3a5822645c9842f381bcd9 ld/testsuite/ld-mmix/jumpa-3f.d
+df9824fc96665a5167b94df1372d7d66 ld/testsuite/ld-mmix/jumpa-4b.d
+414791dc7016ab49289b99a78cb6e102 ld/testsuite/ld-mmix/jumpa-4f.d
+296124a282e0d1c7b934f6ed800ecdaa ld/testsuite/ld-mmix/jumpa-5b.d
+beac115e902f66a613fbbf078136347b ld/testsuite/ld-mmix/jumpa-5f.d
+130046ec10144296bd85ff47bcca6dae ld/testsuite/ld-mmix/jumpa-6b.d
+f4ca5428c16dc7044eba616c88060283 ld/testsuite/ld-mmix/jumpa-6f.d
+883c0287f9033fab6803c32c4eda1c69 ld/testsuite/ld-mmix/jumpa-7b.d
+4b126c7bae3abfc161abbf89974ee8c5 ld/testsuite/ld-mmix/jumpa-7f.d
+c30b409fdc294bae9f080af0c0f0e2ff ld/testsuite/ld-mmix/jumpa-8b.d
+2a744a21150001b4cd0ede5b110709ae ld/testsuite/ld-mmix/jumpa-8f.d
+f00db713cea505b97fbb93faa65e3d45 ld/testsuite/ld-mmix/jumpa-9b.d
+e53bb3803346e92f0ec97bbc784c1eac ld/testsuite/ld-mmix/jumpa-9f.d
+1d6c21fd3ef1c8d793380a2691b6eb7c ld/testsuite/ld-mmix/jumpa.s
+7153d676cf0b92abceb49b341d0853ea ld/testsuite/ld-mmix/jumpa12b.d
+8462c80cfea74bf25bcf6f8c278db269 ld/testsuite/ld-mmix/jumpa12f.d
+01b18bcede2c8d9ef1d4e69be534211e ld/testsuite/ld-mmix/jumpa13b.d
+ddb26bcaaaaa6d50847383e563b4d3bc ld/testsuite/ld-mmix/jumpa13f.d
+5c43f0af321e1389d47b9006502018e1 ld/testsuite/ld-mmix/jumpa14b.d
+0e314b43bc6d623eff2df40b7a85c520 ld/testsuite/ld-mmix/jumpa14f.d
+3cdf6375ecfea7039ec8dfa92143a20d ld/testsuite/ld-mmix/loc1.d
+b56a23c50b6ddbff1f3794283f3277f1 ld/testsuite/ld-mmix/loc1.s
+6408168fece5456b214bc70c861189a5 ld/testsuite/ld-mmix/loc10.d
+7f5b22219f4a9814515a346f6cdc5c27 ld/testsuite/ld-mmix/loc10.s
+986e92c55c1c527e3a8f5a9bd0d80a13 ld/testsuite/ld-mmix/loc10m.d
+fb75bea1a25c34bbf8e30d990a432d97 ld/testsuite/ld-mmix/loc1m.d
+2df3f3c439ce03002c2bcb3ec3e46a8e ld/testsuite/ld-mmix/loc2.d
+3c356ecff8149f5f58b96419632abe2d ld/testsuite/ld-mmix/loc2.s
+499e0b02ab9cde3ceb84ef08a360c969 ld/testsuite/ld-mmix/loc2m.d
+86cc9188574d2dfc8219e7b500e816a9 ld/testsuite/ld-mmix/loc3.d
+d57db0d8ece842d7e871c26f0165ace0 ld/testsuite/ld-mmix/loc3m.d
+9fcbe63857ba71b4e0f7c6d0ffddd504 ld/testsuite/ld-mmix/loc4.d
+0ca8c4e7244194dc55fa159ebee2778f ld/testsuite/ld-mmix/loc4m.d
+6bce3b0517b052d03c4c4f6ff493fa86 ld/testsuite/ld-mmix/loc5.d
+b5bb17720ffd70fe284c562e7302dd3f ld/testsuite/ld-mmix/loc5m.d
+51a32dda96fb3b78968d38a7388776cb ld/testsuite/ld-mmix/loc6.d
+10b39e63d1856e7c9fd0bfc29a04160b ld/testsuite/ld-mmix/loc6m.d
+82f045e44234bb0c8c17b511462c5ea9 ld/testsuite/ld-mmix/loc7.d
+9c15aa64a5b8f8693882f01d28db4ef0 ld/testsuite/ld-mmix/loc7m.d
+539b8691781ad828f208654d832c709c ld/testsuite/ld-mmix/loc8.d
+b5663cc70c64e49e309a75a50c829297 ld/testsuite/ld-mmix/loc8.s
+5bc559fd76d2eefd610ad12f54cc7b94 ld/testsuite/ld-mmix/loc8m.d
+a952551f22addd80069b6c3d3a02ada3 ld/testsuite/ld-mmix/loc9.d
+f884ac0f1a4e95b1b472092333f11075 ld/testsuite/ld-mmix/loc9.s
+4946a9228800b29bef3d2ae70cb063d6 ld/testsuite/ld-mmix/loc9m.d
+c508652e70247edc0d111d3659682447 ld/testsuite/ld-mmix/local1.d
+d707f849fbe9f63a5f2c01fd2566e038 ld/testsuite/ld-mmix/local1.s
+7ece63c1f6d1bf57eb22577253170a37 ld/testsuite/ld-mmix/local10.d
+04997ac752692c6b8804cd4e39a0ea58 ld/testsuite/ld-mmix/local10m.d
+099da77c40cba26141817d4091e7db2c ld/testsuite/ld-mmix/local11.d
+d325c8975956aa1752219b1a535cf285 ld/testsuite/ld-mmix/local11m.d
+05be1f62230e543b5b8c655ab9caecc0 ld/testsuite/ld-mmix/local12.d
+a5a00cd4518d7bd4241630424826ff15 ld/testsuite/ld-mmix/local12m.d
+2092cd703c3f9100f9e0ff053d8ce46a ld/testsuite/ld-mmix/local1m.d
+509fc476ca1023f3ccf69f809616de98 ld/testsuite/ld-mmix/local2.d
+e162c55691230b3ef6099eace547e1b4 ld/testsuite/ld-mmix/local2.s
+f9779e43410c476cfa2b2450f8b2639d ld/testsuite/ld-mmix/local2m.d
+8c64e08c74d8b411548eb5bde2c2c6a0 ld/testsuite/ld-mmix/local3.d
+84414c509524b98f37bc39f6bcb0403c ld/testsuite/ld-mmix/local3m.d
+18cc28d324964767918c7071b53b80df ld/testsuite/ld-mmix/local4.d
+06f51156a11dc9114232e16ea38ee99a ld/testsuite/ld-mmix/local4m.d
+3679ef1e0f41dcab5034cd1aa0f41700 ld/testsuite/ld-mmix/local5.d
+f025bba412c428db6d7fe5d4e90528c4 ld/testsuite/ld-mmix/local5m.d
+eb4d717d242d7cd8ccc98b6350c95fd2 ld/testsuite/ld-mmix/local6.d
+f355a139634c881acf82d620115d829a ld/testsuite/ld-mmix/local6m.d
+b27ac036cc770615c18abb33e871301e ld/testsuite/ld-mmix/local7.d
+b7ed816019fd284d6e048ebfd47420dc ld/testsuite/ld-mmix/local7m.d
+099f86d65a29acd85ad462039776b43f ld/testsuite/ld-mmix/local8.d
+d779355656462b041e143cc4e2b98726 ld/testsuite/ld-mmix/local8m.d
+133c44093006e1390646457d69e680c5 ld/testsuite/ld-mmix/local9.d
+ab244ec4c684d78029caca3dc30d9bfb ld/testsuite/ld-mmix/local9m.d
+74c39421284fcce93a5401326a5b0999 ld/testsuite/ld-mmix/locdo-1.d
+d6727f0db8cd2c9e50ae8bf7b22eaeaa ld/testsuite/ld-mmix/locdo.s
+25d6ea5c55773af722fd4b86198207e0 ld/testsuite/ld-mmix/loct-1.d
+022fa8e6f9b0b5e7125cf1ef50101a2b ld/testsuite/ld-mmix/loct.s
+b68fbe623d9d44bb2a01d70e3de91be9 ld/testsuite/ld-mmix/locto-1.d
+3d1a25d72e6ab244d8e39098981c9740 ld/testsuite/ld-mmix/locto.s
+64980a23a389e2541da0ffe38b717379 ld/testsuite/ld-mmix/main1.s
+329fb8a6ca411733a8dcdcbe27e81a5d ld/testsuite/ld-mmix/mmix.exp
+d20704a169ec8e219c96ad37791c9b78 ld/testsuite/ld-mmix/mmohdr1.ld
+09f5e63cab9e137df35586cc1751ed89 ld/testsuite/ld-mmix/mmosec1.ld
+b1edc5d09d1437afe67f3b9acce38480 ld/testsuite/ld-mmix/mmosec2.ld
+c862b5cb256b14f3b80a3b0cb6fb8308 ld/testsuite/ld-mmix/nop123.s
+bf8eb179f03ef8f7b10763e10511c52d ld/testsuite/ld-mmix/pad16.s
+be8023f28e5f203322f381ff7d58ae34 ld/testsuite/ld-mmix/pad2p18m32.s
+81b17ca511569ebb10d6a6830d2a2cd3 ld/testsuite/ld-mmix/pad2p26m32.s
+3a61e1bd72b667553611dd950a466a58 ld/testsuite/ld-mmix/pad4.s
+cb2e36a26f1c70b8b7448540e0daeeb6 ld/testsuite/ld-mmix/pr12815-1.d
+af8b064d3035251407d3a70749af564e ld/testsuite/ld-mmix/pr12815-1.ld
+3eb5638b02efe71633e3369d2d3c7ffb ld/testsuite/ld-mmix/pr12815-1.s
+a7d5729c66b793a8f645459563b5c4ef ld/testsuite/ld-mmix/pr12815-2.d
+fb6449a01ff11bbe2faa5f300096de2c ld/testsuite/ld-mmix/pr12815-2.s
+3dc512ff8407897ee38c5fa85a492dee ld/testsuite/ld-mmix/pushja.s
+5020f79a75091e672b04c38fc0c0f632 ld/testsuite/ld-mmix/pushja1b-s.d
+b3669a0c5355bdb89bec1e20bd818192 ld/testsuite/ld-mmix/pushja1b.d
+41a518887b979d1cb707e16a62a07fa3 ld/testsuite/ld-mmix/pushja1f-s.d
+a28b0ed5b9bcc826918ca21a220931bc ld/testsuite/ld-mmix/pushja1f.d
+0469afb2478be33584e0a39b366e21f9 ld/testsuite/ld-mmix/pushja2b.d
+f36af7e7017293f1a8ef06c21db3defd ld/testsuite/ld-mmix/pushja2f.d
+cf60b693a7c7300bd2fdfea2840f4c32 ld/testsuite/ld-mmix/pushja7b-s.d
+a51c4d52b6009de0529b462bd331b056 ld/testsuite/ld-mmix/pushja7b.d
+a93ceca5e988078b6cfd5bb87488b00f ld/testsuite/ld-mmix/pushja7f-s.d
+7ca3d6d32d8bf1fe0c0fa2dfd5d3bac7 ld/testsuite/ld-mmix/pushja7f.d
+5ca57868e3251f1d3266878cf4bd9c86 ld/testsuite/ld-mmix/pushja8b.d
+55ef82ed26376647664ab8be845439a5 ld/testsuite/ld-mmix/pushja8f.d
+f0291d64464843bb9d1c20f11491fd76 ld/testsuite/ld-mmix/pushjs1.d
+6136250bae3eb327a6b4dc10bf7311a8 ld/testsuite/ld-mmix/pushjs1b.d
+229b0052b5762f655f800004f8f9131d ld/testsuite/ld-mmix/pushjs1bm.d
+4b21f4f0f21ed691e0e4abe3fd290f98 ld/testsuite/ld-mmix/pushjs1m.d
+3263ef0b06f7a6789787e0ae26cf778d ld/testsuite/ld-mmix/pushjs1r.d
+8dc08526c346b0c2949d717f026727be ld/testsuite/ld-mmix/pushjs2.d
+f1474c6fb67624c679b9c63365b92657 ld/testsuite/ld-mmix/pushjs2b.d
+00442b5dd5c4b626b5e9e629dec76b65 ld/testsuite/ld-mmix/pushjs2bm.d
+4661fb2fc41eeeef64b817711af25a25 ld/testsuite/ld-mmix/pushjs2m.d
+cc7873bb5868cb9695805db68cbc67e4 ld/testsuite/ld-mmix/pushjs2r.d
+c117c4fe9906809ffca078ffbc48d163 ld/testsuite/ld-mmix/pushjs3.d
+3007b0afe39473c82e78365f4da3c488 ld/testsuite/ld-mmix/pushjs3b.d
+e828e56802bbbfd1a3b53cff43fb28b3 ld/testsuite/ld-mmix/pushjs3bm.d
+697593e94a267bf2aba1f02e529854ae ld/testsuite/ld-mmix/pushjs3m.d
+c6552b7876f5c1928de731cc7608a507 ld/testsuite/ld-mmix/pushjs3r.d
+3a51c60a88ee993a8af188406df050d2 ld/testsuite/ld-mmix/pushjs4.d
+8339f07bf2171e19c82569c0783f9ea3 ld/testsuite/ld-mmix/pushjs4b.d
+6367bb7d4d3761e60d40bb6d91361498 ld/testsuite/ld-mmix/pushjs4bm.d
+883382cfd9016d49f7bb6f3d4febc771 ld/testsuite/ld-mmix/pushjs4m.d
+8218b27d50327ef3dcf53ec0f747a724 ld/testsuite/ld-mmix/pushjs4r.d
+21d7dbfa3ce2bb14bf3a09c65ed670eb ld/testsuite/ld-mmix/reg-1.d
+f5826a00432ff4882e1366d68db516c4 ld/testsuite/ld-mmix/reg-1m.d
+0c57becb827f2718163d3834ac0eda1e ld/testsuite/ld-mmix/reg-2.d
+2dc0d2fad390f27aced1bb6b2d605948 ld/testsuite/ld-mmix/reg-2m.d
+23286b28cfff45deec5e81c3e9002928 ld/testsuite/ld-mmix/regext1.s
+69e4b9f6bebc733c9d115ffe73073757 ld/testsuite/ld-mmix/sec-1.d
+1b441f0c92b01fbf76e01724e766206c ld/testsuite/ld-mmix/sec-1.s
+d75bbbc9b76652e82c593e8021a788a5 ld/testsuite/ld-mmix/sec-2.d
+6d236a9289815d56433dcd7178318aeb ld/testsuite/ld-mmix/sec-2.s
+ced9dd7695a2b6ba5af87f739be18165 ld/testsuite/ld-mmix/sec-3.d
+c2fe6cf6eac2927c283a454b0b86cbab ld/testsuite/ld-mmix/sec-4.d
+5a0ea2f638ec8f036edca789bba8451b ld/testsuite/ld-mmix/sec-5.d
+f44baed1e2692684d280f4f87721efec ld/testsuite/ld-mmix/sec-6.d
+d843e0c48ae3ee12a22ec7d31b8f06df ld/testsuite/ld-mmix/sec-6.s
+779977e27f6f62a9d866cb5910d827a0 ld/testsuite/ld-mmix/sec-6m.d
+33c42176cf1ac4503f9bde3425413478 ld/testsuite/ld-mmix/sec-7a.s
+844abe2f3679b2af13e8e7f44914f609 ld/testsuite/ld-mmix/sec-7b.s
+bfabfa85f8df5f46a04fcc6e84d66e62 ld/testsuite/ld-mmix/sec-7c.s
+f57ffaf24002d2183b8ac914845be685 ld/testsuite/ld-mmix/sec-7d.s
+8a1740e8f0a98d2b3eba20aee81ff409 ld/testsuite/ld-mmix/sec-7e.s
+18c464e2b826280b8be2267a9ffe91d5 ld/testsuite/ld-mmix/sec-7m.d
+46fe8846ab4dcf70c53008ef4b13298a ld/testsuite/ld-mmix/sec-8a.s
+384f320ac9806b341089b1d9c0e07831 ld/testsuite/ld-mmix/sec-8b.s
+7d0699e43412bf704bd591e4dcc37cf0 ld/testsuite/ld-mmix/sec-8d.s
+9f11ec06925dc6056aa786981c8e21e2 ld/testsuite/ld-mmix/sec-8m.d
+19025901dfe14ecc1734484e58975bca ld/testsuite/ld-mmix/sec-8m.s
+6b54cd31a1680ed2811f6a6cfda9db6e ld/testsuite/ld-mmix/sec-9.d
+ce62b12138d3784ec93a3a8240dba2e5 ld/testsuite/ld-mmix/spec801.d
+1e856c201fa2a4cbec995adebafe098e ld/testsuite/ld-mmix/spec802.d
+1236260a16fea1321acac9742be6406d ld/testsuite/ld-mmix/spec803.d
+2b52ae4ff8779df81116bacf67daaaa4 ld/testsuite/ld-mmix/spec804.d
+870d203eabbeb05b6e7f11f5698d7f38 ld/testsuite/ld-mmix/spec805.d
+53cbba5fe3fc3f7555eafbf029a83290 ld/testsuite/ld-mmix/spec806.d
+6f72403f26862050d862b991a32859b1 ld/testsuite/ld-mmix/spec807.d
+4e3034fe7c34cb8275c7ec8ef88b93e3 ld/testsuite/ld-mmix/spec808.d
+eef70afe74e16e078ccf5dbf2dab0eff ld/testsuite/ld-mmix/start-1.d
+4be3976267833ea3c34b0f798a8c1485 ld/testsuite/ld-mmix/start-2.d
+be36292d5a752d8e3594c19f02c2438a ld/testsuite/ld-mmix/start.s
+c99cb759a47ad31cda97850838a8521d ld/testsuite/ld-mmix/start2.s
+b98323b2049052463fe47f60a1d71402 ld/testsuite/ld-mmix/start3.s
+d97c85895c64e2800341eb264ec6c712 ld/testsuite/ld-mmix/start4.s
+837a9fc70319cce38647e27afea26552 ld/testsuite/ld-mmix/sym-1.d
+d6f7823c96d07d63eff9a4377a3d1197 ld/testsuite/ld-mmix/sym-2.d
+5a3543a015c57b95e141c3e542415ad7 ld/testsuite/ld-mmix/sym-2.s
+6da9e787afba836a409158b5e1f05682 ld/testsuite/ld-mmix/undef-1.d
+6ac82fe0ffb7d83ec7d663b5d78e8a33 ld/testsuite/ld-mmix/undef-1.s
+a4e3f736b38cbe5268a76e8290aecfc0 ld/testsuite/ld-mmix/undef-1m.d
+442d8e36bccc5a0b2c509ae050688162 ld/testsuite/ld-mmix/undef-2.d
+a41b27d14532da2a3129fcc4caf5c055 ld/testsuite/ld-mmix/undef-2.s
+8f55b70c5902ca731fa760d513930a89 ld/testsuite/ld-mmix/undef-2m.d
+c05df34ccf0e6e24e899048bf055c71a ld/testsuite/ld-mmix/undef-3.d
+0c0fa2fe0d0853b92b35546f57987868 ld/testsuite/ld-mmix/undef-3m.d
+7f9adc03c95979a593ef1a63b3eb0185 ld/testsuite/ld-mmix/x.s
+9eb68df78fb71ad881ebdbaabcbe9e64 ld/testsuite/ld-mmix/y.s
+eec04ab77a221898170a779328cf4470 ld/testsuite/ld-mmix/zeroeh.ld
+23ef0a6ffc77b189f325690c67cd44ab ld/testsuite/ld-mmix/zeroehelf.d
+4ead9079acee42775e41e21b02bcf7f1 ld/testsuite/ld-mmix/zeroehmmo.d
+27f159f029022aef43fbd30384995471 ld/testsuite/ld-mn10300/i112045-1.d
+44360d9de8d834a50e42eae4e472367b ld/testsuite/ld-mn10300/i112045-1.s
+a8484f9973bea2ff58705fa33b4920ee ld/testsuite/ld-mn10300/i112045-2.d
+ee1e79eaa54d07274b6d42fda10523a4 ld/testsuite/ld-mn10300/i112045-2.s
+9a79c8b3a779faf10b6e78c95f8dd5b9 ld/testsuite/ld-mn10300/i112045-3.d
+37537d7a6464bc0ac12d91db7182d6b2 ld/testsuite/ld-mn10300/i112045-3.s
+6cd608b8ae1960cd3c52237e87bb867d ld/testsuite/ld-mn10300/i126256-1.c
+7fef111f3c90cfa4bec9e66625627376 ld/testsuite/ld-mn10300/i126256-2.c
+ea54ef98068eca5fa0d02ad0731e36a2 ld/testsuite/ld-mn10300/i127740.d
+5cad82902fb28333769ac6429ef2edcd ld/testsuite/ld-mn10300/i127740.s
+4b90148c5bdaf10fd4cb3221bcf2d6bd ld/testsuite/ld-mn10300/i135409-1.d
+3fa3331eafa989b61dbc8ec6b14b1e38 ld/testsuite/ld-mn10300/i135409-1.s
+f476bf2dcfc8f0cb48030527695a9bf0 ld/testsuite/ld-mn10300/i135409-2.d
+4496e0bce8d72f30a840f131da99f2d5 ld/testsuite/ld-mn10300/i135409-2.s
+da646c61848b8482377e536ee568a678 ld/testsuite/ld-mn10300/i135409-3.d
+4db30e5d483cbea98f48fd574f8c6a8b ld/testsuite/ld-mn10300/i135409-3.s
+34163fdd45bf946f3bda2b70bbdc8546 ld/testsuite/ld-mn10300/i135409-4.d
+da40960452ce9a0d687ecf6dfccfa7d3 ld/testsuite/ld-mn10300/i135409-4.s
+bd852f419af093869c324a1c8b703f1a ld/testsuite/ld-mn10300/i135409-4.t
+50da2909e7609ec153f370302fa7d112 ld/testsuite/ld-mn10300/i135409-5.d
+6e9e360a2e7379f68cd59fff6509686b ld/testsuite/ld-mn10300/i135409-5.s
+ce143e60b2aeee5790b0e617dbb14fb9 ld/testsuite/ld-mn10300/i135409-5.t
+d8cea70ea6dc1b040e19c7ee1dc89991 ld/testsuite/ld-mn10300/i143317.d
+7f187c7d458b688d75a746755011f384 ld/testsuite/ld-mn10300/i143317.s
+5213998d7ac3670a20fb4917ca5386a1 ld/testsuite/ld-mn10300/i143317.t
+2f5dfdc78602f4589b91011586bbee08 ld/testsuite/ld-mn10300/i36434-2.s
+7a83647077d83988424e2cda3284621a ld/testsuite/ld-mn10300/i36434.d
+c26780f90e85d894b5be292c4ce1f2d3 ld/testsuite/ld-mn10300/i36434.s
+4cdd20d24214ce1cba693f2581332765 ld/testsuite/ld-mn10300/mn10300.exp
+8ac7120f192bc4249e36b8d5f2e07412 ld/testsuite/ld-pe/aligncomm-1.c
+1ed11da2764b5effe30755ad549c3915 ld/testsuite/ld-pe/aligncomm-2.c
+c66da35da31a929199359aa772b7bf9f ld/testsuite/ld-pe/aligncomm-3.c
+96b2b3c2e438bbfab2caf084a81581c6 ld/testsuite/ld-pe/aligncomm-4.c
+4876910c8e205ffa2f0dc314fedf08be ld/testsuite/ld-pe/aligncomm.d
+8cbc3f7e387846b7dc11a49431b3498b ld/testsuite/ld-pe/basefile1.s
+425a249a4b3d03149936d01e197fd44e ld/testsuite/ld-pe/cfi.d
+0330f9e9e0a2298753b743e6ad494ba3 ld/testsuite/ld-pe/cfi32.d
+50bd2f2922a50e4110eebcd79dabeb7e ld/testsuite/ld-pe/cfia.s
+728380297572aa28bb93922358a3fa82 ld/testsuite/ld-pe/cfib.s
+48d3b3bc21dc061eca7594f0d592379b ld/testsuite/ld-pe/direct2_client.c
+071ad6aff7e8b6037c283aa608e73191 ld/testsuite/ld-pe/direct2_dll.c
+51a6ee1bf718258f33ea39a8c0a805a7 ld/testsuite/ld-pe/direct2_dll.def
+04b6a5d2a9436d64c0b254e9477df3f9 ld/testsuite/ld-pe/direct_client.c
+2ee4aa16665e7dac812ddcfcdfa898d2 ld/testsuite/ld-pe/direct_dll.c
+03562dddef0ae3b65968e86ac10d94aa ld/testsuite/ld-pe/export_dynamic_warning.d
+508afe660308a34e7b5a4c0577da2c42 ld/testsuite/ld-pe/export_dynamic_warning.s
+4398638dc02ea6a1283779ffedcb2ff0 ld/testsuite/ld-pe/exports.d
+63895f68d2f6c0b605b27975378f8101 ld/testsuite/ld-pe/exports.s
+013993ec18b595fec0c2c2b9da23d635 ld/testsuite/ld-pe/exports64.d
+9d6429fb0bed32ab4f21b92e58af9e76 ld/testsuite/ld-pe/image_size.d
+bfdf01cbcdcc47293ad59e8ead5fbb51 ld/testsuite/ld-pe/image_size.s
+62eb5a4d84b6685b97571577a518f44f ld/testsuite/ld-pe/image_size.t
+2e2af98f972cfcea63aa373f9c84ea86 ld/testsuite/ld-pe/longsecn-1.d
+5ded97bd96ae772c83818e16a0a062fb ld/testsuite/ld-pe/longsecn-2.d
+cf525ed0245ed796222e8ae6542f191d ld/testsuite/ld-pe/longsecn-3.d
+d649c9769f98d66f95553f610e5f0e34 ld/testsuite/ld-pe/longsecn-4.d
+5bb4e76cfba0a8ca65b0c41c05f23159 ld/testsuite/ld-pe/longsecn-5.d
+483193dc97d2131b375e5a3782d0a21d ld/testsuite/ld-pe/longsecn.d
+0a2abc0eb25882699c7cb00521f36122 ld/testsuite/ld-pe/longsecn.s
+892d645217319214a646ada0d5d309d7 ld/testsuite/ld-pe/non-c-lang-syms.d
+1dea19421cfb9f1a5874ac9f8b073c5a ld/testsuite/ld-pe/non-c-lang-syms.s
+c4bdcbcfed3d4ba8a7c10e355f198f42 ld/testsuite/ld-pe/orphan.d
+841430a2f57ec958fdaac4cfa1194b31 ld/testsuite/ld-pe/orphan_nu.d
+cf0d8bce642b4fa4a75fd5d41a9a03d7 ld/testsuite/ld-pe/orphana.s
+b9eb88417dbdaa3dbbd3803aa0312c4f ld/testsuite/ld-pe/orphana_nu.s
+f38c9ff46a607c6d053bd1bcc5769d3c ld/testsuite/ld-pe/orphanb.s
+969af8da47cb3c0f1eea7219d39366c6 ld/testsuite/ld-pe/orphand.s
+4c6643fbe84663ac33cc7925b67714aa ld/testsuite/ld-pe/orphane.s
+d2fa93bd92732445cd9213dc133633c0 ld/testsuite/ld-pe/pe-compile.exp
+24a8c439f77b8b1765c78c92a8c04e25 ld/testsuite/ld-pe/pe-run.exp
+a1325eb2ba48dde18c8a6ea12c7244ed ld/testsuite/ld-pe/pe-run2.exp
+7128de19cd6e146eb1225e3e9cf9930a ld/testsuite/ld-pe/pe.exp
+11d410b535f9ff474c475dc0a1f85115 ld/testsuite/ld-pe/secrel.d
+ae437b9d8fe2c177c2672e5ca17b9942 ld/testsuite/ld-pe/secrel1.s
+819c1330d03d03cf5d7201562b28b589 ld/testsuite/ld-pe/secrel2.s
+cd518cd34e7a57806204a62d5574772a ld/testsuite/ld-pe/secrel_64.d
+3ede606ef91fcb4122b82978940e43cc ld/testsuite/ld-pe/tlssec.s
+860c233449c16465d94991686fc08335 ld/testsuite/ld-pe/tlssec32.d
+fd9c5ae6eca86b7b841e08641e1199f5 ld/testsuite/ld-pe/tlssec64.d
+96fb34184ce8ecd9dc8d6f48d0a3c8c1 ld/testsuite/ld-pe/vers-script-1.d
+720e7fb1c57e0b2e4ad729a33ea9077e ld/testsuite/ld-pe/vers-script-1.ver
+d41d8cd98f00b204e9800998ecf8427e ld/testsuite/ld-pe/vers-script-2.d
+1084f86390f69166e2d7c825eec7a20e ld/testsuite/ld-pe/vers-script-2.ver
+c790ee9582d666570b5a431c381875fc ld/testsuite/ld-pe/vers-script-3.d
+13fc127864a775b5feed8f9c90cef50f ld/testsuite/ld-pe/vers-script-3.ver
+c790ee9582d666570b5a431c381875fc ld/testsuite/ld-pe/vers-script-4.d
+c920dab590e529f9847e35df7d95646c ld/testsuite/ld-pe/vers-script-4.ver
+6448c7b3e321945b8f898f09bd7078bf ld/testsuite/ld-pe/vers-script-dll.c
+8a1b43bb1b98d47569c87c7daeccf062 ld/testsuite/ld-pie/pie.c
+0a05ace6d4ddf25938ada7e2c9ae1857 ld/testsuite/ld-pie/pie.exp
+978f320127c9134b539647f14ba3b730 ld/testsuite/ld-pie/start.d
+0aa89fa11067e1cf8802e998bf394ec0 ld/testsuite/ld-pie/start.s
+359398aa508714182f5126243220aef5 ld/testsuite/ld-pie/weakundef-data.c
+b0684fc70a8cbc0afdcb316aafcc024b ld/testsuite/ld-pie/weakundef.c
+15de982d1dc99ce52d089868a579de34 ld/testsuite/ld-pie/weakundef.out
+dc4d9b0657141afdfd01a9dfb03d9c3e ld/testsuite/ld-plugin/func.c
+e6f0c2a8972646b01ce62774b99d26c3 ld/testsuite/ld-plugin/main.c
+fb31ad0f6fc416467c52448e09a6ed0d ld/testsuite/ld-plugin/plugin-1.d
+28c7b559aee809b24c5dad11f763e833 ld/testsuite/ld-plugin/plugin-10.d
+8b3ee384b0c95292a0028ba41c07cf45 ld/testsuite/ld-plugin/plugin-11.d
+1ab5c99c40a35f2bc5efe3360f1235b2 ld/testsuite/ld-plugin/plugin-12.d
+ba527e9546ed402c82aa2d22b86236ba ld/testsuite/ld-plugin/plugin-2.d
+dd2a4e0fce19c8632dbc3ac8ebc2fa96 ld/testsuite/ld-plugin/plugin-3.d
+9ba70ecfadb8125e25978153f892168c ld/testsuite/ld-plugin/plugin-4.d
+ca9d90be38d69cca59a3ff326d8b741e ld/testsuite/ld-plugin/plugin-5.d
+2dfd3cbce76916d83f9279a40e5032ff ld/testsuite/ld-plugin/plugin-6.d
+dcea5cc67a08002b575339520b77d6c8 ld/testsuite/ld-plugin/plugin-7.d
+62b6584dc254c60e32f1559a5b038685 ld/testsuite/ld-plugin/plugin-8.d
+30fc063d93e8867c473add20ef7ff9d5 ld/testsuite/ld-plugin/plugin-9.d
+48f18574de4fff28a22869be67319452 ld/testsuite/ld-plugin/plugin-vis-1.d
+3a47945536988c5881e695e9f71028eb ld/testsuite/ld-plugin/plugin.exp
+72544f1d7add23af2c711066174c8423 ld/testsuite/ld-plugin/text.c
+2056fa7643066f49946ba8d45630009d ld/testsuite/ld-powerpc/aix-abs-branch-1.dd
+d3b07384d113edec49eaa6238ad5ff00 ld/testsuite/ld-powerpc/aix-abs-branch-1.ex
+ca3964932af48f40a9f48fc85e8f513d ld/testsuite/ld-powerpc/aix-abs-branch-1.im
+aae7827ef2c1c6392ae6c362e7201589 ld/testsuite/ld-powerpc/aix-abs-branch-1.nd
+875bb8d63ebec84d15bd3e3f0ad53bb7 ld/testsuite/ld-powerpc/aix-abs-branch-1.s
+d3b07384d113edec49eaa6238ad5ff00 ld/testsuite/ld-powerpc/aix-abs-reloc-1.ex
+9fd2efd79e26dd704a262391abfbd37c ld/testsuite/ld-powerpc/aix-abs-reloc-1.im
+d4578c2dd6929a44a9dd1b6b630c9885 ld/testsuite/ld-powerpc/aix-abs-reloc-1.nd
+37de35f964e0f7eb7fb312f31eab3394 ld/testsuite/ld-powerpc/aix-abs-reloc-1.od
+a585648b05335ce9c7cfdd1201a98265 ld/testsuite/ld-powerpc/aix-abs-reloc-1.s
+d3b07384d113edec49eaa6238ad5ff00 ld/testsuite/ld-powerpc/aix-core-sec-1.ex
+d2b3cf652e19c6f173e6ceadeccbe145 ld/testsuite/ld-powerpc/aix-core-sec-1.hd
+46728f3c273cf2d3fb2fe7f3362d1f98 ld/testsuite/ld-powerpc/aix-core-sec-1.s
+d3b07384d113edec49eaa6238ad5ff00 ld/testsuite/ld-powerpc/aix-core-sec-2.ex
+020d961bc2bd12358e53b141b9b25aa4 ld/testsuite/ld-powerpc/aix-core-sec-2.hd
+97c6402a48ec2effe24d4cec14311c3d ld/testsuite/ld-powerpc/aix-core-sec-2.s
+d3b07384d113edec49eaa6238ad5ff00 ld/testsuite/ld-powerpc/aix-core-sec-3.ex
+598bf428e975d5338cc63cc0dcbffbe3 ld/testsuite/ld-powerpc/aix-core-sec-3.hd
+ac4da05215010119028f4a88dbe82413 ld/testsuite/ld-powerpc/aix-core-sec-3.s
+892dc50861c06e15d06e4a9a5e7bfb70 ld/testsuite/ld-powerpc/aix-export-1-all.dd
+b47146af1a449575aa5f1dc04f7a3cd1 ld/testsuite/ld-powerpc/aix-export-1-full.dd
+efebc89e74f58c173184ae6ec08a3871 ld/testsuite/ld-powerpc/aix-export-1a.s
+e4be8450cada8f513c4415abef021c68 ld/testsuite/ld-powerpc/aix-export-1b.s
+da869956a689192845cf202356a38b7f ld/testsuite/ld-powerpc/aix-export-2.nd
+8d9dfe3f3af5571d02728bebdc85aed3 ld/testsuite/ld-powerpc/aix-export-2.s
+db020c9f352b71cf48739e2b629a8eb2 ld/testsuite/ld-powerpc/aix-gc-1-32.dd
+661a3654fa373008a8d4521cccaa599b ld/testsuite/ld-powerpc/aix-gc-1-64.dd
+f5954e709b76aa5882eb2e5dd8e90a41 ld/testsuite/ld-powerpc/aix-gc-1.ex
+29c8a25c59d0dd1b825d3f9d06d7f47a ld/testsuite/ld-powerpc/aix-gc-1.nd
+2954aa54466f09a5b6e0df1abd5254f4 ld/testsuite/ld-powerpc/aix-gc-1.s
+1b843204f845302062a05189aecb4b29 ld/testsuite/ld-powerpc/aix-glink-1-32.d
+95af44d4ebc06505379fc0d20e130182 ld/testsuite/ld-powerpc/aix-glink-1-32.dd
+6c8d4e83517afc5b6bc62fe71fa7b375 ld/testsuite/ld-powerpc/aix-glink-1-64.d
+1258981d11030d426a9b638267e1a2bf ld/testsuite/ld-powerpc/aix-glink-1-64.dd
+5918d3170fd91d138640e5fe9e016f7e ld/testsuite/ld-powerpc/aix-glink-1.ex
+644cee7428b3d6ed0d84a6da92f02fb3 ld/testsuite/ld-powerpc/aix-glink-1.s
+62234ddf0b3034af7ed1d468d2eaf012 ld/testsuite/ld-powerpc/aix-glink-2-32.dd
+909532b05b88cb16852f12103b254d75 ld/testsuite/ld-powerpc/aix-glink-2-64.dd
+a78cf83e5427170c21b55ba4a1106454 ld/testsuite/ld-powerpc/aix-glink-2a.ex
+41836333e421268f5c945cad02181c4d ld/testsuite/ld-powerpc/aix-glink-2a.s
+866f7aaf0441b9006bdd636a86074a8d ld/testsuite/ld-powerpc/aix-glink-2b.s
+cbf3c02328a6322b59037fc4837edcb4 ld/testsuite/ld-powerpc/aix-glink-2c.ex
+aaab138c73a56e0d51a845129e531690 ld/testsuite/ld-powerpc/aix-glink-2c.s
+d3c9a419b5e0dfe645f6cb581879d7e6 ld/testsuite/ld-powerpc/aix-glink-2d.s
+9fca27bf59573703866b04c76ca122c9 ld/testsuite/ld-powerpc/aix-glink-3-32.d
+b005bf2cee284894bc19d339789bbbbf ld/testsuite/ld-powerpc/aix-glink-3-64.d
+1277e97ff2a6e720d7495a403bf2cab4 ld/testsuite/ld-powerpc/aix-glink-3.dd
+45e865ab7bf05bfca290bba1bb66d8e6 ld/testsuite/ld-powerpc/aix-glink-3.s
+e5dbc2d619226db19ee0af91d94c0e0f ld/testsuite/ld-powerpc/aix-glink-3a.s
+3ea5b3e158ff935afa068f59addbb208 ld/testsuite/ld-powerpc/aix-glink-3b.s
+bbd7e73e7e570476791242f63e0c2d71 ld/testsuite/ld-powerpc/aix-lineno-1.s
+865a609d25ae921a90e55a8694faecdd ld/testsuite/ld-powerpc/aix-lineno-1.txt
+b94eb10e645ddbec7c212988a90c0bf6 ld/testsuite/ld-powerpc/aix-lineno-1a.dd
+cfec9e3308bb2d6ae7fa2e85b8fea04c ld/testsuite/ld-powerpc/aix-lineno-1a.nd
+cb66c732360a0e5c19be21538f028089 ld/testsuite/ld-powerpc/aix-lineno-1b.dd
+d49ecdc3e607c266e7f5e7d80105de69 ld/testsuite/ld-powerpc/aix-lineno-1b.nd
+e0ea0cb320a3c7db3dd1701cc2719c93 ld/testsuite/ld-powerpc/aix-no-dup-syms-1-dso.dnd
+74e7cdcfcc462b2c8ff8ef932821593d ld/testsuite/ld-powerpc/aix-no-dup-syms-1-dso.drd
+354b92ddc596eac96df0a47192b56add ld/testsuite/ld-powerpc/aix-no-dup-syms-1-dso.nd
+ba9aab21b2c3be0d32cd1ee743d573d0 ld/testsuite/ld-powerpc/aix-no-dup-syms-1-dso.rd
+58bb3bd507ae3ad020445678a4177257 ld/testsuite/ld-powerpc/aix-no-dup-syms-1-rel.nd
+425a8cff195f7c50810e3bd888c8abb1 ld/testsuite/ld-powerpc/aix-no-dup-syms-1-rel.rd
+f0ad8727f2f07b861e795c4cfe1013af ld/testsuite/ld-powerpc/aix-no-dup-syms-1.ex
+d3b07384d113edec49eaa6238ad5ff00 ld/testsuite/ld-powerpc/aix-no-dup-syms-1.im
+88e303b5f362d2bed5a0b9ac890b55a6 ld/testsuite/ld-powerpc/aix-no-dup-syms-1a.s
+c8af874076ad726683033347509fa7ac ld/testsuite/ld-powerpc/aix-no-dup-syms-1b.s
+995efaf46f9360c2de42cc707df57cbe ld/testsuite/ld-powerpc/aix-ref-1-32.od
+4125c347dab35b4ee206d2634f9a0011 ld/testsuite/ld-powerpc/aix-ref-1-64.od
+5604bf2bd9a113169fbaf5ef75e7a56d ld/testsuite/ld-powerpc/aix-ref-1.s
+d976c55ada460fa272497cc689c6e36f ld/testsuite/ld-powerpc/aix-rel-1.od
+55a6057fd2b9eb2daa176789f35e3b68 ld/testsuite/ld-powerpc/aix-rel-1.s
+4237df48b26069a7f09cc9c38b10844e ld/testsuite/ld-powerpc/aix-toc-1-32.dd
+0d68cec016043bfcf7aca4b10bd602d0 ld/testsuite/ld-powerpc/aix-toc-1-64.dd
+60cdcd95a55e7d16dafb9d6bc2ecb69a ld/testsuite/ld-powerpc/aix-toc-1.ex
+2150ba398cab0572cc59e49a82fb2773 ld/testsuite/ld-powerpc/aix-toc-1a.s
+c4e0f5ac18cb5e7ae52026f8e5f2cc81 ld/testsuite/ld-powerpc/aix-toc-1b.s
+86b105fc9e69dff5ae3e4fca87255d64 ld/testsuite/ld-powerpc/aix-weak-1-dso.dnd
+7b18007de5e106eda4406e6843114ae6 ld/testsuite/ld-powerpc/aix-weak-1-dso.hd
+14606039aa1d861835e0f15f6e834651 ld/testsuite/ld-powerpc/aix-weak-1-dso.nd
+2f56cfa02e5c35436905ce2039a1ece2 ld/testsuite/ld-powerpc/aix-weak-1-gcdso.dnd
+b8a7a968f1738ff42345b75945f4b122 ld/testsuite/ld-powerpc/aix-weak-1-gcdso.hd
+1d608a8199923e08585e21915785d613 ld/testsuite/ld-powerpc/aix-weak-1-gcdso.nd
+2e7db668e32486f08f1854b6fb5df933 ld/testsuite/ld-powerpc/aix-weak-1-rel.hd
+8acd8ea8c67e5be3946058ca30146544 ld/testsuite/ld-powerpc/aix-weak-1-rel.nd
+3915237e72677da8915c41d8235f3852 ld/testsuite/ld-powerpc/aix-weak-1.ex
+8f33bad768aa59fc27214ef339e320eb ld/testsuite/ld-powerpc/aix-weak-1a.s
+8a580e9b39f76b71f777a41fdf62c3b1 ld/testsuite/ld-powerpc/aix-weak-1b.s
+7762baf695abf911054e8619e19c3940 ld/testsuite/ld-powerpc/aix-weak-2a.ex
+221290f732e87dafc314eb0daeb648b8 ld/testsuite/ld-powerpc/aix-weak-2a.nd
+262475e31ed62d489a26dcd389be840f ld/testsuite/ld-powerpc/aix-weak-2a.s
+70842d820c3e29ae7eae1f297de1e806 ld/testsuite/ld-powerpc/aix-weak-2b.nd
+39c0dd3f29505cb6855a5ea501b1b29f ld/testsuite/ld-powerpc/aix-weak-2b.s
+d3b07384d113edec49eaa6238ad5ff00 ld/testsuite/ld-powerpc/aix-weak-2c.ex
+748dbeb15f66cfd60128c9ac65a2a55a ld/testsuite/ld-powerpc/aix-weak-2c.nd
+def2f718936bb8a76625b2d10ca3212a ld/testsuite/ld-powerpc/aix-weak-2c.od
+586e92b7b58010225fd38b1d426343d2 ld/testsuite/ld-powerpc/aix-weak-2c.s
+006645063f102b6c7a297d4a7c4f6386 ld/testsuite/ld-powerpc/aix-weak-3-32.d
+58828abbaffd055354277ec238820a7f ld/testsuite/ld-powerpc/aix-weak-3-32.dd
+56deffed984fd9131dd96226aea2091d ld/testsuite/ld-powerpc/aix-weak-3-64.d
+123061df52af683bb91dcb4a84c3d83c ld/testsuite/ld-powerpc/aix-weak-3-64.dd
+be4252948c7ed64eb66b79344e1653af ld/testsuite/ld-powerpc/aix-weak-3a.ex
+374aa6a557b88260efd096cf5efb9daf ld/testsuite/ld-powerpc/aix-weak-3a.s
+009520053b00386d1173f3988c55d192 ld/testsuite/ld-powerpc/aix-weak-3b.ex
+e9279b52fb9ad49703e8c667bc97c2f6 ld/testsuite/ld-powerpc/aix-weak-3b.s
+19847f90e5f5e4ed64aac571cd9e9a57 ld/testsuite/ld-powerpc/aix52.exp
+ee62f5cb3e7690e27455b15c3a57634f ld/testsuite/ld-powerpc/apuinfo-nul.rd
+519a83f6661f4e92b4f1cd2404e97f90 ld/testsuite/ld-powerpc/apuinfo-nul.s
+3cebbf08302b7c7cddff45df86c79629 ld/testsuite/ld-powerpc/apuinfo-nul1.s
+010e15de7d73110844ad854708e55cec ld/testsuite/ld-powerpc/apuinfo.rd
+787da85c4090a2cd214e445bf01ed784 ld/testsuite/ld-powerpc/apuinfo1.s
+122c70dca18f0a00814d752c8ac134bf ld/testsuite/ld-powerpc/apuinfo2.s
+88f68a8288d53e408300f8b822bbbae4 ld/testsuite/ld-powerpc/attr-gnu-12-1.s
+562248d60d1c84e7abdb186ffc6aadfe ld/testsuite/ld-powerpc/attr-gnu-12-11.d
+a6c72ffd9c53e62bc4800c6b5ce6f7a6 ld/testsuite/ld-powerpc/attr-gnu-12-2.s
+c4e457c71ba66d0ce624a03b507ee5aa ld/testsuite/ld-powerpc/attr-gnu-12-21.d
+eaab780bec027c6ef6ac334619ba2b18 ld/testsuite/ld-powerpc/attr-gnu-4-0.s
+a8680b3b7cad2d388fabcc5994a00076 ld/testsuite/ld-powerpc/attr-gnu-4-00.d
+48a6491909160de24ed692f6f1e2ee2d ld/testsuite/ld-powerpc/attr-gnu-4-01.d
+35b0780c5391a8ad2fb0bafb93826996 ld/testsuite/ld-powerpc/attr-gnu-4-02.d
+e6d088a574710ce388eb63689c8ee78f ld/testsuite/ld-powerpc/attr-gnu-4-03.d
+018b97f0a56402eb7f0edfcc26b8cd1d ld/testsuite/ld-powerpc/attr-gnu-4-1.s
+c2bacf49b6e6a98768dd05f4db91d1b5 ld/testsuite/ld-powerpc/attr-gnu-4-10.d
+07aadb81c2adc048aa6fc92c1d591068 ld/testsuite/ld-powerpc/attr-gnu-4-11.d
+6e61359374a55284e9083895aa00196c ld/testsuite/ld-powerpc/attr-gnu-4-12.d
+417988625e2bef49e568497fe0753583 ld/testsuite/ld-powerpc/attr-gnu-4-13.d
+c6bbc186b1a46762256a92672c76c43d ld/testsuite/ld-powerpc/attr-gnu-4-14.d
+eac9dfdfc46cc5dd33f029ec52ee6793 ld/testsuite/ld-powerpc/attr-gnu-4-2.s
+ab1b8c9d73249300efb3b0e79494fbcb ld/testsuite/ld-powerpc/attr-gnu-4-20.d
+a4a11190c7363d8aa1f641d8072110b7 ld/testsuite/ld-powerpc/attr-gnu-4-21.d
+353d68e8db93ad913fa7c72ee33e1e2f ld/testsuite/ld-powerpc/attr-gnu-4-22.d
+dd77181fcbba065c28b5711b2ed015d6 ld/testsuite/ld-powerpc/attr-gnu-4-23.d
+8b43b66063286aa42c897efb8775ea8f ld/testsuite/ld-powerpc/attr-gnu-4-24.d
+7fd562a8f705fa9e3d082842773a9fd7 ld/testsuite/ld-powerpc/attr-gnu-4-3.s
+baa8db7def2ab7e74508e42246b79d98 ld/testsuite/ld-powerpc/attr-gnu-4-31.d
+5a339372f1afc9d7daab5c77e414b319 ld/testsuite/ld-powerpc/attr-gnu-4-32.d
+2f679e4a6ceef1fbb873ab57e8fa12cb ld/testsuite/ld-powerpc/attr-gnu-4-33.d
+0cb23b2934471b6640dcf76aa298dcae ld/testsuite/ld-powerpc/attr-gnu-4-34.d
+bd99d860c5949dcff583df0a100a0ab3 ld/testsuite/ld-powerpc/attr-gnu-4-4.s
+69daeab8e5bdf7168f9657661f8a0281 ld/testsuite/ld-powerpc/attr-gnu-4-41.d
+78d5b5b1579969eeb0c2adc4435ceba6 ld/testsuite/ld-powerpc/attr-gnu-8-1.s
+1dc00156e17bc28841f31d0ac1135be9 ld/testsuite/ld-powerpc/attr-gnu-8-11.d
+02808fe5f9efcbe94fa262dcef9ea031 ld/testsuite/ld-powerpc/attr-gnu-8-2.s
+7c19ff4820069ee6b10040038b621ead ld/testsuite/ld-powerpc/attr-gnu-8-23.d
+786fb2f305ce54b247bea7cdfc29b5a9 ld/testsuite/ld-powerpc/attr-gnu-8-3.s
+39d9306ef744cdecdf7376c38241d3fc ld/testsuite/ld-powerpc/attr-gnu-8-31.d
+d10db0d5e0fc0f02abcba0a28e1b4f1a ld/testsuite/ld-powerpc/oldtlslib.s
+f0a3eb083d43ce486aa5db8c7d4e2e57 ld/testsuite/ld-powerpc/plt1.d
+427bc64abfbbca294d753753cf4b3573 ld/testsuite/ld-powerpc/plt1.s
+2d7168f016d466361a0f37058520f2fa ld/testsuite/ld-powerpc/powerpc.exp
+3cc62e496eb86a99bc9232546628fb3a ld/testsuite/ld-powerpc/relax.d
+fb7e959e27d0729bfa5e91a3d4c082a7 ld/testsuite/ld-powerpc/relax.s
+b74f226a07844cd8969ed2e84a1b7d25 ld/testsuite/ld-powerpc/relaxr.d
+f541ad37869dde03dc5885dd50c1481b ld/testsuite/ld-powerpc/relbrlt.d
+fed89963c6094ee31776b29c918d6a24 ld/testsuite/ld-powerpc/relbrlt.s
+d0c078412690065f88a1d02ceafdeccf ld/testsuite/ld-powerpc/reloc.d
+53652025c67e058e17ee2f5b68f62577 ld/testsuite/ld-powerpc/reloc.s
+faf25052dc4eb831cb4cbdcc617eaa51 ld/testsuite/ld-powerpc/sdadyn.d
+b11b5807e7a6fa381d608f06a71e0bb1 ld/testsuite/ld-powerpc/sdadyn.s
+4291ceef5a9a5101e6b9694d18484709 ld/testsuite/ld-powerpc/sdalib.s
+d87aa302fd5305f712767b6d3679220b ld/testsuite/ld-powerpc/symtocbase-1.s
+495885b7a4b9c45d264ac690a0196b22 ld/testsuite/ld-powerpc/symtocbase-2.s
+aa5f4942eac1d2661d7d178713906bcd ld/testsuite/ld-powerpc/symtocbase.d
+bfecc74ae4a9b993f413069c788cd0ac ld/testsuite/ld-powerpc/tls.d
+863594542395bb4a79591b3639d5f63c ld/testsuite/ld-powerpc/tls.g
+8301929a8722e78f7597ceda20b84e87 ld/testsuite/ld-powerpc/tls.s
+bd2bacee052020afd7dac82cf8d2d3f3 ld/testsuite/ld-powerpc/tls.t
+1913f185dc8a5675aea58c1ac7f3c2da ld/testsuite/ld-powerpc/tls32.d
+e49d066c8c8b5e3295e1b525859e5660 ld/testsuite/ld-powerpc/tls32.g
+bea8413d63541a8a7dbdc303790f9127 ld/testsuite/ld-powerpc/tls32.s
+c0ef4eee1944a09ab22b782d89a8c699 ld/testsuite/ld-powerpc/tls32.t
+e13035e08ed4a1bc79222b5d4e2540af ld/testsuite/ld-powerpc/tlsexe.d
+c527d11b8f61281657a889bc9c0b2e0b ld/testsuite/ld-powerpc/tlsexe.g
+5f828b678ab7a002f54f02e4a7b938d7 ld/testsuite/ld-powerpc/tlsexe.r
+646bb364341f301973ce098ae2f8039c ld/testsuite/ld-powerpc/tlsexe.t
+7ba76e58197f73d6a0ae1fa7a6260fab ld/testsuite/ld-powerpc/tlsexe32.d
+c1c88919bd566096b68d8f9bfc9e52a7 ld/testsuite/ld-powerpc/tlsexe32.g
+e020efe9a1c03e9100d8fc456193163f ld/testsuite/ld-powerpc/tlsexe32.r
+f97543e5816cc551d4a2213ec82f0f70 ld/testsuite/ld-powerpc/tlsexe32.t
+08450fa24f4f7560b2530d570ec848cd ld/testsuite/ld-powerpc/tlsexetoc.d
+6a5da004bb4e186a7426471e71c5f3b2 ld/testsuite/ld-powerpc/tlsexetoc.g
+78b985c3ef30729e9c8262265d64ce77 ld/testsuite/ld-powerpc/tlsexetoc.r
+4a7fe05f8c468454f0be009dec3fdc19 ld/testsuite/ld-powerpc/tlsexetoc.t
+9a42b93947f1b17acefde9b84ece4632 ld/testsuite/ld-powerpc/tlslib.s
+a6dccb915f964db461b164a90787e0aa ld/testsuite/ld-powerpc/tlslib32.s
+65400fa0ec0a37bff5dec4387ec01d43 ld/testsuite/ld-powerpc/tlsmark.d
+405adb1e2e31fe70c4f643fb942f78f4 ld/testsuite/ld-powerpc/tlsmark.s
+530e96abe77e8ec63d1ead037b890f6e ld/testsuite/ld-powerpc/tlsmark32.d
+09a50a7db03c8b6bae854c9426b8ee51 ld/testsuite/ld-powerpc/tlsmark32.s
+5a0d7616ccb01ee8d0a04f5743c62922 ld/testsuite/ld-powerpc/tlsopt1.d
+218a7083014093b0da1ec318e619b074 ld/testsuite/ld-powerpc/tlsopt1.s
+99a7359245ecf7421bc80aa951fd6d93 ld/testsuite/ld-powerpc/tlsopt1_32.d
+f724bd21a670becef25deb108ba036f3 ld/testsuite/ld-powerpc/tlsopt1_32.s
+e6ca35bbc098f95517d65a56320e5e20 ld/testsuite/ld-powerpc/tlsopt2.d
+e9f2f43970c51117c39bd368b6b78be4 ld/testsuite/ld-powerpc/tlsopt2.s
+e739949354e3c1961c599a0c371fbb1b ld/testsuite/ld-powerpc/tlsopt2_32.d
+4a3264168519b972800f38adf985b35f ld/testsuite/ld-powerpc/tlsopt2_32.s
+3cb4e439af9f0d7c9b32ec4ec05399cd ld/testsuite/ld-powerpc/tlsopt3.d
+51add6cacf0d82d46cbd6945a39f8ee3 ld/testsuite/ld-powerpc/tlsopt3.s
+e1cb5270ff6cbcf16668b353138f3c24 ld/testsuite/ld-powerpc/tlsopt3_32.d
+d44c161b121d1b249d5b05533020a54f ld/testsuite/ld-powerpc/tlsopt3_32.s
+a681f7ee9504ec5cef0c5e77f56d1ed0 ld/testsuite/ld-powerpc/tlsopt4.d
+f3f4d3a1dd2ecf6f44b5bc3333d2d79f ld/testsuite/ld-powerpc/tlsopt4.s
+b658e6cf2cde708a36242d0fd23745d4 ld/testsuite/ld-powerpc/tlsopt4_32.d
+9f34854a67102932713ec55fc2f3f3c6 ld/testsuite/ld-powerpc/tlsopt4_32.s
+0a8ee8073547fc6d62a9430071960505 ld/testsuite/ld-powerpc/tlsso.d
+1a433ed6c72afabe588d99e37cb9e39d ld/testsuite/ld-powerpc/tlsso.g
+83aebe87e90bdfb8bc83d007fd5e5116 ld/testsuite/ld-powerpc/tlsso.r
+f036e7b2b51f16236c81590e2e4a6697 ld/testsuite/ld-powerpc/tlsso.t
+9b010d01487d7fb0663b61c712d6035c ld/testsuite/ld-powerpc/tlsso32.d
+c0ebc9ec6eca79f46f5819ed66ba577a ld/testsuite/ld-powerpc/tlsso32.g
+5dd404684085c860d6acb89fb0b3fb98 ld/testsuite/ld-powerpc/tlsso32.r
+33abdf51a1e378a2087e888d309f988b ld/testsuite/ld-powerpc/tlsso32.t
+cd04cfbb301f112f9090369d128f2688 ld/testsuite/ld-powerpc/tlstoc.d
+bd5eec94c235419cf306a2c7fe11e11b ld/testsuite/ld-powerpc/tlstoc.g
+4891ee12248bc36790947b84a88cd9c0 ld/testsuite/ld-powerpc/tlstoc.s
+38d558bbfd10a333ed6122dc7123571b ld/testsuite/ld-powerpc/tlstoc.t
+c533cac4281a599096475aa6b2970916 ld/testsuite/ld-powerpc/tlstocso.d
+be2d0e53f3a73ddb42037f1fb7bedaf9 ld/testsuite/ld-powerpc/tlstocso.g
+87aa0d9262a14b02c8303bd3a6116a5c ld/testsuite/ld-powerpc/tlstocso.r
+dc1545b0e1300fa2e532d355d1023452 ld/testsuite/ld-powerpc/tlstocso.t
+69d0f49425b3c4da6d33725f2bdadf91 ld/testsuite/ld-powerpc/tocopt.d
+42cea1c68584019b5b89d2f03cddc1ce ld/testsuite/ld-powerpc/tocopt.out
+6bb54eb5b47043ad92883d4858f7def2 ld/testsuite/ld-powerpc/tocopt.s
+c9a4c6fd1b8b63a309ce1dfc89f6b78c ld/testsuite/ld-powerpc/tocopt2.d
+03ec73a6aa0f52943bef08d648f2cefb ld/testsuite/ld-powerpc/tocopt2.out
+b6ea6463608234d456d35f3cc9c372a9 ld/testsuite/ld-powerpc/tocopt2.s
+c9a4c6fd1b8b63a309ce1dfc89f6b78c ld/testsuite/ld-powerpc/tocopt3.d
+33e083640e64441f7c796d89634b81e7 ld/testsuite/ld-powerpc/tocopt3.s
+a1a754c4ee7caf10faee283860f8f552 ld/testsuite/ld-powerpc/tocopt4.d
+702b412d8c6002e9efbe7b9760029306 ld/testsuite/ld-powerpc/tocopt4a.s
+a807e3ff17c2c9d22ae7d46cf7ccbb4c ld/testsuite/ld-powerpc/tocopt4b.s
+e721d782b4f3267f9933b0b804cd8b9f ld/testsuite/ld-powerpc/tocopt5.d
+7c769079034dfee8d28d7d7292311d4e ld/testsuite/ld-powerpc/tocopt5.s
+ea572ffd48301e37ce8ff8863793697c ld/testsuite/ld-powerpc/vxworks-relax-2.rd
+756b1282ce6a23e3b07addc9a54392ab ld/testsuite/ld-powerpc/vxworks-relax-2.s
+846faeee15c72e202fd5132030173f42 ld/testsuite/ld-powerpc/vxworks-relax.rd
+a5e5962ef075b6977f71f32a74dcbd72 ld/testsuite/ld-powerpc/vxworks-relax.s
+dabafb6400d1624b1bf5d0e7599ceb2c ld/testsuite/ld-powerpc/vxworks1-lib.dd
+acca061d87c83f585ea88472d89d554d ld/testsuite/ld-powerpc/vxworks1-lib.nd
+b99f04c5e9db566e3653b61070ef62c7 ld/testsuite/ld-powerpc/vxworks1-lib.rd
+986a11fc7eac3ba90472ab1c8a1ad3d4 ld/testsuite/ld-powerpc/vxworks1-lib.s
+b5760134e083c35f414fe5e4308a070e ld/testsuite/ld-powerpc/vxworks1-lib.sd
+6dbdc5d4346169b9a3af98707d77be72 ld/testsuite/ld-powerpc/vxworks1-lib.td
+ac0b4d23d8c88db1538c122df4279799 ld/testsuite/ld-powerpc/vxworks1-static.d
+6498ea121cb6fe7240ffc9e254fe6f09 ld/testsuite/ld-powerpc/vxworks1.dd
+20cf5642bf6ad5bc6d0b0abb0afe4b75 ld/testsuite/ld-powerpc/vxworks1.ld
+020c5534bb71fa061939f607193cebf6 ld/testsuite/ld-powerpc/vxworks1.rd
+66e3ac39954536d122375680de218509 ld/testsuite/ld-powerpc/vxworks1.s
+70a3a63caaa6294e72a21f3af93d802c ld/testsuite/ld-powerpc/vxworks2-static.sd
+59945c589f97dc856c251f390437b5ec ld/testsuite/ld-powerpc/vxworks2.s
+a59d05b41e3dd040fb4e12e434cff21d ld/testsuite/ld-powerpc/vxworks2.sd
+2f7e5f1bf217d02d323ef077dd5cf1d8 ld/testsuite/ld-s390/s390.exp
+c40e8c0331c6d98637583ea1e30e91e9 ld/testsuite/ld-s390/tlsbin.dd
+b9a52eb541a7a4d08bc53674954b18da ld/testsuite/ld-s390/tlsbin.rd
+dfc5a09a574f7db9aa5c609b2b61d663 ld/testsuite/ld-s390/tlsbin.s
+129de764f451a6e38ff8e91c1de856e1 ld/testsuite/ld-s390/tlsbin.sd
+2e6c6964734ec81f6ed203568d2cf8bc ld/testsuite/ld-s390/tlsbin.td
+88e1883b94e53d199350ed7be57f1db5 ld/testsuite/ld-s390/tlsbin_64.dd
+fdea4789d34d342352c5790d964666c7 ld/testsuite/ld-s390/tlsbin_64.rd
+92972a9e8ed73263fe9dd260a972a00f ld/testsuite/ld-s390/tlsbin_64.s
+5083c5af007cc9a18444cba7aec7d685 ld/testsuite/ld-s390/tlsbin_64.sd
+ec34e31021e910030b56a53077269534 ld/testsuite/ld-s390/tlsbin_64.td
+df1bb4542623cb92c3544cf083bd0d40 ld/testsuite/ld-s390/tlsbinpic.s
+b6275de1b0e1a08a2b3fa24ee85d230c ld/testsuite/ld-s390/tlsbinpic_64.s
+63d5514386005c2b68e0f502e0deda14 ld/testsuite/ld-s390/tlslib.s
+63d5514386005c2b68e0f502e0deda14 ld/testsuite/ld-s390/tlslib_64.s
+5eb0a3c451edc240fc5eda47dd557769 ld/testsuite/ld-s390/tlspic.dd
+fa04b281fb074f8b4ad08a0075a92854 ld/testsuite/ld-s390/tlspic.rd
+bcbc04334a471aca9e71c0cc99c7e131 ld/testsuite/ld-s390/tlspic.sd
+54dbf2b658b06137f674825d8474c8af ld/testsuite/ld-s390/tlspic.td
+7db72b84a4c88ca6b985e09ddcdbf995 ld/testsuite/ld-s390/tlspic1.s
+ec81ab04e19a45347ef1a423d9ddbfd7 ld/testsuite/ld-s390/tlspic1_64.s
+1be6d8e1547c710f7bc12028c6522832 ld/testsuite/ld-s390/tlspic2.s
+1be6d8e1547c710f7bc12028c6522832 ld/testsuite/ld-s390/tlspic2_64.s
+979c84647c473fedcc1a6511336d84dd ld/testsuite/ld-s390/tlspic_64.dd
+8970de00cc92bb403d233f310ea3f521 ld/testsuite/ld-s390/tlspic_64.rd
+ab9872b24c3c97aaf099a081de993709 ld/testsuite/ld-s390/tlspic_64.sd
+2f047623197dae3f539aea80b15120e4 ld/testsuite/ld-s390/tlspic_64.td
+b8b9611632f9b31fc9d8d68da9320c31 ld/testsuite/ld-scripts/align.exp
+8a219a0fc5ea21ec757cf630c69f6bf6 ld/testsuite/ld-scripts/align.s
+efeb8e6f0a3f40f9920e2030bf854b18 ld/testsuite/ld-scripts/align.t
+1bc6194419a61faf0aaf28eb2c343962 ld/testsuite/ld-scripts/align2.t
+a19364e9d2dc7c585b2d91c72cd806b3 ld/testsuite/ld-scripts/align2a.d
+aab55ad4c7de88d6b2781ab6e273346a ld/testsuite/ld-scripts/align2a.s
+528c3b955e569ae445d0ba4e712b7fe8 ld/testsuite/ld-scripts/align2b.d
+aab55ad4c7de88d6b2781ab6e273346a ld/testsuite/ld-scripts/align2b.s
+7c3f8de8c952c3a5d74b76e5e9b08f96 ld/testsuite/ld-scripts/align2c.d
+aab55ad4c7de88d6b2781ab6e273346a ld/testsuite/ld-scripts/align2c.s
+60c07eeb2d012d17b5df27e2f32d98e8 ld/testsuite/ld-scripts/alignof.exp
+efd86cba421ee94f32bacfa0d471a45b ld/testsuite/ld-scripts/alignof.s
+b4aa3cb7bf860b7a59b6479a93814279 ld/testsuite/ld-scripts/alignof.t
+7534c8f58680bbd0c85a46bb89e5f21c ld/testsuite/ld-scripts/assert.exp
+68b329da9893e34099c7d8ad5cb9c940 ld/testsuite/ld-scripts/assert.s
+0b8d03508f04bd878e18f47361a77a91 ld/testsuite/ld-scripts/assert.t
+d976d3bb48e57b0a7bd099c01e5efef0 ld/testsuite/ld-scripts/assert2.d
+d5fdb2d409325be02826cf16b82b5816 ld/testsuite/ld-scripts/assert2.t
+e882253a7b0f660986d5794a36239b1b ld/testsuite/ld-scripts/cross1.c
+8bcf5c1294efdc1276b8ecd0820dba3b ld/testsuite/ld-scripts/cross1.t
+2bad1250e1d3998f3c2d678b1b90d275 ld/testsuite/ld-scripts/cross2.c
+8688dcf616adf0952098881c826c77b8 ld/testsuite/ld-scripts/cross2.t
+6cda0a6cae6d6fe585c175aa49c2578e ld/testsuite/ld-scripts/cross3.c
+24ca67fb6299b75886b829db50f09f18 ld/testsuite/ld-scripts/cross3.t
+be2d98503c3e3a02a41eca2fe813a310 ld/testsuite/ld-scripts/cross4.c
+fa086879d31c4e72e572178185ad8379 ld/testsuite/ld-scripts/crossref.exp
+2b95fbcecb9b6b61edab9de8fb73d139 ld/testsuite/ld-scripts/data.d
+d6d0e0bdcb41b6dd1efcce7dce8bcb9b ld/testsuite/ld-scripts/data.exp
+68b329da9893e34099c7d8ad5cb9c940 ld/testsuite/ld-scripts/data.s
+0731e98ca5673229486cfcf5058fec31 ld/testsuite/ld-scripts/data.t
+8cca496097801b6515c7a5b518d6afe6 ld/testsuite/ld-scripts/default-script.exp
+dab92d62194ce975a2a9b09cbf5bd62d ld/testsuite/ld-scripts/default-script.s
+1f054fba217a65109aca9010a3afad97 ld/testsuite/ld-scripts/default-script.t
+b063b394ee6c4ec1fe0878ff0a5cdd66 ld/testsuite/ld-scripts/default-script1.d
+743d87bab1e74e0c640c260273c79367 ld/testsuite/ld-scripts/default-script2.d
+c7a8b8fabda933b7d2707867c228f333 ld/testsuite/ld-scripts/default-script3.d
+def46387fdbd4736a39b973f982486da ld/testsuite/ld-scripts/default-script4.d
+eb19f866cc44d6d2535b7f86e692f939 ld/testsuite/ld-scripts/defined.exp
+19b93ed474627147af50ef5dd4913b3d ld/testsuite/ld-scripts/defined.s
+d3b1800f46a71805045a3a5732fd42bc ld/testsuite/ld-scripts/defined.t
+898a5ade6aa8f7eaf68f1f700d64799b ld/testsuite/ld-scripts/defined2.d
+44e50acb685e014b85b6f6d140487f89 ld/testsuite/ld-scripts/defined2.t
+9e5f7ff90002487a36c98aab00769086 ld/testsuite/ld-scripts/defined3.d
+0117741095baa2e563ab8014b71135c3 ld/testsuite/ld-scripts/defined3.t
+1aa7e13d84c9ab15c53fb91aca325ba5 ld/testsuite/ld-scripts/defined4.d
+80bc9c86d1e83e005c3f08ed5c6e5d94 ld/testsuite/ld-scripts/defined4.s
+efbb1e72751b5c74e87643442098d38e ld/testsuite/ld-scripts/defined4.t
+a8f026788510671d09d2cf62cfcd2123 ld/testsuite/ld-scripts/defined5.d
+fa2a527dcfdfa14594c3fbe845724ad5 ld/testsuite/ld-scripts/defined5.s
+634c89f141d8740d7641be42e6a938b9 ld/testsuite/ld-scripts/defined5.t
+dbaca5ab0c56146533bcb91837e1ec4c ld/testsuite/ld-scripts/dynamic-sections-1.s
+0f1ac5c77c696c7314db13212177296a ld/testsuite/ld-scripts/dynamic-sections-2.s
+31258b14a9fe381a3b20a81aa0943441 ld/testsuite/ld-scripts/dynamic-sections.d
+efbbd41c97599d90deba7f4e41c9ab3e ld/testsuite/ld-scripts/dynamic-sections.exp
+cda22c60c0c5a23d00b019cc2a1deeb8 ld/testsuite/ld-scripts/dynamic-sections.t
+782d1e1185e81a64808009b693496f87 ld/testsuite/ld-scripts/empty-address-1.d
+37e305b6a8b6a5992478afb73a0aa3ef ld/testsuite/ld-scripts/empty-address-1.s
+5a2f0df9be51622946dbb43e056c8d2d ld/testsuite/ld-scripts/empty-address-1.t
+f6eaab7211c7a02da0c2d639e9d065fb ld/testsuite/ld-scripts/empty-address-2.s
+15cc5bcae78e4aa1bdaaf794acf5c9b5 ld/testsuite/ld-scripts/empty-address-2a.d
+441c812f4a1779b8fc7130f7f50f4a41 ld/testsuite/ld-scripts/empty-address-2a.t
+cad53ff86321fee6771dc7a2f11ff323 ld/testsuite/ld-scripts/empty-address-2b.d
+5c9c456d2657e87e99a29c87617299e0 ld/testsuite/ld-scripts/empty-address-2b.t
+e41e9eb346bd6a273d3689973089af39 ld/testsuite/ld-scripts/empty-address-3.s
+5b85a1298326abae8a4d46b0a3038e7c ld/testsuite/ld-scripts/empty-address-3a.d
+229a146cac0eb2ae6f520113b1a8e3bb ld/testsuite/ld-scripts/empty-address-3a.t
+960f13391ac4f8a45700c5d286aecbab ld/testsuite/ld-scripts/empty-address-3b.d
+61b68acf1d4c0bbd5a0a9958746cc568 ld/testsuite/ld-scripts/empty-address-3b.t
+314a6abe67053be2de44e65b2e212ffd ld/testsuite/ld-scripts/empty-address-3c.d
+f19afb7f2928a588627868fd9f746c94 ld/testsuite/ld-scripts/empty-address-3c.t
+9c11b3f87746abae2592133a0f2b78de ld/testsuite/ld-scripts/empty-address.exp
+9eb676e81d317240bcb8eb272286acba ld/testsuite/ld-scripts/empty-aligned.d
+e213ecad495055cff4ee37775f8b893f ld/testsuite/ld-scripts/empty-aligned.exp
+c95f2f24f30fd409b48e6c65aed7e7b8 ld/testsuite/ld-scripts/empty-aligned.s
+cadba576e289814de613ad9a36e37b28 ld/testsuite/ld-scripts/empty-aligned.t
+4ec32cb171d7c5decdeda38902757e89 ld/testsuite/ld-scripts/empty-orphan.d
+8923667f51cc724d30750fff98be3010 ld/testsuite/ld-scripts/empty-orphan.exp
+2b91402df2ee759463e5c198571e9067 ld/testsuite/ld-scripts/empty-orphan.s
+1f2cc701ae44978ae698ba85fb7ab2d1 ld/testsuite/ld-scripts/empty-orphan.t
+0d5079fdad6823f9b5dc902a1c20c1ba ld/testsuite/ld-scripts/expr.exp
+53b5c57797ed048cf0081b27f6f6ad43 ld/testsuite/ld-scripts/expr1.d
+c026c9f5a94ccb87670ef9454c4b4457 ld/testsuite/ld-scripts/expr1.s
+72dc3d110471195e8c2c2e12890a63a0 ld/testsuite/ld-scripts/expr1.t
+4b54037586964b45440c1d83b1df28d4 ld/testsuite/ld-scripts/expr2.d
+80bc9c86d1e83e005c3f08ed5c6e5d94 ld/testsuite/ld-scripts/expr2.s
+5e2872afc8e941664adda38529c2728f ld/testsuite/ld-scripts/expr2.t
+2af50d4a4afc61c7cbb803aad3c1826b ld/testsuite/ld-scripts/extern.exp
+77c5ad60254674e9c8dc4adb9885680d ld/testsuite/ld-scripts/extern.s
+33b9171e28d59c070a8ea1a1f023eaae ld/testsuite/ld-scripts/extern.t
+b53c8d61e9a04a89474e9a9ade3b7e2f ld/testsuite/ld-scripts/include-1.d
+81982091322b6f1040ad5e943560a629 ld/testsuite/ld-scripts/include-1.t
+faf7d431f075db11ad96dcb61da5ff94 ld/testsuite/ld-scripts/include-data.t
+12c329294118963ae97cbf0acea91b73 ld/testsuite/ld-scripts/include-mem.t
+ce9fd1b956119308237b29b59314a492 ld/testsuite/ld-scripts/include-ram.t
+5c3b2699f5da90ad83b0f80ffa47ef1d ld/testsuite/ld-scripts/include-sections.t
+c25b58f6e971a5d5e2ffd9acaeba5c2c ld/testsuite/ld-scripts/include-subdata.t
+f1e343b6a00b81ad3b7739b7f636df0c ld/testsuite/ld-scripts/include.exp
+d82eab8a7c540b70a9d42c4d5f8ad5e9 ld/testsuite/ld-scripts/include.s
+dad1d5a88aa3057b44cab5ed057bd0f8 ld/testsuite/ld-scripts/map-address.d
+d0445e0d3c4c74f8dae6be662ceb2208 ld/testsuite/ld-scripts/map-address.exp
+ee9133459395cc83547a90f71607a2e7 ld/testsuite/ld-scripts/map-address.t
+38b10c0ac2168cabc2e2136b06641345 ld/testsuite/ld-scripts/memory.t
+69f8c2a613c10d3d7240ba41dce31d86 ld/testsuite/ld-scripts/overlay-size-map.d
+c13d85cd086921f0c99d9096753d5b59 ld/testsuite/ld-scripts/overlay-size.d
+49eff27234370d5b4a3ee64be5a6b6ed ld/testsuite/ld-scripts/overlay-size.exp
+2b01a21989d86f594965069b9db1a687 ld/testsuite/ld-scripts/overlay-size.s
+465efb6158dbe625e28635d490c72e06 ld/testsuite/ld-scripts/overlay-size.t
+9bb28244ed6f1001e8a6ebcf98c11621 ld/testsuite/ld-scripts/phdrs.exp
+9af38df1b2580b0ee309b0acfb185537 ld/testsuite/ld-scripts/phdrs.s
+56a4859269de48bfbf859d4d0a327e9f ld/testsuite/ld-scripts/phdrs.t
+50797575ad3ddcd8fae40e26f7b93679 ld/testsuite/ld-scripts/phdrs2.exp
+bbdb3e701421ecc295aca863f590193b ld/testsuite/ld-scripts/phdrs2.s
+10ce00070bb4eb5f81bcde7d2f448717 ld/testsuite/ld-scripts/phdrs2.t
+777551924a367d55841a9eeb6a7f84c5 ld/testsuite/ld-scripts/phdrs3.d
+5dfa5ca91a88f2134aae004411e57863 ld/testsuite/ld-scripts/phdrs3.exp
+6bbc947df54c8d075812ecb6de0e6dde ld/testsuite/ld-scripts/phdrs3.t
+b0df290c73d331897b616c5e6cc13b17 ld/testsuite/ld-scripts/phdrs3a.d
+b2f3e21cb331ff60113f9a54794a600a ld/testsuite/ld-scripts/phdrs3a.t
+e9fefb7de97b4937234f4f72ed5b3406 ld/testsuite/ld-scripts/provide-1.d
+252d36bfea703ce0d2506e236f2f3db3 ld/testsuite/ld-scripts/provide-1.s
+a29f1a3f99b5fca57b47a0c79e570c44 ld/testsuite/ld-scripts/provide-1.t
+54dbd4232cd3eac2e29209e757f7782e ld/testsuite/ld-scripts/provide-2.d
+11d70d7ac52d4044cec8d6e9f12c754d ld/testsuite/ld-scripts/provide-2.s
+c75f381e3417a08d872ae204c2b8627f ld/testsuite/ld-scripts/provide-2.t
+0f2e46274037262a991b96738b30a16e ld/testsuite/ld-scripts/provide-3.d
+252d36bfea703ce0d2506e236f2f3db3 ld/testsuite/ld-scripts/provide-3.s
+f78db69d068819fd77beecf6ee3b91b0 ld/testsuite/ld-scripts/provide-3.t
+6a2f60d04dcb58a2c16747768a94c647 ld/testsuite/ld-scripts/provide.exp
+fb6c05c867db1b969daca1d830f3bb17 ld/testsuite/ld-scripts/region-alias-1.t
+53f2c50706ceb0f728816e769ad766dd ld/testsuite/ld-scripts/region-alias-2.t
+24c24801461d9cec5d704b5c208afb3f ld/testsuite/ld-scripts/region-alias-3.t
+dc1f50c60034f324016cbf789f431836 ld/testsuite/ld-scripts/region-alias-4.t
+f0a2370e05e263570d85f04b36bf3a18 ld/testsuite/ld-scripts/rgn-at.exp
+da2cb6b70163cfb23cef6b1908f923f5 ld/testsuite/ld-scripts/rgn-at.s
+8857d53753ad8a9a69ac2f457a6ff830 ld/testsuite/ld-scripts/rgn-at1.d
+e56df4116cc3a635ace207e3e189c58d ld/testsuite/ld-scripts/rgn-at1.t
+a3dd4b1b3b059ff5a43e4f5c980d111a ld/testsuite/ld-scripts/rgn-at2.d
+0b77db3e0cc95ef37de335174d35a3e2 ld/testsuite/ld-scripts/rgn-at2.t
+589aaa26a4c3fd5279ab20d6ef88af91 ld/testsuite/ld-scripts/rgn-at3.d
+942fe0360820a3e6618ad426317ed940 ld/testsuite/ld-scripts/rgn-at3.t
+f7d1da70dc15a99802d5d100357c5552 ld/testsuite/ld-scripts/rgn-at4.d
+d3e36eb38d25f61fe0e7e199b81cc839 ld/testsuite/ld-scripts/rgn-at4.t
+54ad9a22cc4ab9cb41a011f1d2fdfb27 ld/testsuite/ld-scripts/rgn-at5.d
+583bee06b7ae8e1ebd4785762bb24bf8 ld/testsuite/ld-scripts/rgn-at5.s
+e82261fb2abdba3fd5af311575ad8443 ld/testsuite/ld-scripts/rgn-at5.t
+afdffd4c10488414310425809494d1f1 ld/testsuite/ld-scripts/rgn-over.exp
+7a2042cc7b75ed2d99c10434557fe53b ld/testsuite/ld-scripts/rgn-over.s
+7b762eac6aaa4c6717a4851629ec430a ld/testsuite/ld-scripts/rgn-over1.d
+d042ba15e789862844d3567d5c34590e ld/testsuite/ld-scripts/rgn-over1.t
+2929ff5083173e3e630305962837185c ld/testsuite/ld-scripts/rgn-over2.d
+633f6209ac58ff68f2ce07a1f49abad3 ld/testsuite/ld-scripts/rgn-over2.t
+319193fbf2749b42b1fcc0cbb1ac3f21 ld/testsuite/ld-scripts/rgn-over3.d
+249d6556eb3a260814ad9c300ed93ce0 ld/testsuite/ld-scripts/rgn-over3.t
+34ab8cad75650ce6463f5c4ba36b96f5 ld/testsuite/ld-scripts/rgn-over4.d
+a70a2128a6e2c1726f52556fbb83b44b ld/testsuite/ld-scripts/rgn-over4.t
+dab2d9e3e6ce1aee26cc40017cbfce3e ld/testsuite/ld-scripts/rgn-over5.d
+f2331c87b67cdcfad3af88986f0bb5d5 ld/testsuite/ld-scripts/rgn-over5.t
+f52439f1c6d6f9b03c330137a3c49ed3 ld/testsuite/ld-scripts/rgn-over6.d
+ea1b5252b852c1614f04e6cadc34cd75 ld/testsuite/ld-scripts/rgn-over6.t
+7d862740a9220373229b5385d5f0fe54 ld/testsuite/ld-scripts/rgn-over7.d
+bfe38970de830574ee079fb1c710c517 ld/testsuite/ld-scripts/rgn-over7.t
+f0e3279ba6ca61906e6cbea50d2b5c91 ld/testsuite/ld-scripts/rgn-over8-ok.d
+3dd2c945738f89259e8b3482e3e6c3dd ld/testsuite/ld-scripts/rgn-over8.s
+748d4af6cc8c930a5c83de09e5a524c4 ld/testsuite/ld-scripts/rgn-over8.t
+1cb29be0c0615225fb7a56f862fe1b78 ld/testsuite/ld-scripts/sane1.d
+032ac062bfb635fe38448d913cca4766 ld/testsuite/ld-scripts/sane1.t
+4dc72a7b31fb891e5ac50c49358b4d92 ld/testsuite/ld-scripts/script.exp
+8ef222fed2cbd6222ef9c4bfb5caceb3 ld/testsuite/ld-scripts/script.s
+b9bc56b095f61ceef7cb9a948be41609 ld/testsuite/ld-scripts/script.t
+a673788e6a586931f65fee9d8964d0b8 ld/testsuite/ld-scripts/scriptm.t
+9d3529fa043f75f30a4e2990493956c4 ld/testsuite/ld-scripts/section-flags-1.s
+d7487d8924eab1630b0d8131069345f9 ld/testsuite/ld-scripts/section-flags-1.t
+9d3529fa043f75f30a4e2990493956c4 ld/testsuite/ld-scripts/section-flags-2.s
+c019b57229b0871f58f68f5688133ff1 ld/testsuite/ld-scripts/section-flags-2.t
+468e21a078b40951fcc68f05a671153f ld/testsuite/ld-scripts/section-flags.exp
+df1bf4fee3afe7e9a4e97c14692d7522 ld/testsuite/ld-scripts/section-match-1.d
+755dfef5103770186ec46d3a94537c65 ld/testsuite/ld-scripts/section-match-1.s
+9256bc51ef1b557e1c8c629dd3cb2dfc ld/testsuite/ld-scripts/section-match-1.t
+c99e63386e43db3aa484eaccc80f34af ld/testsuite/ld-scripts/section-match.exp
+e2756a97ddf7bb419a571e8d4b429770 ld/testsuite/ld-scripts/size-1.d
+17de08fa9310489af79bed8573e8580f ld/testsuite/ld-scripts/size-1.s
+ba30176f3ba8f8598896e2af7928cbdc ld/testsuite/ld-scripts/size-1.t
+de78df3229d27e6b870edaf7151a9d69 ld/testsuite/ld-scripts/size-2.d
+e578260bc547df59e5b871c5024c0dbf ld/testsuite/ld-scripts/size-2.s
+00e961a746e3d2e2b5f03d09c95fcf32 ld/testsuite/ld-scripts/size-2.t
+31a18bc9a5835ced1936b274703597c7 ld/testsuite/ld-scripts/size.exp
+9cbd10fa233d61e42b3f7c85ddf6b2f0 ld/testsuite/ld-scripts/sizeof.exp
+de2cf65f9506880e63f0fdd46bb23c12 ld/testsuite/ld-scripts/sizeof.s
+feffaafc250ae18dfdd493f8a6c4f2c6 ld/testsuite/ld-scripts/sizeof.t
+dbff5d620a5e5c880adc1bbc3dda0bdb ld/testsuite/ld-scripts/sort.exp
+0c8a78259c126ecd88cda54315baa73b ld/testsuite/ld-scripts/sort.t
+5536ed80165d30d382a59d846a58b1e3 ld/testsuite/ld-scripts/sort_b_a-1.d
+14683b60bd34c5a064bcc88222128e22 ld/testsuite/ld-scripts/sort_b_a-1.s
+da4242bab81d89c1682637ca128c27fb ld/testsuite/ld-scripts/sort_b_a.d
+2a7ba0612ef2af4e245c31f61df233c7 ld/testsuite/ld-scripts/sort_b_a.s
+36cc8d4f65a52fb4e1eaf36bc7bbe44a ld/testsuite/ld-scripts/sort_b_a.t
+2a0f1118c7d3cb58105b2afd481ad0e7 ld/testsuite/ld-scripts/sort_b_a_a-1.d
+2b902d918a3dd70faf4f2ca72ed0a4df ld/testsuite/ld-scripts/sort_b_a_a-2.d
+df004b656eab6b649c18a0fa872836e7 ld/testsuite/ld-scripts/sort_b_a_a-3.d
+d473185f8d72002be55218833f37bcf4 ld/testsuite/ld-scripts/sort_b_a_a.t
+4f0d46f4163b36e3be334118dec07c6b ld/testsuite/ld-scripts/sort_b_a_n-1.d
+4ba7f5856092bbc604d90a25a82d9002 ld/testsuite/ld-scripts/sort_b_a_n-2.d
+06945d92dab23a6ad33325b013714ea0 ld/testsuite/ld-scripts/sort_b_a_n-3.d
+6f540fc89fed53206b9f9733abe128e6 ld/testsuite/ld-scripts/sort_b_a_n.t
+43f980803c99479bf2938b422a890450 ld/testsuite/ld-scripts/sort_b_n-1.d
+a1bbd77fcfc41ef745c58d9c4c81d609 ld/testsuite/ld-scripts/sort_b_n-1.s
+7eeadbe2fcb152148ec269ae0dc79844 ld/testsuite/ld-scripts/sort_b_n.d
+c55eb84613680619dda395823061937a ld/testsuite/ld-scripts/sort_b_n.s
+40cea4acf0dfcb3e6815b18b86f34abb ld/testsuite/ld-scripts/sort_b_n.t
+111e404949e70caf1b806b4d3448a598 ld/testsuite/ld-scripts/sort_b_n_a-1.d
+0024b8b67af6d9e9a8a558a9c2d73c26 ld/testsuite/ld-scripts/sort_b_n_a-2.d
+6a88ea9875b61ef99419c6fb888420bf ld/testsuite/ld-scripts/sort_b_n_a-3.d
+1a767732a300cd1c1ed8f4a7f8460d60 ld/testsuite/ld-scripts/sort_b_n_a.t
+18a68bd595fd68ed40f09c6676b5b878 ld/testsuite/ld-scripts/sort_b_n_n-1.d
+4760dad5a36247b10293d1c4b54697a2 ld/testsuite/ld-scripts/sort_b_n_n-2.d
+b50d7df963ca79009ad9aaa5991eddda ld/testsuite/ld-scripts/sort_b_n_n-3.d
+84b350ab758b1aa07651cf48b7be57f9 ld/testsuite/ld-scripts/sort_b_n_n.t
+b78a0c1ba0c480990053d50a6b85174a ld/testsuite/ld-scripts/sort_n_a-a.s
+8f250dd3d26296f2f6783e2c554ad5db ld/testsuite/ld-scripts/sort_n_a-b.s
+fede375092520c3488fd72b37a015940 ld/testsuite/ld-scripts/sort_no-1.d
+259f809dfa3e7cc13b023f5997a33377 ld/testsuite/ld-scripts/sort_no-2.d
+dd867dcc221b34eac130495d74555792 ld/testsuite/ld-scripts/sort_no.t
+f3706a7d96cddce61177e371c3dd08cb ld/testsuite/ld-scripts/weak.exp
+3591b42540bac07bfbb66f7f0ce59d88 ld/testsuite/ld-scripts/weak.t
+409c80a8100bab5cf2d2e4d49d270eff ld/testsuite/ld-scripts/weak1.s
+6907d9f57513ed7b3a49ea61ba43b270 ld/testsuite/ld-scripts/weak2.s
+3f6043e6b6bd49e760b9e753b6aaf9ac ld/testsuite/ld-selective/1.c
+237d849095a360c8cad108dd7c84812b ld/testsuite/ld-selective/2.c
+33a18955ad41f28b49c5cbe7a8ec6f90 ld/testsuite/ld-selective/3.cc
+7a88a85be95ddb758a06f65387cf61e3 ld/testsuite/ld-selective/4.cc
+30057150e6799981d84c149803078de1 ld/testsuite/ld-selective/5.cc
+76de65cf7643a5a9d830781a6ddb4ec2 ld/testsuite/ld-selective/keepdot.d
+271e265ec183206674aa523fd3758fe8 ld/testsuite/ld-selective/keepdot.ld
+ee25e606252413aba69f02431147ff1c ld/testsuite/ld-selective/keepdot.s
+d38b74170368286b6fd747373a2ecdf5 ld/testsuite/ld-selective/keepdot0.d
+cd27e66eaeaab29aa416b21a3aeb060d ld/testsuite/ld-selective/keepdot0.ld
+a8872b0001c7265e2af69fe8fb5ca4e8 ld/testsuite/ld-selective/sel-dump.exp
+47e014d02b1864575790fb78782f08d7 ld/testsuite/ld-selective/selective.exp
+73a915d57966bbb8dcc25ced0576fc29 ld/testsuite/ld-sh/arch/arch.exp
+78ec6e7ed56d41b67e395d890b2b9a19 ld/testsuite/ld-sh/arch/arch_expected.txt
+557989b111b9dab8e12592d4468c3e37 ld/testsuite/ld-sh/arch/sh-dsp.s
+fad623280164b76e8e26f3fefeb21456 ld/testsuite/ld-sh/arch/sh.s
+d4b973efa0a1174ecf7403b949d8fef5 ld/testsuite/ld-sh/arch/sh2.s
+902449247a1f51fe8d542285c15186fe ld/testsuite/ld-sh/arch/sh2a-nofpu-or-sh3-nommu.s
+597181c5e888fec077372304556c6b14 ld/testsuite/ld-sh/arch/sh2a-nofpu-or-sh4-nommu-nofpu.s
+c99858e0fe821ffaa35d9f79326782be ld/testsuite/ld-sh/arch/sh2a-nofpu.s
+001175cf372c9958c8edbd1a9c673896 ld/testsuite/ld-sh/arch/sh2a-or-sh3e.s
+fcd26cad36753392667255e1206d9023 ld/testsuite/ld-sh/arch/sh2a-or-sh4.s
+a58353e9d1a147699f4b511c583787f7 ld/testsuite/ld-sh/arch/sh2a.s
+66b8534721a9a4642d334ca7ffaf493f ld/testsuite/ld-sh/arch/sh2e.s
+ba99caf1cf49cc62487f954f25421850 ld/testsuite/ld-sh/arch/sh3-dsp.s
+29d33f8568c4725231c2987e265a2368 ld/testsuite/ld-sh/arch/sh3-nommu.s
+c49644b7b8370e6427f9feaf80e70b2b ld/testsuite/ld-sh/arch/sh3.s
+4d36649f1200dcdb4901e2551b378729 ld/testsuite/ld-sh/arch/sh3e.s
+0e5fbe5b90dc04d700fc142c0bf211ad ld/testsuite/ld-sh/arch/sh4-nofpu.s
+abc2ec66346c95fa67fa4e92cbd18a02 ld/testsuite/ld-sh/arch/sh4-nommu-nofpu.s
+e3ad9d8364abb400e720c763f2015f49 ld/testsuite/ld-sh/arch/sh4.s
+b70176213702cb636c0e11124483c6c9 ld/testsuite/ld-sh/arch/sh4a-nofpu.s
+38e54ba4a93b881e8d378cc0e93e99e4 ld/testsuite/ld-sh/arch/sh4a.s
+08b3726b81639384ea64661f7b57faad ld/testsuite/ld-sh/arch/sh4al-dsp.s
+08e0e7cab61e86f66674a1cfeee1569a ld/testsuite/ld-sh/fdpic-funcdesc-shared.d
+b7ca2c0d25ef8ea5c7ebd3219fc3c046 ld/testsuite/ld-sh/fdpic-funcdesc-shared.s
+8f05b64441d35be356191cf18922185e ld/testsuite/ld-sh/fdpic-funcdesc-static.d
+00c8da60675cafd24c971037bfdd388f ld/testsuite/ld-sh/fdpic-funcdesc-static.s
+3144f0b16f27b5b9a646595be2e6b38c ld/testsuite/ld-sh/fdpic-gotfuncdesc-shared.d
+1f703764ffec03825caa562c9bef63f7 ld/testsuite/ld-sh/fdpic-gotfuncdesc-shared.s
+ccb5b7420339c46917d9dd3144649fed ld/testsuite/ld-sh/fdpic-gotfuncdesc-static.d
+68061bb5d09636f5a5becd032d4def35 ld/testsuite/ld-sh/fdpic-gotfuncdesc-static.s
+d5f2eee9ddf9a7fcf42a3791856621f1 ld/testsuite/ld-sh/fdpic-gotfuncdesci20-shared.d
+f32fddd42f500422533c2386817df2a4 ld/testsuite/ld-sh/fdpic-gotfuncdesci20-shared.s
+53f10f89b608a1ec9adaed658eea0cd7 ld/testsuite/ld-sh/fdpic-gotfuncdesci20-static.d
+2995890abbe703706e5efe71973b4277 ld/testsuite/ld-sh/fdpic-gotfuncdesci20-static.s
+173607afdfc9f75cca209a1711e93755 ld/testsuite/ld-sh/fdpic-goti20-shared.d
+21b52dcd8978b83fea8dc4bb36ff357f ld/testsuite/ld-sh/fdpic-goti20-shared.s
+12b7d3aae861169f0415bef32883169a ld/testsuite/ld-sh/fdpic-goti20-static.d
+fee031495d05dba39b0f59202b343ec1 ld/testsuite/ld-sh/fdpic-goti20-static.s
+d4366fdad6611f79acccbd05a876aab5 ld/testsuite/ld-sh/fdpic-gotofffuncdesc-shared.d
+753be37534a209985aaa37f31c17f892 ld/testsuite/ld-sh/fdpic-gotofffuncdesc-shared.s
+e9c0ab7fc9e3dbe37f7c4f80113e0743 ld/testsuite/ld-sh/fdpic-gotofffuncdesc-static.d
+3304f51acbfd50a4009764b5b2830dac ld/testsuite/ld-sh/fdpic-gotofffuncdesc-static.s
+9cf60942cb1c0f498dc2799b02151299 ld/testsuite/ld-sh/fdpic-gotofffuncdesci20-shared.d
+a919fef130c2da2de8ddd7a1ba67cd88 ld/testsuite/ld-sh/fdpic-gotofffuncdesci20-shared.s
+b4ac940b1b06970c887dd3d365c694d0 ld/testsuite/ld-sh/fdpic-gotofffuncdesci20-static.d
+eee2a25c20104abb341d7b72b569ddc6 ld/testsuite/ld-sh/fdpic-gotofffuncdesci20-static.s
+59fd22efb0f5253c17c4c627faae4e2b ld/testsuite/ld-sh/fdpic-gotoffi20-shared.d
+cd08a3ae64807ed0c93b91a753390983 ld/testsuite/ld-sh/fdpic-gotoffi20-shared.s
+4339ea2ee1513cbb54e7f0430e057975 ld/testsuite/ld-sh/fdpic-gotoffi20-static.d
+5d49bfa39d2a669ae7efd38d4240f8d5 ld/testsuite/ld-sh/fdpic-gotoffi20-static.s
+79c5c77b067370eab8005cf02f649cc1 ld/testsuite/ld-sh/fdpic-plt-be.d
+54bfceff3d3d49f509d1dc3eff7b68bf ld/testsuite/ld-sh/fdpic-plt-le.d
+8d75b12c5e4608c97885a53fc27f2e25 ld/testsuite/ld-sh/fdpic-plt.s
+a75fec2fd070c93a53aaf2380a1c229a ld/testsuite/ld-sh/fdpic-plti20-be.d
+280c5f991a4027dcfcf53788a913a9d4 ld/testsuite/ld-sh/fdpic-plti20-le.d
+b967c170071a0f150a82ff19d16f128b ld/testsuite/ld-sh/fdpic-stack-default.d
+46e4de8ad6e333029397cb1d9e8d889f ld/testsuite/ld-sh/fdpic-stack-size.d
+a9cc0bc39eb06a4ce1b7c4d1312e2ed4 ld/testsuite/ld-sh/fdpic-stack.s
+43e8d60f2a62e4ece8534aea455162a4 ld/testsuite/ld-sh/ld-r-1.d
+fcbd70b5e55afc67cf17a5dba6a0290f ld/testsuite/ld-sh/ldr1.s
+6217cc9778d5febfad3e5024c6962262 ld/testsuite/ld-sh/ldr2.s
+f993034a5f3b4230308fa7a3ec1db5b1 ld/testsuite/ld-sh/rd-sh.exp
+e9e3ce39a4375e74b04f76bc399e99d9 ld/testsuite/ld-sh/refdbg-0-dso.d
+c2ba4cf7fc6b62779e73289f6f51a673 ld/testsuite/ld-sh/refdbg-1.d
+0d52d82e4d568ef945cfa6703f03abd7 ld/testsuite/ld-sh/refdbg.s
+b82d1cf4ae77e96d5e1e611ee68c70f1 ld/testsuite/ld-sh/refdbglib.s
+19d71cb628de2ed19de5d64c8b26c11f ld/testsuite/ld-sh/reloc1.d
+7d4b394df1b77a9a50bf939780228499 ld/testsuite/ld-sh/reloc1.s
+c382624fa00089b4604f1650402f70e3 ld/testsuite/ld-sh/sh-vxworks.exp
+fdf3c2cc461c1e384d1530fe5c3dea97 ld/testsuite/ld-sh/sh.exp
+1480d5643c4a3a7456700440e9f108dc ld/testsuite/ld-sh/sh1.s
+4a6b928d31480c42bc368db1a2d729b3 ld/testsuite/ld-sh/sh2.c
+0c9bfb09d4093045c3990998fa1df825 ld/testsuite/ld-sh/sh64/abi32.sd
+c0ace4859c99c559854cbf35c20ac9ed ld/testsuite/ld-sh/sh64/abi32.xd
+d343449d8a4c030206c31db085d733fd ld/testsuite/ld-sh/sh64/abi64.sd
+8bf79bf1db98c6439cdd28c89f52d143 ld/testsuite/ld-sh/sh64/abi64.xd
+7388fb47e1ddc604bc9d87535eb410a7 ld/testsuite/ld-sh/sh64/abixx-noexp.sd
+ad7ca775ab56187b50c88f7a58466375 ld/testsuite/ld-sh/sh64/cmpct1.sd
+d60df39955633a62106ca5a322f314f0 ld/testsuite/ld-sh/sh64/cmpct1.xd
+c73961a0fad1d2fd62629de1fe0c70b1 ld/testsuite/ld-sh/sh64/crange-1.s
+328b703c9b5066d401795ff6de9bc0bd ld/testsuite/ld-sh/sh64/crange-2a.s
+e69fa9d1375fcd6ccd984389dba319ce ld/testsuite/ld-sh/sh64/crange-2b.s
+3b4485d90727fe240d30e5a24bc087e5 ld/testsuite/ld-sh/sh64/crange-2c.s
+ae8e3795860a4b62529c938fee840d4e ld/testsuite/ld-sh/sh64/crange-2d.s
+27c04cbc6a54fa6b2ca6457bb17afd6c ld/testsuite/ld-sh/sh64/crange-2e.s
+06ec994967c3e725e37aebb6fb2b54c4 ld/testsuite/ld-sh/sh64/crange-2f.s
+e38d05441f7886533954e1385c29387c ld/testsuite/ld-sh/sh64/crange-2g.s
+9689bde27dc2484a1a938f1fef07ded9 ld/testsuite/ld-sh/sh64/crange-2h.s
+1462c3fa6661a753105fe81a4c6db1dc ld/testsuite/ld-sh/sh64/crange-2i.s
+960bca806da7375f03d5e11ec2c1c13a ld/testsuite/ld-sh/sh64/crange1.rd
+675205a897d5cf02f4d964e047712436 ld/testsuite/ld-sh/sh64/crange2.rd
+bb0d93f60c79043447e61cff26d6a538 ld/testsuite/ld-sh/sh64/crange3-cmpct.rd
+b14b3dd3637dca6b1b32875e1d2d887e ld/testsuite/ld-sh/sh64/crange3-media.rd
+3ffebeae6c08139aa36e21265106298e ld/testsuite/ld-sh/sh64/crange3.dd
+81a3531cd9b16acc87fe347db72a11c0 ld/testsuite/ld-sh/sh64/crange3.rd
+58e072dfd80d2cd694d4ad0f0f97acbd ld/testsuite/ld-sh/sh64/crangerel1.rd
+2d94cdec959aa9069ba61085ea176a2e ld/testsuite/ld-sh/sh64/crangerel2.rd
+f94546e3da61ec674a5b48991732a50c ld/testsuite/ld-sh/sh64/dlsection-1.s
+e2633ad84cbe5531e77222843f9fd304 ld/testsuite/ld-sh/sh64/dlsection.sd
+60b3ba2f0c4a5ca923893a894a582ac9 ld/testsuite/ld-sh/sh64/endian.dbd
+41884e5b1b3e647fe52be17cf58e47ad ld/testsuite/ld-sh/sh64/endian.dld
+439a304e3df929f85ebb3859142504f2 ld/testsuite/ld-sh/sh64/endian.ld
+5e4c7d2bf96d59c028edefdbafb057a8 ld/testsuite/ld-sh/sh64/endian.s
+3f58d6c1b5b4570ad625f96257c7c075 ld/testsuite/ld-sh/sh64/endian.sbd
+0261b327b1e190bd7466855c6c73d527 ld/testsuite/ld-sh/sh64/endian.sld
+21c057a0221ab44ce372fe73e1c317e6 ld/testsuite/ld-sh/sh64/gotplt.d
+647197c48fed383b904f232572a2bb5b ld/testsuite/ld-sh/sh64/gotplt.map
+ccb113dc467f4239cc25eb43b6adfd80 ld/testsuite/ld-sh/sh64/gotplt.s
+76ed01a76f418c6db9d67d67b3074643 ld/testsuite/ld-sh/sh64/init-cmpct.d
+3188da7e8915725e3af3ff13f57e02b7 ld/testsuite/ld-sh/sh64/init-media.d
+22383ca3faac1674e7e8421c0ba7112f ld/testsuite/ld-sh/sh64/init.s
+66f1379b6447cac03fea20a698e2eba1 ld/testsuite/ld-sh/sh64/init64.d
+b2901603c0c019a5d4cf0b7ed51b006c ld/testsuite/ld-sh/sh64/mix1-noexp.sd
+5c7c4d0f5810013fb5c35ad744d6feb2 ld/testsuite/ld-sh/sh64/mix1.sd
+6f19d7165de8745c558390ef2d42d3ca ld/testsuite/ld-sh/sh64/mix1.xd
+46b3cfa7c4d7934f4097735882648405 ld/testsuite/ld-sh/sh64/mix2-noexp.sd
+67bf07be014e835273718d75e3e00949 ld/testsuite/ld-sh/sh64/mix2.sd
+b1fc40b02731641c993b9d2786b63422 ld/testsuite/ld-sh/sh64/mix2.xd
+dea5072d0a6835059b328f8cf0189d72 ld/testsuite/ld-sh/sh64/rd-sh64.exp
+1166b5637fcaa5ab2f65d7604c8e0dea ld/testsuite/ld-sh/sh64/rel-1.s
+dc52fd286f5e3e3ba2a0453bb7be7cf8 ld/testsuite/ld-sh/sh64/rel-2.s
+009b175a14c6322db0227ded1bf1bbe9 ld/testsuite/ld-sh/sh64/rel32.xd
+88aeed77160b92aad6fb63d90847cf49 ld/testsuite/ld-sh/sh64/rel64.xd
+027d20a3fba198f5cf9416edcbb018a2 ld/testsuite/ld-sh/sh64/relax.exp
+ad76cea000fec5b3c623528c4f90f28f ld/testsuite/ld-sh/sh64/relax1.s
+82c91e0d07cc0794161fd6919925329c ld/testsuite/ld-sh/sh64/relax2.s
+558087d48e4ae36850b1b6c8b769e0f2 ld/testsuite/ld-sh/sh64/relax3.s
+a2dffd9f6049f25cbf6c6daf57da3672 ld/testsuite/ld-sh/sh64/relax4.s
+428b3202ce30a114bbb92ece7d8fcc86 ld/testsuite/ld-sh/sh64/reldl-1.s
+861e2f1ff73cc48552826aa5b007ccf8 ld/testsuite/ld-sh/sh64/reldl-2.s
+7bbce83842ce15d9355f8134c959aaa7 ld/testsuite/ld-sh/sh64/reldl32.rd
+991f96b93383296bd226439a5a17f01a ld/testsuite/ld-sh/sh64/reldl64.rd
+3c1b9582e5213c1da0868e346fb303aa ld/testsuite/ld-sh/sh64/relfail.exp
+dcb15c3eaafdd677a4bed69b52d8fd20 ld/testsuite/ld-sh/sh64/relfail.s
+4a9f958e1de298410352eacfc2790042 ld/testsuite/ld-sh/sh64/sh64-1.s
+e57b411a1bd1e2c3492480270ab84327 ld/testsuite/ld-sh/sh64/sh64-2.s
+883f632ee1028b121dd01c1346117aac ld/testsuite/ld-sh/sh64/sh64.exp
+6d672ac557ea34ee06eb8cb94b8f78d4 ld/testsuite/ld-sh/sh64/shcmp-1.s
+92a5607059e99b0b7a7121305ce083e7 ld/testsuite/ld-sh/sh64/shdl-1.s
+70a7a20b4381c32e89e9dd7615393ec2 ld/testsuite/ld-sh/sh64/shdl-2.s
+c605c8c517ccebb827b1c819a77d95a9 ld/testsuite/ld-sh/sh64/shdl32.xd
+2d4cbb3a76469076a359f59724cf3dcb ld/testsuite/ld-sh/sh64/shdl64.sd
+f237169788ef3bb7c9a0ea485b3cb05a ld/testsuite/ld-sh/sh64/shdl64.xd
+225a060f4b88eb8436ca23e73d7e06ec ld/testsuite/ld-sh/sh64/shmix-1.s
+19c270c7b2605695a6fb613668c202c8 ld/testsuite/ld-sh/sh64/shmix-2.s
+faf5405f3d08893ba5e6a20f7f9928b0 ld/testsuite/ld-sh/sh64/shmix-3.s
+b0ab0fbf8d440fa329d565a5ccbba1e1 ld/testsuite/ld-sh/sh64/stobin-0-dso.d
+6771e1b630e85e22e0634aa1d166e81c ld/testsuite/ld-sh/sh64/stobin-1.d
+2e309ebf433520a9f601ac736fdacb9d ld/testsuite/ld-sh/sh64/stobin.s
+51780faee227e3a457101e3a7d2fde0e ld/testsuite/ld-sh/sh64/stolib.s
+cacd2a6c0809a38683c3ebcf941eb098 ld/testsuite/ld-sh/shared-1.d
+af8dee7b2a6f9c36b48c981da8fd4ef3 ld/testsuite/ld-sh/shared-2.d
+486895674299bb2c523133e56a567c1f ld/testsuite/ld-sh/start.s
+6bc448baf0ba7a42eb02cb25dcffbce2 ld/testsuite/ld-sh/sub2l-1.d
+e28a2e0da19c4548dff752131cc9c4ef ld/testsuite/ld-sh/sub2l.s
+f7e4c5f7cd622652943bd47ebc9a5a23 ld/testsuite/ld-sh/textrel1.s
+68cf0838e9de11a99ab1720e6d05fc00 ld/testsuite/ld-sh/textrel2.s
+452b14908770e945a2bce149204fc59a ld/testsuite/ld-sh/tlsbin-0-dso.d
+da0a5cefe3b71f1b9090aaa7da861753 ld/testsuite/ld-sh/tlsbin-1.d
+29c061857bc4b38869b3a7db8f589978 ld/testsuite/ld-sh/tlsbin-2.d
+94528c95120b315ec999bfdf77044934 ld/testsuite/ld-sh/tlsbin-3.d
+158222b1966ec79c1ece1a6f9721207c ld/testsuite/ld-sh/tlsbin-4.d
+ad4606e3e2ff81551d474deb3bc1f9bd ld/testsuite/ld-sh/tlsbin.s
+34f93fd97a11c009cae4ff7574890043 ld/testsuite/ld-sh/tlsbinpic.s
+ec3e44acc84eb03c62466be835ee927f ld/testsuite/ld-sh/tlslib.s
+653138b34fe1965b2b01867cf1599306 ld/testsuite/ld-sh/tlspic-1.d
+0cdf8200d895d533006ae6c7468bff48 ld/testsuite/ld-sh/tlspic-2.d
+0fba19a4394a0643eff7462e9ca89d6e ld/testsuite/ld-sh/tlspic-3.d
+d37960962cb3bc48f6638db2bb7353a0 ld/testsuite/ld-sh/tlspic-4.d
+a97a184577f5d28dd41b482b6f128426 ld/testsuite/ld-sh/tlspic1.s
+e43032ce8828ef5065ea1bb6480a92fe ld/testsuite/ld-sh/tlspic2.s
+ea63dd2c251319d01e9e2fbe165f3e3d ld/testsuite/ld-sh/tlstpoff-1.d
+06496514e5705479dc0185db500a3d19 ld/testsuite/ld-sh/tlstpoff-2.d
+eaf0ef9de13413ca33a79cb688c72a2f ld/testsuite/ld-sh/tlstpoff1.s
+21e7feeb0b7856ed94bc352c7169925a ld/testsuite/ld-sh/tlstpoff2.s
+1e03ac52aa0f8ed98dcb600cd74ede8a ld/testsuite/ld-sh/vxworks1-le.dd
+cc8c72280792e66cb1fd8a2cd81f4d11 ld/testsuite/ld-sh/vxworks1-lib-le.dd
+9d59315c381b523e07e2e39cd84d99aa ld/testsuite/ld-sh/vxworks1-lib.dd
+2ed93b7c8314a1e06fb6a3b7d652f4ca ld/testsuite/ld-sh/vxworks1-lib.nd
+9d066d0b81f0652e2477b47374c4f001 ld/testsuite/ld-sh/vxworks1-lib.rd
+f6abfedd8af59f438fcd169e2f34c389 ld/testsuite/ld-sh/vxworks1-lib.s
+6dbdc5d4346169b9a3af98707d77be72 ld/testsuite/ld-sh/vxworks1-lib.td
+b9df1b5a4946b883b92ea5354df78679 ld/testsuite/ld-sh/vxworks1-static.d
+1af56805c06364621dd866e34a4e573d ld/testsuite/ld-sh/vxworks1.dd
+ff6cb82bd3dda9cb4328b50f2d88614e ld/testsuite/ld-sh/vxworks1.ld
+99596da509153a5dfb0d4dd0e1e7ec33 ld/testsuite/ld-sh/vxworks1.rd
+6de131fbfcb4ab6079a4ec80394d8b6b ld/testsuite/ld-sh/vxworks1.s
+165ed1561458c0973255f985be876845 ld/testsuite/ld-sh/vxworks2-static.sd
+9ffae98b2aab1eed51a33b3b0bcdcb1d ld/testsuite/ld-sh/vxworks2.s
+7afb4e2fc8be35ad985dcb2e21b7cbef ld/testsuite/ld-sh/vxworks2.sd
+87e691828effe17e730b1515714437df ld/testsuite/ld-sh/vxworks3-le.dd
+1067992266f34cef766f380d7fc1ead7 ld/testsuite/ld-sh/vxworks3-lib-le.dd
+14fa3604ffe3103ad305a399f975b0ea ld/testsuite/ld-sh/vxworks3-lib.dd
+109d3f60a868184e51e6885ef65907c2 ld/testsuite/ld-sh/vxworks3-lib.s
+47350b95b323a67ada1c85af73dea2c8 ld/testsuite/ld-sh/vxworks3.dd
+9f85716a9ae373e4e73bf7ee89fc5e01 ld/testsuite/ld-sh/vxworks3.s
+b56ed270ed90ba5b27712d7984f7959b ld/testsuite/ld-sh/vxworks4.d
+af10740ee3a0625ebcbc85074ad64b11 ld/testsuite/ld-sh/vxworks4a.s
+d5d5e008f55ee9e9e2574ed81e76f7fe ld/testsuite/ld-sh/vxworks4b.s
+f4202fe02285184a2211e0467471ddb3 ld/testsuite/ld-sh/weak1.d
+89c396121b4c938815e9d8009f25ee37 ld/testsuite/ld-sh/weak1.s
+ddd798dc8d3f3ac1d32ac854229d259d ld/testsuite/ld-shared/elf-offset.ld
+b3eebcd693dc11f3c180628d1ac95de6 ld/testsuite/ld-shared/main.c
+20161dcba239652c4c9434662685a545 ld/testsuite/ld-shared/sh1.c
+63f2b4674ec691e3ec08f14f48fb1eb5 ld/testsuite/ld-shared/sh2.c
+7ac9ed1cf3e4b23bd77743315f0560d5 ld/testsuite/ld-shared/shared.dat
+470a83a634408ccc558a2cf3580c9836 ld/testsuite/ld-shared/shared.exp
+8b38128b19d7be0a9f143a3fae14669f ld/testsuite/ld-shared/sun4.dat
+e8d8c5ef094b26b46377375f8ef076c3 ld/testsuite/ld-shared/symbolic.dat
+bf16787cbff593c9377800bda68bc12b ld/testsuite/ld-shared/xcoff.dat
+a15f70e96ad2a54e081863c040468da9 ld/testsuite/ld-sparc/gotop32.dd
+a9e4db33afb06eb11e404411744aeda8 ld/testsuite/ld-sparc/gotop32.rd
+01c8d6c8a11f0671d2138c7359ed9060 ld/testsuite/ld-sparc/gotop32.s
+3bbe5dbb9d0b1ecdb97f16d55f587ef8 ld/testsuite/ld-sparc/gotop32.sd
+a319e3cc93a6858774e449a4ea8d5a62 ld/testsuite/ld-sparc/gotop32.td
+342f2bebf768aca33754cf700d772318 ld/testsuite/ld-sparc/gotop64.dd
+4f5157e16bd71200aa9479ad2845ba59 ld/testsuite/ld-sparc/gotop64.rd
+68eff3160bb0e8b5437674b29637cfa2 ld/testsuite/ld-sparc/gotop64.s
+cb763c8c9d111eacfe9a31279c1df6cd ld/testsuite/ld-sparc/gotop64.sd
+2ee5cbf57479046f5a4f68e9324d6de5 ld/testsuite/ld-sparc/gotop64.td
+c08cd49224f7e0291eec92677d5bc316 ld/testsuite/ld-sparc/sparc.exp
+f2cc7e2a6d73ba0523e4152cfca6b713 ld/testsuite/ld-sparc/tlsg32.s
+b129627f00eb462a2166203641df5770 ld/testsuite/ld-sparc/tlsg32.sd
+bd716e9b7672e56e96e7f293350410c2 ld/testsuite/ld-sparc/tlsg64.s
+3610c4fe70c3ab356210a60748475f43 ld/testsuite/ld-sparc/tlsg64.sd
+f45983dd004da37020dc6f85bff8d99e ld/testsuite/ld-sparc/tlslib.s
+2edea12bda9f42749ee9ae86f8fb3f7f ld/testsuite/ld-sparc/tlsnopic.s
+236a8f451d38469c389f471b4529d5c3 ld/testsuite/ld-sparc/tlspic.s
+9189506eedfeac2033b0e7c4de0a2680 ld/testsuite/ld-sparc/tlssunbin32.dd
+4a296b942cbb139ca89f7e0025080617 ld/testsuite/ld-sparc/tlssunbin32.rd
+36f2e351f3a028ca81a679221131a0cd ld/testsuite/ld-sparc/tlssunbin32.s
+16aeb0a48713e4bf89d2065bfe20839f ld/testsuite/ld-sparc/tlssunbin32.sd
+176ea661341925d2f0f24b88dcc219dd ld/testsuite/ld-sparc/tlssunbin32.td
+7749b2785b0d78eccdcbf916e72da0e7 ld/testsuite/ld-sparc/tlssunbin64.dd
+0114d03caccfe739efa177a4e208f973 ld/testsuite/ld-sparc/tlssunbin64.rd
+9b23cbeb85df66899de9aa841d41a6d8 ld/testsuite/ld-sparc/tlssunbin64.s
+bd37fb5e377d86212f801b19c152989a ld/testsuite/ld-sparc/tlssunbin64.sd
+ed39d3a0f0c9b484064abda9325c770b ld/testsuite/ld-sparc/tlssunbin64.td
+2d0ba1b70aa80b977b1153e86a41eda2 ld/testsuite/ld-sparc/tlssunbinpic32.s
+4f54433140a83203f9612a17f1f68a7c ld/testsuite/ld-sparc/tlssunbinpic64.s
+a503661ad3d089c3b0bcf3982ad2faea ld/testsuite/ld-sparc/tlssunnopic32.dd
+f2696cb7fbe45db35c94226f923123e7 ld/testsuite/ld-sparc/tlssunnopic32.rd
+163ff743ffacb4dd2e35ff15849a0ea4 ld/testsuite/ld-sparc/tlssunnopic32.s
+cb3ff5e802147194875afde5b1d146b1 ld/testsuite/ld-sparc/tlssunnopic32.sd
+53bb5587a45c84b08d869098aa8c3912 ld/testsuite/ld-sparc/tlssunnopic64.dd
+c2008aa26f4dff2b66c2da02bfa59817 ld/testsuite/ld-sparc/tlssunnopic64.rd
+a6c8ed5af43f5482d3d7bcf74e7684e5 ld/testsuite/ld-sparc/tlssunnopic64.s
+2c3b7a1c1531fe831d15b7180461e338 ld/testsuite/ld-sparc/tlssunnopic64.sd
+517c35cd6001117a10cb2eb311736018 ld/testsuite/ld-sparc/tlssunpic32.dd
+c838fd83ba4d0459926a81002d73a5cb ld/testsuite/ld-sparc/tlssunpic32.rd
+e103f3b429288a84d8e5c47bdbd5697e ld/testsuite/ld-sparc/tlssunpic32.s
+957929ffafe2d2cee185a0841b0d1ec7 ld/testsuite/ld-sparc/tlssunpic32.sd
+79ba66a090beb7c8eb24102878fcd2b8 ld/testsuite/ld-sparc/tlssunpic32.td
+a3d9018bb1ed11cd7b2db3d50d7a6304 ld/testsuite/ld-sparc/tlssunpic64.dd
+e08d551d645c65077e7909ae17fbb511 ld/testsuite/ld-sparc/tlssunpic64.rd
+92725610c233ff43c7684b099ad1f63c ld/testsuite/ld-sparc/tlssunpic64.s
+f85a523e8c664433001e7ba2591ef011 ld/testsuite/ld-sparc/tlssunpic64.sd
+d09d4fbfa24bef5a3f4fd2efab45a217 ld/testsuite/ld-sparc/tlssunpic64.td
+d4b99a8da6449380ef31dd03ebdbf4e1 ld/testsuite/ld-sparc/vxworks1-lib.dd
+4d0018309d753aeb7489523e8fc2b582 ld/testsuite/ld-sparc/vxworks1-lib.nd
+516cca5142fcc8be501d6b4aa6365c34 ld/testsuite/ld-sparc/vxworks1-lib.rd
+d7d3679cbd81499e584cf78e950e72d6 ld/testsuite/ld-sparc/vxworks1-lib.s
+6dbdc5d4346169b9a3af98707d77be72 ld/testsuite/ld-sparc/vxworks1-lib.td
+57e13e14adacc62cab22da622bbcb01e ld/testsuite/ld-sparc/vxworks1-static.d
+eff6bd323ed07e997b4d697536a4994b ld/testsuite/ld-sparc/vxworks1.dd
+65436e479e11025c3b995c7941bb58a3 ld/testsuite/ld-sparc/vxworks1.ld
+012a01423074a17c346bf377a74264ba ld/testsuite/ld-sparc/vxworks1.rd
+8c0216be7e3b38ae166e4359b6338008 ld/testsuite/ld-sparc/vxworks1.s
+70a3a63caaa6294e72a21f3af93d802c ld/testsuite/ld-sparc/vxworks2-static.sd
+01ec404ce50fbffc8aa2a12f3466b101 ld/testsuite/ld-sparc/vxworks2.s
+a59d05b41e3dd040fb4e12e434cff21d ld/testsuite/ld-sparc/vxworks2.sd
+f49e2394e1cca686fa3327d81c64e3fa ld/testsuite/ld-spu/ear.d
+117a909e130058b91afa95f31fbb874e ld/testsuite/ld-spu/ear.s
+2b4ac0f83f0ff5440c950826eac5dcbb ld/testsuite/ld-spu/embed.rd
+b8b915bffd8bf82ae39b363cd5b39e0b ld/testsuite/ld-spu/fixup.d
+8c1c476f04f50f0a472450b0226854bb ld/testsuite/ld-spu/fixup.s
+cd48872ab912171ef6a74a2371b52c3b ld/testsuite/ld-spu/icache1.d
+5069a040bb8d323b66a5d86773cf3c66 ld/testsuite/ld-spu/icache1.s
+a2ccc6efb582f7a9225c555243e82014 ld/testsuite/ld-spu/ovl.d
+f518e3aa7768f47c7594b2b03ec51b5d ld/testsuite/ld-spu/ovl.lnk
+d4c871b26497cb32152f49127636d300 ld/testsuite/ld-spu/ovl.s
+644ddc01ba535fe2a7028f00bb31f66e ld/testsuite/ld-spu/ovl1.lnk
+9fed82e10b9fe30f4742d8aecc46ecc8 ld/testsuite/ld-spu/ovl2.d
+e4fd482d44defe77b13f0d97531f80f1 ld/testsuite/ld-spu/ovl2.lnk
+26a2105b677352ed3b8bafca0f88185b ld/testsuite/ld-spu/ovl2.s
+2cb2d6f1f9d0d193ac2f3af869291120 ld/testsuite/ld-spu/pic.d
+751c3e3f4a8dfb43f4977a58962f3d11 ld/testsuite/ld-spu/pic.s
+eda70149d50ac85c7dc96fc3d5ed4202 ld/testsuite/ld-spu/picdef.s
+705aed57b1a7feaf1366598911bafd29 ld/testsuite/ld-spu/spu.exp
+ff2b78b0df3a6bc56644e35ec4f068bd ld/testsuite/ld-srec/sr1.c
+6524623299b50b9299f4b3fca543b0fa ld/testsuite/ld-srec/sr2.c
+76a4cb76d59f235af5e567ccb024de2c ld/testsuite/ld-srec/sr3.cc
+90187dd7d22e3638e585172693019489 ld/testsuite/ld-srec/srec.exp
+2095186b157bb04030b2974b68c47ade ld/testsuite/ld-tic6x/attr-arch-c62x-c62x.d
+012b48c308ed21b346ffca5a22f9a921 ld/testsuite/ld-tic6x/attr-arch-c62x-c64x+.d
+c1c54aafeb5ef8674bd033cd5d98b087 ld/testsuite/ld-tic6x/attr-arch-c62x-c64x.d
+3268a53c624163e76b1bc03aa377fae4 ld/testsuite/ld-tic6x/attr-arch-c62x-c674x.d
+9375d10ff6b18685b695c7725ded2e71 ld/testsuite/ld-tic6x/attr-arch-c62x-c67x+.d
+90877dbc04d4915268b530427afe0db2 ld/testsuite/ld-tic6x/attr-arch-c62x-c67x.d
+a4ed1a052c2e13035ff7dba21686c279 ld/testsuite/ld-tic6x/attr-arch-c62x.s
+e3e12b151e736a071c96b21b96af62ec ld/testsuite/ld-tic6x/attr-arch-c64x+-c62x.d
+da5586e6af1edbd7c442c93d455176f9 ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x+.d
+e33e2c5ed2db16176028b082fd315664 ld/testsuite/ld-tic6x/attr-arch-c64x+-c64x.d
+6ca936a62504bb81209dbb450c2f2920 ld/testsuite/ld-tic6x/attr-arch-c64x+-c674x.d
+d7c24e2f39a5318cc7357f9b6cca0229 ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x+.d
+dad6c70af119a8b34de4d3dde6f73109 ld/testsuite/ld-tic6x/attr-arch-c64x+-c67x.d
+d68127136817bb75c3169bb32ad35f2b ld/testsuite/ld-tic6x/attr-arch-c64x+.s
+77915fb8e7fd14c9bc48873083b7f5fe ld/testsuite/ld-tic6x/attr-arch-c64x-c62x.d
+3d2ddd7611c691b4fbb978e37c8db824 ld/testsuite/ld-tic6x/attr-arch-c64x-c64x+.d
+e926a9331f3642af87f44cfd6eae0ff7 ld/testsuite/ld-tic6x/attr-arch-c64x-c64x.d
+cc484259a527b7c6940e2825454e441f ld/testsuite/ld-tic6x/attr-arch-c64x-c674x.d
+7c4237632cbc92020308c55f1a5ffcee ld/testsuite/ld-tic6x/attr-arch-c64x-c67x+.d
+b2361276ac56389b62a27138d39c9bdf ld/testsuite/ld-tic6x/attr-arch-c64x-c67x.d
+204750fa68714136532941c335706af8 ld/testsuite/ld-tic6x/attr-arch-c64x.s
+cf9d5a445a0bdaf06898e9aae73f7e13 ld/testsuite/ld-tic6x/attr-arch-c674x-c62x.d
+447e335686baf213f6a75c49ad7b1c9e ld/testsuite/ld-tic6x/attr-arch-c674x-c64x+.d
+4d2849bd8721c0cc128fa94141219638 ld/testsuite/ld-tic6x/attr-arch-c674x-c64x.d
+167ea510f35eb92767df1296bdc25a7f ld/testsuite/ld-tic6x/attr-arch-c674x-c674x.d
+6aa28cd9f614b4a89f970492b0c037eb ld/testsuite/ld-tic6x/attr-arch-c674x-c67x+.d
+77c9c86fe6dbe86385bfa1a2589fdac3 ld/testsuite/ld-tic6x/attr-arch-c674x-c67x.d
+309b44b71f7cba00f581434aae06f203 ld/testsuite/ld-tic6x/attr-arch-c674x.s
+e73f79b702cc91084c8e20b55cd20d45 ld/testsuite/ld-tic6x/attr-arch-c67x+-c62x.d
+0899a878f81fde629575e58a16215f8e ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x+.d
+a056fe881ed3770f974afb5db6285ab2 ld/testsuite/ld-tic6x/attr-arch-c67x+-c64x.d
+70ea92797e684dac70923921f67a6720 ld/testsuite/ld-tic6x/attr-arch-c67x+-c674x.d
+70499b06f97ef16839f2feb5efb2163c ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x+.d
+fe0044a62b4dfcebcd68d7e9c19816d2 ld/testsuite/ld-tic6x/attr-arch-c67x+-c67x.d
+1b3c629121eece9c6b5ecfc676e5fbad ld/testsuite/ld-tic6x/attr-arch-c67x+.s
+839ffebb6e3758a0c80efeeb0144bad5 ld/testsuite/ld-tic6x/attr-arch-c67x-c62x.d
+836edc087c9fca83e68ad8153e6dbcbd ld/testsuite/ld-tic6x/attr-arch-c67x-c64x+.d
+8d78b2368daaefc055156c313cbebd52 ld/testsuite/ld-tic6x/attr-arch-c67x-c64x.d
+c26b0412869122cb91a5d63be54db50d ld/testsuite/ld-tic6x/attr-arch-c67x-c674x.d
+436c2a27d1278ac1a1f80dfdd55393c5 ld/testsuite/ld-tic6x/attr-arch-c67x-c67x+.d
+02d52b08b67b4a67759028ae39156617 ld/testsuite/ld-tic6x/attr-arch-c67x-c67x.d
+a36dea43f43314aa5cdd90e4863bcd6a ld/testsuite/ld-tic6x/attr-arch-c67x.s
+97f9c37b51f068f860f107ea9f2e063a ld/testsuite/ld-tic6x/attr-array-16-16.d
+7a819fdc22499bbe43bae2549987022a ld/testsuite/ld-tic6x/attr-array-16-4.d
+2cb63358cee1c3f03379a921a61df357 ld/testsuite/ld-tic6x/attr-array-16-416.d
+0f0907ba405cd8e646dbcc50984fdefa ld/testsuite/ld-tic6x/attr-array-16-48.d
+c96433474ea9167d49fd61086d3500b4 ld/testsuite/ld-tic6x/attr-array-16-8.d
+5005a2e968ac02bca5e1887bd9700df2 ld/testsuite/ld-tic6x/attr-array-16-816.d
+930335b39411d1b89cde4a13b3580d9c ld/testsuite/ld-tic6x/attr-array-16.s
+6decf37396de9d2666137d8446096cac ld/testsuite/ld-tic6x/attr-array-4-16.d
+17ae392d4690b3ac0b74fd9f9798f785 ld/testsuite/ld-tic6x/attr-array-4-4.d
+aa683ee23dc1888c3beb34dfd8315be9 ld/testsuite/ld-tic6x/attr-array-4-416.d
+58b564dcda58ffff77a0d4b355b72dba ld/testsuite/ld-tic6x/attr-array-4-48.d
+d8497f196fabf1e8a70492d444927f5a ld/testsuite/ld-tic6x/attr-array-4-8.d
+9b6f92d1d8c143983043efc9f058a328 ld/testsuite/ld-tic6x/attr-array-4-816.d
+7825d4fdc3f5cda3097cda6b363dbba0 ld/testsuite/ld-tic6x/attr-array-4.s
+9a8e935f8b0ae45968700829016db6ed ld/testsuite/ld-tic6x/attr-array-416-16.d
+1a61e40c386028757618c7e178f1cf06 ld/testsuite/ld-tic6x/attr-array-416-4.d
+3c0c6ae87c348da908ac5a13ce9a0a83 ld/testsuite/ld-tic6x/attr-array-416-416.d
+44069d969eedda0bdf89efbd5723e5e8 ld/testsuite/ld-tic6x/attr-array-416-48.d
+5d7b52d4fe0840f2b08cd0b67fea67de ld/testsuite/ld-tic6x/attr-array-416-8.d
+d25da551430eb8a3d37951f6bb1eb63c ld/testsuite/ld-tic6x/attr-array-416-816.d
+607d01b7ed543f177c914bf149f75aa8 ld/testsuite/ld-tic6x/attr-array-416.s
+5e9fb086e962d004895a2192be66403e ld/testsuite/ld-tic6x/attr-array-48-16.d
+0cc6e4aba094efb4fcd56e4b6e3045cb ld/testsuite/ld-tic6x/attr-array-48-4.d
+cd694dd4953bfe0b560f4336cf44185e ld/testsuite/ld-tic6x/attr-array-48-416.d
+6a69f5dd066f760013534ef20326bd56 ld/testsuite/ld-tic6x/attr-array-48-48.d
+656bd55abd838fc9553534c478e4ea5a ld/testsuite/ld-tic6x/attr-array-48-8.d
+cdfd6eaf81c6bc30d10edbb29da86c85 ld/testsuite/ld-tic6x/attr-array-48-816.d
+a5d5d29a61d47b5db4ac41c2b996e877 ld/testsuite/ld-tic6x/attr-array-48.s
+e00970b4d00522b59ff5e97fd4110ab2 ld/testsuite/ld-tic6x/attr-array-8-16.d
+bbe0573378e2829db9b4d97c735c6f09 ld/testsuite/ld-tic6x/attr-array-8-4.d
+90f63065325bf42e2aa13c4d8a85342f ld/testsuite/ld-tic6x/attr-array-8-416.d
+23425f82a69a7b4b2b2a6f30bc34b53b ld/testsuite/ld-tic6x/attr-array-8-48.d
+3cdd17b922aadf3c47037b37cb218b09 ld/testsuite/ld-tic6x/attr-array-8-8.d
+c8b24bf510abeb089237e711cc1e6ac7 ld/testsuite/ld-tic6x/attr-array-8-816.d
+be23a53c3c0480fef62fa6e2c93c91d6 ld/testsuite/ld-tic6x/attr-array-8.s
+e0d12c45ebf303530548e01bc79588f1 ld/testsuite/ld-tic6x/attr-array-816-16.d
+3922aa0f799247fc4d5b149d5ace2c50 ld/testsuite/ld-tic6x/attr-array-816-4.d
+b0d60627f1f756ddd194644ef7cbd2a3 ld/testsuite/ld-tic6x/attr-array-816-416.d
+54ca87257305b54e0e9f2a70169ed5e4 ld/testsuite/ld-tic6x/attr-array-816-48.d
+e8508f0060e3e647d744233aa5a83127 ld/testsuite/ld-tic6x/attr-array-816-8.d
+07366a3f3a512fd9a9af1c41cd743d4f ld/testsuite/ld-tic6x/attr-array-816-816.d
+63cc4286156149f61345e9a4d6d0e135 ld/testsuite/ld-tic6x/attr-array-816.s
+701fb32b48aea036671fcead441ad6e9 ld/testsuite/ld-tic6x/attr-compatibility-gnu-gnu.d
+605f6f4df607c64b295d4ef4e9e48d4d ld/testsuite/ld-tic6x/attr-compatibility-gnu-other.d
+e886896ee5d42dc31876cf12dc9d1778 ld/testsuite/ld-tic6x/attr-compatibility-gnu.s
+90af5c84f170125ecac17eb34932266f ld/testsuite/ld-tic6x/attr-compatibility-other-gnu.d
+fdf7dbc1065ac3f9d5934e28a73dca56 ld/testsuite/ld-tic6x/attr-compatibility-other-other.d
+49881bed5369cb91c8adb7d3a77a1c0a ld/testsuite/ld-tic6x/attr-compatibility-other.s
+2450b1a313c0c9aeab2509a72aeb6992 ld/testsuite/ld-tic6x/attr-conformance-10-10.d
+0f7db5d7006c24e55ed21bab45448641 ld/testsuite/ld-tic6x/attr-conformance-10-11.d
+beb12c8149f332043a5dd1a194a82c42 ld/testsuite/ld-tic6x/attr-conformance-10-none.d
+786f3635b154df9fe6c29bab350fd463 ld/testsuite/ld-tic6x/attr-conformance-10.s
+be1111fc9736aa21b54a1dc3f2991fb1 ld/testsuite/ld-tic6x/attr-conformance-11-10.d
+ac50be9f18745ac07e16850dd8804c6b ld/testsuite/ld-tic6x/attr-conformance-11-11.d
+d0535910f89cba304f17106f97efe8f3 ld/testsuite/ld-tic6x/attr-conformance-11-none.d
+3d0661294fa0c18373f613652a91dcde ld/testsuite/ld-tic6x/attr-conformance-11.s
+42de3358520aaf852ffd5d5970d3e190 ld/testsuite/ld-tic6x/attr-conformance-none-10.d
+0c6921058ce49cb26f154edb60512ffc ld/testsuite/ld-tic6x/attr-conformance-none-11.d
+e278efdec59748d93fa819c5273f4c1d ld/testsuite/ld-tic6x/attr-conformance-none-none.d
+5a9361fe09df01504f9bfffcffd8ff16 ld/testsuite/ld-tic6x/attr-conformance-none.s
+28e41d90503bb829beeee240264d61b8 ld/testsuite/ld-tic6x/attr-dsbt-0.s
+e6bdebca3543f33e8ed79b08e36f1ae0 ld/testsuite/ld-tic6x/attr-dsbt-00.d
+67f918b2f20d282dff0ce7eaff39ca21 ld/testsuite/ld-tic6x/attr-dsbt-01.d
+39b5e11207a1ec8b8be558f8234fa15b ld/testsuite/ld-tic6x/attr-dsbt-1.s
+c10015eaead1f3f33f5f757b49758ac3 ld/testsuite/ld-tic6x/attr-dsbt-10.d
+356eab6b0a2625c3736ee30bbd69a525 ld/testsuite/ld-tic6x/attr-dsbt-11.d
+ffac3d7a0022b35e98fb6d940051071f ld/testsuite/ld-tic6x/attr-pic-0.s
+195c1e87a92f45ef578c4c884b6b8330 ld/testsuite/ld-tic6x/attr-pic-00.d
+929109db7540b8d2d1cfea40587e9745 ld/testsuite/ld-tic6x/attr-pic-01.d
+5d079c56a0ee00da96bf9adad4fb16b7 ld/testsuite/ld-tic6x/attr-pic-1.s
+6b4d02c9327924c237eb9dd26c3fea9e ld/testsuite/ld-tic6x/attr-pic-10.d
+ebe3291ae4d1eef2c6a664d7eb93608b ld/testsuite/ld-tic6x/attr-pic-11.d
+9b207ba5eaa5de6c35327e8229301c44 ld/testsuite/ld-tic6x/attr-pid-0.s
+508aae2035e3febb6135380ddbfc3cc5 ld/testsuite/ld-tic6x/attr-pid-00.d
+0bfeecceac3cc39a9613129bcd8479cc ld/testsuite/ld-tic6x/attr-pid-01.d
+e50f7c2ed6d403cbe0064e8f1ea2a868 ld/testsuite/ld-tic6x/attr-pid-02.d
+c2ad71377c6220dbae8be6cc4eacfdaf ld/testsuite/ld-tic6x/attr-pid-1.s
+b5235148c5d3ff2ea79c4468a9cda651 ld/testsuite/ld-tic6x/attr-pid-10.d
+db0edd7dd62ce0186bb5347e7cd30f5d ld/testsuite/ld-tic6x/attr-pid-11.d
+efccc8254d6b34e0a5797e4afd6c4a73 ld/testsuite/ld-tic6x/attr-pid-12.d
+5a539bf30c7b0c32070e73a43d513d2f ld/testsuite/ld-tic6x/attr-pid-2.s
+0fdbab51ef9789e9fd6fb58a5a8e769f ld/testsuite/ld-tic6x/attr-pid-20.d
+0d2ed2afc641129b22979e79ab9b0794 ld/testsuite/ld-tic6x/attr-pid-21.d
+278bb771d688a11dfc504ac1da095072 ld/testsuite/ld-tic6x/attr-pid-22.d
+2716191a442fe258113bb9b2747b8a11 ld/testsuite/ld-tic6x/attr-stack-16-16.d
+2c6708d3d0f53ed6f93ebcf6b08cdb5e ld/testsuite/ld-tic6x/attr-stack-16-8.d
+05d225947aa564bdd18504946e768796 ld/testsuite/ld-tic6x/attr-stack-16-816.d
+7b230e2538e7b7c9b479f328708c1fa2 ld/testsuite/ld-tic6x/attr-stack-16.s
+b7c16a3c69e24b77af8cc04a25568c63 ld/testsuite/ld-tic6x/attr-stack-8-16.d
+74e762204c994bf9c7daa299733a2c12 ld/testsuite/ld-tic6x/attr-stack-8-8.d
+46247074e6474cb3862b290e53ad971f ld/testsuite/ld-tic6x/attr-stack-8-816.d
+3b57dcaa29fb001f6a3acb4cb50d9c03 ld/testsuite/ld-tic6x/attr-stack-8.s
+27c91ae2ca3eeead25545874b2c1dd90 ld/testsuite/ld-tic6x/attr-stack-816-16.d
+9430f0595c0cdce3e960b16a258d5e23 ld/testsuite/ld-tic6x/attr-stack-816-8.d
+a23308722fb5567ec72b0336b7d17055 ld/testsuite/ld-tic6x/attr-stack-816-816.d
+27a7b1ccb09fb00e3d53c4d5c9de9c4e ld/testsuite/ld-tic6x/attr-stack-816.s
+3b1a6ba9d1467cd48b3391ee5ab1d682 ld/testsuite/ld-tic6x/attr-unknown-1.d
+da34c8ed4ae878957b0e96db7e90c71a ld/testsuite/ld-tic6x/attr-unknown-1000-1.s
+2976774dbe83171a934099ff00f47e20 ld/testsuite/ld-tic6x/attr-unknown-1000-2.s
+9414cb9180f54845eee9fcee767d0099 ld/testsuite/ld-tic6x/attr-unknown-1024-1.s
+a917a22a566f5148e60143fdd2f646de ld/testsuite/ld-tic6x/attr-unknown-2.d
+a73f2ffa82ec19174019e75149136ba6 ld/testsuite/ld-tic6x/attr-unknown-3.d
+2f7a2e3c495c3609fbd6c0c1d9a89c4b ld/testsuite/ld-tic6x/attr-unknown-4.d
+f4aee681dd34592fb7b484b0236ef5bc ld/testsuite/ld-tic6x/attr-unknown-5.d
+c9034d478156fc343f2e099e40e1fdef ld/testsuite/ld-tic6x/attr-unknown-54-1.s
+5e9ad35eaa0f045cf5e46a35d5a77ab9 ld/testsuite/ld-tic6x/attr-unknown-55-a.s
+44ef8370faf31736281dd89fdc2b1aa1 ld/testsuite/ld-tic6x/attr-unknown-6.d
+cba4da524c4a94bd8c4b919e7b7a54ac ld/testsuite/ld-tic6x/attr-unknown-7.d
+3b6e96a9d515f5a2b4cf9a7a55e24409 ld/testsuite/ld-tic6x/attr-unknown-71-a.s
+81f955fcdc30386866f74711da5cf9f0 ld/testsuite/ld-tic6x/attr-unknown-71-b.s
+354d6e7ea3615fa9c80c22d33a6c1f1a ld/testsuite/ld-tic6x/attr-wchar-0.s
+a56a93fb1fb2fbf749c42da84307beff ld/testsuite/ld-tic6x/attr-wchar-00.d
+885239ffa9ae00edfc08624e088afbfa ld/testsuite/ld-tic6x/attr-wchar-01.d
+9b506e7d4b1dfa337fb09cf1322d8fe8 ld/testsuite/ld-tic6x/attr-wchar-02.d
+f4d640b4b71b7f6f09646f92e39c5eba ld/testsuite/ld-tic6x/attr-wchar-1.s
+8b214bd1a71846e43080f71f02f4a777 ld/testsuite/ld-tic6x/attr-wchar-10.d
+21ec5b719b6f48a5a851c49c8da4c58d ld/testsuite/ld-tic6x/attr-wchar-11.d
+1afe79866f10a55f794e9a84d195bc01 ld/testsuite/ld-tic6x/attr-wchar-12.d
+371427a7cd66a6a87159187cba7ccef1 ld/testsuite/ld-tic6x/attr-wchar-2.s
+0bb7e3a85adab6dd8d1828cdc614760b ld/testsuite/ld-tic6x/attr-wchar-20.d
+de4224ed1dafc03dbb373f71da912b36 ld/testsuite/ld-tic6x/attr-wchar-21.d
+cd5216a6ee3f5948dd2880f29a52f2fd ld/testsuite/ld-tic6x/attr-wchar-22.d
+1011fd5f483ec81317355c1c557a9670 ld/testsuite/ld-tic6x/common.d
+aaf614bf94d1d62caab60fcd7a483fc6 ld/testsuite/ld-tic6x/common.ld
+fa6ea6c51cd6801c8fa4835d759a2d39 ld/testsuite/ld-tic6x/common.s
+33fbc3e345f78369897dd6fab2382465 ld/testsuite/ld-tic6x/data-reloc-global-rel.d
+8fea45b8f5c430a4a5c9f7874b9a727a ld/testsuite/ld-tic6x/data-reloc-global-rel.s
+0aded1595e05f1a9ded13c758d3455ec ld/testsuite/ld-tic6x/data-reloc-global.d
+c0afbeeb06e26caa4efbb07357b4e68b ld/testsuite/ld-tic6x/data-reloc-global.s
+7543bc1ad4960d1f70db0ea56744584b ld/testsuite/ld-tic6x/data-reloc-local-1.s
+2a9af063994a3e5d821dc497e7276d7d ld/testsuite/ld-tic6x/data-reloc-local-2.s
+5ab068bc7d8f61b401ed34a8a3ab92df ld/testsuite/ld-tic6x/data-reloc-local-r-rel.d
+7cfc3444f62beda302b625330b72f496 ld/testsuite/ld-tic6x/data-reloc-local-r.d
+3534c00a3340865bc29cf4c2548f48d5 ld/testsuite/ld-tic6x/data-reloc-local-rel.d
+5eca75d03c0abd15030f7b33be0a4152 ld/testsuite/ld-tic6x/data-reloc-local.d
+2880f188d82b99d45623121c3d066df7 ld/testsuite/ld-tic6x/discard-unwind.ld
+789ef98e0566260f8d28d7f3f907952a ld/testsuite/ld-tic6x/dsbt-be.ld
+64924d882820c0a879cd164397754f9e ld/testsuite/ld-tic6x/dsbt-index-error.d
+16a80b53f8ee6be4d2bc24d0730ece8d ld/testsuite/ld-tic6x/dsbt-index.d
+b47ee20e6509551cbd89995077d6af97 ld/testsuite/ld-tic6x/dsbt-index.s
+31367c26dbcd2e4a2230f13c68ecbec3 ld/testsuite/ld-tic6x/dsbt-inrange.ld
+ce018c5adb55cd79c07d578d7814268e ld/testsuite/ld-tic6x/dsbt-overflow.ld
+4362bea56b3d89c28f9e266e7ad6cddc ld/testsuite/ld-tic6x/dsbt.ld
+a2254599887554c5e41e2535ff768fdb ld/testsuite/ld-tic6x/ehtype-reloc-1-rel.d
+61a1c6ba089b629ebbdae0b82ea584f1 ld/testsuite/ld-tic6x/ehtype-reloc-1.d
+33aa7605231a5cacc4f4ed0e80466f3a ld/testsuite/ld-tic6x/ehtype-reloc-1.s
+b2d8147fea67ffe57dbf9d62a6b03d1c ld/testsuite/ld-tic6x/generic.ld
+df16d82e20441cad7ed2a5c3115cf298 ld/testsuite/ld-tic6x/got-reloc-global-addend-1.d
+7ce854f84204786ba0119cecf3bbcbcb ld/testsuite/ld-tic6x/got-reloc-global-addend-1.s
+408cb51c863f72f91d69e7b2d22a8b13 ld/testsuite/ld-tic6x/got-reloc-global-addend-2.d
+f7a9b5790f74f89d13de47423765da43 ld/testsuite/ld-tic6x/got-reloc-global-addend-2.s
+d338ad5c93944f759749b39c3c067955 ld/testsuite/ld-tic6x/got-reloc-global.s
+c1929202c643382983c24604c0acab3b ld/testsuite/ld-tic6x/got-reloc-inrange.d
+9723cf61d99cf99852804c60e5914e29 ld/testsuite/ld-tic6x/got-reloc-local-1.s
+9e172205e8b9a6943cf33e04178bbfe4 ld/testsuite/ld-tic6x/got-reloc-local-2.s
+7020fd7c0190636b5b87f613df09595a ld/testsuite/ld-tic6x/got-reloc-local-r.d
+edf23d6269586ce76e7d72a0123e1ba6 ld/testsuite/ld-tic6x/got-reloc-overflow.d
+d664da78e92f42a29b7e372f32d76682 ld/testsuite/ld-tic6x/mvk-reloc-global-rel.d
+0947c5318e69241421e3412e238c1524 ld/testsuite/ld-tic6x/mvk-reloc-global-rel.s
+41b8e12437671a229cc5e9071130ccaf ld/testsuite/ld-tic6x/mvk-reloc-global.d
+537d94935f90baca59527fc7454ae47e ld/testsuite/ld-tic6x/mvk-reloc-global.s
+51ef912513eb1a90dba94ac032206348 ld/testsuite/ld-tic6x/mvk-reloc-local-1-rel.s
+0cf64db7c8c80d4be06a90c8248709f5 ld/testsuite/ld-tic6x/mvk-reloc-local-1.s
+cb834a6428f5a5b17e8ad426615007d9 ld/testsuite/ld-tic6x/mvk-reloc-local-2-rel.s
+48a17611d607a358d1c635cc9e61863f ld/testsuite/ld-tic6x/mvk-reloc-local-2.s
+859328ca90c059a3f896c53b45ce9642 ld/testsuite/ld-tic6x/mvk-reloc-local-r-rel.d
+2a6661150feecda288aebd9986e62a54 ld/testsuite/ld-tic6x/mvk-reloc-local-r.d
+729dcb93d55525932e57cf33b6c87292 ld/testsuite/ld-tic6x/mvk-reloc-local-rel.d
+b97245c038cf8104c43c9e59ceb4fc7c ld/testsuite/ld-tic6x/mvk-reloc-local.d
+6316bbbe723e245116bea366b1e92565 ld/testsuite/ld-tic6x/pcr-reloc.d
+6e1541d8e9790877f4a14d41e35952d9 ld/testsuite/ld-tic6x/pcr-reloc.s
+e9cb5844280604078e73fc7686313723 ld/testsuite/ld-tic6x/pcrel-reloc-global-rel.d
+823c2c691c9b69e50d9797d295b52724 ld/testsuite/ld-tic6x/pcrel-reloc-global.d
+98f2fb54d954e3fbaea9a0407e2e152c ld/testsuite/ld-tic6x/pcrel-reloc-global.s
+b8ca5c31624033f3f34ab9daddf39d4f ld/testsuite/ld-tic6x/pcrel-reloc-local-1.s
+ef1ea1d68bc2d28b733c06a6fa9ca9ba ld/testsuite/ld-tic6x/pcrel-reloc-local-2.s
+1e92207a794d9f947d8187965206eaf9 ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel-rela.d
+7561d47eaea1890d4d563ddd7674a32f ld/testsuite/ld-tic6x/pcrel-reloc-local-r-rel.d
+4e2cb3d5ec6bc665bc1a8462c10bf83f ld/testsuite/ld-tic6x/pcrel-reloc-local-r.d
+d8244bfae014091f2ec49deee3ab3738 ld/testsuite/ld-tic6x/pcrel-reloc-local-rel.d
+eb2797e490905d72604c6deb53127301 ld/testsuite/ld-tic6x/pcrel-reloc-local.d
+02a22274cbf121c8a3bf72341480b9e1 ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-1.d
+5c263460b87cc93fde685056d353ffb4 ld/testsuite/ld-tic6x/reloc-overflow-abs-s16-2.d
+0961aa23957f931be8bdfda5bd8c5abf ld/testsuite/ld-tic6x/reloc-overflow-abs-s16.s
+68b0d21b341d0180ac466a2dbf93a5c3 ld/testsuite/ld-tic6x/reloc-overflow-abs16-1.d
+ddf8f8a3573a4b2f95c92c7c8b192e78 ld/testsuite/ld-tic6x/reloc-overflow-abs16-2.d
+efeb4e75c03171a37a444dcd75801489 ld/testsuite/ld-tic6x/reloc-overflow-abs16.s
+862fc957cde77b31235ff88d2a627b01 ld/testsuite/ld-tic6x/reloc-overflow-abs8-1.d
+241ecc9f1d1c0916e75393651313c670 ld/testsuite/ld-tic6x/reloc-overflow-abs8-2.d
+0b6af80e4bb13f712dc494cdaca78eea ld/testsuite/ld-tic6x/reloc-overflow-abs8.s
+e7d495ccbccf8c38c09f253f167e9b6e ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-1.d
+87d9f31fbca0e117600cc152d03c4f6a ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10-2.d
+a0948ab8df6a5c1f288d88fe19b0905a ld/testsuite/ld-tic6x/reloc-overflow-pcr-s10.s
+9b92d263995f327f72968a90c01aeed4 ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-1.d
+0afde406a50d87f1ab64aef3fa5f5d3a ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12-2.d
+68597677c4b5c279e7d533fe58a988ab ld/testsuite/ld-tic6x/reloc-overflow-pcr-s12.s
+80db5907f425dc8085b2fe7a819a5108 ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-1.d
+213da08f023a5de9377ad1d4f3a1d515 ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21-2.d
+b2ebf6a670f9a191498e3fd0bff15b15 ld/testsuite/ld-tic6x/reloc-overflow-pcr-s21.s
+a30e14936c45357bb591a38fc1bb9681 ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-1.d
+de23aaaf7afde769a90e5a887181bc3e ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7-2.d
+04cb3565676d6c958b937f720dc98fef ld/testsuite/ld-tic6x/reloc-overflow-pcr-s7.s
+c4238f86c0471a7750dd516613b1110e ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-1.d
+bfa1923dd3c44eb30e87029ec332ab6c ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16-2.d
+3c0521528fc06ccb4e157992933a86b7 ld/testsuite/ld-tic6x/reloc-overflow-sbr-s16.s
+40e2d847b0f3480fbeaa9b4744c79817 ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-1.d
+01ef15b94458363c2600be293f1bde39 ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b-2.d
+57286ec40cedfb47d5244590b7f6cde5 ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-b.s
+604196f474b1f2612c19159982cb7348 ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-1.d
+ce330bdd3d5902af146a6eae5f58f84b ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h-2.d
+d8e097b52d0d093376f2561bf30facb8 ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-h.s
+c40bdfab5e944064ef0965a477f34e4c ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-1.d
+d67d7f6a38f096152db2be9b450ccc8c ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w-2.d
+92fdc5018a201aa37b9e2aa2e0703043 ld/testsuite/ld-tic6x/reloc-overflow-sbr-u15-w.s
+f500736e14e627105a01f829a4aa09df ld/testsuite/ld-tic6x/sbr-reloc-global-rel.d
+59653767d6a2a1dba26b429484aab39e ld/testsuite/ld-tic6x/sbr-reloc-global-rel.s
+46c65d33d39108197b6e8518ba19b428 ld/testsuite/ld-tic6x/sbr-reloc-global.d
+e6bbc0afaa76d74d1ff472fd9e11de80 ld/testsuite/ld-tic6x/sbr-reloc-global.s
+cafb4943bf9f15e245fcda7cf895e44b ld/testsuite/ld-tic6x/sbr-reloc-local-1-rel.s
+192bb3e35463eab658966d8e0986fdaf ld/testsuite/ld-tic6x/sbr-reloc-local-1.s
+15159bee3511e902f60dc83a353b72a9 ld/testsuite/ld-tic6x/sbr-reloc-local-2-rel.s
+6a609669201a8ac39e16a8e7dd33b5ec ld/testsuite/ld-tic6x/sbr-reloc-local-2.s
+bfe54ed0fa4772855132a681e10158b8 ld/testsuite/ld-tic6x/sbr-reloc-local-r-rel.d
+a4d4ed6e46ae2863082a9f6de88d6729 ld/testsuite/ld-tic6x/sbr-reloc-local-r.d
+9a160dc098db8e4a9cf72faf7d56f583 ld/testsuite/ld-tic6x/sbr-reloc-local-rel.d
+4e800a563b8dd4f46bf50388c39d1fcf ld/testsuite/ld-tic6x/sbr-reloc-local.d
+c7d209ff13ff769c856a163fd8419482 ld/testsuite/ld-tic6x/sbr.ld
+5a8931d6a711d7c493425f1542a21ce7 ld/testsuite/ld-tic6x/shared-nopic.d
+a1a282f3dd336cb819d5210dc5829622 ld/testsuite/ld-tic6x/shared-nopid.d
+2c49ea81bc2fa5a7a8ce750064bc4864 ld/testsuite/ld-tic6x/shlib-1.dd
+9c926db12a207e70ce319094ef7c7f15 ld/testsuite/ld-tic6x/shlib-1.rd
+ba4c2781f1aae7da41b38a35ad80b413 ld/testsuite/ld-tic6x/shlib-1.s
+534837d58ddf0a6c4ca5d4d9e1d7a850 ld/testsuite/ld-tic6x/shlib-1.sd
+94e947b5a8445420da44ceaa1ba32499 ld/testsuite/ld-tic6x/shlib-1b.dd
+9c926db12a207e70ce319094ef7c7f15 ld/testsuite/ld-tic6x/shlib-1b.rd
+315b9de6afe4b72f2d2f47c370b23a53 ld/testsuite/ld-tic6x/shlib-1b.sd
+22a8336d7f90a3805ab2d7442d6fecc4 ld/testsuite/ld-tic6x/shlib-1r.dd
+9c926db12a207e70ce319094ef7c7f15 ld/testsuite/ld-tic6x/shlib-1r.rd
+9988713ff06d8cecfc28c2119088cca7 ld/testsuite/ld-tic6x/shlib-1r.sd
+c4527e90119335709d1b0c21949263b4 ld/testsuite/ld-tic6x/shlib-1rb.dd
+9c926db12a207e70ce319094ef7c7f15 ld/testsuite/ld-tic6x/shlib-1rb.rd
+19570627a419c6b0cfc6612710233ad6 ld/testsuite/ld-tic6x/shlib-1rb.sd
+e6d71ec8092d8de0f0b2ecce74129061 ld/testsuite/ld-tic6x/shlib-2.s
+825cb3781cf865a84a7d9ddd25edfb7b ld/testsuite/ld-tic6x/shlib-app-1.dd
+9c09ceb4e36bc18874fe14d70fddc865 ld/testsuite/ld-tic6x/shlib-app-1.od
+d2097e515dcb3c5c2ef355d205ffc012 ld/testsuite/ld-tic6x/shlib-app-1.rd
+18be9f62ac9c98015a30527cf96e3b51 ld/testsuite/ld-tic6x/shlib-app-1.s
+358195e0793db1b0395665d0e26d6017 ld/testsuite/ld-tic6x/shlib-app-1.sd
+2ee7cfe401113b0de53189068050ca2e ld/testsuite/ld-tic6x/shlib-app-1b.dd
+7862c745e8dd65709c6993d6d696b566 ld/testsuite/ld-tic6x/shlib-app-1b.od
+1fc458f83e2e4348acc1f3a1fdddf932 ld/testsuite/ld-tic6x/shlib-app-1b.rd
+7c01a3346cc95f8b3a8cebce79c703df ld/testsuite/ld-tic6x/shlib-app-1b.sd
+511fc6118b9630cd65d0825927bc0f2c ld/testsuite/ld-tic6x/shlib-app-1r.dd
+cbf3e063b2f27590c62561db0b8a5b3a ld/testsuite/ld-tic6x/shlib-app-1r.od
+46bfc8f947f196f1bcd22b3e6ea3b53f ld/testsuite/ld-tic6x/shlib-app-1r.rd
+52736411fbb219b0fa608bfea5462432 ld/testsuite/ld-tic6x/shlib-app-1r.s
+e47dbf089371dac82b2ea945238a4264 ld/testsuite/ld-tic6x/shlib-app-1r.sd
+2106d1ff4e16914ddcefb6d657ea00de ld/testsuite/ld-tic6x/shlib-app-1rb.dd
+fd5e5c77f06813387a997ade1a061370 ld/testsuite/ld-tic6x/shlib-app-1rb.od
+2e56ce49ca5d94683a5e442bd4686435 ld/testsuite/ld-tic6x/shlib-app-1rb.rd
+74403975b77d3b4361a3b4295b137b81 ld/testsuite/ld-tic6x/shlib-app-1rb.sd
+1e0ffb0ee7b6cf509b7b0f88513c2542 ld/testsuite/ld-tic6x/shlib-noindex.dd
+260312cb690f6754ac5c8d3162998617 ld/testsuite/ld-tic6x/shlib-noindex.rd
+785fba189962e01b3de350de26e70ab7 ld/testsuite/ld-tic6x/shlib-noindex.sd
+62d0396522a95cf63b22bec16951397b ld/testsuite/ld-tic6x/static-app-1.dd
+dcaf6b12df26c19fd395d81e3e201b7b ld/testsuite/ld-tic6x/static-app-1.od
+5098b7022b265751a682860a902e8af5 ld/testsuite/ld-tic6x/static-app-1.rd
+3bc09e4d8a44306d74257808cabe705d ld/testsuite/ld-tic6x/static-app-1.sd
+8dcb89e19ae6fba3c53ec81267c6c399 ld/testsuite/ld-tic6x/static-app-1b.dd
+c0fde86098efc73ea20b1b29f5e100ac ld/testsuite/ld-tic6x/static-app-1b.od
+5098b7022b265751a682860a902e8af5 ld/testsuite/ld-tic6x/static-app-1b.rd
+b3abfdc8907a4c2e2ed9ad8a20d1c00e ld/testsuite/ld-tic6x/static-app-1b.sd
+a40282934b10bc99ea12c3434564f57a ld/testsuite/ld-tic6x/static-app-1r.dd
+949bea92e1d78bf237a3d4427bcfa2ed ld/testsuite/ld-tic6x/static-app-1r.od
+cadef7ed576d4cf05f8174a6552e7c40 ld/testsuite/ld-tic6x/static-app-1r.rd
+c8af2b7255507d3df4ac1eff73ba9153 ld/testsuite/ld-tic6x/static-app-1r.sd
+5a6414112339a134a300283c090071fe ld/testsuite/ld-tic6x/static-app-1rb.dd
+8043c4e442024b039371f383d3494a20 ld/testsuite/ld-tic6x/static-app-1rb.od
+cadef7ed576d4cf05f8174a6552e7c40 ld/testsuite/ld-tic6x/static-app-1rb.rd
+087a16baa670ac7cadadfdd3828bf545 ld/testsuite/ld-tic6x/static-app-1rb.sd
+46c374ec3fae0a2d599f56d5f8d8f7e3 ld/testsuite/ld-tic6x/tic6x.exp
+5494c33057bd10c5bc47c1510f6968d8 ld/testsuite/ld-tic6x/unwind-1.d
+76e30dbae2eaf3ccace1dde7d557205c ld/testsuite/ld-tic6x/unwind-1.s
+5494c33057bd10c5bc47c1510f6968d8 ld/testsuite/ld-tic6x/unwind-2.d
+5c8efaa157056ec372adcc746b6e3ad3 ld/testsuite/ld-tic6x/unwind-2.s
+c80224aaf4cf91c99e3744b5c23ea6f9 ld/testsuite/ld-tic6x/unwind-3.d
+58266d35ac486fe1184dae719b5a0279 ld/testsuite/ld-tic6x/unwind-3.s
+3776325134f6a06c368eeb47ad29ecfa ld/testsuite/ld-tic6x/unwind-4.d
+bcda87b5776c051590e80e33f8c2912b ld/testsuite/ld-tic6x/unwind-4.s
+9988e93507bcb10423cf8ecd2f1522cf ld/testsuite/ld-tic6x/unwind-5.d
+86f4bc21f549263c0e7fc3c79ade02e7 ld/testsuite/ld-tic6x/unwind-5.s
+694ecdecc1b3700980be429c8d625322 ld/testsuite/ld-tic6x/unwind-6.d
+dd28a8d24d461e137e251a18225d37e5 ld/testsuite/ld-tic6x/unwind.ld
+c61f908e229f41f73556fbf66c58eaaa ld/testsuite/ld-tic6x/weak-be.d
+adb17e705ba8c21190b76ac749fa605a ld/testsuite/ld-tic6x/weak-data.d
+7c312ff79166b1e46786bd9a69bab054 ld/testsuite/ld-tic6x/weak.d
+365596105c86ec044029367238a9a6ac ld/testsuite/ld-tic6x/weak.s
+d94104e66d3658e489574c123c4ddf87 ld/testsuite/ld-tilegx/external.s
+ae6c82a20eb6419a56c445af79168199 ld/testsuite/ld-tilegx/reloc.d
+4452ac066a7386a9e85937b209d6b062 ld/testsuite/ld-tilegx/reloc.s
+bd0588f3e1ab2827f5fb6a914a4d0c59 ld/testsuite/ld-tilegx/tilegx.exp
+948e95e71afa6e4d3d074f44816ecc40 ld/testsuite/ld-tilepro/external.s
+bd3a4811eee54388e211bb94fc012130 ld/testsuite/ld-tilepro/reloc.d
+0a36ef1e9b323ee31dc60e5f4186f625 ld/testsuite/ld-tilepro/reloc.s
+5fd5b0f48b093ef694cf1bec5c5b2c95 ld/testsuite/ld-tilepro/tilepro.exp
+f68dabffc8ec3de820f924c2ed2c8f14 ld/testsuite/ld-undefined/dummy.s
+2cab6ca246439db5767314636708f4a6 ld/testsuite/ld-undefined/entry-1.d
+e97dbb10a457815908608a1bcfe1bb9a ld/testsuite/ld-undefined/entry-2.d
+7ed08e64ed6ef0a7a0b2398921233bc7 ld/testsuite/ld-undefined/entry-3.d
+46d3ba31998cc4fa75342fb7694c7004 ld/testsuite/ld-undefined/entry-4.d
+0ba68826a2effe4beeedf04d422533db ld/testsuite/ld-undefined/entry-5.d
+3a0153f11f590f1f89778082ee7c726c ld/testsuite/ld-undefined/entry-6.d
+5b546b08a024613ce3ebbcc5df960d1b ld/testsuite/ld-undefined/entry-7.d
+48f8ad0c56fe32ee613a6203fb3d330d ld/testsuite/ld-undefined/entry.exp
+0aa89fa11067e1cf8802e998bf394ec0 ld/testsuite/ld-undefined/entry.s
+b619c6e42cb950ef08a2be4baed7e558 ld/testsuite/ld-undefined/undefined.c
+48720358775cc5a0e0c9b6d98bdf3849 ld/testsuite/ld-undefined/undefined.exp
+06823040cd3afcca3a129392190cd666 ld/testsuite/ld-undefined/weak-undef.exp
+7453216dfa4d1a7223a1d7b7064c1242 ld/testsuite/ld-undefined/weak-undef.s
+ff2b7f892a6ef004c2076f2bab575ec0 ld/testsuite/ld-undefined/weak-undef.t
+6ef80b197e0a25a9ebde7d78d531cc57 ld/testsuite/ld-unique/unique.exp
+29d5f69aca84db5516a20b67b284b7ea ld/testsuite/ld-unique/unique.s
+e619cad10e65613353ffa73b0d5171e5 ld/testsuite/ld-unique/unique_empty.s
+b0c9c3a174140a79739bb028541bac8d ld/testsuite/ld-unique/unique_shared.s
+0a7542c4cd6da2ebfeb36c7394f7e9bd ld/testsuite/ld-v850/split-lo16.d
+ed0ddb6caa20106cbc5b60ab5e9aac8e ld/testsuite/ld-v850/split-lo16.ld
+087975db2e2095342de4570a8829f4bf ld/testsuite/ld-v850/split-lo16.s
+cbdd08a087899b24d673cccf878f3be9 ld/testsuite/ld-v850/v850.exp
+a3dd5e83356444e20dfff2b6986f9701 ld/testsuite/ld-versados/t1-1.ro
+20fa39afdcf19846ef54b8c8a63c09fa ld/testsuite/ld-versados/t1-2.ro
+750043b1377753643d66f2ea010d1d64 ld/testsuite/ld-versados/t1.ld
+1ea1a397873490e5a225282b08911b79 ld/testsuite/ld-versados/t1.ook
+b73a148ff92b3b9f50118dedddc8e9aa ld/testsuite/ld-versados/t2-1.ro
+6521d61c4bf4f500cb868ded9a47044e ld/testsuite/ld-versados/t2-2.ro
+ed2b6b448335acf507dc34b5a01710d8 ld/testsuite/ld-versados/t2-3.ro
+7020c6c2928c89ca798f517226862f1c ld/testsuite/ld-versados/t2.ld
+fb1e9ddf26ad5af0d34950d762f68ed9 ld/testsuite/ld-versados/t2.ook
+3415c5263545bdf01296e35ee86fecfa ld/testsuite/ld-versados/versados.exp
+0ac6d96980ebb6b81c69774ffc697c63 ld/testsuite/ld-vxworks/plt-mips1.d
+357d34584d0ce544d104968913d82663 ld/testsuite/ld-vxworks/plt-mips1.s
+0ceeb13aa35a9b3f811619f9e81b008c ld/testsuite/ld-vxworks/rpath-1.d
+926d3c71162f104f484e498814083cd8 ld/testsuite/ld-vxworks/rpath-1.s
+158dba230909371ac9a0a10d47d5dffd ld/testsuite/ld-vxworks/tls-1.d
+029facb94904524927ba5651a93ff46a ld/testsuite/ld-vxworks/tls-1.s
+266b4c711778e9a25f4e7e1de3ba1c8a ld/testsuite/ld-vxworks/tls-2.d
+029facb94904524927ba5651a93ff46a ld/testsuite/ld-vxworks/tls-2.s
+d37080e69a6df409c1d42f3cf866fd19 ld/testsuite/ld-vxworks/tls-3.d
+6d47989df8b18f1c4fc1a3f75da74605 ld/testsuite/ld-vxworks/tls-3.s
+502197b67c0367179cc75e2c5729d119 ld/testsuite/ld-vxworks/vxworks.exp
+9a6d2be9e1eec47f9eae75552f420bbf ld/testsuite/ld-x86-64/abs-k1om.d
+151f4eb16cb1586fe6ede9ac93f9614e ld/testsuite/ld-x86-64/abs-l1om.d
+cef5f0e760808d3d311df39bc5c74a7d ld/testsuite/ld-x86-64/abs.d
+91a199ecf6afe1be369939ed9c9e78d2 ld/testsuite/ld-x86-64/compressed1.d
+f05168212b4b926d40f433c53fba8a2b ld/testsuite/ld-x86-64/compressed1.s
+babdbe781c8d5be6c3dbbff7d988aef8 ld/testsuite/ld-x86-64/discarded1.d
+1bfcc1f21b66eca2b04e589e1e4d8d78 ld/testsuite/ld-x86-64/discarded1.s
+932839e2d4e600dcdc966010e4965a31 ld/testsuite/ld-x86-64/discarded1.t
+8374b35f68412379bade5bfa6ce108b2 ld/testsuite/ld-x86-64/dummy.s
+64f2c2f7de3c7a2d635a5cb20953a723 ld/testsuite/ld-x86-64/dwarfreloc.exp
+0fa0abb32b3a08f7d4064c80ea7b2dfc ld/testsuite/ld-x86-64/dwarfreloc.rd
+7f5acf37270de8f8b40fabdf0012b323 ld/testsuite/ld-x86-64/dwarfreloc1.s
+9ef00e83851b860927383972f8a30bba ld/testsuite/ld-x86-64/dwarfreloc2.s
+9b4555015075d610d1ab4a1d5b0a8365 ld/testsuite/ld-x86-64/foo.s
+8aee9f93efb12b66efb79d5f29dac642 ld/testsuite/ld-x86-64/hidden1.d
+4e2a98726d8bfdb8233e273a0eac2a98 ld/testsuite/ld-x86-64/hidden1.s
+62daaced3e457349cb516b978b27d7d4 ld/testsuite/ld-x86-64/hidden2.d
+ecab80f3eb47cc5bc5871e947f9b395e ld/testsuite/ld-x86-64/hidden2.s
+8aee9f93efb12b66efb79d5f29dac642 ld/testsuite/ld-x86-64/hidden3.d
+567392b63521a6cd13dda8dd82746f26 ld/testsuite/ld-x86-64/hidden3.s
+1eccb618d95e721641240b74ed62c642 ld/testsuite/ld-x86-64/ia32-1.d
+e1af01c2db8c562a357a68a604928342 ld/testsuite/ld-x86-64/ia32-2.d
+38b012e85b1add2a7c3212cbd0d79a3b ld/testsuite/ld-x86-64/ia32-3.d
+b101982f5a86318d2375f4f4da017759 ld/testsuite/ld-x86-64/ilp32-1.d
+268bc1942a1e755cd3c654d0e508b92f ld/testsuite/ld-x86-64/ilp32-2.d
+bcb275308c6dfdac7471864d730d5c52 ld/testsuite/ld-x86-64/ilp32-3.d
+651d8691eecc472a06e578e4beee5864 ld/testsuite/ld-x86-64/ilp32-4.d
+d7079a3fd5a0a111ba2ea5dd55616d3d ld/testsuite/ld-x86-64/ilp32-5.d
+7954dde5079359f5cd824b28d50a9196 ld/testsuite/ld-x86-64/ilp32-5.s
+8b506013901cb32409281cd64fb392cb ld/testsuite/ld-x86-64/ilp32-6.d
+ec4b4e4478b21427988b01b59820265e ld/testsuite/ld-x86-64/ilp32-6.s
+8b506013901cb32409281cd64fb392cb ld/testsuite/ld-x86-64/ilp32-7.d
+76ecf90c40aca9fca8981605664c59d5 ld/testsuite/ld-x86-64/ilp32-7.s
+bf21ba63bd85e5adf70cae5b669acbf5 ld/testsuite/ld-x86-64/ilp32-8.d
+8ccd01fe31d327e874036b52261bd457 ld/testsuite/ld-x86-64/ilp32-8.s
+da5feba68009b050645270242e4012bb ld/testsuite/ld-x86-64/ilp32-9.d
+c5f029cfbe1c37c21600a3f33317e23c ld/testsuite/ld-x86-64/ilp32-9.s
+146038f22f812e2e9950a251d511ecda ld/testsuite/ld-x86-64/line.exp
+8b905a91280feb6457ea181fd73a323e ld/testsuite/ld-x86-64/lp64-1.d
+d420a618c8e584b2e5f144dc4a758b26 ld/testsuite/ld-x86-64/lp64-2.d
+4f05291bce52713286c80fdd0addaec0 ld/testsuite/ld-x86-64/lp64-3.d
+d2cc20922f8c13552d8408937c0dc359 ld/testsuite/ld-x86-64/mixed1a.s
+4d0dbcb04007c40051f880f7284a923c ld/testsuite/ld-x86-64/mixed1b.s
+abdcc69d97f8ebee73023595bce7025b ld/testsuite/ld-x86-64/mixed2a.s
+798ce3b5d7f9cb57bb5e96b3b872b894 ld/testsuite/ld-x86-64/mixed2b.s
+a956e939a802d200c7d34d52a64a10ca ld/testsuite/ld-x86-64/nogot1.d
+b87c72722f3341ed9b3757e163aedca4 ld/testsuite/ld-x86-64/nogot1.s
+14e17be79014d34039412c205d75a578 ld/testsuite/ld-x86-64/nogot2.d
+648f81bd49c5e890089548cbd33b3da4 ld/testsuite/ld-x86-64/nogot2.s
+af0ad14af8840e67e77697fb7d8be877 ld/testsuite/ld-x86-64/pcrel16.d
+21deaf5784d704c09916457834ccb87a ld/testsuite/ld-x86-64/pcrel8.d
+0b512eff08b19c348d6537b2c39f78cd ld/testsuite/ld-x86-64/pr12718.d
+f2aa8181f8bb6e72317ba9cf91579fa6 ld/testsuite/ld-x86-64/pr12718.s
+765aaf0af5e659d562db0e513f9f3fc1 ld/testsuite/ld-x86-64/pr12921.d
+9bc8273e473647c31df4d698250c1af1 ld/testsuite/ld-x86-64/pr12921.s
+ae9d4260c075a5b000efe2347793b99e ld/testsuite/ld-x86-64/pr13082-1.s
+827689a23417745c409460a8e2f2e7c5 ld/testsuite/ld-x86-64/pr13082-1a.d
+32f55c0d58b44ead4c720f62c8cbe64e ld/testsuite/ld-x86-64/pr13082-1b.d
+fb16aff9e960af23796cfca20399c98b ld/testsuite/ld-x86-64/pr13082-2.s
+9a6519aa5b01812fe791fca2b4175faf ld/testsuite/ld-x86-64/pr13082-2a.d
+73452a50c642ee8c9d5d855cbca7b27f ld/testsuite/ld-x86-64/pr13082-2b.d
+6b1f8ceeebdaa745f4e0ae66ee8a1376 ld/testsuite/ld-x86-64/pr13082-3.s
+644a943e0c220c3d0d4e8fdaacead4b1 ld/testsuite/ld-x86-64/pr13082-3a.d
+f4af2676d566c059ed73c98171df7137 ld/testsuite/ld-x86-64/pr13082-3b.d
+a1b3726a623a9e74441e9582fdcd9e46 ld/testsuite/ld-x86-64/pr13082-4.s
+3aa77baad0c9bfe54851369dfbbb6fbe ld/testsuite/ld-x86-64/pr13082-4a.d
+410dba88987e77744c3308292d1cefb9 ld/testsuite/ld-x86-64/pr13082-4b.d
+efc1aac9c36a384bba00eee40d3d59ed ld/testsuite/ld-x86-64/pr13082-5.s
+97a42d3b47757ae5be6874e3ef88fd9b ld/testsuite/ld-x86-64/pr13082-5a.d
+0cb0e2c204b4698305726329007e19cc ld/testsuite/ld-x86-64/pr13082-5b.d
+2a7869db05a1555203636430f48fc788 ld/testsuite/ld-x86-64/pr13082-6.s
+dfb5e1f1422ba64d52cc62b45b04c97d ld/testsuite/ld-x86-64/pr13082-6a.d
+3bf4af4b7fc51ffdd1caa35e99d98f1e ld/testsuite/ld-x86-64/pr13082-6b.d
+5a16c8b33f7fc14a778a75390211d675 ld/testsuite/ld-x86-64/protected1.d
+72464b10c9ddf08d601e6e1981160a76 ld/testsuite/ld-x86-64/protected1.s
+799b5e6cfeb966e6f8ab5e471149673f ld/testsuite/ld-x86-64/protected2-k1om.d
+bca876ebf90770ff539ec16381261433 ld/testsuite/ld-x86-64/protected2-l1om.d
+78fffea07873d857eb20ff893f9b5514 ld/testsuite/ld-x86-64/protected2.d
+3c225f378aa9175db095f949d3da69ee ld/testsuite/ld-x86-64/protected2.s
+27707fa0dff0b02118f4264682383999 ld/testsuite/ld-x86-64/protected3-k1om.d
+56d19515835d0e1768a8bdbad75b69e7 ld/testsuite/ld-x86-64/protected3-l1om.d
+7ec2436cba802c53cccdb664a1ec2d7a ld/testsuite/ld-x86-64/protected3.d
+b048982979e3a6bf526c3d15561c82dd ld/testsuite/ld-x86-64/protected3.s
+85c94ea018000b40db5b1d5f4918e69f ld/testsuite/ld-x86-64/simple.c
+124c1bc62998388d007a06a440c61b1a ld/testsuite/ld-x86-64/split-by-file.rd
+a25bbb47f09f886630069fa0ede05e01 ld/testsuite/ld-x86-64/split-by-file1.s
+092551c720d9237b2142c771156f85bc ld/testsuite/ld-x86-64/split-by-file2.s
+603c560dc71d0192f0a9f4ffb1ed9f5e ld/testsuite/ld-x86-64/start.s
+de7c811fe61d3d4236ccc56a2ac59b4b ld/testsuite/ld-x86-64/tlsbin.dd
+7624337f6af913251d93230cd6039df3 ld/testsuite/ld-x86-64/tlsbin.rd
+075abf636588564a63ffebddb4678817 ld/testsuite/ld-x86-64/tlsbin.s
+f61a7f8b7d85d67804e36cd0d3058fe3 ld/testsuite/ld-x86-64/tlsbin.sd
+cdb541667d6d911d35375bf3330da611 ld/testsuite/ld-x86-64/tlsbin.td
+3d672e3839bbd66e086ca684f48af482 ld/testsuite/ld-x86-64/tlsbindesc.dd
+18e9de9ffe6472d4be5936c2de7d7274 ld/testsuite/ld-x86-64/tlsbindesc.rd
+28cd3b7eae777449d9f558eb5822d108 ld/testsuite/ld-x86-64/tlsbindesc.s
+6f53084d69c6d7685024742940045abf ld/testsuite/ld-x86-64/tlsbindesc.sd
+a1fd1ad23666d0e4fa820ff948af0c3e ld/testsuite/ld-x86-64/tlsbindesc.td
+5f275de647d9dd02072a59dd6c4dd2cf ld/testsuite/ld-x86-64/tlsbinpic.s
+fd6b4b2c38dafc8b42436dea4454b440 ld/testsuite/ld-x86-64/tlsdesc.dd
+b0ef250d81116456b7baf3ce9a3d3c5b ld/testsuite/ld-x86-64/tlsdesc.pd
+2af7661e23605750c2c876c7dfdc6275 ld/testsuite/ld-x86-64/tlsdesc.rd
+a247554344f5bad8c449d63434ac20e5 ld/testsuite/ld-x86-64/tlsdesc.s
+6d5ccbf7a53882f245ede0f0ad0724b5 ld/testsuite/ld-x86-64/tlsdesc.sd
+012b54770105b042c8227783f5520292 ld/testsuite/ld-x86-64/tlsdesc.td
+62d4929ce74fe4c87164c5548e80d3cf ld/testsuite/ld-x86-64/tlsg.s
+6ae3f3a98488e4cba405bf68cc7b742a ld/testsuite/ld-x86-64/tlsg.sd
+63883ee90e3d4bc6bb43145575b8d379 ld/testsuite/ld-x86-64/tlsgd1.dd
+40f13ae560cff413e2572c65c56318f9 ld/testsuite/ld-x86-64/tlsgd1.s
+5b7629fd8f67ca705fea4869a164779c ld/testsuite/ld-x86-64/tlsgd2.d
+f0cdbf9cc3ba566313b4bc11de68a57d ld/testsuite/ld-x86-64/tlsgd2.s
+5c83de12625c5c81b84b67dbc775e8c2 ld/testsuite/ld-x86-64/tlsgd3.d
+1c1c53433eb7999c0e421cfcdd4f3448 ld/testsuite/ld-x86-64/tlsgd3.s
+ad977355db53c511e88846e4014a9f7e ld/testsuite/ld-x86-64/tlsgd4.dd
+934257c43f7852f50a49aa497e98cd34 ld/testsuite/ld-x86-64/tlsgd4.s
+4aa08273fde18fe9f922bb53e1fff0cb ld/testsuite/ld-x86-64/tlsgd5.dd
+1be55a9c7f6158dfe9dccd5bda9cead2 ld/testsuite/ld-x86-64/tlsgd5a.s
+473c03031e2c7147bdc54b0b4c7f0b72 ld/testsuite/ld-x86-64/tlsgd5b.s
+ed7c309fc96ff106114984ab2ea3987a ld/testsuite/ld-x86-64/tlsgd6.dd
+3e764b037d14a88f8038f643a6838d1b ld/testsuite/ld-x86-64/tlsgd6a.s
+473c03031e2c7147bdc54b0b4c7f0b72 ld/testsuite/ld-x86-64/tlsgd6b.s
+c162fb4f43877c4341fc5b070390ab07 ld/testsuite/ld-x86-64/tlsgdesc.dd
+e51142d067f71f748e2d50482644491d ld/testsuite/ld-x86-64/tlsgdesc.rd
+210b96ca733b3982a77955970b126e5f ld/testsuite/ld-x86-64/tlsgdesc.s
+7080a1e97e7d1681e5a1e9da28ccc65e ld/testsuite/ld-x86-64/tlsie1.dd
+4732b2d3b38a90890896eccd0356a0f7 ld/testsuite/ld-x86-64/tlsie1.s
+e9d4de113c5b49a3bdc4cf5e3ba9e5a7 ld/testsuite/ld-x86-64/tlsie2.d
+d9240622cc20d0919532be278ad7402e ld/testsuite/ld-x86-64/tlsie2.s
+e5bceeea7613b8d9c157210660cadcb1 ld/testsuite/ld-x86-64/tlsie3.d
+c7b4057f12b94f3abf30c4f84a54854e ld/testsuite/ld-x86-64/tlsie3.s
+9ce9e68f90fbdcca31155898a8108198 ld/testsuite/ld-x86-64/tlsie4.dd
+a37c4da98dcec520ab5444678bcd3456 ld/testsuite/ld-x86-64/tlsie4.s
+7b60a69b4c2ca65fccc94ef6cc2be2bb ld/testsuite/ld-x86-64/tlsld1.dd
+0556743c96e0ca791f9e7cf0d8afaf39 ld/testsuite/ld-x86-64/tlsld1.s
+48210a07f215c11eed171deaa6001619 ld/testsuite/ld-x86-64/tlsld2.dd
+0556743c96e0ca791f9e7cf0d8afaf39 ld/testsuite/ld-x86-64/tlsld2.s
+bddcc18e778b7c77d37c46fd8e45378b ld/testsuite/ld-x86-64/tlsle1.d
+263b1c7934263353824c403da30eb39f ld/testsuite/ld-x86-64/tlsle1.s
+8c2ec5a661ed74565c24b65f22a230ad ld/testsuite/ld-x86-64/tlslib.s
+5f50aa593bd6af28fd745c7332ba9401 ld/testsuite/ld-x86-64/tlspic.dd
+21498fa99df841710b17f18bea0547d2 ld/testsuite/ld-x86-64/tlspic.rd
+38e156962136c462ac355e9bab80be2c ld/testsuite/ld-x86-64/tlspic.sd
+550560267d7a0f6a31490ee4c9c7603f ld/testsuite/ld-x86-64/tlspic.td
+ee7691553eed047cd215df33232e3a67 ld/testsuite/ld-x86-64/tlspic1.s
+1be6d8e1547c710f7bc12028c6522832 ld/testsuite/ld-x86-64/tlspic2.s
+5bbecf9422892b0498f9640c06054e11 ld/testsuite/ld-x86-64/tlspie1.d
+86983dbba838659fbfb4cbdfdb7c0324 ld/testsuite/ld-x86-64/tlspie1.s
+f7cb6b2e0f6ec97f125fe2d8345e0263 ld/testsuite/ld-x86-64/undefined.s
+4a99ed2c60633e8c95293670abbb1d6a ld/testsuite/ld-x86-64/unique1.d
+e0d78f0f8725bde6333bcd56ccb083b8 ld/testsuite/ld-x86-64/unique1.s
+6c5efb94140f6bea6d1e05ddd22d9ce3 ld/testsuite/ld-x86-64/x86-64-x32.rd
+53bc305eeb616ce59cdd20b57de52534 ld/testsuite/ld-x86-64/x86-64.exp
+6f577583952be3de543260d5fb8bbb16 ld/testsuite/ld-xc16x/absrel.d
+3998ca79d045f299d12bbd0cf1e6205f ld/testsuite/ld-xc16x/absrel.s
+01a0b5ff12180f56fd3e59aca1729442 ld/testsuite/ld-xc16x/offset.d
+1f6dbcccb182d6b602c350c41af6da1b ld/testsuite/ld-xc16x/offset.s
+c79d7034cdc00b1ef5f6063eb95f5c0c ld/testsuite/ld-xc16x/pcreloc.d
+7aefa0a8f34a16164d08456ec76b6fc3 ld/testsuite/ld-xc16x/pcreloc.s
+049fad93eab7776029ac7ce488ac7ea0 ld/testsuite/ld-xc16x/pcrelocl.d
+7cdd42697f1d7b6cc687e770974595e3 ld/testsuite/ld-xc16x/xc16x.exp
+c672c9391c0476202146864913baf1cf ld/testsuite/ld-xstormy16/external.s
+3105964d5d4b7fb1c6827105fc30d4f6 ld/testsuite/ld-xstormy16/pcrel.d
+a8dbf5f9838a94e3e1d6bb3ac1ffb031 ld/testsuite/ld-xstormy16/pcrel.s
+73ab4af181f6f013c8f6a9ec508d4884 ld/testsuite/ld-xstormy16/xstormy16.exp
+9832dc58c2691b416bbfb53c352fc610 ld/testsuite/ld-xtensa/coalesce.exp
+f242f65208286ce6c777e52159a52efe ld/testsuite/ld-xtensa/coalesce.t
+86df88ae4915f743772325ebdb29c512 ld/testsuite/ld-xtensa/coalesce1.s
+ebdcd6e72a4579e5cecbc5bea6ff3410 ld/testsuite/ld-xtensa/coalesce2.s
+3de3229a4a332e3e139cb39f0eeb068d ld/testsuite/ld-xtensa/lcall.exp
+f242f65208286ce6c777e52159a52efe ld/testsuite/ld-xtensa/lcall.t
+94cc8713eb0fe35038d64fdd1b12cb88 ld/testsuite/ld-xtensa/lcall1.s
+f3bb78e2bbd6bac90e08899f09dab316 ld/testsuite/ld-xtensa/lcall2.s
+ec444c64504b1bc179bc2dad83c7a2ba ld/testsuite/ld-xtensa/tlsbin.dd
+222173cad9ca2b0795c7a472c79b73cc ld/testsuite/ld-xtensa/tlsbin.rd
+2585ef8283af0fca55d9284792e5ec0a ld/testsuite/ld-xtensa/tlsbin.s
+19584892dff40a9a565a9368496b4172 ld/testsuite/ld-xtensa/tlsbin.sd
+bc01f211012e4da49bef7d1f6fe1fd60 ld/testsuite/ld-xtensa/tlsbin.td
+451eacc338064e33179318c085a7c7a1 ld/testsuite/ld-xtensa/tlslib.s
+ebcd7d779b67f5256d84598e2a1c34d7 ld/testsuite/ld-xtensa/tlspic.dd
+6c72b6411a86d2641e0b997d3c099454 ld/testsuite/ld-xtensa/tlspic.rd
+9a499e239e3af1548836ce06df663d4d ld/testsuite/ld-xtensa/tlspic.sd
+af6ef4c448967808937e6f2fcd6fa1f0 ld/testsuite/ld-xtensa/tlspic.td
+4708405ca88b87cf00e84d231c449689 ld/testsuite/ld-xtensa/tlspic1.s
+74dc12cdbe5ac4b2c634e5dc8b770127 ld/testsuite/ld-xtensa/tlspic2.s
+2f4d300c622bfb7444899f021a279fae ld/testsuite/ld-xtensa/xtensa.exp
+dcac57a49ba303c93e673658c261be6e ld/testsuite/lib/ld-lib.exp
+01627b664c7e61ab5dc202bb72913e0a ld/TODO
+99c2e5e712b990ee07be10f53e41f3fb libiberty/.gitignore
+8797cb1a6faa84f3c7fe3d12164a4b13 libiberty/_doprnt.c
+9e0fa3abcd04ba6712cbd50ec7ea1bb8 libiberty/aclocal.m4
+e60c2e7c5dcdd19510066c13f1a527d3 libiberty/alloca.c
+e5732ad77f36bdaa7590cb9e822b78ab libiberty/argv.c
+1ff1c82c53060dceecc901cf0b63c950 libiberty/asprintf.c
+a16ea056b95fd70c21333db132da14ff libiberty/at-file.texi
+c34119797a13e71989722851c14b711b libiberty/atexit.c
+ab8d4cd68aa4892e2318d2c71864cc56 libiberty/basename.c
+17a1f1d7f5acf01ce922d98210067542 libiberty/bcmp.c
+a707d2e5daa09d204d4441e8713048ca libiberty/bcopy.c
+76888d9a6ed315d1e12029016d96672e libiberty/bsearch.c
+4a0acb9356a52f3bcfd67efa26997b58 libiberty/bzero.c
+5bd055836a440051d7c561a9f591ecbb libiberty/calloc.c
+99353c8570e7b21e3e74461782ae7c8b libiberty/ChangeLog
+c67a6e0ba850ef5fb86522ddb2e87e5c libiberty/choose-temp.c
+a8391a5d7431a4e11f61be41386a3356 libiberty/clock.c
+5d5d14621573984e4b94b1ceb9299fc3 libiberty/concat.c
+4004fdcde347fda58406b4b84a995c66 libiberty/config/mh-aix
+7b65854f594c84e80295173de277b3dc libiberty/config/mh-cxux7
+044204f5b4bcac5eae2face0602129ae libiberty/config/mh-fbsd21
+904bdcd9daf97fa55a9ca8901ffe7435 libiberty/config/mh-openedition
+38e76da568ab25260754fdb9d5080513 libiberty/config/mh-windows
+83565a31c7f296b3013daf383cd03ee9 libiberty/config.h-vms
+44d9a67ca74e0a4744f9c751d345b849 libiberty/config.in
+b112c3ae14be9d020a1cdd185bcc9099 libiberty/configure
+5d9a5592c3884692916e7456817c0a72 libiberty/configure.ac
+5824bd0f9be9f4fa74bb3bdc7fd9431c libiberty/configure.com
+a8959f1d1758eb14819753023f89d199 libiberty/copying-lib.texi
+a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB
+fe053283d3559af3ec5cac45f8ead009 libiberty/copysign.c
+38c8a79391576c3fb3d7a0578505a598 libiberty/cp-demangle.c
+4aaee5f46bac9e50f23fabebe62cded5 libiberty/cp-demangle.h
+6af921a6efcb5621c06ff9b2a8769b01 libiberty/cp-demint.c
+37193048466b1b0934121905ff3f534f libiberty/cplus-dem.c
+7c69a6c6a36925e0ca6f068473e6d858 libiberty/crc32.c
+d31a55379aa2dc43eb6858a26c4a6c76 libiberty/dyn-string.c
+d7cc74911527c672bba716c9a793ed94 libiberty/fdmatch.c
+0c2635175b975823b40980974dfc2110 libiberty/ffs.c
+14fdd881914e69080c65de413c7b6ecd libiberty/fibheap.c
+1c0244e5edb10602e11b34716b1edff7 libiberty/filename_cmp.c
+c324184243607652409c3844f262f040 libiberty/floatformat.c
+aa0f79d836563e6a0cd92ab678b07aaf libiberty/fnmatch.c
+145debe2f28f470878f95b1255f5537c libiberty/fnmatch.txh
+5bc3cf9b5b331ec27790ba0599f2875f libiberty/fopen_unlocked.c
+dd3cd06b4589a4a3b3ea8b7a14bedb8d libiberty/functions.texi
+8b8ae14c1fbedeb88355f09bc7a7ecfc libiberty/gather-docs
+754c5ef42440c5d1b62146174a6636e4 libiberty/getcwd.c
+eb843075f87d187630f6a3d849b93e64 libiberty/getopt.c
+7c932073da197aa34eb3383960a114fd libiberty/getopt1.c
+bb0043d92c716691cc17b80c845c336b libiberty/getpagesize.c
+5e520e600636a692f52e62dcfb01921c libiberty/getpwd.c
+5c0eb869d31323424849c0aab9247722 libiberty/getruntime.c
+0c70ad1e35bb090b52ed593865025741 libiberty/gettimeofday.c
+171e310576a238212ac4b6ac6ec3ccaa libiberty/hashtab.c
+048d9004ba3a2badb7abe6e0afd8f663 libiberty/hex.c
+4d485e7735be430b22aea0abb4938e26 libiberty/index.c
+9d0471286f21d9027bbf1b7c67b87856 libiberty/insque.c
+5b4506ce60bb3446f083b9542af3fce0 libiberty/lbasename.c
+9905223327acad708d5b0a28e8047cdc libiberty/libiberty.texi
+2c56f9552603480f87b7136972894128 libiberty/lrealpath.c
+fe4e25fb7df7cacdc921eaf39ce595af libiberty/maint-tool
+661dd1cfd866f16a426aafedaae4523a libiberty/make-relative-prefix.c
+0172f6488e44155e35d94e3f2c5c3c5c libiberty/make-temp-file.c
+4e7c755ba4f1af30dd32d8ecde424293 libiberty/Makefile.in
+379561229f99437be05ede87fbcf8533 libiberty/makefile.vms
+87d1087d1cd8bdec7e57bcdf147a9cc5 libiberty/md5.c
+de9bd20436bf2cb64d8c374c110ce315 libiberty/memchr.c
+33320d312ab390ca0eb5c43c9e349d57 libiberty/memcmp.c
+c90c2f09bdcbd65b4732a4be25a56d12 libiberty/memcpy.c
+abdf0787024ad239a36f6c8377a8c29e libiberty/memmem.c
+99bfeaeb76e8e725dd8766f33810ccb1 libiberty/memmove.c
+ac4d94d7fedc8abaa75b57da06101b03 libiberty/mempcpy.c
+c44adc5ac09bdc782a8e13086ffa9367 libiberty/memset.c
+3c555b2960666ff51ab2faa4fb9ed0d5 libiberty/mkstemps.c
+7897e43bedd2def4beb6eb73003efa68 libiberty/msdos.c
+684ab2f5de6b46501aac279f2bd2f92b libiberty/objalloc.c
+ab0f43a6703e0705b4e8bac274635b56 libiberty/obstack.c
+100e19ca9daa12d591302f5292108378 libiberty/obstacks.texi
+f4ec5461a2fdb28214092b95b39ef186 libiberty/partition.c
+96a77c36aeb901544290055a6c9afd0f libiberty/pex-common.c
+91d9c98c4feb994b1f62f5fd7124fe41 libiberty/pex-common.h
+9c9f332011572cd3bc1b606c878bd707 libiberty/pex-djgpp.c
+581ca82c700722ff2cdd7fd93c0a0c11 libiberty/pex-msdos.c
+d67a9b0906ffa961fdc411aa936fdfb1 libiberty/pex-one.c
+452d4245168d96c6e66637ad1f9a382f libiberty/pex-unix.c
+8228d61a0df6bccc7444c1e331bd6fd2 libiberty/pex-win32.c
+fa294b254945587548ca6b32d7922d03 libiberty/pexecute.c
+a6b1581efa83a4072727b38d6fef4230 libiberty/pexecute.txh
+af9bee5d1912e623defe1a7ee0ebc296 libiberty/physmem.c
+f7e45d3f23f83574372065030595efa7 libiberty/putenv.c
+94f22680349b4ae73ad658495d2eb542 libiberty/random.c
+c68dbf7834af4281ebd84caa3fd54680 libiberty/README
+cb83524b0a7871563f11d52efec54a62 libiberty/regex.c
+24eab3d83825c3be13549dc62b6d63d6 libiberty/rename.c
+74850488731148a9c9f410042144f37d libiberty/rindex.c
+b91dd39a7b9d4c9d03edc8a6cdf81978 libiberty/safe-ctype.c
+67aa86d16c993dddfdf9c2d91b910578 libiberty/setenv.c
+5cce049df0e7ecfbe8d9f43dec4f9110 libiberty/setproctitle.c
+7e177a54e64c2b7cead1b03ef3354e91 libiberty/sha1.c
+cafcb336a6d21898592c5cdaa7c5a3a7 libiberty/sigsetmask.c
+98b261f5b750c15964376543f20ce838 libiberty/simple-object-coff.c
+46cc2dd9ee3647f96b12b4147a56ea3d libiberty/simple-object-common.h
+6a644ae380b64c2263b8c5070340c1ee libiberty/simple-object-elf.c
+505f7cf4bc24a21d7ade77a8c84cfcbb libiberty/simple-object-mach-o.c
+5038f5b200deaf5a04ba42e010085d5d libiberty/simple-object.c
+4863a11e04a2021af582edf86f156954 libiberty/simple-object.txh
+e34c9d634af52457ef9c7973d9879d48 libiberty/snprintf.c
+32ea90e5aded75d1cbed83fc52123753 libiberty/sort.c
+2a636db0be7babf70662b1387ae73354 libiberty/spaces.c
+60612038a3f96d55b6be45cb8b5cf217 libiberty/splay-tree.c
+8ee69b2d3c5fac2cf556666eb0c26b9e libiberty/stack-limit.c
+bac20c1a198662917e6bc775ad9bd0cf libiberty/stpcpy.c
+6d8293add4026ed6717d39608786d5f6 libiberty/stpncpy.c
+0c900e9180d750a26ac0ddb237151832 libiberty/strcasecmp.c
+13cce636dd9882e42c9fc5d607351f4f libiberty/strchr.c
+9f681e91439ac44c9df8e1b1deef33b5 libiberty/strdup.c
+b3aaeed201f3c6fd293e9f9618350bfe libiberty/strerror.c
+2d414e20c053293f373a5306192db8f5 libiberty/strncasecmp.c
+cc534c2ea00ea0b5e49ba8f61c6e467d libiberty/strncmp.c
+2d92725e49581d86d7cf06fb40def19d libiberty/strndup.c
+5b0eb0000c746fc4c1854f00bb80b53d libiberty/strrchr.c
+f214096086d1747033efa505022dd89c libiberty/strsignal.c
+e2f3721273c7ef1ab0194aad78ffa3aa libiberty/strstr.c
+0cf8d9985fc4c93d80dd1b0f95431a96 libiberty/strtod.c
+c9bd3841bbde6d8ae680f62523f00ab0 libiberty/strtol.c
+26196a9a92fae743a06d65f0e081084b libiberty/strtoul.c
+9e1bb6fe95ebb6415672ddf1da29ec65 libiberty/strverscmp.c
+3f2a11482f621359c5a0fd1c59fc294c libiberty/testsuite/demangle-expected
+8f24f8939540ed6d58ad0dcdf1132562 libiberty/testsuite/Makefile.in
+85c7215f6a2d5dde81ab2e8211a4becc libiberty/testsuite/test-demangle.c
+d4cc425bb97dbff240fe7c804bdc00f4 libiberty/testsuite/test-expandargv.c
+e9e958dbfc45a08dbbbbe48c83d3987e libiberty/testsuite/test-pexecute.c
+6b513119d8c36af928821e8ec24265d7 libiberty/tmpnam.c
+fed47804d20d26873d480f5166e7d864 libiberty/unlink-if-ordinary.c
+39c4dae2cfe62dd9172b48cbbb969d93 libiberty/vasprintf.c
+8e71982d77e91c0e3c57ca86c8a1b548 libiberty/vfork.c
+dc973aeb02b4545e42f179263612a4d6 libiberty/vfprintf.c
+28af0a1bf222ed2a5a87d9e170ef4a46 libiberty/vprintf.c
+88518587b4d0a0245a21ef3ae29de3bf libiberty/vsnprintf.c
+9e789d58cebe756b96be30941debb05e libiberty/vsprintf.c
+9c22926d0b260822786460b98e517ad8 libiberty/waitpid.c
+f32b581d10bcc500277b6f4b4f923a4e libiberty/xatexit.c
+22389f4e282e4b739e0c1d70cba66cc1 libiberty/xexit.c
+cdc140ce93944c5bb2ac62cd3dfd86d6 libiberty/xmalloc.c
+72b25900bd3d95decf7ff7990061ef29 libiberty/xmemdup.c
+4746095b1b67693ab6e78ed72ead1235 libiberty/xstrdup.c
+6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c
+c6e7ef53b4ff115a136d917511222656 libiberty/xstrndup.c
+d65d47d2ff82eaf7b39fbf26d000eb96 libtool.m4
+247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4
+01d0921596c9fa4d9a7add89fd6fc1f1 ltmain.sh
+dee72a6a60e99528b0d17bf3ff9a1e15 ltoptions.m4
+bc2f6032c98896249eadb56177c7d357 ltsugar.m4
+c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4
+293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4
+734690a438420e8479e15d8ee6971792 makefile.vms
+9d9668fb32d0542b712be2c34ca79bd7 missing
+fbe2467afef81c41c166173adeb0ee20 mkdep
+766574f467c38d27fc7604ca8eb6734c mkinstalldirs
+f1fff2ea196cbf6fe4634bc3edc5af4d move-if-change
+ef6602b963f2a903ab9c81134c6b8d29 opcodes/.gitignore
+1eabaeb9aa44234d9977c09f3ed932e5 opcodes/aclocal.m4
+0d183fbfd7a3b3bbb706594c41604ace opcodes/alpha-dis.c
+b2c7455ac27ff79f81ccb4aee922e6a1 opcodes/alpha-opc.c
+f7637eb4db64ff973cf56bc4e2ca4d06 opcodes/arc-dis.c
+6d22b958c28df865e858391b44aa0532 opcodes/arc-dis.h
+c68a361ec50354fc6b61bf73aaf01acf opcodes/arc-ext.c
+b3d65ebfe89e547896663c61def89981 opcodes/arc-ext.h
+e016668afed76e3602ac2c0b9c8c5f9d opcodes/arc-opc.c
+552442f3ef866c85329850b942ed0fc9 opcodes/arm-dis.c
+6556c6c47ae03ad7481e97718ca99152 opcodes/avr-dis.c
+f26dec5aa530f30f80b4f22c96391719 opcodes/bfin-dis.c
+45cea674fa428a0345e51f278752257c opcodes/cgen-asm.c
+d92cf67612895b65ff62ddb82f9b5543 opcodes/cgen-asm.in
+2e26c2d5bcab8c834c3f8748325f7367 opcodes/cgen-bitset.c
+4ffab65c39d688bd5e8078e10b92df4c opcodes/cgen-dis.c
+3f344b4342a0f690134a85b456e303e0 opcodes/cgen-dis.in
+a270403bead8816e5e9a909aa991e2b1 opcodes/cgen-ibld.in
+3f509397dc42868fd6b3b4369364f3c6 opcodes/cgen-opc.c
+bc080d7ab00992593cfa8b975cd771a9 opcodes/cgen.sh
+09f0226ee274cb289f0046634c0c6f63 opcodes/ChangeLog
+1b4b8646bdc7ad5a2f9071d8ac8b024e opcodes/ChangeLog-0001
+83ac14eead5eda1862cc926b82d35cea opcodes/ChangeLog-0203
+d4cca6dd9882292b6f2e17604bed6cbd opcodes/ChangeLog-2004
+95966cf6bc7711aae732addbfd33ce65 opcodes/ChangeLog-2005
+7ba43e2b6e32ab09a694143b260d7f93 opcodes/ChangeLog-2006
+066e38fddf56239fcd4ab773798695c3 opcodes/ChangeLog-2007
+aaf7e24e3596c794e506477ee65123ab opcodes/ChangeLog-2008
+caa6c6acfe99f77e960674fab34611f2 opcodes/ChangeLog-2009
+9f388ebefba474c0479df23b8458d128 opcodes/ChangeLog-2010
+568db2b4641150f46a18da55529d8d3b opcodes/ChangeLog-9297
+fc3adcd099179b77d2adb79ada21a89c opcodes/ChangeLog-9899
+42a395f87f37d432f30615448f2e9dde opcodes/config.in
+ddd88b6577a9126dec274d4a3eb91412 opcodes/configure
+70a452d27d058e90c3d5ea0c77390d74 opcodes/configure.com
+6c6e3727ea511308f0d72b6c9a45ae39 opcodes/configure.in
+d5ffc6e2dece475d856226677a75965e opcodes/cr16-dis.c
+8e6fb5d34ee9e13ea581ba43962baeef opcodes/cr16-opc.c
+35feef6702a5237816c99597b77a40bd opcodes/cris-dis.c
+24a976b6e3d0dedc20abd0ff680ae63a opcodes/cris-opc.c
+e079337376f6eb8d13442f65b8b9e2c8 opcodes/crx-dis.c
+78cb9b6b05693f19de9e7f6f5c7c5922 opcodes/crx-opc.c
+9f37ca078c8fbbc619657203997c305d opcodes/d10v-dis.c
+d32690dc533892cbdede583b5e166b0f opcodes/d10v-opc.c
+9706bc2f17f3927f1b59e09a3ab3acee opcodes/d30v-dis.c
+fa8f5111930e274b56b6ca49e0304e7f opcodes/d30v-opc.c
+574537d9972c9161d297dcfd7eca0282 opcodes/dep-in.sed
+0b5893bc5b9e2225c5271f9c177863f0 opcodes/dis-buf.c
+ece66b3e9256a52ed11137f296b8ae2c opcodes/dis-init.c
+10380118f891b962fb4691d5d65c5a98 opcodes/disassemble.c
+750e7500febd896381af0445f2d2f671 opcodes/dlx-dis.c
+8a86519ed6859aefa53d5775a34e8efc opcodes/fr30-asm.c
+cfe6923b5d541653e2f44ab124d2ed29 opcodes/fr30-desc.c
+5e78b4e732da2ec165862f1bbcda6ae0 opcodes/fr30-desc.h
+ed406e7ae99699b9d4dd8e53aad11c4a opcodes/fr30-dis.c
+9a83bbdb6f1c0816a6a03cd4180bb438 opcodes/fr30-ibld.c
+dce3dc85831bd7368b85f6fb4c5ca93d opcodes/fr30-opc.c
+006ba74072ac247a26a5dca66fa99eb7 opcodes/fr30-opc.h
+e4ff1a5a63af8bb51dcad7eeb1c890dc opcodes/frv-asm.c
+432f09661ca978fdfd790d2d314e01b4 opcodes/frv-desc.c
+5339efb6ca9f1055b0e07064fa64db35 opcodes/frv-desc.h
+8b55d5b3e9d33d047e4649446acfce1b opcodes/frv-dis.c
+cfabe82140ce4eb2addfcb21b986c86a opcodes/frv-ibld.c
+8d6fe830106fcbda822c06a6763b1f28 opcodes/frv-opc.c
+ed96c9379698ac3715e6440ae6d9c3fb opcodes/frv-opc.h
+977f791ef7c4744f7e86948ef4c81d16 opcodes/h8300-dis.c
+7dc426bed3d4409dfde9c431f5351994 opcodes/h8500-dis.c
+a90d1cf88e8ca000d2fe045d2757c929 opcodes/h8500-opc.h
+2d54299521f9bd96064004cec7c26523 opcodes/hppa-dis.c
+c86a545a6e8fe8ac8cec0f3d8d09a82d opcodes/i370-dis.c
+218308bad0ffc625fd4598939457dc2e opcodes/i370-opc.c
+a8b862ba2c3876144ff22aedb3b38ebc opcodes/i386-dis.c
+a5caede2127e3720973c2017499ecdb7 opcodes/i386-gen.c
+dce9f1d2e3c3c2eb460b101e3b3f3062 opcodes/i386-init.h
+b349e449b7242ffccadc2905ba3bf302 opcodes/i386-opc.c
+ea0debad6159115c95c8dc4103de2b26 opcodes/i386-opc.h
+961c33d947e88722a4883a2fa688ebef opcodes/i386-opc.tbl
+d916194e78f00cc94c8d848e6f64b8ef opcodes/i386-reg.tbl
+3af24642c732155e8f291832760e30b4 opcodes/i386-tbl.h
+d332fee7f16c258c245719be4e3b42d2 opcodes/i860-dis.c
+6f95da0087252987fc36375464b53b25 opcodes/i960-dis.c
+0ccdc17aead3327c15b4fa800790d302 opcodes/ia64-asmtab.c
+71ba420c878d2fd0eb4d2ac36e8970e0 opcodes/ia64-asmtab.h
+2249ba833158c5faccc1ee90e2c43906 opcodes/ia64-dis.c
+9c2874445493c3819b8e1d09897c590c opcodes/ia64-gen.c
+3ba50a7c1fd5801e7580330288cc725d opcodes/ia64-ic.tbl
+8f9a2aed093833e5731816035917e414 opcodes/ia64-opc-a.c
+4f8035ad5d22b8fbcc34d2e25f7ab579 opcodes/ia64-opc-b.c
+361797efc92da6617137cf96553b9ed1 opcodes/ia64-opc-d.c
+f2d2c6a73919ad50bfe2e45fe88ee660 opcodes/ia64-opc-f.c
+13cb7cd8ba9ed01df363cb584a2ba842 opcodes/ia64-opc-i.c
+06a95f9a4099de3fe81b2f60baf5d2cd opcodes/ia64-opc-m.c
+a1ce2021835faa950844ba29d355ce5f opcodes/ia64-opc-x.c
+479a02992c0c32054c66a67a595bd60f opcodes/ia64-opc.c
+34c13118bf7c1f27ed2413588449c811 opcodes/ia64-opc.h
+53c4ff8b528feccdd43a51b2031d9855 opcodes/ia64-raw.tbl
+b3d7452b4310332b7974b34b09f65a6d opcodes/ia64-war.tbl
+43d7bb09153ca5484f9e163a618c6328 opcodes/ia64-waw.tbl
+98fe5aa93bfef9588406f7ddc7358e27 opcodes/ip2k-asm.c
+5cabeff9c6311270be353a97ab451778 opcodes/ip2k-desc.c
+ac2bf5a1711a374e124bebc7b77d7036 opcodes/ip2k-desc.h
+f1f09223557d8405ccd6038f82064488 opcodes/ip2k-dis.c
+0e81286d5ab261cd87d46aaf4b3fa03d opcodes/ip2k-ibld.c
+948f39ae51c9ddcc8f4e328cc4425106 opcodes/ip2k-opc.c
+4306a0e1c37315e842a079af635e19e3 opcodes/ip2k-opc.h
+73fc04e2f5f07cd6843ed32752302727 opcodes/iq2000-asm.c
+27c50d1d8efc7d958b8357d69cd47fd1 opcodes/iq2000-desc.c
+8578971c11de4eac82b6a23613e78b9f opcodes/iq2000-desc.h
+9e6df7320c072abd0d962139ef7391ab opcodes/iq2000-dis.c
+a65e9e23415bc5162f3fdf569015da48 opcodes/iq2000-ibld.c
+71b3368e10ef92e6bbc551b0d20db82e opcodes/iq2000-opc.c
+a7fcc51b1065248503975116e60ee28d opcodes/iq2000-opc.h
+82dbf3fedabee96a990f4096c9836a44 opcodes/lm32-asm.c
+0edaac3c0e63e8f7d9515103eea20f53 opcodes/lm32-desc.c
+ccced39416c4bc64fee833c133213b66 opcodes/lm32-desc.h
+796bf959dd98214bb8a3b1110e3c2670 opcodes/lm32-dis.c
+3e7e949d979ea280c1c6ba53550fafbe opcodes/lm32-ibld.c
+5601b608a19d4e7c19b134a458df22d7 opcodes/lm32-opc.c
+4040795b40e856e403a736b7203f8c00 opcodes/lm32-opc.h
+465fca89973240988d539b7965f54034 opcodes/lm32-opinst.c
+6cd99590cdb5cc96648741f375819ee1 opcodes/m10200-dis.c
+2537fd35553e9abc7f73b09a9dcc8448 opcodes/m10200-opc.c
+6fa875346f1ecf4d6769949d0b077238 opcodes/m10300-dis.c
+3d215d208dbcadd93eeb6081f02f430c opcodes/m10300-opc.c
+06bb0f0061213535accab5622a35f351 opcodes/m32c-asm.c
+fa21aa9c6fa0ee3c65707a2107f4a8d7 opcodes/m32c-desc.c
+0fb3ac51dae47688313a569d8de4f428 opcodes/m32c-desc.h
+0496693c42f793ba7937f31550e43ed9 opcodes/m32c-dis.c
+018c5daa636e0f4d8314c9b28d8a53ba opcodes/m32c-ibld.c
+4748be6f2f7d4d7a235f63cc4811c0ed opcodes/m32c-opc.c
+e5988e4840e03c87f4d66d0b39795c13 opcodes/m32c-opc.h
+3243c0c46a1d3e2fd24774a641e1e55e opcodes/m32r-asm.c
+96aed3db7a72a80f1ec90ac29ef8e1a8 opcodes/m32r-desc.c
+c4a5df1a398db76fa7547a9aff9897bf opcodes/m32r-desc.h
+2468ce49a9c806bdfbaf94ba8c7902c9 opcodes/m32r-dis.c
+2f35ebaa942b414631c2b55aedc1531c opcodes/m32r-ibld.c
+64ae4f82595cb61b72149e7e22a42f27 opcodes/m32r-opc.c
+4f37bce53e8b1a1d85fb3ed8b9b7cf15 opcodes/m32r-opc.h
+9485c677e8907524837c1e6064a50a31 opcodes/m32r-opinst.c
+c884a02c786bb9ae35cc4e436b6b882c opcodes/m68hc11-dis.c
+59906efbf7a9eee5f8382a8b30e133da opcodes/m68hc11-opc.c
+e579c07b45c41fee680a1eafdb382f04 opcodes/m68k-dis.c
+a80c93744c8a702c60a837c98f209c9e opcodes/m68k-opc.c
+a8a5e99b9b9176f9a932a252fd9ab2a1 opcodes/m88k-dis.c
+d618facc3e8ce8bf3d02ba452e1be6ab opcodes/MAINTAINERS
+cd3de51e510afe3a415518fd34e10df3 opcodes/Makefile.am
+a06b6c979978772beb0aca907b746289 opcodes/Makefile.in
+3efef7dad61a0eb561346d3047fb7ed8 opcodes/makefile.vms
+5e74f56bfccffa3c7f07f1c90582ca00 opcodes/mcore-dis.c
+4f2dbdd0a873c6ed42373f53f8b07d15 opcodes/mcore-opc.h
+ec40300857408c1294bd36197498f6aa opcodes/mep-asm.c
+cf75c26734d23b64b24c1f601bec1aa1 opcodes/mep-desc.c
+cb47a206279475ce8c1c2c04b6323556 opcodes/mep-desc.h
+c16e1131cccd650b8d653acfff29cf86 opcodes/mep-dis.c
+cf295dec03869cdad4c38f0398ce247e opcodes/mep-ibld.c
+49b8de9d8d114222ce4160bea178d4fa opcodes/mep-opc.c
+053b324ec00ecbe2657583171b8ee60e opcodes/mep-opc.h
+88aeb8fc5a60fbd8eb32f42fa1964a7d opcodes/microblaze-dis.c
+adf720ae7611c9ed19989e9d6428f638 opcodes/microblaze-dis.h
+6e58e9f9e87531e0295d9277266f25b4 opcodes/microblaze-opc.h
+2146cb07dc8b4c05bc3dad6bc04dcc72 opcodes/microblaze-opcm.h
+8a663e1e504f6a221cb006c8db847d63 opcodes/micromips-opc.c
+f5624a1c2820f12f6f69cd427f7f56a9 opcodes/mips-dis.c
+661e2777783e3a3e925d0e4595ac223a opcodes/mips-opc.c
+4d4dad5b6ae89dc8c2b4398b1f4d9bdd opcodes/mips16-opc.c
+70059e50d54f0a65c674d08a3c5650e0 opcodes/mmix-dis.c
+5d3ce00c0af1e8be47a84b7a0b24b237 opcodes/mmix-opc.c
+7d36a0b59192414bfc95f9f924f9fa7f opcodes/moxie-dis.c
+a026dda6f88b66ca94ba83599b8f717c opcodes/moxie-opc.c
+e7ce22020a7dbebf739b04a1aaf94967 opcodes/msp430-dis.c
+d51d9a5a27aabe5c992e2bda4657b73f opcodes/mt-asm.c
+67a08e35431b47d3fd02fa6672e87b52 opcodes/mt-desc.c
+c50d1471d263342c49d33f6d4237c703 opcodes/mt-desc.h
+e4f21e1b452a0c14ca01c65f181531ad opcodes/mt-dis.c
+e1a2f3897ca5248d5c164e47f725b20f opcodes/mt-ibld.c
+c18b2d837279ebf8a89ab05db8b952b3 opcodes/mt-opc.c
+9892e9aa135881086dae669b8bc3d733 opcodes/mt-opc.h
+38cff44b34c951a39dc2e3cff10595f2 opcodes/ns32k-dis.c
+15666d286846ee3492843dcb4642df12 opcodes/opc2c.c
+6311a9f7c625e9f417286a3490f39d4d opcodes/openrisc-asm.c
+a636d91f3e2b5c8340fa91e4eb11a8d5 opcodes/openrisc-desc.c
+3ce025c4ac4f565d5decc09b2965d5fe opcodes/openrisc-desc.h
+3bd3592ada34ee1b8c9c1fc1b9a3d8bc opcodes/openrisc-dis.c
+99aac5d9a6a4263c8bf14244df8b1a7e opcodes/openrisc-ibld.c
+b703a698570619af12334f30eeffd41c opcodes/openrisc-opc.c
+a0ba79c35d1a39d977e6019ba1cedfd9 opcodes/openrisc-opc.h
+ddb3324288d8b89a8d21cc42936fd320 opcodes/opintl.h
+e1ef1b7be22c0bb600c200c402a1ca03 opcodes/or32-dis.c
+084b26c55650090e5ea056ea4364a16e opcodes/or32-opc.c
+2e878a17084801b0c09d6edae4e65862 opcodes/pdp11-dis.c
+546f13ebe3df55e2efcbca2e76695a7c opcodes/pdp11-opc.c
+7c044dbd081ea712eb68d6fbffe19b00 opcodes/pj-dis.c
+f9282da1105aa1d5aaa561bad2ec6e31 opcodes/pj-opc.c
+40631143014bf28aa6c4c18fb42c7e3f opcodes/po/da.gmo
+08644663c098c4faa0a75ef257ff85de opcodes/po/da.po
+6881ecf19052fe945c5dfefc588207ab opcodes/po/de.gmo
+baba2506d17c4e2214d6fdd5868e6699 opcodes/po/de.po
+4fc385a3d1a922817163a002c5351ffc opcodes/po/es.gmo
+7572cc997d245129c25487fe7540d0ac opcodes/po/es.po
+ea02e3cbcae7924813b49db479c2faf0 opcodes/po/fi.gmo
+c7a095e4298b4afc1a68ca0a32e9c636 opcodes/po/fi.po
+0354d8ebde8359a359d0703d9d897ba8 opcodes/po/fr.gmo
+8784d443527b3837ccdbd6baab60763a opcodes/po/fr.po
+aaa7913c4672954f5afe196a57bea399 opcodes/po/ga.gmo
+a5961a0281569011fb2468afebe4c4d8 opcodes/po/ga.po
+bbdc560c49ae729616af290d86d1801a opcodes/po/id.gmo
+9b0083cb5b9854569bfd39fb4e432099 opcodes/po/id.po
+ae6d82cae94b6dbf83af04ece662faf8 opcodes/po/Make-in
+6b7f6db13ec1f340c587ccd58c898e8b opcodes/po/nl.gmo
+55b6639559777f04aadc075e51744b12 opcodes/po/nl.po
+46e9a8a86e5042957d02f97f1a74fd4a opcodes/po/opcodes.pot
+05992528e39c82065c58f8a092b34b54 opcodes/po/POTFILES.in
+1b79e075af1926ef6736fa317f054702 opcodes/po/pt_BR.gmo
+30f5fa421474edf39ae99a8985bd42e9 opcodes/po/pt_BR.po
+e216f1583ca03a04f8849dfb96b59c3f opcodes/po/ro.gmo
+27e9fec6ee5c546b5d5f4afb80b287ed opcodes/po/ro.po
+d7c42d78dd00ae4c8b71fecb736fd17c opcodes/po/sv.gmo
+45db317868bfb202300160e0657f06ea opcodes/po/sv.po
+179cd41f0e8af51dd577fd5d7ab36c79 opcodes/po/tr.gmo
+8ddcec300546b39bc1d9a13098637b64 opcodes/po/tr.po
+d47776e427a062eaf76832cfe02c122b opcodes/po/vi.gmo
+0205ef8d6d910165612939b103d9ccf7 opcodes/po/vi.po
+6e7ae21e20fe177fba4c9c7fe8afa55a opcodes/po/zh_CN.gmo
+0928658424d3439f5dcaa21464ac43b6 opcodes/po/zh_CN.po
+6a498da450dd7dd90801d79074190f23 opcodes/ppc-dis.c
+62fdb8d0bc7f57c922dfb073678818e6 opcodes/ppc-opc.c
+8c4cce1349402f40f44be6d6967d9c7f opcodes/rx-decode.c
+fad0cf8f9da36f320dd8a4c56a9f6743 opcodes/rx-decode.opc
+dc4ea6e70e4d38be3e566aae78971374 opcodes/rx-dis.c
+7c424942718f1a04585a8fdbb5ff7744 opcodes/s390-dis.c
+056a82808818c3d02e5220f1604304f1 opcodes/s390-mkopc.c
+db37da8a908aea2ec57ee6cec5757fed opcodes/s390-opc.c
+e9dde8054000defabe4827d4191bf107 opcodes/s390-opc.txt
+9dc03a304cf6c2651ec5edcf970ee417 opcodes/score-dis.c
+84efbd963f1573bab84ce05f7ad4e58d opcodes/score-opc.h
+a91452ca1d7ab6a941a364d974149852 opcodes/score7-dis.c
+87f89485f60a37d02ce5c4df842ecb26 opcodes/sh-dis.c
+aea44dd53e979c11216c7c3fc7848fe0 opcodes/sh-opc.h
+a4ff1ccc184718e2866819ee8abd273b opcodes/sh64-dis.c
+ba68ff46225ffa4fc3cf57c14bc5d09e opcodes/sh64-opc.c
+4500a9749b3a81ef89fb50be85a4bedf opcodes/sh64-opc.h
+25038d14a858f8b0c89c550c67e1fe08 opcodes/sparc-dis.c
+abd258660a482d4f53178ccabf20202e opcodes/sparc-opc.c
+d46eddeb5c24a897ece9911d8e7775f3 opcodes/spu-dis.c
+d2cd7ae58ae776e075b0d64bb18a5f76 opcodes/spu-opc.c
+1ded054093de910d9786c62bc4fe8cc6 opcodes/stamp-h.in
+e8ec6515ba869ddb5a4f64987448830e opcodes/sysdep.h
+b6c8df366df6d1bf517368283a3e83bc opcodes/tic30-dis.c
+d8bd324a75e601ace2b2d2eb4a525e52 opcodes/tic4x-dis.c
+e9fab875e373c0f0509849a0c4311a22 opcodes/tic54x-dis.c
+ea7d1d4700e2cc534f624f3ae366117d opcodes/tic54x-opc.c
+d8b41e742a6b046ccffae75f9d22f1cf opcodes/tic6x-dis.c
+0b799451ba231a6be1a404f1d6b2be41 opcodes/tic80-dis.c
+0bffeecc20e5f0456dc2f1ba689d9fa9 opcodes/tic80-opc.c
+0c2c4900730316dfad0cc55b494d85c3 opcodes/tilegx-dis.c
+8361ba1f35dd1f074e3eb46d2e900807 opcodes/tilegx-opc.c
+43a724eca5dc465cb67a13338f93d68d opcodes/tilepro-dis.c
+bd957ced2786a05389ebf9156ac2b2ac opcodes/tilepro-opc.c
+c290d133df7afa3924a02d6db20e2fb0 opcodes/v850-dis.c
+5f4f1836a2c8fcc24a3d1ce5304c150b opcodes/v850-opc.c
+0f83318013675dffa18582b207263449 opcodes/vax-dis.c
+4760e70a223de43a1a22033ca2e21dda opcodes/w65-dis.c
+072127e2c22b9ea5599f349c097ebbc1 opcodes/w65-opc.h
+9760faa524bc333d3d8ea4cbff08e2aa opcodes/xc16x-asm.c
+61ee16ff3ea71974250aa3f3b6fbddc1 opcodes/xc16x-desc.c
+d2d8d28ec86ecb0ad1138e8bbc71a99e opcodes/xc16x-desc.h
+7d4951c78448cb3d3f7d85842a619153 opcodes/xc16x-dis.c
+f1a8c5a5233adec0f43885f0967f5c5c opcodes/xc16x-ibld.c
+886733cd9cd944bd6b70785e53b0f69b opcodes/xc16x-opc.c
+0483c849ed60ff25db78f503bd8a84e0 opcodes/xc16x-opc.h
+3a6f9d4b824578571fcd952ffbfe589b opcodes/xstormy16-asm.c
+41ee4e0a4f42e0d396adfce5d0ca7d5f opcodes/xstormy16-desc.c
+10713cd53a68ad189219343ae17bb441 opcodes/xstormy16-desc.h
+2156873e893b64e765646887bb056324 opcodes/xstormy16-dis.c
+18d5a80d2b4910d879a88197eb1627ad opcodes/xstormy16-ibld.c
+953957d3d7b43d96528448b2044227c4 opcodes/xstormy16-opc.c
+099f445cf3df0fb0724aaf81ab3a3ff9 opcodes/xstormy16-opc.h
+05434a9d71725aeef1d877bbf65fee25 opcodes/xtensa-dis.c
+48a1de2a08d81135c59cce49900c06bd opcodes/z80-dis.c
+b73735f570dac4f2ad37d5e3848d01a0 opcodes/z8k-dis.c
+e349344d63e18942681c442ad564c34c opcodes/z8k-opc.h
+d41e0b39d53a131bb560583587e3dadf opcodes/z8kgen.c
+9ded84c8fb1840e68c467da08880fe07 setup.com
+9bb037294df2451327cdaf73d040a851 src-release
+cf2baa0854f564a7785307e79f155efc symlink-tree
+6ffd0f415aea2960cac41434e6d904bb texinfo/texinfo.tex
+69678e72941d681665c3731bfb3044ab ylwrap
diff --git a/opcodes/po/da.gmo b/opcodes/po/da.gmo
new file mode 100644
index 0000000000..2f18a0030b
--- /dev/null
+++ b/opcodes/po/da.gmo
Binary files differ
diff --git a/opcodes/po/de.gmo b/opcodes/po/de.gmo
new file mode 100644
index 0000000000..acd983f25e
--- /dev/null
+++ b/opcodes/po/de.gmo
Binary files differ
diff --git a/opcodes/po/es.gmo b/opcodes/po/es.gmo
new file mode 100644
index 0000000000..510536b2ea
--- /dev/null
+++ b/opcodes/po/es.gmo
Binary files differ
diff --git a/opcodes/po/fi.gmo b/opcodes/po/fi.gmo
new file mode 100644
index 0000000000..e7973141b4
--- /dev/null
+++ b/opcodes/po/fi.gmo
Binary files differ
diff --git a/opcodes/po/fr.gmo b/opcodes/po/fr.gmo
new file mode 100644
index 0000000000..8d6122358a
--- /dev/null
+++ b/opcodes/po/fr.gmo
Binary files differ
diff --git a/opcodes/po/ga.gmo b/opcodes/po/ga.gmo
new file mode 100644
index 0000000000..fef67102ce
--- /dev/null
+++ b/opcodes/po/ga.gmo
Binary files differ
diff --git a/opcodes/po/id.gmo b/opcodes/po/id.gmo
new file mode 100644
index 0000000000..4ad376403f
--- /dev/null
+++ b/opcodes/po/id.gmo
Binary files differ
diff --git a/opcodes/po/nl.gmo b/opcodes/po/nl.gmo
new file mode 100644
index 0000000000..8e26600c2d
--- /dev/null
+++ b/opcodes/po/nl.gmo
Binary files differ
diff --git a/opcodes/po/pt_BR.gmo b/opcodes/po/pt_BR.gmo
new file mode 100644
index 0000000000..083e8f4219
--- /dev/null
+++ b/opcodes/po/pt_BR.gmo
Binary files differ
diff --git a/opcodes/po/ro.gmo b/opcodes/po/ro.gmo
new file mode 100644
index 0000000000..6125448e62
--- /dev/null
+++ b/opcodes/po/ro.gmo
Binary files differ
diff --git a/opcodes/po/sv.gmo b/opcodes/po/sv.gmo
new file mode 100644
index 0000000000..2347bdcdad
--- /dev/null
+++ b/opcodes/po/sv.gmo
Binary files differ
diff --git a/opcodes/po/tr.gmo b/opcodes/po/tr.gmo
new file mode 100644
index 0000000000..98b9df1535
--- /dev/null
+++ b/opcodes/po/tr.gmo
Binary files differ
diff --git a/opcodes/po/vi.gmo b/opcodes/po/vi.gmo
new file mode 100644
index 0000000000..28974e4c82
--- /dev/null
+++ b/opcodes/po/vi.gmo
Binary files differ
diff --git a/opcodes/po/zh_CN.gmo b/opcodes/po/zh_CN.gmo
new file mode 100644
index 0000000000..2bf6751c43
--- /dev/null
+++ b/opcodes/po/zh_CN.gmo
Binary files differ