diff options
author | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2012-12-28 11:34:04 +0000 |
---|---|---|
committer | Sam Thursfield <sam.thursfield@codethink.co.uk> | 2012-12-28 11:34:04 +0000 |
commit | 8d0c6a09358c99e78efac24ae7037dd15e6139ce (patch) | |
tree | 1cd9f85e9f4d55c8a1ba04e929f9339fecab97e4 | |
parent | 9d3af03cd5383605fa4d49fe4d098186576b69b8 (diff) | |
download | binutils-redhat-8d0c6a09358c99e78efac24ae7037dd15e6139ce.tar.gz |
Add files from tarball that were previously ignored
-rw-r--r-- | bfd/doc/bfd.info | 12145 | ||||
-rw-r--r-- | bfd/po/da.gmo | bin | 0 -> 134131 bytes | |||
-rw-r--r-- | bfd/po/es.gmo | bin | 0 -> 141061 bytes | |||
-rw-r--r-- | bfd/po/fi.gmo | bin | 0 -> 142032 bytes | |||
-rw-r--r-- | bfd/po/fr.gmo | bin | 0 -> 142671 bytes | |||
-rw-r--r-- | bfd/po/id.gmo | bin | 0 -> 105891 bytes | |||
-rw-r--r-- | bfd/po/ja.gmo | bin | 0 -> 52923 bytes | |||
-rw-r--r-- | bfd/po/ro.gmo | bin | 0 -> 69038 bytes | |||
-rw-r--r-- | bfd/po/ru.gmo | bin | 0 -> 175235 bytes | |||
-rw-r--r-- | bfd/po/rw.gmo | bin | 0 -> 429 bytes | |||
-rw-r--r-- | bfd/po/sv.gmo | bin | 0 -> 67266 bytes | |||
-rw-r--r-- | bfd/po/tr.gmo | bin | 0 -> 69529 bytes | |||
-rw-r--r-- | bfd/po/vi.gmo | bin | 0 -> 118337 bytes | |||
-rw-r--r-- | bfd/po/zh_CN.gmo | bin | 0 -> 28121 bytes | |||
-rw-r--r-- | binutils/doc/binutils.info | 4726 | ||||
-rw-r--r-- | binutils/po/bg.gmo | bin | 0 -> 45189 bytes | |||
-rw-r--r-- | binutils/po/da.gmo | bin | 0 -> 69960 bytes | |||
-rw-r--r-- | binutils/po/es.gmo | bin | 0 -> 181430 bytes | |||
-rw-r--r-- | binutils/po/fi.gmo | bin | 0 -> 173759 bytes | |||
-rw-r--r-- | binutils/po/fr.gmo | bin | 0 -> 178907 bytes | |||
-rw-r--r-- | binutils/po/id.gmo | bin | 0 -> 153153 bytes | |||
-rw-r--r-- | binutils/po/ja.gmo | bin | 0 -> 184894 bytes | |||
-rw-r--r-- | binutils/po/ro.gmo | bin | 0 -> 20265 bytes | |||
-rw-r--r-- | binutils/po/ru.gmo | bin | 0 -> 216900 bytes | |||
-rw-r--r-- | binutils/po/rw.gmo | bin | 0 -> 615 bytes | |||
-rw-r--r-- | binutils/po/sk.gmo | bin | 0 -> 149635 bytes | |||
-rw-r--r-- | binutils/po/sv.gmo | bin | 0 -> 113208 bytes | |||
-rw-r--r-- | binutils/po/tr.gmo | bin | 0 -> 129842 bytes | |||
-rw-r--r-- | binutils/po/uk.gmo | bin | 0 -> 172392 bytes | |||
-rw-r--r-- | binutils/po/vi.gmo | bin | 0 -> 172896 bytes | |||
-rw-r--r-- | binutils/po/zh_CN.gmo | bin | 0 -> 75892 bytes | |||
-rw-r--r-- | binutils/po/zh_TW.gmo | bin | 0 -> 121475 bytes | |||
-rw-r--r-- | etc/configure.info | 2773 | ||||
-rw-r--r-- | etc/standards.info | 5744 | ||||
-rw-r--r-- | gas/doc/as.info | 24303 | ||||
-rw-r--r-- | gas/po/es.gmo | bin | 0 -> 422517 bytes | |||
-rw-r--r-- | gas/po/fi.gmo | bin | 0 -> 425967 bytes | |||
-rw-r--r-- | gas/po/fr.gmo | bin | 0 -> 426216 bytes | |||
-rw-r--r-- | gas/po/id.gmo | bin | 0 -> 389863 bytes | |||
-rw-r--r-- | gas/po/ru.gmo | bin | 0 -> 23024 bytes | |||
-rw-r--r-- | gas/po/rw.gmo | bin | 0 -> 396 bytes | |||
-rw-r--r-- | gas/po/tr.gmo | bin | 0 -> 220920 bytes | |||
-rw-r--r-- | gold/po/es.gmo | bin | 0 -> 51373 bytes | |||
-rw-r--r-- | gold/po/fi.gmo | bin | 0 -> 39817 bytes | |||
-rw-r--r-- | gold/po/id.gmo | bin | 0 -> 38664 bytes | |||
-rw-r--r-- | gold/po/vi.gmo | bin | 0 -> 56321 bytes | |||
-rw-r--r-- | gprof/gprof.info | 2474 | ||||
-rw-r--r-- | gprof/po/bg.gmo | bin | 0 -> 12677 bytes | |||
-rw-r--r-- | gprof/po/da.gmo | bin | 0 -> 10329 bytes | |||
-rw-r--r-- | gprof/po/de.gmo | bin | 0 -> 10545 bytes | |||
-rw-r--r-- | gprof/po/eo.gmo | bin | 0 -> 10469 bytes | |||
-rw-r--r-- | gprof/po/es.gmo | bin | 0 -> 10865 bytes | |||
-rw-r--r-- | gprof/po/fi.gmo | bin | 0 -> 11021 bytes | |||
-rw-r--r-- | gprof/po/fr.gmo | bin | 0 -> 11206 bytes | |||
-rw-r--r-- | gprof/po/ga.gmo | bin | 0 -> 10440 bytes | |||
-rw-r--r-- | gprof/po/id.gmo | bin | 0 -> 10448 bytes | |||
-rw-r--r-- | gprof/po/ms.gmo | bin | 0 -> 10360 bytes | |||
-rw-r--r-- | gprof/po/nl.gmo | bin | 0 -> 10712 bytes | |||
-rw-r--r-- | gprof/po/pt_BR.gmo | bin | 0 -> 9984 bytes | |||
-rw-r--r-- | gprof/po/ro.gmo | bin | 0 -> 9898 bytes | |||
-rw-r--r-- | gprof/po/ru.gmo | bin | 0 -> 12808 bytes | |||
-rw-r--r-- | gprof/po/rw.gmo | bin | 0 -> 486 bytes | |||
-rw-r--r-- | gprof/po/sv.gmo | bin | 0 -> 10367 bytes | |||
-rw-r--r-- | gprof/po/tr.gmo | bin | 0 -> 11331 bytes | |||
-rw-r--r-- | gprof/po/vi.gmo | bin | 0 -> 12434 bytes | |||
-rw-r--r-- | ld/ld.info | 7964 | ||||
-rw-r--r-- | ld/po/bg.gmo | bin | 0 -> 71843 bytes | |||
-rw-r--r-- | ld/po/da.gmo | bin | 0 -> 34929 bytes | |||
-rw-r--r-- | ld/po/es.gmo | bin | 0 -> 58083 bytes | |||
-rw-r--r-- | ld/po/fi.gmo | bin | 0 -> 57441 bytes | |||
-rw-r--r-- | ld/po/fr.gmo | bin | 0 -> 51807 bytes | |||
-rw-r--r-- | ld/po/ga.gmo | bin | 0 -> 48922 bytes | |||
-rw-r--r-- | ld/po/id.gmo | bin | 0 -> 53562 bytes | |||
-rw-r--r-- | ld/po/ja.gmo | bin | 0 -> 32271 bytes | |||
-rw-r--r-- | ld/po/sv.gmo | bin | 0 -> 43131 bytes | |||
-rw-r--r-- | ld/po/tr.gmo | bin | 0 -> 41339 bytes | |||
-rw-r--r-- | ld/po/vi.gmo | bin | 0 -> 59341 bytes | |||
-rw-r--r-- | ld/po/zh_CN.gmo | bin | 0 -> 24785 bytes | |||
-rw-r--r-- | ld/po/zh_TW.gmo | bin | 0 -> 44839 bytes | |||
-rw-r--r-- | md5.sum | 12857 | ||||
-rw-r--r-- | opcodes/po/da.gmo | bin | 0 -> 17528 bytes | |||
-rw-r--r-- | opcodes/po/de.gmo | bin | 0 -> 16919 bytes | |||
-rw-r--r-- | opcodes/po/es.gmo | bin | 0 -> 25994 bytes | |||
-rw-r--r-- | opcodes/po/fi.gmo | bin | 0 -> 26403 bytes | |||
-rw-r--r-- | opcodes/po/fr.gmo | bin | 0 -> 25313 bytes | |||
-rw-r--r-- | opcodes/po/ga.gmo | bin | 0 -> 24028 bytes | |||
-rw-r--r-- | opcodes/po/id.gmo | bin | 0 -> 25350 bytes | |||
-rw-r--r-- | opcodes/po/nl.gmo | bin | 0 -> 25236 bytes | |||
-rw-r--r-- | opcodes/po/pt_BR.gmo | bin | 0 -> 8467 bytes | |||
-rw-r--r-- | opcodes/po/ro.gmo | bin | 0 -> 15986 bytes | |||
-rw-r--r-- | opcodes/po/sv.gmo | bin | 0 -> 16004 bytes | |||
-rw-r--r-- | opcodes/po/tr.gmo | bin | 0 -> 16094 bytes | |||
-rw-r--r-- | opcodes/po/vi.gmo | bin | 0 -> 27675 bytes | |||
-rw-r--r-- | opcodes/po/zh_CN.gmo | bin | 0 -> 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 Binary files differnew file mode 100644 index 0000000000..deb4565597 --- /dev/null +++ b/bfd/po/da.gmo diff --git a/bfd/po/es.gmo b/bfd/po/es.gmo Binary files differnew file mode 100644 index 0000000000..2d9b415b84 --- /dev/null +++ b/bfd/po/es.gmo diff --git a/bfd/po/fi.gmo b/bfd/po/fi.gmo Binary files differnew file mode 100644 index 0000000000..44bca56ab2 --- /dev/null +++ b/bfd/po/fi.gmo diff --git a/bfd/po/fr.gmo b/bfd/po/fr.gmo Binary files differnew file mode 100644 index 0000000000..2a73a53114 --- /dev/null +++ b/bfd/po/fr.gmo diff --git a/bfd/po/id.gmo b/bfd/po/id.gmo Binary files differnew file mode 100644 index 0000000000..46b2f30394 --- /dev/null +++ b/bfd/po/id.gmo diff --git a/bfd/po/ja.gmo b/bfd/po/ja.gmo Binary files differnew file mode 100644 index 0000000000..d887a711e2 --- /dev/null +++ b/bfd/po/ja.gmo diff --git a/bfd/po/ro.gmo b/bfd/po/ro.gmo Binary files differnew file mode 100644 index 0000000000..8621928313 --- /dev/null +++ b/bfd/po/ro.gmo diff --git a/bfd/po/ru.gmo b/bfd/po/ru.gmo Binary files differnew file mode 100644 index 0000000000..2086367723 --- /dev/null +++ b/bfd/po/ru.gmo diff --git a/bfd/po/rw.gmo b/bfd/po/rw.gmo Binary files differnew file mode 100644 index 0000000000..49d9e2fd45 --- /dev/null +++ b/bfd/po/rw.gmo diff --git a/bfd/po/sv.gmo b/bfd/po/sv.gmo Binary files differnew file mode 100644 index 0000000000..e746ec02e7 --- /dev/null +++ b/bfd/po/sv.gmo diff --git a/bfd/po/tr.gmo b/bfd/po/tr.gmo Binary files differnew file mode 100644 index 0000000000..74c0ea8fc2 --- /dev/null +++ b/bfd/po/tr.gmo diff --git a/bfd/po/vi.gmo b/bfd/po/vi.gmo Binary files differnew file mode 100644 index 0000000000..0c9ed17d8b --- /dev/null +++ b/bfd/po/vi.gmo diff --git a/bfd/po/zh_CN.gmo b/bfd/po/zh_CN.gmo Binary files differnew file mode 100644 index 0000000000..65998865d3 --- /dev/null +++ b/bfd/po/zh_CN.gmo 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 Binary files differnew file mode 100644 index 0000000000..91c86a53ed --- /dev/null +++ b/binutils/po/bg.gmo diff --git a/binutils/po/da.gmo b/binutils/po/da.gmo Binary files differnew file mode 100644 index 0000000000..d870bd7d59 --- /dev/null +++ b/binutils/po/da.gmo diff --git a/binutils/po/es.gmo b/binutils/po/es.gmo Binary files differnew file mode 100644 index 0000000000..282a8a8165 --- /dev/null +++ b/binutils/po/es.gmo diff --git a/binutils/po/fi.gmo b/binutils/po/fi.gmo Binary files differnew file mode 100644 index 0000000000..a3aba653a1 --- /dev/null +++ b/binutils/po/fi.gmo diff --git a/binutils/po/fr.gmo b/binutils/po/fr.gmo Binary files differnew file mode 100644 index 0000000000..b4f3a9f25d --- /dev/null +++ b/binutils/po/fr.gmo diff --git a/binutils/po/id.gmo b/binutils/po/id.gmo Binary files differnew file mode 100644 index 0000000000..5cbebabaea --- /dev/null +++ b/binutils/po/id.gmo diff --git a/binutils/po/ja.gmo b/binutils/po/ja.gmo Binary files differnew file mode 100644 index 0000000000..9a90fa5f0d --- /dev/null +++ b/binutils/po/ja.gmo diff --git a/binutils/po/ro.gmo b/binutils/po/ro.gmo Binary files differnew file mode 100644 index 0000000000..f1c1e0e13a --- /dev/null +++ b/binutils/po/ro.gmo diff --git a/binutils/po/ru.gmo b/binutils/po/ru.gmo Binary files differnew file mode 100644 index 0000000000..5d724b008f --- /dev/null +++ b/binutils/po/ru.gmo diff --git a/binutils/po/rw.gmo b/binutils/po/rw.gmo Binary files differnew file mode 100644 index 0000000000..6d5d7b9ef1 --- /dev/null +++ b/binutils/po/rw.gmo diff --git a/binutils/po/sk.gmo b/binutils/po/sk.gmo Binary files differnew file mode 100644 index 0000000000..df4639ac93 --- /dev/null +++ b/binutils/po/sk.gmo diff --git a/binutils/po/sv.gmo b/binutils/po/sv.gmo Binary files differnew file mode 100644 index 0000000000..0efae306a8 --- /dev/null +++ b/binutils/po/sv.gmo diff --git a/binutils/po/tr.gmo b/binutils/po/tr.gmo Binary files differnew file mode 100644 index 0000000000..71904464e4 --- /dev/null +++ b/binutils/po/tr.gmo diff --git a/binutils/po/uk.gmo b/binutils/po/uk.gmo Binary files differnew file mode 100644 index 0000000000..6cd6aa15ee --- /dev/null +++ b/binutils/po/uk.gmo diff --git a/binutils/po/vi.gmo b/binutils/po/vi.gmo Binary files differnew file mode 100644 index 0000000000..c194894721 --- /dev/null +++ b/binutils/po/vi.gmo diff --git a/binutils/po/zh_CN.gmo b/binutils/po/zh_CN.gmo Binary files differnew file mode 100644 index 0000000000..b4448b155b --- /dev/null +++ b/binutils/po/zh_CN.gmo diff --git a/binutils/po/zh_TW.gmo b/binutils/po/zh_TW.gmo Binary files differnew file mode 100644 index 0000000000..b02a71ee6b --- /dev/null +++ b/binutils/po/zh_TW.gmo 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 Binary files differnew file mode 100644 index 0000000000..ff8e71ad61 --- /dev/null +++ b/gas/po/es.gmo diff --git a/gas/po/fi.gmo b/gas/po/fi.gmo Binary files differnew file mode 100644 index 0000000000..aaaa271176 --- /dev/null +++ b/gas/po/fi.gmo diff --git a/gas/po/fr.gmo b/gas/po/fr.gmo Binary files differnew file mode 100644 index 0000000000..94fa3abf13 --- /dev/null +++ b/gas/po/fr.gmo diff --git a/gas/po/id.gmo b/gas/po/id.gmo Binary files differnew file mode 100644 index 0000000000..2ecf194029 --- /dev/null +++ b/gas/po/id.gmo diff --git a/gas/po/ru.gmo b/gas/po/ru.gmo Binary files differnew file mode 100644 index 0000000000..87734f2850 --- /dev/null +++ b/gas/po/ru.gmo diff --git a/gas/po/rw.gmo b/gas/po/rw.gmo Binary files differnew file mode 100644 index 0000000000..8879b0effc --- /dev/null +++ b/gas/po/rw.gmo diff --git a/gas/po/tr.gmo b/gas/po/tr.gmo Binary files differnew file mode 100644 index 0000000000..bf7736d81b --- /dev/null +++ b/gas/po/tr.gmo diff --git a/gold/po/es.gmo b/gold/po/es.gmo Binary files differnew file mode 100644 index 0000000000..e79c3047cd --- /dev/null +++ b/gold/po/es.gmo diff --git a/gold/po/fi.gmo b/gold/po/fi.gmo Binary files differnew file mode 100644 index 0000000000..59175d3c1e --- /dev/null +++ b/gold/po/fi.gmo diff --git a/gold/po/id.gmo b/gold/po/id.gmo Binary files differnew file mode 100644 index 0000000000..bd5a80090e --- /dev/null +++ b/gold/po/id.gmo diff --git a/gold/po/vi.gmo b/gold/po/vi.gmo Binary files differnew file mode 100644 index 0000000000..4495ad787f --- /dev/null +++ b/gold/po/vi.gmo 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 Binary files differnew file mode 100644 index 0000000000..668ad6b296 --- /dev/null +++ b/gprof/po/bg.gmo diff --git a/gprof/po/da.gmo b/gprof/po/da.gmo Binary files differnew file mode 100644 index 0000000000..b432d9953d --- /dev/null +++ b/gprof/po/da.gmo diff --git a/gprof/po/de.gmo b/gprof/po/de.gmo Binary files differnew file mode 100644 index 0000000000..2f4dd2c2a0 --- /dev/null +++ b/gprof/po/de.gmo diff --git a/gprof/po/eo.gmo b/gprof/po/eo.gmo Binary files differnew file mode 100644 index 0000000000..13891b2e1e --- /dev/null +++ b/gprof/po/eo.gmo diff --git a/gprof/po/es.gmo b/gprof/po/es.gmo Binary files differnew file mode 100644 index 0000000000..a5f808ec30 --- /dev/null +++ b/gprof/po/es.gmo diff --git a/gprof/po/fi.gmo b/gprof/po/fi.gmo Binary files differnew file mode 100644 index 0000000000..082672a430 --- /dev/null +++ b/gprof/po/fi.gmo diff --git a/gprof/po/fr.gmo b/gprof/po/fr.gmo Binary files differnew file mode 100644 index 0000000000..2a6e7dc6d3 --- /dev/null +++ b/gprof/po/fr.gmo diff --git a/gprof/po/ga.gmo b/gprof/po/ga.gmo Binary files differnew file mode 100644 index 0000000000..5942da356d --- /dev/null +++ b/gprof/po/ga.gmo diff --git a/gprof/po/id.gmo b/gprof/po/id.gmo Binary files differnew file mode 100644 index 0000000000..e9c4293231 --- /dev/null +++ b/gprof/po/id.gmo diff --git a/gprof/po/ms.gmo b/gprof/po/ms.gmo Binary files differnew file mode 100644 index 0000000000..767768743c --- /dev/null +++ b/gprof/po/ms.gmo diff --git a/gprof/po/nl.gmo b/gprof/po/nl.gmo Binary files differnew file mode 100644 index 0000000000..32cf7dec33 --- /dev/null +++ b/gprof/po/nl.gmo diff --git a/gprof/po/pt_BR.gmo b/gprof/po/pt_BR.gmo Binary files differnew file mode 100644 index 0000000000..32876f7600 --- /dev/null +++ b/gprof/po/pt_BR.gmo diff --git a/gprof/po/ro.gmo b/gprof/po/ro.gmo Binary files differnew file mode 100644 index 0000000000..2b3e6066f0 --- /dev/null +++ b/gprof/po/ro.gmo diff --git a/gprof/po/ru.gmo b/gprof/po/ru.gmo Binary files differnew file mode 100644 index 0000000000..b4ee1269ea --- /dev/null +++ b/gprof/po/ru.gmo diff --git a/gprof/po/rw.gmo b/gprof/po/rw.gmo Binary files differnew file mode 100644 index 0000000000..a7a1d907d3 --- /dev/null +++ b/gprof/po/rw.gmo diff --git a/gprof/po/sv.gmo b/gprof/po/sv.gmo Binary files differnew file mode 100644 index 0000000000..6af90c7b33 --- /dev/null +++ b/gprof/po/sv.gmo diff --git a/gprof/po/tr.gmo b/gprof/po/tr.gmo Binary files differnew file mode 100644 index 0000000000..82735ab742 --- /dev/null +++ b/gprof/po/tr.gmo diff --git a/gprof/po/vi.gmo b/gprof/po/vi.gmo Binary files differnew file mode 100644 index 0000000000..91530d67a5 --- /dev/null +++ b/gprof/po/vi.gmo 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 Binary files differnew file mode 100644 index 0000000000..7562e74e8c --- /dev/null +++ b/ld/po/bg.gmo diff --git a/ld/po/da.gmo b/ld/po/da.gmo Binary files differnew file mode 100644 index 0000000000..f54a23fbd7 --- /dev/null +++ b/ld/po/da.gmo diff --git a/ld/po/es.gmo b/ld/po/es.gmo Binary files differnew file mode 100644 index 0000000000..0509cbb6ad --- /dev/null +++ b/ld/po/es.gmo diff --git a/ld/po/fi.gmo b/ld/po/fi.gmo Binary files differnew file mode 100644 index 0000000000..1d4f6d6643 --- /dev/null +++ b/ld/po/fi.gmo diff --git a/ld/po/fr.gmo b/ld/po/fr.gmo Binary files differnew file mode 100644 index 0000000000..24c9ae1c97 --- /dev/null +++ b/ld/po/fr.gmo diff --git a/ld/po/ga.gmo b/ld/po/ga.gmo Binary files differnew file mode 100644 index 0000000000..b3080443bc --- /dev/null +++ b/ld/po/ga.gmo diff --git a/ld/po/id.gmo b/ld/po/id.gmo Binary files differnew file mode 100644 index 0000000000..155f6077d2 --- /dev/null +++ b/ld/po/id.gmo diff --git a/ld/po/ja.gmo b/ld/po/ja.gmo Binary files differnew file mode 100644 index 0000000000..bfbd0c9d1f --- /dev/null +++ b/ld/po/ja.gmo diff --git a/ld/po/sv.gmo b/ld/po/sv.gmo Binary files differnew file mode 100644 index 0000000000..f7038a8a95 --- /dev/null +++ b/ld/po/sv.gmo diff --git a/ld/po/tr.gmo b/ld/po/tr.gmo Binary files differnew file mode 100644 index 0000000000..96d567be4a --- /dev/null +++ b/ld/po/tr.gmo diff --git a/ld/po/vi.gmo b/ld/po/vi.gmo Binary files differnew file mode 100644 index 0000000000..831bb46b6e --- /dev/null +++ b/ld/po/vi.gmo diff --git a/ld/po/zh_CN.gmo b/ld/po/zh_CN.gmo Binary files differnew file mode 100644 index 0000000000..39d17940d0 --- /dev/null +++ b/ld/po/zh_CN.gmo diff --git a/ld/po/zh_TW.gmo b/ld/po/zh_TW.gmo Binary files differnew file mode 100644 index 0000000000..23277b167c --- /dev/null +++ b/ld/po/zh_TW.gmo 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 Binary files differnew file mode 100644 index 0000000000..2f18a0030b --- /dev/null +++ b/opcodes/po/da.gmo diff --git a/opcodes/po/de.gmo b/opcodes/po/de.gmo Binary files differnew file mode 100644 index 0000000000..acd983f25e --- /dev/null +++ b/opcodes/po/de.gmo diff --git a/opcodes/po/es.gmo b/opcodes/po/es.gmo Binary files differnew file mode 100644 index 0000000000..510536b2ea --- /dev/null +++ b/opcodes/po/es.gmo diff --git a/opcodes/po/fi.gmo b/opcodes/po/fi.gmo Binary files differnew file mode 100644 index 0000000000..e7973141b4 --- /dev/null +++ b/opcodes/po/fi.gmo diff --git a/opcodes/po/fr.gmo b/opcodes/po/fr.gmo Binary files differnew file mode 100644 index 0000000000..8d6122358a --- /dev/null +++ b/opcodes/po/fr.gmo diff --git a/opcodes/po/ga.gmo b/opcodes/po/ga.gmo Binary files differnew file mode 100644 index 0000000000..fef67102ce --- /dev/null +++ b/opcodes/po/ga.gmo diff --git a/opcodes/po/id.gmo b/opcodes/po/id.gmo Binary files differnew file mode 100644 index 0000000000..4ad376403f --- /dev/null +++ b/opcodes/po/id.gmo diff --git a/opcodes/po/nl.gmo b/opcodes/po/nl.gmo Binary files differnew file mode 100644 index 0000000000..8e26600c2d --- /dev/null +++ b/opcodes/po/nl.gmo diff --git a/opcodes/po/pt_BR.gmo b/opcodes/po/pt_BR.gmo Binary files differnew file mode 100644 index 0000000000..083e8f4219 --- /dev/null +++ b/opcodes/po/pt_BR.gmo diff --git a/opcodes/po/ro.gmo b/opcodes/po/ro.gmo Binary files differnew file mode 100644 index 0000000000..6125448e62 --- /dev/null +++ b/opcodes/po/ro.gmo diff --git a/opcodes/po/sv.gmo b/opcodes/po/sv.gmo Binary files differnew file mode 100644 index 0000000000..2347bdcdad --- /dev/null +++ b/opcodes/po/sv.gmo diff --git a/opcodes/po/tr.gmo b/opcodes/po/tr.gmo Binary files differnew file mode 100644 index 0000000000..98b9df1535 --- /dev/null +++ b/opcodes/po/tr.gmo diff --git a/opcodes/po/vi.gmo b/opcodes/po/vi.gmo Binary files differnew file mode 100644 index 0000000000..28974e4c82 --- /dev/null +++ b/opcodes/po/vi.gmo diff --git a/opcodes/po/zh_CN.gmo b/opcodes/po/zh_CN.gmo Binary files differnew file mode 100644 index 0000000000..2bf6751c43 --- /dev/null +++ b/opcodes/po/zh_CN.gmo |