aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
Diffstat (limited to 'bfd')
-rwxr-xr-xbfd/Makefile149
-rwxr-xr-xbfd/aout.c1500
-rwxr-xr-xbfd/aoutx.c0
-rwxr-xr-xbfd/archures.h35
-rwxr-xr-xbfd/awkscan12
-rwxr-xr-xbfd/awkscan-ip8
-rwxr-xr-xbfd/awkscan-p8
-rwxr-xr-xbfd/bfd.doc705
-rwxr-xr-xbfd/bfd.doc.ps4564
-rwxr-xr-xbfd/bfd.texinfo492
-rwxr-xr-xbfd/blins-p8
-rwxr-xr-xbfd/coff-code.h2608
-rwxr-xr-xbfd/coffish.h601
-rwxr-xr-xbfd/coffswap.c123
-rwxr-xr-xbfd/config.sub446
-rwxr-xr-xbfd/configdos.bat6
-rwxr-xr-xbfd/configure774
-rwxr-xr-xbfd/cplus-dem.c942
-rwxr-xr-xbfd/doc/Makefile82
-rwxr-xr-xbfd/doc/awkscan12
-rwxr-xr-xbfd/doc/awkscan-ip8
-rwxr-xr-xbfd/doc/awkscan-p8
-rw-r--r--bfd/doc/bfd.info67
-rwxr-xr-xbfd/doc/bfdinfo1281
-rwxr-xr-xbfd/doc/blins-p8
-rwxr-xr-xbfd/doc/exfil1-p5
-rwxr-xr-xbfd/doc/exfil3-p16
-rwxr-xr-xbfd/doc/exfilter14
-rwxr-xr-xbfd/doc/exfilter-p12
-rwxr-xr-xbfd/doc/exfiltst8
-rwxr-xr-xbfd/doc/exmerge4
-rwxr-xr-xbfd/doc/intobfd13
-rwxr-xr-xbfd/doc/mergecom-p5
-rwxr-xr-xbfd/doc/movecom-p8
-rwxr-xr-xbfd/doc/scanit25
-rwxr-xr-xbfd/doc/scanph25
-rwxr-xr-xbfd/doc/sedscript85
-rwxr-xr-xbfd/doc/sedscript-p63
-rwxr-xr-xbfd/doc/startcom-p12
-rwxr-xr-xbfd/doc/tolibbfd10
-rwxr-xr-xbfd/doc/tolibcoff1
-rwxr-xr-xbfd/doc/unPROTO18
-rwxr-xr-xbfd/exfilter14
-rwxr-xr-xbfd/exmerge4
-rw-r--r--bfd/hosts/h-m68kv.h51
-rw-r--r--bfd/hosts/hp9000.h70
-rwxr-xr-xbfd/howto.c85
-rwxr-xr-xbfd/intobfd11
-rw-r--r--bfd/makefile.dos334
-rwxr-xr-xbfd/mergecom-p5
-rwxr-xr-xbfd/misc.c98
-rwxr-xr-xbfd/misc.h93
-rwxr-xr-xbfd/movecom-p8
-rwxr-xr-xbfd/obstack.c330
-rwxr-xr-xbfd/obstack.h413
-rw-r--r--bfd/opc-sparc.c1811
-rwxr-xr-xbfd/scanit24
-rwxr-xr-xbfd/scanph25
-rwxr-xr-xbfd/sedscript85
-rwxr-xr-xbfd/sedscript-p63
-rw-r--r--bfd/sparc-opc.c1870
-rwxr-xr-xbfd/startcom-p12
-rwxr-xr-xbfd/tolibbfd4
-rwxr-xr-xbfd/tolibcoff1
-rw-r--r--bfd/trad-core.h28
-rwxr-xr-xbfd/unPROTO18
66 files changed, 0 insertions, 20228 deletions
diff --git a/bfd/Makefile b/bfd/Makefile
deleted file mode 100755
index b20e954..0000000
--- a/bfd/Makefile
+++ /dev/null
@@ -1,149 +0,0 @@
-#
-# Copyright (C) 1990, 1991 Free Software Foundation, Inc.
-#
-# This file is part of BFD, the Binary File Diddler.
-#
-# BFD is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 1, or (at your option)
-# any later version.
-#
-# BFD is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with BFD; see the file COPYING. If not, write to
-# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-# $Id$
-
-srcdir=../common
-VPATH=../common
-RANLIB = ranlib
-CSWITCHES = -g # -Wall
-CC=gcc -Wall
-#__sun4__#CDEFINES=-DHOST_SYS=SUN4_SYS
-#__sun3__#CDEFINES=-DHOST_SYS=SUN3_SYS
-#__dgux__#CDEFINES=-DHOST_SYS=DGUX_SYS
-#__dgux__#RANLIB=echo
-INCDIR = ${srcdir}/../../include-cygnus
-CSEARCH = -I$(INCDIR)
-
-TARG = libbfd.a
-CFLAGS = $(CDEFINES) $(CSEARCH) $(CSWITCHES)
-
-
-BFD_LIBS = libbfd.o opncls.o bfd.o archive.o targets.o cache.o archures.o obstack.o
-
-BFD_BACKENDS = oasys.o ieee.o srec.o sunos.o icoff.o b.out.o m88k-bcs.o
-
-BFD_H=$(INCDIR)/bfd.h
-SYSDEP_H=$(INCDIR)/sysdep.h
-
-# C source files that correspond to .o's.
-CFILES = libbfd.c opncls.c bfd.c archive.c targets.c cache.c archures.c \
- sunos.c icoff.c b.out.c srec.c oasys.c ieee.c m88k-bcs.c
-
-all: $(TARG)
-
-POINTOS = $(BFD_LIBS) $(BFD_BACKENDS)
-
-$(TARG): $(POINTOS)
- rm -f $(TARG)
- ar clq $(TARG) $(BFD_LIBS) $(BFD_BACKENDS)
- $(RANLIB) $(TARG)
-
-tags etags: TAGS
-
-TAGS: .force
- etags $(INCDIR)/*.h *.h *.c
-
-clean:
- rm -f $(BFD_LIBS) $(BFD_BACKENDS) *~ core libbfd.a
-
-clobber realclean: clean
- rm -f libbfd.a TAGS
-
-$(BFD_LIBS) $(BFD_BACKENDS): libbfd.h $(BFD_H)
-
-archive.o : archive.c libbfd.h $(BFD_H) $(SYSDEP_H)
-archures.o : archures.c $(BFD_H) $(SYSDEP_H) archures.h
-b.out.o : b.out.c libbfd.h $(BFD_H) $(SYSDEP_H) liba.out.h archures.h
-m88k-bcs.o: m88k-bcs.c libbfd.h $(BFD_H) $(SYSDEP_H) libcoff.h coff-code.h archures.h
-bfd.o : bfd.c libbfd.h $(BFD_H) $(SYSDEP_H)
-cache.o : cache.c libbfd.h $(BFD_H) $(SYSDEP_H)
-coff.o : coff.c
-cplus-dem.o : cplus-dem.c
-filemode.o : filemode.c
-icoff.o : icoff.c libbfd.h $(BFD_H) $(SYSDEP_H) libcoff.h coff-code.h archures.h
-libbfd.o : libbfd.c libbfd.h $(BFD_H) $(SYSDEP_H)
-misc.o : misc.c
-opncls.o : opncls.c libbfd.h $(BFD_H) $(SYSDEP_H)
-sunos.o : sunos.c libbfd.h $(BFD_H) $(SYSDEP_H) liba.out.h
-targets.o : targets.c libbfd.h $(BFD_H) $(SYSDEP_H)
-obstack.o:obstack.c
-ieee.o:ieee.c
-oasys.o:oasys.c
-srec.o:srec.c
-
-
-
-version.c: FORCE
- rm -f version.c
- echo "char ${TARG}_ver[]= \"${TARG} `cat VERSION`, `date`\";" > version.c
-
-
-# This target should be invoked before building a new release.
-# 'VERSION' file must be present and contain a string of the form "x.y"
-#
-roll:
- @V=`cat VERSION` ; \
- MAJ=`sed 's/\..*//' VERSION` ; \
- MIN=`sed 's/.*\.//' VERSION` ; \
- V=$$MAJ.`expr $$MIN + 1` ; \
- rm -f VERSION ; \
- echo $$V >VERSION ; \
- echo Version $$V
-
-# Dummy target to force execution of dependent targets.
-#
-.force:
-FORCE:
-
-# 'G960BASE' will be defined at invocation
-install:
- make ${TARG} OPT=-O
-
-# Target to uncomment host-specific lines in this makefile. Such lines must
-# have the following string beginning in column 1: #__<hostname>__#
-# Original Makefile is backed up as 'Makefile.old'.
-#
-# Invoke with: make make HOST=xxx
-#
-make:
- -@if test $(HOST)x = x ; then \
- echo 'Specify "make make HOST=???"'; \
- exit 1; \
- fi ; \
- grep -s "^#The next line was generated by 'make make'" Makefile; \
- if test $$? = 0 ; then \
- echo "Makefile has already been processed with 'make make'";\
- exit 1; \
- fi ; \
- mv -f Makefile Makefile.old; \
- echo "# " >Makefile ;\
- echo "# " >>Makefile ;\
- echo "# D A N G E R" >>Makefile ;\
- echo "# " >>Makefile ;\
- echo "# This file was created by make make, change the source in ../common" >>Makefile ; \
- echo "#The next line was generated by 'make make'" >>Makefile ; \
- echo "HOST=$(HOST)" >>Makefile ; \
- echo >>Makefile ; \
- sed "s/^#__$(HOST)__#//" < Makefile.old >>Makefile
-
-Makefile: ../common/Makefile
- mv Makefile Makefile.backup
- cp ../common/Makefile .
- $(MAKE) "HOST=$(HOST)" make
diff --git a/bfd/aout.c b/bfd/aout.c
deleted file mode 100755
index 8a795e2..0000000
--- a/bfd/aout.c
+++ /dev/null
@@ -1,1500 +0,0 @@
-/* BFD semi-generic back-end for a.out binaries */
-
-/* Copyright (C) 1990, 1991 Free Software Foundation, Inc.
-
-This file is part of BFD, the Binary File Diddler.
-
-BFD is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
-
-BFD is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with BFD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-
-#include <ansidecl.h>
-#include <sysdep.h>
-#include "bfd.h"
-#include "libbfd.h"
-
-#include "a.out.gnu.h"
-#include "stab.gnu.h"
-#include "ar.h"
-#include "liba.out.h" /* BFD a.out internal data structures */
-
-void (*bfd_error_trap)();
-
-/*SUPPRESS558*/
-/*SUPPRESS529*/
-
-#define CTOR_TABLE_RELOC_IDX 2
-static reloc_howto_type howto_table_ext[] =
-{
- HOWTO(RELOC_8, 0, 0, 8, false, 0, true, true,0,"8", false, 0,0x000000ff, false),
- HOWTO(RELOC_16, 0, 1, 16, false, 0, true, true,0,"16", false, 0,0x0000ffff, false),
- HOWTO(RELOC_32, 0, 2, 32, false, 0, true, true,0,"32", false, 0,0xffffffff, false),
- HOWTO(RELOC_DISP8, 0, 0, 8, true, 0, false, true,0,"DISP8", false, 0,0x000000ff, false),
- HOWTO(RELOC_DISP16, 0, 1, 16, true, 0, false, true,0,"DISP16", false, 0,0x0000ffff, false),
- HOWTO(RELOC_DISP32, 0, 2, 32, true, 0, false, true,0,"DISP32", false, 0,0xffffffff, false),
- HOWTO(RELOC_WDISP30,2, 2, 30, true, 0, false, true,0,"WDISP30", false, 0,0x3fffffff, false),
- HOWTO(RELOC_WDISP22,2, 2, 22, true, 0, false, true,0,"WDISP22", false, 0,0x003fffff, false),
- HOWTO(RELOC_HI22, 10, 2, 22, false, 0, false, true,0,"HI22", false, 0,0x003fffff, false),
- HOWTO(RELOC_22, 0, 2, 22, false, 0, false, true,0,"22", false, 0,0x003fffff, false),
- HOWTO(RELOC_13, 0, 2, 13, false, 0, false, true,0,"13", false, 0,0x00001fff, false),
- HOWTO(RELOC_LO10, 0, 2, 10, false, 0, false, true,0,"LO10", false, 0,0x000003ff, false),
- HOWTO(RELOC_SFA_BASE,0, 2, 32, false, 0, false, true,0,"SFA_BASE", false, 0,0xffffffff, false),
- HOWTO(RELOC_SFA_OFF13,0,2, 32, false, 0, false, true,0,"SFA_OFF13",false, 0,0xffffffff, false),
- HOWTO(RELOC_BASE10, 0, 2, 16, false, 0, false, true,0,"BASE10", false, 0,0x0000ffff, false),
- HOWTO(RELOC_BASE13, 0, 2, 13, false, 0, false, true,0,"BASE13", false, 0,0x00001fff, false),
- HOWTO(RELOC_BASE22, 0, 2, 0, false, 0, false, true,0,"BASE22", false, 0,0x00000000, false),
- HOWTO(RELOC_PC10, 0, 2, 10, false, 0, false, true,0,"PC10", false, 0,0x000003ff, false),
- HOWTO(RELOC_PC22, 0, 2, 22, false, 0, false, true,0,"PC22", false, 0,0x003fffff, false),
- HOWTO(RELOC_JMP_TBL,0, 2, 32, false, 0, false, true,0,"JMP_TBL", false, 0,0xffffffff, false),
- HOWTO(RELOC_SEGOFF16,0, 2, 0, false, 0, false, true,0,"SEGOFF16", false, 0,0x00000000, false),
- HOWTO(RELOC_GLOB_DAT,0, 2, 0, false, 0, false, true,0,"GLOB_DAT", false, 0,0x00000000, false),
- HOWTO(RELOC_JMP_SLOT,0, 2, 0, false, 0, false, true,0,"JMP_SLOT", false, 0,0x00000000, false),
- HOWTO(RELOC_RELATIVE,0, 2, 0, false, 0, false, true,0,"RELATIVE", false, 0,0x00000000, false),
- HOWTO(RELOC_JUMPTARG,2, 13, 16, true, 0, false, true,0,"JUMPTARG", false, 0,0x0000ffff, false),
- HOWTO(RELOC_CONST, 0, 13, 16, false, 0, false, true,0,"CONST", false, 0,0x0000ffff, false),
- HOWTO(RELOC_CONSTH, 16, 13, 16, false, 0, false, true,0,"CONSTH", false, 0,0x0000ffff, false),
-};
-
-/* Convert standard reloc records to "arelent" format (incl byte swap). */
-
-static reloc_howto_type howto_table_std[] = {
- /* type rs size bsz pcrel bitpos abs ovrf sf name part_inpl readmask setmask pcdone */
-HOWTO( 0, 0, 0, 8, false, 0, true, true,0,"8", true, 0x000000ff,0x000000ff, false),
-HOWTO( 1, 0, 1, 16, false, 0, true, true,0,"16", true, 0x0000ffff,0x0000ffff, false),
-HOWTO( 2, 0, 2, 32, false, 0, true, true,0,"32", true, 0xffffffff,0xffffffff, false),
-HOWTO( 3, 0, 3, 64, false, 0, true, true,0,"64", true, 0xdeaddead,0xdeaddead, false),
-HOWTO( 4, 0, 0, 8, true, 0, false, true,0,"DISP8", true, 0x000000ff,0x000000ff, false),
-HOWTO( 5, 0, 1, 16, true, 0, false, true,0,"DISP16", true, 0x0000ffff,0x0000ffff, false),
-HOWTO( 6, 0, 2, 32, true, 0, false, true,0,"DISP32", true, 0xffffffff,0xffffffff, false),
-HOWTO( 7, 0, 3, 64, true, 0, false, true,0,"DISP64", true, 0xfeedface,0xfeedface, false),
-};
-
-
-bfd_error_vector_type bfd_error_vector;
-
-void
-DEFUN(bfd_aout_swap_exec_header_in,(abfd, raw_bytes, execp),
- bfd *abfd AND
- unsigned char *raw_bytes AND
- struct exec *execp)
-{
- struct exec_bytes *bytes = (struct exec_bytes *)raw_bytes;
-
- /* Now fill in fields in the execp, from the bytes in the raw data. */
- execp->a_info = bfd_h_getlong (abfd, bytes->a_info);
- execp->a_text = bfd_h_getlong (abfd, bytes->a_text);
- execp->a_data = bfd_h_getlong (abfd, bytes->a_data);
- execp->a_bss = bfd_h_getlong (abfd, bytes->a_bss);
- execp->a_syms = bfd_h_getlong (abfd, bytes->a_syms);
- execp->a_entry = bfd_h_getlong (abfd, bytes->a_entry);
- execp->a_trsize = bfd_h_getlong (abfd, bytes->a_trsize);
- execp->a_drsize = bfd_h_getlong (abfd, bytes->a_drsize);
-}
-
-void
-DEFUN(bfd_aout_swap_exec_header_out,(abfd, execp, raw_bytes),
- bfd *abfd AND
- struct exec *execp AND
- unsigned char *raw_bytes)
-{
- struct exec_bytes *bytes = (struct exec_bytes *)raw_bytes;
-
- /* Now fill in fields in the raw data, from the fields in the exec struct. */
- bfd_h_putlong (abfd, execp->a_info , bytes->a_info);
- bfd_h_putlong (abfd, execp->a_text , bytes->a_text);
- bfd_h_putlong (abfd, execp->a_data , bytes->a_data);
- bfd_h_putlong (abfd, execp->a_bss , bytes->a_bss);
- bfd_h_putlong (abfd, execp->a_syms , bytes->a_syms);
- bfd_h_putlong (abfd, execp->a_entry , bytes->a_entry);
- bfd_h_putlong (abfd, execp->a_trsize, bytes->a_trsize);
- bfd_h_putlong (abfd, execp->a_drsize, bytes->a_drsize);
-}
-
-/* Some A.OUT variant thinks that the file whose format we're 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. */
-
-bfd_target *
-some_aout_object_p (abfd, callback_to_real_object_p)
- bfd *abfd;
- bfd_target *(*callback_to_real_object_p) ();
-{
- unsigned char exec_bytes[EXEC_BYTES_SIZE]; /* Raw bytes of exec hdr */
- struct exec *execp;
- PTR rawptr;
-
- if (bfd_seek (abfd, 0L, false) < 0) {
- bfd_error = system_call_error;
- return 0;
- }
-
- if (bfd_read ((PTR) exec_bytes, 1, EXEC_BYTES_SIZE, abfd)
- != EXEC_BYTES_SIZE) {
- bfd_error = wrong_format;
- return 0;
- }
-
- /* Use an intermediate variable for clarity */
- rawptr = (PTR) bfd_zalloc (abfd, sizeof (struct aoutdata) + sizeof (struct exec));
-
- if (rawptr == NULL) {
- bfd_error = no_memory;
- return 0;
- }
-
- set_tdata (abfd, ((struct aoutdata *) rawptr));
- exec_hdr (abfd) = execp =
- (struct exec *) ((char *)rawptr + sizeof (struct aoutdata));
-
- bfd_aout_swap_exec_header_in (abfd, exec_bytes, execp);
-
- /* Set the file flags */
- abfd->flags = NO_FLAGS;
- if (execp->a_drsize || execp->a_trsize)
- abfd->flags |= HAS_RELOC;
- if (execp->a_entry)
- abfd->flags |= EXEC_P;
- if (execp->a_syms)
- abfd->flags |= HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS;
-
- if (N_MAGIC (*execp) == ZMAGIC) abfd->flags |= D_PAGED;
- if (N_MAGIC (*execp) == NMAGIC) abfd->flags |= WP_TEXT;
-
- bfd_get_start_address (abfd) = execp->a_entry;
-
- obj_aout_symbols (abfd) = (aout_symbol_type *)NULL;
- bfd_get_symcount (abfd) = execp->a_syms / sizeof (struct nlist);
-
- /* Set the default architecture and machine type. These can be
- overridden in the callback routine. */
- abfd->obj_arch = bfd_arch_unknown;
- abfd->obj_machine = 0;
-
- /* The default relocation entry size is that of traditional V7 Unix. */
- obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
-
- /* create the sections. This is raunchy, but bfd_close wants to reclaim
- them */
- obj_textsec (abfd) = (asection *)NULL;
- obj_datasec (abfd) = (asection *)NULL;
- obj_bsssec (abfd) = (asection *)NULL;
- (void)bfd_make_section(abfd, ".text");
- (void)bfd_make_section(abfd, ".data");
- (void)bfd_make_section(abfd, ".bss");
-
- abfd->sections = obj_textsec (abfd);
- obj_textsec (abfd)->next = obj_datasec (abfd);
- obj_datasec (abfd)->next = obj_bsssec (abfd);
-
- obj_datasec (abfd)->size = execp->a_data;
- obj_bsssec (abfd)->size = execp->a_bss;
- obj_textsec (abfd)->size = execp->a_text;
-
- if (abfd->flags & D_PAGED) {
- obj_textsec (abfd)->size -= EXEC_BYTES_SIZE;
- }
-
-
- obj_textsec (abfd)->flags = (execp->a_trsize != 0 ?
- (SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_HAS_CONTENTS) :
- (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS));
- obj_datasec (abfd)->flags = (execp->a_drsize != 0 ?
- (SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_HAS_CONTENTS) :
- (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS));
- obj_bsssec (abfd)->flags = SEC_ALLOC;
-
-#ifdef THIS_IS_ONLY_DOCUMENTATION
- /* Call back to the format-dependent code to fill in the rest of the
- fields and do any further cleanup. Things that should be filled
- in by the callback: */
-
- struct exec *execp = exec_hdr (abfd);
-
- /* The virtual memory addresses of the sections */
- obj_datasec (abfd)->vma = N_DATADDR(*execp);
- obj_bsssec (abfd)->vma = N_BSSADDR(*execp);
- obj_textsec (abfd)->vma = N_TXTADDR(*execp);
-
- /* The file offsets of the sections */
- obj_textsec (abfd)->filepos = N_TXTOFF(*execp);
- obj_datasec (abfd)->filepos = N_DATOFF(*execp);
-
- /* The file offsets of the relocation info */
- obj_textsec (abfd)->rel_filepos = N_TRELOFF(*execp);
- obj_datasec (abfd)->rel_filepos = N_DRELOFF(*execp);
-
- /* The file offsets of the string table and symbol table. */
- obj_str_filepos (abfd) = N_STROFF (*execp);
- obj_sym_filepos (abfd) = N_SYMOFF (*execp);
-
- /* This common code can't fill in those things because they depend
- on either the start address of the text segment, the rounding
- up of virtual addersses between segments, or the starting file
- position of the text segment -- all of which varies among different
- versions of a.out. */
-
- /* Determine the architecture and machine type of the object file. */
- switch (N_MACHTYPE (*exec_hdr (abfd))) {
- default:
- abfd->obj_arch = bfd_arch_obscure;
- break;
- }
-
- /* Determine the size of a relocation entry */
- switch (abfd->obj_arch) {
- case bfd_arch_sparc:
- case bfd_arch_a29k:
- obj_reloc_entry_size (abfd) = RELOC_EXT_SIZE;
- default:
- obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
- }
-
- return abfd->xvec;
-
- /* The architecture is encoded in various ways in various a.out variants,
- or is not encoded at all in some of them. The relocation size depends
- on the architecture and the a.out variant. Finally, the return value
- is the bfd_target vector in use. If an error occurs, return zero and
- set bfd_error to the appropriate error code.
-
- Formats such as b.out, which have additional fields in the a.out
- header, should cope with them in this callback as well. */
-#endif /* DOCUMENTATION */
-
-
- return (*callback_to_real_object_p)(abfd);
-}
-
-
-boolean
-aout_mkobject (abfd)
- bfd *abfd;
-{
- char *rawptr;
-
- bfd_error = system_call_error;
-
- /* Use an intermediate variable for clarity */
- rawptr = bfd_zalloc (abfd, sizeof (struct aoutdata) + sizeof (struct exec));
-
- if (rawptr == NULL) {
- bfd_error = no_memory;
- return false;
- }
-
- set_tdata (abfd, (struct aoutdata *) rawptr);
- exec_hdr (abfd) = (struct exec *) (rawptr + sizeof (struct aoutdata));
-
- /* For simplicity's sake we just make all the sections right here. */
-
- obj_textsec (abfd) = (asection *)NULL;
- obj_datasec (abfd) = (asection *)NULL;
- obj_bsssec (abfd) = (asection *)NULL;
- bfd_make_section (abfd, ".text");
- bfd_make_section (abfd, ".data");
- bfd_make_section (abfd, ".bss");
-
- return true;
-}
-
-/* Keep track of machine architecture and machine type for a.out's.
- Return the machine_type for a particular arch&machine, or M_UNKNOWN
- if that exact arch&machine can't be represented in a.out format.
-
- If the architecture is understood, machine type 0 (default) should
- always be understood. */
-
-enum machine_type
-aout_machine_type (arch, machine)
- enum bfd_architecture arch;
- unsigned long machine;
-{
- enum machine_type arch_flags;
-
- arch_flags = M_UNKNOWN;
-
- switch (arch) {
- case bfd_arch_sparc:
- if (machine == 0) arch_flags = M_SPARC;
- break;
-
- case bfd_arch_m68k:
- switch (machine) {
- case 0: arch_flags = M_68010; break;
- case 68000: arch_flags = M_UNKNOWN; break;
- case 68010: arch_flags = M_68010; break;
- case 68020: arch_flags = M_68020; break;
- default: arch_flags = M_UNKNOWN; break;
- }
- break;
-
- case bfd_arch_i386:
- if (machine == 0) arch_flags = M_386;
- break;
-
- case bfd_arch_a29k:
- if (machine == 0) arch_flags = M_29K;
- break;
-
- default:
- arch_flags = M_UNKNOWN;
- break;
- }
- return arch_flags;
-}
-
-boolean
-aout_set_arch_mach (abfd, arch, machine)
- bfd *abfd;
- enum bfd_architecture arch;
- unsigned long machine;
-{
- abfd->obj_arch = arch;
- abfd->obj_machine = machine;
- if (arch != bfd_arch_unknown &&
- aout_machine_type (arch, machine) == M_UNKNOWN)
- return false; /* We can't represent this type */
- return true; /* We're easy ... */
-}
-
-/* exec and core file sections */
-
-boolean
-aout_new_section_hook (abfd, newsect)
- bfd *abfd;
- asection *newsect;
-{
- /* align to double at least */
- newsect->alignment_power = 3;
-
- if (bfd_get_format (abfd) == bfd_object) {
- if (obj_textsec(abfd) == NULL && !strcmp(newsect->name, ".text")) {
- obj_textsec(abfd)= newsect;
- return true;
- }
-
- if (obj_datasec(abfd) == NULL && !strcmp(newsect->name, ".data")) {
- obj_datasec(abfd) = newsect;
- return true;
- }
-
- if (obj_bsssec(abfd) == NULL && !strcmp(newsect->name, ".bss")) {
- obj_bsssec(abfd) = newsect;
- return true;
- }
- }
-
- /* We allow more than three sections internally */
- return true;
-}
-
-boolean
-aout_set_section_contents (abfd, section, location, offset, count)
- bfd *abfd;
- sec_ptr section;
- PTR location;
- file_ptr offset;
- int count;
-{
- if (abfd->output_has_begun == false)
- { /* set by bfd.c handler */
- if ((obj_textsec (abfd) == NULL) || (obj_datasec (abfd) == NULL))
- {
- bfd_error = invalid_operation;
- return false;
- }
-
- obj_textsec(abfd)->filepos = sizeof(struct exec);
- obj_textsec(abfd)->size = align_power(obj_textsec(abfd)->size,
- obj_textsec(abfd)->alignment_power);
- obj_datasec(abfd)->filepos = obj_textsec (abfd)->size + EXEC_BYTES_SIZE;
- obj_datasec(abfd)->size = align_power(obj_datasec(abfd)->size,
- obj_datasec(abfd)->alignment_power);
-
-
- }
- /* regardless, once we know what we're doing, we might as well get going */
- if (section != obj_bsssec(abfd))
- {
- bfd_seek (abfd, section->filepos + offset, SEEK_SET);
-
- if (count) {
- return (bfd_write ((PTR)location, 1, count, abfd) == count) ?
- true : false;
- }
- return false;
- }
- return true;
-}
-
-/* Classify stabs symbols */
-
-#define sym_in_text_section(sym) \
- (((sym)->n_type & (N_ABS | N_TEXT | N_DATA | N_BSS))== N_TEXT)
-
-#define sym_in_data_section(sym) \
- (((sym)->n_type & (N_ABS | N_TEXT | N_DATA | N_BSS))== N_DATA)
-
-#define sym_in_bss_section(sym) \
- (((sym)->n_type & (N_ABS | N_TEXT | N_DATA | N_BSS))== N_BSS)
-
-/* Symbol is undefined if type is N_UNDF|N_EXT and if it has
- zero in the "value" field. Nonzeroes there are fortrancommon
- symbols. */
-#define sym_is_undefined(sym) \
- ((sym)->n_type == (N_UNDF | N_EXT) && (sym)->n_value == 0)
-
-/* Symbol is a global definition if N_EXT is on and if it has
- a nonzero type field. */
-#define sym_is_global_defn(sym) \
- (((sym)->n_type & N_EXT) && (sym)->n_type & N_TYPE)
-
-/* Symbol is debugger info if any bits outside N_TYPE or N_EXT
- are on. */
-#define sym_is_debugger_info(sym) \
- ((sym)->n_type & ~(N_EXT | N_TYPE))
-
-#define sym_is_fortrancommon(sym) \
- (((sym)->n_type == (N_EXT)) && (sym)->n_value != 0)
-
-/* Symbol is absolute if it has N_ABS set */
-#define sym_is_absolute(sym) \
- (((sym)->n_type & N_TYPE)== N_ABS)
-
-
-#define sym_is_indirect(sym) \
- (((sym)->n_type & N_ABS)== N_ABS)
-
-/* Only in their own functions for ease of debugging; when sym flags have
- stabilised these should be inlined into their (single) caller */
-
-static void
-translate_from_native_sym_flags (sym_pointer, cache_ptr, abfd)
- struct nlist *sym_pointer;
- aout_symbol_type *cache_ptr;
- bfd *abfd;
-{
- switch (cache_ptr->type & N_TYPE) {
- case N_SETA:
- case N_SETT:
- case N_SETD:
- case N_SETB:
- {
- asection *section = bfd_make_section(abfd,
- cache_ptr->symbol.name);
- arelent_chain *reloc = (arelent_chain *)bfd_alloc(abfd, sizeof(arelent_chain));
-
- switch ( (cache_ptr->type & N_TYPE) ) {
- case N_SETA:
- reloc->relent.section = (asection *)NULL;
- cache_ptr->symbol.section = (asection *)NULL;
- break;
- case N_SETT:
- reloc->relent.section = (asection *)obj_textsec(abfd);
- cache_ptr->symbol.value -= reloc->relent.section->vma;
- break;
- case N_SETD:
- reloc->relent.section = (asection *)obj_datasec(abfd);
- cache_ptr->symbol.value -= reloc->relent.section->vma;
- break;
- case N_SETB:
- reloc->relent.section = (asection *)obj_bsssec(abfd);
- cache_ptr->symbol.value -= reloc->relent.section->vma;
- break;
- }
- cache_ptr->symbol.section = reloc->relent.section;
- reloc->relent.addend = cache_ptr->symbol.value ;
-
- /* We modify the symbol to belong to a section depending upon the
- name of the symbol - probably __CTOR__ or __DTOR__ but we don't
- really care, and add to the size of the section to contain a
- pointer to the symbol. Build a reloc entry to relocate to this
- symbol attached to this section. */
-
- section->flags = SEC_CONSTRUCTOR;
- section->reloc_count++;
- section->alignment_power = 2;
- reloc->relent.sym_ptr_ptr = (asymbol **)NULL;
- reloc->next = section->constructor_chain;
- section->constructor_chain = reloc;
- reloc->relent.address = section->size;
- section->size += sizeof(int *);
-
- reloc->relent.howto = howto_table_ext +CTOR_TABLE_RELOC_IDX;
- cache_ptr->symbol.flags |= BSF_DEBUGGING ;
- }
- break;
- default:
-
- if (sym_is_debugger_info (sym_pointer)) {
- cache_ptr->symbol.flags = BSF_DEBUGGING ;
- /* Work out the section correct for this symbol */
- switch (sym_pointer->n_type & N_TYPE)
- {
- case N_TEXT:
- case N_FN:
- cache_ptr->symbol.section = obj_textsec (abfd);
- cache_ptr->symbol.value -= obj_textsec(abfd)->vma;
- break;
- case N_DATA:
- cache_ptr->symbol.value -= obj_datasec(abfd)->vma;
- cache_ptr->symbol.section = obj_datasec (abfd);
- break;
- case N_BSS :
- cache_ptr->symbol.section = obj_bsssec (abfd);
- cache_ptr->symbol.value -= obj_bsssec(abfd)->vma;
- break;
- case N_ABS:
- default:
- cache_ptr->symbol.section = 0;
- break;
- }
- }
- else {
- if (sym_is_fortrancommon (sym_pointer))
- {
- cache_ptr->symbol.flags = BSF_FORT_COMM;
- cache_ptr->symbol.section = (asection *)NULL;
- }
- else {
- if (sym_is_undefined (sym_pointer)) {
- cache_ptr->symbol.flags = BSF_UNDEFINED;
- }
- else if (sym_is_global_defn (sym_pointer)) {
- cache_ptr->symbol.flags = BSF_GLOBAL | BSF_EXPORT;
- }
-
- else if (sym_is_absolute (sym_pointer)) {
- cache_ptr->symbol.flags = BSF_ABSOLUTE;
- }
- else {
- cache_ptr->symbol.flags = BSF_LOCAL;
- }
-
- /* In a.out, the value of a symbol is always relative to the
- * start of the file, if this is a data symbol we'll subtract
- * the size of the text section to get the section relative
- * value. If this is a bss symbol (which would be strange)
- * we'll subtract the size of the previous two sections
- * to find the section relative address.
- */
-
- if (sym_in_text_section (sym_pointer)) {
- cache_ptr->symbol.value -= obj_textsec(abfd)->vma;
- cache_ptr->symbol.section = obj_textsec (abfd);
- }
- else if (sym_in_data_section (sym_pointer)){
- cache_ptr->symbol.value -= obj_datasec(abfd)->vma;
- cache_ptr->symbol.section = obj_datasec (abfd);
- }
- else if (sym_in_bss_section(sym_pointer)) {
- cache_ptr->symbol.section = obj_bsssec (abfd);
- cache_ptr->symbol.value -= obj_bsssec(abfd)->vma;
- }
- else {
- cache_ptr->symbol.section = (asection *)NULL;
- cache_ptr->symbol.flags |= BSF_ABSOLUTE;
- }
- }
- }
- }
-}
-
-void
-translate_to_native_sym_flags (sym_pointer, cache_ptr_g, abfd)
- struct nlist *sym_pointer;
- PTR cache_ptr_g;
- bfd *abfd;
-{
- asymbol *cache_ptr = (asymbol *)cache_ptr_g;
-
- /* FIXME check for writing bss */
- if (bfd_get_section(cache_ptr)) {
- if (bfd_get_output_section(cache_ptr) == obj_bsssec (abfd)) {
- sym_pointer->n_type |= N_BSS;
- }
- else if (bfd_get_output_section(cache_ptr) == obj_datasec (abfd)) {
- sym_pointer->n_type |= N_DATA;
- }
- else if (bfd_get_output_section(cache_ptr) == obj_textsec (abfd)) {
- sym_pointer->n_type |= N_TEXT;
- }
- else {
- bfd_error_vector.nonrepresentable_section(abfd,
- bfd_get_output_section(cache_ptr)->name);
- }
- /* Turn the symbol from section relative to absolute again */
- sym_pointer->n_value +=
- cache_ptr->section->output_section->vma
- + cache_ptr->section->output_offset ;
- }
- else {
- sym_pointer->n_type |= N_ABS;
- }
-
- if (cache_ptr->flags & (BSF_FORT_COMM | BSF_UNDEFINED)) {
- sym_pointer->n_type = (N_UNDF | N_EXT);
- return;
- }
-
- if (cache_ptr->flags & BSF_ABSOLUTE) {
- sym_pointer->n_type |= N_ABS;
- }
-
- if (cache_ptr->flags & (BSF_GLOBAL | BSF_EXPORT)) {
- sym_pointer->n_type |= N_EXT;
- }
- if (cache_ptr->flags & BSF_DEBUGGING) {
- sym_pointer->n_type = ((aout_symbol_type *)cache_ptr)->type;
- }
-}
-
-/* Native-level interface to symbols. */
-
-/* We read the symbols into a buffer, which is discarded when this
- function exits. We read the strings into a buffer large enough to
- hold them all plus all the cached symbol entries. */
-
-asymbol *
-aout_make_empty_symbol (abfd)
-bfd *abfd;
-{
- aout_symbol_type *new =
- (aout_symbol_type *)bfd_zalloc (abfd, sizeof (aout_symbol_type));
- new->symbol.the_bfd = abfd;
-
- return &new->symbol;
-}
-
-boolean
-DEFUN(aout_slurp_symbol_table, (abfd),
- bfd *abfd)
-{
- size_t symbol_size;
- size_t string_size;
- unsigned char string_chars[LONG_SIZE];
- struct nlist *syms;
- char *strings;
- aout_symbol_type *cached;
-
- /* If there's no work to be done, don't do any */
- if (obj_aout_symbols (abfd) != (aout_symbol_type *)NULL) return true;
- symbol_size = exec_hdr(abfd)->a_syms;
- if (symbol_size == 0) {
- bfd_error = no_symbols;
- return false;
- }
-
- bfd_seek (abfd, obj_str_filepos (abfd), SEEK_SET);
- if (bfd_read ((PTR)string_chars, LONG_SIZE, 1, abfd) != LONG_SIZE)
- return false;
- string_size = bfd_h_getlong (abfd, string_chars);
-
- strings = bfd_alloc(abfd, string_size + 1);
- cached = (aout_symbol_type *)
- bfd_zalloc(abfd, bfd_get_symcount (abfd) * sizeof(aout_symbol_type));
- /* Alloc this last, so we can free it if obstack is in use. */
- syms = (struct nlist *) bfd_alloc(abfd, symbol_size);
-
- bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET);
- if (bfd_read ((PTR)syms, 1, symbol_size, abfd) != symbol_size) {
- bailout:
- if (syms) bfd_release (abfd, syms);
- if (cached) bfd_release (abfd, cached);
- if (strings)bfd_release (abfd, strings);
- return false;
- }
-
- bfd_seek (abfd, obj_str_filepos (abfd), SEEK_SET);
- if (bfd_read ((PTR)strings, 1, string_size, abfd) != string_size) {
- goto bailout;
- }
-
- /* OK, now walk the new symtable, cacheing symbol properties */
- {
- register struct nlist *sym_pointer;
- register struct nlist *sym_end = syms + bfd_get_symcount (abfd);
- register aout_symbol_type *cache_ptr = cached;
-
- /* run through the table and byte swap if needed */
- for (sym_pointer = syms; sym_pointer < sym_end; sym_pointer++) {
- sym_pointer->n_un.n_strx =
- bfd_h_getlong (abfd, &sym_pointer->n_un.n_strx);
- sym_pointer->n_desc =
- bfd_h_getshort (abfd, &sym_pointer->n_desc);
- sym_pointer->n_value =
- bfd_h_getlong (abfd, &sym_pointer->n_value);
- sym_pointer->n_other = (char)
- bfd_h_getchar(abfd, &sym_pointer->n_other);
- sym_pointer->n_type = (char)
- bfd_h_getchar(abfd, &sym_pointer->n_type);
- }
-
- /* Run through table and copy values */
- for (sym_pointer = syms, cache_ptr = cached;
- sym_pointer < sym_end; sym_pointer++, cache_ptr++)
- {
- cache_ptr->symbol.the_bfd = abfd;
- if (sym_pointer->n_un.n_strx)
- cache_ptr->symbol.name = sym_pointer->n_un.n_strx + strings;
- else
- cache_ptr->symbol.name = (char *)NULL;
- cache_ptr->symbol.value = sym_pointer->n_value;
- cache_ptr->desc = sym_pointer->n_desc;
- cache_ptr->other = sym_pointer->n_other;
- cache_ptr->type = sym_pointer->n_type;
- cache_ptr->symbol.udata = 0;
- translate_from_native_sym_flags (sym_pointer, cache_ptr, abfd);
-
- }
- }
-
- obj_aout_symbols (abfd) = cached;
- bfd_release (abfd, (PTR)syms);
-
- return true;
-}
-
-
-void
-DEFUN(aout_write_syms,(abfd),
- bfd *abfd)
-{
- unsigned int count ;
- asymbol **generic = bfd_get_outsymbols (abfd);
-
- unsigned int stindex = sizeof(stindex); /* initial string length */
-
- for (count = 0; count < bfd_get_symcount (abfd); count++) {
- asymbol *g = generic[count];
- struct nlist nsp;
-
- if (g->name) {
- unsigned int length = strlen(g->name) +1;
- bfd_h_putlong (abfd, stindex, (unsigned char *)&nsp.n_un.n_strx);
- stindex += length;
- }
- else {
- bfd_h_putlong (abfd, 0, (unsigned char *)&nsp.n_un.n_strx);
- }
-
- if (g->the_bfd->xvec->flavour == abfd->xvec->flavour)
- {
- nsp.n_desc = aout_symbol( g)->desc;
- nsp.n_other = aout_symbol(g)->other;
- nsp.n_type = aout_symbol(g)->type;
- }
- else
- {
- nsp.n_desc = 0;
- nsp.n_other = 0;
- nsp.n_type = 0;
- }
-
-
- nsp.n_value = g->value;
- translate_to_native_sym_flags (&nsp, (PTR)g, abfd);
-
-
- bfd_h_putshort (abfd, nsp.n_desc, (unsigned char *)&nsp.n_desc);
- bfd_h_putlong (abfd, nsp.n_value, (unsigned char *)&nsp.n_value);
- bfd_write((PTR)&nsp,1, sizeof(nsp), abfd);
- }
-
-
- /* Now output the strings. Be sure to put string length into correct
- * byte ordering before writing it.
- */
- bfd_h_putlong (abfd, stindex, (unsigned char *)&stindex);
-
- bfd_write((PTR)&stindex, 1, sizeof(stindex), abfd);
-
- generic = bfd_get_outsymbols(abfd);
- for (count = 0; count < bfd_get_symcount(abfd); count++)
- {
- asymbol *g = *(generic++);
-
- if (g->name)
- {
- size_t length = strlen(g->name)+1;
- bfd_write((PTR)g->name, 1, length, abfd);
- }
- if ((g->flags & BSF_FAKE)==0) {
- g->name = itos(count); /* smash the generic symbol */
- }
- }
-}
-
-
-void
-DEFUN(aout_reclaim_symbol_table,(abfd),
- bfd *abfd)
-{
-
-}
-
-unsigned int
-aout_get_symtab_upper_bound (abfd)
- bfd *abfd;
-{
- if (!aout_slurp_symbol_table (abfd)) return 0;
-
- return (bfd_get_symcount (abfd)+1) * (sizeof (aout_symbol_type *));
-}
-
-unsigned int
-aout_get_symtab (abfd, location)
- bfd *abfd;
- asymbol **location;
-{
- unsigned int counter = 0;
- aout_symbol_type *symbase;
-
- if (!aout_slurp_symbol_table (abfd)) return 0;
-
- for (symbase = obj_aout_symbols(abfd); counter++ < bfd_get_symcount (abfd);)
- *(location++) = (asymbol *)( symbase++);
- *location++ =0;
- return bfd_get_symcount(abfd);
-}
-
-
-/* Standard reloc stuff */
-/* Output standard relocation information to a file in target byte order. */
-
-void
-swap_std_reloc_out (abfd, g, natptr)
- bfd *abfd;
- arelent *g; /* Generic relocation struct */
- struct reloc_std_bytes *natptr;
-{
- int r_index;
- int r_extern;
- unsigned int r_length;
- int r_pcrel;
- int r_baserel, r_jmptable, r_relative;
- unsigned int r_addend;
-
- bfd_h_putlong (abfd, g->address, natptr->r_address);
-
- r_length = g->howto->size ; /* Size as a power of two */
- r_pcrel = (int) g->howto->pc_relative; /* Relative to PC? */
- /* r_baserel, r_jmptable, r_relative??? FIXME-soon */
- r_baserel = 0;
- r_jmptable = 0;
- r_relative = 0;
-
- r_addend = g->addend; /* Start here, see how it goes */
-
- /* name was clobbered by aout_write_syms to be symbol index */
-
- if (g->sym_ptr_ptr != NULL)
- {
- if ((*(g->sym_ptr_ptr))->section) {
- /* put the section offset into the addend for output */
- r_addend += (*(g->sym_ptr_ptr))->section->vma;
- }
-
- r_index = stoi((*(g->sym_ptr_ptr))->name);
- r_extern = 1;
- }
- else {
- r_extern = 0;
- if (g->section == NULL) {
- /* It is possible to have a reloc with nothing, we generate an
- abs + 0 */
- r_addend = 0;
- r_index = N_ABS | N_EXT;
- }
- else if(g->section->output_section == obj_textsec(abfd)) {
- r_index = N_TEXT | N_EXT;
- r_addend += g->section->output_section->vma;
- }
- else if (g->section->output_section == obj_datasec(abfd)) {
- r_index = N_DATA | N_EXT;
- r_addend += g->section->output_section->vma;
- }
- else if (g->section->output_section == obj_bsssec(abfd)) {
- r_index = N_BSS | N_EXT ;
- r_addend += g->section->output_section->vma;
- }
- else {
- BFD_ASSERT(0);
- }
- }
-
- /* now the fun stuff */
- if (abfd->xvec->header_byteorder_big_p != false) {
- natptr->r_index[0] = r_index >> 16;
- natptr->r_index[1] = r_index >> 8;
- natptr->r_index[2] = r_index;
- natptr->r_bits[0] =
- (r_extern? RELOC_STD_BITS_EXTERN_BIG: 0)
- | (r_pcrel? RELOC_STD_BITS_PCREL_BIG: 0)
- | (r_baserel? RELOC_STD_BITS_BASEREL_BIG: 0)
- | (r_jmptable? RELOC_STD_BITS_JMPTABLE_BIG: 0)
- | (r_relative? RELOC_STD_BITS_RELATIVE_BIG: 0)
- | (r_length << RELOC_STD_BITS_LENGTH_SH_BIG);
- } else {
- natptr->r_index[2] = r_index >> 16;
- natptr->r_index[1] = r_index >> 8;
- natptr->r_index[0] = r_index;
- natptr->r_bits[0] =
- (r_extern? RELOC_STD_BITS_EXTERN_LITTLE: 0)
- | (r_pcrel? RELOC_STD_BITS_PCREL_LITTLE: 0)
- | (r_baserel? RELOC_STD_BITS_BASEREL_LITTLE: 0)
- | (r_jmptable? RELOC_STD_BITS_JMPTABLE_LITTLE: 0)
- | (r_relative? RELOC_STD_BITS_RELATIVE_LITTLE: 0)
- | (r_length << RELOC_STD_BITS_LENGTH_SH_LITTLE);
- }
-}
-
-
-/* Extended stuff */
-/* Output extended relocation information to a file in target byte order. */
-
-void
-swap_ext_reloc_out (abfd, g, natptr)
- bfd *abfd;
- arelent *g; /* Generic relocation struct */
- register struct reloc_ext_bytes *natptr;
-{
- int r_index;
- int r_extern;
- unsigned int r_type;
- unsigned int r_addend;
-
- bfd_h_putlong (abfd, g->address, natptr->r_address);
-
- /* Find a type in the output format which matches the input howto -
- at the moment we assume input format == output format FIXME!! */
- r_type = (enum reloc_type) g->howto->type;
-
- r_addend = g->addend; /* Start here, see how it goes */
-
- /* name was clobbered by aout_write_syms to be symbol index*/
-
- if (g->sym_ptr_ptr != NULL)
- {
- if ((*(g->sym_ptr_ptr))->section) {
- /* put the section offset into the addend for output */
- r_addend += (*(g->sym_ptr_ptr))->section->vma;
- }
-
- r_index = stoi((*(g->sym_ptr_ptr))->name);
- r_extern = 1;
- }
- else {
- r_extern = 0;
- if (g->section == NULL) {
- BFD_ASSERT(0);
- r_index = N_ABS | N_EXT;
- }
- else if(g->section->output_section == obj_textsec(abfd)) {
- r_index = N_TEXT | N_EXT;
- r_addend += g->section->output_section->vma;
- }
- else if (g->section->output_section == obj_datasec(abfd)) {
- r_index = N_DATA | N_EXT;
- r_addend += g->section->output_section->vma;
- }
- else if (g->section->output_section == obj_bsssec(abfd)) {
- r_index = N_BSS | N_EXT ;
- r_addend += g->section->output_section->vma;
- }
- else {
- BFD_ASSERT(0);
- }
- }
-
- /* now the fun stuff */
- if (abfd->xvec->header_byteorder_big_p != false) {
- natptr->r_index[0] = r_index >> 16;
- natptr->r_index[1] = r_index >> 8;
- natptr->r_index[2] = r_index;
- natptr->r_bits[0] =
- (r_extern? RELOC_EXT_BITS_EXTERN_BIG: 0)
- | (r_type << RELOC_EXT_BITS_TYPE_SH_BIG);
- } else {
- natptr->r_index[2] = r_index >> 16;
- natptr->r_index[1] = r_index >> 8;
- natptr->r_index[0] = r_index;
- natptr->r_bits[0] =
- (r_extern? RELOC_EXT_BITS_EXTERN_LITTLE: 0)
- | (r_type << RELOC_EXT_BITS_TYPE_SH_LITTLE);
- }
-
- bfd_h_putlong (abfd, r_addend, natptr->r_addend);
-}
-
-#define MOVE_ADDRESS(ad) \
- if (r_extern) { \
- cache_ptr->sym_ptr_ptr = symbols + r_index; \
- cache_ptr->section = (asection *)NULL; \
- cache_ptr->addend = ad; \
- } else { \
- cache_ptr->sym_ptr_ptr = (asymbol **)NULL; \
- switch (r_index) { \
- case N_TEXT: \
- case N_TEXT | N_EXT: \
- cache_ptr->section = obj_textsec(abfd); \
- cache_ptr->addend = ad - su->textsec->vma; \
- break; \
- case N_DATA: \
- case N_DATA | N_EXT: \
- cache_ptr->section = obj_datasec(abfd); \
- cache_ptr->addend = ad - su->datasec->vma; \
- break; \
- case N_BSS: \
- case N_BSS | N_EXT: \
- cache_ptr->section = obj_bsssec(abfd); \
- cache_ptr->addend = ad - su->bsssec->vma; \
- break; \
- case N_ABS: \
- case N_ABS | N_EXT: \
- cache_ptr->section = NULL; /* No section */ \
- cache_ptr->addend = ad; /* FIXME, is this right? */ \
- BFD_ASSERT(1); \
- break; \
- default: \
- cache_ptr->section = NULL; /* No section */ \
- cache_ptr->addend = ad; /* FIXME, is this right? */ \
- BFD_ASSERT(1); \
- break; \
- } \
- } \
-
-void
-swap_ext_reloc_in (abfd, bytes, cache_ptr, symbols)
- bfd *abfd;
- struct reloc_ext_bytes *bytes;
- arelent *cache_ptr;
- asymbol **symbols;
-{
- int r_index;
- int r_extern;
- unsigned int r_type;
- struct aoutdata *su = (struct aoutdata *)(abfd->tdata);
-
- cache_ptr->address = bfd_h_getlong (abfd, bytes->r_address);
-
- /* now the fun stuff */
- if (abfd->xvec->header_byteorder_big_p != false) {
- r_index = (bytes->r_index[0] << 16)
- | (bytes->r_index[1] << 8)
- | bytes->r_index[2];
- r_extern = (0 != (bytes->r_bits[0] & RELOC_EXT_BITS_EXTERN_BIG));
- r_type = (bytes->r_bits[0] & RELOC_EXT_BITS_TYPE_BIG)
- >> RELOC_EXT_BITS_TYPE_SH_BIG;
- } else {
- r_index = (bytes->r_index[2] << 16)
- | (bytes->r_index[1] << 8)
- | bytes->r_index[0];
- r_extern = (0 != (bytes->r_bits[0] & RELOC_EXT_BITS_EXTERN_LITTLE));
- r_type = (bytes->r_bits[0] & RELOC_EXT_BITS_TYPE_LITTLE)
- >> RELOC_EXT_BITS_TYPE_SH_LITTLE;
- }
-
- cache_ptr->howto = howto_table_ext + r_type;
- MOVE_ADDRESS(bfd_h_getlong(abfd,bytes->r_addend));
-}
-
-void
-swap_std_reloc_in (abfd, bytes, cache_ptr, symbols)
- bfd *abfd;
- struct reloc_std_bytes *bytes;
- arelent *cache_ptr;
- asymbol **symbols;
-{
- int r_index;
- int r_extern;
- unsigned int r_length;
- int r_pcrel;
- int r_baserel, r_jmptable, r_relative;
- struct aoutdata *su = (struct aoutdata *)(abfd->tdata);
-
- cache_ptr->address = bfd_h_getlong (abfd, bytes->r_address);
-
- /* now the fun stuff */
- if (abfd->xvec->header_byteorder_big_p != false) {
- r_index = (bytes->r_index[0] << 16)
- | (bytes->r_index[1] << 8)
- | bytes->r_index[2];
- r_extern = (0 != (bytes->r_bits[0] & RELOC_STD_BITS_EXTERN_BIG));
- r_pcrel = (0 != (bytes->r_bits[0] & RELOC_STD_BITS_PCREL_BIG));
- r_baserel = (0 != (bytes->r_bits[0] & RELOC_STD_BITS_BASEREL_BIG));
- r_jmptable= (0 != (bytes->r_bits[0] & RELOC_STD_BITS_JMPTABLE_BIG));
- r_relative= (0 != (bytes->r_bits[0] & RELOC_STD_BITS_RELATIVE_BIG));
- r_length = (bytes->r_bits[0] & RELOC_STD_BITS_LENGTH_BIG)
- >> RELOC_STD_BITS_LENGTH_SH_BIG;
- } else {
- r_index = (bytes->r_index[2] << 16)
- | (bytes->r_index[1] << 8)
- | bytes->r_index[0];
- r_extern = (0 != (bytes->r_bits[0] & RELOC_STD_BITS_EXTERN_LITTLE));
- r_pcrel = (0 != (bytes->r_bits[0] & RELOC_STD_BITS_PCREL_LITTLE));
- r_baserel = (0 != (bytes->r_bits[0] & RELOC_STD_BITS_BASEREL_LITTLE));
- r_jmptable= (0 != (bytes->r_bits[0] & RELOC_STD_BITS_JMPTABLE_LITTLE));
- r_relative= (0 != (bytes->r_bits[0] & RELOC_STD_BITS_RELATIVE_LITTLE));
- r_length = (bytes->r_bits[0] & RELOC_STD_BITS_LENGTH_LITTLE)
- >> RELOC_STD_BITS_LENGTH_SH_LITTLE;
- }
-
- cache_ptr->howto = howto_table_std + r_length + 4 * r_pcrel;
- /* FIXME-soon: Roll baserel, jmptable, relative bits into howto setting */
-
- MOVE_ADDRESS(0);
-}
-
-/* Reloc hackery */
-
-boolean
-aout_slurp_reloc_table (abfd, asect, symbols)
- bfd *abfd;
- sec_ptr asect;
- asymbol **symbols;
-{
- unsigned int count;
- size_t reloc_size;
- PTR relocs;
- arelent *reloc_cache;
- size_t each_size;
-
- if (asect->relocation) return true;
-
- if (asect->flags & SEC_CONSTRUCTOR) return true;
-
- if (asect == obj_datasec (abfd)) {
- reloc_size = exec_hdr(abfd)->a_drsize;
- goto doit;
- }
-
- if (asect == obj_textsec (abfd)) {
- reloc_size = exec_hdr(abfd)->a_trsize;
- goto doit;
- }
-
- bfd_error = invalid_operation;
- return false;
-
- doit:
- bfd_seek (abfd, asect->rel_filepos, SEEK_SET);
- each_size = obj_reloc_entry_size (abfd);
-
- count = reloc_size / each_size;
-
-
- reloc_cache = (arelent *) bfd_zalloc (abfd, (size_t)(count * sizeof
- (arelent)));
- if (!reloc_cache) {
-nomem:
- bfd_error = no_memory;
- return false;
- }
-
- relocs = bfd_alloc (abfd, reloc_size);
- if (!relocs) {
- bfd_release (abfd, reloc_cache);
- goto nomem;
- }
-
- if (bfd_read (relocs, 1, reloc_size, abfd) != reloc_size) {
- bfd_release (abfd, relocs);
- bfd_release (abfd, reloc_cache);
- bfd_error = system_call_error;
- return false;
- }
-
- if (each_size == RELOC_EXT_SIZE) {
- register struct reloc_ext_bytes *rptr = (struct reloc_ext_bytes *) relocs;
- unsigned int counter = 0;
- arelent *cache_ptr = reloc_cache;
-
- for (; counter < count; counter++, rptr++, cache_ptr++) {
- swap_ext_reloc_in(abfd, rptr, cache_ptr, symbols);
- }
- } else {
- register struct reloc_std_bytes *rptr = (struct reloc_std_bytes *) relocs;
- unsigned int counter = 0;
- arelent *cache_ptr = reloc_cache;
-
- for (; counter < count; counter++, rptr++, cache_ptr++) {
- swap_std_reloc_in(abfd, rptr, cache_ptr, symbols);
- }
-
- }
-
- bfd_release (abfd,relocs);
- asect->relocation = reloc_cache;
- asect->reloc_count = count;
- return true;
-}
-
-
-
-/* Write out a relocation section into an object file. */
-
-boolean
-aout_squirt_out_relocs (abfd, section)
- bfd *abfd;
- asection *section;
-{
- arelent **generic;
- unsigned char *native, *natptr;
- size_t each_size;
-
- unsigned int count = section->reloc_count;
- size_t natsize;
-
- if (count == 0) return true;
-
- each_size = obj_reloc_entry_size (abfd);
- natsize = each_size * count;
- native = (unsigned char *) bfd_zalloc (abfd, natsize);
- if (!native) {
- bfd_error = no_memory;
- return false;
- }
-
- generic = section->orelocation;
-
- if (each_size == RELOC_EXT_SIZE)
- {
- for (natptr = native;
- count != 0;
- --count, natptr += each_size, ++generic)
- swap_ext_reloc_out (abfd, *generic, (struct reloc_ext_bytes *)natptr);
- }
- else
- {
- for (natptr = native;
- count != 0;
- --count, natptr += each_size, ++generic)
- swap_std_reloc_out(abfd, *generic, (struct reloc_std_bytes *)natptr);
- }
-
- if ( bfd_write ((PTR) native, 1, natsize, abfd) != natsize) {
- bfd_release(abfd, native);
- return false;
- }
- bfd_release (abfd, native);
-
- return true;
-}
-
-/* This is stupid. This function should be a boolean predicate */
-unsigned int
-aout_canonicalize_reloc (abfd, section, relptr, symbols)
- bfd *abfd;
- sec_ptr section;
- arelent **relptr;
- asymbol **symbols;
-{
- arelent *tblptr = section->relocation;
- unsigned int count;
-
- if (!(tblptr || aout_slurp_reloc_table (abfd, section, symbols)))
- return 0;
-
- if (section->flags & SEC_CONSTRUCTOR) {
- arelent_chain *chain = section->constructor_chain;
- for (count = 0; count < section->reloc_count; count ++) {
- *relptr ++ = &chain->relent;
- chain = chain->next;
- }
- }
- else {
- tblptr = section->relocation;
- if (!tblptr) return 0;
-
- for (count = 0; count++ < section->reloc_count;)
- {
- *relptr++ = tblptr++;
- }
- }
- *relptr = 0;
-
- return section->reloc_count;
-}
-
-unsigned int
-aout_get_reloc_upper_bound (abfd, asect)
- bfd *abfd;
- sec_ptr asect;
-{
- if (bfd_get_format (abfd) != bfd_object) {
- bfd_error = invalid_operation;
- return 0;
- }
- if (asect->flags & SEC_CONSTRUCTOR) {
- return (sizeof (arelent *) * (asect->reloc_count+1));
- }
-
-
- if (asect == obj_datasec (abfd))
- return (sizeof (arelent *) *
- ((exec_hdr(abfd)->a_drsize / obj_reloc_entry_size (abfd))
- +1));
-
- if (asect == obj_textsec (abfd))
- return (sizeof (arelent *) *
- ((exec_hdr(abfd)->a_trsize / obj_reloc_entry_size (abfd))
- +1));
-
- bfd_error = invalid_operation;
- return 0;
-}
-
-void
-aout_reclaim_reloc (ignore_abfd, ignore)
- bfd *ignore_abfd;
- sec_ptr ignore;
-{
-
-}
-
-
-alent *
-aout_get_lineno(ignore_abfd, ignore_symbol)
-bfd *ignore_abfd;
-asymbol *ignore_symbol;
-{
-return (alent *)NULL;
-}
-
-void
-aout_print_symbol(ignore_abfd, afile, symbol, how)
-bfd *ignore_abfd;
-PTR afile;
-asymbol *symbol;
-bfd_print_symbol_enum_type how;
-{
- FILE *file = (FILE *)afile;
-
- switch (how) {
- case bfd_print_symbol_name_enum:
- fprintf(file,"%s", symbol->name);
- break;
- case bfd_print_symbol_type_enum:
- fprintf(file,"%4x %2x %2x",(unsigned)(aout_symbol(symbol)->desc & 0xffff),
- (unsigned)(aout_symbol(symbol)->other & 0xff),
- (unsigned)(aout_symbol(symbol)->type));
- break;
- case bfd_print_symbol_all_enum:
- {
- CONST char *section_name = symbol->section == (asection *)NULL ?
- "*abs" : symbol->section->name;
-
- bfd_print_symbol_vandf((PTR)file,symbol);
-
- fprintf(file," %-5s %04x %02x %02x %s",
- section_name,
- (unsigned)(aout_symbol(symbol)->desc & 0xffff),
- (unsigned)(aout_symbol(symbol)->other & 0xff),
- (unsigned)(aout_symbol(symbol)->type & 0xff),
- symbol->name);
- }
- break;
- }
-}
-
-/*
- provided a bfd, a section and an offset into the section, calculate
- and return the name of the source file and the line nearest to the
- wanted location.
-*/
-
-boolean
-DEFUN(aout_find_nearest_line,(abfd,
- section,
- symbols,
- offset,
- filename_ptr,
- functionname_ptr,
- line_ptr),
- bfd *abfd AND
- asection *section AND
- asymbol **symbols AND
- bfd_vma offset AND
- CONST char **filename_ptr AND
- CONST char **functionname_ptr AND
- unsigned int *line_ptr)
-{
- /* Run down the file looking for the filename, function and linenumber */
- asymbol **p;
- static char buffer[100];
- bfd_vma high_line_vma = ~0;
- bfd_vma low_func_vma = 0;
- asymbol *func = 0;
- *filename_ptr = abfd->filename;
- *functionname_ptr = 0;
- *line_ptr = 0;
- if (symbols != (asymbol **)NULL) {
- for (p = symbols; *p; p++) {
- aout_symbol_type *q = (aout_symbol_type *)(*p);
- switch (q->type){
- case N_SO:
- *filename_ptr = q->symbol.name;
- if (obj_textsec(abfd) != section) {
- return true;
- }
- break;
- case N_SLINE:
-
- case N_DSLINE:
- case N_BSLINE:
- /* We'll keep this if it resolves nearer than the one we have already */
- if (q->symbol.value >= offset &&
- q->symbol.value < high_line_vma) {
- *line_ptr = q->desc;
- high_line_vma = q->symbol.value;
- }
- break;
- case N_FUN:
- {
- /* We'll keep this if it is nearer than the one we have already */
- if (q->symbol.value >= low_func_vma &&
- q->symbol.value <= offset) {
- low_func_vma = q->symbol.value;
- func = (asymbol *)q;
- }
- if (*line_ptr && func) {
- CONST char *function = func->name;
- char *p;
- strncpy(buffer, function, sizeof(buffer)-1);
- buffer[sizeof(buffer)-1] = 0;
- /* Have to remove : stuff */
- p = strchr(buffer,':');
- if (p != NULL) {*p = NULL; }
- *functionname_ptr = buffer;
- return true;
-
- }
- }
- break;
- }
- }
- }
-
- return true;
-
-}
-
-int
-DEFUN(aout_sizeof_headers,(ignore_abfd),
- bfd *ignore_abfd)
-{
- return 0; /* FIXME, this is the wrong value! */
-}
diff --git a/bfd/aoutx.c b/bfd/aoutx.c
deleted file mode 100755
index e69de29..0000000
--- a/bfd/aoutx.c
+++ /dev/null
diff --git a/bfd/archures.h b/bfd/archures.h
deleted file mode 100755
index db14d1d..0000000
--- a/bfd/archures.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Intel 960 machine types */
-
-/* Copyright (C) 1990, 1991 Free Software Foundation, Inc.
-
-This file is part of BFD, the Binary File Diddler.
-
-BFD is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
-
-BFD is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with BFD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/*
- Machine architecture and type definitions for BFD.
-
- These definitions are only used inside the BFD package. External programs
- access them by calling bfd_scan_arch_mach() and bfd_arch_mach_string().
-
- The architectures themselves are defined in bfd.h since they are an
- enum needed for BFD structs. Numeric machine types are simply used
- as-is, e.g. 68020. Non-numeric machine types like "i960CA" have
- names in this file. */
-
-
-/* $Id$ */
-
-
diff --git a/bfd/awkscan b/bfd/awkscan
deleted file mode 100755
index 69b0cea..0000000
--- a/bfd/awkscan
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: BEGIN pattern gives errors if other than 1st line;
-# END ditto if other than last.
-BEGIN { print "@c ------------------------------START TEXT FROM " FILENAME }
-#
-# Keep /*doc* blocks (terminated by either */ or *-*/)
-/^\/\*doc\*/,/^\*\/|^\*-\*\//
-#
-# Also keep two kinds of /*proto blocks
-/^\/\*proto\*/,/^\*\/|^\*-\*\//
-/^\/\*proto-internal\*/,/^\*\/|^\*-\*\//
-#
-END { print "@c ------------------------------END TEXT FROM " FILENAME }
diff --git a/bfd/awkscan-ip b/bfd/awkscan-ip
deleted file mode 100755
index 73bd61f..0000000
--- a/bfd/awkscan-ip
+++ /dev/null
@@ -1,8 +0,0 @@
-# Awk filter, 1st filter for BFD internal prototype file extraction
-#
-# keep /*proto-internal blocks
-/^\/\*proto-internal\*/,/^\*\/|^\*-\*\//
-#
-# Apparent bug in sed can discard last line in some situations; therefore
-# make last line harmless.
-END { print "\n" }
diff --git a/bfd/awkscan-p b/bfd/awkscan-p
deleted file mode 100755
index c7fe79f..0000000
--- a/bfd/awkscan-p
+++ /dev/null
@@ -1,8 +0,0 @@
-# Awk filter, 1st filter for BFD prototype file extraction
-#
-# keep /*proto blocks
-/^\/\*proto\*/,/^\*\/|^\*-\*\//
-#
-# Apparent bug in sed can discard last line in some situations; therefore
-# make last line harmless.
-END { print "\n" }
diff --git a/bfd/bfd.doc b/bfd/bfd.doc
deleted file mode 100755
index c74c8ce..0000000
--- a/bfd/bfd.doc
+++ /dev/null
@@ -1,705 +0,0 @@
-This file contains -*- Text -*-.
-
-BFD is a set of routines for reading and writing binary files.
-
-The user should call only the interface routines at the end of bfd.h.
-The one I'm working out of is /4/gumby/bfd/bfd.h
-
- Sample "strip" program using BFD:
-
- #include "bfd.h"
-
- doit ()
- {
- ibfd = bfd_openr(...)
- obfd = bfd_openw(...)
- bfd_check_format (ibfd, object);
- bfd_set_format (obfd, object);
-
- bfd_set_arch_mach (obfd, ...)
- bfd_set_start_address (obfd, ...)
- etc...
-
- [optionally:
- asymbol * foo = malloc (get_symtab_upper_bound (ibfd));
- bfd_canonicalize_symtab (ibfd, foo);
- <sort foo, frob foo, etc, using asymbol def from bfd.h>
- bfd_set_symtab (obfd, foo, updated_symbol_count);
- ]
-
- bfd_map_over_sections (abfd, setup, NULL);
- bfd_map_over_sections (abfd, cleaner, NULL);
-
- bfd_close (obfd);
- bfd_close (ibfd);
- }
-
- setup (ibfd, sect)
- {
- osect = make_section (obfd, bfd_section_name (ibfd, sect));
- bfd_set_section_size (obfd, osect, bfd_section_size (ibfd, sect));
- ...
- }
-
- cleaner (ibfd, sect)
- {
- osect = bfd_get_section_by_name (obfd,
- bfd_section_name (ibfd, sect));
- bfd_copy_section (ibfd, sect, obfd, osect);
- [perhaps: bfd_set_reloc (osect, NULL, 0); ]
- }
-
-
-
-BFD is a package for manipulating binary files required for developing
-programs. It implements a group of structured operations designed to
-shield the programmer from the underlying representation of these
-binary files. It understands object (compiled) files, archive
-libraries, and core files. It is designed to work in a variety of
-target environments.
-
-To use the library, include bfd.h and link with libbfd.a.
-
-A bfd iteself is a representation for a particular file. It is opened
-in a manner similar to a file; code then manipulates it rather than
-the raw files.
-
-BFD makes a distinction between TARGETS (families of file formats) and
-FORMATS (individual file formats). For instance, the "sun4os4" target
-can handle core, object and archive formats of files. The exact
-layout of the different formats depends on the target environment.
-
-The target "default" means the first one known (usually used for
-environments that only support one format, or where the common format
-is known at compile or link time). The target NULL means the one
-specified at runtime in the environment variable GNUTARGET; if that is
-null or not defined then the first entry in the target list is chosen
-(on output), or all targets are searched (on input) to find a matching
-one..
-
-Most programs should use the target NULL.
-
-There is a way to get a list of the names of all the targets:
-char** bfd_target_list ()
- This function returns a freshly-malloced list of all the
- defined targets (or NULL if it could not malloc). The names
- are read-only. You could use this to prompt the user, or
- perhaps to error-check.
-
-char * bfd_format_string (bfd_format format)
- This function will give you a printable, single-word description
- (like "core" or "archive") for a bfd format.
-
-Error handling
-
-General rules:
-functions which are boolean return true on success and false on failure
-(unless they're a predicate). Functions which return pointers to
-objects return NULL on error. The specifics are documented with each
-function.
-
-If a function fails, you should check the variable bfd_error. If the
-value is no_error, then check the C variable errno just as you would
-with any other program. The other values bfd_error may take on are
-documented in bfd.h.
-
-If you would prefer a comprehensible string for the error message, use
-the function bfd_errmsg:
- char * bfd_errmsg (error_tag)
-This function returns a read-only string which documents the error
-code. If the error code is no_error then it will return a string
-depending on the value of errno.
-
-bfd_perror() is like the perror() function except it understands
-bfd_error.
-
-Operations on bfds themselves
-
-bfd * bfd_openr (char *filename, char *target);
-bfd * bfd_fdopenr (int fd, char *target, char *filename);
-
- Open a binary file for reading. TARGET is the type of the file,
- a char string like "sun4os4" or "elf". (Note this is not the
- "function" of the file, e.g. an object versus a core file
- versus an archive, but instead describes how all these files
- are encoded.) Returns a new bfd or NULL upon failure.
-
-bfd * bfd_openw (char *filename, char *target);
-
- Open a file named `filename' for writing. If an existing
- file has the same name, then it will be overwritten by a
- successful bfd_close on the returned bfd. Will return either
- a new bfd or NULL upon failure.
-
-boolean bfd_close (bfd *abfd);
-
- Close a BFD opened for either reading or writing. May involve
- several filesystem operations, depending on the data format;
- some things may not be known to the system until file-closing
- time. Returns true if it successfully wrote the file, false
- if not. A false return will not leave a partially-written
- file behind with the name supplied to bfd_openw.
-
- On a bfd open for reading will generally successfully
- complete.
-
- It is an error to call this on a file opened from inside an
- archive.
-
- FIXME -- show which error codes may be recoverable and
- followed by another call to bfd_close!
-
-
-The defined formats are specified by the enumeration bfd_format.
-
-boolean bfd_check_format (bfd *abfd, bfd_format format);
-
- This routine must be called after a bfd_openr. It sets up
- internal data structures based on the contents of the file.
- It returns FALSE if the file is not really in the specified
- format.
-
-boolean bfd_set_format (bfd *abfd, bfd_format format);
-
- This routine must be called after a bfd_openw. It sets up
- internal data structures for the proper format of file.
- It returns FALSE if that format is not supported for output
- (e.g. core files).
-
-The following macros may be used to obtain information about a bfd:
-
-bfd_get_filename -- returns a pointer to a null-terminated string
- which names the bfd's file, or NULL if that is not known.
- Don't side-effect this string!
-bfd_get_format -- returns the format code for the bfd.
-bfd_get_target -- returns the string which names the bfd's target.
-bfd_get_mtime -- returns an time_t indicating the modification time of an
- input bfd, if that could be determined, or 0 of not.
-
-Object files have certain properties. For input bfds, these
-properties may be read at any time. For output bfds you should set
-them before you begin building any sections.
-
-bfd_vma bfd_get_start_address (bfd *abfd);
-
- Returns the address in an object file where execution will begin.
-
-boolean bfd_set_start_address (bfd *abfd, int vma);
-
- Set the address where execution will start in an object file.
-
- If the address you select is incorrect for your architecture
- (for instance, if it's required to be on a page_boundary and
- your supplied starting address is not, then you may get the
- invalid_operation error. It is not always possible to
- generate an error in this case.
-
-An object file has an architecture, which is the general instruction
-set of the instructions that it contains. Architectures are defined in
-enum bfd_architecture in bfd.h. New architectures can be added by
-putting them in the enum, updating architectures.c, and adding code to
-handle them for the object files that know that architecture. The
-bfd_architecture values are not stored in files, but are only used
-within the BFD library and its callers.
-
-An object file also has a machine type, which is the specific machine
-within the architecture. For example, if the architecture is bfd_arch_m68k,
-the Motorola 68000 series, then the machine type might be 68010, the mc68010
-chip. For architectures such as the SPARC where specific versions of
-the architecture exist, the version number should probably be used.
-
-Particular object file formats may or may not store the machine architecture
-and type. When copying an object file, you should copy these fields.
-Most callers of BFD will not need to know the particular values that
-these fields contain, but will instead propagate them from file to file,
-or compare the architectures from two files.
-
-enum bfd_architecture bfd_get_architecture (bfd *abfd);
-unsigned long bfd_get_machine (bfd *abfd);
-
- Get the machine type and architecture.
-
-boolean bfd_set_arch_mach (bfd *abfd, enum bfd_architecture arch,
- unsigned long machine);
-
- Set the architecture and machine type. The result is true
- if the object file can exactly represent the specified type.
- The result is false otherwise.
-
-boolean bfd_arch_compatible (bfd *abfd, bfd *bbfd,
- enum bfd_architecture *res_arch,
- unsigned long *res_machine);
-
- Decides whether two BFD's contain compatible architectures and
- machine types. If the result is TRUE and the res_arch and
- res_machine pointers are non-NULL, the resulting "merged"
- architecture and machine type are returned through the pointers.
- A linker could call this to decide whether two object files
- can be linked, and to deterine the arch and machine type of
- the resulting file.
-
-char * bfd_printable_arch_mach (enum bfd_architecture arch,
- unsigned long machine);
-
- Returns a printable string that represents the particular
- combination of architecture and machine type.
-
-boolean bfd_scan_arch_mach (char *string, enum bfd_architecture *archp,
- unsigned long *machinep);
-
- Examines a printable string and tries to extract an
- architecture and machine type from it. The intended use is for
- parsing specifications from the user, e.g. command line
- arguments. The result is true if a known architecture was
- found, and the resulting architecture and machine type are
- stored through the argument pointers. Note that an
- architecture scannable by this function might not be
- representable by the particular object file format in use.
- (i.e. bfd_set_arch_mach might return false).
-
-
-There are also a number of boolean flags which apply to object bfds.
-
-flagword bfd_get_file_flags (bfd *abfd);
-
- returns a flagword containing the bfd's flags.
-
-boolean bfd_set_file_flags (bfd *abfd, flagword flags,
- boolean on_or_off);
-
- sets (on_or_off == true) or clears (on_or_off == false) the flags
- specified by flagword. All other flags are unaffected.
- Some flag combinations don't make sense; It is not always
- possible to detect them (since they may depend on other information).
- Returns true if the flags could be modified as requested,
- false if not. Upon a false return, no flags will have been
- altered.
-
-
-flagword bfd_applicable_file_flags (bfd *abfd);
-
- returns a flagword with bits set for all the flags which are
- meaningful for the bfd.
-
-The flags are:
- HAS_RELOC -- file contains unresolved relocation information.
- EXEC_P -- file can be executed. These two may both be on in the
- case of some dynamically-linked binaries.
- HAS_LINENO -- has line number information.
- HAS_DEBUG -- has debugging information.
- HAS_SYMS -- has any symbols.
- HAS_LOCALS -- has local symbols.
- DYNAMIC -- binary is dynamically linked.
- WP_TEXT -- text is write-protected
- D_PAGED -- binary should be demand-paged
-
-These flags are one bit wide and may be OR-ed together with |.
-
-If you are building a large application with bfd there may be data
-specific to your program that you may wish to associate with a bfd.
-Rather than require you to build a parallel table structure, bfd
-provides a void* pointer in each bfd for arbitrary user data. The
-macro bfd_usrdata (bfd *abfd) extracts these data; you may set them
-with = (ie bfd_usrdata (my_bfd) = frob_it (my_bfd, moon_phase);).
-
-Object and core files have sections.
-
-File sections are represented by opaque pointers. You may map over
-the sections of a file or you may ask for one by name. Note that not
-all files may have all the possible sections.
-
-Section pointers are valid from the time you get them until the bfd
-to which they refer is closed.
-
-When doing output, you must set up all the file's sections before
-outputting to any. All that means is that all the file's sections
-must have already been created and their size set before output
-commences.
-
-Each section contains some small information, plus three chunks of
-data in the object file: contents, relocation, and line numbers.
-In some file formats (e.g. a.out), the line number part is always
-empty, and line number information (if any) is instead recorded in
-the symbol table.
-
-sec_ptr bfd_get_section_by_name (bfd *abfd, char *name);
- Returns a section named NAME, or NULL if none by that name
- exists. Works on input and output bfds.
-
-sec_ptr bfd_make_section (bfd *abfd, char *name);
- Creates a section named name in the output bfd abfd.
- returns NULL if it cannot create the section (if, for instance,
- the output format does not permit such a section). If a
- section with that name already exists, it is returned; a new
- one with the same name is NOT created.
-
-unsigned int bfd_count_sections (bfd *abfd)
-
- This function returns the number of sections in the bfd abfd.
-
-void bfd_map_over_sections (bfd *abfd, void (*operation)(),
- void *user_storage);
-
- This is how you operate on all sections of an input file.
- Pass in a function pointer. The function will be called for each
- section of the file, in random order. It will be passed
- three arguments: the bfd, the sec_ptr for the section, and
- whatever was passed in as user_storage.
-
-char * bfd_section_name (bfd *abfd, sec_ptr ptr);
-
- Produces the name of a section, e.g. ".text" or ".data".
- This will produce arbitrary names for files with extensible
- section names (e.g. COFF, ELF) so don't assume that you will
- only see a few values here.
-
-long bfd_section_size (bfd *abfd, sec_ptr ptr);
-
- The size of a section in bytes. Result == -1 for error.
-
-boolean bfd_set_section_size (bfd *abfd, sec_ptr section unsigned long size);
-
- Set the size of a section. This must be done before any data
- transfer is done for the section.
-
-bfd_vma bfd_section_vma (bfd *abfd, sec_ptr ptr);
-
- Virtual memory address where a section "belongs".
-
-boolean bfd_set_section_vma (bfd *abfd, bfd_vma vma);
-
- Set the virtual memory address of a section.
-
-int bfd_get_section_alignment (bfd *abfd, sec_ptr ptr);
-
- returns the alignment of a section. If alignment is not
- possible, return value is undefined.
-
-boolean bfd_set_section_alignment (bfd *abfd, sec_ptr ptr, int alignment)
-
- returns true if it can set the section to the requested value.
- Alignment is an integer; it refers to the power of two
- specifying the byte boundary we want (ie 0 is byte-aligned; 4
- is word aligned). If the requested alignment is not available
- any existing value is unchanged.
-
-Sections have properties just as object files may:
-
-flagword bfd_get_section_flags (bfd *abfd, sec_ptr section);
-
- returns a flagword containing the section's flags.
-
-boolean bfd_set_section_flags (bfd *abfd, sec_ptr section,
- flagword flags, boolean on_or_off);
-
- sets (on_or_off == true) or clears (on_or_off == false) the flags
- specified by flagword. All other flags are unaffected.
- Some flag combinations don't make sense; It is not always
- possible to detect them (since they may depend on other information).
- Returns true if the flags could me modified as requested,
- false if not. Unpon a false return, no flags will have been
- altered.
-
-flagword bfd_applicable_section_flags (bfd *abfd);
-
- returns a flagword with bits set for all the flags which are
- meaningful for a section.
-
-The flags are:
-
- SEC_BALIGN -- segment can be byte-aligned.
- SEC_RELOC -- segment should be relocated.
- SEC_ALLOC -- when converted into a memory image with the intent of
- constructing a runable process, memory space will be
- allocated for this section.
- SEC_LOAD -- when converted into a memory image with the intent of
- constructing a runable process, section contents will be
- copied from the object file into memory. When this flag
- is set, SEC_ALLOC is guaranteed to also be set.
- SEC_HAS_CONTENTS -- The contents of this section exist in the
- object file. Sections whose contents do not exist in the
- object file may still have their contents read. On read,
- a segment filled with zeroes will be invented to satisfy
- the read request. It is an error to attempt to set the
- contents of a section that has no contents.
-
-These last three probably need some explanation. In a traditional,
-native unix object format, there are three real sections, text, data,
-and bss. The text section will be allocated memory on exec, and will
-be loaded from file into memory on exec. So the flags for a
-traditional unix text section would typically be at least (SEC_ALLOC |
-SEC_LOAD | SEC_HAS_CONTENTS). The data section has basically these
-same traits. The bss section, however is a little different. It is
-not relocated, and it is not loaded from file on exec, but it is
-allocated memory on exec. Thus, its flags would be more like
-(SEC_ALLOC). It is possible to have a section which is the converse
-of the bss section. That is, (SEC_HAS_CONTENTS & ~SEC_ALLOC). This
-could be anything from profiling information or notes from one pass of
-a toolchain to another to time and version stamp information.
-
-Note that the section flags currently lack information on position
-dependance.
-
-boolean bfd_get_section_contents (bfd *abfd, sec_ptr section,
- unsigned char *location,
- int offset, int count);
-
- Stores count bytes from the section's contents starting at
- offset from within those contents. The values are stored into
- location. Returns true if it could do so. Supplying invalid
- values for offset and count will produce unpredictable results.
-
-boolean bfd_set_section_contents (bfd *abfd, sec_ptr section,
- unsigned char *location,
- int offset, int count);
- Stores count bytes from location into offset within the
- section contents. You need not write all the contents contiguously
- (that is, you may write words 5-7 followed by 0-4 if you
- wish). However once you start writing into a section, any
- other sections into which you have previously written are
- considered finished, and you may not write in them any more.
-
-*** Line numbers ***
-
-bfd_get_section_lineno_size (bfd *abfd, sec_ptr section);
- Returns how many bytes of line numbers are associated with this
- section.
-
-bfd_set_section_lineno_size (bfd *abfd, sec_ptr section, unsigned long val);
- Sets the number of bytes of line numbers that this section should
- contain.
-
-boolean bfd_get_section_linenos (bfd *abfd, sec_ptr section,
- unsigned char *location,
- int offset, int count);
- Same as get_section_contents, except that it works on the linenos
- for this section.
-
-boolean bfd_set_section_linenos (bfd *abfd, sec_ptr section,
- unsigned char *location,
- int offset, int count);
- Same as set_section_contents, except that it works on the linenos
- for this section.
-
-As with files, you may associate arbitrary program-specific data with
-a section of a bfd. The following two functions are provided for
-manipulating these data:
-
-void * bfd_get_section_userdata (bfd *abfd, sec_ptr section)
- Returns whatever was stored in section's user data, or NULL if nothing.
-
-boolean bfd_set_section_userdata (bfd *abfd, sec_ptr section, void *contents)
- Set the section contents. Returns true if it can, false if not.
-
-Core files
-
-Core files are currently only supported for reading.
-
-Apart from opening them, looking at the various sections (generally
-the .data, .stack, and .regs sections; maybe a .user_struct section
-eventually), you can make some queries about the status of the core
-file, detailed below. The ".regs" section contains the general and
-floating point registers of the process that died, in some machine-
-specific order and format "intended to be unsurprising to someone who
-knows the machine".
-
-char * bfd_core_file_failing_command (bfd *abfd);
-
- The command name of the program that failed, creating the core file.
- The result is NULL if BFD can't figure out what the failing command was.
-
-int bfd_core_file_failing_signal (bfd *abfd);
-
- The signal number which caused the program to die, causing the
- core file to be created. It will be positive if valid.
-
-boolean core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd);
-
- For debuggers, checks whether a core file "matches" (is likely to
- have come from) an executable file. This will not be perfect on
- most systems, but will just provide a way to reject gross mismatches.
-
-Archives.
-
-An archive is a special file which can contain other files.
-Originally it was intended to be a general way to group files, the way
-tar is today. But now it is used almost exclusively to hold object
-files.
-
-An archive may be opened for reading or writing just like any other
-bfd. Once it is open for reading you may obtain bfds for each of the
-files contained within it with the following function:
-
-bfd * bfd_openr_next_archived_file (bfd *arch_bfd, bfd *last_file);
-
- If called with NULL as the second argument, returns the first
- file contained in the archive arch_bfd. If called with a file
- contained within arch_bfd, returns the one which follows that
- one, or NULL if it was the last. Returns NULL also if the
- bfd supplied as last_file did not come from the archive arch_bfd.
-
-Any bfd open for read may be placed in an output archive. When the
-output archive is closed, the contents will be placed into the
-archive.
-
-You control the order of files in an archive. You set the first one
-with the following function:
-
-boolean bfd_set_archive_head (bfd *output_archive, bfd *new_head)
-
- This function sets the first file in the archive
- output_archive to be the bfd new_head.
-
-bfd's contain a pointer called next, which is bfd *. It is used by
-bfd_close when an archive is closed to decide which file should next
-go into the archive. So to place a group of files into an archive,
-open bfds for each of them, chain them together using the next pointer
-in the order you desire (be sure to store NULL into the final one's
-next pointer), then do bfd_set_archive_head with the head of the
-chain. The next pointer may be freely smashed at any time; it is only
-looked at when closing an output archive.
-
-bfds for files contained within archives are normal bfds; you can do
-any input operations on them that you can do with a normal bfd.
-
-bfd_my_archive is a macro which takes an input bfd and returns NULL if
-it lives in the filesystem and a bfd if it is contained in an archive.
-In the latter case, the returned bfd is the archive itself.
-
-Archives containing only object files may have a "map" -- a table in
-the front which maps external symbols to the files which contain them.
-
-Archive maps will refer only to object files; if an archive contains a
-file which is not an archive that file will of course not appear in
-the map.
-
-boolean bfd_has_map (bfd *archive_bfd)
-
- This macro takes a bfd of an archive and returns true or
- false depending on whether the bfd has a map. For output
- bfds this may be set to true or false, depending on whether
- you want the map to be maintained or not. For some targets,
- setting this to false will cause no map to be generated; for
- others it will merely cause an empty map to be created, since
- a map is required by that target.
-
-For archives with maps you may use the following function:
-
-int bfd_get_next_mapent (bfd *abfd, int prev, char **name)
-
- You may use this to step through all the entries in the archive
- map. Supply BFD_NO_MORE_SYMBOLS as the 'prev' entry to get the
- first entry; then use successive returned values from this
- function to get the succeeding ones. The name of the next entry
- will be stored through the pointer name.
-
- This function returns BFD_NO_MORE_SYMBOLS when there are no more
- entries or on error.
-
-bfd * bfd_get_elt_at_index (abfd, int index)
-
- This function takes an index as returned by bfd_get_next_mapent
- and returns the bfd which corresponds to that entry. Returns NULL
- on error.
-
-Symbol and relocation information.
-
-Symbol-table information is the area of greatest incompatibility.
-bfd has a canonical symbol representation; all formats are parsed into
-and out of it.
-
-Note that canonicalize_symtab takes a pointer to an array of pointers
-to canonical symbols. This is necessary so that the end of the array
-can be marked with NULL. You may shuffle the pointers and you may
-clobber the symbol contents. But don't move the symbols themselves.
-
-unsigned int bfd_get_symtab_upper_bound (bfd *abfd);
-
- Returns the maximum number of bytes that would be taken by
- the output of canonicalize_symtab. Returns 0 on error.
-
-unsigned int bfd_canonicalize_symtab (bfd *abfd, asymbol **location);
-
- Produces a symbol table in canonical format at LOCATION, which
- must be of size specified by get_symtab_upper_bound bytes.
- Not all those bytes may be used. Returns the number of
- symbol pointers written. Returns 0 upon error.
-
-boolean bfd_set_symtab (bfd *outbfd, asymbol **location,
- unsigned int symcount);
-
- Takes a generic symbol table and an output bfd. Used to set
- the symbol table for an output bfd. Do not change the table
- after using this function (although the storage may be
- reclaimed once the bfd has been closed).
-
-If you're done with the symbol table you can tell bfd about it by
-calling bfd_reclaim_symbol_table, which takes a bfd. Calling this
-function will also reclaim any relocation entries you may have
-requested. If you don't use this function, bfd will keep around all
-symbol information until the bfd is closed.
-
-Similarly, relocations have a canonical format. See the file bfd.h for
-the exact definition. It is similar to the sun-4 relocation format.
-Please note that:
-o - Each relocation has a pointer to a generic symbol.
-o - Not all values of reloc_type are supported for all targets. There
- is a bitvector which explains which are; you can index into it by
- relocation type. The macro which extracts it is bfd_valid_reloc_types.
-
-Since relocation information is saved on a per-section basis, the
-interface is slightly different from that of the symbol table:
-
-unsigned int get_reloc_upper_bound (bfd *abfd, sec_ptr asect);
-
- Returns the maximum number of bytes that would be taken by
- the output of canonicalize_reloc. Returns 0 on error.
-
-unsigned int canonicalize_reloc (bfd *abfd, sec_ptr asect, arelent *location);
-
- Produces a relocation table in canonical format at LOCATION,
- which must be of size specified by get_reloc_upper_bound
- bytes. Not all those bytes may be used. Returns the number
- of entries written. Returns 0 upon error.
-
-boolean bfd_set_reloc (bfd *outbfd, sec_ptr asect, arelent *location,
- unsigned int count);
-
- Takes a generic reloc table and an output bfd. Used to set
- the reloc table for an output bfd. Do not change the table
- after using this function (although the storage may be
- reclaimed once the bfd has been closed).
-
-Byte-swapping
-
-Unfortunately, not all machines have the same byte order. Worse,
-storage layout is in general highly machine-dependent. Although bfd
-can hide that from you in most cases, it cannot do so with the section
-contents, since they are totally uninterpreted. Hence you must
-byte-swap those data yourself. This is not usually much of an issue
-since you should just generate your data in the correct byte order.
-
-[THIS IS WRONG AND ALSO DOES NOT REFLECT THE CODE WHICH IS CORRECT]
-
-Fortunately, bfd can tell if byte-swapping or realignment is required
-at all! The macro bfd_bit_twiddle_required takes a pointer to a bfd
-and returns true if byte-swapping is required, false if not.
-
-However if you don't wish to check this you may just use the following
-functions which will do the conversions required:
-
-
-long bfd_getlong (bfd *abfd, unsigned char *ptr);
- bfd_putlong (bfd *abfd, unsigned char *ptr, long time);
-
-short bfd_getshort (bfd *abfd, unsigned char *ptr);
- bfd_putshort (bfd *abfd, unsigned char *ptr, short stop);
-
- These functions take a pointer that points to data which is,
- or will be, part of a section contents. They extract numbers
- from the data, or insert numbers into the data. The argument
- or result is in the host's number format; the data stored at
- the pointer or retrieved from it is in the target's number format.
- Typically this transfer is either a no-op or is a byte-swap;
- sometimes it involves an access to a "misaligned" location from
- the host's point of view..
diff --git a/bfd/bfd.doc.ps b/bfd/bfd.doc.ps
deleted file mode 100755
index 70638d5..0000000
--- a/bfd/bfd.doc.ps
+++ /dev/null
@@ -1,4564 +0,0 @@
-%!PS-Adobe-2.0
-%%Creator: dvips 5.47 Copyright 1986-91 Radical Eye Software
-%%Title: bfd.dvi
-%%Pages: 61 1
-%%BoundingBox: 0 0 612 792
-%%EndComments
-%%BeginProcSet: tex.pro
-/TeXDict 200 dict def TeXDict begin /N /def load def /B{bind def}N /S /exch
-load def /X{S N}B /TR /translate load N /isls false N /vsize 10 N /@rigin{
-isls{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
-Resolution VResolution vsize neg mul TR matrix currentmatrix dup dup 4 get
-round 4 exch put dup dup 5 get round 5 exch put setmatrix}N /@letter{/vsize 10
-N}B /@landscape{/isls true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@a3{
-/vsize 15.5531 N}B /@ledger{/vsize 16 N}B /@legal{/vsize 13 N}B /@manualfeed{
-statusdict /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N
-/FBB[0 0 0 0]N /nn 0 N /IE 0 N /ctr 0 N /df-tail{/nn 8 dict N nn begin
-/FontType 3 N /FontMatrix fntrx N /FontBBox FBB N string /base X array
-/BitMaps X /BuildChar{CharBuilder}N /Encoding IE N end dup{/foo setfont}2
-array copy cvx N load 0 nn put /ctr 0 N[}B /df{/sf 1 N /fntrx FMat N df-tail}
-B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0]N df-tail}B /E{pop nn dup definefont
-setfont}B /ch-width{ch-data dup length 5 sub get}B /ch-height{ch-data dup
-length 4 sub get}B /ch-xoff{128 ch-data dup length 3 sub get sub}B /ch-yoff{
-ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data dup length 1 sub get}B
-/ch-image{ch-data dup type /stringtype ne{ctr get /ctr ctr 1 add N}if}B /id 0
-N /rw 0 N /rc 0 N /gp 0 N /cp 0 N /G 0 N /sf 0 N /CharBuilder{save 3 1 roll S
-dup /base get 2 index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0
-ch-xoff ch-yoff ch-height sub ch-xoff ch-width add ch-yoff setcachedevice
-ch-width ch-height true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{ch-image}
-imagemask restore}B /D{/cc X dup type /stringtype ne{]}if nn /base get cc ctr
-put nn /BitMaps get S ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf
-div put}if put /ctr ctr 1 add N}B /I{cc 1 add D}B /bop{userdict /bop-hook
-known{bop-hook}if /SI save N @rigin 0 0 moveto}N /eop{clear SI restore
-showpage userdict /eop-hook known{eop-hook}if}N /@start{userdict /start-hook
-known{start-hook}if /VResolution X /Resolution X 1000 div /DVImag X /IE 256
-array N 0 1 255{IE S 1 string dup 0 3 index put cvn put}for}N /p /show load N
-/RMat[1 0 0 -1 0 0]N /BDot 260 string N /rulex 0 N /ruley 0 N /v{/ruley X
-/rulex X V}B /V statusdict begin /product where{pop product dup length 7 ge{0
-7 getinterval(Display)eq}{pop false}ifelse}{false}ifelse end{{gsave TR -.1 -.1
-TR 1 1 scale rulex ruley false RMat{BDot}imagemask grestore}}{{gsave TR -.1
--.1 TR rulex ruley scale 1 1 false RMat{BDot}imagemask grestore}}ifelse B /a{
-moveto}B /delta 0 N /tail{dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{
-S p tail}B /c{-4 M}B /d{-3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B
-/j{3 M}B /k{4 M}B /w{0 rmoveto}B /l{p -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w
-}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t{p 4 w}B /x{0 S rmoveto}B /y{3 2 roll p
-a}B /bos{/SS save N}B /eos{clear SS restore}B end
-%%EndProcSet
-%%BeginProcSet: special.pro
-TeXDict begin /SDict 200 dict N SDict begin /@SpecialDefaults{/hs 612 N /vs
-792 N /ho 0 N /vo 0 N /hsc 1 N /vsc 1 N /ang 0 N /CLIP false N /BBcalc false N
-/p 3 def}B /@scaleunit 100 N /@hscale{@scaleunit div /hsc X}B /@vscale{
-@scaleunit div /vsc X}B /@hsize{/hs X /CLIP true N}B /@vsize{/vs X /CLIP true
-N}B /@hoffset{/ho X}B /@voffset{/vo X}B /@angle{/ang X}B /@rwi{10 div /rwi X}
-B /@llx{/llx X}B /@lly{/lly X}B /@urx{/urx X}B /@ury{/ury X /BBcalc true N}B
-/magscale true def end /@MacSetUp{userdict /md known{userdict /md get type
-/dicttype eq{md begin /letter{}N /note{}N /legal{}N /od{txpose 1 0 mtx
-defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{
-itransform moveto}}{transform{itransform lineto}}{6 -2 roll transform 6 -2
-roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll
-itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array
-astore /gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{
-PaintBlack}if}N /txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR
-pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
-get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip
-not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if
-yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{noflips{TR pop pop 270
-rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get
-ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not
-and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip
-not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}
-ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy
-TR .96 dup scale neg S neg S TR}if}N /cp{pop pop showpage pm restore}N end}if}
-if}N /normalscale{Resolution 72 div VResolution 72 div neg scale magscale{
-DVImag dup scale}if}N /psfts{S 65536 div N}N /startTexFig{/psf$SavedState save
-N userdict maxlength dict begin /magscale false def normalscale currentpoint
-TR /psf$ury psfts /psf$urx psfts /psf$lly psfts /psf$llx psfts /psf$y psfts
-/psf$x psfts currentpoint /psf$cy X /psf$cx X /psf$sx psf$x psf$urx psf$llx
-sub div N /psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx
-psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR /showpage{}N
-/erasepage{}N /copypage{}N /p 3 def @MacSetUp}N /doclip{psf$llx psf$lly
-psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll
-S lineto S lineto S lineto closepath clip newpath moveto}N /endTexFig{end
-psf$SavedState restore}N /@beginspecial{SDict begin /SpecialSave save N gsave
-normalscale currentpoint TR @SpecialDefaults}N /@setspecial{CLIP{newpath 0 0
-moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR
-hsc vsc scale ang rotate BBcalc{rwi urx llx sub div dup scale llx neg lly neg
-TR}if /showpage{}N /erasepage{}N /copypage{}N newpath}N /@endspecial{grestore
-clear SpecialSave restore end}N /@defspecial{SDict begin}N /@fedspecial{end}B
-/li{lineto}B /rl{rlineto}B /rc{rcurveto}B /np{/SaveX currentpoint /SaveY X N 1
-setlinecap newpath}N /st{stroke SaveX SaveY moveto}N /fil{fill SaveX SaveY
-moveto}N /ellipse{/endangle X /startangle X /yrad X /xrad X /savematrix matrix
-currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix
-setmatrix}N end
-%%EndProcSet
-TeXDict begin 1000 300 300 @start /Fa 1 59 df<70F8F8F87005057C840D>58
-D E /Fb 1 59 df<78FCFCFCFC7806067B8510>58 D E /Fc 32 120 df<00FC00018200070300
-0607000E02000E00000E00000E00000E00000E0000FFFF000E07000E07000E07000E07000E0700
-0E07000E07000E07000E07000E07000E07000E07000E07000E07007F0FE0131A809915>12
-D<FFC0FFC00A0280880D>45 D<078018603030303060186018E01CE01CE01CE01CE01CE01CE01C
-E01CE01CE01CE01CE01C6018601870383030186007800E187E9713>48 D<03000700FF00070007
-00070007000700070007000700070007000700070007000700070007000700070007000700FFF0
-0C187D9713>I<0F80106020304038803CC01CE01C401C003C003800380070006000C001800100
-020004040804100430083FF87FF8FFF80E187E9713>I<0F8010E0207060787038203800780070
-0070006000C00F8000E000700038003C003CE03CE03CC03C4038407030E00F800E187E9713>I<
-00300030007000F000F001700370027004700C7008701070307020704070C070FFFF0070007000
-7000700070007007FF10187F9713>I<30183FF03FE03FC02000200020002000200027C0386020
-3000380018001C001C401CE01CE01C80184038403030E00F800E187E9713>I<01E006100C1818
-383038300070006000E000E7C0E860F030F018E018E01CE01CE01C601C601C7018301830301860
-07C00E187E9713>I<40007FFE7FFC7FFC40088010801080200040004000800180018001000300
-03000300030007000700070007000700070002000F197E9813>I<078018603030201860186018
-601870103C303E600F8007C019F030F86038401CC00CC00CC00CC00C6008201018600FC00E187E
-9713>I<07801860303070306018E018E018E01CE01CE01C601C603C303C185C0F9C001C001800
-18003870307060604021801F000E187E9713>I<1FC020604030C038E038E0380038007000E001
-8001000300020002000200020002000200000000000000000006000F000F0006000D1A7E9912>
-63 D<FFFF000E01C00E00E00E00700E00780E00780E00780E00780E00780E00F00E00E00E03C0
-0FFF800E01E00E00700E00780E003C0E003C0E003C0E003C0E003C0E00380E00780E00F00E01E0
-FFFF80161A7E991B>66 D<FFFF000E01C00E00E00E00300E00380E001C0E001C0E000E0E000E0E
-000F0E000F0E000F0E000F0E000F0E000F0E000F0E000F0E000E0E000E0E001E0E001C0E00380E
-00380E00700E01C0FFFF00181A7E991D>68 D<FFFFE00E00E00E00600E00200E00300E00100E00
-100E00100E04000E04000E04000E0C000FFC000E0C000E04000E04000E04000E00000E00000E00
-000E00000E00000E00000E00000E0000FFF000141A7E9919>70 D<3F8070C070E0207000700070
-07F01C7030707070E070E071E071E0F171FB1E3C10107E8F13>97 D<FC00001C00001C00001C00
-001C00001C00001C00001C00001C00001C00001CF8001F0E001E07001C03801C01801C01C01C01
-C01C01C01C01C01C01C01C01C01C03801C03001E07001B0C0010F000121A7F9915>I<07F80C1C
-381C30087000E000E000E000E000E000E0007000300438080C1807E00E107F8F11>I<07C01C30
-30187018600CE00CFFFCE000E000E000E0006000300438080C1807E00E107F8F11>101
-D<01F0031807380E100E000E000E000E000E000E00FFC00E000E000E000E000E000E000E000E00
-0E000E000E000E000E000E007FE00D1A80990C>I<FC00001C00001C00001C00001C00001C0000
-1C00001C00001C00001C00001CF8001D0C001E0E001E0E001C0E001C0E001C0E001C0E001C0E00
-1C0E001C0E001C0E001C0E001C0E001C0E00FF9FC0121A7F9915>104 D<18003C003C00180000
-0000000000000000000000FC001C001C001C001C001C001C001C001C001C001C001C001C001C00
-1C00FF80091A80990A>I<018003C003C001800000000000000000000000000FC001C001C001C0
-01C001C001C001C001C001C001C001C001C001C001C001C001C001C001C041C0E180E3007E000A
-2182990C>I<FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C
-001C001C001C001C001C001C001C001C00FF80091A80990A>108 D<FC7C1F001D8E63801E0781
-C01E0781C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C0701C01C07
-01C01C0701C01C0701C0FF9FE7F81D107F8F20>I<FCF8001D0C001E0E001E0E001C0E001C0E00
-1C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E001C0E00FF9FC012107F8F15>I<07E0
-1C38300C700E6006E007E007E007E007E007E0076006700E381C1C3807E010107F8F13>I<FCE0
-1D701E701E201C001C001C001C001C001C001C001C001C001C001C00FFC00C107F8F0F>114
-D<1F2060E04020C020C020F0007F003FC01FE000F080708030C030C020F0408F800C107F8F0F>
-I<0400040004000C000C001C003C00FFC01C001C001C001C001C001C001C001C001C201C201C20
-1C201C200E4003800B177F960F>I<FF3F9F803C0E0700380E06001C1604001C1704001E170C00
-0E2308000E2388000F239800074190000741D00003C1E0000380E0000380E0000180C000010040
-0019107F8F1C>119 D E /Fd 1 59 df<60F0F06004047D830B>58 D E
-/Fe 42 123 df<0FC01FF03838701CE00EE00EE00E400E000E001C001C00380030007000E001C0
-030006000C00180E300E7FFE7FFE0F177E9614>50 D<000E003E007C00F003E007C01F003E00F8
-00F000F8003E001F0007C003E000F0007C003E000E0F137E9414>60 D<4000E000F8007C001E00
-0F8007C001F000F8003E001E003E00F801F007C00F801E007C00F800E00040000F157E9514>62
-D<01C00003E00003E0000360000360000770000770000770000770000630000E38000E38000E38
-000E38000E38001FFC001FFC001C1C001C1C003C1E00380E00FE3F80FE3F8011177F9614>65
-D<FFF0FFFC381E380E3807380738073807380E381E3FFC3FFC381E380E38073807380738073807
-380E381EFFFCFFF810177F9614>I<03C60FFE1C3E181E381E700E700E600EE000E000E000E000
-E000E000E000600E700E700E380C181C1C380FF003C00F177E9614>I<FFE000FFF800383C0038
-1E00380E0038070038070038070038038038038038038038038038038038038038038038038038
-0700380700380E00381E00383C00FFF800FFE00011177F9614>I<FFFF00FFFF00380700380700
-3807003807003800003800003870003870003FF0003FF000387000387000380000380000380000
-380380380380380380380380FFFF80FFFF8011177F9614>I<FFFFFFFF38073807380738073800
-3800387038703FF03FF0387038703800380038003800380038003800FF00FF0010177E9614>I<
-FE3F80FE3F80380E00380E00380E00380E00380E00380E00380E00380E003FFE003FFE00380E00
-380E00380E00380E00380E00380E00380E00380E00380E00FE3F80FE3F8011177F9614>72
-D<FE0FE0FE0FE03E0F803B1B803B1B803B1B803B1B803BBB803BBB8039B38039B38039B38039F3
-8038E38038E380380380380380380380380380380380380380FE0FE0FE0FE01317809614>77
-D<FE3F80FE3F803E0E003B0E003B0E003B0E003B0E003B8E00398E00398E0039CE0039CE0039CE
-0038CE0038CE0038EE00386E00386E00386E00386E00383E00FE3E00FE3E0011177F9614>I<1F
-F07FFC783C701CE00EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00EE00E701C
-783C7FFC1FF00F177E9614>I<FFF0FFFC381E380E38073807380738073807380E381E3FFC3FF0
-38003800380038003800380038003800FE00FE0010177F9614>I<7FFF80FFFF80E1C380E1C380
-E1C380E1C38001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000
-01C00001C00001C00001C0000FF8000FF80011177F9614>84 D<FC1F80FC1F8070070070070070
-070070070070070070070030060031C6003BEE003BEE003B6E003B6E003B6E003B6E003B6E001B
-6C001B6C001A2C001E3C001E3C001E3C0011177F9614>87 D<7E3E007E3E001C38001E38000E78
-000F700007F00007E00003E00003C00001C00003C00003E00003E0000770000770000E78000E38
-001C3C001C1C003C1E00FE3F80FE3F8011177F9614>I<1FC0007FF000707800201800001C0000
-1C0007FC001FFC003C1C00701C00E01C00E01C00E01C00707C003FFF800F8F8011107E8F14>97
-D<FC0000FC00001C00001C00001C00001C00001C00001CF8001DFE001F07001E03001C03801C01
-C01C01C01C01C01C01C01C01C01C01C01C03801E03001F0E001DFC000CF8001217809614>I<03
-F80FFC1C1C380870006000E000E000E000E00060007000380E1C1E0FFC03F00F107E8F14>I<00
-7E00007E00000E00000E00000E00000E00000E0007CE000FFE001C3E00301E00700E00E00E00E0
-0E00E00E00E00E00E00E00E00E00700E00301E00383E001FEFC007CFC012177F9614>I<07E00F
-F01C38301C700CE00EE00EFFFEFFFEE00060007000380E1C1E0FFC03F00F107E8F14>I<007C00
-FE01CE03840380038003807FFEFFFE038003800380038003800380038003800380038003800380
-7FFC7FFC0F177F9614>I<07CF001FFF80383B80301800701C00701C00701C003018003838003F
-F00037C0007000007000003FF8001FFC003FFE00700F00E00380E00380E00380E003807007003C
-1E001FFC0007F00011197F8F14>I<FC0000FC00001C00001C00001C00001C00001C00001C7800
-1DFE001F86001E07001C07001C07001C07001C07001C07001C07001C07001C07001C07001C0700
-FF8FE0FF8FE01317809614>I<030007800780030000000000000000007F807F80038003800380
-038003800380038003800380038003800380FFFCFFFC0E187D9714>I<006000F000F000600000
-0000000000001FF01FF00070007000700070007000700070007000700070007000700070007000
-7000700070007040E0E0C07F803F000C207E9714>I<FC0000FC00001C00001C00001C00001C00
-001C00001DFF801DFF801C3C001C78001CF0001DE0001FC0001FC0001FE0001EF0001C70001C38
-001C38001C1C00FE3F80FE3F8011177F9614>I<FF80FF80038003800380038003800380038003
-8003800380038003800380038003800380038003800380FFFEFFFE0F177E9614>I<FB8E00FFDF
-003CF3803CF38038E38038E38038E38038E38038E38038E38038E38038E38038E38038E380FEFB
-E0FE79E01310808F14>I<FC7800FDFE001F86001E07001C07001C07001C07001C07001C07001C
-07001C07001C07001C07001C0700FF8FE0FF8FE01310808F14>I<07C01FF03C78701C701CE00E
-E00EE00EE00EE00EE00E701C783C3C781FF007C00F107E8F14>I<FCF800FDFE001F07001E0300
-1C03801C01C01C01C01C01C01C01C01C01C01C01C01C03801E03001F0E001DFC001CF8001C0000
-1C00001C00001C00001C00001C0000FF8000FF80001218808F14>I<FE1F00FE7F800EE3800F81
-000F00000F00000E00000E00000E00000E00000E00000E00000E00000E0000FFF000FFF0001110
-7F8F14>114 D<0FD83FF86038C038C038F0007F803FF007F8001C6006E006F006F81CFFF8CFE0
-0F107E8F14>I<030007000700070007007FFCFFFC07000700070007000700070007000700070E
-070E070E070C03FC00F00F157F9414>I<FC3F00FC3F001C07001C07001C07001C07001C07001C
-07001C07001C07001C07001C07001C07001C1F000FFFE003E7E01310808F14>I<FE3F80FE3F80
-1C1C001C1C001C1C001C1C000E38000E38000E380006300007700007700007700003E00003E000
-03E00011107F8F14>I<FF7F80FF7F80380E00380E00380E00380E0039CE0039CE0019CC001B6C
-001B6C001A6C001A6C001E7C000E78000E780011107F8F14>I<7E3F007E3F001E38000E780007
-700007E00003E00001C00003C00003E0000770000E78000E38001C1C00FE3F80FE3F8011107F8F
-14>I<FE3F80FE3F801C1C001C1C001C1C000E1C000E38000E3800073800073000073000037000
-03700001E00001E00001E00001C00001C00001C0000380007380007700007E00003C000011187F
-8F14>I<3FFF7FFF700E701C7038007000E001C0038007000E001C0738077007FFFFFFFF10107F
-8F14>I E /Ff 70 123 df<0003F07C001E0DC600380F0F00701E0F00E01E0E00E00C0001C01C
-0001C01C0001C01C0001C01C0001C01C00038038007FFFFFC00380380003803800038038000380
-38000700700007007000070070000700700007007000070070000E00E0000E00E0000E00E0000E
-00E0000E00E0000E00E0001C01C0001E01E000FF8FFE0020207E9F1B>11
-D<0003E0001C1800381800703C00E03C00E03801C00001C00001C00001C00001C0000380007FFF
-F00380700380700380700380700700E00700E00700E00700E00700E00700E00E01C00E01C00E01
-C00E01C00E01C00E01C01C03801E03C0FF0FF816207E9F19>I<0003F4001C1C00383C00703C00
-E03C00E03801C03801C03801C03801C03801C0380380707FFFF003807003807003807003807007
-00E00700E00700E00700E00700E00700E00E01C00E01C00E01C00E01C00E01C00E01C01C03801E
-03C0FF9FF816207E9F19>I<0003F03F00001E09E08000380F80C000701F01E000E03E01E000E0
-1E01C001C01C000001C01C000001C01C000001C01C000001C01C000003803800007FFFFFFF8003
-803803800380380380038038038003803803800700700700070070070007007007000700700700
-070070070007007007000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E
-001C01C01C001E01E01E00FF8FF8FFC023207E9F26>I<387C7C7E3A040404080810204080070E
-789F0D>39 D<00030004000800100020006000C0018001000300060006000C000C001C00180018
-00380030003000700070006000600060006000E000E000E000E000E000E0006000600060006000
-6000300030001000180008000C00040002000100102E7CA112>I<008000C00060002000300018
-0018000C000C000C000E00060006000600060006000600060006000600060006000E000E000E00
-0C000C001C001800180038003000300060006000C000C001800100030006000C00180030006000
-80000F2E7FA112>I<0020000060000060000060000060007061C03843800E4E0007580001E000
-01E00006B8001C9C00708700E0838001800001800001800001800001000012147AA117>I<1C3E
-7E7E3A0202040408081020C0070E7D840D>44 D<FFC0FFC00A027D8A0F>I<3078F8787005057C
-840D>I<007E0001C3000301800701C00E00C00E00E01C00E01C00E03C01E03801E07801E07801
-E07801E07801E07801E0F003C0F003C0F003C0F003C0F003C0F00380F00780E00780E00700E007
-00E00E00600E00701C003038003870000FC000131F7C9D17>48 D<000C001C00FC0F3800380038
-00380038003800700070007000700070007000E000E000E000E000E000E001C001C001C001C001
-C001C0038003C0FFFE0F1E7C9D17>I<003F8000C1E00100F00200780400780400780F007C0F80
-7C0F807C0F00780600780000F80000F00001E00001C0000380000700000E00001C000038000060
-0000C0000180000300200600200800401000403FFFC07FFF80FFFF80161E7E9D17>I<007F0001
-83C00201E00400F00700F00F00F00F01F00F01F00001E00001E00003C0000380000700000E0000
-F800000E000007000007800007C00003C00007C03007C07807C0F807C0F807C0F00780800F0040
-0E00201C0018780007E000141F7D9D17>I<0000600000600000E00001C00003C00005C0000DC0
-0009C00011C000238000438000C380008380010380020380040700080700180700100700200700
-400700FFFFF0000E00000E00000E00000E00000E00001C00001E0001FFE0141E7E9D17>I<0180
-3001FFE003FFC003FF0003FC00020000020000020000040000040000040000047C000587000603
-800C01800801C00001C00001E00001E00001E00001E07003C0F803C0F003C0E003808007804007
-00400E00201C0018700007C000141F7D9D17>I<000F8000704000C0200180E00301E00701E00E
-00C01E00001C00003C000038000078F800790E007A07007C0300F80380F80380F003C0F003C0F0
-03C0F003C0F00780E00780E00780E00700E00F00600E00701C0030180018700007C000131F7C9D
-17>I<003F0000C1C00100600200600400300C00300C00300C00300C00600E00600F80C00FC180
-07F60003FC0001FC0001FF00063F800C0F801007C03003C06001C06000C0C000C0C000C0C000C0
-C00080C0010060030030040018180007E000141F7D9D17>56 D<007E0001C3000301800601C00E
-01C01C00C03C00E03C00E03C01E07801E07801E07801E07801E07803E07803E03803C03807C01C
-0BC00C13C003E380000780000780000700000E00600E00F01C00F01800E0300080600041C0003F
-0000131F7C9D17>I<0E1F1F1E0C000000000000000000003078F8787008147C930D>I<07000F80
-0F800F000600000000000000000000000000000000000000000018003C007C007C003C00040004
-000800080010001000200040008000091D7D930D>I<1FFFFFF83FFFFFFC000000000000000000
-0000000000000000000000000000000000000000000000FFFFFFF07FFFFFE01E0C7C9023>61
-D<07E01838201C401C701CF03CF03C603C0038007000E001C00180030002000600040004000800
-0800080008000000000000000000000030007800F800780070000E20799F15>63
-D<0000100000001800000038000000380000007800000078000000FC000001BC0000013C000003
-3C0000023C0000063C0000043E0000081E0000081E0000101E0000101E0000201E0000200F0000
-400F0000400F0000FFFF0000800F0001000F800100078002000780020007800400078004000780
-0C0007C03E0007C0FF807FFC1E207E9F22>65 D<07FFFF00007C01C0003C01E0003C00F0007800
-F8007800F8007800F8007800F8007800F8007800F000F001F000F001E000F003C000F00F8000FF
-FE0000F00F0001E007C001E003C001E003E001E001E001E001E001E001E003C001E003C003E003
-C003E003C003C003C007C003C00F8007800F0007803E00FFFFF0001D1F7E9E20>I<0001F80800
-0E061800380138007000F801E0007803C0007007800030078000300F0000301F0000301E000030
-3E0000203C0000007C0000007C0000007C0000007C000000F8000000F8000000F8000000F80000
-00F80000007800004078000080780000803C0000803C0001001C0002000E00020006000C000300
-100001C0E000003F00001D217B9F21>I<07FFFF00007C01E0003C00F0003C00780078003C0078
-003C0078001E0078001E0078001E0078001F00F0001F00F0001F00F0001F00F0001F00F0001F00
-F0001F01E0001E01E0003E01E0003E01E0003E01E0003C01E0007C03C0007803C000F003C000F0
-03C001E003C003C003C0078007800F0007803C00FFFFE000201F7E9E23>I<07FFFFF8007C0078
-003C0038003C001800780018007800080078000800780008007800080078080800F0100000F010
-0000F0100000F0300000FFF00000F0700001E0200001E0200001E0200001E0200001E0000801E0
-001003C0001003C0001003C0002003C0002003C0006003C000C0078001C0078007C0FFFFFF801D
-1F7E9E1F>I<07FFFFF8007C0078003C0038003C00180078001800780008007800080078000800
-7800080078000800F0100000F0100000F0100000F0300000F0700000FFF00001E0600001E02000
-01E0200001E0200001E0200001E0000003C0000003C0000003C0000003C0000003C0000003C000
-000780000007C00000FFFE00001D1F7E9E1E>I<0001FC04000F030C003C009C0070007C00E000
-3C01C0003803800018078000180F0000181F0000181E0000183E0000103C0000007C0000007C00
-00007C0000007C000000F8000000F8000000F8007FFCF80003E0780001E0780001E0780003C078
-0003C03C0003C03C0003C01C0003C00E0007C007000B800380118001E06080003F80001E217B9F
-24>I<07FFE0007C00003C00003C0000780000780000780000780000780000780000F00000F000
-00F00000F00000F00000F00001E00001E00001E00001E00001E00001E00003C00003C00003C000
-03C00003C00003C00007800007C000FFFC00131F7F9E10>73 D<07FFF000007E0000003C000000
-3C000000780000007800000078000000780000007800000078000000F0000000F0000000F00000
-00F0000000F0000000F0000001E0000001E0000001E0000001E0000001E0008001E0010003C001
-0003C0010003C0030003C0020003C0060003C0060007801E0007807C00FFFFFC00191F7E9E1C>
-76 D<07FC0000FFC0007C0000F800003C00017800003C00017800004E0002F000004E0002F000
-004E0004F000004E0004F000004E0008F000004E0008F00000870011E00000870011E000008700
-21E00000870021E00000870041E00000838041E00001038083C00001038083C00001038103C000
-01038203C0000101C203C0000101C403C0000201C40780000201C80780000201C80780000201D0
-0780000200F00780000600E00780000600E00F00000F00C00F8000FFE0C1FFF8002A1F7E9E2A>
-I<07FC01FFC0003E003E00003E001800003E001800004F001000004F0010000047801000004780
-10000043C010000043C010000083C020000081E020000081E020000080F020000080F020000080
-782000010078400001007C400001003C400001003C400001001E400001001E400002000F800002
-000F800002000F800002000780000200078000060003800006000300000F00010000FFE0010000
-221F7E9E22>I<0003F800001E0E000038070000E0038001C001C003C001E0078000E00F0000F0
-0F0000F01E0000F01E0000F83E0000F83C0000F87C0000F87C0000F87C0000F87C0000F8F80001
-F0F80001F0F80001F0F80001F0F80003E0780003E0780003C0780007C07C0007803C000F003C00
-1E001E001C000E0038000700F00003C3C00000FE00001D217B9F23>I<07FFFF00007C03C0003C
-01E0003C00F0007800F0007800F8007800F8007800F8007800F8007800F000F001F000F001E000
-F003C000F0078000F00F0000FFF80001E0000001E0000001E0000001E0000001E0000001E00000
-03C0000003C0000003C0000003C0000003C0000003C000000780000007C00000FFFC00001D1F7E
-9E1F>I<07FFFC00007C0700003C03C0003C01E0007801E0007801F0007801F0007801F0007801
-F0007801E000F003E000F003C000F0078000F00F0000F03C0000FFF00001E0300001E0380001E0
-1C0001E01C0001E01C0001E01E0003C03E0003C03E0003C03E0003C03E0003C03E0003C03E0207
-803E0407C01F04FFFC0F18000003E01F207E9E21>82 D<003F040060CC01803C03801C03001C07
-00180600080E00080E00080E00080E00000F00000F80000FE00007FE0003FF8001FFC0007FE000
-07E00001E00000E00000F00000F04000E04000E04000E04000E06000C0600180E00380F80300C6
-0C0081F80016217D9F19>I<3FFFFFF03C0780F03007803060078030400F0010400F0010C00F00
-10800F0010800F0010800F0010001E0000001E0000001E0000001E0000001E0000001E0000003C
-0000003C0000003C0000003C0000003C0000003C00000078000000780000007800000078000000
-7800000078000000F0000001F800007FFFE0001C1F7A9E21>I<FFFC3FF80F8007C00780030007
-8003000F0002000F0002000F0002000F0002000F0002000F0002001E0004001E0004001E000400
-1E0004001E0004001E0004003C0008003C0008003C0008003C0008003C0008003C000800380010
-003800100038001000380020003C0040001C0040001C0080000E0100000706000001F800001D20
-799E22>I<FFF07FF81FF01F000FC007C01F00078003000F00078003000F00078002000F000F80
-02000F000F8004000F001F8004000F0017C008000F8013C00800078023C01000078023C0100007
-8043C02000078043C02000078083C04000078083E0400007C101E0800003C101E0800003C201E1
-000003C201E1000003C401E2000003C401E2000003C801F4000003E800F4000001F000FC000001
-F000F8000001E000F8000001E000F0000001C000F0000001C00060000000C00060000000800040
-00002C207A9E2F>87 D<00FE01FC01800180018001800180030003000300030003000300060006
-0006000600060006000C000C000C000C000C000C00180018001800180018001800300030003000
-300030003000600060006000600060006000FE00FE000F2D7EA10D>91 D<00FE01FC000C000C00
-0C000C000C00180018001800180018001800300030003000300030003000600060006000600060
-006000C000C000C000C000C000C0018001800180018001800180030003000300030003000300FE
-00FE000F2D81A10D>93 D<07F8000C0C001E06001E07001C070000070000070000070000FF0007
-C7001E07003C0E00780E00F00E10F00E10F00E10F01E10F02E20784F401F878014147D9317>97
-D<0700003F00000F00000700000700000E00000E00000E00000E00000E00000E00001C00001C7C
-001D87001E03801C01C01C01C03801C03801E03801E03801E03801E03801E07003C07003C07003
-80700780700700700E00E81C00C4380083E00013207B9F19>I<01FC07060E0F1C0F380E780070
-00F000F000F000F000E000E000E000E000F0027004300818300FC010147C9314>I<0000700003
-F00000F00000700000700000E00000E00000E00000E00000E00000E00001C000F9C00305C00E03
-C01C03C03801C0780380700380F00380F00380F00380F00380E00700E00700E00700E00700E007
-00700F00301E00186F000F8FE014207C9F19>I<00F800070E000E07001C070038038078038070
-0380F00380F00380FFFF80F00000E00000E00000E00000E00000F001007002003004001C180007
-E00011147D9314>I<0007800018C00031E00061E000E1C000C00001C00001C00001C00001C000
-01C0000380007FF800038000038000038000038000070000070000070000070000070000070000
-0E00000E00000E00000E00000E00000E00001C00001E0000FFE00013207E9F0E>I<00000E003E
-1100E1A301C1C20381E00780E00701E00F01E00F01E00F01E00703C007038007870004FC000800
-000800001800001C00000FFF000FFFC007FFE01800F0300030600030C00030C00030C000306000
-603000C01C070007FC00181F809417>I<00E00007E00001E00000E00000E00001C00001C00001
-C00001C00001C00001C000038000038F800390E003A0E003C0600380600780E00700E00700E007
-00E00700E00700E00E01C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FFCFF815207E9F
-19>I<01C003E003E003E001C000000000000000000000000003801F8007800380038007000700
-07000700070007000E000E000E000E000E000E001C001E00FF800B1F7F9E0C>I<0003800007C0
-0007C0000780000300000000000000000000000000000000000000000700007F00000F00000700
-000700000E00000E00000E00000E00000E00000E00001C00001C00001C00001C00001C00001C00
-003800003800003800003800003800003800007000607000F06000F0C0006180003F0000122883
-9E0E>I<00E00007E00001E00000E00000E00001C00001C00001C00001C00001C00001C0000380
-000383FC0380F00380C0038180038100070400070800071800073800077C00071C000E1C000E0E
-000E0E000E0F000E07000E07801C03801E07C0FF8FF016207E9F18>I<00E007E001E000E000E0
-01C001C001C001C001C001C00380038003800380038003800700070007000700070007000E000E
-000E000E000E000E001C001E00FFC00B207F9F0C>I<0387C07C001F9861860007A072070003C0
-34030003803803000780780700070070070007007007000700700700070070070007007007000E
-00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E001C01C01C001E01E01E00
-FFCFFCFFC022147E9326>I<038F801F90E007A0E003C0600380600780E00700E00700E00700E0
-0700E00700E00E01C00E01C00E01C00E01C00E01C00E01C01C03801E03C0FFCFF815147E9319>
-I<00FC000387000E01801C00C03800E03800E07000F0F000F0F000F0F000F0F000F0E001E0E001
-E0E001C0E003C0F00380700700380E001C1C0007E00014147D9317>I<00E3E007EC3800F01C00
-E01E00E00E01C00E01C00F01C00F01C00F01C00F01C00F03801E03801E03801C03803C03803803
-80700740E00721C0071F000700000700000700000E00000E00000E00000E00001E0000FFC00018
-1D809319>I<00F040038CC00E04C01C03C03C03C0780380780380F00380F00380F00380F00380
-E00700E00700E00700F00700F00F00700F00301E00186E000F8E00000E00000E00000E00001C00
-001C00001C00001C00003C0001FF80121D7C9318>I<038E001FB38007C78003C7800383000780
-000700000700000700000700000700000E00000E00000E00000E00000E00000E00001C00001E00
-00FFE00011147E9312>I<01F2060E080618061802380438001E001FE00FF003F8003C401C400C
-400C600C6018E010D0608FC00F147E9312>I<0080010001000100030007000F001E00FFF80E00
-0E000E000E001C001C001C001C001C001C00380038203820382038203840384018800F000D1C7C
-9B12>I<1C0380FC1F803C07801C03801C0380380700380700380700380700380700380700700E
-00700E00700E00700E00701E00701E00703C00305E001F9FC012147B9319>I<FF83F81E00E01C
-00C01C00800E00800E01000E02000E02000F040007040007080007080007100003900003A00003
-E00003C00003800001800001000015147C9318>I<FF9FE1FC3E0780701C0300601C0300401C03
-80401C0380800E0780800E0581000E0981000E09C2000E11C2000731C4000721C4000760C80007
-40C8000780F0000780F0000300E00003006000020040001E147C9321>I<1FF0FF03C07801C060
-01C04000E08000E180007300007600003C00003C00001C00002E00004E00008700010700020380
-0603800C01C03E03E0FF07FC18147F9318>I<0FF83F8001E00E0001C00C0001C0080000E01800
-00E0100000E0200000E0200000F040000070400000708000007080000071000000390000003A00
-00003E0000003C00000038000000180000001000000010000000200000002000000040000070C0
-0000F0800000F1000000E20000007C000000191D809318>I<07FFE00701E00401C00C03800807
-00080E00101C0000380000700000700000E00001C0000380800700800E00801C01001C01003803
-00700E00FFFE0013147F9314>I E /Fg 4 12 df<F8000000FF80000007E0000000780000001C
-000000070000000380000000C0000000600000003000000018000000180000000C000000060000
-000600000003000000030000000180000001800000018000000180000000C0000000C0000000C0
-000000C0000000C0000000401A1B988132>8 D<00000040000000C0000000C0000000C0000000
-C0000000C000000180000001800000018000000180000003000000030000000600000006000000
-0C00000018000000180000003000000060000000C0000003800000070000001C00000078000007
-E00000FF800000F80000001A1B989A32>I<40000000C0000000C0000000C0000000C0000000C0
-000000600000006000000060000000300000003000000018000000180000000C00000006000000
-06000000030000000180000000C000000060000000380000001C0000000700000003C0000000F8
-0000003FE0000007E01B1B809A32>I<000007E000003FE00000F8000003C00000070000001C00
-00003800000060000000C00000018000000300000006000000060000000C000000180000001800
-00003000000030000000600000006000000060000000C0000000C0000000C0000000C0000000C0
-000000400000001B1B808132>I E /Fh 87 126 df<70F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8
-70000000000070F8F8F870051C779B18>33 D<4010E038F078E038E038E038E038E038E038E038
-E038E038E03860300D0E7B9C18>I<030600078F00078F00078F00078F00078F00078F007FFFC0
-FFFFE0FFFFE07FFFC00F1E000F1E000F1E000F1E000F1E000F1E007FFFC0FFFFE0FFFFE07FFFC0
-1E3C001E3C001E3C001E3C001E3C001E3C000C1800131C7E9B18>I<3803007C07807C0780EE0F
-80EE0F00EE0F00EE1F00EE1E00EE1E00EE3E007C3C007C3C00387C0000780000780000F80000F0
-0001F00001E00001E00003E00003C00003C00007C0000783800787C00F87C00F0EE00F0EE01F0E
-E01E0EE01E0EE03E0EE03C07C03C07C018038013247E9F18>37 D<007000F001E003C007800F00
-1E001C00380038007000700070007000E000E000E000E000E000E000E000E00070007000700070
-00380038001C001E000F00078003C001F000F000700C24799F18>40 D<6000F00078003C001E00
-0F000780038001C001C000E000E000E000E00070007000700070007000700070007000E000E000
-E000E001C001C0038007800F001E003C007800F00060000C247C9F18>I<01C00001C00001C000
-01C000C1C180F1C780F9CF807FFF001FFC0007F00007F0001FFC007FFF00F9CF80F1C780C1C180
-01C00001C00001C00001C00011147D9718>I<00600000F00000F00000F00000F00000F00000F0
-0000F0007FFFC0FFFFE0FFFFE07FFFC000F00000F00000F00000F00000F00000F00000F0000060
-0013147E9718>I<1C3E7E7F3F1F070E1E7CF860080C788518>I<7FFF00FFFF80FFFF807FFF0011
-047D8F18>I<3078FCFC78300606778518>I<000300000780000780000F80000F00001F00001E00
-001E00003E00003C00007C0000780000780000F80000F00001F00001E00003E00003C00003C000
-07C0000780000F80000F00000F00001F00001E00003E00003C00003C00007C0000780000F80000
-F00000F0000060000011247D9F18>I<01F00007FC000FFE001F1F001C07003803807803C07001
-C07001C0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0E000E0F001E07001C07001
-C07803C03803801C07001F1F000FFE0007FC0001F000131C7E9B18>I<01800380038007800F80
-3F80FF80FB80438003800380038003800380038003800380038003800380038003800380038003
-807FFCFFFE7FFC0F1C7B9B18>I<03F0000FFE003FFF007C0F807003C0E001C0F000E0F000E060
-00E00000E00000E00001C00001C00003C0000780000F00001E00003C0000780000F00001E00007
-C0000F80001E00E03C00E07FFFE0FFFFE07FFFE0131C7E9B18>I<07F8001FFE003FFF00780780
-7803C07801C03001C00001C00003C0000380000F0003FF0003FE0003FF000007800003C00001C0
-0000E00000E00000E0F000E0F000E0F001C0F003C07C07803FFF001FFE0003F800131C7E9B18>
-I<001F00003F0000770000770000E70001E70001C7000387000787000707000E07001E07003C07
-00380700780700F00700FFFFF8FFFFF8FFFFF8000700000700000700000700000700000700007F
-F000FFF8007FF0151C7F9B18>I<1FFF803FFF803FFF8038000038000038000038000038000038
-00003800003800003BF8003FFE003FFF003C07801803C00001C00000E00000E06000E0F000E0F0
-00E0E001C07003C07C0F803FFF001FFC0003F000131C7E9B18>I<007E0001FF0007FF800F83C0
-1E03C01C03C0380180380000700000700000E1F800E7FE00FFFF00FE0780F803C0F001C0F000E0
-E000E0F000E07000E07000E07000E03801C03C03C01E07800FFF0007FE0001F800131C7E9B18>
-I<E00000FFFFE0FFFFE0FFFFE0E003C0E00780000700000E00001E00001C000038000038000070
-0000700000E00000E00000E00001C00001C00001C00001C00003C0000380000380000380000380
-00038000038000038000131D7E9C18>I<03F8000FFE001FFF003E0F803803807001C07001C070
-01C07001C03803803C07801FFF0007FC000FFE001F1F003C07807001C0F001E0E000E0E000E0E0
-00E0E000E07001C07803C03E0F801FFF000FFE0003F800131C7E9B18>I<03F0000FFC001FFE00
-3C0F00780780700380E001C0E001C0E001C0E001E0E001E07001E07803E03C0FE01FFFE00FFEE0
-03F0E00000E00001C00001C00001C0300380780780780F00783E003FFC001FF00007C000131C7E
-9B18>I<3078FCFC783000000000000000003078FCFC78300614779318>I<183C7E7E3C18000000
-0000000000183C7E7E3E1E0E1C3C78F060071A789318>I<000300000780001F80003F00007E00
-01FC0003F00007E0001FC0003F00007E0000FC0000FC00007E00003F00001FC00007E00003F000
-01FC00007E00003F00001F8000078000030011187D9918>I<7FFFC0FFFFE0FFFFE0FFFFE00000
-00000000000000000000FFFFE0FFFFE0FFFFE07FFFC0130C7E9318>I<600000F00000FC00007E
-00003F00001FC00007E00003F00001FC00007E00003F00001F80001F80003F00007E0001FC0003
-F00007E0001FC0003F00007E0000FC0000F0000060000011187D9918>I<0FF0003FFC007FFF00
-700F00F00380F00380600780000F00003E00007C0001F00001E00003C00003C00003C00003C000
-03C00003800000000000000000000000000000000003800007C00007C00007C000038000111C7D
-9B18>I<007C0001FE0007FF000F87801E03C03C1DC0387FC070FFE071E3E071C1E0E1C1E0E380
-E0E380E0E380E0E380E0E380E0E380E0E1C1C071C1C071E3C070FF80387F003C1C001E00E00F83
-E007FFC001FF80007E00131C7E9B18>I<00700000F80000F80000D80000D80001DC0001DC0001
-DC00018C00038E00038E00038E00038E000306000707000707000707000707000FFF800FFF800F
-FF800E03800E03801C01C01C01C07F07F0FF8FF87F07F0151C7F9B18>I<FFFC00FFFF00FFFF80
-1C03C01C01C01C00E01C00E01C00E01C00E01C01E01C01C01C07C01FFF801FFF001FFFC01C03C0
-1C00E01C00F01C00701C00701C00701C00701C00F01C00E01C03E0FFFFC0FFFF80FFFE00141C7F
-9B18>I<00F8E003FEE007FFE00F07E01E03E03C01E03800E07000E07000E0700000E00000E000
-00E00000E00000E00000E00000E00000E000007000007000E07000E03800E03C00E01E01C00F07
-C007FF8003FE0000F800131C7E9B18>I<7FF800FFFE007FFF001C0F801C03C01C03C01C01E01C
-00E01C00E01C00F01C00701C00701C00701C00701C00701C00701C00701C00701C00F01C00E01C
-00E01C01E01C01C01C03C01C0F807FFF00FFFE007FF800141C7F9B18>I<FFFFF0FFFFF0FFFFF0
-1C00701C00701C00701C00701C00001C00001C0E001C0E001C0E001FFE001FFE001FFE001C0E00
-1C0E001C0E001C00001C00001C00381C00381C00381C00381C0038FFFFF8FFFFF8FFFFF8151C7F
-9B18>I<FFFFE0FFFFE0FFFFE01C00E01C00E01C00E01C00E01C00001C00001C1C001C1C001C1C
-001FFC001FFC001FFC001C1C001C1C001C1C001C00001C00001C00001C00001C00001C00001C00
-00FFC000FFC000FFC000131C7E9B18>I<01F1C003FDC00FFFC01F0FC01C03C03803C03801C070
-01C07001C0700000E00000E00000E00000E00000E00000E00FF0E01FF0E00FF07001C07001C070
-03C03803C03803C01C07C01F0FC00FFFC003FDC001F1C0141C7E9B18>I<7F07F0FF8FF87F07F0
-1C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01FFFC01FFFC01FFFC01C01C0
-1C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C07F07F0FF8FF87F07F0151C7F
-9B18>I<7FFF00FFFF807FFF0001C00001C00001C00001C00001C00001C00001C00001C00001C0
-0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
-007FFF00FFFF807FFF00111C7D9B18>I<01FFC003FFC001FFC0000E00000E00000E00000E0000
-0E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E0000
-0E00000E00F00E00F00E00F03C007FFC003FF0000FC000121C7D9B18>I<7F07F0FF87F87F07F0
-1C03C01C07801C07001C0E001C1E001C3C001C38001C70001CF0001DF0001DF0001FB8001FB800
-1F1C001E1C001C0E001C0E001C07001C07001C03801C03801C01C07F03F0FF87F87F03F0151C7F
-9B18>I<7FE000FFE0007FE0000E00000E00000E00000E00000E00000E00000E00000E00000E00
-000E00000E00000E00000E00000E00000E00000E00000E00000E00700E00700E00700E00700E00
-707FFFF0FFFFF07FFFF0141C7F9B18>I<FC01F8FE03F8FE03F83B06E03B06E03B06E03B06E03B
-8EE03B8EE0398CE0398CE039DCE039DCE039DCE038D8E038D8E038F8E03870E03870E03800E038
-00E03800E03800E03800E03800E0FE03F8FE03F8FE03F8151C7F9B18>I<7E07F0FF0FF87F07F0
-1D81C01D81C01D81C01DC1C01CC1C01CC1C01CE1C01CE1C01CE1C01C61C01C71C01C71C01C31C0
-1C39C01C39C01C39C01C19C01C19C01C1DC01C0DC01C0DC01C0DC07F07C0FF87C07F03C0151C7F
-9B18>I<0FF8003FFE007FFF00780F00700700F00780E00380E00380E00380E00380E00380E003
-80E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380F00780700700780F
-007FFF003FFE000FF800111C7D9B18>I<FFFE00FFFF80FFFFC01C03C01C01E01C00E01C00701C
-00701C00701C00701C00701C00E01C01E01C03C01FFFC01FFF801FFE001C00001C00001C00001C
-00001C00001C00001C00001C0000FF8000FF8000FF8000141C7F9B18>I<7FF800FFFE007FFF00
-1C0F801C03801C03C01C01C01C01C01C01C01C03C01C03801C0F801FFF001FFE001FFE001C0F00
-1C07001C03801C03801C03801C03801C03801C039C1C039C1C039C7F01F8FF81F87F00F0161C7F
-9B18>82 D<03F3801FFF803FFF807C0F80700780E00380E00380E00380E000007000007800003F
-00001FF00007FE0000FF00000F800003C00001C00000E00000E06000E0E000E0E001E0F001C0F8
-0780FFFF80FFFE00E7F800131C7E9B18>I<7FFFF8FFFFF8FFFFF8E07038E07038E07038E07038
-007000007000007000007000007000007000007000007000007000007000007000007000007000
-00700000700000700000700000700007FF0007FF0007FF00151C7F9B18>I<FF83FEFF83FEFF83
-FE1C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00701C00
-701C00701C00701C00701C00701C00701C00700E00E00F01E00783C003FF8001FF00007C00171C
-809B18>I<FF07F8FF07F8FF07F81C01C01C01C01C01C01C01C00E03800E03800E03800E03800F
-0780070700070700070700070700038E00038E00038E00038E00018C0001DC0001DC0001DC0000
-D80000F80000F800007000151C7F9B18>I<FE03F8FE03F8FE03F87000707000707000703800E0
-3800E03800E03800E03800E038F8E038F8E039DCE039DCE019DCC019DCC019DCC0198CC01D8DC0
-1D8DC01D8DC01D8DC00D8D800D05800F07800F07800E0380151C7F9B18>I<7F8FE07F9FE07F8F
-E00E07000F0700070E00078E00039C0003DC0001F80001F80000F00000F00000700000F00000F8
-0001F80001DC00039E00038E00070F000707000E07800E03801E03C07F07F0FF8FF87F07F0151C
-7F9B18>I<FF07F8FF07F8FF07F81C01C01E03C00E03800F0780070700070700038E00038E0001
-DC0001DC0001DC0000F80000F80000700000700000700000700000700000700000700000700000
-700001FC0003FE0001FC00151C7F9B18>I<3FFFE07FFFE07FFFE07001C07003C0700780700700
-000F00001E00001C00003C0000780000700000F00001E00001C00003C0000780000700000F0000
-1E00E01C00E03C00E07800E07000E0FFFFE0FFFFE0FFFFE0131C7E9B18>I<FFF8FFF8FFF8E000
-E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E0
-00E000E000E000E000E000E000E000E000E000FFF8FFF8FFF80D24779F18>I<600000F00000F0
-0000F800007800007C00003C00003C00003E00001E00001F00000F00000F00000F800007800007
-C00003C00003C00003E00001E00001F00000F00000F800007800007800007C00003C00003E0000
-1E00001E00001F00000F00000F8000078000078000030011247D9F18>I<FFF8FFF8FFF8003800
-380038003800380038003800380038003800380038003800380038003800380038003800380038
-003800380038003800380038003800380038FFF8FFF8FFF80D247F9F18>I<018007C01FF07EFC
-F83EE00E0F067C9B18>I<7FFF00FFFF80FFFF807FFF0011047D7F18>I<1FE0003FF8007FFC0078
-1E00300E0000070000070000FF0007FF001FFF007F0700780700E00700E00700E00700F00F0078
-1F003FFFF01FFBF007E1F014147D9318>97 D<7E0000FE00007E00000E00000E00000E00000E00
-000E00000E3E000EFF800FFFC00FC1E00F80E00F00700E00700E00380E00380E00380E00380E00
-380E00380F00700F00700F80E00FC1E00FFFC00EFF80063E00151C809B18>I<01FE0007FF001F
-FF803E0780380300700000700000E00000E00000E00000E00000E00000E000007000007001C038
-01C03E03C01FFF8007FF0001FC0012147D9318>I<001F80003F80001F80000380000380000380
-00038000038003E3800FFB801FFF803C1F80380F80700780700380E00380E00380E00380E00380
-E00380E00380700780700780380F803C1F801FFFF00FFBF803E3F0151C7E9B18>I<01F00007FC
-001FFE003E0F00380780700380700380E001C0E001C0FFFFC0FFFFC0FFFFC0E000007000007001
-C03801C03E03C01FFF8007FF0001FC0012147D9318>I<001F80007FC000FFE000E1E001C0C001
-C00001C00001C0007FFFC0FFFFC0FFFFC001C00001C00001C00001C00001C00001C00001C00001
-C00001C00001C00001C00001C00001C00001C0007FFF007FFF007FFF00131C7F9B18>I<01E1F0
-07FFF80FFFF81E1E301C0E003807003807003807003807003807001C0E001E1E001FFC001FF800
-39E0003800001C00001FFE001FFFC03FFFE07801F0700070E00038E00038E00038E000387800F0
-7E03F01FFFC00FFF8001FC00151F7F9318>I<7E0000FE00007E00000E00000E00000E00000E00
-000E00000E3E000EFF800FFFC00FC1C00F80E00F00E00E00E00E00E00E00E00E00E00E00E00E00
-E00E00E00E00E00E00E00E00E00E00E07FC3FCFFE7FE7FC3FC171C809B18>I<03800007C00007
-C00007C0000380000000000000000000000000007FC000FFC0007FC00001C00001C00001C00001
-C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C000FFFF00FFFF80FF
-FF00111D7C9C18>I<0038007C007C007C003800000000000000000FFC1FFC0FFC001C001C001C
-001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C001C60
-38F078FFF07FE03F800E277E9C18>I<FE0000FE0000FE00000E00000E00000E00000E00000E00
-000E3FF00E7FF00E3FF00E07800E0F000E1E000E3C000E78000EF0000FF8000FFC000F9C000F0E
-000E0F000E07000E03800E03C0FFC7F8FFC7F8FFC7F8151C7F9B18>I<7FE000FFE0007FE00000
-E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
-E00000E00000E00000E00000E00000E00000E00000E00000E0007FFFC0FFFFE07FFFC0131C7E9B
-18>I<7CE0E000FFFBF8007FFFF8001F1F1C001E1E1C001E1E1C001C1C1C001C1C1C001C1C1C00
-1C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C001C1C1C007F1F1F00FFBFBF
-807F1F1F001914819318>I<7E3E00FEFF807FFFC00FC1C00F80E00F00E00E00E00E00E00E00E0
-0E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E07FC3FCFFE7FE7FC3FC1714809318>
-I<01F0000FFE001FFF003E0F803803807001C07001C0E000E0E000E0E000E0E000E0E000E0F001
-E07001C07803C03C07803E0F801FFF000FFE0001F00013147E9318>I<7E3E00FEFF807FFFC00F
-C1E00F80E00F00700E00700E00380E00380E00380E00380E00380E00380F00700F00700F80E00F
-C1E00FFFC00EFF800E3E000E00000E00000E00000E00000E00000E00000E00007FC000FFE0007F
-C000151E809318>I<7F87E0FF9FF07FBFF803F87803F03003E00003C00003C000038000038000
-0380000380000380000380000380000380000380007FFE00FFFF007FFE0015147F9318>114
-D<07F7003FFF007FFF00780F00E00700E00700E007007C00007FE0001FFC0003FE00001F006007
-80E00380E00380F00380F80F00FFFF00FFFC00E7F00011147D9318>I<01800003800003800003
-80000380007FFFC0FFFFC0FFFFC003800003800003800003800003800003800003800003800003
-80000380400380E00380E00380E001C1C001FFC000FF80003E0013197F9818>I<7E07E0FE0FE0
-7E07E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E00E0
-0E01E00F03E007FFFC03FFFE01FCFC1714809318>I<7F8FF0FF8FF87F8FF01E03C00E03800E03
-800E0380070700070700070700038E00038E00038E00038E0001DC0001DC0001DC0000F80000F8
-0000700015147F9318>I<FF8FF8FF8FF8FF8FF83800E03800E03800E01C01C01C01C01C71C01C
-F9C01CF9C01CD9C01CD9C00DDD800DDD800DDD800D8D800F8F800F8F8007070015147F9318>I<
-7F8FF07F9FF07F8FF0070700078E00039E0001DC0001F80000F80000700000F00000F80001DC00
-039E00038E000707000F07807F8FF0FF8FF87F8FF015147F9318>I<7F8FF0FF8FF87F8FF00E01
-C00E03800E0380070380070700070700038700038600038E0001CE0001CE0000CC0000CC0000DC
-0000780000780000780000700000700000700000F00000E00079E0007BC0007F80003F00001E00
-00151E7F9318>I<3FFFF07FFFF07FFFF07001E07003C0700780000F00001E00003C0000F80001
-F00003C0000780000F00701E00703C0070780070FFFFF0FFFFF0FFFFF014147F9318>I<0007E0
-001FE0007FE000780000E00000E00000E00000E00000E00000E00000E00000E00000E00000E000
-00E00001E0007FC000FF8000FF80007FC00001E00000E00000E00000E00000E00000E00000E000
-00E00000E00000E00000E00000E000007800007FE0001FE00007E013247E9F18>I<60F0F0F0F0
-F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0600424769F18>I<7C
-0000FF0000FFC00003C00000E00000E00000E00000E00000E00000E00000E00000E00000E00000
-E00000E00000F000007FC0003FE0003FE0007FC000F00000E00000E00000E00000E00000E00000
-E00000E00000E00000E00000E00000E00003C000FFC000FF00007C000013247E9F18>I
-E /Fi 25 121 df<0001C0000003C000000FC000007FC0001FFFC000FFFFC000FFBFC000E03FC0
-00003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003F
-C000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC00000
-3FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000
-003FC000003FC000003FC000003FC000003FC000003FC0007FFFFFE07FFFFFE07FFFFFE01B2E7A
-AD28>49 D<003FE00001FFFE0007FFFF800F80FFC01E003FE038001FF07C000FF87E0007FCFF00
-07FCFF8007FEFF8007FEFF8003FEFF8003FE7F0003FE3E0007FE000007FE000007FC000007FC00
-000FF800000FF800000FF000001FE000001FC000003F8000007F0000007E000000F8000001F000
-0003E0000007C000000F0000001E000E003C000E0038000E0070001E00E0001C01C0001C030000
-3C07FFFFFC0FFFFFFC1FFFFFFC3FFFFFFC7FFFFFF8FFFFFFF8FFFFFFF8FFFFFFF81F2E7CAD28>
-I<001FF80000007FFF000001FFFFC00003E03FE00007800FF0000FC00FF8001FE007F8001FE007
-FC001FE007FC001FE007FC001FE007FC000FC007FC00078007FC0000000FF80000000FF8000000
-0FF00000001FE00000001FC00000003F80000000FE0000003FF80000003FFF800000001FE00000
-0007F000000007F800000003FC00000003FE00000001FF00000001FF00000001FF80000001FF80
-000001FF801C0001FF803E0001FF807F0001FF80FF8001FF80FF8001FF00FF8001FF00FF8003FE
-007F0003FE007E0007FC003C0007F8001FC01FF0000FFFFFC00003FFFF0000003FF80000212E7D
-AD28>I<FFFFFFFFE00000FFFFFFFFFE0000FFFFFFFFFF800000FF0000FFC00000FF00003FF000
-00FF00001FF80000FF00000FF80000FF000007FC0000FF000007FC0000FF000007FE0000FF0000
-03FE0000FF000003FE0000FF000003FE0000FF000003FE0000FF000007FE0000FF000007FE0000
-FF000007FC0000FF000007FC0000FF00000FF80000FF00001FF00000FF00003FE00000FF0000FF
-800000FF000FFF000000FFFFFFFE000000FFFFFFFFC00000FF00001FF00000FF000007F80000FF
-000003FE0000FF000003FE0000FF000001FF0000FF000001FF8000FF000000FF8000FF000000FF
-C000FF000000FFC000FF000000FFC000FF000000FFC000FF000000FFC000FF000000FFC000FF00
-0000FFC000FF000000FF8000FF000001FF8000FF000001FF0000FF000003FF0000FF000007FE00
-00FF00000FFC0000FF00007FF800FFFFFFFFFFE000FFFFFFFFFF8000FFFFFFFFFC000032317EB0
-39>66 D<000003FF80018000003FFFF003800001FFFFFC07800007FF003F0F80001FF800079F80
-003FC00001FF8000FF800000FF8001FE0000007F8003FC0000003F8007FC0000001F8007F80000
-000F800FF00000000F801FF000000007801FF000000007803FE000000007803FE000000003807F
-E000000003807FE000000003807FC000000000007FC00000000000FFC00000000000FFC0000000
-0000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC00000000000FFC0
-0000000000FFC000000000007FC000000000007FC000000000007FE000000000007FE000000003
-803FE000000003803FE000000003801FF000000003801FF000000007800FF0000000070007F800
-0000070007FC0000000E0003FC0000001E0001FE0000001C0000FF8000007800003FC00000F000
-001FF80003E0000007FF003F80000001FFFFFE000000003FFFF80000000003FF80000031317CB0
-3A>I<FFFFFFFFF00000FFFFFFFFFF0000FFFFFFFFFFC00000FF8000FFF00000FF80000FF80000
-FF800003FE0000FF800001FF0000FF800000FF8000FF8000007FC000FF8000003FC000FF800000
-1FE000FF8000001FF000FF8000000FF000FF8000000FF800FF8000000FF800FF80000007FC00FF
-80000007FC00FF80000007FC00FF80000007FC00FF80000007FE00FF80000007FE00FF80000007
-FE00FF80000007FE00FF80000007FE00FF80000007FE00FF80000007FE00FF80000007FE00FF80
-000007FE00FF80000007FE00FF80000007FE00FF80000007FC00FF80000007FC00FF80000007FC
-00FF80000007FC00FF8000000FF800FF8000000FF800FF8000000FF000FF8000001FF000FF8000
-001FE000FF8000003FE000FF8000007FC000FF8000007F8000FF800001FF0000FF800003FE0000
-FF80000FFC0000FF80007FF000FFFFFFFFFFC000FFFFFFFFFF0000FFFFFFFFF0000037317EB03E
->I<FFFFFFFFFFE0FFFFFFFFFFE0FFFFFFFFFFE000FF80007FE000FF80000FF000FF800003F000
-FF800001F000FF800001F000FF800000F000FF800000F000FF8000007000FF8000007000FF8000
-007000FF8000003800FF8000003800FF8007003800FF8007003800FF8007000000FF8007000000
-FF8007000000FF800F000000FF801F000000FF803F000000FFFFFF000000FFFFFF000000FFFFFF
-000000FF803F000000FF801F000000FF800F000000FF8007000000FF8007000000FF8007000000
-FF8007000000FF8007000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000
-000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000
-FF80000000FFFFFFE00000FFFFFFE00000FFFFFFE000002D317EB033>70
-D<FFFFFF80FFFFFF80FFFFFF8000FF800000FF800000FF800000FF800000FF800000FF800000FF
-800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000
-FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000
-00FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF80
-0000FF800000FF800000FF800000FF800000FF800000FF800000FF8000FFFFFF80FFFFFF80FFFF
-FF8019317EB01E>73 D<7FFFFFFFFFFF007FFFFFFFFFFF007FFFFFFFFFFF007FC00FF801FF007E
-000FF8003F007C000FF8001F0078000FF8000F0078000FF8000F0070000FF8000700F0000FF800
-0780F0000FF8000780F0000FF8000780E0000FF8000380E0000FF8000380E0000FF8000380E000
-0FF8000380E0000FF800038000000FF800000000000FF800000000000FF800000000000FF80000
-0000000FF800000000000FF800000000000FF800000000000FF800000000000FF800000000000F
-F800000000000FF800000000000FF800000000000FF800000000000FF800000000000FF8000000
-00000FF800000000000FF800000000000FF800000000000FF800000000000FF800000000000FF8
-00000000000FF800000000000FF800000000000FF800000000000FF800000000000FF800000000
-000FF800000000000FF8000000007FFFFFFF0000007FFFFFFF0000007FFFFFFF000031307DAF38
->84 D<00FFF0000003FFFE00000F803F80000FC00FE0001FE007F0001FE007F0001FE003F8000F
-C003FC00078003FC00000003FC00000003FC00000003FC00000003FC000000FFFC00001FFFFC00
-00FFE3FC0003FC03FC000FF003FC001FC003FC003FC003FC007F8003FC007F8003FC00FF0003FC
-00FF0003FC00FF0003FC00FF0007FC00FF0007FC007F800DFC003FC019FE001FE070FFF007FFE0
-7FF000FF803FF024207E9F27>97 D<01F8000000FFF8000000FFF8000000FFF80000000FF80000
-0007F800000007F800000007F800000007F800000007F800000007F800000007F800000007F800
-000007F800000007F800000007F800000007F800000007F800000007F83FE00007F8FFFC0007FB
-E07F0007FF001F8007FE000FC007FC000FE007F80007F007F80007F807F80007F807F80003FC07
-F80003FC07F80003FC07F80003FE07F80003FE07F80003FE07F80003FE07F80003FE07F80003FE
-07F80003FE07F80003FE07F80003FC07F80003FC07F80003FC07F80007F807F80007F807F80007
-F007FC000FE007FE000FC007E7003F8007C3C0FE000780FFF80007003FC00027327EB12D>I<00
-0FFF00007FFFC001FC01F003F003F007E007F80FE007F81FC007F83FC003F03FC001E07F800000
-7F8000007F800000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF8000
-007F8000007F8000007F8000003FC0001C3FC0001C1FC000380FE0003807E0007003F001E001FC
-07C0007FFF00000FF8001E207D9F24>I<0000000FC0000007FFC0000007FFC0000007FFC00000
-007FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC000
-00003FC00000003FC00000003FC00000003FC00000003FC00000003FC00007F83FC0003FFF3FC0
-00FE07BFC003F801FFC007E0007FC00FE0007FC01FC0003FC03FC0003FC03FC0003FC07F80003F
-C07F80003FC07F80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF80003FC0FF8000
-3FC0FF80003FC0FF80003FC07F80003FC07F80003FC07F80003FC03FC0003FC03FC0003FC01FC0
-003FC00FE0007FC007E000FFC003F003FFE001FC0F3FFE007FFE3FFE000FF03FFE27327DB12D>
-I<000FFC00007FFF8001FC0FC003F003E007E001F00FE001F81FC000FC3FC000FE3FC000FE7F80
-007E7F80007F7F80007FFF80007FFF80007FFFFFFFFFFFFFFFFFFF800000FF800000FF800000FF
-8000007F8000007F8000007F8000003FC000071FC000071FC0000E0FE0000E07F0001C03F80078
-00FE03E0003FFFC00007FE0020207E9F25>I<0001FE00000FFF80001FC3C0007F07E000FE0FF0
-01FE0FF001FC0FF003FC0FF003FC07E003FC018003FC000003FC000003FC000003FC000003FC00
-0003FC000003FC000003FC0000FFFFFC00FFFFFC00FFFFFC0003FC000003FC000003FC000003FC
-000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003
-FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC0000
-03FC000003FC000003FC00007FFFF0007FFFF0007FFFF0001C327EB119>I<03C00007E0000FF0
-001FF8001FF8001FF8001FF8000FF00007E00003C0000000000000000000000000000000000000
-0000000000000000000001F800FFF800FFF800FFF8000FF80007F80007F80007F80007F80007F8
-0007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F8
-0007F80007F80007F80007F80007F80007F800FFFF80FFFF80FFFF8011337DB217>105
-D<01F8000000FFF8000000FFF8000000FFF80000000FF800000007F800000007F800000007F800
-000007F800000007F800000007F800000007F800000007F800000007F800000007F800000007F8
-00000007F800000007F800000007F801FFF807F801FFF807F801FFF807F8003F0007F8003C0007
-F800780007F800F00007F803C00007F807800007F80F000007F81E000007F878000007F8FC0000
-07F9FE000007FBFE000007FFFF000007FE7F800007FC7FC00007F83FC00007F01FE00007F00FF0
-0007F00FF80007F007FC0007F003FC0007F001FE0007F000FF0007F000FF8007F0007F8007F000
-7FC0FFFF81FFFEFFFF81FFFEFFFF81FFFE27327EB12B>107 D<01F800FFF800FFF800FFF8000F
-F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007
-F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007
-F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007F80007
-F80007F80007F80007F800FFFFC0FFFFC0FFFFC012327DB117>I<03F007F800FFF03FFE00FFF0
-783F00FFF0C03F800FF1801FC007F3001FC007F6001FE007FC001FE007FC001FE007FC001FE007
-F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE0
-07F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001F
-E007F8001FE007F8001FE007F8001FE0FFFFC3FFFFFFFFC3FFFFFFFFC3FFFF28207D9F2D>110
-D<0007FC0000007FFFC00001FC07F00003F001F80007E000FC000FC0007E001FC0007F003FC000
-7F803F80003F807F80003FC07F80003FC07F80003FC0FF80003FE0FF80003FE0FF80003FE0FF80
-003FE0FF80003FE0FF80003FE0FF80003FE0FF80003FE07F80003FC07F80003FC07F80003FC03F
-C0007F803FC0007F801FC0007F000FE000FE0007E000FC0003F803F80001FE0FF000007FFFC000
-0007FC000023207E9F28>I<03F03F00FFF07FC0FFF1C3E0FFF187E00FF30FF007F60FF007F60F
-F007FC07E007FC03C007FC000007FC000007F8000007F8000007F8000007F8000007F8000007F8
-000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007F8000007
-F8000007F8000007F80000FFFFE000FFFFE000FFFFE0001C207E9F21>114
-D<01FF860007FFFE001F00FE003C003E0078001E0078000E00F8000E00F8000E00F8000E00FC00
-0000FF800000FFFC00007FFFC0007FFFF0003FFFF8001FFFFC0007FFFE0001FFFF00003FFF0000
-00FF8000003F8060001F80E0000F80E0000F80F0000F80F0000F00F8000F00FC001E00FE001C00
-FF807800F3FFF000C07F800019207D9F20>I<001C0000001C0000001C0000001C0000001C0000
-003C0000003C0000003C0000007C0000007C000000FC000001FC000003FC000007FC00001FFFFE
-00FFFFFE00FFFFFE0003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC
-000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC000003FC038003
-FC038003FC038003FC038003FC038003FC038003FC038001FC038001FC070000FE0700007F0E00
-003FFC000007F000192E7FAD1F>I<01F80007E0FFF803FFE0FFF803FFE0FFF803FFE00FF8003F
-E007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F800
-1FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8001FE007F8
-001FE007F8001FE007F8001FE007F8001FE007F8003FE007F8003FE003F8007FE003F8007FE001
-FC00DFF000FE039FFF007FFF1FFF000FFC1FFF28207D9F2D>I<7FFF807FFC7FFF807FFC7FFF80
-7FFC03FE000F0001FE001E0000FF003C0000FF807800007FC07800003FE0F000001FE1E000000F
-F3C000000FFF80000007FF00000003FE00000001FE00000000FF00000000FF80000000FFC00000
-01FFC0000003DFE00000078FF00000078FF800000F07FC00001E03FC00003C01FE00007800FF00
-00F000FF8000E0007FC001E0003FC0FFFC01FFFFFFFC01FFFFFFFC01FFFF28207F9F2B>120
-D E /Fj 18 117 df<387CFEFEFE7C3807077D860D>46 D<03F0000FFC001F3E003E1F003C0F00
-7C0F807C0F807C0F80FC0FC0FC0FC0FC0FC0FC0FC0FC0FC0FC0FC0FC0FC0FC0FC0FC0FC0FC0FC0
-FC0FC0FC0FC0FC0FC07C0F807C0F807C0F803C0F003E1F001F3E000FFC0003F000121D7E9C17>
-48 D<00E001E00FE0FFE0F3E003E003E003E003E003E003E003E003E003E003E003E003E003E0
-03E003E003E003E003E003E003E003E003E07FFF7FFF101D7D9C17>I<07F0001FFC00387E007C
-3F00FE1F80FE1F80FE1FC0FE0FC07C0FC0380FC0001FC0001F80001F80003F00003E00007C0000
-780000E00001C0000380000700C00600C00C00C01801C03FFF803FFF807FFF80FFFF80FFFF8012
-1D7E9C17>I<07F0000FFC001C3E003C3F007E1F807E1F807E1F807E1F803C3F00003F00003E00
-007C0003F80003F000003C00003F00001F80001F80001FC0381FC07C1FC0FE1FC0FE1FC0FE1F80
-FC1F80783F00383E001FFC0007F000121D7E9C17>I<000700000F00000F00001F00003F00003F
-00006F0000EF0001CF00018F00038F00070F00060F000C0F001C0F00380F00300F00700F00E00F
-00FFFFF0FFFFF0001F00001F00001F00001F00001F00001F0001FFF001FFF0141D7F9C17>I<38
-03003FFF003FFE003FFC003FF8003FE0003F000030000030000030000030000033F00037FC003C
-1E00380F00100F80000F80000FC0000FC0780FC0FC0FC0FC0FC0FC0FC0FC0F80780F80601F0038
-3E001FFC0007E000121D7E9C17>I<00FC0003FE000783000F0F801E1F803E1F803C1F807C1F80
-7C0F007C0000FC0000FDFC00FFFE00FE0F00FE0F80FC0F80FC0FC0FC0FC0FC0FC0FC0FC0FC0FC0
-7C0FC07C0FC07C0F803C0F803E0F001E1E000FFC0003F000121D7E9C17>I<6000007FFFC07FFF
-C07FFF807FFF007FFE00E00600C00C00C01800C0180000300000600000E00000E00001E00001C0
-0003C00003C00003C00007C00007C00007C0000FC0000FC0000FC0000FC0000FC0000FC0000780
-00030000121E7D9D17>I<03F0000FFC001E1E00380F003807807807807807807C07807E07807F
-0F003FCE003FFC001FF8000FFE000FFF001FFF003C7F80783FC0700FC0F007C0F003C0F003C0F0
-03C0F003807803807807003E0E001FFC0007F000121D7E9C17>I<03F0000FFC001E1E003C1F00
-7C0F007C0F80FC0F80FC0F80FC0FC0FC0FC0FC0FC0FC0FC0FC0FC07C0FC07C1FC03C1FC01FFFC0
-0FEFC0000FC0000F803C0F807E0F807E0F007E1F007E1E007C3C003878001FF0000FC000121D7E
-9C17>I<07F0001FFC003F1E003F1F003F0F803F0F800C0F80000F8000FF800FFF801F0F807C0F
-807C0F80F80F80F80F80F80F80F817807C37803FE3F00F81F014147F9316>97
-D<FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F3F
-001FFF801FC3C01F01E01F01F01F01F01F01F81F01F81F01F81F01F81F01F81F01F81F01F81F01
-F81F01F01F01F01F03E01FC7C01CFF80183E0015207F9F19>I<03F00FFC1E7E3E7E7C7E7C7EFC
-18FC00FC00FC00FC00FC00FC00FC007C007E033E031F0E0FFC03F010147E9314>I<1C003E007F
-007F007F003E001C00000000000000000000000000FF00FF001F001F001F001F001F001F001F00
-1F001F001F001F001F001F001F001F001F00FFE0FFE00B217FA00C>105
-D<FE0F80F800FE3FC3FC001E63E63E001EC1FC1F001E81F81F001F01F01F001F01F01F001F01F0
-1F001F01F01F001F01F01F001F01F01F001F01F01F001F01F01F001F01F01F001F01F01F001F01
-F01F001F01F01F001F01F01F00FFE7FE7FE0FFE7FE7FE023147E9326>109
-D<FF3F00FFFF801FC7C01F03E01F03F01F01F01F01F81F01F81F01F81F01F81F01F81F01F81F01
-F81F01F81F01F01F03F01F03E01FC7C01FFF801F3E001F00001F00001F00001F00001F00001F00
-001F0000FFE000FFE000151D7F9319>112 D<0300030003000300070007000F000F003F00FFF8
-FFF81F001F001F001F001F001F001F001F001F001F001F181F181F181F181F180F3007F003E00D
-1D7F9C12>116 D E /Fk 34 122 df<F0F0F0F004047D830A>46 D<01800780FF80FF800F800F
-800F800F800F800F800F800F800F800F800F800F800F800F800F800F800F807FE07FE00B177D96
-12>49 D<1F803FC07FE0F1F0F0F860F820F800F800F800F001F001E003C0078007000E001E001C
-0038007000FFF8FFF87FF80D177E9612>I<1F803FC07FE0F1F061F041F001F001F001E003C00F
-800FC001E000F000F800F800F880F8C0F8E1F07FF03FE01F800D177E9612>I<3FF83FF83FF83E
-003E003E003E003E003E003FE03FF03C783878007C007C007C007C407C607CF0F87FF03FE00FC0
-0E177F9612>53 D<F0F0F0F000000000000000F0F0F0F0040F7D8E0A>58
-D<01FC0001FC0003FE0003FE0003DE0007DF0007DF00079F00078F000F8F800F8F800F0F801F07
-C01F07C01F07C03FFFE03FFFE03FFFE07C03F07C01F07C01F0F801F8F800F815177F9618>65
-D<7FF800FFFE00FFFF00F81F00F80F80F80F80F80F80F80F80F80F80F81F00FFFE00FFFE00F81F
-80F80F80F807C0F807C0F807C0F807C0F807C0F81F80FFFF80FFFF007FFC0012177D9618>I<01
-FF0007FFC00FFFC01F83C03E00807C00007C0000F80000F80000F80000F80000F80000F80000F8
-0000F80000F800007C00007C00403E00C01F81C00FFFC007FF8001FE0012177E9617>I<7FF800
-FFFF00FFFF80F81FC0F807C0F803E0F803E0F801F0F801F0F801F0F801F0F801F0F801F0F801F0
-F801F0F801F0F803E0F803E0F807E0F80FC0FFFF80FFFF007FF80014177D961A>I<7FFCFFFCFF
-FCF800F800F800F800F800F800F800FFF8FFF8FFF8F800F800F800F800F800F800F800F800F800
-78000E177D9614>70 D<78F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F87805177D960B>
-73 D<7FF800FFFE00FFFF00F81F00F80F80F80F80F80F80F80F80F80F80F81F00FFFE00FFF800
-F8F800F8F800F87C00F87C00F83E00F83E00F81F00F81F00F80F80F80F807807C012177D9617>
-82 D<7FFFF8FFFFF8FFFFF800F80000F80000F80000F80000F80000F80000F80000F80000F800
-00F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000780015177F9618>
-84 D<0FC03FF030F820F800F800F81FF83EF878F8F8F8F8F8F8F879F87FF81EF80D0F7F8E11>
-97 D<7800F800F800F800F800F800F800F800FBE0FFF8F87CF83CF83EF83EF83EF83EF83EF83E
-F83EF83CF878FFF07BE00F177E9613>I<0FE01FF83C387808F800F800F800F800F800F800F800
-78083C381FF80FE00D0F7F8E10>I<003E003E003E003E003E003E003E003E0FBE1FFE3C3E783E
-F83EF83EF83EF83EF83EF83EF83E783E7C3E3FFE0FBE0F177F9613>I<0FC01FF03C787878F83C
-F83CFFFCFFFCF800F800780078043C1C1FFC07F00E0F7F8E11>I<03F00FF00F101F001F001F00
-1F001F007F80FF801F001F001F001F001F001F001F001F001F001F001F001F000F000C1780960B
->I<1FCE3FFE78F0F8F8F8F8F8F8F8F878F03FE07FC0600060007FF07FF83FFC7FFEE00EE00EE0
-0E701C3FF81FF00F167F8E12>I<7800F800F800F800F800F800F800F800F9F0FBF8FE7CFC7CF8
-7CF87CF87CF87CF87CF87CF87CF87CF87CF87C787C0E177E9613>I<F0F8F8F8F00000000078F8
-F8F8F8F8F8F8F8F8F8F8F8F87805187F9708>I<7000F000F000F000F000F000F000F000F078F0
-F8F3E0F7C0FF80FF00FF00FF80FFC0F3E0F1E0F0F0F0F8F07C703C0E177E9612>107
-D<79F0FBF8FE7CFC7CF87CF87CF87CF87CF87CF87CF87CF87CF87CF87C787C0E0F7E8E13>110
-D<0FE03FF87C7C783CF83EF83EF83EF83EF83EF83EF83E783C7C7C3FF80FE00F0F7F8E12>I<7B
-E0FFF8F87CF87CF83EF83EF83EF83EF83EF83EF83EF87CF878FFF0FBE0F800F800F800F800F800
-78000F157E8E13>I<7BFFFFFCF8F8F8F8F8F8F8F8F8F878080F7E8E0C>114
-D<1F007FC0E0C0E040E000FE00FF807FC03FE007E0C0E0C0E0F0E07FC01F000B0F7F8E0E>I<1E
-003E003E003E003E007F80FF803E003E003E003E003E003E003E003E003E003E003E403FC01F00
-0A147F930D>I<787CF87CF87CF87CF87CF87CF87CF87CF87CF87CF87CF87CF8FC7FFC3E7C0E0F
-7E8E13>I<F03CF03CF03C7878787878783CF03CF03CF03EF01FE01FE01FE00FC00FC00E0F7F8E
-11>I<F03CF8787CF03DF01FE00FC0078007800FC01FE01DE03CF07878F07CF03C0E0F7F8E11>
-120 D<F03CF03C783C78787C783C783C701EF01EF00EE00FE007E007C007C003C0038003808780
-FF00FE00FC000E157F8E11>I E /Fl 14 117 df<70F8F8F0E005057B840E>46
-D<000F800030E000E07001C0700380300380380700380F00780F00780E00781E00781E00703C00
-F03C00F03C00F03C00F07801E07801E07801E07801C07003C0F003C0F00380F00780F007007007
-00700E00701C003038001870000FC000151F7C9D17>48 D<000200020006000E003C00DC031C00
-1C0038003800380038007000700070007000E000E000E000E001C001C001C001C0038003800380
-03800780FFF80F1E7B9D17>I<00C06000FFC001FF8001FE000100000100000200000200000200
-00020000040000047800058C000606000C0700080700000780000780000780000780000F00700F
-00F00F00F00E00E01E00801C0080380080300040600061C0001F0000131F7B9D17>53
-D<001F0000718000C0C00180C00380E00700E00F00E00F01E01E01E01E01E01E01E01E01C01C03
-C01C03C01C03C01C07C01C0F800C0F8006378003C700000F00000E00000E00001C00601C00F038
-00F07000E0600080C0004380003E0000131F7B9D17>57 D<01FFFFC0001E00F0001E0078001E00
-38001E003C003C003C003C003C003C003C003C003C0078007800780078007800F0007801E000F0
-078000FFFE0000F00F8000F003C001E001C001E001E001E001E001E001E003C001E003C001E003
-C001E003C001C0078003C00780078007800F0007801E000F007800FFFFE0001E1F7D9E20>66
-D<01FFFF80001E00E0001E0070001E0038001E001C003C001C003C000E003C000E003C000E0078
-000E0078000E0078000E0078000E00F0001E00F0001E00F0001E00F0001E01E0003C01E0003C01
-E0003C01E0007803C0007003C0007003C000E003C001C0078001C00780038007800E0007801C00
-0F007000FFFFC0001F1F7D9E22>68 D<01FFFFFC001E0038001E0018001E0008001E0008003C00
-08003C0008003C0008003C00080078001000780800007808000078080000F0100000F0300000FF
-F00000F0300001E0200001E0200001E0200001E0200003C0000003C0000003C0000003C0000007
-8000000780000007800000078000000F800000FFF800001E1F7D9E1E>70
-D<00F1800389C00707800E03801C03803C0380380700780700780700780700F00E00F00E00F00E
-00F00E20F01C40F01C40703C40705C40308C800F070013147C9317>97 D<007E0001C100030080
-0E07801E07801C07003C0200780000780000780000F00000F00000F00000F00000F00000700100
-70020030040018380007C00011147C9315>99 D<00C001E001E001C00000000000000000000000
-0000000E003300230043804300470087000E000E000E001C001C001C0038403880308070803100
-33001C000B1F7C9E0E>105 D<1C0F80F0002630C318004740640C004780680E004700700E0047
-00700E008E00E01C000E00E01C000E00E01C000E00E01C001C01C038001C01C038001C01C03800
-1C01C0708038038071003803806100380380E10038038062007007006600300300380021147C93
-25>109 D<01C1E002621804741C04781C04701E04701E08E01E00E01E00E01E00E01E01C03C01
-C03C01C03C01C0380380780380700380E003C1C0072380071E000700000700000E00000E00000E
-00000E00001C00001C0000FFC000171D809317>112 D<018001C0038003800380038007000700
-FFF007000E000E000E000E001C001C001C001C003800380038003820704070407080708031001E
-000C1C7C9B0F>116 D E /Fm 81 125 df<001F83E000F06E3001C078780380F8780300F03007
-007000070070000700700007007000070070000700700007007000FFFFFF800700700007007000
-070070000700700007007000070070000700700007007000070070000700700007007000070070
-000700700007007000070070000700700007007000070070007FE3FF001D20809F1B>11
-D<003F0000E0C001C0C00381E00701E00701E0070000070000070000070000070000070000FFFF
-E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700
-E00700E00700E00700E00700E00700E07FC3FE1720809F19>I<003FE000E0E001C1E00381E007
-00E00700E00700E00700E00700E00700E00700E00700E0FFFFE00700E00700E00700E00700E007
-00E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E00700E007
-00E07FE7FE1720809F19>I<001F81F80000F04F040001C07C06000380F80F000300F00F000700
-F00F00070070000007007000000700700000070070000007007000000700700000FFFFFFFF0007
-007007000700700700070070070007007007000700700700070070070007007007000700700700
-070070070007007007000700700700070070070007007007000700700700070070070007007007
-00070070070007007007007FE3FE3FF02420809F26>I<70F8F8F8F8F8F8F87070707070707070
-70702020202020000000000070F8F8F87005217CA00D>33 D<0078000000840000018400000302
-000007020000070200000702000007020000070400000704000007080000070800000310000003
-A00FFC03C003E0038001C001C0008001C0010003E0010004E0020008F002001870040030780800
-70380800701C1000F01E1000F00E2000F0074000F003C0087003C0087801C010380670301C1838
-6007E00F801E227EA023>38 D<70F8FCFC74040404080810102040060E7C9F0D>I<0020004000
-800100020006000C000C00180018003000300030007000600060006000E000E000E000E000E000
-E000E000E000E000E000E000E0006000600060007000300030003000180018000C000C00060002
-0001000080004000200B2E7DA112>I<800040002000100008000C000600060003000300018001
-80018001C000C000C000C000E000E000E000E000E000E000E000E000E000E000E000E000C000C0
-00C001C001800180018003000300060006000C00080010002000400080000B2E7DA112>I<0180
-0180018001800180C183F18F399C0FF003C003C00FF0399CF18FC1830180018001800180018010
-147DA117>I<70F8FCFC74040404080810102040060E7C840D>44 D<FFC0FFC00A027F8A0F>I<70
-F8F8F87005057C840D>I<03F0000E1C001C0E00180600380700700380700380700380700380F0
-03C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C0F003C070
-03807003807003807807803807001806001C0E000E1C0003F000121F7E9D17>48
-D<018003800F80F380038003800380038003800380038003800380038003800380038003800380
-03800380038003800380038003800380038007C0FFFE0F1E7C9D17>I<03F0000C1C00100E0020
-0700400780800780F007C0F803C0F803C0F803C02007C00007C0000780000780000F00000E0000
-1C0000380000700000600000C0000180000300000600400C00401800401000803FFF807FFF80FF
-FF80121E7E9D17>I<03F0000C1C00100E00200F00780F80780780780780380F80000F80000F00
-000F00000E00001C0000380003F000003C00000E00000F000007800007800007C02007C0F807C0
-F807C0F807C0F00780400780400F00200E001C3C0003F000121F7E9D17>I<000600000600000E
-00000E00001E00002E00002E00004E00008E00008E00010E00020E00020E00040E00080E00080E
-00100E00200E00200E00400E00C00E00FFFFF0000E00000E00000E00000E00000E00000E00000E
-0000FFE0141E7F9D17>I<1803001FFE001FFC001FF8001FE00010000010000010000010000010
-000010000011F000161C00180E001007001007800003800003800003C00003C00003C07003C0F0
-03C0F003C0E00380400380400700200600100E000C380003E000121F7E9D17>I<007C00018200
-0701000E03800C07801C0780380300380000780000700000700000F1F000F21C00F40600F80700
-F80380F80380F003C0F003C0F003C0F003C0F003C07003C07003C0700380380380380700180700
-0C0E00061C0001F000121F7E9D17>I<4000007FFFC07FFF807FFF804001008002008002008004
-0000080000080000100000200000200000400000400000C00000C00001C0000180000380000380
-00038000038000078000078000078000078000078000078000078000030000121F7D9D17>I<03
-F0000C0C001006003003002001806001806001806001807001807803003E03003F06001FC8000F
-F00003F80007FC000C7E00103F00300F806003804001C0C001C0C000C0C000C0C000C0C0008060
-01802001001002000C0C0003F000121F7E9D17>I<03F0000E18001C0C00380600380700700700
-700380F00380F00380F003C0F003C0F003C0F003C0F003C07007C07007C03807C0180BC00E13C0
-03E3C0000380000380000380000700300700780600780E00700C002018001070000FC000121F7E
-9D17>I<70F8F8F8700000000000000000000070F8F8F87005147C930D>I<70F8F8F87000000000
-00000000000070F0F8F878080808101010202040051D7C930D>I<0FC0307040384038E03CF03C
-F03C603C0038007000E000C0018001800100030002000200020002000200020000000000000000
-00000007000F800F800F8007000E207D9F15>63 D<001F800000E0700001000800060006000800
-010008000100100F00802030C0402060404040C0202041C01C2041C01C2081801C1083801C1083
-801C1083801C1083801C1083801C1083801C1081801C1041C01C1041C01C1040C03C2020605C20
-2030CC40100F0780080000000800000006000070010001C000E01F00001FF0001C207D9F23>I<
-000100000003800000038000000380000007C0000007C0000007C0000009E0000009E0000009E0
-000010F0000010F0000010F00000207800002078000020780000403C0000403C0000403C000080
-1E0000801E0000FFFE0001000F0001000F0001000F00020007800200078002000780040003C00E
-0003C01F0007E0FFC03FFE1F207F9F22>I<FFFFE0000F80380007801E0007801F0007800F0007
-800F8007800F8007800F8007800F8007800F8007800F0007801F0007801E0007803C0007FFF000
-07803C0007801E0007800F0007800F8007800780078007C0078007C0078007C0078007C0078007
-C00780078007800F8007800F0007801F000F803C00FFFFF0001A1F7E9E20>I<000FC040007030
-C001C009C0038005C0070003C00E0001C01E0000C01C0000C03C0000C07C0000407C0000407800
-0040F8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F800000078
-0000007C0000407C0000403C0000401C0000401E0000800E000080070001000380020001C00400
-00703800000FC0001A217D9F21>I<FFFFE0000F803C0007801E000780070007800380078003C0
-078001E0078001E0078001F0078000F0078000F0078000F8078000F8078000F8078000F8078000
-F8078000F8078000F8078000F8078000F8078000F0078000F0078000F0078001E0078001E00780
-03C0078003800780070007800E000F803C00FFFFE0001D1F7E9E23>I<FFFFFF000F800F000780
-030007800300078001000780018007800080078000800780008007808080078080000780800007
-8080000781800007FF800007818000078080000780800007808000078080000780002007800020
-07800020078000400780004007800040078000C0078000C0078001800F800F80FFFFFF801B1F7E
-9E1F>I<FFFFFF000F800F00078003000780030007800100078001800780008007800080078000
-8007800080078080000780800007808000078080000781800007FF800007818000078080000780
-800007808000078080000780000007800000078000000780000007800000078000000780000007
-8000000FC00000FFFE0000191F7E9E1E>I<000FE0200078186000E004E0038002E0070001E00F
-0000E01E0000601E0000603C0000603C0000207C00002078000020F8000000F8000000F8000000
-F8000000F8000000F8000000F8000000F8007FFCF80003E0780001E07C0001E03C0001E03C0001
-E01E0001E01E0001E00F0001E0070001E0038002E000E0046000781820000FE0001E217D9F24>
-I<FFF8FFF80F800F8007800F0007800F0007800F0007800F0007800F0007800F0007800F000780
-0F0007800F0007800F0007800F0007800F0007FFFF0007800F0007800F0007800F0007800F0007
-800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F0007800F00
-0F800F80FFF8FFF81D1F7E9E22>I<FFFC0FC00780078007800780078007800780078007800780
-078007800780078007800780078007800780078007800780078007800780078007800FC0FFFC0E
-1F7F9E10>I<0FFFC0007C00003C00003C00003C00003C00003C00003C00003C00003C00003C00
-003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00003C00203C00
-F83C00F83C00F83C00F0380040780040700030E0000F800012207E9E17>I<FFFC0FFC0FC003E0
-078001800780010007800200078004000780080007801000078020000780400007808000078100
-000783000007878000078F80000793C0000791E00007A1E00007C0F0000780F000078078000780
-3C0007803C0007801E0007801E0007800F000780078007800780078007C00FC007E0FFFC3FFC1E
-1F7E9E23>I<FFFE000FC000078000078000078000078000078000078000078000078000078000
-078000078000078000078000078000078000078000078000078000078002078002078002078002
-07800607800407800407800C07801C0F807CFFFFFC171F7E9E1C>I<FF80001FF80F80001F8007
-80001F0005C0002F0005C0002F0005C0002F0004E0004F0004E0004F000470008F000470008F00
-0470008F000438010F000438010F000438010F00041C020F00041C020F00041C020F00040E040F
-00040E040F00040E040F000407080F000407080F000407080F000403900F000403900F000401E0
-0F000401E00F000401E00F000E00C00F001F00C01F80FFE0C1FFF8251F7E9E2A>I<FF803FF807
-C007C007C0038005E0010005E0010004F001000478010004780100043C0100043C0100041E0100
-040F0100040F010004078100040781000403C1000401E1000401E1000400F1000400F100040079
-0004003D0004003D0004001F0004001F0004000F0004000700040007000E0003001F000300FFE0
-01001D1F7E9E22>I<001F800000F0F00001C0380007801E000F000F000E0007001E0007803C00
-03C03C0003C07C0003E0780001E0780001E0F80001F0F80001F0F80001F0F80001F0F80001F0F8
-0001F0F80001F0F80001F0F80001F0780001E07C0003E07C0003E03C0003C03C0003C01E000780
-0E0007000F000F0007801E0001C0380000F0F000001F80001C217D9F23>I<FFFFE0000F807800
-07801C0007801E0007800F0007800F8007800F8007800F8007800F8007800F8007800F8007800F
-0007801E0007801C000780780007FFE00007800000078000000780000007800000078000000780
-0000078000000780000007800000078000000780000007800000078000000FC00000FFFC000019
-1F7E9E1F>I<FFFF80000F80F0000780780007803C0007801E0007801E0007801F0007801F0007
-801F0007801F0007801E0007801E0007803C00078078000780F00007FF80000781C0000780E000
-0780F0000780700007807800078078000780780007807C0007807C0007807C0007807C0407807E
-0407803E040FC01E08FFFC0F10000003E01E207E9E21>82 D<07E0800C19801007803003806001
-80600180E00180E00080E00080E00080F00000F000007800007F00003FF0001FFC000FFE0003FF
-00001F800007800003C00003C00001C08001C08001C08001C08001C0C00180C00380E00300F006
-00CE0C0081F80012217D9F19>I<7FFFFFE0780F01E0600F0060400F0020400F0020C00F003080
-0F0010800F0010800F0010800F0010000F0000000F0000000F0000000F0000000F0000000F0000
-000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00
-00000F0000000F0000000F0000001F800007FFFE001C1F7E9E21>I<FFFC3FF80FC007C0078003
-800780010007800100078001000780010007800100078001000780010007800100078001000780
-010007800100078001000780010007800100078001000780010007800100078001000780010007
-80010007800100038002000380020001C0020001C0040000E008000070180000382000000FC000
-1D207E9E22>I<FFF003FE1F8000F80F0000600F800060078000400780004003C0008003C00080
-03C0008001E0010001E0010001F0010000F0020000F0020000F806000078040000780400003C08
-00003C0800003C0800001E1000001E1000001F3000000F2000000F20000007C0000007C0000007
-C000000380000003800000038000000100001F207F9E22>I<FFF07FF81FF01F800FC007C00F00
-078003800F00078001000F0007C00100078007C00200078007C00200078007C0020003C009E004
-0003C009E0040003C009E0040003E010F00C0001E010F0080001E010F0080001F02078080000F0
-2078100000F02078100000F0403C10000078403C20000078403C20000078C03E2000003C801E40
-00003C801E4000003C801E4000001F000F8000001F000F8000001F000F8000001E00078000000E
-00070000000E00070000000C000300000004000200002C207F9E2F>I<7FF83FF80FE00FC007C0
-070003C0020001E0040001F00C0000F0080000781000007C1000003C2000003E4000001E400000
-0F8000000F8000000780000003C0000007E0000005E0000009F0000018F8000010780000207C00
-00603C0000401E0000801F0001800F0001000780020007C0070003C01F8007E0FFE01FFE1F1F7F
-9E22>I<FFF003FF1F8000F80F8000600780004007C0004003E0008001E0008001F0010000F003
-0000F80200007C0400003C0400003E0800001E0800001F1000000FB0000007A0000007C0000003
-C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C0000003C00000
-03C0000007C000007FFE00201F7F9E22>I<7FFFF87C00F87000F06001E04001E0C003C0C003C0
-800780800F80800F00001E00001E00003C00003C0000780000F80000F00001E00001E00003C004
-03C0040780040F80040F000C1E000C1E00083C00183C0018780038F801F8FFFFF8161F7D9E1C>
-I<FEFEC0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0
-C0C0C0C0C0FEFE072D7CA10D>I<FEFE0606060606060606060606060606060606060606060606
-060606060606060606060606060606060606FEFE072D7FA10D>93 D<1FE000303000781800781C
-00300E00000E00000E00000E0000FE00078E001E0E00380E00780E00F00E10F00E10F00E10F01E
-10781E103867200F83C014147E9317>97 D<0E0000FE00000E00000E00000E00000E00000E0000
-0E00000E00000E00000E00000E00000E3E000EC3800F01C00F00E00E00E00E00700E00700E0078
-0E00780E00780E00780E00780E00780E00700E00700E00E00F00E00D01C00CC300083E0015207F
-9F19>I<03F80E0C1C1E381E380C70007000F000F000F000F000F000F00070007000380138011C
-020E0C03F010147E9314>I<000380003F80000380000380000380000380000380000380000380
-00038000038000038003E380061B801C0780380380380380700380700380F00380F00380F00380
-F00380F00380F003807003807003803803803807801C07800E1B8003E3F815207E9F19>I<03F0
-000E1C001C0E00380700380700700700700380F00380F00380FFFF80F00000F00000F000007000
-007000003800801800800C010007060001F80011147F9314>I<007C00C6018F038F0706070007
-0007000700070007000700FFF00700070007000700070007000700070007000700070007000700
-070007000700070007007FF01020809F0E>I<0000E003E3300E3C301C1C30380E00780F00780F
-00780F00780F00780F00380E001C1C001E380033E0002000002000003000003000003FFE001FFF
-800FFFC03001E0600070C00030C00030C00030C000306000603000C01C038003FC00141F7F9417
->I<0E0000FE00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E
-3E000E43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
-01C00E01C00E01C00E01C00E01C00E01C0FFE7FC16207F9F19>I<1C001E003E001E001C000000
-000000000000000000000E007E000E000E000E000E000E000E000E000E000E000E000E000E000E
-000E000E000E000E00FFC00A1F809E0C>I<00E001F001F001F000E00000000000000000000000
-00007007F000F00070007000700070007000700070007000700070007000700070007000700070
-007000700070007000706070F060F0C061803F000C28829E0E>I<0E0000FE00000E00000E0000
-0E00000E00000E00000E00000E00000E00000E00000E00000E0FF00E03C00E03000E02000E0400
-0E08000E10000E30000E70000EF8000F38000E1C000E1E000E0E000E07000E07800E03800E03C0
-0E03E0FFCFF815207F9F18>I<0E00FE000E000E000E000E000E000E000E000E000E000E000E00
-0E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E00FFE00B
-20809F0C>I<0E1F01F000FE618618000E81C81C000F00F00E000F00F00E000E00E00E000E00E0
-0E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00E00E000E00
-E00E000E00E00E000E00E00E000E00E00E000E00E00E00FFE7FE7FE023147F9326>I<0E3E00FE
-43000E81800F01C00F01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
-01C00E01C00E01C00E01C00E01C0FFE7FC16147F9319>I<01F800070E001C03803801C03801C0
-7000E07000E0F000F0F000F0F000F0F000F0F000F0F000F07000E07000E03801C03801C01C0380
-070E0001F80014147F9317>I<0E3E00FEC3800F01C00F00E00E00E00E00F00E00700E00780E00
-780E00780E00780E00780E00780E00700E00F00E00E00F01E00F01C00EC3000E3E000E00000E00
-000E00000E00000E00000E00000E00000E0000FFE000151D7F9319>I<03E0800619801C05803C
-0780380380780380700380F00380F00380F00380F00380F00380F0038070038078038038038038
-07801C0B800E138003E380000380000380000380000380000380000380000380000380003FF815
-1D7E9318>I<0E78FE8C0F1E0F1E0F0C0E000E000E000E000E000E000E000E000E000E000E000E
-000E000E00FFE00F147F9312>I<1F9030704030C010C010C010E00078007F803FE00FF0007080
-3880188018C018C018E030D0608F800D147E9312>I<020002000200060006000E000E003E00FF
-F80E000E000E000E000E000E000E000E000E000E000E000E080E080E080E080E080610031001E0
-0D1C7F9B12>I<0E01C0FE1FC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01
-C00E01C00E01C00E01C00E01C00E01C00E03C00603C0030DC001F1FC16147F9319>I<FF83F81E
-01E01C00C00E00800E00800E008007010007010003820003820003820001C40001C40001EC0000
-E80000E80000700000700000700000200015147F9318>I<FF9FE1FC3C0780701C0300601C0380
-200E0380400E0380400E03C0400707C0800704C0800704E080038861000388710003C8730001D0
-320001D03A0000F03C0000E01C0000E01C0000601800004008001E147F9321>I<7FC3FC0F01E0
-0701C007018003810001C20000E40000EC00007800003800003C00007C00004E00008700010700
-0303800201C00601E01E01E0FF07FE1714809318>I<FF83F81E01E01C00C00E00800E00800E00
-8007010007010003820003820003820001C40001C40001EC0000E80000E8000070000070000070
-00002000002000004000004000004000F08000F08000F100006200003C0000151D7F9318>I<3F
-FF380E200E201C40384078407000E001E001C00380078007010E011E011C0338027006700EFFFE
-10147F9314>I<FFFFFFFFFFF02C01808C2D>124 D E /Fn 53 122 df<0001FF01FE00001FFFCF
-FF00007F01FF0F8000FC03FE1FC001F807FC1FC003F807FC1FC007F007F81FC007F007F80F8007
-F003F8000007F003F8000007F003F8000007F003F8000007F003F8000007F003F8000007F003F8
-0000FFFFFFFFF000FFFFFFFFF000FFFFFFFFF00007F003F8000007F003F8000007F003F8000007
-F003F8000007F003F8000007F003F8000007F003F8000007F003F8000007F003F8000007F003F8
-000007F003F8000007F003F8000007F003F8000007F003F8000007F003F8000007F003F8000007
-F003F8000007F003F8000007F003F8000007F003F8000007F003F800007FFF3FFFC0007FFF3FFF
-C0007FFF3FFFC0002A2A7FA927>11 D<0001FF0000001FFFC000007F81E00000FC01E00001F807
-F00003F807F00007F007F00007F007F00007F007F00007F007F00007F001C00007F000000007F0
-00000007F000000007F03FF800FFFFFFF800FFFFFFF800FFFFFFF80007F003F80007F003F80007
-F003F80007F003F80007F003F80007F003F80007F003F80007F003F80007F003F80007F003F800
-07F003F80007F003F80007F003F80007F003F80007F003F80007F003F80007F003F80007F003F8
-0007F003F80007F003F80007F003F8007FFF3FFF807FFF3FFF807FFF3FFF80212A7FA925>I<3C
-007F00FF80FF80FFC0FFC0FFC07FC03EC000C000C00180018001800300030006000E001C003800
-30000A157BA913>39 D<1C007F007F00FF80FF80FF807F007F001C0009097B8813>46
-D<003F800001FFF00007E0FC000FC07E001F803F001F001F003F001F803E000F807E000FC07E00
-0FC07E000FC07E000FC0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE0FE
-000FE0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE07E000FC07E000FC0
-7E000FC07E000FC03F001F803F001F801F001F001F803F000FC07E0007E0FC0001FFF000003F80
-001B277DA622>48 D<000E00001E00007E0007FE00FFFE00FFFE00F8FE0000FE0000FE0000FE00
-00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
-00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
-7FFFFE7FFFFE7FFFFE17277BA622>I<00FF800007FFF0000FFFFC001E03FE003800FF807C003F
-80FE003FC0FF001FC0FF001FE0FF000FE0FF000FE07E000FE03C001FE000001FE000001FC00000
-1FC000003F8000003F0000007E000000FC000000F8000001F0000003E00000078000000F000000
-1E0000003C00E0007000E000E000E001C001C0038001C0060001C00FFFFFC01FFFFFC03FFFFFC0
-7FFFFFC0FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F800003FFF00007FFFC000F80FE00
-1F007F003F807F003F803F803F803F803F803F801F803F801F003F8000007F0000007F0000007E
-000000FC000001F8000007F00000FFC00000FFC0000001F80000007E0000003F0000003F800000
-1FC000001FC000001FE000001FE03C001FE07E001FE0FF001FE0FF001FE0FF001FC0FF003FC0FE
-003F807C007F003F00FE001FFFFC0007FFF00000FF80001B277DA622>I<00000E0000001E0000
-003E0000007E000000FE000000FE000001FE000003FE0000077E00000E7E00000E7E00001C7E00
-00387E0000707E0000E07E0000E07E0001C07E0003807E0007007E000E007E000E007E001C007E
-0038007E0070007E00E0007E00FFFFFFF8FFFFFFF8FFFFFFF80000FE000000FE000000FE000000
-FE000000FE000000FE000000FE000000FE00007FFFF8007FFFF8007FFFF81D277EA622>I<1800
-03001F801F001FFFFE001FFFFC001FFFF8001FFFF0001FFFC0001FFF00001C0000001C0000001C
-0000001C0000001C0000001C0000001C0000001C7FC0001DFFF8001F80FC001E003F0008003F00
-00001F8000001FC000001FC000001FE000001FE018001FE07C001FE0FE001FE0FE001FE0FE001F
-E0FE001FC0FC001FC078003F8078003F803C007F001F01FE000FFFFC0003FFF00000FF80001B27
-7DA622>I<0007F800003FFE0000FFFF0001FC078003F00FC007C01FC00F801FC01F801FC01F00
-1FC03F000F803F0000007E0000007E0000007E000000FE020000FE1FF000FE3FFC00FE603E00FE
-801F00FF801F80FF000FC0FF000FC0FE000FE0FE000FE0FE000FE0FE000FE07E000FE07E000FE0
-7E000FE07E000FE03E000FE03F000FC01F000FC01F001F800F801F0007E07E0003FFFC0001FFF8
-00003FC0001B277DA622>I<380000003E0000003FFFFFF03FFFFFF03FFFFFF07FFFFFE07FFFFF
-C07FFFFF807FFFFF0070000E0070000E0070001C00E0003800E0007000E000E0000001E0000001
-C000000380000007800000070000000F0000001F0000001E0000003E0000003E0000007E000000
-7C0000007C000000FC000000FC000000FC000000FC000001FC000001FC000001FC000001FC0000
-01FC000001FC000001FC000000F80000007000001C297CA822>I<003FC00001FFF00003FFFC00
-07C07E000F003F001E001F001E000F803E000F803E000F803F000F803F800F803FC00F803FF01F
-001FFC1E001FFE3C000FFFF8000FFFE00007FFF80001FFFC0001FFFE0007FFFF000F0FFF801E03
-FFC03E01FFC07C007FE07C001FE0F8000FE0F80007E0F80003E0F80003E0F80003E0F80003C07C
-0003C07E0007803F000F001FC03F000FFFFC0003FFF800007FC0001B277DA622>I<007F800001
-FFF00007FFF8000FC0FC001F803E003F001F007E001F807E001F807E000F80FE000FC0FE000FC0
-FE000FC0FE000FE0FE000FE0FE000FE0FE000FE0FE000FE07E001FE07E001FE03F003FE01F002F
-E00F80CFE007FF8FE001FF0FE000080FE000000FC000000FC000000FC000001F803E001F807F00
-1F807F003F007F003E007F007E007E00FC003E03F8001FFFE0000FFF800001FE00001B277DA622
->I<00000780000000000780000000000FC0000000000FC0000000000FC0000000001FE0000000
-001FE0000000003FF0000000003FF0000000003FF00000000077F80000000077F800000000F7FC
-00000000E3FC00000000E3FC00000001C1FE00000001C1FE00000003C1FF0000000380FF000000
-0380FF00000007007F80000007007F8000000F007FC000000E003FC000000E003FC000001C001F
-E000001C001FE000003FFFFFF000003FFFFFF000003FFFFFF00000700007F80000700007F80000
-F00007FC0000E00003FC0000E00003FC0001C00001FE0001C00001FE0003C00001FF00FFFE003F
-FFFCFFFE003FFFFCFFFE003FFFFC2E297EA833>65 D<FFFFFFF800FFFFFFFF00FFFFFFFFC003F8
-001FE003F8000FF003F80007F803F80003F803F80003FC03F80003FC03F80001FC03F80001FC03
-F80001FC03F80003FC03F80003F803F80003F803F80007F003F8000FF003F8001FC003F800FF80
-03FFFFFE0003FFFFFFC003F8000FF003F80003F803F80001FC03F80001FE03F80000FE03F80000
-FE03F80000FF03F80000FF03F80000FF03F80000FF03F80000FF03F80000FF03F80000FE03F800
-01FE03F80003FC03F80007FC03F8001FF8FFFFFFFFE0FFFFFFFFC0FFFFFFFE0028297DA830>I<
-00007FE0030007FFFC07001FFFFF0F007FF00F9F00FF0001FF01FC0000FF03F800007F07F00000
-3F0FE000001F1FC000001F1FC000000F3F8000000F3F800000077F800000077F800000077F0000
-0000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00000000FF00
-000000FF000000007F000000007F800000007F800000073F800000073F800000071FC00000071F
-C000000E0FE000000E07F000001C03F800003C01FC00007800FF0001F0007FF007C0001FFFFF80
-0007FFFE0000007FF00028297CA831>I<FFFFFFFC0000FFFFFFFF8000FFFFFFFFE00003FC001F
-F80003FC0003FC0003FC0000FE0003FC00007F0003FC00003F8003FC00001FC003FC00001FC003
-FC00000FE003FC00000FE003FC000007F003FC000007F003FC000007F003FC000007F003FC0000
-07F803FC000007F803FC000007F803FC000007F803FC000007F803FC000007F803FC000007F803
-FC000007F803FC000007F803FC000007F803FC000007F003FC000007F003FC000007F003FC0000
-0FE003FC00000FE003FC00000FC003FC00001FC003FC00003F8003FC00007F0003FC0000FF0003
-FC0003FC0003FC001FF800FFFFFFFFF000FFFFFFFF8000FFFFFFFC00002D297EA834>I<FFFFFF
-FFC0FFFFFFFFC0FFFFFFFFC003FC003FC003FC000FE003FC0003E003FC0001E003FC0001E003FC
-0000E003FC0000E003FC0000E003FC0000F003FC01C07003FC01C07003FC01C07003FC01C00003
-FC03C00003FC03C00003FC0FC00003FFFFC00003FFFFC00003FFFFC00003FC0FC00003FC03C000
-03FC03C00003FC01C00003FC01C00003FC01C00003FC01C00003FC00000003FC00000003FC0000
-0003FC00000003FC00000003FC00000003FC00000003FC00000003FC000000FFFFFC0000FFFFFC
-0000FFFFFC000024297EA82A>70 D<00007FE003000007FFFC0700001FFFFF0F00007FF00F9F00
-00FF0001FF0001FC0000FF0003F800007F0007F000003F000FE000001F001FC000001F001FC000
-000F003F8000000F003F80000007007F80000007007F80000007007F0000000000FF0000000000
-FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000000000FF0000
-000000FF0000FFFFF87F0000FFFFF87F8000FFFFF87F800000FF003F800000FF003F800000FF00
-1FC00000FF001FC00000FF000FE00000FF0007F00000FF0003F80000FF0001FC0000FF0000FF00
-01FF00007FF007FF00001FFFFF9F000007FFFE0F0000007FF003002D297CA835>I<FFFFF00FFF
-FFFFFFF00FFFFFFFFFF00FFFFF03FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC
-00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003F
-C003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FFFFFFFFC003FFFFFFFFC003FF
-FFFFFFC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003F
-C003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC003FC
-00003FC003FC00003FC003FC00003FC003FC00003FC003FC00003FC0FFFFF00FFFFFFFFFF00FFF
-FFFFFFF00FFFFF30297EA835>I<FFFFFCFFFFFCFFFFFC01FE0001FE0001FE0001FE0001FE0001
-FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001
-FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001
-FE0001FE0001FE0001FE00FFFFFCFFFFFCFFFFFC16297FA819>I<FFFE0000003FFF80FFFE0000
-003FFF80FFFF0000007FFF8003FF0000007FE00003FF0000007FE00003BF800000EFE00003BF80
-0000EFE000039FC00001CFE000039FC00001CFE000038FE000038FE000038FE000038FE000038F
-E000038FE0000387F000070FE0000387F000070FE0000383F8000E0FE0000383F8000E0FE00003
-81FC001C0FE0000381FC001C0FE0000381FC001C0FE0000380FE00380FE0000380FE00380FE000
-03807F00700FE00003807F00700FE00003803F80E00FE00003803F80E00FE00003803F80E00FE0
-0003801FC1C00FE00003801FC1C00FE00003800FE3800FE00003800FE3800FE000038007F7000F
-E000038007F7000FE000038007F7000FE000038003FE000FE000038003FE000FE000038001FC00
-0FE000038001FC000FE000038000F8000FE000FFFE00F803FFFF80FFFE00F803FFFF80FFFE0070
-03FFFF8039297DA840>77 D<0000FFC00000000FFFFC0000003F807F000000FE001FC00001F800
-07E00003F00003F00007E00001F8000FE00001FC001FC00000FE001FC00000FE003F8000007F00
-3F8000007F007F8000007F807F0000003F807F0000003F807F0000003F80FF0000003FC0FF0000
-003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0FF0000003FC0
-FF0000003FC0FF0000003FC07F0000003F807F8000007F807F8000007F803F8000007F003F8000
-007F001FC00000FE001FC00000FE000FE00001FC0007F00003F80003F80007F00001FC000FE000
-00FE001FC000003FC0FF0000000FFFFC00000000FFC000002A297CA833>79
-D<FFFFFFE00000FFFFFFFE0000FFFFFFFF800003FC003FE00003FC000FF00003FC0007F80003FC
-0003FC0003FC0001FC0003FC0001FE0003FC0001FE0003FC0001FE0003FC0001FE0003FC0001FE
-0003FC0001FE0003FC0001FC0003FC0003F80003FC0007F80003FC000FE00003FC003FC00003FF
-FFFE000003FFFFFE000003FC00FF800003FC003FC00003FC001FE00003FC000FF00003FC0007F8
-0003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC0007F80003FC
-0007F80003FC0007F80003FC0007F80E03FC0007F80E03FC0003F80E03FC0001FC1CFFFFF000FE
-1CFFFFF0007FF8FFFFF0000FE02F297EA832>82 D<00FF00C003FFE1C00FFFF9C01F80FFC03F00
-3FC03E000FC07C0007C07C0007C0FC0003C0FC0003C0FC0001C0FE0001C0FE0001C0FF000000FF
-C000007FFC00007FFFE0003FFFF8001FFFFE001FFFFF0007FFFF8003FFFFC000FFFFC0000FFFE0
-00007FE000001FF000000FF0000007F0E00003F0E00003F0E00003F0E00003F0F00003E0F00003
-E0F80007E0FC0007C0FF000F80FFE01F80E3FFFF00E1FFFC00C01FF0001C297CA825>I<7FFFFF
-FFFF807FFFFFFFFF807FFFFFFFFF807F807F807F807C007F800F8078007F80078078007F800780
-70007F800380F0007F8003C0F0007F8003C0E0007F8001C0E0007F8001C0E0007F8001C0E0007F
-8001C0E0007F8001C000007F80000000007F80000000007F80000000007F80000000007F800000
-00007F80000000007F80000000007F80000000007F80000000007F80000000007F80000000007F
-80000000007F80000000007F80000000007F80000000007F80000000007F80000000007F800000
-00007F80000000007F80000000007F80000000007F80000000FFFFFFC00000FFFFFFC00000FFFF
-FFC0002A287EA72F>I<FFFFF000FFFEFFFFF000FFFEFFFFF000FFFE03FC0000038003FC000003
-8003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC
-0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC000003
-8003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC
-0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC0000038003FC000003
-8001FC0000070001FE0000070000FE00000E00007F00000E00003F00003C00001FC0007800000F
-F003F0000007FFFFE0000000FFFF800000001FFC00002F297EA834>I<FFFFF0007FFFFFFFF000
-7FFFFFFFF0007FFF03FE000001C001FE0000038001FE0000038000FF0000070000FF0000070000
-FF80000F00007F80000E00007FC0000E00003FC0001C00003FE0001C00001FE0003800001FE000
-3800001FF0007800000FF0007000000FF800F0000007F800E0000007FC00E0000003FC01C00000
-03FC01C0000003FE03C0000001FE0380000001FF0780000000FF0700000000FF87000000007F8E
-000000007F8E000000007FDE000000003FDC000000003FFC000000001FF8000000001FF8000000
-000FF0000000000FF0000000000FF00000000007E00000000007E00000000003C00000000003C0
-000030297FA833>I<FFFFE0FFFFE01FFFC0FFFFE0FFFFE01FFFC0FFFFE0FFFFE01FFFC003FC00
-03FC0000700003FC0003FC0000700003FE0003FE0000F00001FE0001FE0000E00001FE0001FE00
-00E00001FF0001FF0001E00000FF0001FF0001C00000FF0001FF0001C000007F8003FF80038000
-007F8003FF80038000007FC007FFC0078000003FC0073FC0070000003FC0073FC0070000003FE0
-0F3FE00F0000001FE00E1FE00E0000001FE00E1FE00E0000000FF01C0FF01C0000000FF01C0FF0
-1C0000000FF01C0FF81C00000007F83807F83800000007F83807F83800000007FC7807FC780000
-0003FC7003FC7000000003FC7003FC7000000003FEF003FEF000000001FEE001FEE000000001FE
-E001FEE000000000FFC000FFC000000000FFC000FFC000000000FFC000FFC0000000007F80007F
-80000000007F80007F80000000007F80007F80000000003F00003F00000000003F00003F000000
-00003F00003F00000000001E00001E00000000001E00001E00000042297FA845>I<03FF80000F
-FFF0001F01FC003F80FE003F807F003F803F003F803F801F003F8000003F8000003F8000003F80
-00003F80003FFF8001FC3F800FE03F801F803F803F003F807E003F80FC003F80FC003F80FC003F
-80FC003F80FC005F807E00DF803F839FFC1FFE0FFC03F803FC1E1B7E9A21>97
-D<FFE00000FFE00000FFE000000FE000000FE000000FE000000FE000000FE000000FE000000FE0
-00000FE000000FE000000FE000000FE000000FE000000FE1FE000FE7FF800FFE07E00FF803F00F
-F001F80FE000FC0FE000FC0FE0007E0FE0007E0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F
-0FE0007F0FE0007F0FE0007F0FE0007E0FE0007E0FE0007E0FE000FC0FE000FC0FF001F80FF803
-F00F9C0FE00F0FFF800E01FC00202A7EA925>I<003FF00001FFFC0003F03E000FC07F001F807F
-003F007F003F007F007F003E007E0000007E000000FE000000FE000000FE000000FE000000FE00
-0000FE000000FE0000007E0000007E0000007F0000003F0003803F8003801F8007000FE00E0003
-F83C0001FFF800003FC000191B7E9A1E>I<00007FF000007FF000007FF0000007F0000007F000
-0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0
-003F87F001FFF7F007F03FF00FC00FF01F8007F03F0007F03F0007F07E0007F07E0007F07E0007
-F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F07E0007F07E00
-07F03F0007F03F0007F01F800FF00FC01FF007E07FFF01FFE7FF007F87FF202A7EA925>I<003F
-C00001FFF00003E07C000F803E001F801F001F001F003F000F807E000F807E000FC07E000FC0FE
-0007C0FE0007C0FFFFFFC0FFFFFFC0FE000000FE000000FE0000007E0000007E0000007F000000
-3F0001C01F0001C00F80038007C0070003F01E0000FFFC00003FE0001A1B7E9A1F>I<0007F800
-3FFC007E3E01FC7F03F87F03F07F07F07F07F03E07F00007F00007F00007F00007F00007F00007
-F000FFFFC0FFFFC0FFFFC007F00007F00007F00007F00007F00007F00007F00007F00007F00007
-F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0007FFF807F
-FF807FFF80182A7EA915>I<007F80F001FFE3F807C0FE1C0F807C7C1F003E7C1F003E103F003F
-003F003F003F003F003F003F003F003F003F003F001F003E001F003E000F807C0007C0F80005FF
-E0000C7F8000180000001C0000001C0000001E0000001FFFF8001FFFFF000FFFFFC007FFFFE003
-FFFFF00FFFFFF03E0007F07C0001F8F80000F8F80000F8F80000F8F80000F87C0001F07C0001F0
-3F0007E00FC01F8007FFFF00007FF0001E287E9A22>I<FFE00000FFE00000FFE000000FE00000
-0FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000
-000FE000000FE07E000FE1FF800FE30FC00FE40FE00FE807E00FF807F00FF007F00FF007F00FE0
-07F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00F
-E007F00FE007F00FE007F00FE007F00FE007F00FE007F0FFFE3FFFFFFE3FFFFFFE3FFF202A7DA9
-25>I<07000F801FC03FE03FE03FE01FC00F8007000000000000000000000000000000FFE0FFE0
-FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F
-E00FE00FE0FFFEFFFEFFFE0F2B7EAA12>I<FFE00000FFE00000FFE000000FE000000FE000000F
-E000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00000
-0FE03FF80FE03FF80FE03FF80FE007000FE00E000FE03C000FE078000FE0F0000FE1E0000FE3C0
-000FE780000FEFC0000FFFE0000FFFE0000FF7F0000FE3F8000FC1FC000FC1FC000FC0FE000FC0
-7F000FC07F000FC03F800FC01FC00FC01FC0FFFC7FFCFFFC7FFCFFFC7FFC1E2A7EA923>107
-D<FFE0FFE0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0
-0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F
-E0FFFEFFFEFFFE0F2A7EA912>I<FFC07F001FC000FFC1FFC07FF000FFC307E0C1F8000FC407F1
-01FC000FC803F200FC000FD803FE00FE000FD003FC00FE000FD003FC00FE000FE003F800FE000F
-E003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800
-FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE003F800FE000FE0
-03F800FE000FE003F800FE000FE003F800FE000FE003F800FE00FFFE3FFF8FFFE0FFFE3FFF8FFF
-E0FFFE3FFF8FFFE0331B7D9A38>I<FFC07E00FFC1FF80FFC30FC00FC40FE00FC807E00FD807F0
-0FD007F00FD007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007
-F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F0FFFE3FFFFFFE
-3FFFFFFE3FFF201B7D9A25>I<003FE00001FFFC0003F07E000FC01F801F800FC03F0007E03F00
-07E07E0003F07E0003F07E0003F0FE0003F8FE0003F8FE0003F8FE0003F8FE0003F8FE0003F8FE
-0003F8FE0003F87E0003F07E0003F03F0007E03F0007E01F800FC00FC01F8007F07F0001FFFC00
-003FE0001D1B7E9A22>I<FFE1FE00FFE7FF80FFFE0FE00FF803F00FF001F80FE001FC0FE000FC
-0FE000FE0FE000FE0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE0007F0FE000
-7F0FE0007E0FE000FE0FE000FE0FE000FC0FE001FC0FF001F80FF803F00FFC0FE00FEFFF800FE1
-FC000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00000FF
-FE0000FFFE0000FFFE000020277E9A25>I<FFC3E0FFC7F8FFCC7C0FD8FE0FD0FE0FD0FE0FF0FE
-0FE07C0FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE000
-0FE0000FE0000FE0000FE000FFFF00FFFF00FFFF00171B7E9A1B>114 D<03FE300FFFF03E03F0
-7800F07000F0F00070F00070F80070FE0000FFE0007FFF007FFFC03FFFE01FFFF007FFF800FFF8
-0007FC0000FCE0007CE0003CF0003CF00038F80038FC0070FF01E0E7FFC0C1FF00161B7E9A1B>
-I<00700000700000700000700000F00000F00000F00001F00003F00003F00007F0001FFFE0FFFF
-E0FFFFE007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0
-0007F00007F07007F07007F07007F07007F07007F07007F07003F0E001F8C000FFC0003F001426
-7FA51A>I<FFE07FF0FFE07FF0FFE07FF00FE007F00FE007F00FE007F00FE007F00FE007F00FE0
-07F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00FE007F00F
-E007F00FE007F00FE007F00FE00FF00FE00FF007E017F003F067FF01FFC7FF007F87FF201B7D9A
-25>I<FFFE07FFFFFE07FFFFFE07FF07F000E007F000E007F801E003F801C003F801C001FC0380
-01FC038001FE078000FE070000FF0F00007F0E00007F0E00003F9C00003F9C00003FFC00001FF8
-00001FF800000FF000000FF000000FF0000007E0000007E0000003C0000003C000201B7F9A23>
-I<FFFC7FFC1FFCFFFC7FFC1FFCFFFC7FFC1FFC0FE00FE001C007F007E0038007F007E0038007F8
-07F0078003F807F0070003F807F8070001FC0FF80E0001FC0FF80E0001FE1FFC1E0000FE1CFC1C
-0000FE1CFE1C0000FF387E3C00007F387E3800007F787F3800003FF03F7000003FF03F7000003F
-E01FF000001FE01FE000001FE01FE000000FC00FC000000FC00FC000000FC00FC0000007800780
-000007800780002E1B7F9A31>I<FFFC1FFEFFFC1FFEFFFC1FFE07F0078003F8070001FC0F0001
-FE1E0000FE3C00007F7800003FF800003FF000001FE000000FE0000007F0000007F800000FF800
-001FFC00003DFE000038FF0000787F0000F03F8001E03FC003C01FE003800FE0FFF03FFFFFF03F
-FFFFF03FFF201B7F9A23>I<FFFE07FFFFFE07FFFFFE07FF07F000E007F000E007F801E003F801
-C003F801C001FC038001FC038001FE078000FE070000FF0F00007F0E00007F0E00003F9C00003F
-9C00003FFC00001FF800001FF800000FF000000FF0000007F0000007E0000007E0000003C00000
-03C000000380000003800000078000380700007C070000FE0E0000FE0E0000FE1C0000FE380000
-7C7000003FE000000F80000020277F9A23>I E /Fo 5 103 df<0000300000F80001F80003F000
-0FE0001F80007F0000FE0003F80007F0000FC0003F80007E0000FC0000FC00007E00003F80000F
-C00007F00003F80000FE00007F00001F80000FE00003F00001F80000F8000030151C7D9E1C>60
-D<600000F80000FC00007E00003F80000FC00007F00003F80000FE00007F00001F80000FE00003
-F00001F80001F80003F0000FE0001F80007F0000FE0003F80007F0000FC0003F80007E0000FC00
-00F80000600000151C7D9E1C>62 D<FF0000FF0000FF00000F00000F00000F00000F00000F0000
-0F00000F00000F1F800F7FE00FFFF00FE0F80FC07C0F803C0F001E0F001E0F000F0F000F0F000F
-0F000F0F000F0F000F0F000F0F001E0F801E0F803C0FC07C0FE0F80FFFF00F7FC0071F0018217F
-A01C>98 D<000FF0000FF0000FF00000F00000F00000F00000F00000F00000F00000F000F8F003
-FEF00FFFF01F07F03E03F03C01F07800F07800F0F000F0F000F0F000F0F000F0F000F0F000F0F0
-00F07800F07801F03C01F03E03F01F07F00FFFFF07FEFF01F8FF18217EA01C>100
-D<0003F8000FFC001FFE003E1E003C0C0078000078000078000078000078007FFFF8FFFFF8FFFF
-F80078000078000078000078000078000078000078000078000078000078000078000078000078
-000078000078000078000078003FFFF03FFFF03FFFF017217FA01C>102
-D E /Fp 10 109 df<00000001E00000000000000003F00000000000000003F000000000000000
-07F80000000000000007F80000000000000007F8000000000000000FFC000000000000000FFC00
-0000000000001FFE000000000000001FFE000000000000001FFE000000000000003FFF00000000
-0000003FFF000000000000007FFF800000000000007BFF800000000000007BFF80000000000000
-F3FFC0000000000000F1FFC0000000000001F1FFE0000000000001E0FFE0000000000001E0FFE0
-000000000003C0FFF0000000000003C07FF0000000000007C07FF8000000000007803FF8000000
-000007803FF800000000000F003FFC00000000000F001FFC00000000001F001FFE00000000001E
-000FFE00000000001E000FFE00000000003C000FFF00000000003C0007FF00000000007C0007FF
-8000000000780003FF8000000000780003FF8000000000F00003FFC000000000F00001FFC00000
-0001FFFFFFFFE000000001FFFFFFFFE000000003FFFFFFFFF000000003FFFFFFFFF000000003C0
-00007FF000000007C000007FF8000000078000003FF80000000F8000003FFC0000000F0000003F
-FC0000000F0000001FFC0000001F0000001FFE0000001E0000000FFE0000003E0000000FFF0000
-003C00000007FF0000003C00000007FF0000007C00000007FF800000FC00000003FF8000FFFFF8
-0003FFFFFFC0FFFFF80003FFFFFFC0FFFFF80003FFFFFFC0FFFFF80003FFFFFFC0423B7DBA49>
-65 D<FFFFFFFFFF800000FFFFFFFFFFF80000FFFFFFFFFFFF0000FFFFFFFFFFFFC000007FF000
-07FFE000007FF000007FF800007FF000001FFC00007FF000000FFE00007FF0000003FF00007FF0
-000001FF80007FF0000000FFC0007FF00000007FE0007FF00000007FE0007FF00000003FF0007F
-F00000003FF8007FF00000001FF8007FF00000001FF8007FF00000001FFC007FF00000001FFC00
-7FF00000000FFE007FF00000000FFE007FF00000000FFE007FF00000000FFE007FF00000000FFE
-007FF00000000FFF007FF00000000FFF007FF00000000FFF007FF00000000FFF007FF00000000F
-FF007FF00000000FFF007FF00000000FFF007FF00000000FFF007FF00000000FFF007FF0000000
-0FFF007FF00000000FFF007FF00000000FFF007FF00000000FFE007FF00000000FFE007FF00000
-000FFE007FF00000000FFE007FF00000000FFC007FF00000001FFC007FF00000001FFC007FF000
-00001FF8007FF00000003FF8007FF00000003FF0007FF00000007FF0007FF00000007FE0007FF0
-000000FFC0007FF0000001FFC0007FF0000003FF80007FF0000007FF00007FF000001FFE00007F
-F000007FF800007FF00007FFF000FFFFFFFFFFFFC000FFFFFFFFFFFF0000FFFFFFFFFFF80000FF
-FFFFFFFF800000403B7CBA4A>68 D<FFFFFFFFFFFFC0FFFFFFFFFFFFC0FFFFFFFFFFFFC0FFFFFF
-FFFFFFC0007FF00007FFC0007FF000007FE0007FF000003FE0007FF000000FE0007FF0000007E0
-007FF0000007E0007FF0000003E0007FF0000003E0007FF0000001E0007FF0000001E0007FF000
-0001E0007FF0000001E0007FF0000001F0007FF000F000F0007FF000F000F0007FF000F000F000
-7FF000F000F0007FF000F00000007FF000F00000007FF001F00000007FF001F00000007FF003F0
-0000007FF00FF00000007FFFFFF00000007FFFFFF00000007FFFFFF00000007FFFFFF00000007F
-F00FF00000007FF003F00000007FF001F00000007FF001F00000007FF000F00000007FF000F000
-00007FF000F00000007FF000F00000007FF000F00000007FF000F00000007FF000000000007FF0
-00000000007FF000000000007FF000000000007FF000000000007FF000000000007FF000000000
-007FF000000000007FF000000000007FF000000000007FF000000000007FF000000000007FF000
-000000007FF000000000FFFFFFFE000000FFFFFFFE000000FFFFFFFE000000FFFFFFFE00000034
-3B7CBA3D>70 D<FFFFFFFFF800000000FFFFFFFFFFC0000000FFFFFFFFFFF8000000FFFFFFFFFF
-FE000000007FF0001FFF000000007FF00003FFC00000007FF00000FFE00000007FF000007FF000
-00007FF000003FF80000007FF000003FF80000007FF000003FFC0000007FF000001FFC0000007F
-F000001FFC0000007FF000001FFE0000007FF000001FFE0000007FF000001FFE0000007FF00000
-1FFE0000007FF000001FFE0000007FF000001FFE0000007FF000001FFC0000007FF000001FFC00
-00007FF000003FFC0000007FF000003FF80000007FF000007FF00000007FF000007FE00000007F
-F00001FFC00000007FF00003FF800000007FF0001FFE000000007FFFFFFFF8000000007FFFFFFF
-C0000000007FFFFFFFC0000000007FF0007FF0000000007FF0001FF8000000007FF0000FFC0000
-00007FF00007FE000000007FF00003FF000000007FF00003FF800000007FF00001FF800000007F
-F00001FF800000007FF00001FFC00000007FF00001FFC00000007FF00001FFC00000007FF00001
-FFC00000007FF00001FFC00000007FF00001FFE00000007FF00001FFE00000007FF00001FFE000
-00007FF00001FFE00000007FF00001FFE00000007FF00001FFE001E0007FF00001FFE001E0007F
-F00000FFF001E0007FF00000FFF001E0007FF00000FFF003C0007FF000007FF803C0FFFFFFF800
-3FFC0780FFFFFFF8001FFE0F80FFFFFFF80007FFFF00FFFFFFF80001FFFC000000000000001FF0
-00433C7CBA48>82 D<3FFFFFFFFFFFFFC03FFFFFFFFFFFFFC03FFFFFFFFFFFFFC03FFFFFFFFFFF
-FFC03FF8007FF001FFC07FC0007FF0003FE07F80007FF0001FE07F00007FF0000FE07E00007FF0
-0007E07C00007FF00003E07C00007FF00003E07C00007FF00003E07800007FF00001E07800007F
-F00001E07800007FF00001E07800007FF00001E0F000007FF00000F0F000007FF00000F0F00000
-7FF00000F0F000007FF00000F0F000007FF00000F00000007FF00000000000007FF00000000000
-007FF00000000000007FF00000000000007FF00000000000007FF00000000000007FF000000000
-00007FF00000000000007FF00000000000007FF00000000000007FF00000000000007FF0000000
-0000007FF00000000000007FF00000000000007FF00000000000007FF00000000000007FF00000
-000000007FF00000000000007FF00000000000007FF00000000000007FF00000000000007FF000
-00000000007FF00000000000007FF00000000000007FF00000000000007FF00000000000007FF0
-0000000000007FF00000000000007FF00000000000007FF00000000000007FF00000000000007F
-F00000000000007FF0000000000FFFFFFFFF8000000FFFFFFFFF8000000FFFFFFFFF8000000FFF
-FFFFFF80003C3A7DB943>84 D<00FE00000000FFFE00000000FFFE00000000FFFE00000000FFFE
-0000000007FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE000000
-0003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE
-0000000003FE0000000003FE0000000003FE0000000003FE0000000003FE01FF000003FE1FFFF0
-0003FE7FFFFC0003FEFC03FE0003FFF000FF0003FFC0003F8003FF00001FC003FE00001FE003FE
-00000FF003FE00000FF803FE00000FF803FE000007FC03FE000007FC03FE000007FC03FE000007
-FE03FE000007FE03FE000007FE03FE000007FE03FE000007FE03FE000007FE03FE000007FE03FE
-000007FE03FE000007FE03FE000007FC03FE000007FC03FE000007FC03FE00000FFC03FE00000F
-F803FE00000FF003FE00001FF003FF00001FE003FF80003FC003FFC0007F8003F9E000FF0003F0
-FC07FE0003F07FFFF80003E01FFFE00003C003FE00002F3C7DBB36>98 D<000000003F80000000
-3FFF800000003FFF800000003FFF800000003FFF8000000001FF8000000000FF8000000000FF80
-00000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000
-00FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80
-00000000FF800000FF80FF80000FFFF0FF80003FFFFCFF8000FFC03FFF8001FE000FFF8003FC00
-03FF8007F80001FF800FF00000FF801FF00000FF803FE00000FF803FE00000FF807FE00000FF80
-7FC00000FF807FC00000FF807FC00000FF80FFC00000FF80FFC00000FF80FFC00000FF80FFC000
-00FF80FFC00000FF80FFC00000FF80FFC00000FF80FFC00000FF80FFC00000FF807FC00000FF80
-7FC00000FF807FC00000FF803FE00000FF803FE00000FF801FE00000FF800FF00001FF8007F000
-03FF8003F80007FF8001FE001FFFC000FF807EFFFE007FFFF8FFFE000FFFE0FFFE0001FF00FFFE
-2F3C7DBB36>100 D<00001FF0000000FFF8000003FFFE00000FF87F00001FE0FF00003FC1FF80
-007F81FF8000FF81FF8000FF81FF8001FF00FF0001FF007E0001FF003C0001FF00000001FF0000
-0001FF00000001FF00000001FF00000001FF00000001FF00000001FF00000001FF00000001FF00
-0000FFFFFF8000FFFFFF8000FFFFFF8000FFFFFF800001FF00000001FF00000001FF00000001FF
-00000001FF00000001FF00000001FF00000001FF00000001FF00000001FF00000001FF00000001
-FF00000001FF00000001FF00000001FF00000001FF00000001FF00000001FF00000001FF000000
-01FF00000001FF00000001FF00000001FF00000001FF00000001FF00000001FF00000001FF0000
-0001FF00000001FF00000001FF0000007FFFFE00007FFFFE00007FFFFE00007FFFFE0000213C7D
-BB1E>102 D<01E00007F80007FC000FFE000FFE001FFE001FFE000FFE000FFE0007FC0007F800
-01E00000000000000000000000000000000000000000000000000000000000000000000000FE00
-FFFE00FFFE00FFFE00FFFE0007FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE00
-03FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE00
-03FE0003FE0003FE0003FE0003FE0003FE0003FE00FFFFF0FFFFF0FFFFF0FFFFF0143D7DBC1A>
-105 D<00FE00FFFE00FFFE00FFFE00FFFE0007FE0003FE0003FE0003FE0003FE0003FE0003FE00
-03FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE00
-03FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE00
-03FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE0003FE00
-03FE0003FE0003FE0003FE0003FE00FFFFF8FFFFF8FFFFF8FFFFF8153C7DBB1A>108
-D E /Fq 4 106 df<0001FE00000007FF8000001E01E000007800780000E0001C000180000600
-030000030006000001800C000000C00C000000C018000000603000000030300000003030000000
-30600000001860000000186000000018C00000000CC00000000CC00000000CC00000000CC00000
-000CC00000000CC00000000CC00000000CC00000000C6000000018600000001860000000183000
-0000303000000030300000003018000000600C000000C00C000000C00600000180030000030001
-8000060000E0001C000078007800001E01E0000007FF80000001FE0000262B7DA02D>13
-D<03C00FF01FF83FFC7FFE7FFEFFFFFFFFFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF80FF003C01012
-7D9317>15 D<004000C00180018001800300030003000600060006000C000C0018001800180030
-0030003000600060006000C000C0006000600060003000300030001800180018000C000C000600
-0600060003000300030001800180018000C000400A2E7CA112>104 D<C000C000600060006000
-3000300030001800180018000C000C0006000600060003000300030001800180018000C000C001
-80018001800300030003000600060006000C000C00180018001800300030003000600060006000
-C000C0000A2E7DA112>I E /Fr 60 125 df<0003FC0FE0001FFF3FF8007E03FC7801F807F0FC
-03F00FF0FC03F00FE0FC07E00FE07807E007E00007E007E00007E007E00007E007E00007E007E0
-0007E007E00007E007E000FFFFFFFF80FFFFFFFF8007E007E00007E007E00007E007E00007E007
-E00007E007E00007E007E00007E007E00007E007E00007E007E00007E007E00007E007E00007E0
-07E00007E007E00007E007E00007E007E00007E007E00007E007E00007E007E00007E007E00007
-E007E0007FFE7FFF007FFE7FFF0026267FA524>11 D<0003FC00003FFE00007E070001F80F8003
-F01F8003E01F8007E01F8007E01F8007E01F8007E0060007E0000007E0000007E0000007E0FFC0
-FFFFFFC0FFFFFFC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00F
-C007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E0
-0FC007E00FC007E00FC07FFC7FFC7FFC7FFC1E267FA522>I<0003FFC0003FFFC000FE0FC001F8
-1FC003F01FC003E01FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007
-E00FC0FFFFFFC0FFFFFFC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC0
-07E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00FC007E00F
-C007E00FC007E00FC007E00FC07FFEFFFC7FFEFFFC1E267FA522>I<3C7EFFFFFFFF7E3C08087C
-8711>46 D<007F800003FFF00007E1F8000F807C001F003E003F003F003E001F007E001F807E00
-1F807E001F807E001F80FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE
-001FC0FE001FC0FE001FC0FE001FC0FE001FC0FE001FC07E001F807E001F807E001F807E001F80
-3F003F003F003F001F003E000F807C0007E1F80003FFF000007F80001A237EA21F>48
-D<001C00003C0000FC00FFFC00FFFC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC
-0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC
-0000FC0000FC0000FC0000FC0000FC0000FC0000FC007FFFFC7FFFFC16237CA21F>I<01FF0007
-FFC01E07F03803F86001FC7C00FEFE00FEFE00FFFE007FFE007F7C007F3800FF0000FF0000FE00
-00FE0001FC0001F80003F00007E0000780000F00001E00003C0000700000E00301C00303800707
-00060600060FFFFE1FFFFE3FFFFE7FFFFCFFFFFCFFFFFC18237DA21F>I<01FF0007FFE01E03F0
-3801F83C01FC7E00FE7E00FE7E00FE3E00FE1C01FE0001FC0001FC0003F80007F0000FC001FF00
-01FF000007E00001F00001F80000FC0000FE0000FF0000FF1000FF7C00FFFE00FFFE00FFFE00FE
-FE00FE7C01FC7001F83E07F00FFFC001FF0018237DA21F>I<0000380000007800000078000000
-F8000001F8000003F8000007F8000006F800000CF800001CF8000038F8000030F8000060F80000
-E0F80001C0F8000180F8000300F8000700F8000E00F8001C00F8001800F8003000F8007000F800
-E000F800FFFFFFC0FFFFFFC00001F8000001F8000001F8000001F8000001F8000001F8000001F8
-00007FFFC0007FFFC01A237EA21F>I<18000C1F007C1FFFF81FFFF01FFFE01FFFC01FFF801FFE
-0018000018000018000018000018000018FF001BFFE01F01F01C00F80800FC00007E00007E0000
-7E00007F00007F78007FFC007FFC007FFC007FFC007EF8007E6000FC7000FC3801F81E07E007FF
-C001FE0018237DA21F>I<001FC0007FF001F83803E00C07803E0F807E1F007E3F007E3F007E7E
-003C7E00007E00007E0000FE3FC0FE7FF0FE80F8FF80FCFF007CFF007EFE007EFE007FFE007FFE
-007FFE007F7E007F7E007F7E007F7E007F3E007E3F007E1F007C0F80F807C1F003FFC0007F0018
-237DA21F>I<300000003C0000003FFFFFC03FFFFFC03FFFFF807FFFFF007FFFFE007FFFFC0060
-00180060001800E0003000C0006000C000C0000001800000018000000300000007000000060000
-000E0000001E0000001E0000001E0000003C0000003C0000007C0000007C0000007C0000007C00
-0000FC000000FC000000FC000000FC000000FC000000FC000000FC000000780000003000001A25
-7DA41F>I<00FF8003FFE00F01F81C007C38003C38001E78001E78001E7C001E7E001E7F803C7F
-E03C3FF8781FFCF01FFFC00FFFC003FFE003FFF80FFFFC1E1FFC3C07FE7801FE7800FFF0003FF0
-001FF0000FF0000FF0000FF0000E78000E78001C3E00381F80F007FFE000FF0018237DA21F>I<
-00FF0003FFC00F83E01F00F03F00F87E007C7E007C7E007EFE007EFE007EFE007EFE007FFE007F
-FE007FFE007F7E007F7E00FF3E00FF3F01FF1F017F0FFE7F03FC7F00007F00007E00007E3C007E
-7E00FC7E00FC7E00F87E00F07C01F03003E01C0F800FFF0003F80018237DA21F>I<00001C0000
-0000001C00000000003E00000000003E00000000003E00000000007F00000000007F0000000000
-FF8000000000FF8000000000FF80000000019FC0000000019FC0000000031FE0000000030FE000
-0000030FE00000000607F00000000607F00000000C07F80000000C03F80000001C03FC00000018
-01FC0000001801FC0000003001FE0000003000FE0000007FFFFF0000007FFFFF00000060007F00
-0000C0007F800000C0003F800001C0003FC0000180001FC0000180001FC0000300000FE0000300
-000FE0000780000FF000FFF801FFFF80FFF801FFFF8029257EA42E>65 D<FFFFFFE000FFFFFFFC
-0003F0007F0003F0003F8003F0001FC003F0000FE003F0000FE003F0000FF003F0000FF003F000
-07F003F0000FF003F0000FF003F0000FE003F0001FE003F0001FC003F0007F8003F001FE0003FF
-FFF80003FFFFFF0003F0003FC003F0000FE003F00007F003F00007F803F00003F803F00003FC03
-F00003FC03F00003FC03F00003FC03F00003FC03F00003FC03F00003F803F00007F803F0000FF0
-03F0001FE003F0007FC0FFFFFFFF00FFFFFFF80026257EA42C>I<0000FF8008000FFFF018003F
-C03C7800FE0006F801F80003F803F00001F807E00000F80FC00000781FC00000783F800000383F
-800000387F800000187F000000187F00000018FF00000000FF00000000FF00000000FF00000000
-FF00000000FF00000000FF00000000FF00000000FF000000007F000000007F000000187F800000
-183F800000183F800000181FC00000300FC000003007E000006003F00000C001F800018000FE00
-0700003FC01E00000FFFF8000000FFC00025257DA42C>I<FFFFFFE00000FFFFFFFC000003F800
-FF000003F8001FC00003F80007E00003F80003F00003F80001F80003F80001FC0003F80000FC00
-03F80000FE0003F80000FE0003F800007F0003F800007F0003F800007F0003F800007F8003F800
-007F8003F800007F8003F800007F8003F800007F8003F800007F8003F800007F8003F800007F80
-03F800007F8003F800007F8003F800007F0003F800007F0003F800007F0003F80000FE0003F800
-00FE0003F80001FC0003F80001F80003F80003F00003F80007E00003F8001FC00003F800FF8000
-FFFFFFFE0000FFFFFFE0000029257EA42F>I<FFFFFFFF00FFFFFFFF0003F8007F0003F8000F80
-03F800078003F800038003F800038003F800018003F800018003F800018003F80000C003F80600
-C003F80600C003F806000003F806000003F80E000003F81E000003FFFE000003FFFE000003F81E
-000003F80E000003F806000003F806000003F806006003F806006003F800006003F80000C003F8
-0000C003F80000C003F80000C003F80001C003F80003C003F80003C003F8000F8003F8003F80FF
-FFFFFF80FFFFFFFF8023257EA428>I<FFFFFFFE00FFFFFFFE0003F800FE0003F8001F0003F800
-0F0003F800070003F800070003F800030003F800030003F800030003F800018003F806018003F8
-06018003F806000003F806000003F80E000003F81E000003FFFE000003FFFE000003F81E000003
-F80E000003F806000003F806000003F806000003F806000003F800000003F800000003F8000000
-03F800000003F800000003F800000003F800000003F800000003F800000003F8000000FFFFF000
-00FFFFF0000021257EA427>I<FFFFE0FFFFE0FFFFE0FFFFE003F80003F80003F80003F80003F8
-0003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8
-0003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003FF
-FFFFF80003FFFFFFF80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8
-0003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F8
-0003F80003F80003F80003F80003F80003F80003F80003F80003F800FFFFE0FFFFE0FFFFE0FFFF
-E02B257EA430>72 D<FFFFE0FFFFE003F80003F80003F80003F80003F80003F80003F80003F800
-03F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F800
-03F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F80003F800FFFFE0
-FFFFE013257EA417>I<FFFFF000FFFFF00003F8000003F8000003F8000003F8000003F8000003
-F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F8000003F80000
-03F8000003F8000003F8000003F8000003F8000003F8000003F8000603F8000603F8000603F800
-0C03F8000C03F8000C03F8001C03F8001C03F8003C03F8007C03F800F803F803F8FFFFFFF8FFFF
-FFF81F257EA425>76 D<FFF8000000FFF8FFFC000001FFF803FC000001FE00037E0000037E0003
-7E0000037E00037E0000037E00033F0000067E00033F0000067E00031F80000C7E00031F80000C
-7E00030FC000187E00030FC000187E000307E000307E000307E000307E000307E000307E000303
-F000607E000303F000607E000301F800C07E000301F800C07E000300FC01807E000300FC01807E
-0003007E03007E0003007E03007E0003007E03007E0003003F06007E0003003F06007E0003001F
-8C007E0003001F8C007E0003000FD8007E0003000FD8007E00030007F0007E00030007F0007E00
-030007F0007E00030003E0007E00078003E0007E00FFFC01C01FFFF8FFFC01C01FFFF835257EA4
-3A>I<FFF80007FFE0FFFC0007FFE003FE00003C0003FF00001800037F00001800033F80001800
-031FC0001800031FE0001800030FF00018000307F80018000303F80018000301FC0018000300FE
-0018000300FF00180003007F80180003003FC0180003001FC0180003000FE0180003000FF01800
-030007F81800030003FC1800030001FC1800030000FE18000300007F18000300007F9800030000
-3FD8000300001FF8000300000FF80003000007F80003000003F80003000003F80003000001F800
-03000000F800030000007800078000003800FFFC00001800FFFC000018002B257EA430>I<0003
-FF8000001FFFF000007F01FC0001FC007F0003F0001F8007E0000FC00FE0000FE01FC00007F01F
-800003F03F800003F83F800003F87F800003FC7F000001FC7F000001FCFF000001FEFF000001FE
-FF000001FEFF000001FEFF000001FEFF000001FEFF000001FEFF000001FEFF000001FE7F000001
-FC7F000001FC7F800003FC3F800003F83F800003F81FC00007F01FC00007F00FE0000FE007F000
-1FC003F8003F8001FC007F00007F01FC00001FFFF0000003FF800027257DA42E>I<FFFFFFE000
-FFFFFFFC0003F800FF0003F8003F8003F8001FC003F8001FE003F8000FE003F8000FF003F8000F
-F003F8000FF003F8000FF003F8000FF003F8000FF003F8000FE003F8001FE003F8001FC003F800
-3F8003F800FF0003FFFFFC0003FFFFE00003F800000003F800000003F800000003F800000003F8
-00000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003
-F800000003F800000003F8000000FFFFE00000FFFFE0000024257EA42A>I<FFFFFF800000FFFF
-FFF8000003F801FE000003F8007F000003F8003F800003F8001FC00003F8001FC00003F8001FE0
-0003F8001FE00003F8001FE00003F8001FE00003F8001FE00003F8001FC00003F8001FC00003F8
-003F800003F8007F000003F801FE000003FFFFF8000003FFFFC0000003F803F0000003F801F800
-0003F800FC000003F8007E000003F8007E000003F8007F000003F8007F000003F8007F000003F8
-007F000003F8007F800003F8007F800003F8007F800003F8007F806003F8003FC06003F8003FC0
-C003F8001FE1C0FFFFE00FFF80FFFFE001FE002B257EA42E>82 D<00FF008007FFE3800F80F780
-1E001F803C000F807800078078000380F8000380F8000180F8000180FC000180FC000000FF0000
-007FE000007FFF00003FFFE0003FFFF8001FFFFE0007FFFF0003FFFF80007FFF800003FFC00000
-3FC000000FE0000007E0000007E0C00003E0C00003E0C00003E0C00003C0E00003C0F00007C0F8
-000780FC000F00FFC03E00E3FFF800803FE0001B257DA422>I<7FFFFFFFF87FFFFFFFF87E00FE
-01F87800FE00787000FE00386000FE00186000FE0018E000FE001CE000FE000CC000FE000CC000
-FE000CC000FE000CC000FE000C0000FE00000000FE00000000FE00000000FE00000000FE000000
-00FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000
-0000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00
-0000FFFFFE0000FFFFFE0026247EA32B>I<FFFFC003FFE0FFFFC003FFE007F800003C0003F800
-00180003FC0000180001FC0000300001FC0000300001FE0000700000FE0000600000FF0000E000
-007F0000C000007F8000C000003F80018000003F80018000001FC0030000001FC0030000001FE0
-070000000FE0060000000FF00600000007F00C00000007F80C00000003F81800000003F8180000
-0003FC3800000001FC3000000001FE7000000000FE6000000000FF60000000007FC0000000007F
-C0000000003F80000000003F80000000003F80000000001F00000000001F00000000000E000000
-00000E0000002B257FA42E>86 D<FFFF83FFFE01FFF0FFFF83FFFE01FFF007F0001FC0000F0007
-F0001FC000060003F8000FE0000C0003F8000FE0000C0003FC000FF0001C0001FC0007F0001800
-01FC0007F000180000FE000FF800300000FE000FF800300000FE000FFC003000007F0019FC0060
-00007F0019FC006000007F8039FE00E000003F8030FE00C000003F8030FE00C000001FC0607F01
-8000001FC0607F018000001FE0607F818000000FE0C03F830000000FE0C03F830000000FF1C03F
-C700000007F1801FC600000007F1801FC600000003FB000FEC00000003FB000FEC00000003FF00
-0FFC00000001FE0007F800000001FE0007F800000001FE0007F800000000FC0003F000000000FC
-0003F000000000780001E000000000780001E000000000780001E000000000300000C000003C25
-7FA43F>I<7FFFC0FFFE007FFFC0FFFE0003FC000F800001FC0007000001FE000E000000FF000C
-0000007F80180000007F80380000003FC0700000001FE0600000001FE0C00000000FF1C0000000
-07FB8000000007FB0000000003FE0000000001FE0000000000FE0000000000FF00000000007F80
-000000007FC0000000007FC000000000DFE000000001CFF0000000038FF00000000307F8000000
-0603FC0000000E01FC0000001C01FE0000001800FF00000030007F80000070007F800000E0003F
-C00000C0001FE0000180001FE00003C0000FF000FFFC00FFFF80FFFC00FFFF8029257EA42E>I<
-07FF00001FFFC0003E03E0003F01F0003F01F8003F00FC001E00FC000000FC000000FC000000FC
-00003FFC0003FCFC000FC0FC003F00FC007E00FC007E00FC00FC00FC00FC00FC00FC00FC00FC01
-7C007E017C003F067C001FFC3FE007F01FE01B187E971E>97 D<FFC00000FFC000000FC000000F
-C000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000
-0FC000000FC3F8000FCFFE000FF81F800FE00FC00FC007E00FC007E00FC003F00FC003F00FC003
-F80FC003F80FC003F80FC003F80FC003F80FC003F80FC003F80FC003F80FC003F00FC003F00FC0
-07E00FC007C00FE00FC00F383F000E1FFE000C07F0001D267EA522>I<007FE003FFF807C07C1F
-80FC1F00FC3F00FC7E00787E0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00007E
-00007F00003F000C1F800C1FC01807E07003FFE0007F0016187E971B>I<0001FF800001FF8000
-001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80
-00001F8000001F80007F1F8003FFDF8007E0FF801F803F803F001F803F001F807E001F807E001F
-80FE001F80FE001F80FE001F80FE001F80FE001F80FE001F80FE001F80FE001F807E001F807E00
-1F803F001F803F003F801F807F800FC0FF8003FF9FF800FE1FF81D267EA522>I<007F0003FFC0
-07C1F00F80F81F00F83F007C7E007C7E007EFE007EFE007EFFFFFEFFFFFEFE0000FE0000FE0000
-7E00007E00007E00063F00061F000C0F801807E07003FFE0007F8017187E971C>I<000FC0007F
-F000F8F001F1F803F1F803E1F807E0F007E00007E00007E00007E00007E00007E00007E000FFFF
-00FFFF0007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E00007E0
-0007E00007E00007E00007E00007E00007E00007E00007E0007FFF007FFF0015267EA513>I<01
-FF07C007FFDFE00F83F1E01F01F1E03E00F8007E00FC007E00FC007E00FC007E00FC007E00FC00
-7E00FC003E00F8001F01F0000F83E0000FFFC00011FF00003000000030000000380000003C0000
-003FFFE0001FFFFC001FFFFE000FFFFF001FFFFF803C003F8078000FC0F80007C0F80007C0F800
-07C0F80007C07C000F803E001F001F807E0007FFF80000FFC0001B247E971F>I<FFC00000FFC0
-00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC000000F
-C000000FC000000FC000000FC1F8000FC7FE000FCC3F000FD01F000FF01F800FE01F800FE01F80
-0FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F
-800FC01F800FC01F800FC01F800FC01F800FC01F80FFFCFFF8FFFCFFF81D267DA522>I<0F001F
-803FC03FC03FC03FC01F800F000000000000000000000000000000FFC0FFC00FC00FC00FC00FC0
-0FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0FFF8FFF80D277E
-A611>I<001E00003F00007F80007F80007F80007F80003F00001E000000000000000000000000
-0000000000000000000001FF8001FF80001F80001F80001F80001F80001F80001F80001F80001F
-80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F
-80001F80001F80001F80001F80001F80781F80FC1F00FC3F00FC3E00787C003FF8000FE0001132
-83A613>I<FFC00000FFC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0
-00000FC000000FC000000FC000000FC000000FC000000FC07FC00FC07FC00FC01E000FC018000F
-C030000FC060000FC0C0000FC380000FC700000FCF00000FDF80000FFFC0000FE7C0000FC7E000
-0F83F0000F81F0000F80F8000F80FC000F807E000F803E000F803F000F801F80FFF8FFF0FFF8FF
-F01C267EA520>I<FFC0FFC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00F
-C00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0
-0FC0FFFCFFFC0E267EA511>I<FF81FC01FC00FF87FF07FF000F8C1F8C1F800F980F980F800FB0
-0FF00FC00FA00FE00FC00FA00FE00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00F
-C00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0
-0FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC00FC0FFFCFFFCFFFCFFFCFFFCFF
-FC2E187D9733>I<FF81F800FF87FE000F8C3F000F901F000FB01F800FA01F800FA01F800FC01F
-800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC0
-1F800FC01F800FC01F800FC01F800FC01F80FFFCFFF8FFFCFFF81D187D9722>I<007F800003FF
-F00007C0F8001F807E003F003F003F003F007E001F807E001F80FE001FC0FE001FC0FE001FC0FE
-001FC0FE001FC0FE001FC0FE001FC0FE001FC07E001F807E001F803F003F003F003F001F807E00
-0FC0FC0003FFF000007F80001A187E971F>I<FFC3F800FFCFFE000FF83F800FE00FC00FC00FE0
-0FC007E00FC007F00FC003F00FC003F80FC003F80FC003F80FC003F80FC003F80FC003F80FC003
-F80FC003F80FC007F00FC007F00FC007E00FC00FC00FE01FC00FF83F000FDFFE000FC7F0000FC0
-00000FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC00000FFFC0000FF
-FC00001D237E9722>I<FF87C0FF8FF00F98F80FB1F80FA1F80FA1F80FE0F00FC0000FC0000FC0
-000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC000FFFE
-00FFFE0015187E9719>114 D<07F9801FFF803C0F80700380F00180F00180F00180FC0000FF80
-007FFC007FFE003FFF800FFFC003FFC0001FE00003E0C001E0C001E0E001E0E001C0F003C0FC07
-80EFFF00C3FC0013187E9718>I<00600000600000600000600000E00000E00001E00001E00003
-E00007E0001FE000FFFFC0FFFFC007E00007E00007E00007E00007E00007E00007E00007E00007
-E00007E00007E00007E00007E06007E06007E06007E06007E06007E06003E0C003F0C001FF8000
-7E0013237FA218>I<FFC1FF80FFC1FF800FC01F800FC01F800FC01F800FC01F800FC01F800FC0
-1F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800FC01F800F
-C01F800FC03F800FC03F8007C07F8007E0DF8003FF9FF800FE1FF81D187D9722>I<FFF80FF8FF
-F80FF80FC003C00FE0018007E0030007E0030003F0060003F0060003F80E0001F80C0001FC1C00
-00FC180000FE1800007E3000007E3000003F6000003F6000001FC000001FC000001FC000000F80
-00000F800000070000000700001D187F9720>I<FFF9FFE0FF80FFF9FFE0FF801FC03F001C000F
-C01F0018000FC01F80180007E01F80300007E01F80300007F01FC0700003F037C0600003F037C0
-600001F877E0C00001F863E0C00001FC63F1C00000FCC1F1800000FCC1F18000007FC1FB000000
-7F80FB0000007F80FF0000003F007E0000003F007E0000001F007C0000001E003C0000001E003C
-0000000C0018000029187F972C>I<FFF83FF0FFF83FF00FC00F0007E00C0003F01C0003F83800
-01FC700000FCE000007EC000003F8000003F8000001F8000000FC000001FE000001FF0000033F8
-000071F80000E0FC0001C07E0003807F0003003F000F001F80FFC07FF8FFC07FF81D187F9720>
-I<FFF80FF8FFF80FF80FC003C00FE0018007E0030007E0030003F0060003F0060003F80E0001F8
-0C0001FC1C0000FC180000FE1800007E3000007E3000003F6000003F6000001FC000001FC00000
-1FC000000F8000000F800000070000000700000006000000060000000C0000300C0000781C0000
-FC180000FC380000FC70000078E000007FC000001F0000001D237F9720>I<3FFFF83FFFF83E03
-F03807F0300FE0700FC0701F80603F80603F00607E0000FE0000FC0001F80003F81803F01807E0
-180FE0180FC0381F80303F80707F00707E01F0FFFFF0FFFFF015187E971B>I<FFFFFFFCFFFFFF
-FC1E02808F1F>I<FFFFFFFFFFFFFFF0FFFFFFFFFFFFFFF03C02808F3D>I
-E end
-%%EndProlog
-%%BeginSetup
-%%Feature: *Resolution 300
-TeXDict begin
-%%EndSetup
-%%Page: 1 1
-bop 0 2617 a @beginspecial 72 @llx 72 @lly 504 @urx 700 @ury
-4320 @rwi @setspecial
-%%BeginDocument: ctrcover.ps
-
-gsave
- /inch { 72 mul} def
- .9 setgray
- /Helvetica-Bold findfont 130 scalefont setfont
- gsave
- 6.5 inch 7.5 inch moveto
- -90 rotate
- (cygnus) true charpath fill
- grestore
-
- gsave
- 5 inch 7.5 inch moveto
- -90 rotate
- (reports) true charpath fill
- grestore
-grestore
-%%EndDocument
- @endspecial 1696 350 a Fr(CTR)p Fq(\017\017)p Fr({)p Fq(\017\017)0
-563 y Fp(libbfd)p 277 542 1326 9 v 1359 w(DRAFT)0 870 y Fr(The)20
-b(Binary)h(File)f(Descriptor)h(Library)0 978 y(First)f(Edition|)p
-Fo(bfd)h Fr(v)n(ersion)h Fo(<)e Fr(2.0)0 1036 y(April)h(1991)0
-1850 y Fn(Stev)n(e)i(Cham)n(b)r(erlain)0 1916 y(Cygn)n(us)f(Supp)r(ort)300
-2659 y Fr(1)e(August)h(1991)p eop
-%%Page: 2 2
-bop 1328 233 a Fm(Cygn)o(us)15 b(Supp)q(ort)1288 283 y(stev)o(e@cygn)o
-(us.com)1267 333 y Fl(BFD)p Fm(,)f(Revision:)22 b(1.5)849 382
-y(T)874 392 y(E)899 382 y(Xinfo)16 b(2.50,)e(Cygn)o(us)h(TR)30
-b(Revision:)22 b(1.6)300 2085 y(Cop)o(yrigh)o(t)526 2084 y(c)514
-2085 y Fq(\015)15 b Fm(1991)f(F)l(ree)h(Soft)o(w)o(are)f(F)l(oundation,)h
-(Inc.)300 2147 y(P)o(ermission)g(is)f(gran)o(ted)f(to)h(mak)o(e)f(and)h
-(distribute)h(v)o(erbatim)f(copies)h(of)f(this)300 2197 y(man)o(ual)g(pro)o
-(vided)h(the)g(cop)o(yrigh)o(t)f(notice)h(and)f(this)h(p)q(ermission)g
-(notice)g(are)300 2247 y(preserv)o(ed)h(on)f(all)h(copies.)300
-2309 y(P)o(ermission)22 b(is)g(gran)o(ted)f(to)g(cop)o(y)g(and)h(distribute)h
-(mo)q(di\014ed)g(v)o(ersions)e(of)300 2359 y(this)f(man)o(ual)f(under)h(the)f
-(conditions)i(for)d(v)o(erbatim)h(cop)o(ying,)i(sub)s(ject)e(to)300
-2408 y(the)h(terms)f(of)g(the)g(GNU)g(General)h(Public)i(License,)g(whic)o(h)
-e(includes)i(the)300 2458 y(pro)o(vision)16 b(that)f(the)g(en)o(tire)h
-(resulting)g(deriv)o(ed)g(w)o(ork)f(is)g(distributed)i(under)300
-2508 y(the)e(terms)g(of)g(a)g(p)q(ermission)h(notice)g(iden)o(tical)h(to)e
-(this)g(one.)300 2570 y(P)o(ermission)d(is)g(gran)o(ted)f(to)f(cop)o(y)i(and)
-f(distribute)i(translations)e(of)g(this)h(man-)300 2620 y(ual)18
-b(in)o(to)f(another)g(language,)h(under)g(the)f(ab)q(o)o(v)o(e)g(conditions)i
-(for)e(mo)q(di\014ed)300 2670 y(v)o(ersions.)p eop
-%%Page: 1 3
-bop 0 -58 a Fk(Chapter)13 b(1:)k(Intro)q(duction)p 377 -66
-698 3 v 723 w(DRAFT)p 1217 -66 V 723 w Fj(1)0 183 y Fi(1)41
-b(In)n(tro)r(duction)300 299 y Fm(Simply)13 b(put,)e Fh(bfd)g
-Fm(is)g(a)g(pac)o(k)m(age)g(whic)o(h)h(allo)o(w)f(applications)i(to)d(use)h
-(the)g(same)300 349 y(routines)19 b(to)f(op)q(erate)h(on)g(ob)s(ject)f
-(\014les)i(whatev)o(er)e(the)h(ob)s(ject)f(\014le)i(format.)300
-399 y(A)15 b(di\013eren)o(t)g(ob)s(ject)g(\014le)h(format)d(can)j(b)q(e)f
-(supp)q(orted)h(simply)g(b)o(y)f(creating)g(a)300 449 y(new)g(BFD)g(bac)o(k)g
-(end)h(and)f(adding)h(it)g(to)e(the)i(library)l(.)300 512 y(BFD)f(is)g(split)
-i(in)o(to)e(t)o(w)o(o)f(parts;)g(the)h(fron)o(t)f(end)i(and)g(the)f(man)o(y)g
-(bac)o(k)g(ends.)337 575 y Fq(\017)30 b Fm(The)15 b(fron)o(t)f(end)i(of)e
-(bfd)i(pro)o(vides)f(the)g(in)o(terface)h(to)e(the)h(user.)20
-b(It)15 b(man-)390 625 y(ages)h(memory)l(,)f(and)i(v)m(arious)f(canonical)i
-(data)d(structures.)23 b(The)16 b(fron)o(t)390 675 y(end)i(also)e(decides)j
-(whic)o(h)f(bac)o(k)e(end)i(to)e(use,)h(and)g(when)h(to)e(call)i(bac)o(k)390
-725 y(end)e(routines.)337 788 y Fq(\017)30 b Fm(The)22 b(bac)o(k)g(ends)h
-(pro)o(vide)f(bfd)g(its)h(view)f(of)g(the)g(real)g(w)o(orld.)40
-b(Eac)o(h)390 837 y(bac)o(k)15 b(end)g(pro)o(vides)g(a)g(set)f(of)h(calls)h
-(whic)o(h)f(the)g(bfd)g(fron)o(t)f(end)i(can)f(use)390 887
-y(to)j(main)o(tain)i(its)f(canonical)h(form.)30 b(The)19 b(bac)o(k)g(ends)h
-(also)e(ma)o(y)h(k)o(eep)390 937 y(around)c(information)h(for)e(their)i(o)o
-(wn)e(use,)i(for)e(greater)h(e\016ciency)l(.)0 1099 y Fn(1.1)33
-b(History)300 1191 y Fm(One)12 b(spur)g(b)q(ehind)h Fh(bfd)e
-Fm(w)o(as)g(the)g(In)o(tel)i(Oregon's)e(GNU)g(960)f(team)h(desire)i(for)300
-1241 y(in)o(terop)q(erabilit)o(y)g(of)e(applications)i(on)f(their)g(COFF)f
-(and)g(b.out)g(\014le)i(formats.)300 1290 y(Cygn)o(us)i(w)o(as)f(pro)o
-(viding)i(GNU)e(supp)q(ort)h(for)g(the)g(team,)f(and)h(Cygn)o(us)f(w)o(ere)
-300 1340 y(con)o(tracted)h(to)f(pro)o(vid)i(the)f(required)h(functionalit)o
-(y)l(.)300 1403 y(The)11 b(name)h(came)f(from)f(a)h(con)o(v)o(ersation)g(Gum)
-o(b)o(y)g(W)l(allace)h(w)o(as)e(ha)o(ving)i(with)300 1453 y(Ric)o(hard)i
-(Stallman)f(ab)q(out)g(the)g(library)l(,)h(RMS)f(said)g(that)f(it)i(w)o(ould)
-f(b)q(e)g(quite)300 1503 y(hard,)i(Gum)o(b)o(y)f(said)i(BFD.)f(\(Stallman)g
-(w)o(as)g(righ)o(t,)f(but)h(the)h(name)f(stuc)o(k\).)300 1566
-y(A)o(t)f(the)g(same)g(time,)g(Ready)h(Systems)f(w)o(an)o(ted)g(m)o(uc)o(h)g
-(the)g(same)g(thing,)h(but)300 1616 y(for)20 b(di\013eren)o(t)h(ob)s(ject)f
-(\014le)i(formats,)e(IEEE-695,)i(Oasys,)f(Srecords,)h(a.out)300
-1666 y(and)15 b(68k)g(co\013.)300 1729 y(BFD)10 b(w)o(as)f(\014rst)h
-(implemen)o(ted)i(b)o(y)e(Stev)o(e)g(Cham)o(b)q(erlain)h(\(stev)o(e)p
-Fh(@)p Fm(cygn)o(us.com\),)p 1979 1740 21 46 v 300 1779 a(John)g(Gilmore)f
-(\(gn)o(u)p Fh(@)p Fm(cygn)o(us.com\),)g(K.)g(Ric)o(hard)h(Pixley)g(\(ric)o
-(h)p Fh(@)p Fm(cygn)o(us.com\))p 1979 1790 V 300 1828 a(and)g(Gum)o(b)o(y)f
-(W)l(allace)i(\(gum)o(b)o(y)p Fh(@)p Fm(cygn)o(us.com\))c(at)i(Cygn)o(us)h
-(Supp)q(ort)g(in)g(P)o(alo)300 1878 y(Alto,)k(California.)0
-2040 y Fn(1.2)33 b(Ho)n(w)21 b(It)h(W)-6 b(orks)300 2132 y
-Fm(T)l(o)15 b(use)g(the)h(library)l(,)g(include)h Fh(bfd.h)e
-Fm(and)g(link)i(with)e Fh(libbfd.a)p Fm(.)308 2195 y Fh(bfd)h
-Fm(pro)o(vides)h(a)f(common)g(in)o(terface)h(to)f(the)h(parts)e(of)h(an)h(ob)
-s(ject)f(\014le)h(to)f(a)300 2245 y(calling)h(application.)300
-2308 y(When)g(an)g(application)i(sucessfully)f(op)q(ens)g(a)e(target)g
-(\014le)i(\(ob)s(ject,)e(arc)o(hiv)o(e)300 2358 y(or)k(whatev)o(er\))g(a)h(p)
-q(oin)o(ter)h(to)e(an)h(in)o(ternal)h(structure)e(is)i(returned.)37
-b(This)300 2408 y(p)q(oin)o(ter)16 b(p)q(oin)o(ts)f(to)g(structure)g(describ)
-q(ed)i(in)g Fh(include/bfd.h)p Fm(,)c(called)k Fh(bfd)p Fm(.)300
-2457 y(Con)o(v)o(en)o(tionally)c(this)h(p)q(oin)o(ter)f(is)g(called)i(a)d
-Fh(bfd)p Fm(,)h(and)g(instances)g(of)g(it)g(within)300 2507
-y(co)q(de)19 b(are)g(called)42 b Fh(abfd)p Fm(.)31 b(All)20
-b(op)q(erations)f(on)g(the)f(target)g(ob)s(ject)g(\014le)i(are)300
-2557 y(applied)c(as)e(metho)q(ds)h(to)e(the)i Fh(bfd)p Fm(,)e(the)i(mapping)g
-(is)f(de\014ned)i(within)g Fh(bfd.h)300 2607 y Fm(in)g(a)f(set)g(of)g
-(macros,)f(all)i(b)q(eginning)h Fh(bfd)p 1027 2607 14 2 v 16
-w Fm(something.)300 2670 y(F)l(or)e(example,)g(this)h(sequence)g(w)o(ould)g
-(do)f(what)g(y)o(ou)f(exp)q(ect:)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 2 4
-bop 0 -58 a Fk(Chapter)13 b(1:)k(Intro)q(duction)p 377 -66
-698 3 v 723 w(DRAFT)p 1217 -66 V 723 w Fj(2)300 26 y Fg(\013)p
-325 26 1326 2 v 1325 w(\010)p 300 473 2 424 v 314 112 a Fh(#include)23
-b("bfd.h")314 212 y(unsigned)g(int)g(number_of_sections\(abfd\))314
-262 y(bfd)h(*abfd;)314 311 y({)362 361 y(return)f
-(bfd_count_sections\(abfd\);)314 411 y(})p 1677 473 V 300 499
-a Fg(\012)p 325 499 1326 2 v 1325 w(\011)300 613 y Fm(The)18
-b(metaphor)e(used)i(within)32 b Fh(bfd)17 b Fm(is)h(that)e(an)i(ob)s(ject)e
-(\014le)j(has)e(a)g(header,)300 663 y(a)f(n)o(um)o(bb)q(er)h(of)f(sections)h
-(con)o(taining)g(ra)o(w)e(data,)h(a)g(set)g(of)g(relo)q(cations)h(and)300
-712 y(some)i(sym)o(b)q(ol)g(information.)32 b(Also,)43 b Fh(bfd)p
-Fm(s)19 b(op)q(ened)h(up)q(on)g(arc)o(hiv)o(es)f(ha)o(v)o(e)300
-762 y(the)g(additional)i(attribute)d(of)h(an)g(index)h(and)g(con)o(tained)f
-(sub)h(bfds.)31 b(This)300 812 y(approac)o(h)12 b(is)i(\014nd)f(for)f(a.out)g
-(and)h(co\013,)f(but)h(lo)q(oses)g(e\016ciency)i(when)e(applied)300
-862 y(to)i(formats)e(suc)o(h)j(as)f(S-records)g(and)h(IEEE-695.)0
-1027 y Fn(1.3)33 b(What)23 b(BFD)f(V)-6 b(ersion)23 b(1)f(Can't)g(Do)300
-1120 y Fm(As)c(di\013eren)o(t)h(information)f(from)g(the)g(the)g(ob)s(ject)g
-(\014les)h(is)g(required,)g(BFD)300 1169 y(reads)j(from)g(di\013eren)o(t)g
-(sections)h(of)f(the)h(\014le)g(and)g(pro)q(cesses)f(them.)42
-b(F)l(or)300 1219 y(example)13 b(a)f(v)o(ery)g(common)f(op)q(eration)i(for)e
-(the)i(link)o(er)g(is)g(pro)q(cessing)g(sym)o(b)q(ol)300 1269
-y(tables.)19 b(Eac)o(h)10 b(BFD)h(bac)o(k)f(end)i(pro)o(vides)f(a)g(routine)g
-(for)f(con)o(v)o(erting)h(b)q(et)o(w)o(een)300 1319 y(the)16
-b(ob)s(ject)f(\014le's)h(represen)o(tation)g(of)f(sym)o(b)q(ols)h(and)g(an)f
-(in)o(ternal)i(canonical)300 1369 y(format.)k(When)16 b(the)g(link)o(er)h
-(asks)e(for)g(the)h(sym)o(b)q(ol)g(table)h(of)e(an)h(ob)s(ject)f(\014le,)300
-1418 y(it)j(calls)h(through)e(the)h(memory)f(p)q(oin)o(ter)h(to)f(the)g
-(relev)m(an)o(t)i(BFD)e(bac)o(k)g(end)300 1468 y(routine)k(whic)o(h)g(reads)f
-(and)h(con)o(v)o(erts)e(the)h(table)h(in)o(to)f(a)g(canonical)i(form.)300
-1518 y(The)e(link)o(er)i(then)e(op)q(erates)g(up)q(on)h(the)g(common)e(form.)
-35 b(When)20 b(the)h(link)300 1568 y(is)c(\014nished)h(and)e(the)h(link)o(er)
-g(writes)f(the)h(sym)o(b)q(ol)f(table)h(of)f(the)g(output)g(\014le,)300
-1618 y(another)10 b(BFD)g(bac)o(k)h(end)g(routine)g(is)g(called)i(whic)o(h)e
-(tak)o(es)f(the)g(newly)i(created)300 1668 y(sym)o(b)q(ol)k(table)f(and)h
-(con)o(v)o(erts)e(it)h(in)o(to)h(the)f(c)o(hosen)g(output)g(format.)0
-1816 y Fr(1.3.1)30 b(Information)19 b(Loss)300 1909 y Ff(Some)f(information)g
-(is)h(lost)f(due)g(to)g(the)g(nature)g(of)f(the)i(\014le)g(format.)27
-b Fm(The)300 1958 y(output)15 b(targets)e(supp)q(orted)i(b)o(y)g(BFD)f(do)h
-(not)f(pro)o(vide)i(iden)o(tical)g(facilities,)300 2008 y(and)e(information)f
-(whic)o(h)h(ma)o(y)f(b)q(e)h(describ)q(ed)i(in)e(one)f(form)g(has)g(no)o
-(where)h(to)300 2058 y(go)h(in)h(another)f(format.)k(One)d(example)g(of)f
-(this)h(is)g(alignmen)o(t)g(information)300 2108 y(in)62 b
-Fh(b.out)p Fm(.)40 b(There)22 b(is)g(no)o(where)g(in)g(an)62
-b Fh(a.out)21 b Fm(format)g(\014le)h(to)g(store)300 2158 y(alignmen)o(t)14
-b(information)f(on)h(the)f(con)o(tained)h(data,)f(so)f(when)i(a)f(\014le)i
-(is)e(link)o(ed)300 2208 y(from)h Fh(b.out)f Fm(and)i(an)f
-Fh(a.out)f Fm(image)i(is)g(pro)q(duced,)g(alignmen)o(t)g(information)300
-2257 y(will)20 b(not)e(propagate)f(to)h(the)g(output)g(\014le.)31
-b(\(The)18 b(link)o(er)h(will)h(still)g(use)f(the)300 2307
-y(alignmen)o(t)14 b(information)g(in)o(ternally)l(,)i(so)d(the)h(link)h(is)f
-(p)q(erformed)g(correctly\).)300 2371 y(Another)j(example)h(is)f(COFF)g
-(section)g(names.)25 b(COFF)17 b(\014les)h(ma)o(y)e(con)o(tain)300
-2421 y(an)21 b(unlimited)j(n)o(um)o(b)q(er)e(of)f(sections,)i(eac)o(h)e(one)h
-(with)g(a)f(textual)g(section)300 2471 y(name.)e(If)14 b(the)f(target)f(of)h
-(the)h(link)h(is)f(a)f(format)f(whic)o(h)i(do)q(es)f(not)g(ha)o(v)o(e)g(man)o
-(y)300 2521 y(sections)20 b(\(eg)43 b Fh(a.out)p Fm(\))19 b(or)f(has)h
-(sections)h(without)g(names)f(\(eg)g(the)g(Oasys)300 2570 y(format\))f(the)i
-(link)h(cannot)f(b)q(e)g(done)g(simply)l(.)36 b(Y)l(ou)20 b(can)f(circum)o(v)
-o(en)o(t)i(this)300 2620 y(problem)d(b)o(y)f(describing)i(the)e(desired)h
-(input-to-output)g(section)f(mapping)300 2670 y(with)f(the)f(link)o(er)h
-(command)f(language.)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 3 5
-bop 0 -58 a Fk(Chapter)13 b(1:)k(Intro)q(duction)p 377 -66
-698 3 v 723 w(DRAFT)p 1217 -66 V 723 w Fj(3)300 183 y Ff(Information)g(can)g
-(b)q(e)g(lost)g(during)g(canonicalization.)27 b Fm(The)17 b(BFD)f(in)o
-(ternal)300 233 y(canonical)k(form)d(of)h(the)g(external)h(formats)e(is)h
-(not)g(exhaustiv)o(e;)i(there)e(are)300 283 y(structures)11
-b(in)h(input)h(formats)c(for)i(whic)o(h)h(there)g(is)g(no)f(direct)h
-(represen)o(tation)300 333 y(in)o(ternally)l(.)22 b(This)16
-b(means)g(that)e(the)i(BFD)f(bac)o(k)g(ends)h(cannot)f(main)o(tain)h(all)300
-382 y(p)q(ossible)i(data)e(ric)o(hness)h(through)f(the)h(transformation)e(b)q
-(et)o(w)o(een)i(external)300 432 y(to)e(in)o(ternal)h(and)f(bac)o(k)g(to)g
-(external)g(formats.)300 495 y(This)i(limitation)g(is)f(only)h(a)f(problem)g
-(when)h(using)f(the)g(link)o(er)i(to)d(read)h(one)300 545 y(format)j(and)i
-(write)f(another.)35 b(Eac)o(h)20 b(BFD)g(bac)o(k)g(end)h(is)g(resp)q
-(onsible)i(for)300 595 y(main)o(taining)16 b(as)f(m)o(uc)o(h)h(data)e(as)h(p)
-q(ossible,)i(and)e(the)h(in)o(ternal)g(BFD)f(canon-)300 645
-y(ical)23 b(form)e(has)h(structures)g(whic)o(h)h(are)e(opaque)i(to)e(the)h
-(BFD)g(core,)h(and)300 694 y(exp)q(orted)17 b(only)h(to)e(the)h(bac)o(k)g
-(ends.)26 b(When)17 b(a)g(\014le)h(is)g(read)f(in)h(one)f(format,)300
-744 y(the)c(canonical)i(form)d(is)i(generated)f(for)g(BFD)f(and)i(the)f(link)
-o(er.)20 b(A)o(t)13 b(the)g(same)300 794 y(time,)h(the)g(bac)o(k)g(end)g(sa)o
-(v)o(es)f(a)o(w)o(a)o(y)f(an)o(y)i(information)g(whic)o(h)h(ma)o(y)e
-(otherwise)300 844 y(b)q(e)g(lost.)19 b(If)13 b(the)g(data)f(is)i(then)f
-(written)f(bac)o(k)h(in)h(the)e(same)h(format,)e(the)i(bac)o(k)300
-894 y(end)18 b(routine)h(will)g(b)q(e)g(able)f(to)f(use)i(the)e(canonical)i
-(form)f(pro)o(vided)g(b)o(y)g(the)300 943 y(BFD)d(core)g(as)g(w)o(ell)h(as)f
-(the)h(information)f(it)h(prepared)g(earlier.)21 b(Since)c(there)300
-993 y(is)d(a)f(great)g(deal)h(of)f(commonalit)o(y)g(b)q(et)o(w)o(een)h(bac)o
-(k)f(ends,)h(this)g(mec)o(hanism)g(is)300 1043 y(v)o(ery)f(useful.)20
-b(There)13 b(is)g(no)g(information)g(lost)g(for)f(this)h(reason)g(when)g
-(linking)300 1093 y(big)k(endian)h(COFF)e(to)g(little)i(endian)g(COFF,)e(or)g
-(from)25 b Fh(a.out)16 b Fm(to)25 b Fh(b.out)p Fm(.)300 1143
-y(When)c(a)f(mixture)h(of)e(formats)g(is)i(link)o(ed,)i(the)e(information)f
-(is)h(only)g(lost)300 1193 y(from)14 b(the)i(\014les)g(whose)f(format)f
-(di\013ers)h(from)g(the)g(destination.)0 1330 y Fr(1.3.2)30
-b(Mec)n(hanism)300 1422 y Fm(The)17 b(greatest)f(p)q(oten)o(tial)i(for)f
-(loss)g(of)g(information)g(is)g(when)h(there)f(is)h(least)300
-1472 y(o)o(v)o(erlap)13 b(b)q(et)o(w)o(een)g(the)g(information)g(pro)o(vided)
-h(b)o(y)f(the)g(source)g(format,)f(that)300 1522 y(stored)17
-b(b)o(y)g(the)g(canonical)i(format,)d(and)h(the)h(information)f(needed)i(b)o
-(y)e(the)300 1572 y(destination)j(format.)30 b(A)19 b(brief)h(description)g
-(of)f(the)g(canonical)h(form)f(ma)o(y)300 1622 y(help)d(y)o(ou)f(appreciate)g
-(what)f(kinds)i(of)e(data)g(y)o(ou)h(can)g(coun)o(t)f(on)h(preserving)300
-1671 y(across)f(con)o(v)o(ersions.)300 1734 y Ff(\014les)75
-b Fm(Information)21 b(on)f(target)g(mac)o(hine)i(arc)o(hitecture,)g
-(particular)f(im-)450 1784 y(plemen)o(tation)h(and)g(format)f(t)o(yp)q(e)g
-(are)h(stored)f(on)g(a)h(p)q(er-\014le)h(ba-)450 1834 y(sis.)28
-b(Other)18 b(information)g(includes)i(a)e(demand)g(pageable)g(bit)h(and)450
-1884 y(a)14 b(write)g(protected)g(bit.)20 b(Note)13 b(that)h(information)g
-(lik)o(e)h(Unix)g(magic)450 1934 y(n)o(um)o(b)q(ers)g(is)h(not)e(stored)h
-(here|only)h(the)f(magic)g(n)o(um)o(b)q(ers')g(mean-)450 1983
-y(ing,)i(so)f(a)23 b Fh(ZMAGIC)16 b Fm(\014le)h(w)o(ould)g(ha)o(v)o(e)f(b)q
-(oth)h(the)f(demand)h(pageable)450 2033 y(bit)f(and)f(the)g(write)h
-(protected)f(text)g(bit)g(set.)450 2096 y(The)i(b)o(yte)g(order)g(of)f(the)h
-(target)f(is)h(stored)g(on)g(a)f(p)q(er-\014le)j(basis,)e(so)450
-2146 y(that)12 b(big-)h(and)g(little-endian)i(ob)s(ject)d(\014les)h(ma)o(y)f
-(b)q(e)h(link)o(ed)h(with)f(one)450 2196 y(another.)300 2258
-y Ff(sections)450 2308 y Fm(Eac)o(h)18 b(section)g(in)g(the)g(input)h(\014le)
-g(con)o(tains)f(the)g(name)f(of)h(the)g(sec-)450 2358 y(tion,)c(the)h
-(original)g(address)f(in)h(the)g(ob)s(ject)e(\014le,)j(v)m(arious)e(\015ags,)
-g(size)450 2408 y(and)f(alignmen)o(t)g(information)g(and)g(p)q(oin)o(ters)g
-(in)o(to)g(other)f(BFD)h(data)450 2458 y(structures.)300 2521
-y Ff(sym)o(b)q(ols)450 2570 y Fm(Eac)o(h)h(sym)o(b)q(ol)h(con)o(tains)g(a)f
-(p)q(oin)o(ter)h(to)f(the)g(ob)s(ject)g(\014le)i(whic)o(h)f(orig-)450
-2620 y(inally)22 b(de\014ned)g(it,)f(its)f(name,)h(its)g(v)m(alue,)h(and)e(v)
-m(arious)h(\015ag)f(bits.)450 2670 y(When)14 b(a)f(BFD)g(bac)o(k)g(end)h
-(reads)g(in)g(a)f(sym)o(b)q(ol)h(table,)g(the)f(bac)o(k)g(end)0
-2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 4 6
-bop 0 -58 a Fk(Chapter)13 b(1:)k(Intro)q(duction)p 377 -66
-698 3 v 723 w(DRAFT)p 1217 -66 V 723 w Fj(4)450 183 y Fm(relo)q(cates)k(all)g
-(sym)o(b)q(ols)f(to)g(mak)o(e)g(them)g(relativ)o(e)h(to)f(the)g(base)g(of)450
-233 y(the)c(section)g(where)h(they)f(w)o(ere)f(de\014ned.)24
-b(This)16 b(ensures)h(that)e(eac)o(h)450 283 y(sym)o(b)q(ol)d(p)q(oin)o(ts)h
-(to)e(its)h(con)o(taining)h(section.)19 b(Eac)o(h)12 b(sym)o(b)q(ol)g(also)g
-(has)450 333 y(a)j(v)m(arying)h(amoun)o(t)f(of)g(hidden)j(data)d(to)g(con)o
-(tain)g(priv)m(ate)i(data)e(for)450 382 y(the)j(BFD)f(bac)o(k)g(end.)28
-b(Since)19 b(the)e(sym)o(b)q(ol)h(p)q(oin)o(ts)g(to)f(the)h(original)450
-432 y(\014le,)i(the)e(priv)m(ate)i(data)d(format)g(for)h(that)g(sym)o(b)q(ol)
-h(is)g(accessible.)450 482 y Fh(gld)13 b Fm(can)i(op)q(erate)e(on)h(a)g
-(collection)i(of)d(sym)o(b)q(ols)h(of)g(wildly)i(di\013eren)o(t)450
-532 y(formats)e(without)h(problems.)450 590 y(Normal)k(global)h(and)f(simple)
-i(lo)q(cal)f(sym)o(b)q(ols)g(are)f(main)o(tained)h(on)450 640
-y(output,)f(so)f(an)h(output)g(\014le)g(\(no)g(matter)e(its)i(format\))e
-(will)k(retain)450 690 y(sym)o(b)q(ols)14 b(p)q(oin)o(ting)g(to)f(functions)h
-(and)g(to)e(global,)i(static,)f(and)h(com-)450 740 y(mon)e(v)m(ariables.)21
-b(Some)13 b(sym)o(b)q(ol)g(information)f(is)i(not)e(w)o(orth)g(retain-)450
-789 y(ing;)k(in)j Fh(a.out)c Fm(t)o(yp)q(e)h(information)g(is)g(stored)f(in)i
-(the)e(sym)o(b)q(ol)i(table)450 839 y(as)e(long)g(sym)o(b)q(ol)h(names.)k
-(This)c(information)g(w)o(ould)f(b)q(e)h(useless)h(to)450 889
-y(most)12 b(COFF)h(debuggers)h(and)f(ma)o(y)g(b)q(e)h(thro)o(wn)f(a)o(w)o(a)o
-(y)e(with)j(appro-)450 939 y(priate)f(command)f(line)i(switc)o(hes.)20
-b(\(The)12 b(GNU)h(debugger)g Fh(gdb)f Fm(do)q(es)450 989 y(supp)q(ort)j
-Fh(a.out)g Fm(st)o(yle)g(debugging)h(information)g(in)g(COFF\).)450
-1047 y(There)21 b(is)h(one)f(w)o(ord)g(of)g(t)o(yp)q(e)g(information)g
-(within)i(the)e(sym)o(b)q(ol,)450 1097 y(so)h(if)h(the)g(format)e(supp)q
-(orts)i(sym)o(b)q(ol)g(t)o(yp)q(e)g(information)g(within)450
-1146 y(sym)o(b)q(ols)18 b(\(for)e(example)i(COFF,)e(IEEE,)h(Oasys\))g(and)h
-(the)f(t)o(yp)q(e)g(is)450 1196 y(simple)g(enough)f(to)f(\014t)g(within)i
-(one)f(w)o(ord)f(\(nearly)h(ev)o(erything)g(but)450 1246 y(aggregates\))d
-(the)j(information)f(will)i(b)q(e)f(preserv)o(ed.)300 1304
-y Ff(relo)q(cation)g(lev)o(el)450 1354 y Fm(Eac)o(h)h(canonical)h(BFD)e(relo)
-q(cation)h(record)g(con)o(tains)g(a)f(p)q(oin)o(ter)i(to)450
-1404 y(the)f(sym)o(b)q(ol)g(to)f(relo)q(cate)h(to,)f(the)g(o\013set)g(of)g
-(the)h(data)f(to)g(relo)q(cate,)450 1454 y(the)h(section)g(the)f(data)g(is)h
-(in)g(and)g(a)f(p)q(oin)o(ter)h(to)f(a)g(relo)q(cation)h(t)o(yp)q(e)450
-1503 y(descriptor.)37 b(Relo)q(cation)22 b(is)g(p)q(erformed)f(e\013ectiv)o
-(ely)h(b)o(y)e(message)450 1553 y(passing)h(through)f(the)g(relo)q(cation)h
-(t)o(yp)q(e)f(descriptor)h(and)g(sym)o(b)q(ol)450 1603 y(p)q(oin)o(ter.)44
-b(It)24 b(allo)o(ws)f(relo)q(cations)h(to)f(b)q(e)h(p)q(erformed)f(on)g
-(output)450 1653 y(data)17 b(using)i(a)e(relo)q(cation)h(metho)q(d)g(only)h
-(a)o(v)m(ailable)g(in)g(one)f(of)f(the)450 1703 y(input)j(formats.)30
-b(F)l(or)19 b(instance,)h(Oasys)f(pro)o(vides)h(a)e(b)o(yte)h(relo)q(ca-)450
-1753 y(tion)h(format.)31 b(A)20 b(relo)q(cation)g(record)f(requesting)h(this)
-g(relo)q(cation)450 1802 y(t)o(yp)q(e)e(w)o(ould)f(p)q(oin)o(t)h(indirectly)i
-(to)d(a)g(routine)h(to)f(p)q(erform)g(this,)h(so)450 1852 y(the)e(relo)q
-(cation)h(ma)o(y)e(b)q(e)i(p)q(erformed)f(on)g(a)g(b)o(yte)g(b)q(eing)h
-(written)g(to)450 1902 y(a)e(COFF)h(\014le,)g(ev)o(en)h(though)e(68k)g(COFF)h
-(has)f(no)h(suc)o(h)g(relo)q(cation)450 1952 y(t)o(yp)q(e.)300
-2010 y Ff(line)h(n)o(um)o(b)q(ers)450 2060 y Fm(Ob)s(ject)k(formats)e(can)i
-(con)o(tain,)g(for)f(debugging)i(purp)q(oses,)g(some)450 2110
-y(form)14 b(of)h(mapping)g(b)q(et)o(w)o(een)g(sym)o(b)q(ols,)g(source)g(line)
-i(n)o(um)o(b)q(ers,)e(and)450 2159 y(addresses)f(in)g(the)g(output)g(\014le.)
-20 b(These)14 b(addresses)g(ha)o(v)o(e)f(to)g(b)q(e)h(relo-)450
-2209 y(cated)h(along)g(with)h(the)f(sym)o(b)q(ol)g(information.)20
-b(Eac)o(h)15 b(sym)o(b)q(ol)h(with)450 2259 y(an)j(asso)q(ciated)g(list)g(of)
-f(line)j(n)o(um)o(b)q(er)e(records)f(p)q(oin)o(ts)h(to)g(the)f(\014rst)450
-2309 y(record)13 b(of)g(the)g(list.)20 b(The)14 b(head)g(of)e(a)h(line)i(n)o
-(um)o(b)q(er)f(list)g(consists)f(of)g(a)450 2359 y(p)q(oin)o(ter)h(to)e(the)i
-(sym)o(b)q(ol,)f(whic)o(h)h(allo)o(ws)g(divination)h(of)e(the)g(address)450
-2408 y(of)19 b(the)g(function)g(whose)g(line)i(n)o(um)o(b)q(er)e(is)g(b)q
-(eing)i(describ)q(ed.)33 b(The)450 2458 y(rest)18 b(of)h(the)g(list)g(is)g
-(made)g(up)g(of)g(pairs:)27 b(o\013sets)18 b(in)o(to)h(the)f(section)450
-2508 y(and)f(line)h(n)o(um)o(b)q(ers.)23 b(An)o(y)17 b(format)e(whic)o(h)i
-(can)g(simply)g(deriv)o(e)h(this)450 2558 y(information)13
-b(can)g(pass)g(it)g(successfully)i(b)q(et)o(w)o(een)e(formats)e(\(COFF,)450
-2608 y(IEEE)k(and)h(Oasys\).)300 2670 y(What)f(is)g(a)g(bac)o(k)o(end)0
-2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 5 7
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-680 3 v 703 w(DRAFT)p 1236 -66 V 705 w Fj(5)0 183 y Fi(2)41
-b(BFD)27 b(fron)n(t)f(end)0 396 y Fn(2.1)33 b(t)n(yp)r(edef)22
-b(bfd)300 488 y Fm(P)o(oin)o(ters)16 b(to)g(bfd)h(structs)f(are)g(the)h
-(cornerstone)f(of)h(an)o(y)f(application)i(using)300 538 y(libbfd.)33
-b(References)20 b(though)e(the)h(bfd)h(and)f(to)f(data)g(in)i(the)f(bfd)g
-(giv)o(e)g(the)300 588 y(en)o(tire)d(bfd)f(functionalit)o(y)l(.)300
-651 y(Finally!)22 b(The)15 b(BFD)g(struct)g(itself.)21 b(This)16
-b(con)o(tains)f(the)h(ma)s(jor)d(data)i(ab)q(out)300 701 y(the)g(\014le,)h
-(and)g(con)o(tains)f(p)q(oin)o(ters)g(to)g(the)g(rest)g(of)g(the)g(data.)390
-751 y Fh(struct)23 b(_bfd)390 801 y({)300 864 y Ff(The)15 b(\014lename)i(the)
-e(application)i(op)q(ened)f(the)f(bfd)h(with.)438 914 y Fh(CONST)23
-b(char)g(*filename;)300 977 y Ff(A)15 b(p)q(oin)o(ter)h(to)e(the)i(target)e
-(jump)h(table.)438 1027 y Fh(struct)23 b(bfd_target)f(*xvec;)300
-1090 y Ff(T)l(o)14 b(a)o(v)o(oid)g(dragging)g(to)q(o)g(man)o(y)g(header)h
-(\014les)g(in)o(to)f(ev)o(ery)h(\014le)g(that)g(includes)300
-1140 y(bfd.h,)f(IOSTREAM)h(has)e(b)q(een)i(declared)g(as)f(a)f
-Fh(")p Ff(c)o(har)g(*)p Fh(")p Ff(,)h(and)f(MTIME)j(as)300
-1190 y(a)e Fh(")p Ff(long)p Fh(")p Ff(.)19 b(Their)c(correct)e(t)o(yp)q(es,)h
-(to)f(whic)o(h)i(they)f(are)g(cast)f(when)i(used,)f(are)300
-1240 y Fh(")p Ff(FILE)h(*)p Fh(")g Ff(and)h Fh(")p Ff(time)p
-710 1240 14 2 v 16 w(t)p Fh(")p Ff(.)300 1303 y(The)f(iostream)g(is)h(the)f
-(result)h(of)f(an)g(fop)q(en)g(on)h(the)f(\014lename.)438 1353
-y Fh(char)23 b(*iostream;)300 1416 y Ff(Is)15 b(the)h(\014le)g(b)q(eing)g
-(cac)o(hed)g(See)g(Chapter)f(3)g([File)h(Cac)o(hing],)e(page)i(45.)438
-1466 y Fh(boolean)23 b(cacheable;)300 1529 y Ff(Marks)12 b(whether)h(there)g
-(w)o(as)g(a)f(default)i(target)e(sp)q(eci\014ed)j(when)e(the)g(bfd)h(w)o(as)
-300 1579 y(op)q(ened.)33 b(This)19 b(is)h(used)g(to)e(select)i(what)e(matc)o
-(hing)i(algorithm)f(to)f(use)i(to)300 1629 y(c)o(hose)e(the)d(bac)o(k)g(end.)
-438 1679 y Fh(boolean)23 b(target_defaulted;)300 1742 y Ff(The)15
-b(cac)o(hing)h(routines)g(use)f(these)h(to)e(main)o(tain)i(an)f(LR)o(U)h
-(list)g(of)f(bfds.)438 1792 y Fh(struct)23 b(_bfd)g(*lru_prev,)g(*lru_next;)
-300 1855 y Ff(When)e(a)f(\014le)i(is)f(closed)g(b)o(y)g(the)f(cac)o(hing)i
-(routines,)g(it)e(retains)h(the)g(state)300 1905 y(here:)438
-1955 y Fh(file_ptr)h(where;)300 2018 y Ff(and)15 b(here:)438
-2068 y Fh(boolean)23 b(opened_once;)438 2118 y(boolean)g(mtime_set;)300
-2181 y Ff(File)16 b(mo)q(di\014ed)h(time)438 2231 y Fh(long)23
-b(mtime;)300 2294 y Ff(F)l(or)15 b(output)g(\014les,)g(c)o(hannel)i(w)o(e)e
-(lo)q(c)o(k)o(ed)h(\(is)f(this)h(used?\).)390 2344 y Fh(int)23
-b(ifd;)300 2407 y Ff(The)15 b(format)f(whic)o(h)i(b)q(elongs)g(to)f(the)g
-(bfd.)438 2457 y Fh(bfd_format)22 b(format;)300 2521 y Ff(The)15
-b(direction)i(the)e(bfd)h(w)o(as)e(op)q(ened)i(with)438 2570
-y Fh(enum)23 b(bfd_direction)f({no_direction)g(=)i(0,)939 2620
-y(read_direction)e(=)i(1,)939 2670 y(write_direction)e(=)h(2,)0
-2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 6 8
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-680 3 v 703 w(DRAFT)p 1236 -66 V 705 w Fj(6)939 183 y Fh(both_direction)22
-b(=)i(3})f(direction;)300 246 y Ff(F)l(ormat)p 449 246 14 2
-v 15 w(sp)q(eci\014c)17 b(\015ags)438 296 y Fh(flagword)22
-b(flags;)300 359 y Ff(Curren)o(tly)d(m)o(y)p 575 359 V 16 w(arc)o(hiv)o(e)f
-(is)i(tested)e(b)q(efore)h(adding)g(origin)g(to)f(an)o(ything.)31
-b(I)300 409 y(b)q(eliev)o(e)16 b(that)e(this)g(can)h(b)q(ecome)f(alw)o(a)o
-(ys)g(an)g(add)g(of)g(origin,)h(with)f(origin)h(set)300 458
-y(to)g(0)f(for)h(non)g(arc)o(hiv)o(e)h(\014les.)438 508 y Fh(file_ptr)22
-b(origin;)300 571 y Ff(Remem)o(b)q(er)11 b(when)g(output)f(has)g(b)q(egun,)i
-(to)e(stop)f(strange)h(things)h(happ)q(ening.)438 621 y Fh(boolean)23
-b(output_has_begun;)300 684 y Ff(P)o(oin)o(ter)15 b(to)f(link)o(ed)j(list)f
-(of)f(sections)438 734 y Fh(struct)23 b(sec)47 b(*sections;)300
-797 y Ff(The)15 b(n)o(um)o(b)q(er)h(of)f(sections)438 846 y
-Fh(unsigned)22 b(int)i(section_count;)300 909 y Ff(Stu\013)15
-b(only)h(usefull)h(for)d(ob)s(ject)h(\014les:)21 b(The)16 b(start)e(address.)
-438 959 y Fh(bfd_vma)23 b(start_address;)300 1022 y Ff(Used)16
-b(for)e(input)i(and)g(output)438 1072 y Fh(unsigned)22 b(int)i(symcount;)300
-1135 y Ff(Sym)o(tab)15 b(for)f(output)h(bfd)438 1184 y Fh(struct)23
-b(symbol_cache_entry)45 b(**outsymbols;)300 1247 y Ff(Arc)o(hitecture)16
-b(of)f(ob)s(ject)f(mac)o(hine,)i(eg)f(m68k)438 1297 y Fh(enum)23
-b(bfd_architecture)f(obj_arch;)300 1360 y Ff(P)o(articular)15
-b(mac)o(hine)h(within)h(arc)o(h,)d(e.g.)20 b(68010)438 1410
-y Fh(unsigned)i(long)i(obj_machine;)300 1473 y Ff(Stu\013)15
-b(only)h(usefull)h(for)d(arc)o(hiv)o(es:)438 1523 y Fh(PTR)23
-b(arelt_data;)438 1572 y(struct)g(_bfd)g(*my_archive;)438 1622
-y(struct)g(_bfd)g(*next;)438 1672 y(struct)g(_bfd)g(*archive_head;)438
-1722 y(boolean)g(has_armap;)300 1785 y Ff(Used)16 b(b)o(y)f(the)g(bac)o(k)g
-(end)h(to)f(hold)h(priv)m(ate)f(data.)438 1834 y Fh(PTR)23
-b(tdata;)300 1897 y Ff(Used)16 b(b)o(y)f(the)g(application)i(to)d(hold)i
-(priv)m(ate)g(data)438 1947 y Fh(PTR)23 b(usrdata;)300 2010
-y Ff(Where)15 b(all)h(the)g(allo)q(cated)g(stu\013)e(under)i(this)g(BFD)f(go)
-q(es)438 2060 y Fh(struct)23 b(obstack)g(memory;)390 2110 y(};)0
-2248 y Fr(2.1.0.1)30 b(bfd)p 296 2248 19 3 v 22 w(set)p 394
-2248 V 22 w(start)p 543 2248 V 22 w(address)300 2340 y Fm(Marks)15
-b(the)i(en)o(try)e(p)q(oin)o(t)i(of)f(an)g(output)g(bfd.)23
-b(Returns)g Fh(true)15 b Fm(on)h(success,)300 2390 y Fh(false)e
-Fm(otherwise.)390 2440 y Fh(PROTO\(boolean,)22 b(bfd_set_start_address,\(bfd)
-e(*,)k(bfd_vma\)\);)p 2002 2446 21 38 v 0 2578 a Fr(2.1.0.2)30
-b(bfd)p 296 2578 19 3 v 22 w(get)p 401 2578 V 21 w(m)n(time)300
-2670 y Fm(Return)25 b(cac)o(hed)f(\014le)i(mo)q(di\014cation)f(time)f(\(e.g.)
-46 b(as)24 b(read)g(from)g(arc)o(hiv)o(e)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)
-36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 7 9
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-680 3 v 703 w(DRAFT)p 1236 -66 V 705 w Fj(7)300 183 y Fm(header)23
-b(for)f(arc)o(hiv)o(e)g(mem)o(b)q(ers,)i(or)e(from)g(\014le)h(system)f(if)h
-(w)o(e)f(ha)o(v)o(e)g(b)q(een)300 233 y(called)17 b(b)q(efore\);)e(else)h
-(determine)g(mo)q(dify)g(time,)f(cac)o(he)g(it,)g(and)h(return)f(it.)390
-283 y Fh(PROTO\(long,)22 b(bfd_get_mtime,)g(\(bfd)i(*\)\);)0
-416 y Fr(2.1.0.3)30 b(stu\013)300 475 y Fg(\013)p 325 475 1326
-2 v 1325 w(\010)p 300 2068 2 1570 v 314 611 a Fh(#define)23
-b(bfd_sizeof_headers\(abfd,)e(reloc\))i(\\)433 661 y(BFD_SEND)g(\(abfd,)g
-(_bfd_sizeof_headers,)e(\(abfd,)i(reloc\)\))314 760 y(#define)g
-(bfd_find_nearest_line\(abfd)o(,)e(section,)i(symbols,)g(off-)314
-810 y(set,)g(filename_ptr,)g(func,)g(line_ptr\))f(\\)433 860
-y(BFD_SEND)h(\(abfd,)g(_bfd_find_nearest_line,)45 b(\(abfd,)23
-b(sec-)314 910 y(tion,)g(symbols,)g(offset,)g(filename_ptr,)f(func,)h
-(line_ptr\)\))314 1009 y(#define)g(bfd_debug_info_start\(abfd\))d(\\)505
-1059 y(BFD_SEND)j(\(abfd,)g(_bfd_debug_info_start,)e(\(abfd\)\))314
-1159 y(#define)i(bfd_debug_info_end\(abfd\))e(\\)505 1209 y(BFD_SEND)i
-(\(abfd,)g(_bfd_debug_info_end,)e(\(abfd\)\))314 1308 y(#define)i
-(bfd_debug_info_accumulate\()o(abfd,)e(section\))h(\\)505 1358
-y(BFD_SEND)h(\(abfd,)g(_bfd_debug_info_accumulat)o(e,)e(\(abfd,)314
-1408 y(section\)\))314 1507 y(#define)i(bfd_stat_arch_elt\(abfd,)e(stat\))i
-(\\)505 1557 y(BFD_SEND)g(\(abfd,)g(_bfd_stat_arch_elt,\(abfd,)d(stat\)\))314
-1657 y(#define)j(bfd_coff_swap_aux_in\(a,e,t)o(,c,i\))e(\\)505
-1707 y(BFD_SEND)i(\(a,)g(_bfd_coff_swap_aux_in,)e(\(a,e,t,c,i\)\))314
-1806 y(#define)i(bfd_coff_swap_sym_in\(a,e,i)o(\))e(\\)505
-1856 y(BFD_SEND)i(\(a,)g(_bfd_coff_swap_sym_in,)e(\(a,e,i\)\))314
-1956 y(#define)i(bfd_coff_swap_lineno_in\(a,)o(e,i\))e(\\)505
-2006 y(BFD_SEND)i(\()h(a,)f(_bfd_coff_swap_lineno_in,)e(\(a,e,i\)\))p
-1677 2068 V 300 2094 a Fg(\012)p 325 2094 1326 2 v 1325 w(\011)0
-2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 8 10
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-680 3 v 703 w(DRAFT)p 1236 -66 V 705 w Fj(8)0 183 y Fn(2.2)33
-b(Memory)22 b(Usage)300 277 y Fm(BFD)17 b(k)o(eeps)h(all)h(its)f(in)o(ternal)
-g(structures)g(in)g(obstac)o(ks.)27 b(There)18 b(is)g(one)g(ob-)300
-327 y(stac)o(k)c(p)q(er)g(op)q(en)i(bfd)e(\014le,)i(in)o(to)e(whic)o(h)h(the)
-g(curren)o(t)f(state)g(is)g(stored.)20 b(When)300 376 y(a)c(bfd)h(is)h
-(closed,)f(the)g(obstac)o(k)f(is)h(deleted,)h(and)f(so)f(ev)o(erything)i
-(whic)o(h)f(has)300 426 y(b)q(een)f(allo)q(cated)h(b)o(y)e(libbfd)i(for)d
-(the)i(closing)g(\014le)g(will)h(b)q(e)f(thro)o(wn)e(a)o(w)o(a)o(y)l(.)300
-491 y(BFD)j(will)h(not)f(free)g(an)o(ything)g(created)h(b)o(y)f(an)g
-(application,)h(but)g(p)q(oin)o(ters)300 540 y(in)o(to)d(bfd)g(structures)g
-(will)h(b)q(e)g(in)o(v)m(alidated)h(on)d(a)h Fh(bfd_close)p
-Fm(;)e(for)h(example,)300 590 y(after)h(a)k Fh(bfd_close)c
-Fm(the)g(v)o(ector)g(passed)h(to)j Fh(bfd_canonicalize_symtab)300
-640 y Fm(will)h(still)g(b)q(e)f(around,)f(since)i(it)e(has)g(b)q(een)i(allo)q
-(cated)f(b)o(y)f(the)h(application,)300 690 y(but)c(the)h(data)e(that)h(it)g
-(p)q(oin)o(ted)h(to)f(will)i(b)q(e)f(lost.)300 754 y(The)g(general)g(rule)g
-(is)g(not)f(to)g(close)i(a)e(bfd)h(un)o(til)g(all)h(op)q(erations)e(dep)q
-(enden)o(t)300 804 y(up)q(on)j(data)g(from)f(the)g(bfd)i(ha)o(v)o(e)e(b)q
-(een)i(completed,)g(or)e(all)i(the)f(data)f(from)300 854 y(within)k(the)f
-(\014le)h(has)e(b)q(een)i(copied.)35 b(T)l(o)19 b(help)i(with)g(the)e
-(managemen)o(t)g(of)300 904 y(memory)l(,)g(there)g(is)h(a)e(function)i(\()i
-Fh(bfd_alloc_size)p Fm(\))16 b(whic)o(h)k(returns)f(the)300
-953 y(n)o(um)o(b)q(er)e(of)f(b)o(ytes)g(in)h(obstac)o(ks)f(asso)q(ciated)g
-(with)h(the)g(supplied)h(bfd.)24 b(This)300 1003 y(could)15
-b(b)q(e)f(used)g(to)g(select)g(the)g(greediest)g(op)q(en)h(bfd,)f(close)g(it)
-g(to)f(reclaim)i(the)300 1053 y(memory)l(,)f(p)q(erform)g(some)h(op)q
-(eration)g(and)g(reop)q(en)g(the)g(bfd)g(again,)f(to)g(get)g(a)300
-1103 y(fresh)h(cop)o(y)g(of)g(the)g(data)g(structures.)0 1276
-y Fn(2.3)33 b(Sections)300 1370 y Fm(Sections)16 b(are)f(supp)q(orted)h(in)g
-(bfd)f(in)h Fh(section.c)p Fm(.)300 1434 y(The)f(ra)o(w)f(data)g(con)o
-(tained)h(within)h(a)f(bfd)g(is)g(main)o(tained)h(through)f(the)g(sec-)300
-1484 y(tion)f(abstraction.)19 b(A)13 b(single)i(bfd)f(ma)o(y)f(ha)o(v)o(e)g
-(an)o(y)h(n)o(um)o(b)q(er)g(of)f(sections,)h(and)300 1534 y(k)o(eeps)k(hold)h
-(of)e(them)h(b)o(y)g(p)q(oin)o(ting)h(to)e(the)h(\014rst,)g(eac)o(h)g(one)g
-(p)q(oin)o(ts)h(to)e(the)300 1584 y(next)e(in)h(the)g(list.)0
-1736 y Fr(2.3.1)30 b(Section)20 b(Input)300 1829 y Fm(When)15
-b(a)f(bfd)h(is)g(op)q(ened)g(for)f(reading,)h(the)g(section)g(structures)f
-(are)g(created)300 1879 y(and)h(attatc)o(hed)g(to)f(the)i(bfd.)300
-1943 y(Eac)o(h)h(section)g(has)g(a)f(name)h(whic)o(h)h(describ)q(es)g(the)f
-(section)h(in)f(the)g(outside)300 1993 y(w)o(orld)i(-)g(for)f(example,)44
-b Fh(a.out)18 b Fm(w)o(ould)h(con)o(tain)g(at)g(least)g(three)g(sections,)300
-2043 y(called)e Fh(.text)p Fm(,)d Fh(.data)g Fm(and)i Fh(.bss)p
-Fm(.)300 2107 y(Sometimes)e(a)g(bfd)g(will)i(con)o(tain)e(more)f(than)h(the)g
-('natural')f(n)o(um)o(b)q(er)h(of)g(sec-)300 2157 y(tions.)20
-b(A)13 b(bac)o(k)h(end)h(ma)o(y)e(attatc)o(h)f(other)i(sections)g(con)o
-(taining)h(constructor)300 2207 y(data,)h(or)g(an)g(application)i(ma)o(y)e
-(add)h(a)f(section)h(\(using)g(bfd)p 1362 2207 14 2 v 17 w(mak)o(e)p
-1483 2207 V 16 w(section\))300 2257 y(to)f(the)h(sections)g(attatc)o(hed)f
-(to)h(an)f(already)h(op)q(en)h(bfd.)25 b(F)l(or)16 b(example,)i(the)300
-2307 y(link)o(er)d(creates)f(a)g(sup)q(ern)o(umary)g(section)g
-Fh(COMMON)g Fm(for)f(eac)o(h)h(input)h(\014le's)g(bfd)300 2357
-y(to)g(hold)h(information)f(ab)q(out)g(common)g(storage.)300
-2421 y(The)22 b(ra)o(w)f(data)h(is)g(not)g(necessarily)h(read)f(in)h(at)e
-(the)h(same)g(time)g(as)g(the)300 2471 y(section)f(descriptor)f(is)h
-(created.)35 b(Some)20 b(targets)f(ma)o(y)g(lea)o(v)o(e)h(the)h(data)e(in)300
-2521 y(place)e(un)o(til)g(a)i Fh(bfd_get_section_contents)13
-b Fm(call)k(is)f(made.)22 b(Other)16 b(bac)o(k)300 2570 y(ends)f(ma)o(y)e
-(read)h(in)h(all)h(the)e(data)f(at)h(once)g(-)h(F)l(or)e(example;)i(an)f
-(S-record)h(\014le)300 2620 y(has)g(to)f(b)q(e)i(read)e(once)i(to)e
-(determine)i(the)f(size)h(of)e(the)h(data.)k(An)c(IEEE-695)300
-2670 y(\014le)22 b(do)q(esn't)f(con)o(tain)h(ra)o(w)e(data)g(in)i(sections,)h
-(but)e(data)g(and)g(relo)q(cation)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 9 11
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-680 3 v 703 w(DRAFT)p 1236 -66 V 705 w Fj(9)300 183 y Fm(expressions)j(in)o
-(termixed,)g(so)e(the)h(data)f(area)h(has)g(to)f(b)q(e)h(parsed)h(to)e(get)g
-(out)300 233 y(the)h(data)g(and)g(relo)q(cations.)0 368 y Fr(2.3.2)30
-b(Section)20 b(Output)300 459 y Fm(T)l(o)i(write)g(a)f(new)h(ob)s(ject)g(st)o
-(yle)g(bfd,)h(the)f(v)m(arious)h(sections)f(to)f(b)q(e)i(writ-)300
-509 y(ten)j(ha)o(v)o(e)f(to)g(b)q(e)h(created.)52 b(They)26
-b(are)f(attatc)o(hed)g(to)g(the)g(bfd)h(in)h(the)300 559 y(same)19
-b(w)o(a)o(y)g(as)g(input)i(sections,)f(data)f(is)h(written)g(to)f(the)h
-(sections)g(using)300 608 y Fh(bfd_set_section_contents)p Fm(.)300
-671 y(The)d(link)o(er)h(uses)g(the)f(\014elds)29 b Fh(output_section)15
-b Fm(and)27 b Fh(output_offset)16 b Fm(to)300 721 y(create)f(an)g(output)g
-(\014le.)300 783 y(The)i(data)g(to)g(b)q(e)g(written)h(comes)f(from)f(input)i
-(sections)g(attatc)o(hed)e(to)h(the)300 833 y(output)h(sections.)30
-b(The)18 b(output)g(section)h(structure)f(can)h(b)q(e)g(considered)g(a)300
-883 y(\014lter)14 b(for)f(the)h(input)h(section,)f(the)g(output)f(section)i
-(determines)f(the)g(vma)f(of)300 933 y(the)h(output)h(data)e(and)i(the)f
-(name,)g(but)h(the)f(input)i(section)f(determines)g(the)300
-982 y(o\013set)f(in)o(to)h(the)h(output)f(section)g(of)g(the)g(data)g(to)g(b)
-q(e)g(written.)300 1045 y(Eg)e(to)f(create)h(a)f(section)i
-Fh(")p Fm(O)p Fh(")p Fm(,)f(starting)f(at)g(0x100,)g(0x123)g(long,)h(con)o
-(taining)300 1095 y(t)o(w)o(o)19 b(subsections,)j Fh(")p Fm(A)p
-Fh(")e Fm(at)g(o\013set)g(0x0)f(\(ie)i(at)f(vma)g(0x100\))f(and)h
-Fh(")p Fm(B)p Fh(")h Fm(at)300 1144 y(o\013set)14 b(0x20)h(\(ie)g(at)g(vma)f
-(0x120\))g(the)h(structures)g(w)o(ould)h(lo)q(ok)f(lik)o(e:)300
-1186 y Fg(\013)p 325 1186 1326 2 v 1325 w(\010)p 300 1832 2
-623 v 386 1322 a Fh(section)23 b(name)238 b("A")433 1372 y(output_offset)70
-b(0x00)433 1422 y(size)286 b(0x20)433 1471 y(output_section)22
-b(----------->)46 b(section)23 b(name)95 b("O")1006 1521 y(|)g(vma)310
-b(0x100)386 1571 y(section)23 b(name)238 b("B")23 b(|)95 b(size)286
-b(0x123)433 1621 y(output_offset)70 b(0x20)95 b(|)433 1671
-y(size)286 b(0x103)71 b(|)433 1720 y(output_section)46 b(--------|)p
-1677 1832 V 300 1858 a Fg(\012)p 325 1858 1326 2 v 1325 w(\011)0
-2042 y Fr(2.3.3)30 b(t)n(yp)r(edef)20 b(asection)300 2134 y
-Fm(The)15 b(shap)q(e)h(of)f(a)g(section)h(struct:)390 2184
-y Fh(typedef)23 b(struct)g(sec)g({)300 2246 y Ff(The)c(name)f(of)g(the)g
-(section,)h(the)g(name)f(isn't)g(a)g(cop)o(y)l(,)h(the)f(p)q(oin)o(ter)h(is)i
-(the)300 2296 y(same)15 b(as)g(that)f(passed)i(to)e(bfd)p 835
-2296 14 2 v 17 w(mak)o(e)p 956 2296 V 16 w(section.)485 2346
-y Fh(CONST)24 b(char)f(*name;)300 2408 y Ff(The)15 b(next)h(section)f(in)i
-(the)e(list)h(b)q(elonging)h(to)d(the)h(bfd,)h(or)e(NULL.)485
-2458 y Fh(struct)23 b(sec)h(*next;)300 2521 y Ff(The)14 b(\014eld)h(\015ags)f
-(con)o(tains)g(attributes)f(of)h(the)g(section.)19 b(Some)14
-b(of)g(these)i(\015ags)300 2570 y(are)d(read)h(in)g(from)f(the)h(ob)s(ject)f
-(\014le,)h(and)g(some)f(are)h(syn)o(thesized)g(from)f(other)300
-2620 y(information.)390 2670 y Fh(flagword)23 b(flags;)0 2770
-y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 10 12
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(10)390 183 y Fh(#define)23
-b(SEC_NO_FLAGS)70 b(0x000)300 246 y Ff(T)l(ells)22 b(the)e(OS)h(to)e(allo)q
-(cate)i(space)f(for)g(this)g(section)h(when)g(loaded.)35 b(This)300
-296 y(w)o(ould)16 b(clear)f(for)g(a)g(section)h(con)o(taining)f(debug)h
-(information)g(only)l(.)390 346 y Fh(#define)23 b(SEC_ALLOC)142
-b(0x001)300 409 y Ff(T)l(ells)21 b(the)f(OS)g(to)f(load)h(the)f(section)h
-(from)f(the)h(\014le)g(when)g(loading.)34 b(This)300 458 y(w)o(ould)16
-b(b)q(e)f(clear)h(for)f(a)g(.bss)f(section)390 508 y Fh(#define)23
-b(SEC_LOAD)166 b(0x002)300 571 y Ff(The)15 b(section)f(con)o(tains)h(data)f
-(still)h(to)f(b)q(e)h(relo)q(cated,)g(so)f(there)g(will)i(b)q(e)f(some)300
-621 y(relo)q(cation)h(information)f(to)q(o.)390 671 y Fh(#define)23
-b(SEC_RELOC)142 b(0x004)300 733 y Ff(Obsolete)16 b(?)390 783
-y Fh(#define)23 b(SEC_BALIGN)118 b(0x008)300 846 y Ff(A)15
-b(signal)h(to)f(the)g(OS)h(that)e(the)i(section)f(con)o(tains)h(read)f(only)h
-(data.)390 896 y Fh(#define)23 b(SEC_READONLY)70 b(0x010)300
-959 y Ff(The)15 b(section)h(con)o(tains)f(co)q(de)h(only)l(.)390
-1009 y Fh(#define)23 b(SEC_CODE)166 b(0x020)300 1071 y Ff(The)15
-b(section)h(con)o(tains)f(data)g(only)l(.)390 1121 y Fh(#define)23
-b(SEC_DATA)190 b(0x040)300 1184 y Ff(The)15 b(section)h(will)h(reside)f(in)g
-(R)o(OM.)390 1234 y Fh(#define)23 b(SEC_ROM)190 b(0x080)300
-1297 y Ff(The)19 b(section)g(con)o(tains)g(constructor)e(information.)31
-b(This)19 b(section)g(t)o(yp)q(e)f(is)300 1347 y(used)13 b(b)o(y)g(the)f
-(link)o(er)i(to)e(create)g(lists)h(of)f(constructors)g(and)h(destructors)g
-(used)300 1396 y(b)o(y)34 b Fh(g++)p Ff(.)27 b(When)18 b(a)g(bac)o(k)g(end)g
-(sees)g(a)g(sym)o(b)q(ol)g(whic)o(h)h(should)f(b)q(e)h(used)h(in)300
-1446 y(a)15 b(constructor)f(list,)i(it)g(creates)f(a)g(new)g(section)h(for)f
-(the)g(t)o(yp)q(e)g(of)g(name)j(\(eg)300 1496 y Fh(__CTOR_LIST__)p
-Ff(\),)12 b(attatc)o(hes)i(the)g(sym)o(b)q(ol)h(to)f(it)h(and)g(builds)h(a)f
-(relo)q(cation.)300 1546 y(T)l(o)g(build)i(the)e(lists)g(of)g(constructors,)f
-(all)i(the)f(link)o(er)h(has)f(to)h(to)f(is)g(catenate)300
-1596 y(all)e(the)g(sections)g(called)g Fh(__CTOR_LIST__)e Ff(and)j(relo)q
-(cte)f(the)g(data)e(con)o(tained)300 1645 y(within)16 b(-)g(exactly)f(the)h
-(op)q(erations)f(it)g(w)o(ould)j(p)q(eform)d(on)g(standard)g(data.)390
-1695 y Fh(#define)23 b(SEC_CONSTRUCTOR)f(0x100)300 1758 y Ff(The)17
-b(section)g(is)f(a)g(constuctor,)g(and)h(should)g(b)q(e)g(placed)h(at)d(the)i
-(end)g(of)f(the)300 1808 y(..)390 1858 y Fh(#define)23 b
-(SEC_CONSTRUCTOR_TEXT)e(0x1100)390 1907 y(#define)i(SEC_CONSTRUCTOR_DATA)e
-(0x2100)390 1957 y(#define)i(SEC_CONSTRUCTOR_BSS)45 b(0x3100)300
-2020 y Ff(The)21 b(section)g(has)f(con)o(ten)o(ts)g(-)g(a)g(bss)h(section)g
-(could)g(b)q(e)55 b Fh(SEC_ALLOC)19 b(|)300 2070 y(SEC_HAS_CONTENTS)p
-Ff(,)13 b(a)h(debug)i(section)g(could)g(b)q(e)j Fh(SEC_HAS_CONTENTS)390
-2120 y(#define)k(SEC_HAS_CONTENTS)f(0x200)300 2183 y Ff(An)d(instruction)g
-(to)f(the)g(link)o(er)i(not)e(to)f(output)i(sections)f(con)o(taining)24
-b(this)300 2232 y(\015ag)14 b(ev)o(en)h(if)g(they)g(ha)o(v)o(e)f(information)
-h(whic)o(h)g(w)o(ould)g(normally)g(b)q(e)g(written.)390 2282
-y Fh(#define)23 b(SEC_NEVER_LOAD)f(0x400)300 2345 y Ff(The)15
-b(base)h(address)f(of)g(the)g(section)h(in)g(the)f(address)g(space)h(of)f
-(the)g(target.)462 2395 y Fh(bfd_vma)22 b(vma;)300 2458 y Ff(The)16
-b(size)g(of)g(the)f(section)i(in)f(b)o(ytes)f(of)h(the)f(loaded)i(section.)22
-b(This)16 b(con)o(tains)300 2508 y(a)f(v)m(alue)h(ev)o(en)g(if)g(the)f
-(section)h(has)f(no)g(con)o(ten)o(ts)f(\(eg,)h(the)g(size)h(of)f
-Fh(.bss)p Ff(\).)462 2557 y Fh(bfd_size_type)22 b(size;)300
-2620 y Ff(If)14 b(this)h(section)g(is)f(going)g(to)g(b)q(e)h(output,)e(then)i
-(this)f(v)m(alue)i(is)e(the)j(o\013set)c(in)o(to)300 2670 y(the)k(output)g
-(section)g(of)g(the)g(\014rst)f(b)o(yte)h(in)h(the)f(input)i(section.)25
-b(Eg,)17 b(if)h(this)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 11 13
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(11)300 183 y Ff(w)o(as)g(going)g
-(to)g(start)f(at)h(the)g(100th)g(b)o(yte)g(in)i(the)h(output)d(section,)h
-(this)g(v)m(alue)300 233 y(w)o(ould)i(b)q(e)f(100.)462 283
-y Fh(bfd_vma)22 b(output_offset;)300 350 y Ff(The)15 b(output)g(section)h
-(through)f(whic)o(h)h(to)f(map)g(on)g(output.)462 400 y Fh(struct)23
-b(sec)g(*output_section;)300 467 y Ff(The)f(alignmen)o(t)g(requiremen)o(t)g
-(of)g(the)f(section,)j(as)d(an)h(exp)q(onen)o(t)g(-)g(eg)f(3)300
-517 y(aligns)16 b(to)f(2)p Fh(^)p Ff(3)f(\(or)g(8\))462 567
-y Fh(unsigned)22 b(int)i(alignment_power;)300 634 y Ff(If)14
-b(an)f(input)h(section,)g(a)f(p)q(oin)o(ter)h(to)e(a)h(v)o(ector)g(of)g(relo)
-q(cation)h(records)f(for)j(the)300 684 y(data)f(in)h(this)f(section.)462
-733 y Fh(struct)23 b(reloc_cache_entry)e(*relocation;)300 801
-y Ff(If)c(an)g(output)g(section,)h(a)f(p)q(oin)o(ter)h(to)e(a)h(v)o(ector)f
-(of)h(p)q(oin)o(ters)g(to)i(relo)q(cation)300 850 y(records)c(for)g(the)g
-(data)f(in)i(this)g(section.)462 900 y Fh(struct)23 b(reloc_cache_entry)e
-(**orelocation;)300 967 y Ff(The)15 b(n)o(um)o(b)q(er)h(of)f(relo)q(cation)h
-(records)f(in)h(one)f(of)g(the)g(ab)q(o)o(v)o(e)462 1017 y
-Fh(unsigned)22 b(reloc_count;)300 1084 y Ff(Whic)o(h)16 b(section)g(is)f(it)h
-(0..n)o(th)462 1134 y Fh(int)23 b(index;)300 1201 y Ff(Information)15
-b(b)q(elo)o(w)h(is)g(bac)o(k)f(end)h(sp)q(eci\014c)i(-)d(and)h(not)f(alw)o(a)
-o(ys)f(used)i(or)i(up-)300 1251 y(dated)300 1318 y(File)e(p)q(osition)h(of)d
-(section)i(data)462 1368 y Fh(file_ptr)22 b(filepos;)300 1435
-y Ff(File)16 b(p)q(osition)h(of)d(relo)q(cation)i(info)462
-1485 y Fh(file_ptr)22 b(rel_filepos;)300 1552 y Ff(File)16
-b(p)q(osition)h(of)d(line)j(data)462 1602 y Fh(file_ptr)22
-b(line_filepos;)300 1669 y Ff(P)o(oin)o(ter)15 b(to)f(data)h(for)g
-(applications)462 1719 y Fh(PTR)23 b(userdata;)462 1769 y(struct)g
-(lang_output_section)e(*otheruserdata;)300 1836 y Ff(A)o(ttac)o(hed)15
-b(line)i(n)o(um)o(b)q(er)e(information)462 1886 y Fh(alent)23
-b(*lineno;)300 1953 y Ff(Num)o(b)q(er)16 b(of)e(line)j(n)o(um)o(b)q(er)f
-(records)462 2003 y Fh(unsigned)22 b(int)i(lineno_count;)300
-2070 y Ff(When)14 b(a)e(section)i(is)g(b)q(eing)h(output,)e(this)g(v)m(alue)i
-(c)o(hanges)e(as)g(more)i(linen)o(um-)300 2120 y(b)q(ers)h(are)e(written)i
-(out)462 2170 y Fh(file_ptr)22 b(moving_line_filepos;)300 2237
-y Ff(what)15 b(the)g(section)h(n)o(um)o(b)q(er)f(is)h(in)g(the)f(target)f(w)o
-(orld)462 2287 y Fh(unsigned)22 b(int)i(target_index;)462 2336
-y(PTR)f(used_by_bfd;)300 2404 y Ff(If)18 b(this)g(is)g(a)g(constructor)e
-(section)j(then)f(here)g(is)g(a)f(list)i(of)e(the)j(relo)q(cations)300
-2453 y(created)15 b(to)g(relo)q(cate)g(items)h(within)g(it.)462
-2503 y Fh(struct)23 b(relent_chain)f(*constructor_chain;)300
-2570 y Ff(The)15 b(bfd)h(whic)o(h)g(o)o(wns)f(the)g(section.)462
-2620 y Fh(bfd)23 b(*owner;)390 2670 y(})h(asection)e(;)0 2770
-y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 12 14
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(12)0 183 y Fr(2.3.4)30
-b(section)20 b(protot)n(yp)r(es)0 346 y(2.3.4.1)30 b(bfd)p
-296 346 19 3 v 22 w(get)p 401 346 V 21 w(section)p 607 346
-V 22 w(b)n(y)p 693 346 V 23 w(name)300 437 y Fm(Runs)19 b(through)g(the)f
-(pro)o(vided)i Ff(abfd)g Fm(and)f(returns)f(the)39 b Fh(asection)18
-b Fm(who's)300 487 y(name)c(matc)o(hes)g(that)g(pro)o(vided,)h(otherwise)g
-(NULL.)g(See)g(Section)g(2.3)f([Sec-)300 537 y(tions],)h(page)g(8,)f(for)h
-(more)g(information.)390 587 y Fh(PROTO\(asection)22 b(*,)i
-(bfd_get_section_by_name)o(,)485 637 y(\(bfd)g(*abfd,)f(CONST)g(char)g
-(*name\)\);)0 770 y Fr(2.3.4.2)30 b(bfd)p 296 770 V 22 w(mak)n(e)p
-457 770 V 22 w(section)300 862 y Fm(This)13 b(function)g(creates)f(a)h(new)f
-(empt)o(y)g(section)h(called)i Ff(name)g Fm(and)d(attatc)o(hes)300
-912 y(it)i(to)g(the)g(end)h(of)f(the)g(c)o(hain)h(of)f(sections)h(for)e
-Ff(bfd)p Fm(.)20 b(An)15 b(attempt)e(to)g(create)h(a)300 961
-y(section)i(with)h(a)e(name)h(whic)o(h)g(is)h(already)f(in)h(use,)e(returns)h
-(the)g(old)g(section)300 1011 y(b)o(y)f(that)g(name)g(instead.)300
-1074 y(P)o(ossible)h(errors)f(are:)300 1136 y Fh(invalid_operation)450
-1186 y Fm(If)g(output)g(has)h(already)f(started)f(for)h(this)h(bfd.)300
-1248 y Fh(no_memory)450 1298 y Fm(If)f(obstac)o(k)g(allo)q(c)h(fails.)390
-1348 y Fh(PROTO\(asection)22 b(*,)i(bfd_make_section,)d(\(bfd)i(*,)h(CONST)f
-(char)390 1398 y(*name\)\);)0 1531 y Fr(2.3.4.3)30 b(bfd)p
-296 1531 V 22 w(set)p 394 1531 V 22 w(section)p 601 1531 V
-22 w(\015ags)300 1623 y Fm(A)o(ttempts)15 b(to)h(set)f(the)h(attributes)g(of)
-g(the)g(section)h(named)f(in)h(the)f(bfd)g(sup-)300 1673 y(plied)i(to)e(the)g
-(v)m(alue.)25 b(Returns)16 b(true)h(on)f(success,)h(false)f(on)h(error.)22
-b(P)o(ossible)300 1722 y(error)14 b(returns)i(are:)300 1785
-y Fh(invalid)e(operation)450 1835 y Fm(The)21 b(section)g(cannot)g(ha)o(v)o
-(e)f(one)h(or)f(more)g(of)h(the)f(attributes)h(re-)450 1884
-y(quested.)h(F)l(or)15 b(example,)h(a)g(.bss)f(section)h(in)k
-Fh(a.out)15 b Fm(ma)o(y)g(not)g(ha)o(v)o(e)450 1934 y(the)g
-Fh(SEC_HAS_CONTENTS)e Fm(\014eld)k(set.)390 1984 y Fh(PROTO\(boolean,)22
-b(bfd_set_section_flags,)557 2034 y(\(bfd)h(*,)h(asection)f(*,)g
-(flagword\)\);)0 2168 y Fr(2.3.4.4)30 b(bfd)p 296 2168 V 22
-w(map)p 433 2168 V 22 w(o)n(v)n(er)p 567 2168 V 23 w(sections)300
-2259 y Fm(Calls)20 b(the)g(pro)o(vided)h(function)f Ff(func)j
-Fm(for)c(eac)o(h)h(section)g(attatc)o(hed)f(to)g(the)300 2309
-y(bfd)14 b Ff(abfd)p Fm(,)g(passing)h Ff(ob)s(j)f Fm(as)g(an)g(argumen)o(t.)
-19 b(The)14 b(function)h(will)g(b)q(e)g(called)g(as)300 2359
-y(if)h(b)o(y)438 2408 y Fh(func\(abfd,)22 b(the_section,)g(obj\);)390
-2458 y(PROTO\(void,)g(bfd_map_over_sections,)676 2508 y(\(bfd)i(*abfd,)f
-(void)g(\(*func\)\(\),)g(PTR)g(obj\)\);)300 2570 y Fm(This)13
-b(is)g(the)f(prefered)h(metho)q(d)g(for)e(iterating)i(o)o(v)o(er)e(sections,)
-i(an)g(alternativ)o(e)300 2620 y(w)o(ould)j(b)q(e)f(to)g(use)h(a)e(lo)q(op:)
-462 2670 y Fh(section)22 b(*p;)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 13 15
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(13)462 183 y Fh(for)23
-b(\(p)h(=)f(abfd->sections;)f(p)i(!=)f(NULL;)h(p)f(=)h(p->next\))533
-233 y(func\(abfd,)f(p,)g(...\))0 366 y Fr(2.3.4.5)30 b(bfd)p
-296 366 19 3 v 22 w(set)p 394 366 V 22 w(section)p 601 366
-V 22 w(size)300 457 y Fm(Sets)20 b Ff(section)g Fm(to)g(the)g(size)h
-Ff(v)m(al)p Fm(.)34 b(If)21 b(the)f(op)q(eration)g(is)g(ok,)h(then)48
-b Fh(true)19 b Fm(is)300 507 y(returned,)c(else)h Fh(false)p
-Fm(.)300 569 y(P)o(ossible)g(error)f(returns:)300 632 y Fh(invalid_operation)
-450 681 y Fm(W)l(riting)h(has)f(started)f(to)h(the)g(bfd,)g(so)g(setting)g
-(the)h(size)g(is)f(in)o(v)m(alid)390 731 y Fh(PROTO\(boolean,)22
-b(bfd_set_section_size,)509 781 y(\(bfd)i(*,)f(asection)g(*,)h(bfd_size_type)
-e(val\)\);)0 914 y Fr(2.3.4.6)30 b(bfd)p 296 914 V 22 w(set)p
-394 914 V 22 w(section)p 601 914 V 22 w(con)n(ten)n(ts)300
-1005 y Fm(Sets)14 b(the)f(con)o(ten)o(ts)g(of)g(the)h(section)g
-Ff(section)h Fm(in)f(bfd)g Ff(abfd)h Fm(to)e(the)h(data)f(start-)300
-1055 y(ing)19 b(in)h(memory)e(at)g Ff(data)p Fm(.)29 b(The)19
-b(data)f(is)h(written)f(to)g(the)h(output)f(section)300 1105
-y(starting)d(at)f(o\013set)g Ff(o\013set)i Fm(for)e Ff(coun)o(t)i
-Fm(b)o(ytes.)300 1167 y(Normally)g Fh(true)e Fm(is)i(returned,)f(else)h
-Fh(false)p Fm(.)j(P)o(ossible)e(error)d(returns)h(are:)300
-1229 y Fh(no_contents)450 1279 y Fm(The)20 b(output)f(section)h(do)q(es)g
-(not)g(ha)o(v)o(e)f(the)46 b Fh(SEC_HAS_CONTENTS)450 1329 y
-Fm(attribute,)15 b(so)f(nothing)i(can)f(b)q(e)h(written)g(to)e(it.)300
-1391 y Fh(and)h(some)f(more)h(too)300 1454 y Fm(This)c(routine)f(is)h(fron)o
-(t)e(end)i(to)f(the)g(bac)o(k)g(end)h(function)g Fh(_bfd_set_section_conten)o
-(ts)p Fm(.)p 2166 1458 21 36 v 390 1503 a Fh(PROTO\(boolean,)22
-b(bfd_set_section_contents,)605 1553 y(\(bfd)h(*abfd,)605 1603
-y(asection)g(*section,)605 1653 y(PTR)g(data,)605 1703 y(file_ptr)g(offset,)
-605 1753 y(bfd_size_type)f(count\)\);)0 1885 y Fr(2.3.4.7)30
-b(bfd)p 296 1885 19 3 v 22 w(get)p 401 1885 V 21 w(section)p
-607 1885 V 22 w(con)n(ten)n(ts)300 1977 y Fm(This)13 b(function)h(reads)f
-(data)f(from)g Ff(section)h Fm(in)g(bfd)h Ff(abfd)g Fm(in)o(to)f(memory)f
-(start-)300 2027 y(ing)j(at)f Ff(lo)q(cation)p Fm(.)21 b(The)15
-b(data)f(is)h(read)f(at)g(an)h(o\013set)f(of)g Ff(o\013set)h
-Fm(from)e(the)i(start)300 2076 y(of)g(the)g(input)h(section,)g(and)f(is)h
-(read)f(for)f Ff(coun)o(t)i Fm(b)o(ytes.)300 2139 y(If)e(the)g(con)o(ten)o
-(ts)f(of)h(a)g(constuctor)f(with)h(the)g Fh(SEC_CONSTUCTOR)e
-Fm(\015ag)i(set)f(are)300 2188 y(requested,)i(then)h(the)f
-Ff(lo)q(cation)h Fm(is)g(\014lled)h(with)e(zero)q(es.)300 2251
-y(If)g(no)h(errors)e(o)q(ccur,)h Fh(true)g Fm(is)h(returned,)f(else)h
-Fh(false)p Fm(.)j(P)o(ossible)d(errors)f(are:)300 2313 y Fh(unknown)f(yet)390
-2363 y(PROTO\(boolean,)22 b(bfd_get_section_contents,)581 2413
-y(\(bfd)h(*abfd,)g(asection)g(*section,)g(PTR)g(location,)605
-2463 y(file_ptr)g(offset,)f(bfd_size_type)h(count\)\);)0 2770
-y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 14 16
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(14)0 183 y Fn(2.4)33
-b(Sym)n(b)r(ols)300 352 y Fm(*bfd*)17 b(trys)f(to)g(main)o(tain)i(as)e(m)o
-(uc)o(h)h(sym)o(b)q(ol)h(information)f(as)f(it)h(can)g(when)300
-401 y(it)i(mo)o(v)o(es)g(information)g(from)f(\014le)i(to)f(\014le.)32
-b(*bfd*)19 b(passes)g(information)h(to)300 451 y(applications)f(though)f(the)
-34 b Fh(asymbol)17 b Fm(structure.)27 b(When)18 b(the)g(application)300
-501 y(requests)g(the)g(sym)o(b)q(ol)g(table,)h(BFD)e(reads)h(the)g(table)h
-(in)g(the)f(nativ)o(e)g(form)300 551 y(and)13 b(translates)g(parts)g(of)g(it)
-g(in)o(to)g(the)h(in)o(ternal)g(format.)k(T)l(o)13 b(main)o(tain)g(more)300
-601 y(than)k(the)g(infomation)g(passed)h(to)e(applications)j(some)d(targets)g
-(k)o(eep)h(some)300 650 y(information)j('b)q(ehind)h(the)e(sceans',)h(in)g(a)
-g(structure)f(only)h(the)f(particular)300 700 y(bac)o(k)h(end)g(kno)o(ws)g
-(ab)q(out.)33 b(F)l(or)20 b(example,)h(the)f(co\013)f(bac)o(k)h(end)h(k)o
-(eeps)f(the)300 750 y(original)j(sym)o(b)q(ol)f(table)h(structure)e(as)h(w)o
-(ell)h(as)e(the)h(canonical)h(structure)300 800 y(when)c(a)g(*bfd*)f(is)h
-(read)g(in.)31 b(On)20 b(output,)f(the)g(co\013)f(bac)o(k)g(end)i(can)f
-(recon-)300 850 y(struct)e(the)g(output)h(sym)o(b)q(ol)f(table)h(so)f(that)g
-(no)h(information)f(is)h(lost,)g(ev)o(en)300 899 y(information)d(unique)h(to)
-d(co\013)h(whic)o(h)h(*bfd*)g(do)q(esn't)f(kno)o(w)g(or)g(understand.)300
-949 y(If)19 b(a)g(co\013)f(sym)o(b)q(ol)h(table)h(w)o(as)e(read,)h(but)g(w)o
-(as)g(written)g(through)f(an)h(a.out)300 999 y(bac)o(k)g(end,)i(all)f(the)f
-(co\013)g(sp)q(eci\014c)i(information)e(w)o(ould)h(b)q(e)g(lost.)32
-b(\(..)f(un)o(til)300 1049 y(BFD)15 b(2)g(:\).)300 1188 y(The)e(sym)o(b)q(ol)
-g(table)g(of)f(a)g(bfd)h(is)g(not)g(necessarily)h(read)e(in)i(un)o(til)f(a)g
-(canonical-)300 1238 y(ize)k(request)f(is)g(made.)22 b(Then)17
-b(the)f(bfd)g(bac)o(k)g(end)g(\014lls)h(in)g(a)f(table)g(pro)o(vided)300
-1288 y(b)o(y)f(the)g(application)i(with)f(p)q(oin)o(ters)f(to)g(the)g
-(canonical)i(information.)300 1427 y(T)l(o)j(output)g(sym)o(b)q(ols,)h(the)g
-(application)h(pro)o(vides)e(BFD)g(with)h(a)f(table)g(of)300
-1477 y(p)q(oin)o(ters)j(to)e(p)q(oin)o(ters)i(to)63 b Fh(asymbol)p
-Fm(s.)40 b(This)23 b(allo)o(ws)f(applications)i(lik)o(e)300
-1527 y(the)16 b(link)o(er)i(to)d(output)h(a)g(sym)o(b)q(ol)h(as)f(read,)g
-(since)h(the)f('b)q(ehind)i(the)f(sceens')300 1576 y(information)e(will)i(b)q
-(e)f(still)h(a)o(v)m(ailable.)0 2402 y Fr(2.4.1)30 b(Reading)20
-b(Sym)n(b)r(ols)300 2570 y Fm(There)13 b(are)f(t)o(w)o(o)f(stages)g(to)h
-(reading)h(a)f(sym)o(b)q(ol)h(table)g(from)e(a)i(bfd;)g(allo)q(cating)300
-2620 y(storage,)i(and)h(the)g(actual)g(reading)h(pro)q(cess.)22
-b(This)17 b(is)f(an)g(excerpt)h(from)e(an)300 2670 y(appliction)i(whic)o(h)f
-(reads)f(the)h(sym)o(b)q(ol)f(table:)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 15 17
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(15)300 26 y Fg(\013)p
-325 26 1326 2 v 1325 w(\010)p 300 1021 2 972 v 362 112 a Fh(unsigned)23
-b(int)g(storage_needed;)362 162 y(asymbol)g(**symbol_table;)362
-212 y(unsigned)g(int)g(number_of_symbols;)362 262 y(unsigned)g(int)g(i;)362
-361 y(storage_needed)f(=)i(get_symtab_upper_bound)c(\(abfd\);)362
-461 y(if)j(\(storage_needed)f(==)i(0\))f({)433 511 y(return)g(;)362
-560 y(})362 610 y(symbol_table)f(=)i(\(asymbol)f(**\))g(malloc)g
-(\(storage_needed\);)410 660 y(...)362 710 y(number_of_symbols)e(=)433
-760 y(bfd_canonicalize_symtab)g(\(abfd,)i(symbol_table\);)362
-859 y(for)g(\(i)h(=)g(0;)f(i)h(<)g(number_of_symbols;)d(i++\))i({)433
-909 y(process_symbol)f(\(symbol_table[i]\);)362 959 y(})p 1677
-1021 V 300 1047 a Fg(\012)p 325 1047 1326 2 v 1325 w(\011)300
-1228 y Fm(All)16 b(storage)d(for)g(the)i(sym)o(b)q(ols)g(themselv)o(es)f(is)h
-(in)g(an)g(obstac)o(k)e(connected)j(to)300 1278 y(the)f(bfd,)g(and)h(is)g
-(freed)f(when)h(the)f(bfd)h(is)f(closed.)0 2030 y Fr(2.4.2)30
-b(W)-5 b(riting)20 b(Sym)n(b)r(ols)300 2190 y Fm(W)l(riting)13
-b(of)f(a)f(sym)o(b)q(ol)i(table)g(is)f(automatic)g(when)h(a)f(bfd)g(op)q(en)h
-(for)f(writing)g(is)300 2240 y(closed.)21 b(The)16 b(application)h(attatc)o
-(hes)d(a)h(v)o(ector)g(of)g(p)q(oin)o(ters)h(to)f(p)q(oin)o(ters)h(to)300
-2290 y(sym)o(b)q(ols)e(to)g(the)g(bfd)h(b)q(eing)g(written,)f(and)h(\014lls)g
-(in)h(the)e(sym)o(b)q(ol)g(coun)o(t.)20 b(The)300 2340 y(close)11
-b(and)f(clean)o(up)i(co)q(de)e(reads)g(through)g(the)g(table)h(pro)o(vided)g
-(and)f(p)q(erforms)300 2389 y(all)21 b(the)g(necessary)f(op)q(erations.)35
-b(The)21 b(outputing)f(co)q(de)h(m)o(ust)f(alw)o(a)o(ys)f(b)q(e)300
-2439 y(pro)o(vided)c(with)g(an)g('o)o(wned')e(sym)o(b)q(ol;)i(one)g(whic)o(h)
-g(has)f(come)h(from)e(another)300 2489 y(bfd,)i(or)g(one)g(whic)o(h)h(has)f
-(b)q(een)i(created)e(using)h Fh(bfd_make_empty_symbol)p Fm(.)300
-2620 y(An)j(example)h(sho)o(wing)f(the)g(creation)g(of)g(a)f(sym)o(b)q(ol)i
-(table)f(with)g(only)h(one)300 2670 y(elemen)o(t:)0 2770 y
-Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 16 18
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(16)300 26 y Fg(\013)p
-325 26 1326 2 v 1325 w(\010)p 300 1469 2 1420 v 314 112 a Fh(#include)23
-b("bfd.h")314 162 y(main\(\))314 212 y({)362 262 y(bfd)g(*abfd;)362
-311 y(asymbol)g(*ptrs[2];)362 361 y(asymbol)g(*new;)362 461
-y(abfd)g(=)h(bfd_openw\("foo","a.out-su)o(nos-big")o(\);)362
-511 y(bfd_set_format\(abfd,)d(bfd_object\);)362 560 y(new)i(=)h
-(bfd_make_empty_symbol\(abfd)o(\);)362 610 y(new->name)e(=)i("dummy_symbol";)
-362 660 y(new->section)e(=)i(\(asection)e(*\)0;)362 710 y(new->flags)g(=)i
-(BSF_ABSOLUTE)e(|)i(BSF_GLOBAL;)362 760 y(new->value)e(=)i(0x12345;)362
-859 y(ptrs[0])f(=)g(new;)362 909 y(ptrs[1])g(=)g(\(asymbol)g(*\)0;)362
-1009 y(bfd_set_symtab\(abfd,)e(ptrs,)i(1\);)362 1059 y(bfd_close\(abfd\);)314
-1108 y(})314 1208 y(./makesym)314 1258 y(nm)h(foo)314 1308
-y(00012345)f(A)h(dummy_symbol)p 1677 1469 V 300 1495 a Fg(\012)p
-325 1495 1326 2 v 1325 w(\011)300 1607 y Fm(Man)o(y)14 b(formats)g(cannot)h
-(represen)o(t)g(arbitary)f(sym)o(b)q(ol)i(information;)f(for)f(in-)300
-1657 y(stance)e(the)h Fh(a.out)f Fm(ob)s(ject)g(format)f(do)q(es)i(not)f
-(allo)o(w)h(an)f(arbitary)h(n)o(um)o(b)q(er)f(of)300 1707 y(sections.)20
-b(A)15 b(sym)o(b)q(ol)g(p)q(oin)o(ting)h(to)e(a)h(section)g(whic)o(h)g(is)h
-(not)e(one)h(of)f Fh(.text)p Fm(,)300 1757 y Fh(.data)g Fm(or)h
-Fh(.bss)g Fm(cannot)g(b)q(e)h(describ)q(ed.)0 1881 y Fr(2.4.3)30
-b(t)n(yp)r(edef)20 b(asym)n(b)r(ol)300 1973 y Fm(An)15 b Fh(asymbol)g
-Fm(has)g(the)g(form:)390 2022 y Fh(typedef)23 b(struct)g(symbol_cache_entry)
-390 2072 y({)300 2135 y Ff(A)d(p)q(oin)o(ter)g(to)e(the)i(bfd)g(whic)o(h)g(o)
-o(wns)f(the)h(sym)o(b)q(ol.)33 b(This)20 b(information)f(is)300
-2184 y(necessary)14 b(so)f(that)g(a)g(bac)o(k)g(end)h(can)g(w)o(ork)e(out)i
-(what)f(additional)h(\(in)o(visible)300 2234 y(to)j(the)e(application)i
-(writer\))e(information)g(is)h(carried)g(with)f(the)g(sym)o(b)q(ol.)438
-2284 y Fh(struct)23 b(_bfd)g(*the_bfd;)300 2346 y Ff(The)14
-b(text)g(of)f(the)h(sym)o(b)q(ol.)20 b(The)14 b(name)g(is)g(left)h(alone,)f
-(and)g(not)g(copied)h(-)f(the)300 2396 y(application)j(ma)o(y)d(not)h(alter)g
-(it.)462 2446 y Fh(CONST)23 b(char)g(*name;)300 2508 y Ff(The)15
-b(v)m(alue)i(of)e(the)g(sym)o(b)q(ol.)462 2558 y Fh(symvalue)22
-b(value;)300 2620 y Ff(A)o(ttributes)15 b(of)g(a)g(sym)o(b)q(ol:)390
-2670 y Fh(#define)23 b(BSF_NO_FLAGS)94 b(0x00)0 2770 y Fk(c)6
-b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332
-2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 17 19
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(17)300 183 y Ff(The)18
-b(sym)o(b)q(ol)g(has)g(lo)q(cal)h(scop)q(e;)34 b Fh(static)17
-b Ff(in)34 b Fh(C)p Ff(.)27 b(The)18 b(v)m(alue)h(is)h(the)e(o\013set)300
-233 y(in)o(to)d(the)g(section)h(of)f(the)g(data.)390 283 y
-Fh(#define)23 b(BSF_LOCAL)g(0x01)300 349 y Ff(The)16 b(sym)o(b)q(ol)g(has)f
-(global)h(scop)q(e;)g(initialized)j(data)14 b(in)k Fh(C)p Ff(.)j(The)16
-b(v)m(alue)j(is)d(the)300 399 y(o\013set)e(in)o(to)h(the)h(section)f(of)g
-(the)g(data.)390 449 y Fh(#define)23 b(BSF_GLOBAL)f(0x02)300
-515 y Ff(Obsolete)390 565 y Fh(#define)h(BSF_IMPORT)f(0x04)300
-631 y Ff(The)13 b(sym)o(b)q(ol)g(has)f(global)h(scop)q(e,)g(and)g(is)g(exp)q
-(orted.)19 b(The)13 b(v)m(alue)g(is)g(the)g(o\013set)300 681
-y(in)o(to)i(the)g(section)h(of)f(the)g(data.)390 730 y Fh(#define)23
-b(BSF_EXPORT)f(0x08)300 797 y Ff(The)15 b(sym)o(b)q(ol)h(is)g(unde\014ned.)21
-b Fh(extern)15 b Ff(in)h Fh(C)p Ff(.)j(The)d(v)m(alue)g(has)f(no)h(meaning.)
-390 846 y Fh(#define)23 b(BSF_UNDEFINED)f(0x10)300 913 y Ff(The)17
-b(sym)o(b)q(ol)g(is)g(common,)f(initialized)k(to)c(zero;)g(default)h(in)26
-b Fh(C)p Ff(.)d(The)d(v)m(alue)300 962 y(is)c(the)f(size)h(of)f(the)g(ob)s
-(ject)g(in)h(b)o(ytes.)390 1012 y Fh(#define)23 b(BSF_FORT_COMM)f(0x20)300
-1078 y Ff(A)16 b(normal)21 b Fh(C)16 b Ff(sym)o(b)q(ol)g(w)o(ould)g(b)q(e)h
-(one)f(of:)27 b Fh(BSF_LOCAL)p Ff(,)19 b Fh(BSF_FORT_COMM)p
-Ff(,)300 1128 y Fh(BSF_UNDEFINED)13 b Ff(or)i Fh(BSF_EXPORT|BSD_GLOBAL)300
-1194 y Ff(The)g(sym)o(b)q(ol)f(is)h(a)f(debugging)i(record.)j(The)c(v)m(alue)
-g(has)g(an)f(arbitary)g(mean-)300 1244 y(ing.)390 1294 y Fh(#define)23
-b(BSF_DEBUGGING)f(0x40)300 1360 y Ff(The)d(sym)o(b)q(ol)g(has)g(no)g(section)
-g(attac)o(hed,)g(an)o(y)f(v)m(alue)i(is)g(the)f(actual)g(v)m(alue)300
-1410 y(and)e(is)f(not)f(a)g(relativ)o(e)g(o\013set)g(to)f(a)h(section.)390
-1460 y Fh(#define)23 b(BSF_ABSOLUTE)f(0x80)300 1526 y Ff(Used)16
-b(b)o(y)f(the)g(link)o(er)390 1576 y Fh(#define)23 b(BSF_KEEP)190
-b(0x10000)390 1625 y(#define)23 b(BSF_WARNING)118 b(0x20000)390
-1675 y(#define)23 b(BSF_KEEP_G)142 b(0x80000)300 1741 y Ff(Un)o(used)390
-1791 y Fh(#define)23 b(BSF_WEAK)190 b(0x100000)390 1841 y(#define)23
-b(BSF_CTOR)190 b(0x200000)390 1891 y(#define)23 b(BSF_FAKE)190
-b(0x400000)300 1957 y Ff(The)15 b(sym)o(b)q(ol)h(used)g(to)e(b)q(e)i(a)f
-(common)g(sym)o(b)q(ol,)g(but)g(no)o(w)g(it)h(is)f(allo)q(cated.)390
-2007 y Fh(#define)23 b(BSF_OLD_COMMON)46 b(0x800000)300 2073
-y Ff(The)15 b(default)h(v)m(alue)h(for)d(common)h(data.)390
-2123 y Fh(#define)23 b(BFD_FORT_COMM_DEFAULT_VAL)o(UE)e(0)300
-2189 y Ff(In)14 b(some)g(\014les)g(the)g(t)o(yp)q(e)g(of)f(a)h(sym)o(b)q(ol)g
-(sometimes)f(alters)h(its)g(lo)q(cation)g(in)h(an)300 2239
-y(output)i(\014le)h(-)f(ie)g(in)h(co\013)e(a)27 b Fh(ISFCN)16
-b Ff(sym)o(b)q(ol)h(whic)o(h)h(is)f(also)27 b Fh(C_EXT)17 b
-Ff(sym)o(b)q(ol)300 2289 y(app)q(ears)d(where)g(it)g(w)o(as)f(declared)i(and)
-e(not)h(at)f(the)h(end)g(of)f(a)h(section.)39 b(This)300 2338
-y(bit)16 b(is)f(set)g(b)o(y)h(the)f(target)f(bfd)h(part)g(to)f(con)o(v)o(ey)h
-(this)h(information.)390 2388 y Fh(#define)23 b(BSF_NOT_AT_END)93
-b(0x40000)300 2454 y Ff(Signal)16 b(that)f(the)g(sym)o(b)q(ol)h(is)f(the)h
-(lab)q(el)h(of)d(constructor)h(section.)390 2504 y Fh(#define)23
-b(BSF_CONSTRUCTOR)69 b(0x1000000)438 2554 y(flagword)22 b(flags;)300
-2620 y Ff(Aoin)o(ter)11 b(to)f(the)h(section)g(to)f(whic)o(h)i(this)f(sym)o
-(b)q(ol)g(is)h(relativ)o(e,)g(or)e(0)g(if)i(the)h(sym-)300
-2670 y(b)q(ol)j(is)f(absolute)g(or)f(unde\014ned.)22 b(Note)14
-b(that)h(it)g(is)g(not)f(su\016cien)o(t)i(to)e(set)i(this)0
-2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 18 20
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(18)300 183 y Ff(lo)q(cation)j(to)e
-(0)h(to)f(mark)g(a)h(sym)o(b)q(ol)g(as)g(absolute)g(-)g(the)g(\015ag)k
-Fh(BSF_ABSOLUTE)300 233 y Ff(m)o(ust)c(b)q(e)g(set)g(also.)438
-283 y Fh(struct)23 b(sec)g(*section;)300 351 y Ff(Bac)o(k)14
-b(end)h(sp)q(ecial)h(data.)j(This)14 b(is)h(b)q(eing)h(phased)e(out)g(in)h
-(fa)o(v)o(our)e(of)h(making)300 400 y(this)i(a)f(union.)438
-450 y Fh(PTR)23 b(udata;)390 500 y(})h(asymbol;)0 682 y Fr(2.4.4)30
-b(Sym)n(b)r(ol)21 b(Handling)f(F)-5 b(unctions)0 893 y(2.4.4.1)30
-b(get)p 292 893 19 3 v 21 w(sym)n(tab)p 506 893 V 23 w(upp)r(er)p
-686 893 V 22 w(b)r(ound)300 989 y Fm(Returns)22 b(the)g(n)o(um)o(b)q(er)f(of)
-g(b)o(ytes)h(required)g(in)g(a)g(v)o(ector)e(of)h(p)q(oin)o(ters)h(to)300
-1039 y Fh(asymbols)10 b Fm(for)g(all)i(the)f(sym)o(b)q(ols)h(in)f(the)h
-(supplied)h(bfd,)f(including)i(a)c(terminal)300 1089 y(NULL)k(p)q(oin)o(ter.)
-19 b(If)13 b(there)g(are)f(no)g(sym)o(b)q(ols)h(in)h(the)e(bfd,)i(then)f(0)f
-(is)h(returned.)300 1128 y Fg(\013)p 325 1128 1326 2 v 1325
-w(\010)p 300 1326 2 175 v 314 1214 a Fh(#define)23 b
-(get_symtab_upper_bound\(abf)o(d\))e(\\)433 1264 y(BFD_SEND)i(\(abfd,)g
-(_get_symtab_upper_bound,)e(\(abfd\)\))p 1677 1326 V 300 1352
-a Fg(\012)p 325 1352 1326 2 v 1325 w(\011)0 1583 y Fr(2.4.4.2)30
-b(bfd)p 296 1583 19 3 v 22 w(canonicalize)p 637 1583 V 22 w(sym)n(tab)300
-1680 y Fm(Supplied)20 b(a)d(bfd)h(and)f(a)g(p)q(oin)o(ter)h(to)f(an)g
-(uninitializ)q(ed)j(v)o(ector)d(of)g(p)q(oin)o(ters.)300 1730
-y(This)i(reads)f(in)h(the)f(sym)o(b)q(ols)g(from)g(the)g(bfd,)h(and)f
-(\014lls)i(in)f(the)f(table)h(with)300 1780 y(p)q(oin)o(ters)f(to)f(the)h
-(sym)o(b)q(ols,)g(and)g(a)f(trailing)i(NULL.)f(The)g(routine)g(returns)300
-1830 y(the)d(actual)h(n)o(um)o(b)q(er)f(of)g(sym)o(b)q(ol)h(p)q(oin)o(ters)f
-(not)g(including)j(the)d(NULL.)300 1868 y Fg(\013)p 325 1868
-1326 2 v 1325 w(\010)p 300 2166 2 274 v 314 1955 a Fh(#define)23
-b(bfd_canonicalize_symtab\(ab)o(fd,)e(location\))i(\\)433 2005
-y(BFD_SEND)g(\(abfd,)g(_bfd_canonicalize_symtab,\\)744 2054
-y(\(abfd,)g(location\)\))p 1677 2166 V 300 2192 a Fg(\012)p
-325 2192 1326 2 v 1325 w(\011)0 2424 y Fr(2.4.4.3)30 b(bfd)p
-296 2424 19 3 v 22 w(set)p 394 2424 V 22 w(sym)n(tab)300 2521
-y Fm(Pro)o(vided)14 b(a)f(table)h(of)f(p)q(oin)o(ters)h(to)f(to)g(sym)o(b)q
-(ols)g(and)h(a)f(coun)o(t,)h(writes)f(to)g(the)300 2570 y(output)i(bfd)h(the)
-f(sym)o(b)q(ols)g(when)h(closed.)390 2620 y Fh(PROTO\(boolean,)22
-b(bfd_set_symtab,)g(\(bfd)h(*,)h(asymbol)f(**,)390 2670 y(unsigned)g(int)g
-(\)\);)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 19 21
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(19)0 183 y Fr(2.4.4.4)30
-b(bfd)p 296 183 19 3 v 22 w(prin)n(t)p 450 183 V 22 w(sym)n(b)r(ol)p
-661 183 V 23 w(v)m(andf)300 275 y Fm(Prin)o(ts)15 b(the)g(v)m(alue)i(and)e
-(\015ags)g(of)g(the)g(sym)o(b)q(ol)h(supplied)h(to)e(the)g(stream)f(\014le.)
-390 324 y Fh(PROTO\(void,)22 b(bfd_print_symbol_vandf,)f(\(PTR)i(file,)h
-(asym-)390 374 y(bol)f(*symbol\)\);)0 507 y Fr(2.4.4.5)30 b(bfd)p
-296 507 V 22 w(mak)n(e)p 457 507 V 22 w(empt)n(y)p 646 507
-V 23 w(sym)n(b)r(ol)300 598 y Fm(This)22 b(function)f(creates)g(a)g(new)56
-b Fh(asymbol)20 b Fm(structure)h(for)f(the)h(bfd,)i(and)300
-648 y(returns)15 b(a)g(p)q(oin)o(ter)h(to)e(it.)300 710 y(This)e(routine)g
-(is)g(necessary)l(,)g(since)h(eac)o(h)e(bac)o(k)g(end)h(has)g(priv)m(ate)g
-(information)300 760 y(surrounding)k(the)g Fh(asymbol)p Fm(.)j(Building)f(y)o
-(our)d(o)o(wn)g Fh(asymbol)f Fm(and)i(p)q(oin)o(ting)300 810
-y(to)d(it)h(will)h(not)e(create)h(the)f(priv)m(ate)i(information,)e(and)h
-(will)h(cause)f(problems)300 860 y(later)h(on.)300 890 y Fg(\013)p
-325 890 1326 2 v 1325 w(\010)p 300 1088 2 175 v 314 976 a Fh(#define)23
-b(bfd_make_empty_symbol\(abfd)o(\))e(\\)433 1026 y(BFD_SEND)i(\(abfd,)g
-(_bfd_make_empty_symbol,)e(\(abfd\)\))p 1677 1088 V 300 1114
-a Fg(\012)p 325 1114 1326 2 v 1325 w(\011)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g
-(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421
-w(Revision:)17 b(1.5)p eop
-%%Page: 20 22
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(20)0 183 y Fn(2.5)33
-b(Arc)n(hiv)n(es)300 275 y Fm(Gum)o(b)o(y)l(,)15 b(y)o(ou)f(promised)i(to)f
-(write)g(this)h(bit...)300 337 y(Arc)o(hiv)o(es)g(are)f(supp)q(orted)g(in)h
-(bfd)g(in)g Fh(archive.c)p Fm(.)300 399 y(An)22 b(arc)o(hiv)o(e)g(is)h
-(represen)o(ted)f(in)o(ternally)i(just)e(lik)o(e)h(another)e(bfd,)j(with)e(a)
-300 449 y(p)q(oin)o(ter)f(to)f(a)g(c)o(hain)i(of)e(con)o(tained)h(bfds.)36
-b(Arc)o(hiv)o(es)21 b(can)g(b)q(e)g(created)g(b)o(y)300 499
-y(op)q(ening)15 b(bfds,)f(linking)i(them)d(together)g(and)h(attatc)o(hing)f
-(them)h(as)f(c)o(hildren)300 549 y(to)i(another)f(bfd)i(and)f(then)h(closing)
-g(the)f(paren)o(t)g(bfd.)0 681 y Fr(2.5.0.1)30 b(bfd)p 296
-681 19 3 v 22 w(get)p 401 681 V 21 w(next)p 540 681 V 23 w(map)r(en)n(t)300
-773 y Fm(What)15 b(this)g(do)q(es)390 823 y Fh(PROTO\(symindex,)22
-b(bfd_get_next_mapent,)f(\(bfd)i(*,)h(symin-)390 872 y(dex,)f(carsym)g
-(**\)\);)0 1005 y Fr(2.5.0.2)30 b(bfd)p 296 1005 V 22 w(set)p
-394 1005 V 22 w(arc)n(hiv)n(e)p 605 1005 V 23 w(head)300 1096
-y Fm(Used)18 b(whilst)g(pro)q(cessing)g(arc)o(hiv)o(es.)26
-b(Sets)17 b(the)g(head)h(of)f(the)g(c)o(hain)h(of)f(bfds)300
-1146 y(con)o(tained)f(in)g(an)f(arc)o(hiv)o(e)g(to)g Ff(new)p
-914 1146 14 2 v 17 w(head)p Fm(.)20 b(\(see)15 b(c)o(hapter)g(on)g(arc)o(hiv)
-o(es\))390 1196 y Fh(PROTO\(boolean,)22 b(bfd_set_archive_head,)f(\(bfd)i
-(*output,)390 1246 y(bfd)g(*new_head\)\);)0 1379 y Fr(2.5.0.3)30
-b(bfd)p 296 1379 19 3 v 22 w(get)p 401 1379 V 21 w(elt)p 491
-1379 V 22 w(at)p 567 1379 V 22 w(index)390 1458 y Fh(PROTO\(bfd)23
-b(*,)g(bfd_get_elt_at_index,)e(\(bfd)j(*,)f(int\)\);)0 1590
-y Fr(2.5.0.4)30 b(bfd)p 296 1590 V 22 w(op)r(enr)p 472 1590
-V 21 w(next)p 611 1590 V 23 w(arc)n(hiv)n(ed)p 857 1590 V 23
-w(\014le)300 1682 y Fm(Initially)14 b(pro)o(vided)f(a)f(bfd)g(con)o(taining)g
-(an)g(arc)o(hiv)o(e)g(and)g(NULL,)h(op)q(ens)f(a)g(bfd)300
-1732 y(on)j(the)g(\014rst)f(con)o(tained)i(elemen)o(t)g(and)f(returns)g
-(that.)k(Subsequen)o(t)d(calls)g(to)300 1781 y(bfd)p 367 1781
-14 2 v 17 w(op)q(enr)p 496 1781 V 17 w(next)p 600 1781 V 16
-w(arc)o(hiv)o(ed)p 781 1781 V 17 w(\014le)c(should)h(pass)e(the)g(arc)o(hiv)o
-(e)g(and)h(the)f(previous)300 1831 y(return)16 b(v)m(alue)i(to)e(return)h(a)f
-(created)g(bfd)h(to)f(the)h(next)f(con)o(tained)i(elemen)o(t.)300
-1881 y(NULL)e(is)g(returned)f(when)h(there)f(are)g(no)g(more.)390
-1931 y Fh(PROTO\(bfd*,)22 b(bfd_openr_next_archived_file,)748
-1981 y(\(bfd)h(*archive,)g(bfd)g(*previous\)\);)0 2770 y Fk(c)6
-b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332
-2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 21 23
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(21)0 183 y Fn(2.6)33
-b(File)23 b(F)-6 b(ormats)300 275 y Fm(A)17 b(format)g(is)h(a)30
-b Fh(bfd)17 b Fm(concept)h(of)f(high)h(lev)o(el)h(\014le)g(con)o(ten)o(ts.)26
-b(The)17 b(formats)300 324 y(supp)q(orted)f(b)o(y)f Fh(bfd)g
-Fm(are:)300 387 y Fh(bfd_object)450 437 y Fm(The)k(bfd)g(ma)o(y)f(con)o(tain)
-h(data,)f(sym)o(b)q(ols,)i(relo)q(cations)f(and)g(debug)450
-486 y(info.)300 547 y Fh(bfd_archive)450 596 y Fm(The)c(bfd)h(con)o(tains)f
-(other)g(bfds)h(and)f(an)g(optional)h(index.)300 657 y Fh(bfd_core)450
-707 y Fm(The)f(bfd)h(con)o(tains)f(the)h(result)f(of)g(an)g(executable)i
-(core)e(dump.)0 832 y Fr(2.6.0.1)30 b(bfd)p 296 832 19 3 v
-22 w(c)n(hec)n(k)p 462 832 V 23 w(format)300 923 y Fm(This)19
-b(routine)g(is)g(supplied)i(a)d(bfd)h(and)g(a)f(format.)29
-b(It)18 b(attempts)g(to)g(v)o(erify)300 973 y(if)e(the)g(\014le)g(attatc)o
-(hed)f(to)g(the)g(bfd)h(is)g(indeed)h(compatible)g(with)f(the)f(format)300
-1023 y(sp)q(eci\014ed)i(\(ie,)f(one)f(of)g Fh(bfd_object)p
-Fm(,)e Fh(bfd_archive)h Fm(or)g Fh(bfd_core)p Fm(\).)300 1085
-y(If)j(the)h(bfd)f(has)g(b)q(een)h(set)f(to)g(a)f(sp)q(eci\014c)j
-Ff(target)e Fm(b)q(efore)h(the)f(call,)h(only)g(the)300 1135
-y(named)d(target)f(and)i(format)e(com)o(bination)h(will)i(b)q(e)f(c)o(hec)o
-(k)o(ed.)k(If)c(the)f(target)300 1184 y(has)k(not)f(b)q(een)i(set,)f(or)g
-(has)f(b)q(een)i(set)f(to)40 b Fh(default)18 b Fm(then)h(all)h(the)f(kno)o
-(wn)300 1234 y(target)14 b(bac)o(k)o(ends)h(will)i(b)q(e)f(in)o(terrogated)f
-(to)f(determine)i(a)f(matc)o(h.)300 1297 y(The)h(function)h(returns)22
-b Fh(true)15 b Fm(on)h(success,)h(otherwise)k Fh(false)16 b
-Fm(with)g(one)g(of)300 1346 y(the)f(follo)o(wing)h(error)f(co)q(des:)450
-1409 y(in)o(v)m(alid)p 582 1409 14 2 v 19 w(op)q(eration)21
-b(if)58 b Fh(format)20 b Fm(is)h(not)g(one)h(of)56 b Fh(bfd_object)p
-Fm(,)450 1458 y Fh(bfd_archive)14 b Fm(or)g Fh(bfd_core)p Fm(.)300
-1519 y Fh(system_call_error)450 1569 y Fm(if)g(an)g(error)f(o)q(ccured)h
-(during)g(a)g(read)f(-)h(ev)o(en)g(some)f(\014le)i(mismatc)o(hes)450
-1618 y(can)g(cause)h(system)p 794 1618 V 16 w(call)p 877 1618
-V 17 w(errros)300 1679 y Fh(file_not_recognised)450 1729 y
-Fm(none)g(of)e(the)i(bac)o(k)o(ends)f(recognised)h(the)f(\014le)i(format)300
-1789 y Fh(file_ambiguously_recognize)o(d)450 1839 y Fm(more)e(than)g(one)g
-(bac)o(k)o(end)h(recognised)g(the)f(\014le)h(format.)390 1889
-y Fh(PROTO\(boolean,)22 b(bfd_check_format,)f(\(bfd)j(*abfd,)f(bfd_format)p
-2002 1895 21 38 v 390 1938 a(format\)\);)0 2063 y Fr(2.6.0.2)30
-b(bfd)p 296 2063 19 3 v 22 w(set)p 394 2063 V 22 w(format)300
-2155 y Fm(This)18 b(function)g(sets)f(the)g(\014le)h(format)e(of)h(the)g
-(supplied)j(bfd)d(to)g(the)g(format)300 2205 y(requested.)26
-b(If)17 b(the)h(target)d(set)i(in)h(the)f(bfd)h(do)q(es)f(not)g(supp)q(ort)g
-(the)g(format)300 2254 y(requested,)c(the)f(format)f(is)i(illegal)i(or)d(the)
-g(bfd)h(is)g(not)f(op)q(en)h(for)e(writing)i(than)300 2304
-y(an)i(error)g(o)q(ccurs.)390 2354 y Fh(PROTO\(boolean,bfd_set_form)o
-(at,\(bfd)20 b(*,)k(bfd_format\)\);)0 2479 y Fr(2.6.0.3)30
-b(bfd)p 296 2479 V 22 w(format)p 498 2479 V 21 w(string)300
-2570 y Fm(This)12 b(function)f(tak)o(es)f(one)h(argumen)o(t,)g(and)g(en)o
-(umerated)g(t)o(yp)q(e)g(\(bfd)p 1486 2570 14 2 v 17 w(format\))300
-2620 y(and)h(returns)f(a)g(p)q(oin)o(ter)h(to)e(a)h(const)g(string)h
-Fh(")p Fm(in)o(v)m(alid)p Fh(")p Fm(,)h Fh(")p Fm(ob)s(ject)p
-Fh(")p Fm(,)e Fh(")p Fm(arc)o(hiv)o(e)p Fh(")p Fm(,)300 2670
-y Fh(")p Fm(core)p Fh(")j Fm(or)f Fh(")p Fm(unkno)o(wn)p Fh(")h
-Fm(dep)q(ending)j(up)q(on)e(the)f(v)m(alue)h(of)f(the)g(en)o(umeration.)0
-2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 22 24
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(22)390 183 y Fh(PROTO\(CONST)22
-b(char)i(*,)f(bfd_format_string,)f(\(bfd_format\)\);)0 2770
-y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 23 25
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(23)0 183 y Fn(2.7)33
-b(Relo)r(cations)300 275 y Fm(Bfd)23 b(main)o(tains)h(relo)q(cations)f(in)h
-(m)o(uc)o(h)f(the)g(same)g(w)o(as)f(as)g(it)i(main)o(tains)300
-324 y(sym)o(b)q(ols;)i(they)c(are)g(left)g(alone)h(un)o(til)g(required,)h
-(then)f(read)f(in)h(en-mass)300 374 y(and)e(traslated)f(in)o(to)g(an)h(in)o
-(ternal)g(form.)36 b(There)20 b(is)h(a)g(common)f(routine)300
-424 y Fh(bfd_perform_relocation)11 b Fm(whic)o(h)k(acts)e(up)q(on)i(the)f
-(canonical)h(form)e(to)h(to)300 474 y(the)h(actual)h(\014xup.)300
-536 y(Note)h(that)g(relo)q(cations)i(are)e(main)o(tained)h(on)g(a)f(p)q(er)i
-(section)f(basis,)g(whilst)300 586 y(sym)o(b)q(ols)d(are)g(main)o(tained)h
-(on)g(a)e(p)q(er)i(bfd)g(basis.)300 648 y(All)g(a)e(bac)o(k)h(end)g(has)f(to)
-g(do)h(to)f(\014t)g(the)h(bfd)g(in)o(terface)g(is)g(to)f(create)g(as)g(man)o
-(y)300 698 y Fh(struct)g(reloc_cache_entry)i Fm(as)i(there)g(are)g(relo)q
-(cations)h(in)g(a)f(particuar)300 748 y(section,)d(and)h(\014ll)g(in)g(the)g
-(righ)o(t)f(bits:)0 873 y Fr(2.7.0.1)30 b(bfd)p 296 873 19
-3 v 22 w(p)r(erform)p 533 873 V 21 w(relo)r(cation)300 964
-y Fm(The)15 b(relo)q(cation)h(routine)g(returns)f(as)g(a)g(status)f(an)h(en)o
-(umerated)h(t)o(yp)q(e:)390 1014 y Fh(typedef)23 b(enum)g(bfd_reloc_status)f
-({)300 1076 y Ff(No)15 b(errors)f(detected)438 1126 y Fh(bfd_reloc_ok,)300
-1188 y Ff(The)h(relo)q(cation)h(w)o(as)f(p)q(erformed,)g(but)g(there)g(w)o
-(as)g(an)g(o)o(v)o(er\015o)o(w.)438 1238 y Fh(bfd_reloc_overflow,)300
-1300 y Ff(The)g(address)h(to)e(relo)q(cate)i(w)o(as)e(not)h(within)h(the)g
-(section)f(supplied)438 1350 y Fh(bfd_reloc_outofrange,)300
-1412 y Ff(Used)h(b)o(y)f(sp)q(ecial)i(functions)438 1462 y
-Fh(bfd_reloc_continue,)300 1524 y Ff(Un)o(used)438 1574 y Fh
-(bfd_reloc_notsupported,)300 1636 y Ff(Unsupp)q(orted)f(relo)q(cation)g(size)
-g(requested.)438 1686 y Fh(bfd_reloc_other,)300 1748 y Ff(The)f(sym)o(b)q(ol)
-h(to)f(relo)q(cate)g(against)g(w)o(as)f(unde\014ned.)438 1798
-y Fh(bfd_reloc_undefined,)300 1861 y Ff(The)j(relo)q(caction)g(w)o(as)e(p)q
-(erformed,)i(but)g(ma)o(y)e(not)h(b)q(e)h(ok)f(-)h(presen)o(tly)g(gen-)300
-1910 y(erated)g(only)f(when)f(linking)i(i960)e(co\013)g(\014les)h(with)g
-(i960)f(b.out)f(sym)o(b)q(ols.)438 1960 y Fh(bfd_reloc_dangerous)462
-2010 y(})414 2060 y(bfd_reloc_status_enum_typ)o(e;)390 2110
-y(typedef)23 b(struct)g(reloc_cache_entry)390 2159 y({)300
-2222 y Ff(A)15 b(p)q(oin)o(ter)h(in)o(to)f(the)g(canonical)i(table)f(of)e(p)q
-(oin)o(ters)438 2271 y Fh(struct)23 b(symbol_cache_entry)e(**sym_ptr_ptr;)300
-2334 y Ff(o\013set)14 b(in)i(section)438 2384 y Fh(rawdata_offset)22
-b(address;)300 2446 y Ff(addend)16 b(for)f(relo)q(cation)h(v)m(alue)438
-2496 y Fh(bfd_vma)23 b(addend;)300 2558 y Ff(if)16 b(sym)f(is)g(n)o(ull)i
-(this)f(is)f(the)h(section)438 2608 y Fh(struct)23 b(sec)g(*section;)300
-2670 y Ff(P)o(oin)o(ter)15 b(to)f(ho)o(w)h(to)g(p)q(erform)g(the)g(required)h
-(relo)q(cation)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6
-b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 24 26
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(24)438 183 y Fh(CONST)23
-b(struct)g(reloc_howto_struct)e(*howto;)390 233 y(})j(arelent;)300
-326 y(sym_ptr_ptr)450 376 y Fm(The)e(sym)o(b)q(ol)g(table)g(p)q(oin)o(ter)g
-(p)q(oin)o(ts)h(to)e(a)g(p)q(oin)o(ter)h(to)f(the)h(sym-)450
-426 y(b)q(ol)15 b(asco)q(ciated)g(with)f(the)h(relo)q(cation)g(request.)k
-(This)c(w)o(ould)g(natu-)450 476 y(raly)g(b)q(e)g(the)g(p)q(oin)o(ter)g(in)o
-(to)f(the)h(table)g(returned)g(b)o(y)g(the)f(bac)o(k)h(end's)450
-526 y(get)p 514 526 14 2 v 16 w(sym)o(tab)h(action.)23 b(See)17
-b(Section)h(2.4)d([Sym)o(b)q(ols],)h(page)h(14.)23 b(The)450
-575 y(sym)o(b)q(ol)18 b(is)h(referenced)f(through)g(a)g(p)q(oin)o(ter)g(to)f
-(a)h(p)q(oin)o(ter)g(so)g(that)450 625 y(to)q(ols)j(lik)o(e)g(the)g(link)o
-(er)h(can)f(\014xup)g(all)h(the)e(sym)o(b)q(ols)h(of)g(the)f(same)450
-675 y(name)h(b)o(y)g(mo)q(difying)i(only)e(one)h(p)q(oin)o(ter.)38
-b(The)21 b(relo)q(cation)h(rou-)450 725 y(tine)16 b(lo)q(oks)f(in)g(the)g
-(sym)o(b)q(ol)h(and)f(uses)g(the)g(base)g(of)f(the)h(section)h(the)450
-775 y(sym)o(b)q(ol)k(is)h(attatc)o(hed)e(to)g(and)h(the)g(v)m(alue)h(of)e
-(the)h(sym)o(b)q(ol)g(as)g(the)450 825 y(initial)h(relo)q(cation)f(o\013set.)
-29 b(If)20 b(the)e(sym)o(b)q(ol)i(p)q(oin)o(ter)f(is)g(zero,)h(then)450
-874 y(the)15 b(section)h(pro)o(vided)g(is)g(lo)q(ok)o(ed)f(up.)300
-968 y Fh(address)450 1017 y Fm(The)d(address)g(\014eld)i(giv)o(es)e(the)g
-(o\013set)f(in)i(b)o(ytes)f(from)f(the)h(base)g(of)g(the)450
-1067 y(section)g(data)e(whic)o(h)i(o)o(wns)f(the)g(relo)q(cation)h(record)f
-(to)g(the)g(\014rst)g(b)o(yte)450 1117 y(of)j(relo)q(catable)h(information.)k
-(The)14 b(actual)h(data)e(relo)q(cated)i(will)g(b)q(e)450 1167
-y(relativ)o(e)j(to)e(this)h(p)q(oin)o(t)h(-)f(for)g(example,)g(a)g(relo)q
-(cation)h(t)o(yp)q(e)f(whic)o(h)450 1217 y(mo)q(di\014es)e(the)e(b)q(ottom)g
-(t)o(w)o(o)f(b)o(ytes)i(of)f(a)g(four)g(b)o(yte)h(w)o(ord)e(w)o(ould)i(not)
-450 1267 y(touc)o(h)h(the)g(\014rst)g(b)o(yte)g(p)q(oin)o(ted)h(to)f(in)h(a)f
-(big)g(endian)i(w)o(orld.)300 1360 y Fh(addend)450 1410 y Fm(The)e(addend)g
-(is)g(a)f(v)m(alue)h(pro)o(vided)h(b)o(y)e(the)g(bac)o(k)h(end)g(to)e(b)q(e)i
-(added)450 1459 y(\(!\))27 b(to)17 b(the)g(relo)q(cation)i(o\013set.)26
-b(It's)17 b(in)o(terpretation)h(is)g(dep)q(enden)o(t)450 1509
-y(up)q(on)e(the)f(ho)o(wto.)k(F)l(or)c(example,)g(on)g(the)h(68k)e(the)h(co)q
-(de:)450 1548 y Fg(\013)p 475 1548 1176 2 v 1175 w(\010)p 450
-1896 2 324 v 655 1634 a Fh(char)23 b(foo[];)655 1684 y(main\(\))846
-1734 y({)846 1784 y(return)g(foo[0x12345678];)846 1834 y(})p
-1677 1896 V 450 1922 a Fg(\012)p 475 1922 1176 2 v 1175 w(\011)450
-2065 y Fm(Could)16 b(b)q(e)g(compiled)h(in)o(to:)450 2103 y
-Fg(\013)p 475 2103 V 1175 w(\010)p 450 2451 2 324 v 655 2190
-a Fh(linkw)23 b(fp,#-4)655 2240 y(moveb)g(@#12345678,d0)655
-2289 y(extbl)g(d0)655 2339 y(unlk)g(fp)655 2389 y(rts)p 1677
-2451 V 450 2477 a Fg(\012)p 475 2477 1176 2 v 1175 w(\011)450
-2620 y Fm(This)15 b(could)g(create)f(a)g(relo)q(c)i(p)q(oin)o(ting)f(to)f(fo)
-q(o,)f(but)i(lea)o(v)o(e)g(the)f(o\013set)450 2670 y(in)i(the)f(data)g
-(\(something)g(lik)o(e\))0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 25 27
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(25)450 26 y Fg(\013)p
-475 26 1176 2 v 1175 w(\010)p 450 573 2 524 v 464 112 a Fh(RELOCATION)23
-b(RECORDS)g(FOR)g([.text]:)464 162 y(OFFSET)71 b(TYPE)143 b(VALUE)464
-212 y(00000006)23 b(32)191 b(_foo)464 311 y(00000000)23 b(4e56)g(fffc)238
-b(;)24 b(linkw)f(fp,#-4)464 361 y(00000004)g(1039)g(1234)h(5678)118
-b(;)24 b(moveb)f(@#12345678,d0)464 411 y(0000000a)g(49c0)357
-b(;)24 b(extbl)f(d0)464 461 y(0000000c)g(4e5e)357 b(;)24 b(unlk)f(fp)464
-511 y(0000000e)g(4e75)357 b(;)24 b(rts)p 1677 573 V 450 599
-a Fg(\012)p 475 599 1176 2 v 1175 w(\011)450 751 y Fm(Using)17
-b(co\013)f(and)h(an)f(88k,)g(some)g(instructions)i(don't)d(ha)o(v)o(e)i
-(enough)450 800 y(space)11 b(in)g(them)f(to)g(represen)o(t)h(the)f(full)i
-(address)e(range,)h(and)g(p)q(oin)o(ters)450 850 y(ha)o(v)o(e)k(to)f(b)q(e)i
-(loaded)g(in)g(t)o(w)o(o)e(parts.)19 b(So)c(y)o(ou'd)g(get)g(something)g(lik)
-o(e:)450 889 y Fg(\013)p 475 889 V 1175 w(\010)p 450 1137 2
-225 v 655 975 a Fh(or.u)119 b(r13,r0,hi16\(_foo+0x123456)o(78\))655
-1025 y(ld.b)g(r2,r13,lo16\(_foo+0x123456)o(78\))655 1075 y(jmp)143
-b(r1)p 1677 1137 V 450 1163 a Fg(\012)p 475 1163 1176 2 v 1175
-w(\011)450 1315 y Fm(This)11 b(whould)g(create)f(t)o(w)o(o)f(relo)q(cs,)j(b)q
-(oth)e(p)q(oin)o(ting)i(to)p 1380 1315 14 2 v 26 w(fo)q(o,)e(and)h(with)450
-1365 y(0x12340000)h(in)j(their)f(addend)h(\014eld.)21 b(The)14
-b(data)g(w)o(ould)g(consist)h(of:)450 1395 y Fg(\013)p 475
-1395 1176 2 v 1175 w(\010)p 450 1942 2 524 v 464 1531 a Fh(RELOCATION)23
-b(RECORDS)g(FOR)g([.text]:)464 1581 y(OFFSET)71 b(TYPE)143
-b(VALUE)464 1630 y(00000002)23 b(HVRT16)95 b(_foo+0x12340000)464
-1680 y(00000006)23 b(LVRT16)95 b(_foo+0x12340000)464 1780 y(00000000)23
-b(5da05678)261 b(;)24 b(or.u)f(r13,r0,0x5678)464 1830 y(00000004)g(1c4d5678)
-261 b(;)24 b(ld.b)f(r2,r13,0x5678)464 1879 y(00000008)g(f400c001)261
-b(;)24 b(jmp)f(r1)p 1677 1942 V 450 1967 a Fg(\012)p 475 1967
-1176 2 v 1175 w(\011)450 2119 y Fm(The)13 b(relo)q(cation)g(routine)h(digs)f
-(out)f(the)h(v)m(alue)h(from)e(the)h(data,)f(adds)450 2169
-y(it)k(to)f(the)h(addend)g(to)g(get)f(the)h(original)g(o\013set)f(and)h(then)
-g(adds)g(the)450 2219 y(v)m(alue)j(of)p 627 2219 14 2 v 34
-w(fo)q(o.)28 b(Note)17 b(that)g(all)i(32)f(bits)g(ha)o(v)o(e)f(to)h(b)q(e)g
-(k)o(ept)g(around)450 2269 y(somewhere,)d(to)f(cop)q(e)i(with)g(carry)e(from)
-h(bit)h(15)e(to)h(bit)g(16.)450 2371 y(On)j(further)f(example)h(is)f(the)h
-(sparc)f(and)g(the)g(a.out)f(format.)25 b(The)450 2421 y(sparc)14
-b(has)g(a)f(similar)j(problem)e(to)g(the)g(88k,)f(in)i(that)e(some)h
-(instruc-)450 2471 y(tions)k(don't)f(ha)o(v)o(e)g(ro)q(om)g(for)f(an)i(en)o
-(tire)g(o\013set,)e(but)i(on)g(the)f(sparc)450 2521 y(the)f(parts)g(are)g
-(created)h(o)q(dd)f(sized)i(lumps.)24 b(The)17 b(designers)g(of)f(the)450
-2570 y(a.out)e(format)f(c)o(hose)h(not)h(to)e(use)i(the)g(data)f(within)i
-(the)e(section)i(for)450 2620 y(storing)11 b(part)f(of)h(the)g(o\013set;)g
-(all)h(the)f(o\013set)f(is)h(k)o(ept)g(within)h(the)g(relo)q(c.)450
-2670 y(An)o(y)j(thing)h(in)g(the)f(data)g(should)h(b)q(e)g(ignored.)0
-2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 26 28
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(26)450 26 y Fg(\013)p
-475 26 1176 2 v 1175 w(\010)p 450 374 2 324 v 655 112 a Fh(save)23
-b(\045sp,-112,\045sp)655 162 y(sethi)g(\045hi\(_foo+0x12345678\),\045g2)655
-212 y(ldsb)g([\045g2+\045lo\(_foo+0x12345678\)],\045i)o(0)655
-262 y(ret)655 311 y(restore)p 1677 374 V 450 399 a Fg(\012)p
-475 399 1176 2 v 1175 w(\011)450 510 y Fm(Both)17 b(relo)q(cs)h(con)o(tains)f
-(a)g(p)q(oin)o(ter)h(to)e(fo)q(o,)h(and)g(the)g(o\013sets)g(w)o(ould)450
-560 y(con)o(tain)e(junk.)450 599 y Fg(\013)p 475 599 V 1175
-w(\010)p 450 1196 2 573 v 464 685 a Fh(RELOCATION)23 b(RECORDS)g(FOR)g
-([.text]:)464 735 y(OFFSET)71 b(TYPE)143 b(VALUE)464 785 y(00000004)23
-b(HI22)143 b(_foo+0x12345678)464 835 y(00000008)23 b(LO10)143
-b(_foo+0x12345678)464 934 y(00000000)23 b(9de3bf90)118 b(;)24
-b(save)f(\045sp,-112,\045sp)464 984 y(00000004)g(05000000)118
-b(;)24 b(sethi)f(\045hi\(_foo+0\),\045g2)464 1034 y(00000008)g(f048a000)118
-b(;)24 b(ldsb)f([\045g2+\045lo\(_foo+0\)],\045i0)464 1084 y(0000000c)g
-(81c7e008)118 b(;)24 b(ret)464 1133 y(00000010)f(81e80000)118
-b(;)24 b(restore)p 1677 1196 V 450 1221 a Fg(\012)p 475 1221
-1176 2 v 1175 w(\011)300 1332 y Fh(section)450 1382 y Fm(The)17
-b(section)g(\014eld)h(is)f(only)g(used)h(when)f(the)g(sym)o(b)q(ol)g(p)q(oin)
-o(ter)g(\014eld)450 1432 y(is)f(n)o(ull.)21 b(It)15 b(supplies)j(the)d
-(section)h(in)o(to)f(whic)o(h)h(the)f(data)g(should)h(b)q(e)450
-1482 y(relo)q(cated.)k(The)14 b(\014eld's)h(main)g(use)f(comes)g(from)f
-(assem)o(blers)h(whic)o(h)450 1532 y(do)j(most)e(of)i(the)f(sym)o(b)q(ol)h
-(\014xups)h(themselv)o(es;)f(an)g(assem)o(bler)g(ma)o(y)450
-1581 y(tak)o(e)12 b(an)g(in)o(ternal)h(reference)h(to)d(a)i(lab)q(el,)h(but)e
-(since)i(it)f(kno)o(ws)f(where)450 1631 y(the)18 b(lab)q(el)j(is,)e(it)f(can)
-h(turn)f(the)h(relo)q(cation)g(request)f(from)g(a)g(sym-)450
-1681 y(b)q(ol)g(lo)q(okup)f(in)o(to)g(a)g(section)g(relativ)o(e)h(relo)q
-(cation)f(-)g(the)g(relo)q(cation)450 1731 y(emitted)f(has)f(no)g(sym)o(b)q
-(ol,)g(just)g(a)g(section)h(to)e(relo)q(cate)i(against.)450
-1792 y(I'm)h(not)f(sure)h(what)g(it)g(means)g(when)g(b)q(oth)g(a)f(sym)o(b)q
-(ol)i(p)q(oin)o(ter)f(an)450 1842 y(a)g(section)g(p)q(oin)o(ter)g(are)g
-(presen)o(t.)25 b(Some)17 b(formats)e(use)i(this)g(sort)f(of)450
-1891 y(mec)o(hanism)e(to)e(describ)q(e)j(PIC)f(relo)q(cations,)g(but)f(bfd)g
-(can't)g(to)g(that)450 1941 y(sort)h(of)h(thing)h(y)o(et.)300
-2002 y Fh(howto)30 b Fm(The)16 b(ho)o(wto)e(\014eld)i(can)g(b)q(e)g(imagined)
-g(as)f(a)g(relo)q(cation)h(instruction.)450 2052 y(It)c(is)h(a)f(p)q(oin)o
-(ter)h(to)f(a)g(struct)g(whic)o(h)h(con)o(tains)g(information)f(on)h(what)450
-2102 y(to)j(do)h(with)g(all)h(the)f(other)f(information)h(in)h(the)e(relo)q
-(c)i(record)f(and)450 2152 y(data)g(section.)27 b(A)17 b(bac)o(k)g(end)h(w)o
-(ould)g(normally)g(ha)o(v)o(e)f(a)g(relo)q(cation)450 2202
-y(instruction)g(set)e(and)h(turn)f(relo)q(cations)i(in)o(to)e(p)q(oin)o(ters)
-h(to)f(the)h(cor-)450 2251 y(rect)i(structure)g(on)g(input)h(-)f(but)g(it)g
-(w)o(ould)g(b)q(e)h(p)q(ossible)h(to)d(create)450 2301 y(eac)o(h)e(ho)o(wto)f
-(\014eld)j(on)e(demand.)0 2429 y Fr(2.7.0.2)30 b(relo)r(c)p
-339 2429 19 3 v 21 w(ho)n(wto)p 522 2429 V 22 w(t)n(yp)r(e)300
-2521 y Fm(The)d Fh(reloc_howto_type)14 b Fm(is)j(a)g(structure)f(whic)o(h)i
-(con)o(tains)f(all)h(the)f(infor-)300 2570 y(mation)e(that)g(bfd)g(needs)h
-(to)f(kno)o(w)f(to)h(tie)h(up)f(a)g(bac)o(k)g(end's)h(data.)390
-2620 y Fh(typedef)23 b(CONST)g(struct)g(reloc_howto_struct)390
-2670 y({)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g
-(t)p 332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 27 29
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(27)300 183 y Ff(The)18
-b(t)o(yp)q(e)g(\014eld)h(has)f(mainly)g(a)g(do)q(cumetary)g(use)g(-)g(the)g
-(bac)o(k)f(end)i(can)f(to)300 233 y(what)f(it)g(w)o(an)o(ts)e(with)i(it,)g
-(though)f(the)h(normally)g(the)f(bac)o(k)h(end's)g(external)300
-283 y(idea)f(of)24 b(what)15 b(a)g(relo)q(c)h(n)o(um)o(b)q(er)g(w)o(ould)g(b)
-q(e)g(w)o(ould)g(b)q(e)g(stored)f(in)h(this)g(\014eld.)300
-333 y(F)l(or)f(example,)f(the)f(a)f(PC)g(relativ)o(e)h(w)o(ord)f(relo)q
-(cation)i(in)f(a)g(co\013)f(en)o(vironmen)o(t)300 382 y(w)o(ould)i(ha)o(v)o
-(e)d(the)h(t)o(yp)q(e)g(023)f(-)h(b)q(ecause)h(that's)e(what)g(the)h(outside)
-g(w)o(orld)g(calls)300 432 y(a)j(R)p 374 432 14 2 v 17 w(PCR)-5
-b(W)o(ORD)15 b(relo)q(c.)438 482 y Fh(unsigned)22 b(int)i(type;)300
-548 y Ff(The)d(v)m(alue)h(the)f(\014nal)h(relo)q(cation)f(is)g(shifted)h
-(righ)o(t)f(b)o(y)l(.)36 b(This)22 b(drops)g(un-)300 598 y(w)o(an)o(ted)15
-b(data)f(from)h(the)g(relo)q(cation.)438 648 y Fh(unsigned)22
-b(int)i(rightshift;)300 714 y Ff(The)17 b(size)g(of)f(the)h(item)g(to)f(b)q
-(e)h(relo)q(cated)g(-)g(0,)f(is)h(one)g(b)o(yte,)f(1)h(is)g(2)f(b)o(ytes,)g
-(3)300 764 y(is)g(four)f(b)o(ytes.)438 814 y Fh(unsigned)22
-b(int)i(size;)300 880 y Ff(No)o(w)15 b(obsolete)438 929 y Fh(unsigned)22
-b(int)i(bitsize;)300 996 y Ff(Notes)16 b(that)f(the)i(relo)q(cation)f(is)h
-(relativ)o(e)g(to)e(the)i(lo)q(cation)g(in)g(the)f(data)g(sec-)300
-1045 y(tion)i(of)f(the)h(addend.)29 b(The)18 b(relo)q(cation)g(function)h
-(will)h(subtract)d(from)g(the)300 1095 y(relo)q(cation)f(v)m(alue)g(the)g
-(address)f(of)g(the)g(lo)q(cation)h(b)q(eing)g(relo)q(cated.)438
-1145 y Fh(boolean)23 b(pc_relative;)300 1211 y Ff(No)o(w)15
-b(obsolete)438 1261 y Fh(unsigned)22 b(int)i(bitpos;)300 1327
-y Ff(No)o(w)15 b(obsolete)438 1377 y Fh(boolean)23 b(absolute;)300
-1443 y Ff(Causes)10 b(the)h(relo)q(cation)h(routine)f(to)f(return)g(an)h
-(error)f(if)h(o)o(v)o(er\015o)o(w)e(is)k(detected)300 1493
-y(when)j(relo)q(cating.)438 1543 y Fh(boolean)23 b(complain_on_overflow;)300
-1609 y Ff(If)10 b(this)h(\014eld)h(is)e(non)h(n)o(ull,)h(then)f(the)f
-(supplied)j(function)e(is)f(called)i(rather)h(than)300 1658
-y(the)k(normal)g(function.)27 b(This)17 b(allo)o(ws)h(really)g(strange)e
-(relo)q(cation)i(metho)q(ds)300 1708 y(to)d(b)q(e)g(accomo)q(dated)g(\(eg,)g
-(i960)g(callj)h(instructions\).)438 1758 y Fh(bfd_reloc_status_enum_ty)o(pe)
-21 b(\(*special_function\)\(\);)300 1824 y Ff(The)15 b(textual)h(name)f(of)g
-(the)g(relo)q(cation)h(t)o(yp)q(e.)438 1874 y Fh(char)23 b(*name;)300
-1940 y Ff(When)17 b(p)q(erforming)h(a)f(partial)g(link,)i(some)d(formats)g(m)
-o(ust)h(mo)q(dify)g(the)j(re-)300 1990 y(lo)q(cations)c(rather)f(than)g(the)g
-(data)f(-)i(this)f(\015ag)g(signals)h(this.)438 2040 y Fh(boolean)23
-b(partial_inplace;)300 2106 y Ff(The)16 b(src)p 453 2106 V
-16 w(mask)f(is)h(used)g(to)f(select)h(what)f(parts)g(of)g(the)g(read)g(in)i
-(data)d(are)i(to)300 2156 y(b)q(e)j(used)f(in)h(the)f(relo)q(cation)g(sum.)28
-b(Eg,)18 b(if)h(this)f(w)o(as)f(an)h(8)f(bit)i(bit)f(of)g(data)300
-2205 y(whic)o(h)i(w)o(e)e(read)h(and)g(relo)q(cated,)h(this)g(w)o(ould)f(b)q
-(e)g(0x000000\013.)29 b(When)19 b(w)o(e)300 2255 y(ha)o(v)o(e)d(relo)q(cs)e
-(whic)o(h)h(ha)o(v)o(e)e(an)g(addend,)i(suc)o(h)f(as)f(sun4)h(extended)h
-(relo)q(cs,)f(the)300 2305 y(v)m(alue)22 b(in)d(the)f(o\013set)f(part)g(of)h
-(a)g(relo)q(cating)g(\014eld)i(is)e(garbage)f(so)h(w)o(e)g(nev)o(er)300
-2355 y(use)g(it.)i(In)c(this)g(case)f(the)g(mask)g(w)o(ould)g(b)q(e)h
-(0x00000000.)438 2405 y Fh(bfd_word)22 b(src_mask;)300 2471
-y Ff(The)11 b(dst)p 453 2471 V 16 w(mask)f(is)h(what)f(parts)g(of)g(the)h
-(instruction)g(are)f(replaced)i(in)o(to)f(the)i(in-)300 2521
-y(struction.)19 b(In)c(most)e(cases)g(src)p 846 2521 V 17 w(mask)g(==)h(dst)p
-1124 2521 V 17 w(mask,)f(except)h(in)h(the)e(ab)q(o)o(v)o(e)300
-2570 y(sp)q(ecial)25 b(case,)h(where)e(dst)p 780 2570 V 16
-w(mask)f(w)o(ould)h(b)q(e)g(0x000000\013,)f(and)h(src)p 1534
-2570 V 16 w(mask)300 2620 y(w)o(ould)17 b(b)q(e)f(0x00000000.)438
-2670 y Fh(bfd_word)22 b(dst_mask;)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 28 30
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(28)300 183 y Ff(When)18
-b(some)g(formats)e(create)i(PC)f(relativ)o(e)i(instructions,)g(they)f(lea)o
-(v)o(e)g(the)300 233 y(v)m(alue)g(of)f(the)g(p)q(c)g(of)g(the)g(place)g(b)q
-(eing)i(relo)q(cated)e(in)h(the)f(o\013set)f(slot)g(of)h(the)300
-283 y(instruction,)22 b(so)e(that)g(a)g(PC)g(relativ)o(e)h(relo)q(cation)h
-(can)e(b)q(e)h(made)g(just)f(b)o(y)300 333 y(adding)15 b(in)f(an)g(ordinary)g
-(o\013set)f(\(eg)g(sun3)h(a.out\).)k(Some)c(formats)e(lea)o(v)o(e)i(the)300
-382 y(displacemen)o(t)19 b(part)f(of)f(an)h(instruction)h(empt)o(y)f(\(eg)f
-(m88k)g(b)q(cs\),)i(this)f(\015ag)300 432 y(signals)e(the)f(fact.)438
-482 y Fh(boolean)23 b(pcrel_offset;)390 532 y(})h(reloc_howto_type;)0
-677 y Fr(2.7.0.3)30 b(HO)n(WTO)300 770 y Fm(The)15 b(HO)o(WTO)h(de\014ne)g
-(is)g(horrible)g(and)g(will)g(go)f(a)o(w)o(a)o(y)l(.)300 808
-y Fg(\013)p 325 808 1326 2 v 1325 w(\010)p 300 1057 2 225 v
-314 895 a Fh(#define)23 b(HOWTO\(C,)g(R,S,B,)g(P,)g(BI,)h(ABS,)f(O,)h(SF,)f
-(NAME,)g(INPLACE,)314 945 y(MASKSRC,)g(MASKDST,)g(PC\))g(\\)362
-994 y({\(unsigned\)C,R,S,B,)e(P,)j(BI,)f(ABS,O,SF,NAME,INPLACE,MASKS)o
-(RC,MASKD)o(ST,PC})p 1988 1004 21 42 v 1677 1057 2 225 v 300
-1082 a Fg(\012)p 325 1082 1326 2 v 1325 w(\011)0 1277 y Fr(2.7.0.4)30
-b(relo)r(c)p 339 1277 19 3 v 21 w(c)n(hain)300 1336 y Fg(\013)p
-325 1336 1326 2 v 1325 w(\010)p 300 1784 2 424 v 314 1422 a
-Fh(typedef)23 b(unsigned)g(char)g(bfd_byte;)314 1522 y(typedef)g(struct)g
-(relent_chain)f({)362 1572 y(arelent)h(relent;)362 1622 y(struct)71
-b(relent_chain)22 b(*next;)314 1672 y(})i(arelent_chain;)p
-1677 1784 V 300 1809 a Fg(\012)p 325 1809 1326 2 v 1325 w(\011)300
-1923 y Fm(If)e(an)f(output)p 558 1923 14 2 v 16 w(bfd)h(is)g(supplied)i(to)d
-(this)h(function)g(the)f(generated)h(image)300 1973 y(will)16
-b(b)q(e)e(relo)q(catable,)h(the)f(relo)q(cations)g(are)g(copied)h(to)e(the)h
-(output)g(\014le)h(after)300 2022 y(they)g(ha)o(v)o(e)f(b)q(een)i(c)o(hanged)
-f(to)g(re\015ect)g(the)g(new)g(state)f(of)g(the)h(w)o(orld.)20
-b(There)300 2072 y(are)15 b(t)o(w)o(o)g(w)o(a)o(ys)f(of)h(re\015ecting)i(the)
-f(results)g(of)f(partial)h(link)m(age)h(in)g(an)e(output)300
-2122 y(\014le;)22 b(b)o(y)d(mo)q(difying)h(the)g(output)f(data)f(in)i(place,)
-h(and)e(b)o(y)g(mo)q(difying)i(the)300 2172 y(relo)q(cation)h(record.)38
-b(Some)21 b(nativ)o(e)g(formats)f(\(eg)h(basic)h(a.out)e(and)h(basic)300
-2222 y(co\013)t(\))14 b(ha)o(v)o(e)h(no)g(w)o(a)o(y)f(of)h(sp)q(ecifying)i
-(an)f(addend)g(in)g(the)f(relo)q(cation)h(t)o(yp)q(e,)f(so)300
-2271 y(the)f(addend)h(has)e(to)g(go)h(in)g(the)g(output)g(data.)19
-b(This)14 b(is)g(no)g(big)h(deal)f(since)h(in)300 2321 y(these)g(formats)e
-(the)i(output)f(data)g(slot)g(will)j(alw)o(a)o(ys)d(b)q(e)h(big)g(enough)g
-(for)f(the)300 2371 y(addend.)30 b(Complex)19 b(relo)q(c)g(t)o(yp)q(es)f
-(with)g(addends)h(w)o(ere)f(in)o(v)o(en)o(ted)h(to)f(solv)o(e)300
-2421 y(just)d(this)h(problem.)390 2471 y Fh(PROTO\(bfd_reloc_status_enu)o
-(m_type,)772 2521 y(bfd_perform_relocation,)963 2570 y(\(bfd)23
-b(*)h(abfd,)963 2620 y(arelent)f(*reloc_entry,)963 2670 y(PTR)g(data,)0
-2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 29 31
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(29)963 183 y Fh(asection)22
-b(*input_section,)963 233 y(bfd)h(*output_bfd\)\);)0 2770 y
-Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 30 32
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(30)0 183 y Fn(2.8)33
-b(Core)21 b(\014les)300 275 y Fm(Bu\013)15 b(output)g(this)h(facinating)g
-(topic)0 407 y Fr(2.8.0.1)30 b(bfd)p 296 407 19 3 v 22 w(core)p
-429 407 V 22 w(\014le)p 530 407 V 22 w(failing)p 717 407 V
-21 w(command)300 499 y Fm(Returns)22 b(a)g(read-only)h(string)e(explaining)k
-(what)c(program)g(w)o(as)g(running)300 549 y(when)16 b(it)f(failed)i(and)e
-(pro)q(duced)h(the)g(core)f(\014le)h(b)q(eing)g(read)390 598
-y Fh(PROTO\(CONST)22 b(char)i(*,)f(bfd_core_file_failing_comman)o(d,)390
-648 y(\(bfd)g(*\)\);)0 781 y Fr(2.8.0.2)30 b(bfd)p 296 781
-V 22 w(core)p 429 781 V 22 w(\014le)p 530 781 V 22 w(failing)p
-717 781 V 21 w(signal)300 872 y Fm(Returns)17 b(the)f(signal)h(n)o(um)o(b)q
-(er)g(whic)o(h)g(caused)g(the)f(core)h(dump)g(whic)o(h)g(gen-)300
-922 y(erated)e(the)g(\014le)i(the)e(bfd)g(is)h(attatc)o(hed)e(to.)390
-972 y Fh(PROTO\(int,)22 b(bfd_core_file_failing_signal,)e(\(bfd)k(*\)\);)0
-1105 y Fr(2.8.0.3)30 b(core)p 320 1105 V 22 w(\014le)p 421
-1105 V 22 w(matc)n(hes)p 659 1105 V 23 w(executable)p 964 1105
-V 22 w(p)300 1196 y Fm(Returns)15 b Fh(true)g Fm(if)g(the)g(core)g(\014le)h
-(attatc)o(hed)e(to)h Ff(core)p 1214 1196 14 2 v 16 w(bfd)i
-Fm(w)o(as)d(generated)h(b)o(y)300 1246 y(a)g(run)g(of)g(the)g(executable)i
-(\014le)f(attatc)o(hed)e(to)h Ff(exec)p 1194 1246 V 17 w(bfd)p
-Fm(,)g(or)g(else)h Fh(false)p Fm(.)390 1296 y Fh(PROTO\(boolean,)22
-b(core_file_matches_executab)o(le_p,)485 1346 y(\(bfd)i(*core_bfd,)e(bfd)i
-(*exec_bfd\)\);)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6
-b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 31 33
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(31)0 183 y Fn(2.9)33
-b(T)-6 b(argets)300 276 y Fm(Eac)o(h)17 b(p)q(ort)g(of)g(BFD)g(to)f(a)h
-(di\013eren)o(t)h(mac)o(hine)g(requries)g(the)f(creation)g(of)g(a)300
-325 y(target)11 b(bac)o(k)g(end.)20 b(All)13 b(the)f(bac)o(k)g(end)g(pro)o
-(vides)h(to)e(the)h(ro)q(ot)f(part)g(of)h(bfd)g(is)g(a)300
-375 y(structure)h(con)o(taining)i(p)q(oin)o(ters)f(to)f(functions)h(whic)o(h)
-h(p)q(erform)e(certain)h(lo)o(w)300 425 y(lev)o(el)k(op)q(erations)e(on)g
-(\014les.)25 b(BFD)15 b(translates)h(the)h(applications's)g(requests)300
-475 y(through)e(a)g(p)q(oin)o(ter)g(in)o(to)h(calls)g(to)e(the)i(bac)o(k)f
-(end)h(routines.)300 538 y(When)e(a)g(\014le)h(is)f(op)q(ened)h(with)f
-Fh(bfd_openr)p Fm(,)f(its)h(format)e(and)i(target)f(are)g(un-)300
-588 y(kno)o(wn.)19 b(BFD)12 b(uses)i(v)m(arious)f(mec)o(hanisms)h(to)e
-(determine)i(ho)o(w)e(to)h(in)o(terpret)300 638 y(the)i(\014le.)21
-b(The)16 b(op)q(eratios)f(p)q(erformed)g(are:)337 701 y Fq(\017)30
-b Fm(First)17 b(a)g(bfd)h(is)g(created)g(b)o(y)f(calling)i(the)f(in)o(ternal)
-g(routine)32 b Fh(new_bfd)p Fm(,)390 751 y(then)15 b Fh(bfd_find_target)f
-Fm(is)h(called)i(with)e(the)h(target)d(string)j(supplied)390
-800 y(to)f Fh(bfd_openr)e Fm(and)j(the)f(new)h(bfd)f(p)q(oin)o(ter.)337
-864 y Fq(\017)30 b Fm(If)21 b(a)f(n)o(ull)h(target)e(string)i(w)o(as)e(pro)o
-(vided)i(to)51 b Fh(bfd_find_target)p Fm(,)19 b(it)390 914
-y(lo)q(oks)d(up)h(the)f(en)o(vironmen)o(t)g(v)m(ariable)23
-b Fh(GNUTARGET)15 b Fm(and)i(uses)f(that)f(as)390 963 y(the)g(target)f
-(string.)337 1027 y Fq(\017)30 b Fm(If)12 b(the)h(target)e(string)h(is)g
-(still)i(NULL,)f(or)e(the)i(target)e(string)h(is)g Fh(default)p
-Fm(,)390 1076 y(then)h(the)f(\014rst)g(item)g(in)h(the)g(target)e(v)o(ector)g
-(is)i(used)g(as)f(the)g(target)f(t)o(yp)q(e.)390 1126 y(See)16
-b Fq(h)p Fm(unde\014ned)p Fq(i)g Fm([targets],)d(page)i Fq(h)p
-Fm(unde\014ned)p Fq(i)p Fm(.)337 1189 y Fq(\017)30 b Fm(Otherwise,)19
-b(the)e(elemen)o(ts)h(in)h(the)e(target)g(v)o(ector)f(are)h(insp)q(ected)j
-(one)390 1239 y(b)o(y)f(one,)h(un)o(til)g(a)f(matc)o(h)f(on)h(target)f(name)h
-(is)h(found.)32 b(When)19 b(found,)390 1289 y(that)14 b(is)i(used.)337
-1352 y Fq(\017)30 b Fm(Otherwise)15 b(the)f(error)g Fh(invalid_target)e
-Fm(is)j(returned)f(to)g Fh(bfd_openr)p Fm(.)337 1415 y Fq(\017)30
-b Fh(bfd_openr)13 b Fm(attempts)g(to)g(op)q(en)i(the)f(\014le)h(using)g
-Fh(bfd_open_file)p Fm(,)d(and)390 1465 y(returns)j(the)g(bfd.)300
-1528 y(Once)e(the)g(bfd)f(has)g(b)q(een)i(op)q(ened)f(and)g(the)f(target)f
-(selected,)j(the)e(\014le)h(format)300 1578 y(ma)o(y)j(b)q(e)h(determined.)26
-b(This)17 b(is)g(done)g(b)o(y)g(calling)27 b Fh(bfd_check_format)14
-b Fm(on)300 1628 y(the)f(bfd)h(with)g(a)f(suggested)g(format.)18
-b(The)13 b(routine)h(returns)f Fh(true)g Fm(when)h(the)300
-1678 y(application)j(guesses)e(righ)o(t.)0 1819 y Fr(2.9.0.1)30
-b(bfd)p 296 1819 19 3 v 22 w(target)0 1990 y(2.9.1)g(bfd)p
-248 1990 V 22 w(target)300 2082 y Fm(This)16 b(structure)f(con)o(tains)h(ev)o
-(erything)g(that)f(BFD)g(kno)o(ws)g(ab)q(out)g(a)h(target.)300
-2132 y(It)g(includes)i(things)f(lik)o(e)g(its)f(b)o(yte)f(order,)h(name,)g
-(what)f(routines)h(to)g(call)h(to)300 2181 y(do)e(v)m(arious)h(op)q
-(erations,)f(etc.)300 2245 y(Ev)o(ery)g(BFD)g(p)q(oin)o(ts)g(to)g(a)g(target)
-f(structure)h(with)g(its)g Fh(")p Fm(xv)o(ec)p Fh(")g Fm(mem)o(b)q(er.)300
-2308 y(Shortcut)f(for)g(declaring)h(\014elds)h(whic)o(h)f(are)f(protot)o(yp)q
-(ed)g(function)h(p)q(oin)o(ters,)300 2358 y(while)i(a)o(v)o(oiding)e(anguish)
-h(on)f(compilers)i(that)d(don't)h(supp)q(ort)g(protos.)390
-2408 y Fh(#define)23 b(SDEF\(ret,)g(name,)g(arglist\))f(\\)772
-2457 y(PROTO\(ret,\(*name\),arglist)o(\))390 2507 y(#define)h(SDEF_FMT\(ret,)
-f(name,)h(arglist\))g(\\)772 2557 y(PROTO\(ret,\(*name[bfd_type)o(_end]\),)o
-(arglist)o(\))p 2026 2567 21 42 v 300 2620 a Fm(These)34 b(macros)e(are)h
-(used)g(to)g(dispatc)o(h)h(to)e(functions)i(through)f(the)300
-2670 y(bfd)p 367 2670 14 2 v 17 w(target)21 b(v)o(ector.)40
-b(They)22 b(are)g(used)h(in)g(a)f(n)o(um)o(b)q(er)g(of)g(macros)f(further)0
-2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 32 34
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(32)300 183 y Fm(do)o(wn)19
-b(in)h(bfd.h,)h(and)e(are)g(also)g(used)h(when)g(calling)h(v)m(arious)f
-(routines)g(b)o(y)300 233 y(hand)e(inside)i(the)e(bfd)g(implemen)o(tation.)29
-b(The)18 b Fh(")p Fm(arglist)p Fh(")g Fm(argumen)o(t)f(m)o(ust)300
-283 y(b)q(e)12 b(paren)o(thesized;)i(it)e(con)o(tains)g(all)h(the)e(argumen)o
-(ts)g(to)g(the)h(called)h(function.)390 333 y Fh(#define)23
-b(BFD_SEND\(bfd,)f(message,)h(arglist\))g(\\)748 382 y
-(\(\(*\(\(bfd\)->xvec->message\)\))d(arglist\))300 447 y Fm(F)l(or)15
-b(op)q(erations)g(whic)o(h)h(index)g(on)g(the)f(bfd)g(format)390
-497 y Fh(#define)23 b(BFD_SEND_FMT\(bfd,)e(message,)i(arglist\))g(\\)676
-547 y(\(\(\(bfd\)->xvec->message[\(int\)\()o(\(bfd\)->)o(format\))o(]\))p
-2050 557 21 42 v 390 597 a(arglist\))300 662 y Fm(This)15 b(is)f(the)h
-(struct)e(whic)o(h)i(de\014nes)g(the)g(t)o(yp)q(e)f(of)g(BFD)f(this)i(is.)20
-b(The)14 b Fh(")p Fm(xv)o(ec)p Fh(")300 711 y Fm(mem)o(b)q(er)f(of)f(the)h
-(struct)g(bfd)g(itself)h(p)q(oin)o(ts)f(here.)19 b(Eac)o(h)13
-b(mo)q(dule)h(that)e(imple-)300 761 y(men)o(ts)j(access)g(to)g(a)g
-(di\013eren)o(t)g(target)f(under)i(BFD,)e(de\014nes)j(one)e(of)g(these.)300
-826 y(FIXME,)i(these)h(names)g(should)h(b)q(e)f(rationalised)h(with)g(the)f
-(names)f(of)h(the)300 876 y(en)o(try)e(p)q(oin)o(ts)i(whic)o(h)f(call)h
-(them.)25 b(T)l(o)q(o)16 b(bad)h(w)o(e)g(can't)f(ha)o(v)o(e)h(one)g(macro)f
-(to)300 926 y(de\014ne)g(them)f(b)q(oth!)390 976 y Fh(typedef)23
-b(struct)g(bfd_target)390 1025 y({)300 1090 y Ff(iden)o(ti\014es)17
-b(the)e(kind)h(of)f(target,)f(eg)h(SunOS4,)h(Ultrix,)f(etc)438
-1140 y Fh(char)23 b(*name;)300 1205 y Ff(The)11 b Fh(")p Ff(\015a)o(v)o(our)p
-Fh(")g Ff(of)f(a)h(bac)o(k)g(end)h(is)g(a)f(general)g(indication)i(ab)q(out)e
-(the)h(con)o(ten)o(ts)300 1255 y(of)j(a)g(\014le.)438 1304
-y Fh(enum)23 b(target_flavour_enum)e({)485 1354 y
-(bfd_target_aout_flavour_enum,)485 1404 y(bfd_target_coff_flavour_enum,)485
-1454 y(bfd_target_ieee_flavour_enum,)485 1504 y
-(bfd_target_oasys_flavour_enum)o(,)485 1554 y(bfd_target_srec_flavour_enum})f
-(flavour;)300 1618 y Ff(The)15 b(order)g(of)g(b)o(ytes)g(within)h(the)g(data)
-e(area)h(of)g(a)g(\014le.)438 1668 y Fh(boolean)23 b(byteorder_big_p;)300
-1733 y Ff(The)15 b(order)g(of)g(b)o(ytes)g(within)h(the)g(header)f(parts)g
-(of)g(a)g(\014le.)438 1783 y Fh(boolean)23 b(header_byteorder_big_p;)300
-1848 y Ff(This)c(is)f(a)g(mask)g(of)g(all)h(the)f(\015ags)g(whic)o(h)h(an)f
-(executable)i(ma)o(y)d(ha)o(v)o(e)h(set)g(-)300 1897 y(from)c(the)i(set)f
-Fh(NO_FLAGS)p Ff(,)e Fh(HAS_RELOC)p Ff(,)h(...)p Fh(D_PAGED)p
-Ff(.)438 1947 y Fh(flagword)22 b(object_flags;)300 2012 y Ff(This)c(is)g(a)f
-(mask)f(of)h(all)i(the)e(\015ags)g(whic)o(h)h(a)f(section)h(ma)o(y)e(ha)o(v)o
-(e)h(set)g(-)h(from)300 2062 y(the)d(set)g Fh(SEC_NO_FLAGS)p
-Ff(,)e Fh(SEC_ALLOC)p Ff(,)h(...)p Fh(SET_NEVER_LOAD)p Ff(.)438
-2112 y Fh(flagword)22 b(section_flags;)300 2177 y Ff(The)15
-b(pad)h(c)o(haracter)e(for)h(\014lenames)h(within)h(an)e(arc)o(hiv)o(e)g
-(header.)438 2226 y Fh(char)23 b(ar_pad_char;)300 2291 y Ff(The)15
-b(maxim)o(um)h(n)o(um)o(b)q(er)f(of)g(c)o(haracters)f(in)i(an)f(arc)o(hiv)o
-(e)h(header.)414 2341 y Fh(unsigned)23 b(short)g(ar_max_namelen;)300
-2406 y Ff(The)15 b(minim)o(um)i(alignmen)o(t)f(restriction)f(for)g(an)o(y)g
-(section.)438 2456 y Fh(unsigned)22 b(int)i(align_power_min;)300
-2521 y Ff(En)o(tries)16 b(for)f(b)o(yte)h(sw)o(apping)g(for)g(data.)21
-b(These)16 b(are)g(di\013eren)o(t)g(to)f(the)h(other)300 2570
-y(en)o(try)j(p)q(oin)o(ts,)i(since)g(they)e(don't)g(tak)o(e)g(bfd)h(as)f
-(\014rst)g(arg.)33 b(Certain)19 b(other)300 2620 y(handlers)f(could)e(do)f
-(the)h(same.)438 2670 y Fh(SDEF)23 b(\(bfd_vma,)142 b(bfd_getx64,)22
-b(\(bfd_byte)h(*\)\);)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 33 35
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(33)438 183 y Fh(SDEF)23
-b(\(void,)214 b(bfd_putx64,)22 b(\(bfd_vma,)h(bfd_byte)390
-233 y(*\)\);)438 283 y(SDEF)g(\(bfd_vma,)g(bfd_getx32,)f(\(bfd_byte)h(*\)\);)
-438 333 y(SDEF)g(\(void,)214 b(bfd_putx32,)22 b(\(bfd_vma,)h(bfd_byte)390
-382 y(*\)\);)438 432 y(SDEF)g(\(bfd_vma,)g(bfd_getx16,)f(\(bfd_byte)h(*\)\);)
-438 482 y(SDEF)g(\(void,)214 b(bfd_putx16,)22 b(\(bfd_vma,)h(bfd_byte)390
-532 y(*\)\);)300 600 y Ff(Byte)15 b(sw)o(apping)h(for)e(the)i(headers)438
-650 y Fh(SDEF)23 b(\(bfd_vma,)70 b(bfd_h_getx64,)22 b(\(bfd_byte)h(*\)\);)438
-700 y(SDEF)g(\(void,)238 b(bfd_h_putx64,)22 b(\(bfd_vma,)h(bfd_byte)p
-2002 710 21 42 v 390 749 a(*\)\);)438 799 y(SDEF)g(\(bfd_vma,)47
-b(bfd_h_getx32,)22 b(\(bfd_byte)g(*\)\);)438 849 y(SDEF)h(\(void,)238
-b(bfd_h_putx32,)22 b(\(bfd_vma,)h(bfd_byte)p 2002 859 V 390
-899 a(*\)\);)438 949 y(SDEF)g(\(bfd_vma,)47 b(bfd_h_getx16,)22
-b(\(bfd_byte)g(*\)\);)438 998 y(SDEF)h(\(void,)238 b(bfd_h_putx16,)22
-b(\(bfd_vma,)h(bfd_byte)p 2002 1009 V 390 1048 a(*\)\);)300
-1116 y Ff(F)l(ormat)17 b(dep)q(enden)o(t)i(routines,)g(these)g(turn)f(in)o
-(to)g(v)o(ectors)f(of)h(en)o(try)g(p)q(oin)o(ts)300 1166 y(within)e(the)g
-(target)e(v)o(ector)g(structure;)h(one)g(for)g(eac)o(h)g(format)f(to)g(c)o
-(hec)o(k.)300 1234 y(Chec)o(k)h(the)h(format)e(of)g(a)h(\014le)h(b)q(eing)h
-(read.)j(Return)15 b(bfd)p 1288 1234 14 2 v 17 w(target)f(*)h(or)g(zero.)438
-1284 y Fh(SDEF_FMT)22 b(\(struct)h(bfd_target)g(*,)g(_bfd_check_format,)390
-1334 y(\(bfd)g(*\)\);)300 1402 y Ff(Set)15 b(the)h(format)d(of)i(a)g(\014le)h
-(b)q(eing)h(written.)438 1452 y Fh(SDEF_FMT)22 b(\(boolean,)286
-b(_bfd_set_format,)21 b(\(bfd)390 1501 y(*\)\);)300 1569 y
-Ff(W)l(rite)15 b(cac)o(hed)h(information)f(in)o(to)h(a)f(\014le)h(b)q(eing)g
-(written,)f(at)g(bfd)p 1441 1569 V 16 w(close.)438 1619 y Fh(SDEF_FMT)22
-b(\(boolean,)286 b(_bfd_write_contents,)390 1669 y(\(bfd)23
-b(*\)\);)300 1737 y Ff(The)15 b(follo)o(wing)g(functions)g(are)f(de\014ned)h
-(in)g Fh(JUMP_TABLE)p Ff(.)j(The)d(idea)g(is)i(that)300 1787
-y(the)e(bac)o(k)h(end)g(writer)f(of)h Fh(foo)f Ff(names)g(all)h(the)g
-(routines)i Fh(foo_)p Ff(en)o(try)p 1506 1787 V 16 w(p)q(oin)o(t,)300
-1837 y Fh(JUMP_TABLE)12 b Ff(will)j(built)g(the)f(en)o(tries)i(in)e(this)g
-(structure)f(in)i(the)e(righ)o(t)h(order.)300 1905 y(Core)h(\014le)h(en)o
-(try)f(p)q(oin)o(ts)438 1954 y Fh(SDEF)23 b(\(char)g(*,)h
-(_core_file_failing_comman)o(d,)d(\(bfd)i(*\)\);)438 2004 y(SDEF)g(\(int,)95
-b(_core_file_failing_signal)o(,)21 b(\(bfd)i(*\)\);)438 2054
-y(SDEF)g(\(boolean,)g(_core_file_matches_execu)o(table_p)o(,)e(\(bfd)390
-2104 y(*,)j(bfd)f(*\)\);)300 2172 y Ff(Arc)o(hiv)o(e)16 b(en)o(try)f(p)q(oin)
-o(ts)414 2222 y Fh(SDEF)23 b(\(boolean,)g(_bfd_slurp_armap,)e(\(bfd)j(*\)\);)
-414 2271 y(SDEF)f(\(boolean,)g(_bfd_slurp_extended_name_)o(table,)d(\(bfd)390
-2321 y(*\)\);)414 2371 y(SDEF)j(\(void,)71 b(_bfd_truncate_arname,)21
-b(\(bfd)i(*,)h(CONST)390 2421 y(char)f(*,)h(char)f(*\)\);)414
-2471 y(SDEF)g(\(boolean,)g(write_armap,)f(\(bfd)h(*arch,)1106
-2521 y(unsigned)g(int)g(elength,)1106 2570 y(struct)g(orl)g(*map,)1106
-2620 y(int)g(orl_count,)1106 2670 y(int)g(stridx\)\);)0 2770
-y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 34 36
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(34)300 183 y Ff(Standard)i
-(stu\013.)438 233 y Fh(SDEF)23 b(\(boolean,)g(_close_and_cleanup,)e(\(bfd)i
-(*\)\);)438 283 y(SDEF)g(\(boolean,)g(_bfd_set_section_content)o(s,)e(\(bfd)i
-(*,)390 333 y(sec_ptr,)g(PTR,)1440 382 y(file_ptr,)390 432
-y(bfd_size_type\)\);)438 482 y(SDEF)g(\(boolean,)g(_bfd_get_section_content)o
-(s,)e(\(bfd)i(*,)390 532 y(sec_ptr,)g(PTR,)1440 582 y(file_ptr,)390
-632 y(bfd_size_type\)\);)438 681 y(SDEF)g(\(boolean,)g(_new_section_hook,)e
-(\(bfd)i(*,)h(sec_ptr\)\);)300 777 y Ff(Sym)o(b)q(ols)16 b(and)f(relo)q
-(ctions)414 827 y Fh(SDEF)23 b(\(unsigned)g(int,)g(_get_symtab_upper_bound,)e
-(\(bfd)390 877 y(*\)\);)438 927 y(SDEF)i(\(unsigned)g(int,)g
-(_bfd_canonicalize_symtab,)652 976 y(\(bfd)h(*,)f(struct)g
-(symbol_cache_entry)f(**\)\);)438 1026 y(SDEF)h(\(unsigned)g(int,)g
-(_get_reloc_upper_bound,)e(\(bfd)390 1076 y(*,)j(sec_ptr\)\);)438
-1126 y(SDEF)f(\(unsigned)g(int,)g(_bfd_canonicalize_reloc,)e(\(bfd)390
-1176 y(*,)j(sec_ptr,)e(arelent)h(**,)1512 1225 y(struct)390
-1275 y(symbol_cache_entry**\)\);)438 1325 y(SDEF)g(\(struct)g
-(symbol_cache_entry)45 b(*,)24 b(_bfd_make_empty_symbol,)p
-2146 1335 21 42 v 390 1375 a(\(bfd)f(*\)\);)438 1425 y(SDEF)g(\(void,)119
-b(_bfd_print_symbol,)21 b(\(bfd)i(*,)h(PTR,)f(struct)p 2026
-1435 V 390 1474 a(symbol_cache_entry)45 b(*,)1297 1524 y
-(bfd_print_symbol_enum_typ)o(e\)\);)p 2289 1534 V 390 1574
-a(#define)23 b(bfd_print_symbol\(b,p,s,e\))d(BFD_SEND\(b,)j
-(_bfd_print_symbol,)p 2217 1584 V 390 1624 a(\(b,p,s,e\)\))438
-1674 y(SDEF)g(\(alent)g(*,)71 b(_get_lineno,)23 b(\(bfd)g(*,)h(struct)f(sym-)
-390 1724 y(bol_cache_entry)46 b(*\)\);)438 1823 y(SDEF)23 b(\(boolean,)70
-b(_bfd_set_arch_mach,)22 b(\(bfd)h(*,)h(enum)390 1873 y(bfd_architecture,)
-1321 1923 y(unsigned)e(long\)\);)p 2002 1933 V 438 2022 a(SDEF)h(\(bfd)g(*,)
-48 b(openr_next_archived_file,)20 b(\(bfd)k(*arch,)390 2072
-y(bfd)f(*prev\)\);)438 2122 y(SDEF)g(\(boolean,)g(_bfd_find_nearest_line,)581
-2172 y(\(bfd)g(*abfd,)g(struct)g(sec)48 b(*section,)605 2222
-y(struct)23 b(symbol_cache_entry)45 b(**symbols,bfd_vma)390
-2271 y(offset,)581 2321 y(CONST)23 b(char)g(**file,)g(CONST)g(char)h(**func,)
-f(unsigned)390 2371 y(int)g(*line\)\);)438 2421 y(SDEF)g(\(int,)95
-b(_bfd_stat_arch_elt,)21 b(\(bfd)i(*,)h(struct)390 2471 y(stat)f(*\)\);)438
-2570 y(SDEF)g(\(int,)95 b(_bfd_sizeof_headers,)21 b(\(bfd)i(*,)h
-(boolean\)\);)p 2002 2576 21 38 v 438 2670 a(SDEF)f(\(void,)g
-(_bfd_debug_info_start,)e(\(bfd)i(*\)\);)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)
-36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 35 37
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(35)438 183 y Fh(SDEF)23
-b(\(void,)g(_bfd_debug_info_end,)e(\(bfd)j(*\)\);)438 233 y(SDEF)f(\(void,)g
-(_bfd_debug_info_accumulate,)d(\(bfd)k(*,)f(struct)p 2026 243
-21 42 v 390 283 a(sec)47 b(*\)\);)300 345 y Ff(Sp)q(ecial)17
-b(en)o(try)e(p)q(oin)o(ts)h(for)e(gdb)i(to)e(sw)o(ap)h(in)h(co\013)e(sym)o(b)
-q(ol)i(table)g(parts)438 395 y Fh(SDEF\(void,)22 b(_bfd_coff_swap_aux_in,\()
-557 445 y(bfd)286 b(*abfd)23 b(,)557 495 y(PTR)310 b(ext,)557
-544 y(int)g(type,)557 594 y(int)g(class)23 b(,)557 644 y(PTR)310
-b(in\)\);)438 744 y(SDEF\(void,)22 b(_bfd_coff_swap_sym_in,\()557
-793 y(bfd)286 b(*abfd)23 b(,)557 843 y(PTR)310 b(ext,)557 893
-y(PTR)g(in\)\);)438 993 y(SDEF\(void,)22 b(_bfd_coff_swap_lineno_in,)45
-b(\()557 1043 y(bfd)286 b(*abfd,)557 1092 y(PTR)g(ext,)557
-1142 y(PTR)310 b(in\)\);)390 1242 y(})24 b(bfd_target;)0 1375
-y Fr(2.9.1.1)30 b(bfd)p 296 1375 19 3 v 22 w(\014nd)p 420 1375
-V 22 w(target)300 1466 y Fm(Returns)15 b(a)f(p)q(oin)o(ter)h(to)f(the)h
-(transfer)f(v)o(ector)g(for)g(the)g(ob)s(ject)g(target)g(named)300
-1516 y(target)p 423 1516 14 2 v 15 w(name.)26 b(If)18 b(target)p
-751 1516 V 15 w(name)f(is)h(NULL,)g(c)o(ho)q(oses)f(the)g(one)h(in)g(the)f
-(en)o(vi-)300 1566 y(ronmen)o(t)f(v)m(ariable)i(GNUT)l(AR)o(GET;)e(if)h(that)
-g(is)g(n)o(ull)h(or)e(not)h(de\014ned)h(then)300 1615 y(the)d(\014rst)g(en)o
-(try)g(in)h(the)f(target)f(list)i(is)g(c)o(hosen.)k(P)o(assing)15
-b(in)h(the)f(string)h Fh(")p Fm(de-)300 1665 y(fault)p Fh(")d
-Fm(or)f(setting)h(the)g(en)o(vironmen)o(t)g(v)m(ariable)i(to)d
-Fh(")p Fm(default)p Fh(")h Fm(will)i(cause)e(the)300 1715 y(\014rst)k(en)o
-(try)h(in)h(the)f(target)e(list)j(to)e(b)q(e)h(returned,)h(and)f
-Fh(")p Fm(target)p 1431 1715 V 15 w(defaulted)p Fh(")300 1765
-y Fm(will)f(b)q(e)g(set)e(in)i(the)e(bfd.)22 b(This)16 b(causes)g(bfd)p
-1062 1765 V 17 w(c)o(hec)o(k)p 1186 1765 V 17 w(format)e(to)h(lo)q(op)h(o)o
-(v)o(er)f(all)300 1815 y(the)g(targets)f(to)h(\014nd)h(the)f(one)g(that)g
-(matc)o(hes)g(the)g(\014le)h(b)q(eing)g(read.)390 1864 y Fh
-(PROTO\(bfd_target)22 b(*,)h(bfd_find_target,\(CONST)e(char)i(*,)390
-1914 y(bfd)g(*\)\);)0 2047 y Fr(2.9.1.2)30 b(bfd)p 296 2047
-19 3 v 22 w(target)p 480 2047 V 21 w(list)300 2138 y Fm(This)15
-b(function)f(returns)g(a)g(freshly)g(mallo)q(ced)i(NULL-terminated)f(v)o
-(ector)e(of)300 2188 y(the)i(names)g(of)g(all)h(the)g(v)m(alid)g(bfd)g
-(targets.)j(Do)14 b(not)h(mo)q(dify)h(the)f(names)390 2238
-y Fh(PROTO\(CONST)22 b(char)i(**,bfd_target_list,\(\)\);)0
-2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 36 38
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(36)0 183 y Fn(2.10)32
-b(Arc)n(hitectures)300 436 y Fm(BFD's)15 b(idea)i(of)f(an)g(arc)o(hitecture)h
-(is)f(implimen)o(ted)j(in)k Fh(archures.c)p Fm(.)e(BFD)300
-486 y(k)o(eeps)h(t)o(w)o(o)f(atoms)g(in)i(a)e(bfd)i(describing)h(the)e(arc)o
-(hitecture)g(of)g(the)g(data)300 535 y(attatc)o(hed)c(to)h(the)g(bfd,)h(the)
-43 b Fh(enum)15 b(bfd_architecture)e(arch)18 b Fm(\014eld)j(and)300
-585 y(the)15 b Fh(unsigned)f(long)h(machine)f Fm(\014eld.)0
-2168 y Fr(2.10.0.1)29 b(bfd)p 326 2168 19 3 v 22 w(arc)n(hitecture)300
-2421 y Fm(This)14 b(en)o(um)f(giv)o(es)g(the)g(ob)s(ject)g(\014le's)g(CPU)g
-(arc)o(hitecture,)h(in)f(a)g(global)h(sense.)300 2471 y(E.g.)40
-b(what)21 b(pro)q(cessor)h(family)g(do)q(es)h(it)f(b)q(elong)h(to?)41
-b(There)22 b(is)g(another)300 2521 y(\014eld,)14 b(whic)o(h)g(indicates)g
-(what)e(pro)q(cessor)g(within)i(the)f(family)h(is)f(in)g(use.)20
-b(The)300 2570 y(mac)o(hine)d(giv)o(es)e(a)h(n)o(um)o(b)q(er)g(whic)o(h)g
-(distingushes)i(di\013eren)o(t)e(v)o(ersions)g(of)f(the)300
-2620 y(arc)o(hitecture,)j(con)o(taining)g(for)f(example)h(2)f(and)g(3)g(for)g
-(In)o(tel)h(i960)f(KA)h(and)300 2670 y(i960)d(KB,)g(and)h(68020)d(and)j
-(68030)e(for)g(Motorola)g(68020)g(and)h(68030.)0 2770 y Fk(c)6
-b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332
-2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 37 39
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(37)300 26 y Fg(\013)p
-325 26 1326 2 v 1325 w(\010)p 300 1968 2 1918 v 314 112 a Fh(enum)23
-b(bfd_architecture)314 162 y({)362 212 y(bfd_arch_unknown,)69
-b(/*)24 b(File)f(arch)g(not)h(known)f(*/)362 262 y(bfd_arch_obscure,)69
-b(/*)24 b(Arch)f(known,)g(not)h(one)f(of)h(these)f(*/)362 311
-y(bfd_arch_m68k,)141 b(/*)24 b(Motorola)e(68xxx)i(*/)362 361
-y(bfd_arch_vax,)165 b(/*)24 b(DEC)f(Vax)h(*/)362 411 y(bfd_arch_i960,)141
-b(/*)24 b(Intel)f(960)g(*/)410 461 y(/*)g(The)h(order)f(of)g(the)h(following)
-e(is)i(important.)481 511 y(lower)f(number)g(indicates)g(a)h(machine)f(type)g
-(that)481 560 y(only)g(accepts)g(a)h(subset)f(of)h(the)f(instructions)481
-610 y(available)g(to)g(machines)g(with)g(higher)h(numbers.)481
-660 y(The)g(exception)e(is)i(the)f("ca",)g(which)h(is)481 710
-y(incompatible)e(with)i(all)f(other)g(machines)g(except)481
-760 y("core".)g(*/)314 859 y(#define)g(bfd_mach_i960_core)141
-b(1)314 909 y(#define)23 b(bfd_mach_i960_ka_sa)117 b(2)314
-959 y(#define)23 b(bfd_mach_i960_kb_sb)117 b(3)314 1009 y(#define)23
-b(bfd_mach_i960_mc)189 b(4)314 1059 y(#define)23 b(bfd_mach_i960_xa)189
-b(5)314 1108 y(#define)23 b(bfd_mach_i960_ca)189 b(6)362 1208
-y(bfd_arch_a29k,)141 b(/*)24 b(AMD)f(29000)g(*/)362 1258 y(bfd_arch_sparc,)
-117 b(/*)24 b(SPARC)f(*/)362 1308 y(bfd_arch_mips,)141 b(/*)24
-b(MIPS)f(Rxxxx)g(*/)362 1357 y(bfd_arch_i386,)141 b(/*)24 b(Intel)f(386)g(*/)
-362 1407 y(bfd_arch_ns32k,)117 b(/*)24 b(National)e(Semiconductor)h(32xxx)g
-(*/)362 1457 y(bfd_arch_tahoe,)117 b(/*)24 b(CCI/Harris)e(Tahoe)h(*/)362
-1507 y(bfd_arch_i860,)141 b(/*)24 b(Intel)f(860)g(*/)362 1557
-y(bfd_arch_romp,)141 b(/*)24 b(IBM)f(ROMP)g(RS/6000)g(*/)362
-1606 y(bfd_arch_alliant,)69 b(/*)24 b(Alliant)f(*/)362 1656
-y(bfd_arch_convex,)93 b(/*)24 b(Convex)f(*/)362 1706 y(bfd_arch_m88k,)141
-b(/*)24 b(Motorola)e(88xxx)i(*/)362 1756 y(bfd_arch_pyramid,)69
-b(/*)24 b(Pyramid)f(Technology)f(*/)362 1806 y(bfd_arch_h8_300,)93
-b(/*)24 b(Hitachi)f(H8/300)g(*/)362 1856 y(bfd_arch_last)362
-1905 y(};)p 1677 1968 V 300 1993 a Fg(\012)p 325 1993 1326
-2 v 1325 w(\011)300 2118 y Fm(stu\013)0 2367 y Fr(2.10.0.2)29
-b(bfd)p 326 2367 19 3 v 22 w(prinable)p 567 2367 V 23 w(arc)n(h)p
-704 2367 V 22 w(mac)n(h)300 2471 y Fm(Return)d(a)g(prin)o(table)h(string)e
-(represen)o(ting)i(the)e(arc)o(hitecture)h(and)g(ma-)300 2521
-y(c)o(hine)34 b(t)o(yp)q(e.)71 b(The)33 b(result)g(is)g(only)g(go)q(o)q(d)f
-(un)o(til)i(the)e(next)h(call)h(to)300 2570 y(bfd)p 367 2570
-14 2 v 17 w(prin)o(table)p 561 2570 V 17 w(arc)o(h)p 663 2570
-V 16 w(mac)o(h.)390 2620 y Fh(PROTO\(CONST)22 b(char)i
-(*,bfd_printable_arch_mac)o(h,)485 2670 y(\(enum)g(bfd_architecture)d(arch,)i
-(unsigned)g(long)h(machine\)\);)p 2050 2680 21 42 v 0 2770
-a Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 38 40
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(38)0 183 y Fr(2.10.0.3)29
-b(bfd)p 326 183 19 3 v 22 w(scan)p 463 183 V 23 w(arc)n(h)p
-600 183 V 22 w(mac)n(h)300 275 y Fm(Scan)20 b(a)e(string)i(and)f(attempt)f
-(to)h(turn)g(it)g(in)o(to)g(an)g(arc)o(hiv)o(e)h(and)f(mac)o(hine)300
-324 y(t)o(yp)q(e)c(com)o(bination.)390 374 y Fh(PROTO\(boolean,)22
-b(bfd_scan_arch_mach,)485 424 y(\(CONST)h(char)h(*,)f(enum)h
-(bfd_architecture)d(*,)j(unsigned)390 474 y(long)f(*\)\);)0
-607 y Fr(2.10.0.4)29 b(bfd)p 326 607 V 22 w(arc)n(h)p 462 607
-V 23 w(compatible)300 698 y Fm(This)17 b(routine)h(is)f(used)h(to)e
-(determine)i(whether)f(t)o(w)o(o)f(BFDs')g(arc)o(hitectures)300
-748 y(and)22 b(mac)o(hine)g(t)o(yp)q(es)g(are)f(compatible.)40
-b(It)22 b(calculates)g(the)g(lo)o(w)o(est)f(com-)300 798 y(mon)15
-b(denominator)h(b)q(et)o(w)o(een)g(the)g(t)o(w)o(o)e(arc)o(hitectures)i(and)g
-(mac)o(hine)g(t)o(yp)q(es)300 847 y(implied)22 b(b)o(y)e(the)g(bfds)g(and)g
-(sets)g(the)g(ob)s(jects)f(p)q(oin)o(ted)i(at)e(b)o(y)h Ff(arc)o(hp)h
-Fm(and)300 897 y Ff(mac)o(hine)e Fm(if)c(non)h(NULL.)300 959
-y(This)g(routine)h(returns)i Fh(true)c Fm(if)i(the)f(bfds)g(are)f(of)h
-(compatible)h(t)o(yp)q(e,)e(other-)300 1009 y(wise)h Fh(false)p
-Fm(.)390 1059 y Fh(PROTO\(boolean,)22 b(bfd_arch_compatible,)509
-1109 y(\(bfd)i(*abfd,)509 1159 y(bfd)g(*bbfd,)509 1209 y(enum)g
-(bfd_architecture)d(*archp,)509 1258 y(unsigned)i(long)g(*machinep\)\);)0
-1391 y Fr(2.10.0.5)29 b(bfd)p 326 1391 V 22 w(set)p 424 1391
-V 22 w(arc)n(h)p 560 1391 V 23 w(mac)n(h)300 1483 y Fm(Set)15
-b(atc)o(h)g(mac)o(h)300 1512 y Fg(\013)p 325 1512 1326 2 v
-1325 w(\010)p 300 1761 2 225 v 314 1599 a Fh(#define)23 b
-(bfd_set_arch_mach\(abfd,)e(arch,)i(mach\))g(\\)433 1649 y(BFD_SEND)g
-(\(abfd,)g(_bfd_set_arch_mach,\\)791 1698 y(\(abfd,)g(arch,)h(mach\)\))p
-1677 1761 V 300 1786 a Fg(\012)p 325 1786 1326 2 v 1325 w(\011)0
-2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 39 41
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(39)0 183 y Fn(2.11)32
-b(Op)r(ening)23 b(and)g(Closing)f(BFDs)0 358 y Fr(2.11.0.1)29
-b(bfd)p 326 358 19 3 v 22 w(op)r(enr)300 451 y Fm(Op)q(ens)22
-b(the)g(\014le)g(supplied)i(\(using)d(fop)q(en\))h(with)g(the)f(target)f
-(supplied,)25 b(it)300 501 y(returns)15 b(a)g(p)q(oin)o(ter)h(to)e(the)h
-(created)h(bfd.)300 564 y(If)h(NULL)h(is)g(returned)g(then)f(an)g(error)f
-(has)h(o)q(ccured.)27 b(P)o(ossible)18 b(errors)e(are)300 614
-y(no)p 351 614 14 2 v 16 w(memory)l(,)f(in)o(v)m(alid)p 681
-614 V 18 w(target)f(or)h(system)p 1025 614 V 16 w(call)h(error.)390
-664 y Fh(PROTO\(bfd*,)22 b(bfd_openr,)h(\(CONST)g(char)g(*filename,CONST)390
-714 y(char*target\)\);)0 860 y Fr(2.11.0.2)29 b(bfd)p 326 860
-19 3 v 22 w(fdop)r(enr)300 952 y Fm(bfd)p 367 952 14 2 v 17
-w(fdop)q(enr)17 b(is)g(to)g(bfd)p 721 952 V 16 w(fop)q(enr)h(m)o(uc)o(h)e
-(lik)o(e)i(fdop)q(en)g(is)f(to)f(fop)q(en.)26 b(It)16 b(op)q(ens)300
-1002 y(a)f(bfd)g(on)h(a)e(\014le)j(already)e(describ)q(ed)i(b)o(y)e(the)h
-Ff(fd)h Fm(supplied.)300 1066 y(P)o(ossible)f(errors)f(are)f(no)p
-730 1066 V 17 w(memory)l(,)g(in)o(v)m(alid)p 1060 1066 V 19
-w(target)g(and)h(system)p 1437 1066 V 16 w(call)i(error.)414
-1116 y Fh(PROTO\(bfd)22 b(*,)i(bfd_fdopenr,)485 1165 y(\(CONST)f(char)h
-(*filename,)e(CONST)h(char)h(*target,)f(int)390 1215 y(fd\)\);)0
-1361 y Fr(2.11.0.3)29 b(bfd)p 326 1361 19 3 v 22 w(op)r(en)n(w)300
-1454 y Fm(Creates)21 b(a)g(bfd,)i(asso)q(ciated)f(with)g(\014le)h
-Ff(\014lename)p Fm(,)h(using)e(the)g(\014le)g(format)300 1504
-y Ff(target)p Fm(,)14 b(and)h(returns)g(a)g(p)q(oin)o(ter)h(to)e(it.)300
-1567 y(P)o(ossible)i(errors)f(are)f(system)p 818 1567 14 2
-v 16 w(call)p 901 1567 V 18 w(error,)g(no)p 1091 1567 V 16
-w(memory)l(,)h(in)o(v)m(alid)p 1421 1567 V 19 w(target.)390
-1617 y Fh(PROTO\(bfd)23 b(*,)g(bfd_openw,)g(\(CONST)g(char)g(*filename,)g
-(CONST)390 1667 y(char)g(*target\)\);)0 1813 y Fr(2.11.0.4)29
-b(bfd)p 326 1813 19 3 v 22 w(close)300 1906 y Fm(This)21 b(function)h(closes)
-f(a)g(bfd.)36 b(If)21 b(the)g(bfd)g(w)o(as)f(op)q(en)h(for)f(writing,)j(then)
-300 1955 y(p)q(ending)13 b(op)q(erations)f(are)f(completed)h(and)g(the)g
-(\014le)g(written)g(out)f(and)g(closed.)300 2005 y(If)18 b(the)f(created)g
-(\014le)i(is)e(executable,)i(then)30 b Fh(chmod)17 b Fm(is)h(called)h(to)d
-(mark)h(it)g(as)300 2055 y(suc)o(h.)300 2119 y(All)f(memory)f(attatc)o(hed)f
-(to)h(the)g(bfd's)g(obstac)o(ks)g(is)g(released.)300 2182 y
-Fh(true)g Fm(is)g(returned)h(if)g(all)g(is)f(ok,)g(otherwise)g
-Fh(false)p Fm(.)390 2232 y Fh(PROTO\(boolean,)22 b(bfd_close,\(bfd)g(*\)\);)0
-2378 y Fr(2.11.0.5)29 b(bfd)p 326 2378 V 22 w(create)300 2471
-y Fm(This)23 b(routine)f(creates)g(a)f(new)i(bfd)f(in)h(the)f(manner)g(of)g
-(bfd)p 1406 2471 14 2 v 16 w(op)q(en)o(w,)i(but)300 2521 y(without)14
-b(op)q(ening)g(a)g(\014le.)20 b(The)14 b(new)g(bfd)g(tak)o(es)f(the)g(target)
-g(from)f(the)i(target)300 2570 y(used)i(b)o(y)f Ff(template)p
-Fm(.)20 b(The)15 b(format)f(is)i(alw)o(a)o(ys)e(set)h(to)g
-Fh(bfd_object)p Fm(.)390 2620 y Fh(PROTO\(bfd)23 b(*,)g(bfd_create,)g
-(\(CONST)g(char)g(*filename,)f(bfd)390 2670 y(*template\)\);)0
-2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 40 42
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(40)0 183 y Fr(2.11.0.6)29
-b(bfd)p 326 183 19 3 v 22 w(allo)r(c)p 472 183 V 22 w(size)300
-275 y Fm(Return)12 b(the)f(n)o(um)o(b)q(er)h(of)f(b)o(ytes)g(in)h(the)f
-(obstac)o(ks)f(connected)j(to)d(the)i(supplied)300 324 y(bfd.)390
-374 y Fh(PROTO\(bfd_size_type,bfd_al)o(loc_siz)o(e,\(bfd)21
-b(*abfd\)\);)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g
-(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 41 43
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(41)0 183 y Fr(2.11.1.7)29
-b(bfd)p 326 183 19 3 v 22 w(put)p 440 183 V 22 w(size)0 497
-y(2.11.1.8)g(bfd)p 326 497 V 22 w(get)p 431 497 V 22 w(size)300
-605 y Fm(These)17 b(macros)f(as)g(used)i(for)e(reading)h(and)g(writing)g(ra)o
-(w)f(data)g(in)i(sections;)300 655 y(eac)o(h)e(access)f(\(except)h(for)e(b)o
-(ytes\))h(is)h(v)o(ectored)f(through)h(the)f(target)f(format)300
-705 y(of)21 b(the)g(bfd)g(and)g(mangled)h(accordingly)l(.)39
-b(The)21 b(mangling)h(p)q(erforms)e(an)o(y)300 754 y(necessary)15
-b(endian)i(translations)e(and)g(remo)o(v)o(es)g(alignmen)o(t)h(restrictions.)
-300 793 y Fg(\013)p 325 793 1326 2 v 1325 w(\010)p 300 1689
-2 872 v 314 879 a Fh(#define)23 b(bfd_put_8\(abfd,)f(val,)h(ptr\))g(\\)696
-929 y(\(*\(\(char)g(*\)ptr\))g(=)g(\(char\)val\))314 979 y(#define)g
-(bfd_get_8\(abfd,)f(ptr\))h(\\)696 1029 y(\(*\(\(char)g(*\)ptr\)\))314
-1079 y(#define)g(bfd_put_16\(abfd,)f(val,)h(ptr\))g(\\)696
-1129 y(BFD_SEND\(abfd,)f(bfd_putx16,)g(\(val,ptr\)\))314 1178
-y(#define)h(bfd_get_16\(abfd,)f(ptr\))h(\\)696 1228 y(BFD_SEND\(abfd,)f
-(bfd_getx16,)g(\(ptr\)\))314 1278 y(#define)h(bfd_put_32\(abfd,)f(val,)h
-(ptr\))g(\\)696 1328 y(BFD_SEND\(abfd,)f(bfd_putx32,)g(\(val,ptr\)\))314
-1378 y(#define)h(bfd_get_32\(abfd,)f(ptr\))h(\\)696 1427 y(BFD_SEND\(abfd,)f
-(bfd_getx32,)g(\(ptr\)\))314 1477 y(#define)h(bfd_put_64\(abfd,)f(val,)h
-(ptr\))g(\\)696 1527 y(BFD_SEND\(abfd,)f(bfd_putx64,)g(\(val,)h(ptr\)\))314
-1577 y(#define)g(bfd_get_64\(abfd,)f(ptr\))h(\\)696 1627 y(BFD_SEND\(abfd,)f
-(bfd_getx64,)g(\(ptr\)\))p 1677 1689 V 300 1715 a Fg(\012)p
-325 1715 1326 2 v 1325 w(\011)0 2049 y Fr(2.11.1.9)29 b(bfd)p
-326 2049 19 3 v 22 w(h)p 382 2049 V 22 w(put)p 496 2049 V 23
-w(size)0 2363 y(2.11.1.10)g(bfd)p 357 2363 V 22 w(h)p 413 2363
-V 22 w(get)p 518 2363 V 22 w(size)300 2471 y Fm(These)16 b(macros)e(ha)o(v)o
-(e)h(the)g(same)g(function)h(as)f(their)g Fh(bfd_get_x)f Fm(bretherin,)300
-2521 y(except)19 b(that)f(they)h(are)f(used)h(for)f(remo)o(ving)h
-(information)g(for)f(the)h(header)300 2570 y(records)c(of)g(ob)s(ject)g
-(\014les.)22 b(Believ)o(e)17 b(it)f(or)f(not,)g(some)g(ob)s(ject)g(\014les)i
-(k)o(eep)e(their)300 2620 y(header)21 b(records)f(in)h(big)g(endian)h(order,)
-f(and)g(their)g(data)e(in)j(little)f(endan)300 2670 y(order.)0
-2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 42 44
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(42)300 26 y Fg(\013)p
-325 26 1326 2 v 1325 w(\010)p 300 922 2 872 v 314 112 a Fh(#define)23
-b(bfd_h_put_8\(abfd,)f(val,)h(ptr\))g(\\)696 162 y(\(*\(\(char)g(*\)ptr\))g
-(=)g(\(char\)val\))314 212 y(#define)g(bfd_h_get_8\(abfd,)f(ptr\))h(\\)696
-262 y(\(*\(\(char)g(*\)ptr\)\))314 311 y(#define)g(bfd_h_put_16\(abfd,)e
-(val,)j(ptr\))f(\\)696 361 y(BFD_SEND\(abfd,)f(bfd_h_putx16,\(val,ptr\)\))314
-411 y(#define)h(bfd_h_get_16\(abfd,)e(ptr\))j(\\)696 461 y(BFD_SEND\(abfd,)e
-(bfd_h_getx16,\(ptr\)\))314 511 y(#define)h(bfd_h_put_32\(abfd,)e(val,)j
-(ptr\))f(\\)696 560 y(BFD_SEND\(abfd,)f(bfd_h_putx32,\(val,ptr\)\))314
-610 y(#define)h(bfd_h_get_32\(abfd,)e(ptr\))j(\\)696 660 y(BFD_SEND\(abfd,)e
-(bfd_h_getx32,\(ptr\)\))314 710 y(#define)h(bfd_h_put_64\(abfd,)e(val,)j
-(ptr\))f(\\)696 760 y(BFD_SEND\(abfd,)f(bfd_h_putx64,\(val,)f(ptr\)\))314
-809 y(#define)i(bfd_h_get_64\(abfd,)e(ptr\))j(\\)696 859 y(BFD_SEND\(abfd,)e
-(bfd_h_getx64,\(ptr\)\))p 1677 922 V 300 947 a Fg(\012)p 325
-947 1326 2 v 1325 w(\011)0 1130 y Fr(2.11.1.11)29 b(bfd)p 357
-1130 19 3 v 22 w(log2)300 1221 y Fm(Return)17 b(the)g(log)f(base)h(2)f(of)g
-(the)h(v)m(alue)h(supplied,)g(rounded)g(up.)24 b(eg)16 b(an)h(arg)300
-1271 y(of)e(1025)f(w)o(ould)h(return)h(11.)390 1321 y Fh(PROTO\(bfd_vma,)22
-b(bfd_log2,\(bfd_vma)f(x\)\);)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 43 45
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(43)0 183 y Fn(2.12)32
-b(File)24 b(Cac)n(hing)300 276 y Fm(The)14 b(\014le)h(cac)o(hing)f(mec)o
-(hanism)h(is)f(em)o(b)q(edded)h(within)h(BFD)d(and)h(allo)o(ws)g(the)300
-326 y(application)k(to)e(op)q(en)g(as)g(man)o(y)g(bfds)h(as)f(it)g(w)o(an)o
-(ts)f(without)h(regard)g(to)g(the)300 376 y(underlying)21 b(op)q(erating)e
-(system's)f(\014le)i(descriptor)f(limit)i(\(often)d(as)h(lo)o(w)f(as)300
-425 y(20)d(op)q(en)g(\014les\).)300 489 y(The)33 b(mo)q(dule)h(in)140
-b Fh(cache.c)32 b Fm(main)o(tains)h(a)g(least)g(recen)o(tly)g(used)300
-539 y(list)f(of)124 b Fh(BFD_CACHE_MAX_OPEN)29 b Fm(\014les,)35
-b(and)c(exp)q(orts)g(the)g(name)300 589 y Fh(bfd_cache_lookup)24
-b Fm(whic)o(h)i(runs)g(around)g(and)g(mak)o(es)f(sure)h(that)f(the)300
-638 y(required)18 b(bfd)f(is)g(op)q(en.)25 b(If)17 b(not,)f(then)h(it)g(c)o
-(ho)q(oses)f(a)h(\014le)g(to)f(close,)h(closes)h(it)300 688
-y(and)d(op)q(ens)h(the)f(one)h(w)o(an)o(ted,)e(returning)i(its)f(\014le)h
-(handle.)0 833 y Fr(2.12.0.1)29 b(BFD)p 369 833 19 3 v 22 w(CA)n(CHE)p
-611 833 V 23 w(MAX)p 784 833 V 23 w(OPEN)300 926 y Fm(The)19
-b(maxium)o(um)g(n)o(um)o(b)q(er)g(of)g(\014les)h(whic)o(h)f(the)g(cac)o(he)g
-(will)i(k)o(eep)e(op)q(en)h(at)300 976 y(one)15 b(time.)300
-1005 y Fg(\013)p 325 1005 1326 2 v 1325 w(\010)p 300 1154 2
-125 v 314 1092 a Fh(#define)23 b(BFD_CACHE_MAX_OPEN)e(10)p
-1677 1154 V 300 1180 a Fg(\012)p 325 1180 1326 2 v 1325 w(\011)0
-1375 y Fr(2.12.0.2)29 b(bfd)p 326 1375 19 3 v 22 w(last)p 443
-1375 V 22 w(cac)n(he)300 1467 y Fm(Zero,)15 b(or)h(a)f(p)q(oin)o(ter)i(to)e
-(the)h(topmost)f(bfd)h(on)g(the)g(c)o(hain.)23 b(This)17 b(is)f(used)h(b)o(y)
-300 1517 y(the)h(bfd)p 448 1517 14 2 v 17 w(cac)o(he)p 572
-1517 V 17 w(lo)q(okup\(\))g(macro)f(in)i(libbfd.h)h(to)d(determine)i(when)g
-(it)f(can)300 1567 y(a)o(v)o(oid)d(a)g(function)h(call.)300
-1597 y Fg(\013)p 325 1597 1326 2 v 1325 w(\010)p 300 1745 2
-125 v 314 1683 a Fh(extern)23 b(bfd)h(*bfd_last_cache;)p 1677
-1745 V 300 1771 a Fg(\012)p 325 1771 1326 2 v 1325 w(\011)0
-1966 y Fr(2.12.0.3)29 b(bfd)p 326 1966 19 3 v 22 w(cac)n(he)p
-492 1966 V 23 w(lo)r(okup)300 2058 y Fm(Chec)o(ks)11 b(to)g(see)h(if)f(the)h
-(required)g(bfd)g(is)g(the)f(same)g(as)g(the)g(last)h(one)f(lo)q(ok)o(ed)h
-(up.)300 2108 y(If)17 b(so)e(then)i(it)g(can)f(use)h(the)f(iostream)g(in)h
-(the)f(bfd)h(with)g(impunit)o(y)l(,)g(since)h(it)300 2158 y(can't)13
-b(ha)o(v)o(e)f(c)o(hanged)i(since)g(the)f(last)g(lo)q(okup,)h(otherwise)f(it)
-h(has)f(to)f(p)q(erform)300 2208 y(the)j(complicated)i(lo)q(okup)f(function)
-300 2247 y Fg(\013)p 325 2247 1326 2 v 1325 w(\010)p 300 2594
-2 324 v 314 2333 a Fh(#define)23 b(bfd_cache_lookup\(x\))e(\\)433
-2383 y(\(\(x\)==bfd_last_cache?)g(\\)505 2433 y
-(\(FILE*\)\(bfd_last_cache->io)o(stream\):)f(\\)529 2482 y
-(bfd_cache_lookup_worker\(x)o(\)\))p 1677 2594 V 300 2620 a
-Fg(\012)p 325 2620 1326 2 v 1325 w(\011)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)
-36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 44 46
-bop 0 -58 a Fk(Chapter)13 b(2:)k(BFD)c(front)g(end)p 413 -66
-669 3 v 691 w(DRAFT)p 1224 -66 V 695 w Fj(44)0 183 y Fr(2.12.0.4)29
-b(bfd)p 326 183 19 3 v 22 w(cac)n(he)p 492 183 V 23 w(init)300
-275 y Fm(Initialize)18 b(a)d(BFD)g(b)o(y)g(putting)h(it)f(on)g(the)g(cac)o
-(he)h(LR)o(U.)390 324 y Fh(PROTO\(void,)22 b(bfd_cache_init,)g(\(bfd)h
-(*\)\);)0 457 y Fr(2.12.0.5)29 b(bfd)p 326 457 V 22 w(cac)n(he)p
-492 457 V 23 w(close)300 549 y Fm(Remo)o(v)o(e)18 b(the)g(bfd)g(from)f(the)h
-(cac)o(he.)28 b(If)18 b(the)g(attatc)o(hed)f(\014le)i(is)g(op)q(en,)g(then)
-300 598 y(close)d(it)f(to)q(o.)390 648 y Fh(PROTO\(void,)22
-b(bfd_cache_close,)g(\(bfd)h(*\)\);)0 781 y Fr(2.12.0.6)29
-b(bfd)p 326 781 V 22 w(op)r(en)p 477 781 V 22 w(\014le)300
-872 y Fm(Call)13 b(the)f(OS)g(to)f(op)q(en)i(a)f(\014le)h(for)e(this)h(BFD.)f
-(Returns)i(the)f(FILE)g(*)g(\(p)q(ossibly)300 922 y(n)o(ull\))g(that)f
-(results)h(from)e(this)i(op)q(eration.)19 b(Sets)11 b(up)h(the)f(BFD)g(so)g
-(that)g(future)300 972 y(accesses)18 b(kno)o(w)e(the)i(\014le)g(is)g(op)q
-(en.)26 b(If)18 b(the)f(FILE)h(*)e(returned)i(is)g(n)o(ull,)h(then)300
-1022 y(there)h(is)h(w)o(on't)d(ha)o(v)o(e)i(b)q(een)h(put)f(in)h(the)f(cac)o
-(he,)h(so)e(it)i(w)o(on't)d(ha)o(v)o(e)i(to)f(b)q(e)300 1072
-y(remo)o(v)o(ed)c(from)f(it.)390 1121 y Fh(PROTO\(FILE)22 b(*,)i
-(bfd_open_file,)e(\(bfd)h(*\)\);)0 1254 y Fr(2.12.0.7)29 b(bfd)p
-326 1254 V 22 w(cac)n(he)p 492 1254 V 23 w(lo)r(okup)p 696
-1254 V 22 w(w)n(ork)n(er)300 1346 y Fm(Called)23 b(when)f(the)f(macro)59
-b Fh(bfd_cache_lookup)19 b Fm(fails)j(to)f(\014nd)h(a)f(quic)o(k)300
-1395 y(answ)o(er.)31 b(Finds)20 b(a)f(\014le)i(descriptor)e(for)g(this)h
-(BFD.)e(If)i(necessary)l(,)g(it)f(op)q(en)300 1445 y(it.)28
-b(If)19 b(there)f(are)f(already)h(more)g(than)g(BFD)p 1106
-1445 14 2 v 16 w(CA)o(CHE)p 1286 1445 V 16 w(MAX)p 1412 1445
-V 16 w(OPEN)g(\014les)300 1495 y(op)q(en,)13 b(it)f(trys)f(to)g(close)h(one)g
-(\014rst,)g(to)f(a)o(v)o(oid)h(running)g(out)g(of)f(\014le)i(descriptors.)390
-1545 y Fh(PROTO\(FILE)22 b(*,)i(bfd_cache_lookup_worker,)d(\(bfd)i(*\)\);)0
-2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 45 47
-bop 0 -58 a Fk(Chapter)13 b(3:)k(BFD)c(back)f(end)p 409 -66
-670 3 v 693 w(DRAFT)p 1222 -66 V 697 w Fj(45)0 183 y Fi(3)41
-b(BFD)27 b(bac)n(k)f(end)300 295 y Fm(All)16 b(of)f(bfd)h(liv)o(es)g(in)g
-(one)f(directory)l(.)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 46 48
-bop 0 -58 a Fk(Chapter)13 b(3:)k(BFD)c(back)f(end)p 409 -66
-670 3 v 693 w(DRAFT)p 1222 -66 V 697 w Fj(46)0 183 y Fn(3.1)33
-b(a.out)21 b(bac)n(k)n(ends)300 278 y Fm(BFD)13 b(supp)q(orts)g(a)g(n)o(um)o
-(b)q(er)h(of)f(di\013eren)o(t)g(\015a)o(v)o(ours)g(of)g(a.out)f(format,)g
-(though)300 328 y(the)h(ma)s(jor)e(di\013erences)j(are)f(only)g(the)g(sizes)h
-(of)f(the)g(structures)f(on)h(disk,)h(and)300 378 y(the)h(shap)q(e)h(of)f
-(the)g(relo)q(cation)h(information.)300 444 y(The)f(supp)q(ort)f(is)h(split)h
-(in)o(to)e(a)g(basic)h(supp)q(ort)g(\014le)g Fh(aoutx.h)e Fm(and)i(other)f
-(\014les)300 494 y(whic)o(h)e(deriv)o(e)h(functions)f(from)f(the)h(base.)18
-b(One)13 b(deriv)m(ation)f(\014le)h(is)f Fh(aoutf1.h)300 544
-y Fm(\(for)k(a.out)g(\015a)o(v)o(our)g(1\),)h(and)g(adds)g(to)f(the)h(basic)h
-(a.out)e(functions)i(supp)q(ort)300 593 y(for)12 b(sun3,)h(sun4,)f(386)g(and)
-h(29k)e(a.out)h(\014les,)i(to)d(create)i(a)f(target)f(jump)i(v)o(ector)300
-643 y(for)i(a)f(sp)q(eci\014c)k(target.)300 709 y(This)e(information)g(is)h
-(further)e(split)i(out)f(in)o(to)g(more)f(sp)q(eci\014c)j(\014les)f(for)e
-(eac)o(h)300 759 y(mac)o(hine,)j(including)30 b Fh(sunos.c)16
-b Fm(-)h(for)f(sun3)h(and)g(sun4)g(and)28 b Fh(demo64)16 b
-Fm(for)g(a)300 809 y(demonstration)f(of)g(a)g(64)f(bit)i(a.out)e(format.)300
-875 y(The)k(base)g(\014le)34 b Fh(aoutx.h)16 b Fm(de\014nes)j(general)f(mec)o
-(hanisms)g(for)g(reading)g(and)300 925 y(writing)f(records)g(to)f(and)h(from)
-f(disk,)i(and)f(v)m(arious)g(other)f(metho)q(ds)h(whic)o(h)300
-975 y(bfd)f(requires.)23 b(It)15 b(is)i(included)h(b)o(y)i
-Fh(aout32.c)14 b Fm(and)20 b Fh(aout64.c)15 b Fm(to)g(form)g(the)300
-1024 y(names)31 b(aout)p 547 1024 14 2 v 16 w(32)p 609 1024
-V 16 w(sw)o(ap)p 723 1024 V 16 w(exec)p 823 1024 V 17 w(header)p
-971 1024 V 16 w(in,)36 b(aout)p 1162 1024 V 16 w(64)p 1224
-1024 V 16 w(sw)o(ap)p 1338 1024 V 16 w(exec)p 1438 1024 V 17
-w(header)p 1586 1024 V 16 w(in,)300 1074 y(etc.)300 1140 y(As)13
-b(an)f(example,)i(this)f(is)g(what)f(go)q(es)h(on)f(to)g(mak)o(e)g(the)h(bac)
-o(k)g(end)g(for)f(a)g(sun4,)300 1190 y(from)i(aout32.c)462
-1240 y Fh(#define)22 b(ARCH_SIZE)h(32)462 1290 y(#include)f("aoutx.h")390
-1356 y Fm(Whic)o(h)16 b(exp)q(orts)f(names:)115 b Fh(...)462
-1406 y(aout_32_canonicalize_re)o(loc)462 1455 y(aout_32_find_nearest_li)o(ne)
-462 1505 y(aout_32_get_lineno)462 1555 y(aout_32_get_reloc_upper)o(_bound)509
-1605 y(...)300 1671 y Fm(from)14 b(sunos.c)485 1721 y Fh(#define)23
-b(ARCH)h(32)485 1771 y(#define)f(TARGET_NAME)g("a.out-sunos-big")485
-1820 y(#define)g(VECNAME)95 b(sunos_big_vec)485 1870 y(#include)23
-b("aoutf1.h")300 1936 y Fm(requires)16 b(all)g(the)f(names)h(from)e
-(aout32.c,)f(and)j(pro)q(duces)g(the)f(jump)h(v)o(ector)485
-1986 y Fh(sunos_big_vec)0 2153 y Fr(3.1.1)30 b(relo)r(cations)300
-2248 y Fm(The)17 b(\014le)29 b Fh(aoutx.h)16 b Fm(caters)h(for)f(b)q(oth)h
-(the)g Ff(standard)i Fm(and)e Ff(extended)j Fm(forms)300 2298
-y(of)15 b(a.out)f(relo)q(cation)i(records.)300 2364 y(The)21
-b(standard)f(records)h(are)f(c)o(haracterised)h(b)o(y)g(con)o(taining)g(only)
-g(an)g(ad-)300 2414 y(dress,)16 b(a)g(sym)o(b)q(ol)g(index)i(and)e(a)g(t)o
-(yp)q(e)g(\014eld.)24 b(The)17 b(extended)g(records)f(\(used)300
-2463 y(on)f(29ks)g(and)g(sparcs\))g(also)g(ha)o(v)o(e)g(a)g(full)h(in)o
-(teger)f(for)g(an)g(addend.)0 2630 y Fr(3.1.2)30 b(In)n(ternal)20
-b(En)n(try)i(P)n(oin)n(ts)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 47 49
-bop 0 -58 a Fk(Chapter)13 b(3:)k(BFD)c(back)f(end)p 409 -66
-670 3 v 693 w(DRAFT)p 1222 -66 V 697 w Fj(47)324 183 y Fh(aoutx.h)18
-b Fm(exp)q(orts)h(sev)o(eral)g(routines)h(for)f(accessing)g(the)h(con)o(ten)o
-(ts)e(of)h(an)300 233 y(a.out)12 b(\014le,)h(whic)o(h)h(are)e(gathered)g(and)
-h(exp)q(orted)g(in)g(turn)g(b)o(y)f(v)m(arious)h(format)300
-283 y(sp)q(eci\014c)k(\014les)f(\(eg)f(sunos.c\).)0 417 y Fr(3.1.2.1)30
-b(aout)p 328 417 19 3 v 21 w Fo(<)p Fr(size)p Fo(>)p 501 417
-V 23 w Fr(sw)n(ap)p 654 417 V 23 w(exec)p 792 417 V 22 w(header)p
-993 417 V 23 w(in)300 509 y Fm(Sw)o(aps)11 b(the)h(information)f(in)i(an)e
-(executable)i(header)f(tak)o(en)f(from)f(a)i(ra)o(w)e(b)o(yte)300
-559 y(stream)k(memory)h(image,)g(in)o(to)g(the)g(in)o(ternal)h(exec)p
-1194 559 14 2 v 17 w(header)g(structure.)390 608 y Fh(PROTO\(void,)22
-b(aout_<size>_swap_exec_header_)o(in,)533 658 y(\(bfd)h(*abfd,)533
-708 y(struct)g(external_exec)f(*raw_bytes,)533 758 y(struct)h(internal_exec)f
-(*execp\)\);)0 892 y Fr(3.1.2.2)30 b(aout)p 328 892 19 3 v
-21 w Fo(<)p Fr(size)p Fo(>)p 501 892 V 23 w Fr(sw)n(ap)p 654
-892 V 23 w(exec)p 792 892 V 22 w(header)p 993 892 V 23 w(out)300
-984 y Fm(Sw)o(aps)16 b(the)f(information)i(in)f(an)g(in)o(ternal)h(exec)f
-(header)g(structure)g(in)o(to)g(the)300 1033 y(supplied)i(bu\013er)d(ready)g
-(for)f(writing)i(to)f(disk.)390 1083 y Fh(PROTO\(void,)22 b
-(aout_<size>_swap_exec_header_)o(out,)438 1133 y(\(bfd)h(*abfd,)462
-1183 y(struct)g(internal_exec)f(*execp,)462 1233 y(struct)h(external_exec)f
-(*raw_bytes\)\);)0 1367 y Fr(3.1.2.3)30 b(aout)p 328 1367 V
-21 w Fo(<)p Fr(size)p Fo(>)p 501 1367 V 23 w Fr(some)p 658
-1367 V 22 w(aout)p 799 1367 V 22 w(ob)s(ject)p 987 1367 V 22
-w(p)300 1459 y Fm(Some)11 b(A.OUT)f(v)m(arian)o(t)h(thinks)g(that)f(the)h
-(\014le)h(whose)f(format)e(w)o(e're)h(c)o(hec)o(king)300 1508
-y(is)18 b(an)f(a.out)g(\014le.)28 b(Do)17 b(some)g(more)g(c)o(hec)o(king,)h
-(and)g(set)f(up)h(for)f(access)h(if)g(it)300 1558 y(really)f(is.)k(Call)16
-b(bac)o(k)g(to)f(the)g(calling)j(en)o(vironmen)o(ts)e Fh(")p
-Fm(\014nish)g(up)p Fh(")g Fm(function)300 1608 y(just)f(b)q(efore)g
-(returning,)h(to)e(handle)j(an)o(y)e(last-min)o(ute)h(setup.)390
-1658 y Fh(PROTO\(bfd_target)22 b(*,)h(aout_<size>_some_aout_object)o(_p,)414
-1708 y(\(bfd)g(*abfd,)438 1757 y(bfd_target)f(*\(*callback_to_real_object_p)o
-(\)\(\)\)\);)0 1892 y Fr(3.1.2.4)30 b(aout)p 328 1892 V 21
-w Fo(<)p Fr(size)p Fo(>)p 501 1892 V 23 w Fr(mk)n(ob)s(ject)300
-1983 y Fm(This)16 b(routine)f(initialize)q(s)j(a)d(bfd)g(for)g(use)g(with)h
-(a.out)e(\014les.)390 2033 y Fh(PROTO\(boolean,)22 b(aout_<size>_mkobject,)f
-(\(bfd)i(*\)\);)0 2167 y Fr(3.1.2.5)30 b(aout)p 328 2167 V
-21 w Fo(<)p Fr(size)p Fo(>)p 501 2167 V 23 w Fr(mac)n(hine)p
-743 2167 V 23 w(t)n(yp)r(e)300 2259 y Fm(Keep)22 b(trac)o(k)e(of)h(mac)o
-(hine)h(arc)o(hitecture)g(and)f(mac)o(hine)h(t)o(yp)q(e)f(for)g(a.out's.)300
-2309 y(Return)39 b(the)f(mac)o(hine)p 744 2309 14 2 v 17 w(t)o(yp)q(e)h(for)e
-(a)h(particular)h(arc)o(h&mac)o(hine,)44 b(or)300 2358 y(M)p
-345 2358 V 16 w(UNKNO)o(WN)25 b(if)g(that)e(exact)h(arc)o(h&mac)o(hine)i
-(can't)d(b)q(e)i(represen)o(ted)300 2408 y(in)16 b(a.out)e(format.)300
-2471 y(If)20 b(the)g(arc)o(hitecture)g(is)h(understo)q(o)q(d,)g(mac)o(hine)g
-(t)o(yp)q(e)f(0)f(\(default\))h(should)300 2521 y(alw)o(a)o(ys)14
-b(b)q(e)i(understo)q(o)q(d.)390 2570 y Fh(PROTO\(enum)22 b(machine_type,)h
-(aout_<size>_machine_typ)o(e,)414 2620 y(\(enum)g(bfd_architecture)f(arch,)
-438 2670 y(unsigned)g(long)i(machine\)\);)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g
-(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421
-w(Revision:)17 b(1.5)p eop
-%%Page: 48 50
-bop 0 -58 a Fk(Chapter)13 b(3:)k(BFD)c(back)f(end)p 409 -66
-670 3 v 693 w(DRAFT)p 1222 -66 V 697 w Fj(48)0 183 y Fr(3.1.2.6)30
-b(aout)p 328 183 19 3 v 21 w Fo(<)p Fr(size)p Fo(>)p 501 183
-V 23 w Fr(set)p 600 183 V 22 w(arc)n(h)p 736 183 V 23 w(mac)n(h)300
-275 y Fm(Sets)13 b(the)h(arc)o(hitecture)f(and)g(the)h(mac)o(hine)g(of)f(the)
-g(bfd)h(to)e(those)h(v)m(alues)h(sup-)300 324 y(plied.)21 b(V)l(eri\014es)14
-b(that)e(the)h(format)e(can)i(supp)q(ort)g(the)g(arc)o(hitecture)g(required.)
-390 374 y Fh(PROTO\(boolean,)22 b(aout_<size>_set_arch_mach,)414
-424 y(\(bfd)h(*,)438 474 y(enum)g(bfd_architecture,)438 524
-y(unsigned)f(long)i(machine\)\);)0 656 y Fr(3.1.2.7)30 b(aout)p
-328 656 V 21 w Fo(<)p Fr(size)p Fo(>)p Fr(new)p 607 656 V 23
-w(section)p 815 656 V 23 w(ho)r(ok)300 748 y Fm(Called)16 b(b)o(y)g(the)f
-(bfd)g(in)h(resp)q(onse)g(to)f(a)g Fh(bfd_make_section)e Fm(request.)390
-798 y Fh(PROTO\(boolean,)22 b(aout_<size>_new_section_ho)o(ok,)605
-847 y(\(bfd)h(*abfd,)438 897 y(asection)f(*newsect\)\);)0 2770
-y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 49 51
-bop 0 -58 a Fk(Chapter)13 b(3:)k(BFD)c(back)f(end)p 409 -66
-670 3 v 693 w(DRAFT)p 1222 -66 V 697 w Fj(49)0 183 y Fn(3.2)33
-b(co\013)22 b(bac)n(k)n(ends)300 275 y Fm(BFD)e(supp)q(orts)h(a)g(n)o(um)o(b)
-q(er)g(of)g(di\013eren)o(t)g(\015a)o(v)o(ours)f(of)h(co\013)f(format.)36
-b(The)300 325 y(ma)s(jor)20 b(di\013erence)k(b)q(et)o(w)o(een)e(formats)e
-(are)i(the)g(sizes)h(and)f(alignmen)o(ts)g(of)300 375 y(\014elds)16
-b(in)g(structures)f(on)g(disk,)h(and)f(the)h(o)q(ccasional)g(extra)e
-(\014eld.)300 438 y(Co\013)i(in)h(all)h(its)f(v)m(arieties)h(is)f(implimen)o
-(ted)i(with)e(a)f(few)h(common)f(\014les)i(and)300 488 y(a)j(n)o(um)o(b)q(er)
-h(of)e(implemen)o(tation)j(sp)q(eci\014c)g(\014les.)39 b(F)l(or)21
-b(example,)i(The)f(88k)300 538 y(b)q(cs)d(co\013)g(format)e(is)j(implemen)o
-(ted)g(in)g(the)f(\014le)42 b Fh(m88k-bcs.c)p Fm(.)30 b(This)19
-b(\014le)300 588 y Fh(#include)p Fm(s)29 b Fh(m88k-bcs.h)15
-b Fm(whic)o(h)k(de\014nes)f(the)f(external)h(structure)f(of)g(the)300
-637 y(co\013)k(format)f(for)g(the)i(88k,)f(and)58 b Fh(internalcoff.h)19
-b Fm(whic)o(h)k(de\014nes)f(the)300 687 y(in)o(ternal)f(structure.)68
-b Fh(m88k-bcs.c)19 b Fm(also)h(de\014nes)i(the)e(relo)q(cations)h(used)300
-737 y(b)o(y)16 b(the)h(88k)e(format)g(See)i(Section)g(2.7)f([Relo)q
-(cations],)g(page)h(28.)22 b(Then)17 b(the)300 787 y(ma)s(jor)f(p)q(ortion)i
-(of)f(co\013)g(co)q(de)h(is)g(included)i(\()14 b Fh(coffcode.h)p
-Fm(\))i(whic)o(h)i(de\014nes)300 837 y(the)d(metho)q(ds)h(used)g(to)f(act)g
-(up)q(on)h(the)f(t)o(yp)q(es)h(de\014ned)g(in)i Fh(m88k-bcs.h)c
-Fm(and)300 886 y Fh(internalcoff.h)p Fm(.)300 950 y(The)j(In)o(tel)g(i960)f
-(pro)q(cessor)g(v)o(ersion)g(of)g(co\013)g(is)h(implemen)o(ted)h(in)23
-b Fh(icoff.c)p Fm(.)300 999 y(This)g(\014le)g(has)f(the)g(same)f(structure)h
-(as)63 b Fh(m88k-bcs.c)p Fm(,)22 b(except)g(that)g(it)300 1049
-y(includes)17 b Fh(intel-coff.h)d Fm(rather)h(than)g Fh(m88k-bcs.h)p
-Fm(.)0 1190 y Fr(3.2.1)30 b(P)n(orting)20 b(T)-5 b(o)20 b(A)g(New)h(V)-5
-b(ersion)21 b(of)f(Co\013)300 1282 y Fm(The)14 b(recommended)g(metho)q(d)g
-(is)g(to)f(select)h(from)f(the)h(existing)g(implimen)o(ta-)300
-1332 y(tions)d(the)g(v)o(ersion)h(of)e(co\013)h(whic)o(h)h(is)g(most)e(lik)o
-(e)i(the)f(one)g(y)o(ou)g(w)o(an)o(t)f(to)h(use,)h(for)300
-1381 y(our)j(purp)q(oses,)h(w)o(e'll)g(sa)o(y)f(that)g(i386)g(co\013)g(is)h
-(the)f(one)h(y)o(ou)f(select,)h(and)g(that)300 1431 y(y)o(our)f(co\013)g
-(\015a)o(v)o(our)g(is)h(called)h(fo)q(o.)k(Cop)o(y)15 b(the)j
-Fh(i386coff.c)c Fm(to)k Fh(foocoff.c)p Fm(,)300 1481 y(cop)o(y)k
-Fh(../include/i386coff.h)14 b Fm(to)22 b Fh(../include/foocoff.h)13
-b Fm(and)k(add)300 1531 y(the)d(lines)i(to)d Fh(targets.c)g
-Fm(and)i Fh(Makefile.in)d Fm(so)i(that)f(y)o(our)h(new)g(bac)o(k)g(end)300
-1581 y(is)i(used.)300 1644 y(Alter)d(the)h(shap)q(es)f(of)g(the)g(structures)
-g(in)h Fh(../include/foocoff.h)c Fm(so)j(that)300 1694 y(they)21
-b(matc)o(h)f(what)g(y)o(ou)g(need.)38 b(Y)l(ou)21 b(will)h(probably)f(also)g
-(ha)o(v)o(e)f(to)g(add)300 1743 y Fh(#ifdef)p Fm(s)d(to)h(the)g(co)q(de)g(in)
-37 b Fh(internalcoff.h)16 b Fm(and)35 b Fh(coffcode.h)17 b
-Fm(if)h(y)o(our)300 1793 y(v)o(ersion)d(of)g(co\013)g(is)g(to)q(o)g(wild.)300
-1856 y(Y)l(ou)21 b(can)f(v)o(erify)h(that)f(y)o(our)g(new)h(bfd)g(bac)o(k)o
-(end)f(w)o(orks)g(quite)h(simply)h(b)o(y)300 1906 y(building)14
-b Fh(objdump)d Fm(from)g(the)g Fh(binutils)g Fm(directory)l(,)h(and)g(making)
-g(sure)g(that)300 1956 y(its)i(v)o(ersion)g(of)g(what's)e(going)i(on)g(at)f
-(y)o(our)h(host)f(systems)g(idea)i(\(assuming)f(it)300 2006
-y(has)j(the)f(prett)o(y)g(standard)g(co\013)g(dump)i(utilit)o(y)f(\(usually)h
-(called)27 b Fh(att-dump)300 2055 y Fm(or)15 b(just)g Fh(dump)p
-Fm(\)\))f(are)g(the)i(same.)300 2119 y(Then)21 b(clean)g(up)g(y)o(our)f(co)q
-(de,)i(and)e(send)h(what)f(y)o(ou'v)o(e)f(done)i(to)f(Cygn)o(us.)300
-2168 y(Then)f(y)o(our)e(stu\013)h(will)i(b)q(e)f(in)g(the)f(next)g(release,)i
-(and)e(y)o(ou)g(w)o(on't)f(ha)o(v)o(e)h(to)300 2218 y(k)o(eep)e(in)o
-(tegrating)f(it.)0 2359 y Fr(3.2.2)30 b(Ho)n(w)21 b(The)f(Co\013)g(Bac)n(k)n
-(end)h(W)-5 b(orks)0 2528 y(3.2.2.1)30 b(Bit)20 b(Twiddling)300
-2620 y Fm(Eac)o(h)c(\015a)o(v)o(our)f(of)g(co\013)h(supp)q(orted)g(in)h(bfd)f
-(has)g(its)g(o)o(wn)f(header)h(\014le)h(descib-)300 2670 y(ing)i(the)f
-(external)g(la)o(y)o(out)g(of)g(the)g(structures.)28 b(There)18
-b(is)h(also)f(an)g(in)o(ternal)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 50 52
-bop 0 -58 a Fk(Chapter)13 b(3:)k(BFD)c(back)f(end)p 409 -66
-670 3 v 693 w(DRAFT)p 1222 -66 V 697 w Fj(50)300 183 y Fm(description)18
-b(of)d(the)h(co\013)g(la)o(y)o(out)f(\(in)21 b Fh(internalcoff.h)p
-Fm(\))14 b(\014le)j(\()5 b(\).)21 b(A)16 b(ma)s(jor)300 233
-y(function)f(of)f(the)g(co\013)f(bac)o(k)o(end)i(is)f(sw)o(apping)h(the)f(b)o
-(ytes)g(and)g(t)o(widdling)i(the)300 283 y(bits)g(to)f(translate)g(the)g
-(external)h(form)f(of)g(the)g(structures)g(in)o(to)g(the)h(normal)300
-333 y(in)o(ternal)f(form.)j(This)d(is)f(all)h(p)q(erformed)f(in)h(the)f
-Fh(bfd_swap)p 1340 333 14 2 v 15 w Ff(thing)p 1462 333 V 21
-w(direction)300 382 y Fm(routines.)19 b(Some)13 b(elemen)o(ts)g(are)f
-(di\013eren)o(t)g(sizes)i(b)q(et)o(w)o(een)e(di\013eren)o(t)h(v)o(ersions)300
-432 y(of)f(co\013,)f(it)h(is)h(the)f(dut)o(y)g(of)f(the)h(co\013)f(v)o
-(ersion)i(sp)q(eci\014c)g(include)i(\014le)e(to)e(o)o(v)o(erride)300
-482 y(the)18 b(de\014nitions)i(of)d(v)m(arious)i(pac)o(king)f(routines)g(in)
-36 b Fh(coffcode.h)p Fm(.)26 b(Eg)18 b(the)300 532 y(size)d(of)e(line)i(n)o
-(um)o(b)q(er)g(en)o(try)e(in)i(co\013)e(is)h(sometimes)g(16)f(bits,)h(and)g
-(sometimes)300 582 y(32)h(bits.)22 b Fh(#define)p Fm(ing)17
-b Fh(PUT_LNSZ_LNNO)c Fm(and)k Fh(GET_LNSZ_LNNO)d Fm(will)j(select)300
-632 y(the)f(correct)g(one.)24 b(No)16 b(doubt,)g(some)g(da)o(y)g(someone)g
-(will)i(\014nd)f(a)f(v)o(ersion)g(of)300 681 y(co\013)d(whic)o(h)i(has)e(a)h
-(v)m(arying)g(\014eld)h(size)g(not)e(catered)h(for)f(at)g(the)h(momen)o(t.)k
-(T)l(o)300 731 y(p)q(ort)d(bfd,)g(that)g(p)q(erson)g(will)i(ha)o(v)o(e)e(to)f
-(add)i(more)e Fh(#defines)p Fm(.)300 793 y(Three)29 b(of)f(the)h(bit)g(t)o
-(widdling)h(routines)f(are)g(exp)q(orted)g(to)108 b Fh(gdb)p
-Fm(;)300 843 y Fh(coff_swap_aux_in)p Fm(,)19 b Fh(coff_swap_sym_in)14
-b Fm(and)21 b Fh(coff_swap_linno_in)p Fm(.)300 893 y Fh(GDB)14
-b Fm(reads)f(the)i(sym)o(b)q(ol)f(table)g(on)g(its)h(o)o(wn,)e(but)h(uses)g
-(bfd)h(to)e(\014x)h(things)h(up.)0 1022 y Fr(3.2.2.2)30 b(Sym)n(b)r(ol)20
-b(Reading)300 1113 y Fm(The)12 b(simple)i(canonical)f(form)e(for)g(sym)o(b)q
-(ols)h(used)h(b)o(y)f(bfd)g(is)h(not)e(ric)o(h)i(enough)300
-1163 y(to)f(k)o(eep)h(all)g(the)g(information)f(a)o(v)m(ailable)j(in)e(a)f
-(co\013)g(sym)o(b)q(ol)h(table.)19 b(The)13 b(bac)o(k)300 1213
-y(end)20 b(gets)e(around)h(this)g(b)o(y)g(k)o(eeping)h(the)f(original)h(sym)o
-(b)q(ol)f(table)g(around,)300 1263 y Fh(")p Fm(b)q(ehind)e(the)e(sceens)p
-Fh(")p Fm(.)300 1325 y(When)c(a)e(sym)o(b)q(ol)i(table)f(is)h(requested)g
-(\(through)e(a)h(call)h(to)f Fh(bfd_canonicalize_symtab)p Fm(,)p
-2166 1336 21 46 v 300 1375 a(a)16 b(request)g(gets)f(through)h(to)k
-Fh(get_normalized_symtab)p Fm(.)f(This)e(reads)f(the)300 1425
-y(sym)o(b)q(ol)k(table)g(from)f(the)h(co\013)f(\014le)i(and)f(sw)o(aps)f(all)
-i(the)f(structures)f(inside)300 1474 y(in)o(to)e(the)h(in)o(ternal)g(form.)25
-b(It)18 b(also)f(\014xes)h(up)g(all)g(the)f(p)q(oin)o(ters)h(in)g(the)g
-(table)300 1524 y(\(represen)o(ted)e(in)g(the)f(\014le)i(b)o(y)e(o\013sets)f
-(from)h(the)g(\014rst)g(sym)o(b)q(ol)h(in)g(the)g(table\))300
-1574 y(in)o(to)k(ph)o(ysical)h(p)q(oin)o(ters)f(to)f(elemen)o(ts)h(in)h(the)f
-(new)g(in)o(ternal)g(table.)34 b(This)300 1624 y(in)o(v)o(olv)o(es)18
-b(some)g(w)o(ork)f(since)i(the)f(meanings)h(of)f(\014elds)h(c)o(hanges)f(dep)
-q(ending)300 1674 y(up)q(on)i(con)o(text;)h(a)e(\014eld)h(that)f(is)h(a)f(p)q
-(oin)o(ter)h(to)f(another)g(structure)g(in)h(the)300 1724 y(sym)o(b)q(ol)c
-(table)f(at)g(one)g(momen)o(t)g(ma)o(y)f(b)q(e)i(the)f(size)i(in)f(b)o(ytes)f
-(of)f(a)h(structure)300 1773 y(in)h(the)f(next.)300 1836 y(Another)k(pass)f
-(is)h(made)g(o)o(v)o(er)f(the)h(table.)30 b(All)20 b(sym)o(b)q(ols)f(whic)o
-(h)h(mark)e(\014le)300 1885 y(names)i(\()26 b Fh(C_FILE)19
-b Fm(sym)o(b)q(ols\))h(are)f(mo)q(di\014ed)i(so)f(that)f(the)g(in)o(ternal)i
-(string)300 1935 y(p)q(oin)o(ts)15 b(to)f(the)h(v)m(alue)h(in)g(the)e(auxen)o
-(t)h(\(the)g(real)g(\014lename\))g(rather)f(than)h(the)300
-1985 y(normal)g(text)g(asso)q(ciated)g(with)h(the)f(sym)o(b)q(ol)h(\()p
-Fh(".file")p Fm(\).)300 2047 y(A)o(t)j(this)h(time)f(the)h(sym)o(b)q(ol)f
-(names)h(are)f(mo)o(v)o(ed)g(around.)32 b(Co\013)18 b(stores)h(all)300
-2097 y(sym)o(b)q(ols)d(less)g(than)f(nine)i(c)o(haracters)d(long)i(ph)o
-(ysically)h(within)g(the)f(sym)o(b)q(ol)300 2147 y(table,)d(longer)h(strings)
-e(are)h(k)o(ept)g(at)f(the)h(end)h(of)e(the)h(\014le)h(in)g(the)f(string)g
-(table.)300 2197 y(This)22 b(pass)e(mo)o(v)o(es)h(all)h(strings)f(in)o(to)g
-(memory)l(,)g(and)h(replaces)g(them)f(with)300 2247 y(p)q(oin)o(ters)16
-b(to)e(the)h(strings.)300 2309 y(The)20 b(sym)o(b)q(ol)h(table)g(is)g
-(massaged)e(once)i(again,)g(this)g(time)f(to)g(create)g(the)300
-2359 y(canonical)12 b(table)f(used)h(b)o(y)f(the)g(bfd)g(application.)20
-b(Eac)o(h)11 b(sym)o(b)q(ol)g(is)g(insp)q(ected)300 2408 y(in)21
-b(turn,)f(and)g(a)g(decision)i(made)e(\(using)g(the)48 b Fh(sclass)19
-b Fm(\014eld\))i(ab)q(out)f(the)300 2458 y(v)m(arious)12 b(\015ags)f(to)f
-(set)i(in)g(the)f Fh(asymbol)g Fm(See)g(Section)i(2.4)d([Sym)o(b)q(ols],)i
-(page)f(14.)300 2508 y(The)h(generated)g(canonical)h(table)f(shares)f
-(strings)h(with)g(the)g(hidden)h(in)o(ternal)300 2558 y(sym)o(b)q(ol)j
-(table.)300 2620 y(An)o(y)d(linen)o(um)o(b)q(ers)i(are)e(read)g(from)f(the)i
-(co\013)e(\014le)i(to)q(o,)f(and)g(attatc)o(hed)f(to)h(the)300
-2670 y(sym)o(b)q(ols)i(whic)o(h)i(o)o(wn)d(the)i(functions)f(the)h(linen)o
-(um)o(b)q(ers)h(b)q(elong)f(to.)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 51 53
-bop 0 -58 a Fk(Chapter)13 b(3:)k(BFD)c(back)f(end)p 409 -66
-670 3 v 693 w(DRAFT)p 1222 -66 V 697 w Fj(51)0 183 y Fr(3.2.2.3)30
-b(Sym)n(b)r(ol)20 b(W)-5 b(riting)300 277 y Fm(W)l(riting)15
-b(a)e(sym)o(b)q(ol)i(to)e(a)h(co\013)g(\014le)h(whic)o(h)g(didn't)f(come)h
-(from)e(a)h(co\013)f(\014le)i(will)300 327 y(lose)h(an)o(y)g(debugging)g
-(information.)22 b(The)e Fh(asymbol)14 b Fm(structure)i(remem)o(b)q(ers)300
-377 y(the)k(bfd)g(from)f(whic)o(h)h(w)o(as)f(b)q(orn,)i(and)f(on)f(output)h
-(the)g(bac)o(k)f(end)i(mak)o(es)300 427 y(sure)15 b(that)g(the)g(same)g
-(destination)h(target)e(as)h(source)g(target)f(is)i(presen)o(t.)300
-492 y(When)f(the)g(sym)o(b)q(ols)g(ha)o(v)o(e)f(come)h(from)f(a)g(co\013)h
-(\014le)g(then)g(all)h(the)f(debugging)300 541 y(information)g(is)h(preserv)o
-(ed.)300 606 y(Sym)o(b)q(ol)i(tables)g(are)f(pro)o(vided)i(for)e(writing)h
-(to)f(the)g(bac)o(k)h(end)g(in)g(a)g(v)o(ector)300 656 y(of)h(p)q(oin)o(ters)
-i(to)e(p)q(oin)o(ters.)34 b(This)20 b(allo)o(ws)g(applications)i(lik)o(e)f
-(the)f(link)o(er)h(to)300 706 y(accum)o(ulate)13 b(and)g(output)g(large)g
-(sym)o(b)q(ol)g(tables)h(without)e(ha)o(ving)i(to)e(do)h(to)q(o)300
-756 y(m)o(uc)o(h)i(b)o(yte)g(cop)o(ying.)300 821 y(The)j(sym)o(b)q(ol)g
-(table)g(is)g(not)f(output)h(to)f(a)g(writable)i(bfd)f(un)o(til)g(it)g(is)g
-(closed.)300 870 y(The)d(order)g(of)f(op)q(erations)h(on)g(the)g(canonical)h
-(sym)o(b)q(ol)g(table)f(at)f(that)g(p)q(oin)o(t)300 920 y(are:)300
-985 y Fh(coff_renumber_symbols)450 1035 y Fm(This)20 b(function)h(runs)f
-(through)g(the)g(pro)o(vided)g(sym)o(b)q(ol)g(table)h(and)450
-1085 y(patc)o(hes)16 b(eac)o(h)h(sym)o(b)q(ol)f(mark)o(ed)g(as)g(a)g(\014le)h
-(place)h(holder)f(\()7 b Fh(C_FILE)p Fm(\))450 1135 y(to)13
-b(p)q(oin)o(t)g(to)g(the)g(next)g(\014le)i(place)f(holder)g(in)g(the)f(list.)
-20 b(It)13 b(also)h(marks)450 1185 y(eac)o(h)43 b Fh(offset)18
-b Fm(\014eld)j(in)f(the)f(list)h(with)f(the)h(o\013set)e(from)g(the)h
-(\014rst)450 1234 y(sym)o(b)q(ol)d(of)e(the)i(curren)o(t)f(sym)o(b)q(ol.)450
-1299 y(Another)j(function)h(of)f(this)h(pro)q(cedure)g(is)g(to)e(turn)h(the)h
-(canonical)450 1349 y(v)m(alue)f(form)d(of)h(bfd)h(in)o(to)f(the)g(form)g
-(used)h(b)o(y)f(co\013.)23 b(In)o(ternally)l(,)18 b(bfd)450
-1399 y(exp)q(ects)e(sym)o(b)q(ol)g(v)m(alues)g(to)f(b)q(e)h(o\013sets)e(from)
-h(a)g(section)h(base;)f(so)g(a)450 1449 y(sym)o(b)q(ol)c(ph)o(ysically)i(at)d
-(0x120,)g(but)h(in)g(a)g(section)g(starting)f(at)g(0x100,)450
-1499 y(w)o(ould)16 b(ha)o(v)o(e)g(the)g(v)m(alue)h(0x20.)22
-b(Co\013)15 b(exp)q(ects)h(sym)o(b)q(ols)g(to)g(con)o(tain)450
-1548 y(their)d(\014nal)h(v)m(alue,)g(so)f(sym)o(b)q(ols)g(ha)o(v)o(e)g(their)
-g(v)m(alues)h(c)o(hanged)f(at)g(this)450 1598 y(p)q(oin)o(t)20
-b(to)g(re\015ect)g(their)h(sum)f(with)g(their)g(o)o(wning)g(section.)35
-b(Note)450 1648 y(that)18 b(this)h(transformation)e(uses)i(the)39
-b Fh(output_section)17 b Fm(\014eld)i(of)450 1698 y(the)c Fh(asymbol)p
-Fm('s)f Fh(asection)g Fm(See)i(Section)g(2.3)e([Sections],)h(page)g(8.)300
-1763 y Fh(coff_mangle_symbols)450 1813 y Fm(This)f(routine)f(runs)g(though)g
-(the)g(pro)o(vided)h(sym)o(b)q(ol)f(table)h(and)f(uses)450
-1862 y(the)18 b(o\013sets)g(generated)g(b)o(y)h(the)f(previous)h(pass)f(and)h
-(the)g(p)q(oin)o(ters)450 1912 y(generated)f(when)h(the)g(sym)o(b)q(ol)g
-(table)g(w)o(as)e(read)i(in)g(to)f(create)g(the)450 1962 y(structured)c
-(hierac)o(h)o(y)h(required)h(b)o(y)e(co\013.)19 b(It)c(c)o(hanges)f(eac)o(h)g
-(p)q(oin)o(ter)450 2012 y(to)h(a)f(sym)o(b)q(ol)i(to)e(an)i(index)g(in)o(to)f
-(the)g(sym)o(b)q(ol)h(table)g(of)e(the)i(sym)o(b)q(ol)450 2062
-y(b)q(eing)g(referenced.)300 2126 y Fh(coff_write_symbols)450
-2176 y Fm(This)i(routine)f(runs)g(through)g(the)g(sym)o(b)q(ol)h(table)f(and)
-g(patc)o(hes)g(up)450 2226 y(the)g(sym)o(b)q(ols)g(from)e(their)j(in)o
-(ternal)f(form)f(in)o(to)g(the)h(co\013)f(w)o(a)o(y)l(,)g(calls)450
-2276 y(the)f(bit)h(t)o(widdlers)g(and)f(writes)h(out)e(the)i(tab)q(el)g(to)e
-(the)i(\014le.)300 2341 y(The)f(hidden)i(information)f(for)e(an)h(asym)o(b)q
-(ol)h(is:)414 2391 y Fh(typedef)23 b(struct)g(coff_ptr_struct)414
-2441 y({)300 2505 y Ff(Remem)o(b)q(ers)12 b(the)f(o\013set)g(from)f(the)i
-(\014rst)e(sym)o(b)q(ol)i(in)g(the)f(\014le)i(for)d(this)k(sym)o(b)q(ol.)300
-2555 y(Generated)h(b)o(y)g Fh(coff_renumber_symbols)p Ff(.)462
-2605 y Fh(unsigned)22 b(int)i(offset;)300 2670 y Ff(Should)f(the)f(tag)e
-(\014eld)j(of)f(this)g(sym)o(b)q(ol)g(b)q(e)g(ren)o(um)o(b)q(ered.)40
-b(Created)21 b(b)o(y)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 52 54
-bop 0 -58 a Fk(Chapter)13 b(3:)k(BFD)c(back)f(end)p 409 -66
-670 3 v 693 w(DRAFT)p 1222 -66 V 697 w Fj(52)300 183 y Fh
-(coff_pointerize_aux)p Ff(.)462 233 y Fh(char)23 b(fix_tag;)300
-296 y Ff(Should)18 b(the)e(endidx)i(\014eld)f(of)f(this)h(sym)o(b)q(ol)g(b)q
-(e)g(ren)o(um)o(b)q(ered.)24 b(Created)16 b(b)o(y)300 346 y
-Fh(coff_pointerize_aux)p Ff(.)462 396 y Fh(char)23 b(fix_end;)300
-459 y Ff(The)16 b(con)o(tainer)g(for)g(the)g(sym)o(b)q(ol)g(structure)f(as)h
-(read)g(and)g(translated)g(from)300 508 y(the)f(\014le.)462
-558 y Fh(union)23 b({)509 608 y(union)g(internal_auxent)f(auxent;)509
-658 y(struct)h(internal_syment)f(syment;)462 708 y(})h(u;)414
-757 y(})h(combined_entry_type;)300 870 y Fm(Eac)o(h)15 b(canonical)i(asym)o
-(b)q(ol)e(really)h(lo)q(oks)f(lik)o(e)i(this:)414 920 y Fh(typedef)23
-b(struct)g(coff_symbol_struct)414 970 y({)300 1033 y Ff(The)15
-b(actual)h(sym)o(b)q(ol)f(whic)o(h)h(the)g(rest)e(of)h(bfd)h(w)o(orks)e(with)
-462 1083 y Fh(asymbol)22 b(symbol;)300 1146 y Ff(A)15 b(p)q(oin)o(ter)h(to)e
-(the)i(hidden)h(information)e(for)g(this)g(sym)o(b)q(ol)462
-1195 y Fh(combined_entry_type)21 b(*native;)300 1258 y Ff(A)15
-b(p)q(oin)o(ter)h(to)e(the)i(linen)o(um)o(b)q(er)h(information)e(for)g(this)h
-(sym)o(b)q(ol)462 1308 y Fh(struct)23 b(lineno_cache_entry)e(*lineno;)414
-1358 y(})j(coff_symbol_type;)0 1497 y Fr(3.2.2.4)30 b(W)-5
-b(riting)20 b(Relo)r(cations)300 1589 y Fm(T)l(o)i(write)h(a)g(relo)q
-(cations,)i(all)e(the)g(bac)o(k)g(end)g(do)q(es)g(is)h(step)e(though)h(the)
-300 1639 y(canonical)f(relo)q(cation)f(table,)h(and)f(create)g(an)53
-b Fh(internal_reloc)p Fm(.)34 b(The)300 1689 y(sym)o(b)q(ol)15
-b(index)i(to)d(use)h(is)h(remo)o(v)o(ed)e(from)g(the)h Fh(offset)f
-Fm(\014eld)j(in)f(the)f(sym)o(b)q(ol)300 1739 y(table)d(supplied,)h(the)f
-(address)f(comes)g(directly)h(from)e(the)i(sum)f(of)f(the)h(section)300
-1788 y(base)18 b(address)h(and)g(the)f(relo)q(cation)h(o\013set)f(and)g(the)h
-(t)o(yp)q(e)f(is)h(dug)g(directly)300 1838 y(from)14 b(the)i(ho)o(wto)e
-(\014eld.)300 1901 y(Then)26 b(the)85 b Fh(internal_reloc)23
-b Fm(is)j(sw)o(app)q(ed)g(in)o(to)f(the)g(shap)q(e)h(of)f(an)300
-1951 y Fh(external_reloc)13 b Fm(and)j(written)f(out)g(to)f(disk.)0
-2090 y Fr(3.2.2.5)30 b(Reading)20 b(Linen)n(um)n(b)r(ers)300
-2182 y Fm(Createing)c(the)g(linen)o(um)o(b)q(er)i(table)e(is)g(done)h(b)o(y)e
-(reading)i(in)f(the)g(en)o(tire)h(co\013)300 2232 y(linen)o(um)o(b)q(er)g
-(table,)f(and)f(creating)g(another)g(table)h(for)e(in)o(ternal)i(use.)300
-2295 y(A)c(co\013)f(line)i(n)o(um)o(b)q(er)f(table)h(is)f(structured)f(so)h
-(that)f(eac)o(h)h(function)g(is)g(mark)o(ed)300 2345 y(as)19
-b(ha)o(ving)g(a)g(line)i(n)o(um)o(b)q(er)f(of)f(0.)31 b(Eac)o(h)19
-b(line)i(within)g(the)e(function)h(is)g(an)300 2395 y(o\013set)12
-b(from)h(the)g(\014rst)g(line)i(in)f(the)g(function.)20 b(The)13
-b(base)g(of)g(the)h(line)h(n)o(um)o(b)q(er)300 2444 y(information)f(for)g
-(the)g(table)h(is)g(stored)f(in)h(the)f(sym)o(b)q(ol)h(asso)q(ciated)f(with)h
-(the)300 2494 y(function.)300 2557 y(The)20 b(information)h(is)f(copied)h
-(from)f(the)g(external)g(to)g(the)g(in)o(ternal)h(table,)300
-2607 y(and)14 b(eac)o(h)g(sym)o(b)q(ol)g(whic)o(h)h(marks)f(a)f(function)i
-(is)f(mark)o(ed)g(b)o(y)g(p)q(oin)o(ting)h(its...)300 2670
-y(**Ho)o(w)f(do)q(es)i(this)f(w)o(ork)f(?**)0 2770 y Fk(c)6
-b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332
-2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 53 55
-bop 0 -58 a Fk(Chapter)13 b(3:)k(BFD)c(back)f(end)p 409 -66
-670 3 v 693 w(DRAFT)p 1222 -66 V 697 w Fj(53)0 183 y Fr(3.2.2.6)30
-b(Reading)20 b(Relo)r(cations)300 275 y Fm(Co\013)d(relo)q(cations)h(are)g
-(easily)g(transformed)f(in)o(to)h(the)g(in)o(ternal)g(bfd)g(form)f(\()300
-324 y Fh(arelent)p Fm(\).)300 387 y(Reading)f(a)f(co\013)g(relo)q(cation)h
-(table)f(is)h(done)g(in)g(the)f(follo)o(wing)h(stages:)337
-449 y Fq(\017)30 b Fm(The)15 b(en)o(tire)h(co\013)f(relo)q(cation)h(table)f
-(is)h(read)f(in)o(to)g(memory)l(.)337 511 y Fq(\017)30 b Fm(Eac)o(h)13
-b(relo)q(cation)h(is)g(pro)q(cessed)g(in)g(turn,)f(\014rst)g(it)h(is)g(sw)o
-(app)q(ed)f(from)g(the)390 561 y(external)j(to)e(the)h(in)o(ternal)i(form.)
-337 623 y Fq(\017)30 b Fm(The)g(sym)o(b)q(ol)f(referenced)i(in)f(the)f(relo)q
-(cation's)h(sym)o(b)q(ol)g(index)g(is)390 673 y(turned)22 b(in)o(to)g(a)g(p)q
-(oin)o(ter)h(in)o(to)f(the)g(canonical)h(sym)o(b)q(ol)f(table.)41
-b(Note)390 723 y(that)20 b(this)h(table)h(is)f(the)g(same)g(as)f(the)h(one)g
-(returned)g(b)o(y)g(a)g(call)h(to)390 773 y Fh(bfd_canonicalize_symtab)p
-Fm(.)c(The)e(bac)o(k)f(end)i(will)g(call)g(the)e(routine)390
-823 y(and)g(sa)o(v)o(e)g(the)g(result)h(if)f(a)g(canonicalization)j(hasn't)c
-(b)q(een)j(done.)337 885 y Fq(\017)30 b Fm(The)14 b(relo)q(c)g(index)h(is)f
-(turned)g(in)o(to)g(a)f(p)q(oin)o(ter)h(to)f(a)g(ho)o(wto)g(structure,)g(in)
-390 935 y(a)i(bac)o(k)h(end)g(sp)q(eci\014c)h(w)o(a)o(y)l(.)j(F)l(or)15
-b(instance,)h(the)g(386)e(and)i(960)f(use)g(the)390 984 y Fh(r_type)g
-Fm(to)h(directly)h(pro)q(duce)g(an)f(index)i(in)o(to)e(a)f(ho)o(wto)g(table)i
-(v)o(ector;)390 1034 y(the)g(88k)f(subtracts)h(a)f(n)o(um)o(b)q(er)i(from)e
-(the)28 b Fh(r_type)16 b Fm(\014eld)i(and)f(creates)390 1084
-y(an)e(addend)h(\014eld.)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 54 56
-bop 0 -58 a Fk(F)o(unction)13 b(Index)p 238 -66 756 3 v 779
-w(DRAFT)p 1137 -66 V 782 w Fj(54)0 183 y Fi(F)-7 b(unction)26
-b(Index)0 403 y Fn(A)0 457 y Fe(aout)p 82 457 12 2 v 13 w(<size>)p
-215 457 V 11 w(machine)p 366 457 V 12 w(type)t Fd(:)6 b(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g Fc(47)0 503 y Fe(aout)p 82 503
-V 13 w(<size>)p 215 503 V 11 w(mkobject)f Fd(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)j Fc(47)0 549 y Fe(aout)p
-82 549 V 13 w(<size>)p 215 549 V 11 w(set)p 286 549 V 13 w(arch)p
-379 549 V 13 w(mach)d Fd(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)i
-Fc(48)0 594 y Fe(aout)p 82 594 V 13 w(<size>)p 215 594 V 11
-w(some)p 306 594 V 13 w(aout)p 399 594 V 13 w(object)p 532
-594 V 11 w(p)t Fd(:)e(:)g(:)g(:)g(:)g(:)g(:)t Fc(47)0 640 y
-Fe(aout)p 82 640 V 13 w(<size>)p 215 640 V 11 w(swap)p 306
-640 V 13 w(exec)p 399 640 V 13 w(header)p 532 640 V 11 w(in)k
-Fd(:)c(:)h(:)f(:)g(:)11 b Fc(47)0 686 y Fe(aout)p 82 686 V
-13 w(<size>)p 215 686 V 11 w(swap)p 306 686 V 13 w(exec)p 399
-686 V 13 w(header)p 532 686 V 11 w(out)e Fd(:)d(:)g(:)g(:)k
-Fc(47)0 731 y Fe(aout)p 82 731 V 13 w(<size>ne)o(w)p 274 731
-V 11 w(section)p 425 731 V 12 w(hook)f Fd(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-11 b Fc(48)0 857 y Fn(B)0 911 y Fe(bfd)p 62 911 V 13 w(alloc)p
-175 911 V 12 w(size)6 b Fd(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)i Fc(40)0 956 y
-Fe(bfd)p 62 956 V 13 w(arch)p 155 956 V 13 w(compatib)o(le)e
-Fd(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)k
-Fc(38)0 1002 y Fe(bfd)p 62 1002 V 13 w(architect)o(ure)d Fd(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)11
-b Fc(36)0 1048 y Fe(bfd)p 62 1048 V 13 w(cache)p 175 1048 V
-12 w(close)t Fd(:)6 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g Fc(44)0 1093 y Fe(bfd)p 62
-1093 V 13 w(cache)p 175 1093 V 12 w(init)g Fd(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)i
-Fc(44)0 1139 y Fe(bfd)p 62 1139 V 13 w(cache)p 175 1139 V 12
-w(lookup)r Fd(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)f Fc(43)0 1185 y Fe(bfd)p 62 1185 V
-13 w(cache)p 175 1185 V 12 w(lookup)p 307 1185 V 12 w(worker)g
-Fd(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)g
-Fc(44)0 1230 y Fe(BFD)p 62 1230 V 13 w(CACHE)p 175 1230 V 12
-w(MAX)p 247 1230 V 13 w(OPEN)s Fd(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)f Fc(43)0 1276 y Fe(bfd)p
-62 1276 V 13 w(canonical)o(ize)p 313 1276 V 10 w(symtab)r Fd(:)h(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)f Fc(18)0 1322 y Fe(bfd)p
-62 1322 V 13 w(check)p 175 1322 V 12 w(format)r Fd(:)i(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)f
-Fc(21)0 1367 y Fe(bfd)p 62 1367 V 13 w(close)k Fd(:)d(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)11 b Fc(39)0 1413 y Fe(bfd)p 62 1413 V 13 w(core)p
-155 1413 V 13 w(file)p 248 1413 V 12 w(failing)p 400 1413 V
-12 w(command)c Fd(:)g(:)f(:)g(:)g(:)g(:)g(:)11 b Fc(30)0 1459
-y Fe(bfd)p 62 1459 V 13 w(core)p 155 1459 V 13 w(file)p 248
-1459 V 12 w(failing)p 400 1459 V 12 w(signal)q Fd(:)6 b(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)t Fc(30)0 1504 y Fe(bfd)p 62 1504 V 13 w(create)h
-Fd(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)k Fc(39)0 1550 y Fe(bfd)p
-62 1550 V 13 w(fdopenr)c Fd(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)j
-Fc(39)0 1596 y Fe(bfd)p 62 1596 V 13 w(find)p 155 1596 V 13
-w(target)s Fd(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g Fc(35)0 1641 y Fe(bfd)p 62 1641
-V 13 w(format)p 195 1641 V 12 w(string)q Fd(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)t Fc(21)0
-1687 y Fe(bfd)p 62 1687 V 13 w(get)p 135 1687 V 13 w(elt)p
-208 1687 V 13 w(at)p 261 1687 V 13 w(index)s Fd(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g Fc(20)0 1733 y
-Fe(bfd)p 62 1733 V 13 w(get)p 135 1733 V 13 w(mtime)i Fd(:)e(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)k Fc(6)0 1778 y Fe(bfd)p 62 1778 V 13 w(get)p 135 1778
-V 13 w(next)p 228 1778 V 13 w(mapent)q Fd(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)t Fc(20)0 1824 y Fe(bfd)p
-62 1824 V 13 w(get)p 135 1824 V 13 w(section)p 288 1824 V 11
-w(by)p 339 1824 V 14 w(name)i Fd(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)k Fc(12)0 1870 y Fe(bfd)p 62 1870 V 13 w(get)p 135
-1870 V 13 w(section)p 288 1870 V 11 w(contents)s Fd(:)c(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g Fc(13)0 1915 y Fe(bfd)p 62 1915
-V 13 w(get)p 135 1915 V 13 w(size)i Fd(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)k
-Fc(41)0 1961 y Fe(bfd)p 62 1961 V 13 w(h)p 95 1961 V 14 w(get)p
-169 1961 V 13 w(size)e Fd(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)k Fc(41)0 2007 y
-Fe(bfd)p 62 2007 V 13 w(h)p 95 2007 V 14 w(put)p 169 2007 V
-13 w(size)e Fd(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)k Fc(41)0 2052 y Fe(bfd)p 62
-2052 V 13 w(last)p 155 2052 V 13 w(cache)5 b Fd(:)h(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)i
-Fc(43)0 2098 y Fe(bfd)p 62 2098 V 13 w(log2)r Fd(:)e(:)g(:)g(:)g(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)g(:)g(:)g(:)t Fc(42)0 2144 y Fe(bfd)p 62 2144 V 13 w(make)p
-155 2144 V 13 w(empty)p 268 2144 V 12 w(symbol)h Fd(:)f(:)g(:)g(:)g(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)k Fc(19)1230 403 y Fe(bfd)p
-1292 403 V 13 w(make)p 1385 403 V 13 w(section)q Fd(:)d(:)f(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)f
-Fc(12)1230 449 y Fe(bfd)p 1292 449 V 13 w(map)p 1365 449 V
-13 w(over)p 1458 449 V 13 w(sections)h Fd(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)k Fc(12)1230 495 y Fe(bfd)p 1292
-495 V 13 w(open)p 1385 495 V 13 w(file)c Fd(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)j
-Fc(44)1230 540 y Fe(bfd)p 1292 540 V 13 w(openr)g Fd(:)d(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)11 b Fc(39)1230 586 y Fe(bfd)p 1292 586 V 13
-w(openr)p 1405 586 V 12 w(next)p 1497 586 V 13 w(archived)p
-1670 586 V 11 w(file)r Fd(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)t
-Fc(20)1230 632 y Fe(bfd)p 1292 632 V 13 w(openw)j Fd(:)d(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)11 b Fc(39)1230 677 y Fe(bfd)p 1292 677 V 13
-w(perform)p 1445 677 V 11 w(relocation)r Fd(:)6 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g Fc(23)1230 723 y Fe(bfd)p 1292
-723 V 13 w(prinable)p 1465 723 V 11 w(arch)p 1556 723 V 13
-w(mach)g Fd(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)j
-Fc(37)1230 769 y Fe(bfd)p 1292 769 V 13 w(print)p 1405 769
-V 12 w(symbol)p 1537 769 V 12 w(vandf)d Fd(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)j Fc(19)1230 814 y Fe(bfd)p 1292 814
-V 13 w(put)p 1365 814 V 13 w(size)f Fd(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)k
-Fc(41)1230 860 y Fe(bfd)p 1292 860 V 13 w(scan)p 1385 860 V
-13 w(arch)p 1478 860 V 12 w(mach)s Fd(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)f Fc(38)1230 906 y Fe(bfd)p
-1292 906 V 13 w(set)p 1365 906 V 13 w(arch)p 1458 906 V 13
-w(mach)t Fd(:)h(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h Fc(38)1230 951 y Fe(bfd)p 1292 951 V 13
-w(set)p 1365 951 V 13 w(archive)p 1518 951 V 11 w(head)j Fd(:)c(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)11 b Fc(20)1230
-997 y Fe(bfd)p 1292 997 V 13 w(set)p 1365 997 V 13 w(format)5
-b Fd(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)i Fc(21)1230 1043 y Fe(bfd)p 1292 1043
-V 13 w(set)p 1365 1043 V 13 w(section)p 1518 1043 V 11 w(contents)s
-Fd(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g Fc(13)1230
-1088 y Fe(bfd)p 1292 1088 V 13 w(set)p 1365 1088 V 13 w(section)p
-1518 1088 V 11 w(flags)i Fd(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)k Fc(12)1230 1134 y Fe(bfd)p 1292 1134 V 13
-w(set)p 1365 1134 V 13 w(section)p 1518 1134 V 11 w(size)g
-Fd(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)11
-b Fc(13)1230 1180 y Fe(bfd)p 1292 1180 V 13 w(set)p 1365 1180
-V 13 w(start)p 1478 1180 V 12 w(address)d Fd(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)11 b Fc(6)1230 1225 y Fe(bfd)p
-1292 1225 V 13 w(set)p 1365 1225 V 13 w(symtab)5 b Fd(:)h(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)i
-Fc(18)1230 1271 y Fe(bfd)p 1292 1271 V 13 w(target)f Fd(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)k Fc(31)1230 1316 y Fe(bfd)p 1292 1316 V 13
-w(target)p 1425 1316 V 12 w(list)t Fd(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g Fc(35)1230
-1420 y Fn(C)1230 1474 y Fe(core)p 1312 1474 V 13 w(file)p 1405
-1474 V 12 w(matches)p 1557 1474 V 12 w(executab)o(le)p 1768
-1474 V 11 w(p)j Fd(:)d(:)g(:)g(:)g(:)g(:)k Fc(30)1230 1578
-y Fn(G)1230 1632 y Fe(get)p 1292 1632 V 13 w(symtab)p 1425
-1632 V 12 w(upper)p 1537 1632 V 12 w(bound)c Fd(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)j Fc(18)1230 1736 y Fn(H)1230
-1790 y Fe(HOWTO)s Fd(:)d(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-(:)f Fc(28)1230 1886 y Fn(R)1230 1940 y Fe(reloc)p 1332 1940
-V 12 w(chain)i Fd(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)j Fc(28)1230
-1986 y Fe(reloc)p 1332 1986 V 12 w(howto)p 1444 1986 V 12 w(type)s
-Fd(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)g(:)f Fc(26)1230 2090 y Fn(S)1230 2144 y Fe(stuff)t
-Fd(:)h(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)
-g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-Fc(7)0 2770 y Fk(c)g(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: 55 57
-bop 0 -58 a Fk(Index)p 94 -66 828 3 v 851 w(DRAFT)p 1065 -66
-V 854 w Fj(55)0 183 y Fi(Index)0 403 y Fn(B)0 457 y Fc(BFD)6
-b Fd(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-Fc(1)0 503 y(BFD)13 b(canonical)j(format)t Fd(:)6 b(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)t Fc(3)1230
-403 y Fn(I)1230 457 y Fc(in)o(ternal)15 b(ob)r(ject-\014le)f(format)c
-Fd(:)c(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)k
-Fc(3)1230 562 y Fn(W)1230 616 y Fc(what)j(is)h(it?)9 b Fd(:)d(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)g
-(:)g(:)g(:)g(:)g(:)g(:)j Fc(1)0 2770 y Fk(c)d(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: 56 58
-bop 0 -58 a Fk(Index)p 94 -66 828 3 v 851 w(DRAFT)p 1065 -66
-V 854 w Fj(56)643 943 y Fm(The)16 b(b)q(o)q(dy)g(of)e(this)i(man)o(ual)f(is)h
-(set)f(in)799 993 y(cmr10)g(at)f(10.95pt,)631 1042 y(with)i(headings)g(in)g
-Fj(cm)o(b10)e(at)h(10.95pt)597 1092 y Fm(and)h(examples)g(in)g
-Fh(cmtt10)23 b(at)g(10.95pt)p Fm(.)754 1142 y Fl(cmti10)17
-b(at)f(10.95pt)21 b Fm(and)799 1192 y Ff(cmsl10)15 b(at)g(10.95pt)754
-1242 y Fm(are)g(used)h(for)e(emphasis.)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36
-b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p 332 2761 1396 3 v 1421 w(Revision:)17
-b(1.5)p eop
-%%Page: -1 59
-bop 12 -66 885 3 v 909 -58 a Fk(DRAFT)p 1040 -66 V 911 w Fj(i)0
-183 y Fi(T)-7 b(able)27 b(of)f(Con)n(ten)n(ts)0 333 y Fn(1)67
-b(In)n(tro)r(duction)14 b Fb(:)e(:)e(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)k Fn(1)149 395
-y Fm(1.1)45 b(History)11 b Fa(:)d(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)k Fm(1)149 445 y(1.2)45
-b(Ho)o(w)15 b(It)g(W)l(orks)7 b Fa(:)f(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)f Fm(1)149 495 y(1.3)45 b(What)15 b(BFD)f(V)l(ersion)i(1)f
-(Can't)f(Do)6 b Fa(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)e Fm(2)299 544 y(1.3.1)44 b(Information)15 b(Loss)6
-b Fa(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)e Fm(2)299 594 y(1.3.2)44 b(Mec)o(hanism)13
-b Fa(:)7 b(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)12 b Fm(3)0 694 y Fn(2)67
-b(BFD)22 b(fron)n(t)h(end)8 b Fb(:)i(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)e Fn(5)149 756 y
-Fm(2.1)45 b(t)o(yp)q(edef)16 b(bfd)c Fa(:)c(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)j Fm(5)448 806 y(2.1.0.1)44
-b(bfd)p 690 806 14 2 v 16 w(set)p 762 806 V 16 w(start)p 873
-806 V 16 w(address)8 b Fa(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-Fm(6)448 856 y(2.1.0.2)44 b(bfd)p 690 856 V 16 w(get)p 767
-856 V 16 w(m)o(time)11 b Fa(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)i Fm(6)448 906 y(2.1.0.3)44 b(stu\013)8 b Fa(:)e(:)h(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g Fm(7)149 955 y(2.2)45 b(Memory)14 b(Usage)7 b
-Fa(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)f
-Fm(8)149 1005 y(2.3)45 b(Sections)t Fa(:)8 b(:)f(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)s Fm(8)299
-1055 y(2.3.1)44 b(Section)16 b(Input)10 b Fa(:)e(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)i
-Fm(8)299 1105 y(2.3.2)44 b(Section)16 b(Output)c Fa(:)7 b(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)k
-Fm(9)299 1155 y(2.3.3)44 b(t)o(yp)q(edef)15 b(asection)g Fa(:)7
-b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)13 b Fm(9)299 1204 y(2.3.4)44 b(section)16 b(protot)o(yp)q(es)11
-b Fa(:)c(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)12 b Fm(12)448 1254 y(2.3.4.1)44 b(bfd)p 690 1254 V
-16 w(get)p 767 1254 V 16 w(section)p 919 1254 V 17 w(b)o(y)p
-984 1254 V 17 w(name)12 b Fa(:)7 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)12 b Fm(12)448
-1304 y(2.3.4.2)44 b(bfd)p 690 1304 V 16 w(mak)o(e)p 810 1304
-V 16 w(section)14 b Fa(:)7 b(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)13
-b Fm(12)448 1354 y(2.3.4.3)44 b(bfd)p 690 1354 V 16 w(set)p
-762 1354 V 16 w(section)p 914 1354 V 17 w(\015ags)5 b Fa(:)i(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)t Fm(12)448 1404 y(2.3.4.4)44 b(bfd)p 690
-1404 V 16 w(map)p 792 1404 V 17 w(o)o(v)o(er)p 892 1404 V 15
-w(sections)t Fa(:)8 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)t Fm(12)448
-1453 y(2.3.4.5)44 b(bfd)p 690 1453 V 16 w(set)p 762 1453 V
-16 w(section)p 914 1453 V 17 w(size)15 b Fa(:)7 b(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)13 b Fm(13)448 1503 y(2.3.4.6)44 b(bfd)p 690 1503 V
-16 w(set)p 762 1503 V 16 w(section)p 914 1503 V 17 w(con)o(ten)o(ts)7
-b Fa(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g Fm(13)448 1553 y(2.3.4.7)44 b(bfd)p
-690 1553 V 16 w(get)p 767 1553 V 16 w(section)p 919 1553 V
-17 w(con)o(ten)o(ts)5 b Fa(:)i(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)e Fm(13)149
-1603 y(2.4)45 b(Sym)o(b)q(ols)11 b Fa(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)k Fm(14)299 1653 y(2.4.1)44
-b(Reading)16 b(Sym)o(b)q(ols)d Fa(:)7 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)j Fm(14)299 1703
-y(2.4.2)44 b(W)l(riting)16 b(Sym)o(b)q(ols)7 b Fa(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g
-Fm(15)299 1752 y(2.4.3)44 b(t)o(yp)q(edef)15 b(asym)o(b)q(ol)c
-Fa(:)d(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)k Fm(16)299 1802 y(2.4.4)44 b(Sym)o(b)q(ol)16 b(Handling)g(F)l
-(unctions)9 b Fa(:)f(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)g
-Fm(18)448 1852 y(2.4.4.1)44 b(get)p 687 1852 V 16 w(sym)o(tab)p
-848 1852 V 15 w(upp)q(er)p 977 1852 V 17 w(b)q(ound)6 b Fa(:)i(:)f(:)h(:)f(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)e
-Fm(18)448 1902 y(2.4.4.2)44 b(bfd)p 690 1902 V 16 w(canonicalize)p
-941 1902 V 19 w(sym)o(tab)12 b Fa(:)c(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)13 b Fm(18)448
-1952 y(2.4.4.3)44 b(bfd)p 690 1952 V 16 w(set)p 762 1952 V
-16 w(sym)o(tab)13 b Fa(:)7 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)13 b Fm(18)448 2001 y(2.4.4.4)44 b(bfd)p 690 2001 V 16 w(prin)o(t)p
-803 2001 V 17 w(sym)o(b)q(ol)p 960 2001 V 17 w(v)m(andf)13
-b Fa(:)7 b(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)h(:)f(:)12 b Fm(19)448 2051 y(2.4.4.5)44
-b(bfd)p 690 2051 V 16 w(mak)o(e)p 810 2051 V 16 w(empt)o(y)p
-950 2051 V 16 w(sym)o(b)q(ol)13 b Fa(:)7 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)12
-b Fm(19)149 2101 y(2.5)45 b(Arc)o(hiv)o(es)9 b Fa(:)f(:)f(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)i Fm(20)448
-2151 y(2.5.0.1)44 b(bfd)p 690 2151 V 16 w(get)p 767 2151 V
-16 w(next)p 870 2151 V 17 w(map)q(en)o(t)7 b Fa(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g Fm(20)448 2201 y(2.5.0.2)44 b(bfd)p 690 2201 V 16
-w(set)p 762 2201 V 16 w(arc)o(hiv)o(e)p 918 2201 V 17 w(head)11
-b Fa(:)c(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)i Fm(20)448 2250 y(2.5.0.3)44
-b(bfd)p 690 2250 V 16 w(get)p 767 2250 V 16 w(elt)p 833 2250
-V 17 w(at)p 891 2250 V 16 w(index)8 b Fa(:)g(:)f(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f Fm(20)448 2300 y(2.5.0.4)44 b(bfd)p 690 2300 V 16 w(op)q(enr)p
-818 2300 V 17 w(next)p 922 2300 V 17 w(arc)o(hiv)o(ed)p 1104
-2300 V 17 w(\014le)6 b Fa(:)i(:)f(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)f Fm(20)149 2350 y(2.6)45 b(File)16
-b(F)l(ormats)8 b Fa(:)e(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h Fm(21)448 2400 y(2.6.0.1)44 b(bfd)p 690 2400 V 16
-w(c)o(hec)o(k)p 813 2400 V 17 w(format)12 b Fa(:)7 b(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)13 b Fm(21)448 2450 y(2.6.0.2)44 b(bfd)p
-690 2450 V 16 w(set)p 762 2450 V 16 w(format)9 b Fa(:)d(:)h(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)g Fm(21)448 2500 y(2.6.0.3)44
-b(bfd)p 690 2500 V 16 w(format)p 840 2500 V 15 w(string)10
-b Fa(:)e(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)j Fm(21)149
-2549 y(2.7)45 b(Relo)q(cations)10 b Fa(:)e(:)f(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)i Fm(23)448 2599 y(2.7.0.1)44 b(bfd)p
-690 2599 V 16 w(p)q(erform)p 863 2599 V 17 w(relo)q(cation)7
-b Fa(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g Fm(23)448 2649 y(2.7.0.2)44
-b(relo)q(c)p 720 2649 V 17 w(ho)o(wto)p 858 2649 V 15 w(t)o(yp)q(e)t
-Fa(:)8 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)t Fm(26)0
-2770 y Fk(c)f(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: -2 60
-bop 12 -66 879 3 v 903 -58 a Fk(DRAFT)p 1034 -66 V 905 w Fj(ii)448
-42 y Fm(2.7.0.3)44 b(HO)o(WTO)10 b Fa(:)c(:)i(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)i Fm(28)448 91 y(2.7.0.4)44
-b(relo)q(c)p 720 91 14 2 v 17 w(c)o(hain)14 b Fa(:)7 b(:)g(:)g(:)h(:)f(:)g(:)
-g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)13 b Fm(28)149 141
-y(2.8)45 b(Core)15 b(\014les)d Fa(:)c(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)j Fm(30)448 191 y(2.8.0.1)44
-b(bfd)p 690 191 V 16 w(core)p 787 191 V 17 w(\014le)p 861 191
-V 17 w(failing)p 999 191 V 18 w(command)11 b Fa(:)c(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)k Fm(30)448
-241 y(2.8.0.2)44 b(bfd)p 690 241 V 16 w(core)p 787 241 V 17
-w(\014le)p 861 241 V 17 w(failing)p 999 241 V 18 w(signal)10
-b Fa(:)e(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)j Fm(30)448 291 y(2.8.0.3)44 b(core)p 707
-291 V 16 w(\014le)p 780 291 V 17 w(matc)o(hes)p 958 291 V 16
-w(executable)p 1181 291 V 18 w(p)14 b Fa(:)7 b(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)14 b Fm(30)149 340 y(2.9)45
-b(T)l(argets)10 b Fa(:)c(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)h Fm(31)448 390 y(2.9.0.1)44 b(bfd)p
-690 390 V 16 w(target)11 b Fa(:)c(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)k Fm(31)299 440 y(2.9.1)44 b(bfd)p
-505 440 V 17 w(target)11 b Fa(:)c(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)13
-b Fm(31)448 490 y(2.9.1.1)44 b(bfd)p 690 490 V 16 w(\014nd)p
-781 490 V 17 w(target)6 b Fa(:)g(:)h(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)d Fm(35)448 540 y(2.9.1.2)44 b(bfd)p 690 540 V 16
-w(target)p 826 540 V 15 w(list)15 b Fa(:)7 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)13 b Fm(35)149 589 y(2.10)45 b(Arc)o(hitectures)10
-b Fa(:)e(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)j
-Fm(36)448 639 y(2.10.0.1)43 b(bfd)p 712 639 V 17 w(arc)o(hitecture)12
-b Fa(:)c(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)12 b Fm(36)448
-689 y(2.10.0.2)43 b(bfd)p 712 689 V 17 w(prinable)p 889 689
-V 18 w(arc)o(h)p 992 689 V 16 w(mac)o(h)9 b Fa(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)g
-Fm(37)448 739 y(2.10.0.3)43 b(bfd)p 712 739 V 17 w(scan)p 815
-739 V 17 w(arc)o(h)p 917 739 V 16 w(mac)o(h)6 b Fa(:)h(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)f Fm(38)448 789 y(2.10.0.4)43 b(bfd)p 712 789 V 17 w(arc)o(h)p
-814 789 V 16 w(compatible)11 b Fa(:)e(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)k
-Fm(38)448 839 y(2.10.0.5)43 b(bfd)p 712 839 V 17 w(set)p 785
-839 V 16 w(arc)o(h)p 886 839 V 16 w(mac)o(h)11 b Fa(:)d(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)k Fm(38)149 888 y(2.11)45 b(Op)q(ening)17 b(and)e(Closing)h
-(BFDs)11 b Fa(:)6 b(:)i(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)i Fm(39)448 938 y(2.11.0.1)43 b(bfd)p 712 938
-V 17 w(op)q(enr)14 b Fa(:)7 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)13 b Fm(39)448 988 y(2.11.0.2)43 b(bfd)p
-712 988 V 17 w(fdop)q(enr)15 b Fa(:)7 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)14 b Fm(39)448 1038 y(2.11.0.3)43 b(bfd)p
-712 1038 V 17 w(op)q(en)o(w)6 b Fa(:)i(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)f Fm(39)448 1088 y(2.11.0.4)43 b(bfd)p
-712 1088 V 17 w(close)13 b Fa(:)8 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)12 b Fm(39)448 1137 y(2.11.0.5)43
-b(bfd)p 712 1137 V 17 w(create)10 b Fa(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)j Fm(39)448 1187 y(2.11.0.6)43
-b(bfd)p 712 1187 V 17 w(allo)q(c)p 820 1187 V 18 w(size)10
-b Fa(:)e(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)j
-Fm(40)448 1237 y(2.11.1.7)43 b(bfd)p 712 1237 V 17 w(put)p
-797 1237 V 17 w(size)13 b Fa(:)7 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)
-g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)12 b Fm(41)448 1287 y(2.11.1.8)43 b(bfd)p 712
-1287 V 17 w(get)p 790 1287 V 16 w(size)6 b Fa(:)i(:)f(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)d Fm(41)448 1337 y(2.11.1.9)43
-b(bfd)p 712 1337 V 17 w(h)p 754 1337 V 17 w(put)p 839 1337
-V 16 w(size)11 b Fa(:)e(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)k
-Fm(41)448 1386 y(2.11.1.10)43 b(bfd)p 735 1386 V 17 w(h)p 777
-1386 V 16 w(get)p 854 1386 V 16 w(size)15 b Fa(:)7 b(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)14 b Fm(41)448 1436 y(2.11.1.11)43 b(bfd)p
-735 1436 V 17 w(log2)8 b Fa(:)e(:)i(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f Fm(42)149 1486 y(2.12)45 b(File)16
-b(Cac)o(hing)8 b Fa(:)f(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f Fm(43)448 1536 y(2.12.0.1)43 b(BFD)p 745 1536 V 16 w(CA)o(CHE)p
-925 1536 V 16 w(MAX)p 1051 1536 V 16 w(OPEN)6 b Fa(:)i(:)f(:)h(:)f(:)g(:)g(:)
-g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)f Fm(43)448
-1586 y(2.12.0.2)43 b(bfd)p 712 1586 V 17 w(last)p 800 1586
-V 16 w(cac)o(he)13 b Fa(:)7 b(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)12 b Fm(43)448 1636 y(2.12.0.3)43 b(bfd)p 712 1636 V 17
-w(cac)o(he)p 836 1636 V 17 w(lo)q(okup)11 b Fa(:)d(:)f(:)h(:)f(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)k Fm(43)448 1685 y(2.12.0.4)43 b(bfd)p 712 1685
-V 17 w(cac)o(he)p 836 1685 V 17 w(init)15 b Fa(:)7 b(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)14 b Fm(44)448 1735 y(2.12.0.5)43
-b(bfd)p 712 1735 V 17 w(cac)o(he)p 836 1735 V 17 w(close)11
-b Fa(:)d(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)k Fm(44)448
-1785 y(2.12.0.6)43 b(bfd)p 712 1785 V 17 w(op)q(en)p 823 1785
-V 17 w(\014le)5 b Fa(:)k(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)e Fm(44)448 1835 y(2.12.0.7)43 b(bfd)p 712 1835 V 17
-w(cac)o(he)p 836 1835 V 17 w(lo)q(okup)p 986 1835 V 17 w(w)o(ork)o(er)8
-b Fa(:)e(:)h(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g Fm(44)0 1939 y Fn(3)67 b(BFD)22 b(bac)n(k)h(end)9
-b Fb(:)h(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)e Fn(45)149 2001 y Fm(3.1)45 b(a.out)14 b(bac)o(k)o(ends)7
-b Fa(:)h(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g
-Fm(46)299 2051 y(3.1.1)44 b(relo)q(cations)6 b Fa(:)h(:)h(:)f(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)d Fm(46)299 2101 y(3.1.2)44 b(In)o(ternal)16 b(En)o(try)e(P)o(oin)o
-(ts)d Fa(:)c(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)i
-Fm(46)448 2151 y(3.1.2.1)44 b(aout)p 715 2151 V 15 w Fh(<)p
-Fm(size)p Fh(>)p 848 2151 V 17 w Fm(sw)o(ap)p 963 2151 V 16
-w(exec)p 1063 2151 V 17 w(header)p 1211 2151 V 17 w(in)14 b
-Fa(:)7 b(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)13
-b Fm(47)448 2201 y(3.1.2.2)44 b(aout)p 715 2201 V 15 w Fh(<)p
-Fm(size)p Fh(>)p 848 2201 V 17 w Fm(sw)o(ap)p 963 2201 V 16
-w(exec)p 1063 2201 V 17 w(header)p 1211 2201 V 17 w(out)9 b
-Fa(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)i
-Fm(47)448 2250 y(3.1.2.3)44 b(aout)p 715 2250 V 15 w Fh(<)p
-Fm(size)p Fh(>)p 848 2250 V 17 w Fm(some)p 964 2250 V 16 w(aout)p
-1069 2250 V 16 w(ob)s(ject)p 1208 2250 V 16 w(p)11 b Fa(:)d(:)f(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)k Fm(47)448
-2300 y(3.1.2.4)44 b(aout)p 715 2300 V 15 w Fh(<)p Fm(size)p
-Fh(>)p 848 2300 V 17 w Fm(mk)o(ob)s(ject)11 b Fa(:)6 b(:)i(:)f(:)g(:)g(:)g(:)
-h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)i Fm(47)448 2350 y(3.1.2.5)44 b(aout)p 715 2350 V 15 w Fh(<)p
-Fm(size)p Fh(>)p 848 2350 V 17 w Fm(mac)o(hine)p 1027 2350
-V 18 w(t)o(yp)q(e)10 b Fa(:)d(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)i Fm(47)448 2400 y(3.1.2.6)44
-b(aout)p 715 2400 V 15 w Fh(<)p Fm(size)p Fh(>)p 848 2400 V
-17 w Fm(set)p 921 2400 V 17 w(arc)o(h)p 1023 2400 V 16 w(mac)o(h)13
-b Fa(:)7 b(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)14 b Fm(48)448 2450 y(3.1.2.7)44 b(aout)p 715
-2450 V 15 w Fh(<)p Fm(size)p Fh(>)p Fm(new)p 926 2450 V 18
-w(section)p 1080 2450 V 17 w(ho)q(ok)9 b Fa(:)e(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)i Fm(48)149
-2499 y(3.2)45 b(co\013)15 b(bac)o(k)o(ends)e Fa(:)7 b(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)13 b Fm(49)299 2549 y(3.2.1)44
-b(P)o(orting)14 b(T)l(o)h(A)h(New)f(V)l(ersion)h(of)f(Co\013)6
-b Fa(:)g(:)h(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)f Fm(49)299 2599 y(3.2.2)44 b(Ho)o(w)14
-b(The)i(Co\013)e(Bac)o(k)o(end)h(W)l(orks)e Fa(:)8 b(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)13 b Fm(49)448 2649 y(3.2.2.1)44 b(Bit)15 b(Twiddling)f
-Fa(:)7 b(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)j
-Fm(49)0 2770 y Fk(c)6 b(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g(t)p
-332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Page: -3 61
-bop 12 -66 873 3 v 897 -58 a Fk(DRAFT)p 1028 -66 V 898 w Fj(iii)448
-42 y Fm(3.2.2.2)44 b(Sym)o(b)q(ol)15 b(Reading)9 b Fa(:)g(:)e(:)g(:)h(:)f(:)g
-(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)i Fm(50)448 91 y(3.2.2.3)44 b(Sym)o(b)q(ol)15
-b(W)l(riting)t Fa(:)9 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)t
-Fm(51)448 141 y(3.2.2.4)44 b(W)l(riting)15 b(Relo)q(cations)h
-Fa(:)7 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g
-(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)14 b Fm(52)448 191 y(3.2.2.5)44
-b(Reading)16 b(Linen)o(um)o(b)q(ers)6 b Fa(:)j(:)e(:)h(:)f(:)g(:)g(:)g(:)h(:)
-f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)f
-Fm(52)448 241 y(3.2.2.6)44 b(Reading)16 b(Relo)q(cations)9
-b Fa(:)f(:)g(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)g Fm(53)0 345 y Fn(F)-6
-b(unction)25 b(Index)10 b Fb(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g
-(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g
-(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f Fn(54)0 457
-y(Index)5 b Fb(:)12 b(:)e(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h
-(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f
-(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)h(:)f(:)g
-(:)c Fn(55)0 2770 y Fk(c)g(y)g(g)g(n)g(u)g(s)36 b(s)6 b(u)g(p)g(p)g(o)g(r)g
-(t)p 332 2761 1396 3 v 1421 w(Revision:)17 b(1.5)p eop
-%%Trailer
-end
-userdict /end-hook known{end-hook}if
-%%EOF
diff --git a/bfd/bfd.texinfo b/bfd/bfd.texinfo
deleted file mode 100755
index 2320387..0000000
--- a/bfd/bfd.texinfo
+++ /dev/null
@@ -1,492 +0,0 @@
-\input texinfo
-@setfilename bfdinfo
-@c $Id$
-@syncodeindex fn cp
-@ifinfo
-This file documents the BFD library.
-
-Copyright (C) 1991 Free Software Foundation, Inc.
-
-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.
-
-@ignore
-Permission is granted to process this file through Tex and print the
-results, provided the printed document carries copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-
-@end ignore
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, subject to the terms
-of the GNU General Public License, which includes the provision 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.
-@end ifinfo
-@iftex
-@c@finalout
-@setchapternewpage on
-@c@setchapternewpage odd
-@settitle LIB BFD, the Binary File Descriptor Library
-@titlepage
-@title{libbfd}
-@subtitle{The Binary File Descriptor Library}
-@sp 1
-@subtitle First Edition---BFD version < 2.0
-@subtitle April 1991
-@author {Steve Chamberlain}
-@author {Cygnus Support}
-@page
-
-@tex
-\def\$#1${{#1}} % Kluge: collect RCS revision info without $...$
-\xdef\manvers{\$Revision$} % For use in headers, footers too
-{\parskip=0pt
-\hfill Cygnus Support\par
-\hfill steve\@cygnus.com\par
-\hfill {\it BFD}, \manvers\par
-\hfill \TeX{}info \texinfoversion\par
-}
-\global\parindent=0pt % Steve likes it this way
-@end tex
-
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1991 Free Software Foundation, Inc.
-
-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, subject to the terms
-of the GNU General Public License, which includes the provision 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.
-@end titlepage
-@end iftex
-
-@node Top, Overview, (dir), (dir)
-@ifinfo
-This file documents the binary file descriptor library libbfd.
-@end ifinfo
-
-@menu
-* Overview:: Overview of BFD
-* History:: History of BFD
-* Backends:: Backends
-* Porting:: Porting
-* Future:: Future
-* Index:: Index
-
-BFD body:
-* Memory usage::
-* Sections::
-* Symbols::
-* Archives::
-* Formats::
-* Relocations::
-* Core Files::
-* Targets::
-* Architecturs::
-* Opening and Closing::
-* Internal::
-* File Caching::
-
-BFD backends:
-* a.out backends::
-* coff backends::
-@end menu
-
-@node Overview, History, Top, Top
-@chapter Introduction
-@cindex BFD
-@cindex what is it?
-BFD is a package for manipulating binary files required for developing
-programs. It implements a group of structured operations designed to
-shield the programmer from the underlying representation of these
-binary files. It understands object (compiled) files, archive
-libraries, and core files. It is designed to work in a variety of
-target environments.
-
-Most simply put, BFD is a package which allows applications to use the
-same routines to operate on object files whatever the object file
-format.
-
-BFD is split into two parts; the front end and the many back ends.
-@itemize @bullet
-@item
-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.
-@item
-The back ends provide BFD its view of the real world. A different
-object file format can be supported simply by creating a new BFD back
-end and adding it to the library. 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.
-@end itemize
-@node History, How It Works, Overview,Top
-@section 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
-Cygnus 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 Steve Chamberlain (steve@@cygnus.com),
-John Gilmore (gnu@@cygnus.com), K. Richard Pixley (rich@@cygnus.com) and
-David Wallace (gumby@@cygnus.com) at Cygnus Support in Palo Alto,
-California.
-
-@node How It Works, History, Porting, Top
-@section How It Works
-
-To use the library, include @code{bfd.h} and link with @code{libbfd.a}.
-
-BFD provides a common interface to the parts of an object file
-for a calling application.
-
-When an application sucessfully opens a target file (object, archive or
-whatever) a pointer to an internal structure is returned. This pointer
-points to a structure called @code{bfd}, described in
-@code{include/bfd.h}. Our convention is to call this pointer a BFD, and
-instances of it within code @code{abfd}. All operations on
-the target object file are applied as methods to the BFD. The mapping is
-defined within @code{bfd.h} in a set of macros, all beginning
-@samp{bfd_}.
-
-In short, a BFD is a representation for a particular file. It is opened
-in a manner similar to a file; code then manipulates it rather than the
-raw files.
-
-For example, this sequence would do what you would probably expect:
-return the number of sections in an object file attached to a BFD
-@code{abfd}.
-
-@lisp
-@cartouche
-#include "bfd.h"
-
-unsigned int number_of_sections(abfd)
-bfd *abfd;
-@{
- return bfd_count_sections(abfd);
-@}
-@end cartouche
-@end lisp
-
-The abstraction used within BFD is that an object file has a header,
-a number of sections containing raw data, a set of relocations, and some
-symbol information. 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.
-
-@cindex targets
-@cindex formats
-BFD makes a distinction between @dfn{targets} (families of file
-formats) and @dfn{formats} (individual file formats). For instance,
-the @code{"sun4os4"} target can handle core, object and archive formats of
-files. The exact layout of the different formats depends on the target
-environment.
-
-The target @code{"default"} means the first one known (usually used for
-environments that only support one format, or where the common format
-is known at compile or link time). The target @code{NULL} means the one
-specified at runtime in the environment variable @code{GNUTARGET}; if that is
-null or not defined then, on output, the first entry in the target list
-is chosen; or, on input, all targets are searched to find a matching
-one.
-
-Most programs should use the target @code{NULL}. See the descriptions
-of @code{bfd_target_list} and @code{bfd_format_string} for functions to
-inquire on targets and formats.
-
-@section What BFD Version 1 Can Do
-As different information from the 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 the memory pointer to the relevant BFD
-back end routine 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 which takes the newly
-created symbol table and converts it into the chosen output format.
-
-@node BFD information loss, Mechanism, BFD outline, BFD
-@subsection Information Loss
-@emph{Some information is lost due to the nature of the file format.} The output targets
-supported by BFD do not provide identical facilities, and
-information which may be described in one form has nowhere to go in
-another format. One example of this is alignment information in
-@code{b.out}. There is nowhere in an @code{a.out} format file to store
-alignment information on the contained data, so when a file is linked
-from @code{b.out} and an @code{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 (eg
-@code{a.out}) or has sections without names (eg 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.
-
-@emph{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, this mechanism
-is very useful. There is no information lost for this reason when
-linking or copying big endian COFF to little endian COFF, or @code{a.out} to
-@code{b.out}. When a mixture of formats is linked, the information is
-only lost from the files whose format differs from the destination.
-
-@node Mechanism, , BFD information loss, BFD
-@subsection Mechanism
-The greatest potential for loss of information is when there is least
-overlap between the information provided by the source format, that
-stored by the canonical format, and the information needed by the
-destination format. A brief description of the canonical form may help
-you appreciate what kinds of data you can count on preserving across
-conversions.
-@cindex BFD canonical format
-@cindex internal object-file format
-
-@table @emph
-@item files
-Information on target machine architecture, particular implementation
-and format type are stored on a per-file basis. Other information
-includes a demand pageable bit and a write protected bit. Note that
-information like Unix magic numbers is not stored here---only the magic
-numbers' meaning, so a @code{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 linked with one another.
-@c FIXME: generalize above from "link"?
-
-@item sections
-Each section in the input file contains the name of the section, the
-original address in the object file, various flags, size and alignment
-information and pointers into other BFD data structures.
-
-@item symbols
-Each symbol contains a pointer to 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, the back end relocates all
-symbols to make them relative to the base of the section where they were
-defined. This ensures that each symbol points to its containing
-section. Each symbol also has a varying amount of hidden data to contain
-private data for the BFD back end. Since the symbol points to the
-original file, the private data format for that symbol is accessible.
-@code{gld} 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 @code{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.
-
-@item 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 effectively by message passing through the relocation type
-descriptor and symbol pointer. It allows relocations to be performed
-on output data using a relocation method 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 COFF file, even though 68k COFF
-has no such relocation type.
-
-@item 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 divination of 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).
-@end table
-
-@c FIXME: what is this line about? Do we want introductory remarks
-@c FIXME... on back ends? commented out for now.
-@c What is a backend
-@node BFD front end, BFD back end, Mechanism, Top
-@chapter BFD front end
-@include bfd.texi
-
-@node Memory Usage, Errors, bfd, Top
-@section Memory Usage
-BFD keeps all 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 libbfd for the closing file will be thrown away.
-
-BFD will not free anything created by an application, but pointers into
-@code{bfd} structures will be invalidated on a @code{bfd_close}; for example,
-after a @code{bfd_close} the vector passed to
-@code{bfd_canonicalize_symtab} will still be around, since it has been
-allocated by the application, but the data that it pointed to will be
-lost.
-
-The general rule is not to 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
-(@code{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.
-
-@node Errors, Sections, Memory Usage, Top
-@section Error Handling
-
-@cindex errors
-In general, a boolean function returns true on success and false on failure
-(unless it's a predicate). Functions which return pointers to
-objects return @code{NULL} on error. The specifics are documented with each
-function.
-
-If a function fails, you should check the variable @code{bfd_error}. If
-the value is @code{no_error}, then check the C variable @code{errno}
-just as you would with any other program. Other values for
-@code{bfd_error} are documented in @file{bfd.h}.
-
-@findex bfd_errmsg
-If you would prefer a comprehensible string for the error message, use
-the function @code{bfd_errmsg}:
-@example
-char * bfd_errmsg (error_tag)
-@end example
-This function returns a read-only string which documents the error
-code. If the error code is @code{no_error} then it will return a string
-depending on the value of @code{errno}.
-
-@findex bfd_perror
-@code{bfd_perror()} is like the @code{perror()} function except it understands
-@code{bfd_error}.
-
-
-@node Sections, Symbols, Errors, Top
-@include section.texi
-
-@node Symbols, Archives ,Sections, To
-@include syms.texi
-
-@node Archives, Formats, Symbols, Top
-@include archive.texi
-
-@node Formats, Relocations, Archives, Top
-@include format.texi
-
-@node Relocations, Core Files,Formats, Top
-@include reloc.texi
-
-@node Core Files, Targets, Relocations, Top
-@include core.texi
-
-@node Targets, Architectures, Core Files, Top
-@include targets.texi
-
-@node Architectures, Opening and Closing, Targets, Top
-@include archures.texi
-
-@node Opening and Closing, Internal, Architectures, Top
-@include opncls.texi
-
-@node Internal, File Caching, Opening and Closing, Top
-@include libbfd.texi
-
-@node File Caching, Top, Internal, Top
-@include cache.texi
-
-@chapter BFD back end
-@node BFD back end, ,BFD front end, Top
-@menu
-* What to put where
-* a.out backends::
-* coff backends::
-* oasys backend::
-* ieee backend::
-* srecord backend::
-@end menu
-@node What to Put Where, aout backends, BFD back end, BFD back end
-All of BFD lives in one directory.
-
-@node aout backends, coff backends, What to Put Where, BFD back end
-@include aoutx.texi
-
-@node coff backends, oasys backends, aout backends, BFD back end
-@include coffcode.texi
-
-@node Index, , BFD, Top
-@unnumbered Index
-@printindex cp
-
-@tex
-% I think something like @colophon should be in texinfo. In the
-% meantime:
-\long\def\colophon{\hbox to0pt{}\vfill
-\centerline{The body of this manual is set in}
-\centerline{\fontname\tenrm,}
-\centerline{with headings in {\bf\fontname\tenbf}}
-\centerline{and examples in {\tt\fontname\tentt}.}
-\centerline{{\it\fontname\tenit\/} and}
-\centerline{{\sl\fontname\tensl\/}}
-\centerline{are used for emphasis.}\vfill}
-\page\colophon
-% Blame: pesch@cygnus.com, 28mar91.
-@end tex
-
-
-@contents
-@bye
-
-
diff --git a/bfd/blins-p b/bfd/blins-p
deleted file mode 100755
index 858dcd7..0000000
--- a/bfd/blins-p
+++ /dev/null
@@ -1,8 +0,0 @@
-# sed script for BFD header files
-# Merge adjacent blank lines. Loop til no change.
-:blin
-/^$/,/^ *[^ ]*.*$/{
-/^$/N
-s/^ *\n *$//
-}
-t blin
diff --git a/bfd/coff-code.h b/bfd/coff-code.h
deleted file mode 100755
index 9040236..0000000
--- a/bfd/coff-code.h
+++ /dev/null
@@ -1,2608 +0,0 @@
-/* Support for Intel 960 COFF and Motorola 88k BCS COFF (and maybe others) */
-
-/* Copyright (C) 1990, 1991 Free Software Foundation, Inc.
-
-This file is part of BFD, the Binary File Diddler.
-
-BFD is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 1, or (at your option) any later version.
-
-BFD is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- details.
-
-You should have received a copy of the GNU General Public License along with
- BFD; see the file COPYING. If not, write to the Free Software Foundation,
- 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-/* $Id$ */
-/* Most of this hacked by Steve Chamberlain, steve@cygnus.com */
-
-#include "archures.h" /* Machine architectures and types */
-
-/* SUPPRESS 558 */
-/* SUPPRESS 590 */
-/* SUPPRESS 529 */
-/* SUPPRESS 530 */
-
-/* Align an address upward to a boundary, expressed as a number of bytes.
- E.g. align to an 8-byte boundary with argument of 8. */
-#define ALIGN(this, boundary) \
- ((( (this) + ((boundary) -1)) & (~((boundary)-1))))
-
-/* Align an address upward to a power of two. Argument is the power
- of two, e.g. 8-byte alignment uses argument of 3 (8 == 2^3). */
-#define i960_align(addr, align) \
- ( ((addr) + ((1<<(align))-1)) & (-1 << (align)))
-
-#define sp(x) bfd_h_put_x(abfd, x, &x)
-
-#ifndef I960
-#define GDB_EXPORT static
-#else
-#define GDB_EXPORT /* nothing */
-#endif
-
-PROTO(static void,force_indices_file_symbol_relative,(bfd *abfd,
- struct internal_syment *symtab));
-
-
-/* void warning(); */
-extern asection abs_section;
-
-static int
-DEFUN(get_index,(symbol),
- asymbol *symbol)
-{
- return (int) symbol->value;
-}
-
-static void
-DEFUN(set_index,(symbol, idx),
- asymbol *symbol AND
- unsigned int idx)
-{
- symbol->value = idx;
-}
-
-
-
-
-
-/* All the swapping routines:
-*/
-
-
-GDB_EXPORT
-void
-DEFUN(bfd_swap_reloc_in,(abfd, reloc_src, reloc_dst),
- bfd *abfd AND
- RELOC *reloc_src AND
- struct internal_reloc *reloc_dst)
-{
- reloc_dst->r_vaddr = bfd_h_getlong(abfd, reloc_src->r_vaddr);
- reloc_dst->r_symndx = bfd_h_getlong(abfd, reloc_src->r_symndx);
- reloc_dst->r_type = bfd_h_getshort(abfd, reloc_src->r_type);
-#if M88
- reloc_dst->r_offset = bfd_h_getshort(abfd, reloc_src->r_offset);
-#endif
-}
-
-GDB_EXPORT
- void
-DEFUN(bfd_swap_reloc_out,(abfd, reloc_src, reloc_dst),
- bfd *abfd AND
- struct internal_reloc *reloc_src AND
- struct external_reloc *reloc_dst)
-{
- bfd_h_putlong(abfd, reloc_src->r_vaddr, reloc_dst->r_vaddr);
- bfd_h_putlong(abfd, reloc_src->r_symndx, reloc_dst->r_symndx);
- bfd_h_putshort(abfd, reloc_src->r_type, reloc_dst->r_type);
-#if M88
- bfd_h_putshort(abfd, reloc_src->r_offset, reloc_dst->r_offset);
-#endif
-
-}
-
-GDB_EXPORT void
-DEFUN(bfd_swap_filehdr_in,(abfd, filehdr_src, filehdr_dst),
- bfd *abfd AND
- FILHDR *filehdr_src AND
- struct internal_filehdr *filehdr_dst)
-{
- filehdr_dst->f_magic = bfd_h_get_x(abfd, filehdr_src->f_magic);
- filehdr_dst->f_nscns = bfd_h_get_x(abfd,filehdr_src-> f_nscns);
- filehdr_dst->f_timdat = bfd_h_get_x(abfd,filehdr_src-> f_timdat);
- filehdr_dst->f_symptr = bfd_h_get_x(abfd,filehdr_src-> f_symptr);
- filehdr_dst->f_nsyms = bfd_h_get_x(abfd,filehdr_src-> f_nsyms);
- filehdr_dst->f_opthdr = bfd_h_get_x(abfd,filehdr_src-> f_opthdr);
- filehdr_dst->f_flags = bfd_h_get_x(abfd,filehdr_src-> f_flags);
-}
-
-GDB_EXPORT void
-DEFUN(bfd_swap_filehdr_out,(abfd, filehdr_in, filehdr_out),
- bfd *abfd AND
- struct internal_filehdr *filehdr_in AND
- FILHDR *filehdr_out)
-{
- bfd_h_put_x(abfd, filehdr_in->f_magic, filehdr_out->f_magic);
- bfd_h_put_x(abfd, filehdr_in->f_nscns, filehdr_out->f_nscns);
- bfd_h_put_x(abfd, filehdr_in->f_timdat, filehdr_out->f_timdat);
- bfd_h_put_x(abfd, filehdr_in->f_symptr, filehdr_out->f_symptr);
- bfd_h_put_x(abfd, filehdr_in->f_nsyms, filehdr_out->f_nsyms);
- bfd_h_put_x(abfd, filehdr_in->f_opthdr, filehdr_out->f_opthdr);
- bfd_h_put_x(abfd, filehdr_in->f_flags, filehdr_out->f_flags);
-}
-
-
-GDB_EXPORT
-void
-DEFUN(bfd_coff_swap_sym_in,(abfd, ext, in),
- bfd *abfd AND
- SYMENT *ext AND
- struct internal_syment *in)
-{
- if( ext->e.e_name[0] == 0) {
- in->_n._n_n._n_zeroes = 0;
- in->_n._n_n._n_offset = bfd_h_getlong(abfd, ext->e.e.e_offset);
- }
- else {
- memcpy(in->_n._n_name, ext->e.e_name, SYMNMLEN);
- }
- in->n_value = bfd_h_get_x(abfd, ext->e_value);
- in->n_scnum = bfd_h_get_x(abfd, ext->e_scnum);
- in->n_type = bfd_h_get_x(abfd, ext->e_type);
- in->n_sclass = bfd_h_get_x(abfd, ext->e_sclass);
- in->n_numaux = bfd_h_get_x(abfd, ext->e_numaux);
-}
-
-GDB_EXPORT void
-DEFUN(bfd_coff_swap_sym_out,(abfd,in, ext),
- bfd *abfd AND
- struct internal_syment *in AND
- SYMENT *ext)
-{
- if(in->_n._n_name[0] == 0) {
- bfd_h_putlong(abfd, 0, ext->e.e.e_zeroes);
- bfd_h_putlong(abfd, in->_n._n_n._n_offset, ext->e.e.e_offset);
- }
- else {
- memcpy(ext->e.e_name, in->_n._n_name, SYMNMLEN);
- }
- bfd_h_put_x(abfd, in->n_value , ext->e_value);
- bfd_h_put_x(abfd, in->n_scnum , ext->e_scnum);
- bfd_h_put_x(abfd, in->n_type , ext->e_type);
- bfd_h_put_x(abfd, in->n_sclass , ext->e_sclass);
- bfd_h_put_x(abfd, in->n_numaux , ext->e_numaux);
-}
-
-GDB_EXPORT void
-DEFUN(bfd_coff_swap_aux_in,(abfd, ext, type, class, in),
- bfd *abfd AND
- AUXENT *ext AND
- int type AND
- int class AND
- union internal_auxent *in)
-{
- switch (class) {
- case C_FILE:
- if (ext->x_file.x_fname[0] == 0) {
- in->x_file.x_n.x_zeroes = 0;
- in->x_file.x_n.x_offset = bfd_h_getlong(abfd, ext->x_file.x_n.x_offset);
- }
-
- break;
- case C_STAT:
-#ifdef C_LEAFSTAT
- case C_LEAFSTAT:
-#endif
- case C_HIDDEN:
- if (type == T_NULL) {
- in->x_scn.x_scnlen = bfd_h_get_x(abfd, ext->x_scn.x_scnlen);
- in->x_scn.x_nreloc = bfd_h_get_x(abfd, ext->x_scn.x_nreloc);
- in->x_scn.x_nlinno = bfd_h_get_x(abfd, ext->x_scn.x_nlinno);
- break;
- }
- default:
- in->x_sym.x_tagndx = bfd_h_get_x(abfd, ext->x_sym.x_tagndx);
- in->x_sym.x_tvndx = bfd_h_get_x(abfd, ext->x_sym.x_tvndx);
-
- if (ISARY(type) || class == C_BLOCK) {
- in->x_sym.x_fcnary.x_ary.x_dimen[0] = bfd_h_get_x(abfd, ext->x_sym.x_fcnary.x_ary.x_dimen[0]);
- in->x_sym.x_fcnary.x_ary.x_dimen[1] = bfd_h_get_x(abfd, ext->x_sym.x_fcnary.x_ary.x_dimen[1]);
- in->x_sym.x_fcnary.x_ary.x_dimen[2] = bfd_h_get_x(abfd, ext->x_sym.x_fcnary.x_ary.x_dimen[2]);
- in->x_sym.x_fcnary.x_ary.x_dimen[3] = bfd_h_get_x(abfd, ext->x_sym.x_fcnary.x_ary.x_dimen[3]);
- }
- else {
- in->x_sym.x_fcnary.x_fcn.x_lnnoptr = bfd_h_get_x(abfd, ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
- in->x_sym.x_fcnary.x_fcn.x_endndx = bfd_h_get_x(abfd, ext->x_sym.x_fcnary.x_fcn.x_endndx);
- }
- if (ISFCN(type)) {
- in->x_sym.x_misc.x_fsize = bfd_h_get_x(abfd, ext->x_sym.x_misc.x_fsize);
- }
- else {
- in->x_sym.x_misc.x_lnsz.x_lnno = bfd_h_get_x(abfd, ext->x_sym.x_misc.x_lnsz.x_lnno);
- in->x_sym.x_misc.x_lnsz.x_size = bfd_h_get_x(abfd, ext->x_sym.x_misc.x_lnsz.x_size);
- }
- }
-}
-
-GDB_EXPORT void
-DEFUN(bfd_coff_swap_aux_out,(abfd, in, type, class, ext),
- bfd *abfd AND
- union internal_auxent *in AND
- int type AND
- int class AND
- AUXENT *ext)
-{
- switch (class) {
- case C_FILE:
- if (in->x_file.x_fname[0] == 0) {
- bfd_h_put_x(abfd, 0, ext->x_file.x_n.x_zeroes );
- bfd_h_put_x(abfd, in->x_file.x_n.x_offset, ext->x_file.x_n.x_offset);
- }
-
- break;
- case C_STAT:
-#ifdef C_LEAFSTAT
- case C_LEAFSTAT:
-#endif
- case C_HIDDEN:
- if (type == T_NULL) {
- bfd_h_put_x(abfd, in->x_scn.x_scnlen, ext->x_scn.x_scnlen);
- bfd_h_put_x(abfd, in->x_scn.x_nreloc, ext->x_scn.x_nreloc);
- bfd_h_put_x(abfd, in->x_scn.x_nlinno, ext->x_scn.x_nlinno);
- break;
- }
- default:
- bfd_h_put_x(abfd, in->x_sym.x_tagndx, ext->x_sym.x_tagndx);
- bfd_h_put_x(abfd, in->x_sym.x_tvndx , ext->x_sym.x_tvndx);
-
- if (ISARY(type) || class == C_BLOCK) {
- bfd_h_put_x(abfd, in->x_sym.x_fcnary.x_ary.x_dimen[0],ext->x_sym.x_fcnary.x_ary.x_dimen[0]);
- bfd_h_put_x(abfd, in->x_sym.x_fcnary.x_ary.x_dimen[1],ext->x_sym.x_fcnary.x_ary.x_dimen[1]);
- bfd_h_put_x(abfd, in->x_sym.x_fcnary.x_ary.x_dimen[2],ext->x_sym.x_fcnary.x_ary.x_dimen[2]);
- bfd_h_put_x(abfd, in->x_sym.x_fcnary.x_ary.x_dimen[3],ext->x_sym.x_fcnary.x_ary.x_dimen[3]);
- }
- else {
- bfd_h_put_x(abfd, in->x_sym.x_fcnary.x_fcn.x_lnnoptr, ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
- bfd_h_put_x(abfd, in->x_sym.x_fcnary.x_fcn.x_endndx, ext->x_sym.x_fcnary.x_fcn.x_endndx);
- }
- if (ISFCN(type)) {
- bfd_h_put_x(abfd, in->x_sym.x_misc.x_fsize, ext->x_sym.x_misc.x_fsize);
- }
- else {
- bfd_h_put_x(abfd, in->x_sym.x_misc.x_lnsz.x_lnno, ext->x_sym.x_misc.x_lnsz.x_lnno);
- bfd_h_put_x(abfd, in->x_sym.x_misc.x_lnsz.x_size, ext->x_sym.x_misc.x_lnsz.x_size);
- }
- }
-}
-
-GDB_EXPORT void
-DEFUN(bfd_coff_swap_lineno_in,(abfd, ext, in),
- bfd *abfd AND
- LINENO *ext AND
- struct internal_lineno *in)
-{
- in->l_addr.l_symndx = bfd_h_get_x(abfd, ext->l_addr.l_symndx);
- in->l_lnno = bfd_h_get_x(abfd, ext->l_lnno);
-}
-
-GDB_EXPORT void
-DEFUN(bfd_coff_swap_lineno_out,(abfd, in, ext),
- bfd *abfd AND
- struct internal_lineno *in AND
- struct external_lineno *ext)
-{
- bfd_h_put_x(abfd, in->l_addr.l_symndx, ext->l_addr.l_symndx);
- bfd_h_put_x(abfd, in->l_lnno, ext->l_lnno);
-}
-
-
-
-
-GDB_EXPORT void
-DEFUN(bfd_swap_aouthdr_in,(abfd, aouthdr_ext, aouthdr_int),
- bfd *abfd AND
- AOUTHDR *aouthdr_ext AND
- struct internal_aouthdr *aouthdr_int)
-{
- aouthdr_int->magic = bfd_h_get_x(abfd, aouthdr_ext->magic);
- aouthdr_int->vstamp = bfd_h_get_x(abfd, aouthdr_ext->vstamp);
- aouthdr_int->tsize = bfd_h_get_x(abfd, aouthdr_ext->tsize);
- aouthdr_int->dsize = bfd_h_get_x(abfd, aouthdr_ext->dsize);
- aouthdr_int->bsize = bfd_h_get_x(abfd, aouthdr_ext->bsize);
- aouthdr_int->entry = bfd_h_get_x(abfd, aouthdr_ext->entry);
- aouthdr_int->text_start = bfd_h_get_x(abfd, aouthdr_ext->text_start);
- aouthdr_int->data_start = bfd_h_get_x(abfd, aouthdr_ext->data_start);
-#ifdef I960
- aouthdr_int->tagentries = bfd_h_get_x(abfd, aouthdr_ext->tagentries);
-#endif
-}
-
-GDB_EXPORT void
-DEFUN(bfd_swap_aouthdr_out,(abfd, aouthdr_in, aouthdr_out),
- bfd *abfd AND
- struct internal_aouthdr *aouthdr_in AND
- AOUTHDR *aouthdr_out)
-{
- bfd_h_put_x(abfd, aouthdr_in->magic, aouthdr_out->magic);
- bfd_h_put_x(abfd, aouthdr_in->vstamp, aouthdr_out->vstamp);
- bfd_h_put_x(abfd, aouthdr_in->tsize, aouthdr_out->tsize);
- bfd_h_put_x(abfd, aouthdr_in->dsize, aouthdr_out->dsize);
- bfd_h_put_x(abfd, aouthdr_in->bsize, aouthdr_out->bsize);
- bfd_h_put_x(abfd, aouthdr_in->entry, aouthdr_out->entry);
- bfd_h_put_x(abfd, aouthdr_in->text_start, aouthdr_out->text_start);
- bfd_h_put_x(abfd, aouthdr_in->data_start, aouthdr_out->data_start);
-#ifdef I960
- bfd_h_put_x(abfd, aouthdr_in->tagentries, aouthdr_out->tagentries);
-#endif
-}
-
-GDB_EXPORT void
-DEFUN(bfd_coff_swap_scnhdr_in,(abfd, scnhdr_ext, scnhdr_int),
- bfd *abfd AND
- SCNHDR *scnhdr_ext AND
- struct internal_scnhdr *scnhdr_int)
-{
- memcpy(scnhdr_int->s_name, scnhdr_ext->s_name, sizeof(scnhdr_int->s_name));
- scnhdr_int->s_vaddr = bfd_h_get_x(abfd, scnhdr_ext->s_vaddr);
- scnhdr_int->s_paddr = bfd_h_get_x(abfd, scnhdr_ext->s_paddr);
- scnhdr_int->s_size = bfd_h_get_x(abfd, scnhdr_ext->s_size);
- scnhdr_int->s_scnptr = bfd_h_get_x(abfd, scnhdr_ext->s_scnptr);
- scnhdr_int->s_relptr = bfd_h_get_x(abfd, scnhdr_ext->s_relptr);
- scnhdr_int->s_lnnoptr = bfd_h_get_x(abfd, scnhdr_ext->s_lnnoptr);
- scnhdr_int->s_nreloc = bfd_h_get_x(abfd, scnhdr_ext->s_nreloc);
- scnhdr_int->s_nlnno = bfd_h_get_x(abfd, scnhdr_ext->s_nlnno);
- scnhdr_int->s_flags = bfd_h_get_x(abfd, scnhdr_ext->s_flags);
-#ifdef I960
- scnhdr_int->s_align = bfd_h_get_x(abfd, scnhdr_ext->s_align);
-#endif
-}
-
-static void
-DEFUN(swap_scnhdr_out,(abfd, scnhdr_int, scnhdr_ext),
- bfd *abfd AND
- struct internal_scnhdr *scnhdr_int AND
- SCNHDR *scnhdr_ext)
-{
- memcpy(scnhdr_ext->s_name, scnhdr_int->s_name, sizeof(scnhdr_int->s_name));
- bfd_h_put_x(abfd, scnhdr_int->s_vaddr, scnhdr_ext->s_vaddr);
- bfd_h_put_x(abfd, scnhdr_int->s_paddr, scnhdr_ext->s_paddr);
- bfd_h_put_x(abfd, scnhdr_int->s_size, scnhdr_ext->s_size);
- bfd_h_put_x(abfd, scnhdr_int->s_scnptr, scnhdr_ext->s_scnptr);
- bfd_h_put_x(abfd, scnhdr_int->s_relptr, scnhdr_ext->s_relptr);
- bfd_h_put_x(abfd, scnhdr_int->s_lnnoptr, scnhdr_ext->s_lnnoptr);
- bfd_h_put_x(abfd, scnhdr_int->s_nreloc, scnhdr_ext->s_nreloc);
- bfd_h_put_x(abfd, scnhdr_int->s_nlnno, scnhdr_ext->s_nlnno);
- bfd_h_put_x(abfd, scnhdr_int->s_flags, scnhdr_ext->s_flags);
-#ifdef I960
- bfd_h_put_x(abfd, scnhdr_int->s_align, scnhdr_ext->s_align);
-#endif
-}
-
-/*
- initialize a section structure with information peculiar to this
- particular implementation of coff
-*/
-
-static boolean
-DEFUN(coff_new_section_hook,(abfd_ignore, section_ignore),
- bfd *abfd_ignore AND
- asection *section_ignore)
-{
-#ifdef MC88MAGIC
- /* FIXME, shouldn't this ifdef be on something that says we are
- actually COMPILING FOR an 88K coff file, rather than simply
- knowing its magic number? */
- /* Align to at least 16 bytes */
- section_ignore->alignment_power = 4;
-#endif
-#if M68
- section_ignore->alignment_power = 3;
-#endif
- return true;
-}
-
-/* Take a section header read from a coff file (in HOST byte order),
- and make a BFD "section" out of it. */
-static boolean
-DEFUN(make_a_section_from_file,(abfd, hdr),
- bfd *abfd AND
- struct internal_scnhdr *hdr)
-{
- asection *return_section;
-
- {
- /* Assorted wastage to null-terminate the name, thanks AT&T! */
- char *name = bfd_alloc(abfd, sizeof (hdr->s_name)+1);
- if (name == NULL) {
- bfd_error = no_memory;
- return false;
- }
- strncpy(name, (char *) &hdr->s_name[0], sizeof (hdr->s_name));
- name[sizeof (hdr->s_name)] = 0;
-
- return_section = bfd_make_section(abfd, name);
- }
-
- /* s_paddr is presumed to be = to s_vaddr */
-#define assign(to, from) return_section->to = hdr->from
- assign(vma, s_vaddr);
- /* assign (vma, s_vaddr); */
- assign(size, s_size);
- assign(filepos, s_scnptr);
- assign(rel_filepos, s_relptr);
- assign(reloc_count, s_nreloc);
-#ifdef I960
- {
- /* FIXME, use a temp var rather than alignment_power */
- assign(alignment_power, s_align);
- {
- unsigned int i;
- for (i = 0; i < 32; i++) {
- if ((1 << i) >= (int) (return_section->alignment_power)) {
- return_section->alignment_power = i;
- break;
- }
- }
- }
- }
-#endif
- assign(line_filepos, s_lnnoptr);
- /*
- return_section->linesize = hdr->s_nlnno * sizeof (struct lineno);
- */
-
-#undef assign
- return_section->lineno_count = hdr->s_nlnno;
- return_section->userdata = NULL;
- return_section->next = (asection *) NULL;
- return_section->flags = 0;
- if ((hdr->s_flags & STYP_TEXT) || (hdr->s_flags & STYP_DATA))
- return_section->flags = (SEC_LOAD | SEC_ALLOC);
- else if (hdr->s_flags & STYP_BSS)
- return_section->flags = SEC_ALLOC;
-
- if (hdr->s_nreloc != 0)
- return_section->flags |= SEC_RELOC;
- if (hdr->s_scnptr != 0)
- return_section->flags |= SEC_HAS_CONTENTS;
- return true;
-}
-static boolean
-DEFUN(coff_mkobject,(abfd),
- bfd *abfd)
-{
- set_tdata (abfd, bfd_zalloc (abfd,sizeof(coff_data_type)));
- if (coff_data(abfd) == 0) {
- bfd_error = no_memory;
- return false;
- }
- coff_data(abfd)->relocbase = 0;
- return true;
-}
-
-static
-bfd_target *
-DEFUN(coff_real_object_p,(abfd, nscns, internal_f, internal_a),
- bfd *abfd AND
- unsigned nscns AND
- struct internal_filehdr *internal_f AND
- struct internal_aouthdr *internal_a)
-{
- coff_data_type *coff;
-
- size_t readsize; /* length of file_info */
- SCNHDR *external_sections;
-
- /* Build a play area */
- if (coff_mkobject(abfd) != true)
- return 0;
- coff = coff_data(abfd);
-
-
- external_sections = (SCNHDR *)bfd_alloc(abfd, readsize = (nscns * SCNHSZ));
- if (bfd_read((PTR)external_sections, 1, readsize, abfd) != readsize) {
- goto fail;
- }
-
-
-
- /* Now copy data as required; construct all asections etc */
- coff->symbol_index_slew = 0;
- coff->relocbase =0;
- coff->raw_syment_count = 0;
- coff->raw_linenos = 0;
- coff->raw_syments = 0;
- coff->sym_filepos =0;
- coff->flags = internal_f->f_flags;
- if (nscns != 0) {
- unsigned int i;
- for (i = 0; i < nscns; i++) {
- struct internal_scnhdr tmp;
- bfd_coff_swap_scnhdr_in(abfd, external_sections + i, &tmp);
- make_a_section_from_file(abfd,&tmp);
- }
- }
- /* Determine the machine architecture and type. */
- abfd->obj_machine = 0;
- switch (internal_f->f_magic) {
-#ifdef MIPS
-case MIPS_MAGIC_1:
-case MIPS_MAGIC_2:
-case MIPS_MAGIC_3:
- abfd->obj_arch = bfd_arch_mips;
- abfd->obj_machine = 0;
- break;
-#endif
-
-#ifdef MC68MAGIC
- case MC68MAGIC:
- case M68MAGIC:
- abfd->obj_arch = bfd_arch_m68k;
- abfd->obj_machine = 68020;
- break;
-#endif
-#ifdef MC88MAGIC
- case MC88MAGIC:
- case MC88DMAGIC:
- case MC88OMAGIC:
- abfd->obj_arch = bfd_arch_m88k;
- abfd->obj_machine = 88100;
- break;
-#endif
-#ifdef I960
-#ifdef I960ROMAGIC
- case I960ROMAGIC:
- case I960RWMAGIC:
- abfd->obj_arch = bfd_arch_i960;
- switch (F_I960TYPE & internal_f->f_flags)
- {
- default:
- case F_I960CORE:
- abfd->obj_machine = bfd_mach_i960_core;
- break;
- case F_I960KB:
- abfd->obj_machine = bfd_mach_i960_kb_sb;
- break;
- case F_I960MC:
- abfd->obj_machine = bfd_mach_i960_mc;
- break;
- case F_I960XA:
- abfd->obj_machine = bfd_mach_i960_xa;
- break;
- case F_I960CA:
- abfd->obj_machine = bfd_mach_i960_ca;
- break;
- case F_I960KA:
- abfd->obj_machine = bfd_mach_i960_ka_sa;
- break;
-
- }
- break;
-#endif
-#endif
-
- default: /* Unreadable input file type */
- abfd->obj_arch = bfd_arch_obscure;
- break;
- }
-
- if (!(internal_f->f_flags & F_RELFLG))
- abfd->flags |= HAS_RELOC;
- if ((internal_f->f_flags & F_EXEC))
- abfd->flags |= EXEC_P;
- if (!(internal_f->f_flags & F_LNNO))
- abfd->flags |= HAS_LINENO;
- if (!(internal_f->f_flags & F_LSYMS))
- abfd->flags |= HAS_LOCALS;
-
-
- bfd_get_symcount(abfd) = internal_f->f_nsyms;
- if (internal_f->f_nsyms)
- abfd->flags |= HAS_SYMS;
-
- coff->sym_filepos = internal_f->f_symptr;
-
-
-
- coff->symbols = (coff_symbol_type *) NULL;
- bfd_get_start_address(abfd) = internal_f->f_opthdr ? internal_a->entry : 0;
-
- return abfd->xvec;
- fail:
- bfd_release(abfd, coff);
- return (bfd_target *)NULL;
-}
-
-static bfd_target *
-DEFUN(coff_object_p,(abfd),
- bfd *abfd)
- {
- int nscns;
- FILHDR filehdr;
- AOUTHDR opthdr;
- struct internal_filehdr internal_f;
- struct internal_aouthdr internal_a;
-
- bfd_error = system_call_error;
-
- /* figure out how much to read */
- if (bfd_read((PTR) &filehdr, 1, FILHSZ, abfd) != FILHSZ)
- return 0;
-
- bfd_swap_filehdr_in(abfd, &filehdr, &internal_f);
-
- if (BADMAG(internal_f)) {
- bfd_error = wrong_format;
- return 0;
- }
- nscns =internal_f.f_nscns;
-
- if (internal_f.f_opthdr) {
- if (bfd_read((PTR) &opthdr, 1,AOUTSZ, abfd) != AOUTSZ) {
- return 0;
- }
- bfd_swap_aouthdr_in(abfd, &opthdr, &internal_a);
- }
-
- /* Seek past the opt hdr stuff */
- bfd_seek(abfd, internal_f.f_opthdr + FILHSZ, SEEK_SET);
-
- /* if the optional header is NULL or not the correct size then
- quit; the only difference I can see between m88k dgux headers (MC88DMAGIC)
- and Intel 960 readwrite headers (I960WRMAGIC) is that the
- optional header is of a different size.
-
- But the mips keeps extra stuff in it's opthdr, so dont check
- when doing that
- */
-
-#ifndef MIPS
- if (internal_f.f_opthdr != 0 && AOUTSZ != internal_f.f_opthdr)
- return (bfd_target *)NULL;
-#endif
-
- return coff_real_object_p(abfd, nscns, &internal_f, &internal_a);
- }
-
-
-
-
-/*
-Takes a bfd and a symbol, returns a pointer to the coff specific area
-of the symbol if there is one.
-*/
-static coff_symbol_type *
-DEFUN(coff_symbol_from,(abfd, symbol),
- bfd *abfd AND
- asymbol *symbol)
-{
- if (symbol->the_bfd->xvec->flavour != bfd_target_coff_flavour_enum)
- return (coff_symbol_type *)NULL;
-
- if (symbol->the_bfd->tdata == (PTR)NULL)
- return (coff_symbol_type *)NULL;
-
- return (coff_symbol_type *) symbol;
-}
-
-
-
-
-
-
-
-static void
-DEFUN(coff_count_linenumbers,(abfd),
- bfd *abfd)
-{
- unsigned int limit = bfd_get_symcount(abfd);
- unsigned int i;
- asymbol **p;
- {
- asection *s = abfd->sections->output_section;
- while (s) {
- BFD_ASSERT(s->lineno_count == 0);
- s = s->next;
- }
- }
-
-
- for (p = abfd->outsymbols, i = 0; i < limit; i++, p++) {
- asymbol *q_maybe = *p;
- if (q_maybe->the_bfd->xvec->flavour == bfd_target_coff_flavour_enum) {
- coff_symbol_type *q = coffsymbol(q_maybe);
- if (q->lineno) {
- /*
- This symbol has a linenumber, increment the owning
- section's linenumber count
- */
- alent *l = q->lineno;
- q->symbol.section->output_section->lineno_count++;
- l++;
- while (l->line_number) {
- q->symbol.section->output_section->lineno_count++;
- l++;
- }
- }
- }
- }
-}
-
-/*
- This function returns true if the supplied SYMENT has an AUXENT with
- a tagndx field which should be relocated.
-
- The coff book says that all auxents have this and should be moved,
- but all the actual implementations I've looked at do this ..
- (sac@cygnus.com)
-
-*/
-static boolean
-DEFUN(uses_x_sym_x_tagndx_p,(abfd, native),
- bfd *abfd AND
- struct internal_syment *native)
-{
- if (BTYPE(native->n_type) == T_STRUCT) return true;
- if (BTYPE(native->n_type) == T_UNION) return true;
- if (BTYPE(native->n_type) == T_ENUM) return true;
- return false;
-}
-
-
-/*
-This procedure runs through the native entries in a coff symbol table
-and links up all the elements which should point to one another, in
-particular these are:
-
-strtag, entag and untags have an auxent endindex which points to the
-first syment after the .eos. This is simple to do, we just keep a
-pointer to the symbol with the most recent pending strtag and patch it
-when we see the eos. This works since coff structs are never nested.
-
-ISFCN type entries have an endindex which points to the next static or
-extern in the table, thereby skipping the function contents.
-The coff book says that an ISFCN's tagindex
-points to the first .bf for the function, so far I havn't seen it
-used. We do this using the same mechanism as strtags.
-
-Each file entry has a value which points to the next file entry,
-the last file entry points to the first extern symbol in the table
-which is not an ISFCN.
-
-Each .bb entry points to the matching .eb entry, but these are nested
-so we keep a stack of them.
-
-The tagndx of .eos items points to the strtag attached to them, this
-is simply the last_tagndx again.
-
-The tagndx of items with type strtag point to the defining struct.
-This bit is complicated; We know that a struct ref and def must be
-within the same file, so all the natives will be in the same vector.
-This means that we can subtracts two pointers and get the index
-differences between to items, used to work out the true index of the
-target.
-
-We store in the name field of each syment the actual native index
-applied so we can dig it out through a pointer. */
-
-static void
-DEFUN(coff_mangle_symbols,(bfd_ptr),
- bfd *bfd_ptr)
-{
- unsigned int symbol_count = bfd_get_symcount(bfd_ptr);
- asymbol **symbol_ptr_ptr = bfd_ptr->outsymbols;
- struct internal_syment *last_tagndx = (struct internal_syment *)NULL;
- struct internal_syment *last_file = (struct internal_syment *)NULL;
- struct internal_syment *last_fcn = (struct internal_syment *)NULL;
- struct internal_syment *block_stack[50];
- struct internal_syment **last_block = &block_stack[0];
- boolean first_time = true;
- unsigned int symbol_index;
- unsigned int native_index = 0;
-
- for (symbol_index = 0; symbol_index < symbol_count; symbol_index++) {
- coff_symbol_type *coff_symbol_ptr =
- coff_symbol_from(bfd_ptr, symbol_ptr_ptr[symbol_index]);
- if (coff_symbol_ptr == (coff_symbol_type *)NULL) {
- /*
- This symbol has no coff information in it, it will take up
- only one slot in the output symbol table
- */
- native_index++;
- }
- else {
- struct internal_syment *syment = coff_symbol_ptr->native;
- if (syment == (struct internal_syment *)NULL) {
- native_index++;
- }
- else {
- /* Normalize the symbol flags */
- if (coff_symbol_ptr->symbol.flags & BSF_FORT_COMM) {
- /* a common symbol is undefined with a value */
- syment->n_scnum = N_UNDEF;
- syment->n_value = coff_symbol_ptr->symbol.value;
- }
- else if (coff_symbol_ptr->symbol.flags & BSF_DEBUGGING) {
- syment->n_value = coff_symbol_ptr->symbol.value;
- }
- else if (coff_symbol_ptr->symbol.flags & BSF_UNDEFINED) {
- syment->n_scnum = N_UNDEF;
- syment->n_value = 0;
- }
- else if (coff_symbol_ptr->symbol.flags & BSF_ABSOLUTE) {
- syment->n_scnum = N_ABS;
- syment->n_value = coff_symbol_ptr->symbol.value;
- }
- else {
- syment->n_scnum =
- coff_symbol_ptr->symbol.section->output_section->index+1;
-
- syment->n_value =
- coff_symbol_ptr->symbol.value +
- coff_symbol_ptr->symbol.section->output_offset +
- coff_symbol_ptr->symbol.section->output_section->vma;
- }
-
-
- /* If this symbol ties up something then do it */
-
- if (syment->n_sclass == C_FILE && last_file != (struct internal_syment *)NULL)
- {
- last_file->n_value = native_index;
- }
- else if ((syment->n_sclass == C_EXT
- || syment->n_sclass == C_STAT
-#ifdef C_LEAFEXT
- || syment->n_sclass == C_LEAFEXT
- || syment->n_sclass == C_LEAFSTAT
-#endif
- )
- && last_fcn != (struct internal_syment *)NULL)
- {
- union internal_auxent *auxent = (union internal_auxent *)(last_fcn+1);
- auxent->x_sym.x_fcnary.x_fcn.x_endndx = native_index;
- last_fcn = (struct internal_syment *)NULL;
-
- }
- else if (syment->n_sclass == C_EOS && last_tagndx != (struct internal_syment*)NULL)
- {
- union internal_auxent *auxent = (union internal_auxent *)(last_tagndx+1);
- /* Remember that we keep the native index in the offset
- so patch the beginning of the struct to point to this
- */
- auxent->x_sym.x_tagndx = last_tagndx->_n._n_n._n_offset;
- auxent->x_sym.x_fcnary.x_fcn.x_endndx = syment->n_numaux + 1 + native_index;
- /* Now point the eos to the structure */
- auxent = (union internal_auxent *)(syment+1);
- auxent->x_sym.x_tagndx = last_tagndx->_n._n_n._n_offset;
- }
- else if (syment->n_sclass == C_BLOCK
- && coff_symbol_ptr->symbol.name[1] == 'e')
- {
- union internal_auxent *auxent = (union internal_auxent *)((*(--last_block))+1);
- auxent->x_sym.x_fcnary.x_fcn.x_endndx = native_index + syment->n_numaux + 1;
- }
- if (syment->n_sclass == C_EXT
- && !ISFCN(syment->n_type)
- && first_time == true
- && last_file != (struct internal_syment *)NULL) {
- /* This is the first external symbol seen which isn't a
- function place it in the last .file entry */
- last_file->n_value = native_index;
- first_time = false;
- }
-#ifdef C_LEAFPROC
- if (syment->n_sclass == C_LEAFPROC &&
- syment->n_numaux == 2) {
- union internal_auxent *auxent = (union internal_auxent *)(syment+2);
- /* This is the definition of a leaf proc, we'll relocate the
- address */
- auxent->x_bal.x_balntry =
- coff_symbol_ptr->symbol.section->output_offset +
- coff_symbol_ptr->symbol.section->output_section->vma +
- auxent->x_bal.x_balntry ;
- }
-#endif
- /* If this symbol needs to be tied up then remember some facts */
- if (syment->n_sclass == C_FILE)
- {
- last_file = syment;
- }
- if (syment->n_numaux != 0) {
- /*
- If this symbol would like to point to something in the
- future then remember where it is
- */
- if (uses_x_sym_x_tagndx_p(bfd_ptr, syment)) {
- /*
- If this is a ref to a structure then we'll tie it up
- now - there are never any forward refs for one
- */
- if (syment->n_sclass == C_STRTAG ||
- syment->n_sclass == C_ENTAG ||
- syment->n_sclass == C_UNTAG) {
- last_tagndx = syment;
- }
- else {
- /*
- This is a ref to a structure - the structure must
- have been defined within the same file, and previous
- to this point, so we can deduce the new tagndx
- directly.
- */
- union internal_auxent *auxent = (union internal_auxent *)(syment+1);
- bfd *bfd_ptr = coff_symbol_ptr->symbol.the_bfd;
- struct internal_syment *base = obj_raw_syments(bfd_ptr);
- auxent->x_sym.x_tagndx = base[auxent->x_sym.x_tagndx]._n._n_n._n_offset;
-
-
- }
- }
- if (ISFCN(syment->n_type)) {
- last_fcn = syment;
- }
- if (syment->n_sclass == C_BLOCK
- && coff_symbol_ptr->symbol.name[1] == 'b')
- {
- *last_block++ = syment;
- }
- }
- syment->_n._n_n._n_offset = native_index;
- native_index = native_index + 1 + syment->n_numaux;
- }
- }
- }
-}
-
-
-static void
-DEFUN(coff_write_symbols,(abfd),
-bfd *abfd)
-{
- unsigned int i;
- unsigned int limit = bfd_get_symcount(abfd);
- unsigned int written = 0;
- struct internal_syment dummy;
- asymbol **p;
- unsigned int string_size = 0;
-
-
- /* Seek to the right place */
- bfd_seek(abfd, obj_sym_filepos(abfd), SEEK_SET);
-
- /* Output all the symbols we have */
-
- written = 0;
- for (p = abfd->outsymbols, i = 0; i < limit; i++, p++) {
- asymbol *symbol = *p;
- coff_symbol_type *c_symbol = coff_symbol_from(abfd, symbol);
-
- unsigned int j;
- struct internal_syment *native;
- if (c_symbol == (coff_symbol_type *) NULL ||
- c_symbol->native == (struct internal_syment *) NULL) {
- /*
- This symbol has been created by the loader, or come from a non
- coff format. It has no native element to inherit, make our
- own
- */
-
- native = &dummy;
- native->n_type = T_NULL;
-#ifdef I960
- native->n_flags = 0;
-#endif
- if (symbol->flags & BSF_ABSOLUTE) {
- native->n_scnum = N_ABS;
- native->n_value = symbol->value;
- }
- else if (symbol->flags & (BSF_UNDEFINED | BSF_FORT_COMM)) {
- native->n_scnum = N_UNDEF;
- native->n_value = symbol->value;
- }
- else if (symbol->flags & BSF_DEBUGGING) {
- /*
- remove name so it doesn't take up any space
- */
- symbol->name = "";
- continue;
- }
- else {
- native->n_scnum = symbol->section->output_section->index +
- 1;
- native->n_value = symbol->value +
- symbol->section->output_section->vma +
- symbol->section->output_offset;
-#ifdef I960
- /* Copy the any flags from the the file hdr into the symbol */
- {
- coff_symbol_type *c = coff_symbol_from(abfd, symbol);
- if (c != (coff_symbol_type *)NULL) {
- native->n_flags = c->symbol.the_bfd->flags;
- }
- }
-#endif
- }
-
-#ifdef HASPAD1
- native->pad1[0] = 0;
- native->pad1[0] = 0;
-#endif
-
- native->n_type = 0;
- if (symbol->flags & BSF_LOCAL)
- native->n_sclass = C_STAT;
- else
- native->n_sclass = C_EXT;
- native->n_numaux = 0;
- }
- else
- /*
- Does this symbol have an ascociated line number - if so then
- make it remember this symbol index. Also tag the auxent of
- this symbol to point to the right place in the lineno table
- */
- {
- alent *lineno = c_symbol->lineno;
- native = c_symbol->native;
- if (lineno) {
- unsigned int count = 0;
- lineno[count].u.offset = written;
- if (native->n_numaux) {
- union internal_auxent *a = (union internal_auxent *) (native + 1);
-
- a->x_sym.x_fcnary.x_fcn.x_lnnoptr =
- c_symbol->symbol.section->output_section->moving_line_filepos;
- }
- /*
- And count and relocate all other linenumbers
- */
- count++;
- while (lineno[count].line_number) {
- lineno[count].u.offset +=
- c_symbol->symbol.section->output_section->vma +
- c_symbol->symbol.section->output_offset;
- count++;
- }
- c_symbol->symbol.section->output_section->moving_line_filepos +=
- count * LINESZ;
-
- }
- } /* if symbol new to coff */
-
- /* Fix the symbol names */
- {
- unsigned int name_length;
- if (symbol->name == (char *) NULL) {
- /*
- coff symbols always have names, so we'll make one up
- */
- symbol->name = "strange";
- }
- name_length = strlen(symbol->name);
- if (name_length <= SYMNMLEN) {
- /* This name will fit into the symbol neatly */
- strncpy(native->_n._n_name, symbol->name, SYMNMLEN);
- }
- else {
- native->_n._n_n._n_offset = string_size + 4;
- native->_n._n_n._n_zeroes = 0;
- string_size += name_length + 1;
- }
- {
- unsigned int numaux = native->n_numaux;
- int type = native->n_type;
- int class = native->n_sclass;
- SYMENT buf;
- bfd_coff_swap_sym_out(abfd, native, &buf);
- bfd_write((PTR)& buf, 1, SYMESZ, abfd);
- for (j = 0; j != native->n_numaux;
- j++) {
- AUXENT buf1;
- bfd_coff_swap_aux_out(abfd,
- (union internal_auxent *)(native + j + 1), type, class, &buf1);
- bfd_write((PTR) (native + j + 1), 1, AUXESZ, abfd);
- }
- /*
- Reuse somewhere in the symbol to keep the index
- */
- set_index(symbol, written);
- written += 1 + numaux;
- }
- }
- } /* for each out symbol */
-
- bfd_get_symcount(abfd) = written;
- /* Now write out strings */
-
- if (string_size) {
- unsigned int size = string_size + 4;
- size = size;
- bfd_write((PTR) &size, 1, sizeof(size), abfd);
- for (p = abfd->outsymbols, i = 0; i < limit; i++, p++) {
- asymbol *q = *p;
- size_t name_length = strlen(q->name);
- if (name_length > SYMNMLEN) {
- bfd_write((PTR) (q->name), 1, name_length + 1, abfd);
- }
- }
- }
- else {
- /* We would normally not write anything here, but we'll write
- out 4 so that any stupid coff reader which tries to read
- the string table even when there isn't one won't croak.
- */
-
- uint32e_type size = 4;
- size = size;
- bfd_write((PTR)&size, 1, sizeof(size), abfd);
-
- }
-
-}
-
-static void
-coff_write_relocs(abfd)
-bfd *abfd;
- {
- asection *s;
- for (s = abfd->sections; s != (asection *) NULL; s = s->next) {
- unsigned int i;
- struct external_reloc dst;
-
- arelent **p = s->orelocation;
- bfd_seek(abfd, s->rel_filepos, SEEK_SET);
- for (i = 0; i < s->reloc_count; i++) {
- struct internal_reloc n;
- arelent *q = p[i];
- memset((PTR)&n, 0, sizeof(n));
- n.r_vaddr = q->address + s->vma;
- if (q->sym_ptr_ptr) {
- n.r_symndx = get_index((*(q->sym_ptr_ptr)));
- }
-#ifdef SELECT_RELOC
- /* Work out reloc type from what is required */
- SELECT_RELOC(n.r_type, q->howto);
-#else
- n.r_type = q->howto->type;
-#endif
- bfd_swap_reloc_out(abfd, &n, &dst);
- bfd_write((PTR) &n, 1, RELSZ, abfd);
- }
- }
- }
-
-static void
-DEFUN(coff_write_linenumbers,(abfd),
- bfd *abfd)
- {
- asection *s;
- for (s = abfd->sections; s != (asection *) NULL; s = s->next) {
- if (s->lineno_count) {
- asymbol **q = abfd->outsymbols;
- bfd_seek(abfd, s->line_filepos, SEEK_SET);
- /* Find all the linenumbers in this section */
- while (*q) {
- asymbol *p = *q;
- alent *l = BFD_SEND(p->the_bfd, _get_lineno, (p->the_bfd, p));
- if (l) {
- /* Found a linenumber entry, output */
- struct internal_lineno out;
- LINENO buff;
- bzero( (PTR)&out, sizeof(out));
- out.l_lnno = 0;
- out.l_addr.l_symndx = l->u.offset;
- bfd_coff_swap_lineno_out(abfd, &out, &buff);
- bfd_write((PTR) &buff, 1, LINESZ, abfd);
- l++;
- while (l->line_number) {
- out.l_lnno = l->line_number;
- out.l_addr.l_symndx = l->u.offset;
- bfd_coff_swap_lineno_out(abfd, &out, &buff);
- bfd_write((PTR) &buff, 1, LINESZ, abfd);
- l++;
- }
- }
- q++;
- }
- }
- }
- }
-
-
-static asymbol *
-coff_make_empty_symbol(abfd)
-bfd *abfd;
- {
- coff_symbol_type *new = (coff_symbol_type *) bfd_alloc(abfd, sizeof(coff_symbol_type));
- if (new == NULL) {
- bfd_error = no_memory;
- return (NULL);
- } /* on error */
- new->native = 0;
- new->lineno = (alent *) NULL;
- new->symbol.the_bfd = abfd;
- return &new->symbol;
- }
-
-static void
-coff_print_symbol(ignore_abfd, file, symbol, how)
-bfd *ignore_abfd;
-FILE *file;
-asymbol *symbol;
-bfd_print_symbol_enum_type how;
- {
- switch (how) {
- case bfd_print_symbol_name_enum:
- fprintf(file, "%s", symbol->name);
- break;
- case bfd_print_symbol_type_enum:
- fprintf(file, "coff %lx %lx", (unsigned long) coffsymbol(symbol)->native,
- (unsigned long) coffsymbol(symbol)->lineno);
- break;
- case bfd_print_symbol_all_enum:
- {
- CONST char *section_name = symbol->section == (asection *) NULL ?
- "*abs" : symbol->section->name;
- bfd_print_symbol_vandf((PTR) file, symbol);
-
- fprintf(file, " %-5s %s %s %s",
- section_name,
- coffsymbol(symbol)->native ? "n" : "g",
- coffsymbol(symbol)->lineno ? "l" : " ",
- symbol->name);
- }
-
-
- break;
- }
- }
-
-static alent *
-coff_get_lineno(ignore_abfd, symbol)
-bfd *ignore_abfd;
-asymbol *symbol;
- {
- return coffsymbol(symbol)->lineno;
- }
-
-/*
-Set flags and magic number of a coff file from architecture and machine
-type. Result is true if we can represent the arch&type, false if not.
-*/
-static boolean
-coff_set_flags(abfd, magicp, flagsp)
-bfd *abfd;
-unsigned *magicp,
-*flagsp;
- {
-
- switch (abfd->obj_arch) {
-
-#ifdef I960ROMAGIC
-
- case bfd_arch_i960:
-
- {
- unsigned flags;
- *magicp = I960ROMAGIC;
- /*
- ((bfd_get_file_flags(abfd) & WP_TEXT) ? I960ROMAGIC :
- I960RWMAGIC); FIXME???
- */
- switch (abfd->obj_machine) {
- case bfd_mach_i960_core:
- flags = F_I960CORE;
- break;
- case bfd_mach_i960_kb_sb:
- flags = F_I960KB;
- break;
- case bfd_mach_i960_mc:
- flags = F_I960MC;
- break;
- case bfd_mach_i960_xa:
- flags = F_I960XA;
- break;
- case bfd_mach_i960_ca:
- flags = F_I960CA;
- break;
- case bfd_mach_i960_ka_sa:
- flags = F_I960KA;
- break;
- default:
- return false;
- }
- *flagsp = flags;
- return true;
- }
- break;
-#endif
-#ifdef MIPS
- case bfd_arch_mips:
- *magicp = MIPS_MAGIC_2;
- return true;
- break;
-#endif
-#ifdef MC68MAGIC
- case bfd_arch_m68k:
- *magicp = MC68MAGIC;
- return true;
-#endif
-
-#ifdef MC88MAGIC
- case bfd_arch_m88k:
- *magicp = MC88OMAGIC;
- return true;
- break;
-#endif
-
- default: /* Unknown architecture */
- return false;
- }
-
- return false;
- }
-
-
-static boolean
-coff_set_arch_mach(abfd, arch, machine)
-bfd *abfd;
-enum bfd_architecture arch;
-unsigned long machine;
- {
- unsigned dummy1,
- dummy2;
- abfd->obj_arch = arch;
- abfd->obj_machine = machine;
- if (arch != bfd_arch_unknown &&
- coff_set_flags(abfd, &dummy1, &dummy2) != true)
- return false; /* We can't represent this type */
- return true; /* We're easy ... */
- }
-
-
-/* Calculate the file position for each section. */
-
-static void
-coff_compute_section_file_positions(abfd)
-bfd *abfd;
- {
- asection *current;
- file_ptr sofar = FILHSZ;
- if (bfd_get_start_address(abfd)) {
- /*
- A start address may have been added to the original file. In this
- case it will need an optional header to record it.
- */
- abfd->flags |= EXEC_P;
- }
- if (abfd->flags & EXEC_P)
- sofar += AOUTSZ;
-
-
- sofar += abfd->section_count * SCNHSZ;
-
- for (current = abfd->sections; current != NULL; current =
- current->next) {
- /* Only deal with sections which have contents */
- if (!(current->flags & SEC_HAS_CONTENTS))
- continue;
-
- /* Align the sections in the file to the same boundary on
- which they are aligned in virtual memory. I960 doesn't
- do this (FIXME) so we can stay in sync with Intel. 960
- doesn't yet page from files... */
-#ifndef I960
- sofar = ALIGN(sofar, 1 << current->alignment_power);
-#endif
- /* FIXME, in demand paged files, the low order bits of the file
- offset must match the low order bits of the virtual address.
- "Low order" is apparently implementation defined. Add code
- here to round sofar up to match the virtual address. */
-
- current->filepos = sofar;
- sofar += current->size;
- }
- obj_relocbase(abfd) = sofar;
- }
-
-
-
-
-/* SUPPRESS 558 */
-/* SUPPRESS 529 */
-static boolean
-DEFUN(coff_write_object_contents,(abfd),
-bfd *abfd)
-{
- asection *current;
- boolean hasrelocs = false;
- boolean haslinno = false;
- file_ptr reloc_base;
- file_ptr lineno_base;
- file_ptr sym_base;
- file_ptr scn_base;
- file_ptr data_base;
- unsigned long reloc_size = 0;
- unsigned long lnno_size = 0;
- asection *text_sec = NULL;
- asection *data_sec = NULL;
- asection *bss_sec = NULL;
-
- struct internal_filehdr internal_f;
- struct internal_aouthdr internal_a;
-
- struct icofdata *coff = obj_icof(abfd);
-
-
- bfd_error = system_call_error;
-
-
- if(abfd->output_has_begun == false) {
- coff_compute_section_file_positions(abfd);
- }
-
- if (abfd->sections != (asection *)NULL) {
- scn_base = abfd->sections->filepos;
- }
- else {
- scn_base = 0;
- }
- if (bfd_seek(abfd, scn_base, SEEK_SET) != 0)
- return false;
- reloc_base = obj_relocbase(abfd);
-
- /* Make a pass through the symbol table to count line number entries and
- put them into the correct asections */
-
- coff_count_linenumbers(abfd);
- data_base = scn_base;
-
- /* Work out the size of the reloc and linno areas */
-
- for (current = abfd->sections; current != NULL; current = current->next) {
- reloc_size += current->reloc_count * RELSZ;
- lnno_size += current->lineno_count * LINESZ;
- data_base += SCNHSZ;
- }
-
- lineno_base = reloc_base + reloc_size;
- sym_base = lineno_base + lnno_size;
-
- /* Indicate in each section->line_filepos its actual file address */
- for (current = abfd->sections; current != NULL; current = current->next) {
- if (current->lineno_count) {
- current->line_filepos = lineno_base;
- current->moving_line_filepos = lineno_base;
- lineno_base += current->lineno_count * LINESZ;
- }
- else {
- current->line_filepos = 0;
- }
- if (current->reloc_count) {
- current->rel_filepos = reloc_base;
- reloc_base += current->reloc_count * sizeof(struct internal_reloc);
- }
- else {
- current->rel_filepos = 0;
- }
- }
-
- /* Write section headers to the file. */
-
- bfd_seek(abfd,
- (file_ptr) ((abfd->flags & EXEC_P) ?
- (FILHSZ + AOUTSZ) : FILHSZ),
- SEEK_SET);
-
- {
-#if 0
- unsigned int pad = abfd->flags & D_PAGED ? data_base : 0;
-#endif
- unsigned int pad = 0;
-
- for (current = abfd->sections; current != NULL; current = current->next) {
- struct internal_scnhdr section;
- strncpy(&(section.s_name[0]), current->name, 8);
- section.s_vaddr = current->vma + pad;
- section.s_paddr = current->vma + pad;
- section.s_size = current->size - pad;
- /*
- If this section has no size or is unloadable then the scnptr
- will be 0 too
- */
- if (current->size - pad == 0 ||
- (current->flags & SEC_LOAD) == 0) {
- section.s_scnptr = 0;
-
- }
- else {
- section.s_scnptr = current->filepos;
- }
- section.s_relptr = current->rel_filepos;
- section.s_lnnoptr = current->line_filepos;
- section.s_nreloc = current->reloc_count;
- section.s_nlnno = current->lineno_count;
- if (current->reloc_count != 0)
- hasrelocs = true;
- if (current->lineno_count != 0)
- haslinno = true;
-
- if (!strcmp(current->name, _TEXT)) {
- text_sec = current;
- section.s_flags = STYP_TEXT; /* kinda stupid */
- }
- else if (!strcmp(current->name, _DATA)) {
- data_sec = current;
- section.s_flags = STYP_DATA; /* kinda stupid */
- }
- else if (!strcmp(current->name, _BSS)) {
- bss_sec = current;
- section.s_flags = STYP_BSS; /* kinda stupid */
- }
-
-
-#ifdef I960
- section.s_align = (current->alignment_power
- ? 1 << current->alignment_power
- : 0);
-
-#endif
- {
- SCNHDR buff;
-
- swap_scnhdr_out(abfd, &section, &buff);
- bfd_write((PTR) (&buff), 1, SCNHSZ, abfd);
-
- }
- pad = 0;
- }
- }
-
- /* OK, now set up the filehdr... */
- internal_f.f_nscns = abfd->section_count;
- /*
- We will NOT put a fucking timestamp in the header here. Every time you
- put it back, I will come in and take it out again. I'm sorry. This
- field does not belong here. We fill it with a 0 so it compares the
- same but is not a reasonable time. -- gnu@cygnus.com
- */
- /*
- Well, I like it, so I'm conditionally compiling it in.
- steve@cygnus.com
- */
-#ifdef COFF_TIMESTAMP
- internal_f.f_timdat = time(0);
-#else
- internal_f.f_timdat = 0;
-#endif
-
- if (bfd_get_symcount(abfd) != 0)
- internal_f.f_symptr = sym_base;
- else
- internal_f.f_symptr = 0;
-
- internal_f.f_flags = 0;
-
- if (abfd->flags & EXEC_P)
- internal_f.f_opthdr = AOUTSZ;
- else
- internal_f.f_opthdr = 0;
-
- if (!hasrelocs)
- internal_f.f_flags |= F_RELFLG;
- if (!haslinno)
- internal_f.f_flags |= F_LNNO;
- if (0 == bfd_get_symcount(abfd))
- internal_f.f_flags |= F_LSYMS;
- if (abfd->flags & EXEC_P)
- internal_f.f_flags |= F_EXEC;
-#if M88
- internal_f.f_flags |= F_AR32W;
-#else
- if (!abfd->xvec->byteorder_big_p)
- internal_f.f_flags |= F_AR32WR;
-#endif
- /*
- FIXME, should do something about the other byte orders and
- architectures.
- */
-
- /* Set up architecture-dependent stuff */
-
- { int magic = 0;
- int flags = 0;
- coff_set_flags(abfd, &magic, &flags);
- internal_f.f_magic = magic;
- internal_f.f_flags = flags;
-
- /* ...and the "opt"hdr... */
-
-#ifdef I960
- internal_a.magic = (magic == I960ROMAGIC ? NMAGIC : OMAGIC);
-#endif
-#if M88
- internal_a.magic = PAGEMAGICBCS;
-#endif
- }
- /* Now should write relocs, strings, syms */
- obj_sym_filepos(abfd) = sym_base;
-
- if (bfd_get_symcount(abfd) != 0) {
- coff_mangle_symbols(abfd);
- coff_write_symbols(abfd);
- coff_write_linenumbers(abfd);
- coff_write_relocs(abfd);
- }
- if (text_sec) {
- internal_a.tsize = text_sec->size;
- internal_a.text_start =text_sec->size ? text_sec->vma : 0;
- }
- if (data_sec) {
- internal_a.dsize = data_sec->size;
- internal_a.data_start = data_sec->size ? data_sec->vma : 0;
- }
- if (bss_sec) {
- internal_a.bsize = bss_sec->size;
- }
-
- internal_a.entry = bfd_get_start_address(abfd);
- internal_f.f_nsyms = bfd_get_symcount(abfd);
-
- /* now write them */
- if (bfd_seek(abfd, 0L, SEEK_SET) != 0)
- return false;
- {
- FILHDR buff;
- bfd_swap_filehdr_out(abfd, &internal_f, &buff);
- bfd_write((PTR) &buff, 1, FILHSZ, abfd);
- }
- if (abfd->flags & EXEC_P) {
- AOUTHDR buff;
- bfd_swap_aouthdr_out(abfd, &internal_a, &buff);
- bfd_write((PTR) &buff, 1, AOUTSZ, abfd);
- }
- return true;
-}
-
-static boolean
-coff_set_section_contents(abfd, section, location, offset, count)
- bfd *abfd;
- sec_ptr section;
- PTR location;
- file_ptr offset;
- size_t count;
-{
- if (abfd->output_has_begun == false) /* set by bfd.c handler */
- coff_compute_section_file_positions(abfd);
-
- bfd_seek(abfd, (file_ptr) (section->filepos + offset), SEEK_SET);
-
- if (count != 0) {
- return (bfd_write(location, 1, count, abfd) == count) ? true : false;
- }
- return true;
-}
-
-static boolean
-coff_close_and_cleanup(abfd)
- bfd *abfd;
-{
- if (!bfd_read_p(abfd))
- switch (abfd->format) {
- case bfd_archive:
- if (!_bfd_write_archive_contents(abfd))
- return false;
- break;
- case bfd_object:
- if (!coff_write_object_contents(abfd))
- return false;
- break;
- default:
- bfd_error = invalid_operation;
- return false;
- }
-
- /* We depend on bfd_close to free all the memory on the obstack. */
- /* FIXME if bfd_release is not using obstacks! */
- return true;
-}
-
-
-static PTR
-buy_and_read(abfd, where, seek_direction, size)
- bfd *abfd;
- file_ptr where;
- int seek_direction;
- size_t size;
-{
- PTR area = (PTR) bfd_alloc(abfd, size);
- if (!area) {
- bfd_error = no_memory;
- return (NULL);
- }
- bfd_seek(abfd, where, seek_direction);
- if (bfd_read(area, 1, size, abfd) != size) {
- bfd_error = system_call_error;
- return (NULL);
- } /* on error */
- return (area);
-} /* buy_and_read() */
-
-static void
-DEFUN(offset_symbol_indices,(abfd, symtab, count, offset),
- bfd *abfd AND
- struct internal_syment *symtab AND
- unsigned long count AND
- long offset)
-{
- struct internal_syment *end = symtab + count;
- for (; symtab < end; ++symtab) {
- if (symtab->n_sclass == C_FILE) {
- symtab->n_value = 0;
- }
- else if (symtab->n_sclass == C_ALIAS) {
- /*
- These guys have indices in their values.
- */
- symtab->n_value = symtab->n_value + offset;
- }
- else if (symtab->n_numaux) {
- /*
- anybody else without an aux, has no indices.
- */
-
- if (symtab->n_sclass == C_EOS
- || (BTYPE(symtab->n_type) == T_STRUCT
- && symtab->n_sclass != C_STRTAG)
- || BTYPE(symtab->n_type) == T_UNION
- || BTYPE(symtab->n_type) == T_ENUM) {
- /* If the tagndx is 0 then the struct hasn't really been
- defined, so leave it alone */
-
- if(((union internal_auxent *) (symtab + 1))->x_sym.x_tagndx != 0) {
- ((union internal_auxent *) (symtab + 1))->x_sym.x_tagndx += offset;
- }
-
- } /* These guys have a tagndx */
- if (symtab->n_sclass == C_STRTAG
- || symtab->n_sclass == C_UNTAG
- || symtab->n_sclass == C_ENTAG
- || symtab->n_sclass == C_BLOCK
- || symtab->n_sclass == C_FCN
- || ISFCN(symtab->n_type)) {
-
- ((union internal_auxent *) (symtab +
- 1))->x_sym.x_fcnary.x_fcn.x_endndx
- += offset;
-
- } /* These guys have an endndx */
-#ifndef I960
- if (ISFCN(symtab->n_type)) {
- ((union internal_auxent *) (symtab + 1))->x_sym.x_tvndx += offset;
- } /* These guys have a tvndx. I think...
- (FIXME) */
-#endif /* Not I960 */
-
- } /* if value, else if aux */
- symtab += symtab->n_numaux;
- } /* walk the symtab */
-
- return;
-} /* offset_symbol_indices() */
-
-#if 0
-/* swap the entire symbol table - we c*/
-static void
-swap_raw_symtab(abfd, raw_symtab)
-bfd *abfd;
-SYMENT *raw_symtab;
- {
- long i;
- SYMENT *end = raw_symtab + bfd_get_symcount(abfd);
- for (; raw_symtab < end; ++raw_symtab) {
- bfd_coff_swap_sym(abfd, raw_symtab);
-
- for (i = raw_symtab->n_numaux; i; --i, ++raw_symtab) {
- bfd_coff_swap_aux(abfd,
- (AUXENT *)(raw_symtab + 1),
- raw_symtab->n_type,
- raw_symtab->n_sclass);
- } /* swap all the aux entries */
- } /* walk the symbol table */
-
- return;
- } /* swap_raw_symtab() */
-#endif
-/*
-read a symbol table into freshly mallocated memory, swap it, and knit the
-symbol names into a normalized form. By normalized here I mean that all
-symbols have an n_offset pointer that points to a NULL terminated string.
-Oh, and the first symbol MUST be a C_FILE. If there wasn't one there
-before, put one there.
-*/
-
-static struct internal_syment *
-DEFUN(get_normalized_symtab,(abfd),
-bfd *abfd)
-{
-
- struct internal_syment *internal;
- struct internal_syment *internal_ptr;
- struct internal_syment *internal_end;
- SYMENT *raw;
- SYMENT *raw_src;
- SYMENT *raw_end;
- char *string_table = NULL;
- unsigned long size;
- char string_table_size_buffer[4];
- unsigned long string_table_size = 0;
- unsigned int raw_size;
- if (obj_raw_syments(abfd) != (struct internal_syment *)NULL) {
- return obj_raw_syments(abfd);
- }
- if ((size = bfd_get_symcount(abfd) * sizeof(struct internal_syment)) == 0) {
- bfd_error = no_symbols;
- return (NULL);
- }
-
- internal = (struct internal_syment *)bfd_alloc(abfd, size);
- internal_end = internal + bfd_get_symcount(abfd);
-
- raw_size = bfd_get_symcount(abfd) * SYMESZ;
- raw = (SYMENT *)bfd_alloc(abfd,raw_size);
-
- if (bfd_seek(abfd, obj_sym_filepos(abfd), SEEK_SET) == -1
- || bfd_read((PTR)raw, raw_size, 1, abfd) != raw_size) {
- bfd_error = system_call_error;
- return (NULL);
- }
- /* mark the end of the symbols */
- raw_end = raw + bfd_get_symcount(abfd);
- /*
- FIXME SOMEDAY. A string table size of zero is very weird, but
- probably possible. If one shows up, it will probably kill us.
- */
-
- /* Swap all the raw entries */
- for (raw_src = raw, internal_ptr = internal; raw_src < raw_end; raw_src++, internal_ptr++) {
- unsigned int i;
- bfd_coff_swap_sym_in(abfd, raw_src,internal_ptr);
- for (i = internal_ptr->n_numaux; i; --i, raw_src++, internal_ptr++) {
- bfd_coff_swap_aux_in(abfd, (AUXENT *)(raw_src +1), internal_ptr->n_type,
- internal_ptr->n_sclass, (union
- internal_auxent *)(internal_ptr +1));
- }
- }
-
- /* Free all the raw stuff */
- bfd_release(abfd, raw_src);
-
- for (internal_ptr = internal; internal_ptr < internal_end; internal_ptr ++) {
-
- if (internal_ptr->_n._n_n._n_zeroes != 0) {
- /*
- This is a "short" name. Make it long.
- */
- unsigned long i = 0;
- char *newstring = NULL;
- /*
- find the length of this string without walking into memory
- that isn't ours.
- */
-
- for (i = 0; i < 8; ++i) {
- if (internal_ptr->_n._n_name[i] == '\0') {
- break;
- } /* if end of string */
- } /* possible lengths of this string. */
-
- if ((newstring = (PTR) bfd_alloc(abfd, ++i)) == NULL) {
- bfd_error = no_memory;
- return (NULL);
- } /* on error */
- bzero(newstring, i);
- strncpy(newstring, internal_ptr->_n._n_name, i-1);
- internal_ptr->_n._n_n._n_offset = (int) newstring;
- internal_ptr->_n._n_n._n_zeroes = 0;
-
- }
- else {
- if (string_table == NULL) {
- /*
- NOTE: we don't read the string table until now because we
- don't necessarily know that we have one until now.
- */
- /*
- At this point we should be "seek"'d to the end of the
- symbols === the symbol table size.
- */
-
- if (bfd_read((char *) string_table_size_buffer,
- sizeof(string_table_size_buffer),
- 1, abfd) != sizeof(string_table_size)) {
- bfd_error = system_call_error;
- return (NULL);
- } /* on error */
-
- string_table_size = bfd_h_getlong(abfd, string_table_size_buffer);
-
- if ((string_table = (PTR) bfd_alloc(abfd, string_table_size -= 4)) == NULL) {
- bfd_error = no_memory;
- return (NULL);
- } /* on mallocation error */
- if (bfd_read(string_table, string_table_size, 1, abfd) != string_table_size) {
- bfd_error = system_call_error;
- return (NULL);
- } /* on error */
- } /* have not yet read the string table. */
- /*
- This is a long name already. Just point it at the string in
- memory.
- */
- internal_ptr->_n._n_n._n_offset = (int) (string_table - 4 + internal_ptr->_n._n_n._n_offset);
-
- } /* switch on type of symbol name */
-
- internal_ptr += internal_ptr->n_numaux;
- } /* for each symbol */
-#if 0
-#ifndef GNU960
- /* I'm not sure of the repercussions of this, so the Intel
- folks will always do the force
- */
- if (obj_symbol_slew(abfd) > 0)
- force_indices_file_symbol_relative(abfd, internal);
-#else
- force_indices_file_symbol_relative(abfd, internal);
-#endif
-#endif
- obj_raw_syments(abfd) = internal;
- obj_string_table(abfd) = string_table;
-
- return (internal);
-} /* get_normalized_symtab() */
-
-static
-struct sec *
-DEFUN(section_from_bfd_index,(abfd, index),
- bfd *abfd AND
- int index)
-{
- if (index > 0) {
- struct sec *answer = abfd->sections;
- while (--index) {
- answer = answer->next;
- }
- return answer;
- }
- return 0;
-}
-
-
-
-
-static boolean
-coff_slurp_line_table(abfd, asect)
-bfd *abfd;
-asection *asect;
- {
- LINENO *native_lineno;
- alent *lineno_cache;
-
- BFD_ASSERT(asect->lineno == (alent *) NULL);
-
- native_lineno = (LINENO *) buy_and_read(abfd,
- asect->line_filepos,
- SEEK_SET,
- (size_t) (LINESZ *
- asect->lineno_count));
- lineno_cache =
- (alent *) bfd_alloc(abfd, (size_t) ((asect->lineno_count + 1) * sizeof(alent)));
- if (lineno_cache == NULL) {
- bfd_error = no_memory;
- return false;
- } else {
- unsigned int counter = 0;
- alent *cache_ptr = lineno_cache;
- LINENO *src = native_lineno;
-
- while (counter < asect->lineno_count) {
- struct internal_lineno dst;
- bfd_coff_swap_lineno_in(abfd, src, &dst);
- cache_ptr->line_number = dst.l_lnno;
-
- if (cache_ptr->line_number == 0) {
- coff_symbol_type *sym =
- (coff_symbol_type *) (dst.l_addr.l_symndx
- + obj_symbol_slew(abfd)
- + obj_raw_syments(abfd))->_n._n_n._n_zeroes;
- cache_ptr->u.sym = (asymbol *) sym;
- sym->lineno = cache_ptr;
- }
- else {
- cache_ptr->u.offset = dst.l_addr.l_paddr
- - bfd_section_vma(abfd, asect);
- } /* If no linenumber expect a symbol index */
-
- cache_ptr++;
- src++;
- counter++;
- }
- cache_ptr->line_number = 0;
-
- }
- asect->lineno = lineno_cache;
- /* FIXME, free native_lineno here, or use alloca or something. */
- return true;
- } /* coff_slurp_line_table() */
-
-static struct internal_syment *
-DEFUN(find_next_file_symbol,(abfd, current, end),
- bfd *abfd AND
- struct internal_syment *current AND
- struct internal_syment *end)
-{
- current += current->n_numaux + 1;
-
- while (current < end) {
- if (current->n_sclass== C_FILE) {
- return (current);
- }
- current += current->n_numaux + 1;
- }
- return end;
-}
-
-
-/*
-Note that C_FILE symbols can, and some do, have more than 1 aux entry.
-*/
-
-static void
-DEFUN(force_indices_file_symbol_relative,(abfd, symtab),
- bfd *abfd AND
- struct internal_syment *symtab)
-{
- struct internal_syment *end = symtab + bfd_get_symcount(abfd);
- struct internal_syment *current;
- struct internal_syment *next;
- /* the first symbol had damn well better be a C_FILE. */
- BFD_ASSERT(symtab->n_sclass == C_FILE);
-
- for (current = find_next_file_symbol(abfd, symtab, end);
- current < end;
- current = next) {
- offset_symbol_indices(abfd, current,
- ((next =
- find_next_file_symbol(abfd, current,
- end)) - current),
- symtab - current);
- }
- return;
-}
-
-static boolean
-DEFUN(coff_slurp_symbol_table,(abfd),
- bfd *abfd)
- {
- struct internal_syment *native_symbols;
- coff_symbol_type *cached_area;
- unsigned int *table_ptr;
-
- unsigned int number_of_symbols = 0;
- if (obj_symbols(abfd))
- return true;
- bfd_seek(abfd, obj_sym_filepos(abfd), SEEK_SET);
-
- /* Read in the symbol table */
- if ((native_symbols = get_normalized_symtab(abfd)) == NULL) {
- return (false);
- } /* on error */
-
-
- /* Allocate enough room for all the symbols in cached form */
- cached_area =
- (coff_symbol_type *)
- bfd_alloc(abfd, (size_t) (bfd_get_symcount(abfd) * sizeof(coff_symbol_type)));
-
- if (cached_area == NULL) {
- bfd_error = no_memory;
- return false;
- } /* on error */
- table_ptr =
- (unsigned int *)
- bfd_alloc(abfd, (size_t) (bfd_get_symcount(abfd) * sizeof(unsigned int)));
-
- if (table_ptr == NULL) {
- bfd_error = no_memory;
- return false;
- } else {
- coff_symbol_type *dst = cached_area;
- unsigned int last_native_index = bfd_get_symcount(abfd);
- unsigned int this_index = 0;
- while (this_index < last_native_index) {
- struct internal_syment *src = native_symbols + this_index;
- table_ptr[this_index] = number_of_symbols;
- dst->symbol.the_bfd = abfd;
-
- dst->symbol.name = (char *)(src->_n._n_n._n_offset);
- /*
- We use the native name field to point to the cached field
- */
- src->_n._n_n._n_zeroes = (int) dst;
- dst->symbol.section = section_from_bfd_index(abfd,
- src->n_scnum);
- switch (src->n_sclass) {
-#ifdef I960
- case C_LEAFEXT:
-#if 0
- dst->symbol.value = src->n_value - dst->symbol.section->vma;
- dst->symbol.flags = BSF_EXPORT | BSF_GLOBAL;
- dst->symbol.flags |= BSF_NOT_AT_END;
-#endif
- /* Fall through to next case */
-
-#endif
-
- case C_EXT:
- if ((src->n_scnum) == 0) {
- if ((src->n_value) == 0) {
- dst->symbol.flags = BSF_UNDEFINED;
- dst->symbol.value= 0;
- }
- else {
- dst->symbol.flags = BSF_FORT_COMM;
- dst->symbol.value = (src->n_value);
- }
- }
- else {
- /*
- Base the value as an index from the base of the
- section
- */
- if (dst->symbol.section == (asection *) NULL) {
- dst->symbol.flags = BSF_EXPORT | BSF_GLOBAL | BSF_ABSOLUTE;
- dst->symbol.value = src->n_value;
- }
- else {
- dst->symbol.flags = BSF_EXPORT | BSF_GLOBAL;
- dst->symbol.value = src->n_value - dst->symbol.section->vma;
- }
- if (ISFCN((src->n_type))) {
- /*
- A function ext does not go at the end of a file
- */
- dst->symbol.flags |= BSF_NOT_AT_END;
- }
- }
-
- break;
- case C_STAT: /* static */
-#ifdef I960
- case C_LEAFSTAT: /* static leaf procedure */
-#endif
- case C_LABEL: /* label */
- dst->symbol.flags = BSF_LOCAL;
- /*
- Base the value as an index from the base of the section
- */
- dst->symbol.value = (src->n_value) - dst->symbol.section->vma;
- break;
-
- case C_MOS: /* member of structure */
- case C_EOS: /* end of structure */
- case C_REGPARM: /* register parameter */
- case C_REG: /* register variable */
-#ifdef C_AUTOARG
- case C_AUTOARG: /* 960-specific storage class */
-#endif
- case C_TPDEF: /* type definition */
-
- case C_ARG:
- case C_AUTO: /* automatic variable */
- case C_FIELD: /* bit field */
- case C_ENTAG: /* enumeration tag */
- case C_MOE: /* member of enumeration */
- case C_MOU: /* member of union */
- case C_UNTAG: /* union tag */
-
- dst->symbol.flags = BSF_DEBUGGING;
- dst->symbol.value = (src->n_value);
- break;
-
- case C_FILE: /* file name */
- case C_STRTAG: /* structure tag */
- dst->symbol.flags = BSF_DEBUGGING;
- dst->symbol.value = (src->n_value);
-
- break;
- case C_BLOCK: /* ".bb" or ".eb" */
- case C_FCN: /* ".bf" or ".ef" */
- dst->symbol.flags = BSF_LOCAL;
- /*
- Base the value as an index from the base of the section
- */
- dst->symbol.value = (src->n_value) - dst->symbol.section->vma;
-
- break;
- case C_EFCN: /* physical end of function */
- case C_NULL:
- case C_EXTDEF: /* external definition */
- case C_ULABEL: /* undefined label */
- case C_USTATIC: /* undefined static */
- case C_LINE: /* line # reformatted as symbol table entry */
- case C_ALIAS: /* duplicate tag */
- case C_HIDDEN: /* ext symbol in dmert public lib */
-
- default:
-
- abort();
- dst->symbol.flags = BSF_DEBUGGING;
- dst->symbol.value = (src->n_value);
-
- break;
- }
-
- BFD_ASSERT(dst->symbol.flags != 0);
-
- dst->native = src;
-
- dst->symbol.udata = 0;
- dst->lineno = (alent *) NULL;
- this_index += (src->n_numaux) + 1;
- dst++;
- number_of_symbols++;
- } /* walk the native symtab */
- } /* bfdize the native symtab */
-
- obj_symbols(abfd) = cached_area;
- obj_raw_syments(abfd) = native_symbols;
-
- bfd_get_symcount(abfd) = number_of_symbols;
- obj_convert(abfd) = table_ptr;
- /* Slurp the line tables for each section too */
- {
- asection *p;
- p = abfd->sections;
- while (p) {
- coff_slurp_line_table(abfd, p);
- p = p->next;
- }
- }
- return true;
- } /* coff_slurp_symbol_table() */
-
-static unsigned int
-coff_get_symtab_upper_bound(abfd)
-bfd *abfd;
- {
- if (!coff_slurp_symbol_table(abfd))
- return 0;
-
- return (bfd_get_symcount(abfd) + 1) * (sizeof(coff_symbol_type *));
- }
-
-
-static unsigned int
-coff_get_symtab(abfd, alocation)
-bfd *abfd;
-asymbol **alocation;
- {
- unsigned int counter = 0;
- coff_symbol_type *symbase;
- coff_symbol_type **location = (coff_symbol_type **) (alocation);
- if (!coff_slurp_symbol_table(abfd))
- return 0;
-
- for (symbase = obj_symbols(abfd); counter++ < bfd_get_symcount(abfd);)
- *(location++) = symbase++;
- *location++ = 0;
- return bfd_get_symcount(abfd);
- }
-
-static unsigned int
-coff_get_reloc_upper_bound(abfd, asect)
-bfd *abfd;
-sec_ptr asect;
- {
- if (bfd_get_format(abfd) != bfd_object) {
- bfd_error = invalid_operation;
- return 0;
- }
- return (asect->reloc_count + 1) * sizeof(arelent *);
- }
-
-static boolean
-DEFUN(coff_slurp_reloc_table,(abfd, asect, symbols),
- bfd *abfd AND
- sec_ptr asect AND
- asymbol **symbols)
- {
- RELOC *native_relocs;
- arelent *reloc_cache;
- if (asect->relocation)
- return true;
- if (asect->reloc_count == 0)
- return true;
- if (!coff_slurp_symbol_table(abfd))
- return false;
- native_relocs =
- (RELOC *) buy_and_read(abfd,
- asect->rel_filepos,
- SEEK_SET,
- (size_t) (RELSZ *
- asect->reloc_count));
- reloc_cache = (arelent *)
- bfd_alloc(abfd, (size_t) (asect->reloc_count * sizeof(arelent)));
-
- if (reloc_cache == NULL) {
- bfd_error = no_memory;
- return false;
- } { /* on error */
- arelent *cache_ptr;
- RELOC *src;
- for (cache_ptr = reloc_cache,
- src = native_relocs;
- cache_ptr < reloc_cache + asect->reloc_count;
- cache_ptr++,
- src++) {
- struct internal_reloc dst;
- asymbol *ptr;
- bfd_swap_reloc_in(abfd, src, &dst);
- dst.r_symndx += obj_symbol_slew(abfd);
- cache_ptr->sym_ptr_ptr = symbols + obj_convert(abfd)[dst.r_symndx];
-
- ptr = *(cache_ptr->sym_ptr_ptr);
- cache_ptr->address = dst.r_vaddr;
- /*
- The symbols definitions that we have read in have been
- relocated as if their sections started at 0. But the offsets
- refering to the symbols in the raw data have not been
- modified, so we have to have a negative addend to compensate.
-
- Note that symbols which used to be common must be left alone
- */
-
- if (ptr->the_bfd == abfd
- && ptr->section != (asection *) NULL
- && ((ptr->flags & BSF_OLD_COMMON)== 0))
- {
- cache_ptr->addend = -(ptr->section->vma + ptr->value);
- }
- else {
- cache_ptr->addend = 0;
- }
-
- cache_ptr->address -= asect->vma;
-
- cache_ptr->section = (asection *) NULL;
-
-#if I960
- cache_ptr->howto = howto_table + dst.r_type;
-#endif
-#if M68
- cache_ptr->howto = howto_table + dst.r_type - R_RELBYTE;
-#endif
-#if M88
- if (dst.r_type >= R_PCR16L && dst.r_type <= R_VRT32) {
- cache_ptr->howto = howto_table + dst.r_type - R_PCR16L;
- cache_ptr->addend += dst.r_offset << 16;
- }
- else {
- BFD_ASSERT(0);
- }
-#endif
-
- }
-
- }
-
- asect->relocation = reloc_cache;
- return true;
- }
-
-
-/* This is stupid. This function should be a boolean predicate */
-static unsigned int
-coff_canonicalize_reloc(abfd, section, relptr, symbols)
-bfd *abfd;
-sec_ptr section;
-arelent **relptr;
-asymbol **symbols;
- {
- arelent *tblptr = section->relocation;
- unsigned int count = 0;
- if (!(tblptr || coff_slurp_reloc_table(abfd, section, symbols)))
- return 0;
- tblptr = section->relocation;
- if (!tblptr)
- return 0;
-
- for (; count++ < section->reloc_count;)
- *relptr++ = tblptr++;
-
- *relptr = 0;
-
- return section->reloc_count;
- }
-
-
-/*
-provided a bfd, a section and an offset into the section, calculate and
-return the name of the source file and the line nearest to the wanted
-location.
-*/
-
-static boolean
-DEFUN(coff_find_nearest_line,(abfd,
- section,
- symbols,
- offset,
- filename_ptr,
- functionname_ptr,
- line_ptr),
- bfd *abfd AND
- asection *section AND
- asymbol **symbols AND
- bfd_vma offset AND
- CONST char **filename_ptr AND
- CONST char **functionname_ptr AND
- unsigned int *line_ptr)
-{
- static bfd *cache_abfd;
- static asection *cache_section;
- static bfd_vma cache_offset;
- static unsigned int cache_i;
- static alent *cache_l;
-
- unsigned int i = 0;
- struct icofdata *cof = obj_icof(abfd);
- /* Run through the raw syments if available */
- struct internal_syment *p;
- alent *l;
- unsigned int line_base = 0;
-
-
- *filename_ptr = 0;
- *functionname_ptr = 0;
- *line_ptr = 0;
-
- /* Don't try and find line numbers in a non coff file */
- if (abfd->xvec->flavour != bfd_target_coff_flavour_enum)
- return false;
-
- if (cof == (struct icofdata *)NULL)
- return false;
-
- p = cof->raw_syments;
- /*
- I don't know for sure what's right, but this isn't it. First off, an
- object file may not have any C_FILE's in it. After
- get_normalized_symtab(), it should have at least 1, the one I put
- there, but otherwise, all bets are off. Point #2, the first C_FILE
- isn't necessarily the right C_FILE because any given object may have
- many. I think you'll have to track sections as they coelesce in order
- to find the C_STAT symbol for this section. Then you'll have to work
- backwards to find the previous C_FILE, or choke if you get to a C_STAT
- for the same kind of section. That will mean that the original object
- file didn't have a C_FILE. xoxorich.
- */
-
-#ifdef WEREBEINGPEDANTIC
- return false;
-#endif
-
- for (i = 0; i < cof->raw_syment_count; i++) {
- if (p->n_sclass == C_FILE) {
- /* File name is embeded in auxent */
- /*
- This isn't right. The fname should probably be normalized
- during get_normalized_symtab(). In any case, what was here
- wasn't right because a SYMENT.n_name isn't an
- AUXENT.x_file.x_fname. xoxorich.
- */
-
- *filename_ptr = ((AUXENT *) (p + 1))->x_file.x_fname;
- break;
- }
- p += 1 + p->n_numaux;
- }
- /* Now wander though the raw linenumbers of the section */
- /*
- If this is the same bfd as we were previously called with and this is
- the same section, and the offset we want is further down then we can
- prime the lookup loop
- */
- if (abfd == cache_abfd &&
- section == cache_section &&
- offset >= cache_offset) {
- i = cache_i;
- l = cache_l;
- }
- else {
- i = 0;
- l = section->lineno;
- }
-
- for (; i < section->lineno_count; i++) {
- if (l->line_number == 0) {
- /* Get the symbol this line number points at */
- coff_symbol_type *coff = (coff_symbol_type *) (l->u.sym);
- *functionname_ptr = coff->symbol.name;
- if (coff->native) {
- struct internal_syment *s = coff->native;
- s = s + 1 + s->n_numaux;
- /*
- S should now point to the .bf of the function
- */
- if (s->n_numaux) {
- /*
- The linenumber is stored in the auxent
- */
- union internal_auxent *a = (union internal_auxent *) (s + 1);
- line_base = a->x_sym.x_misc.x_lnsz.x_lnno;
- }
- }
- }
- else {
- if (l->u.offset > offset)
- break;
- *line_ptr = l->line_number + line_base + 1;
- }
- l++;
- }
-
- cache_abfd = abfd;
- cache_section = section;
- cache_offset = offset;
- cache_i = i;
- cache_l = l;
- return true;
-}
-
-#ifdef GNU960
-file_ptr
-coff_sym_filepos(abfd)
-bfd *abfd;
- {
- return obj_sym_filepos(abfd);
- }
-#endif
-
-
-static int
-DEFUN(coff_sizeof_headers,(abfd, reloc),
- bfd *abfd AND
- boolean reloc)
- {
- size_t size;
-
- if (reloc == false) {
- size = FILHSZ + AOUTSZ;
- }
- else {
- size = FILHSZ;
- }
-
- size += abfd->section_count * SCNHSZ;
- return size;
- }
-
-
-#define coff_core_file_failing_command _bfd_dummy_core_file_failing_command
-#define coff_core_file_failing_signal _bfd_dummy_core_file_failing_signal
-#define coff_core_file_matches_executable_p _bfd_dummy_core_file_matches_executable_p
-#define coff_slurp_armap bfd_slurp_coff_armap
-#define coff_slurp_extended_name_table _bfd_slurp_extended_name_table
-#define coff_truncate_arname bfd_dont_truncate_arname
-#define coff_openr_next_archived_file bfd_generic_openr_next_archived_file
-#define coff_generic_stat_arch_elt bfd_generic_stat_arch_elt
-#define coff_get_section_contents bfd_generic_get_section_contents
-#define coff_close_and_cleanup bfd_generic_close_and_cleanup
diff --git a/bfd/coffish.h b/bfd/coffish.h
deleted file mode 100755
index 77e40c8..0000000
--- a/bfd/coffish.h
+++ /dev/null
@@ -1,601 +0,0 @@
-
-/* All the swapping routines:
-*/
-
-
-
-static void
-DEFUN(swap_reloc_in,(abfd, reloc_src, reloc_dst),
- bfd *abfd AND
- RELOC *reloc_src AND
- struct internal_reloc *reloc_dst)
-{
- reloc_dst->r_vaddr = bfd_h_getlong(abfd, reloc_src->r_vaddr);
- reloc_dst->r_symndx = bfd_h_getlong(abfd, reloc_src->r_symndx);
- reloc_dst->r_type = bfd_h_getshort(abfd, reloc_src->r_type);
-#if M88
- reloc_dst->r_offset = bfd_h_getshort(abfd, reloc_src->r_offset);
-#endif
-}
-
-static void
-DEFUN(swap_reloc_out,(abfd, reloc_src, reloc_dst),
- bfd *abfd AND
- struct internal_reloc *reloc_src AND
- struct external_reloc *reloc_dst)
-{
- bfd_h_putlong(abfd, reloc_src->r_vaddr, reloc_dst->r_vaddr);
- bfd_h_putlong(abfd, reloc_src->r_symndx, reloc_dst->r_symndx);
- bfd_h_putshort(abfd, reloc_src->r_type, reloc_dst->r_type);
-#if M88
- bfd_h_putshort(abfd, reloc_src->r_offset, reloc_dst->r_offset);
-#endif
-
-}
-
-static void
-DEFUN(swap_filehdr_in,(abfd, filehdr_src, filehdr_dst),
- bfd *abfd AND
- FILHDR *filehdr_src AND
- struct internal_filehdr *filehdr_dst)
-{
- filehdr_dst->f_magic = bfd_h_get_x(abfd, filehdr_src->f_magic);
- filehdr_dst->f_nscns = bfd_h_get_x(abfd,filehdr_src-> f_nscns);
- filehdr_dst->f_timdat = bfd_h_get_x(abfd,filehdr_src-> f_timdat);
- filehdr_dst->f_symptr = bfd_h_get_x(abfd,filehdr_src-> f_symptr);
- filehdr_dst->f_nsyms = bfd_h_get_x(abfd,filehdr_src-> f_nsyms);
- filehdr_dst->f_opthdr = bfd_h_get_x(abfd,filehdr_src-> f_opthdr);
- filehdr_dst->f_flags = bfd_h_get_x(abfd,filehdr_src-> f_flags);
-}
-
-static void
-DEFUN(swap_filehdr_out,(abfd, filehdr_in, filehdr_out),
- bfd *abfd AND
- struct internal_filehdr *filehdr_in AND
- FILHDR *filehdr_out)
-{
- bfd_h_put_x(abfd, filehdr_in->f_magic, filehdr_out->f_magic);
- bfd_h_put_x(abfd, filehdr_in->f_nscns, filehdr_out->f_nscns);
- bfd_h_put_x(abfd, filehdr_in->f_timdat, filehdr_out->f_timdat);
- bfd_h_put_x(abfd, filehdr_in->f_symptr, filehdr_out->f_symptr);
- bfd_h_put_x(abfd, filehdr_in->f_nsyms, filehdr_out->f_nsyms);
- bfd_h_put_x(abfd, filehdr_in->f_opthdr, filehdr_out->f_opthdr);
- bfd_h_put_x(abfd, filehdr_in->f_flags, filehdr_out->f_flags);
-}
-
-
-static void
-DEFUN(bfd_coff_swap_sym_in,(abfd, ext, in),
- bfd *abfd AND
- SYMENT *ext AND
- struct internal_syment *in)
-{
- if( ext->e.e_name[0] == 0) {
- in->_n._n_n._n_zeroes = 0;
- in->_n._n_n._n_offset = bfd_h_getlong(abfd, ext->e.e.e_offset);
- }
- else {
- memcpy(in->_n._n_name, ext->e.e_name, SYMNMLEN);
- }
- in->n_value = bfd_h_get_x(abfd, ext->e_value);
- in->n_scnum = bfd_h_get_x(abfd, ext->e_scnum);
- in->n_type = bfd_h_get_x(abfd, ext->e_type);
- in->n_sclass = bfd_h_get_x(abfd, ext->e_sclass);
- in->n_numaux = bfd_h_get_x(abfd, ext->e_numaux);
-}
-
-static void
-DEFUN(bfd_coff_swap_sym_out,(abfd,in, ext),
- bfd *abfd AND
- struct internal_syment *in AND
- SYMENT *ext)
-{
- if(in->_n._n_name[0] == 0) {
- bfd_h_putlong(abfd, 0, ext->e.e.e_zeroes);
- bfd_h_putlong(abfd, in->_n._n_n._n_offset, ext->e.e.e_offset);
- }
- else {
- memcpy(ext->e.e_name, in->_n._n_name, SYMNMLEN);
- }
- bfd_h_put_x(abfd, in->n_value , ext->e_value);
- bfd_h_put_x(abfd, in->n_scnum , ext->e_scnum);
- bfd_h_put_x(abfd, in->n_type , ext->e_type);
- bfd_h_put_x(abfd, in->n_sclass , ext->e_sclass);
- bfd_h_put_x(abfd, in->n_numaux , ext->e_numaux);
-}
-
-static void
-DEFUN(bfd_coff_swap_aux_in,(abfd, ext, type, class, in),
- bfd *abfd AND
- AUXENT *ext AND
- int type AND
- int class AND
- union internal_auxent *in)
-{
- switch (class) {
- case C_FILE:
- if (ext->x_file.x_fname[0] == 0) {
- in->x_file.x_n.x_zeroes = 0;
- in->x_file.x_n.x_offset = bfd_h_getlong(abfd, ext->x_file.x_n.x_offset);
- }
-
- break;
- case C_STAT:
-#ifdef C_LEAFSTAT
- case C_LEAFSTAT:
-#endif
- case C_HIDDEN:
- if (type == T_NULL) {
- in->x_scn.x_scnlen = bfd_h_get_x(abfd, ext->x_scn.x_scnlen);
- in->x_scn.x_nreloc = bfd_h_get_x(abfd, ext->x_scn.x_nreloc);
- in->x_scn.x_nlinno = bfd_h_get_x(abfd, ext->x_scn.x_nlinno);
- break;
- }
- default:
- in->x_sym.x_tagndx = bfd_h_get_x(abfd, ext->x_sym.x_tagndx);
- in->x_sym.x_tvndx = bfd_h_get_x(abfd, ext->x_sym.x_tvndx);
-
- if (ISARY(type) || class == C_BLOCK) {
- in->x_sym.x_fcnary.x_ary.x_dimen[0] = bfd_h_get_x(abfd, ext->x_sym.x_fcnary.x_ary.x_dimen[0]);
- in->x_sym.x_fcnary.x_ary.x_dimen[1] = bfd_h_get_x(abfd, ext->x_sym.x_fcnary.x_ary.x_dimen[1]);
- in->x_sym.x_fcnary.x_ary.x_dimen[2] = bfd_h_get_x(abfd, ext->x_sym.x_fcnary.x_ary.x_dimen[2]);
- in->x_sym.x_fcnary.x_ary.x_dimen[3] = bfd_h_get_x(abfd, ext->x_sym.x_fcnary.x_ary.x_dimen[3]);
- }
- else {
- in->x_sym.x_fcnary.x_fcn.x_lnnoptr = bfd_h_get_x(abfd, ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
- in->x_sym.x_fcnary.x_fcn.x_endndx = bfd_h_get_x(abfd, ext->x_sym.x_fcnary.x_fcn.x_endndx);
- }
- if (ISFCN(type)) {
- in->x_sym.x_misc.x_fsize = bfd_h_get_x(abfd, ext->x_sym.x_misc.x_fsize);
- }
- else {
- in->x_sym.x_misc.x_lnsz.x_lnno = bfd_h_get_x(abfd, ext->x_sym.x_misc.x_lnsz.x_lnno);
- in->x_sym.x_misc.x_lnsz.x_size = bfd_h_get_x(abfd, ext->x_sym.x_misc.x_lnsz.x_size);
- }
- }
-}
-
-static void
-DEFUN(bfd_coff_swap_aux_out,(abfd, in, type, class, ext),
- bfd *abfd AND
- union internal_auxent *in AND
- int type AND
- int class AND
- AUXENT *ext)
-{
- switch (class) {
- case C_FILE:
- if (in->x_file.x_fname[0] == 0) {
- bfd_h_put_x(abfd, 0, ext->x_file.x_n.x_zeroes );
- bfd_h_put_x(abfd, in->x_file.x_n.x_offset, ext->x_file.x_n.x_offset);
- }
-
- break;
- case C_STAT:
-#ifdef C_LEAFSTAT
- case C_LEAFSTAT:
-#endif
- case C_HIDDEN:
- if (type == T_NULL) {
- bfd_h_put_x(abfd, in->x_scn.x_scnlen, ext->x_scn.x_scnlen);
- bfd_h_put_x(abfd, in->x_scn.x_nreloc, ext->x_scn.x_nreloc);
- bfd_h_put_x(abfd, in->x_scn.x_nlinno, ext->x_scn.x_nlinno);
- break;
- }
- default:
- bfd_h_put_x(abfd, in->x_sym.x_tagndx, ext->x_sym.x_tagndx);
- bfd_h_put_x(abfd, in->x_sym.x_tvndx , ext->x_sym.x_tvndx);
-
- if (ISARY(type) || class == C_BLOCK) {
- bfd_h_put_x(abfd, in->x_sym.x_fcnary.x_ary.x_dimen[0],ext->x_sym.x_fcnary.x_ary.x_dimen[0]);
- bfd_h_put_x(abfd, in->x_sym.x_fcnary.x_ary.x_dimen[1],ext->x_sym.x_fcnary.x_ary.x_dimen[1]);
- bfd_h_put_x(abfd, in->x_sym.x_fcnary.x_ary.x_dimen[2],ext->x_sym.x_fcnary.x_ary.x_dimen[2]);
- bfd_h_put_x(abfd, in->x_sym.x_fcnary.x_ary.x_dimen[3],ext->x_sym.x_fcnary.x_ary.x_dimen[3]);
- }
- else {
- bfd_h_put_x(abfd, in->x_sym.x_fcnary.x_fcn.x_lnnoptr, ext->x_sym.x_fcnary.x_fcn.x_lnnoptr);
- bfd_h_put_x(abfd, in->x_sym.x_fcnary.x_fcn.x_endndx, ext->x_sym.x_fcnary.x_fcn.x_endndx);
- }
- if (ISFCN(type)) {
- bfd_h_put_x(abfd, in->x_sym.x_misc.x_fsize, ext->x_sym.x_misc.x_fsize);
- }
- else {
- bfd_h_put_x(abfd, in->x_sym.x_misc.x_lnsz.x_lnno, ext->x_sym.x_misc.x_lnsz.x_lnno);
- bfd_h_put_x(abfd, in->x_sym.x_misc.x_lnsz.x_size, ext->x_sym.x_misc.x_lnsz.x_size);
- }
- }
-}
-
-static void
-DEFUN(bfd_coff_swap_lineno_in,(abfd, ext, in),
- bfd *abfd AND
- LINENO *ext AND
- struct internal_lineno *in)
-{
- in->l_addr.l_symndx = bfd_h_get_x(abfd, ext->l_addr.l_symndx);
- in->l_lnno = bfd_h_get_x(abfd, ext->l_lnno);
-}
-
-static void
-DEFUN(bfd_coff_swap_lineno_out,(abfd, in, ext),
- bfd *abfd AND
- struct internal_lineno *in AND
- struct external_lineno *ext)
-{
- bfd_h_put_x(abfd, in->l_addr.l_symndx, ext->l_addr.l_symndx);
- bfd_h_put_x(abfd, in->l_lnno, ext->l_lnno);
-}
-
-
-
-
-static void
-DEFUN(swap_aouthdr_in,(abfd, aouthdr_ext, aouthdr_int),
- bfd *abfd AND
- AOUTHDR *aouthdr_ext AND
- struct internal_aouthdr *aouthdr_int)
-{
- aouthdr_int->magic = bfd_h_get_x(abfd, aouthdr_ext->magic);
- aouthdr_int->vstamp = bfd_h_get_x(abfd, aouthdr_ext->vstamp);
- aouthdr_int->tsize = bfd_h_get_x(abfd, aouthdr_ext->tsize);
- aouthdr_int->dsize = bfd_h_get_x(abfd, aouthdr_ext->dsize);
- aouthdr_int->bsize = bfd_h_get_x(abfd, aouthdr_ext->bsize);
- aouthdr_int->entry = bfd_h_get_x(abfd, aouthdr_ext->entry);
- aouthdr_int->text_start = bfd_h_get_x(abfd, aouthdr_ext->text_start);
- aouthdr_int->data_start = bfd_h_get_x(abfd, aouthdr_ext->data_start);
-#ifdef I960
- aouthdr_int->tagentries = bfd_h_get_x(abfd, aouthdr_ext->tagentries);
-#endif
-}
-
-static void
-DEFUN(swap_aouthdr_out,(abfd, aouthdr_in, aouthdr_out),
- bfd *abfd AND
- struct internal_aouthdr *aouthdr_in AND
- AOUTHDR *aouthdr_out)
-{
- bfd_h_put_x(abfd, aouthdr_in->magic, aouthdr_out->magic);
- bfd_h_put_x(abfd, aouthdr_in->vstamp, aouthdr_out->vstamp);
- bfd_h_put_x(abfd, aouthdr_in->tsize, aouthdr_out->tsize);
- bfd_h_put_x(abfd, aouthdr_in->dsize, aouthdr_out->dsize);
- bfd_h_put_x(abfd, aouthdr_in->bsize, aouthdr_out->bsize);
- bfd_h_put_x(abfd, aouthdr_in->entry, aouthdr_out->entry);
- bfd_h_put_x(abfd, aouthdr_in->text_start, aouthdr_out->text_start);
- bfd_h_put_x(abfd, aouthdr_in->data_start, aouthdr_out->data_start);
-#ifdef I960
- bfd_h_put_x(abfd, aouthdr_in->tagentries, aouthdr_out->tagentries);
-#endif
-}
-
-static void
-DEFUN(swap_scnhdr_in,(abfd, scnhdr_ext, scnhdr_int),
- bfd *abfd AND
- SCNHDR *scnhdr_ext AND
- struct internal_scnhdr *scnhdr_int)
-{
- memcpy(scnhdr_int->s_name, scnhdr_ext->s_name, sizeof(scnhdr_int->s_name));
- scnhdr_int->s_vaddr = bfd_h_get_x(abfd, scnhdr_ext->s_vaddr);
- scnhdr_int->s_paddr = bfd_h_get_x(abfd, scnhdr_ext->s_paddr);
- scnhdr_int->s_size = bfd_h_get_x(abfd, scnhdr_ext->s_size);
- scnhdr_int->s_scnptr = bfd_h_get_x(abfd, scnhdr_ext->s_scnptr);
- scnhdr_int->s_relptr = bfd_h_get_x(abfd, scnhdr_ext->s_relptr);
- scnhdr_int->s_lnnoptr = bfd_h_get_x(abfd, scnhdr_ext->s_lnnoptr);
- scnhdr_int->s_nreloc = bfd_h_get_x(abfd, scnhdr_ext->s_nreloc);
- scnhdr_int->s_nlnno = bfd_h_get_x(abfd, scnhdr_ext->s_nlnno);
- scnhdr_int->s_flags = bfd_h_get_x(abfd, scnhdr_ext->s_flags);
-#ifdef I960
- scnhdr_int->s_align = bfd_h_get_x(abfd, scnhdr_ext->s_align);
-#endif
-}
-
-static void
-DEFUN(swap_scnhdr_out,(abfd, scnhdr_int, scnhdr_ext),
- bfd *abfd AND
- struct internal_scnhdr *scnhdr_int AND
- SCNHDR *scnhdr_ext)
-{
- memcpy(scnhdr_ext->s_name, scnhdr_int->s_name, sizeof(scnhdr_int->s_name));
- bfd_h_put_x(abfd, scnhdr_int->s_vaddr, scnhdr_ext->s_vaddr);
- bfd_h_put_x(abfd, scnhdr_int->s_paddr, scnhdr_ext->s_paddr);
- bfd_h_put_x(abfd, scnhdr_int->s_size, scnhdr_ext->s_size);
- bfd_h_put_x(abfd, scnhdr_int->s_scnptr, scnhdr_ext->s_scnptr);
- bfd_h_put_x(abfd, scnhdr_int->s_relptr, scnhdr_ext->s_relptr);
- bfd_h_put_x(abfd, scnhdr_int->s_lnnoptr, scnhdr_ext->s_lnnoptr);
- bfd_h_put_x(abfd, scnhdr_int->s_nreloc, scnhdr_ext->s_nreloc);
- bfd_h_put_x(abfd, scnhdr_int->s_nlnno, scnhdr_ext->s_nlnno);
- bfd_h_put_x(abfd, scnhdr_int->s_flags, scnhdr_ext->s_flags);
-#ifdef I960
- bfd_h_put_x(abfd, scnhdr_int->s_align, scnhdr_ext->s_align);
-#endif
-}
-
-/*
- initialize a section structure with information peculiar to this
- particular implementation of coff
-*/
-
-static boolean
-DEFUN(coff_new_section_hook,(abfd_ignore, section_ignore),
- bfd *abfd_ignore AND
- asection *section_ignore)
-{
-#ifdef MC88MAGIC
- /* FIXME, shouldn't this ifdef be on something that says we are
- actually COMPILING FOR an 88K coff file, rather than simply
- knowing its magic number? */
- /* Align to at least 16 bytes */
- section_ignore->alignment_power = 4;
-#endif
-#if M68
- section_ignore->alignment_power = 3;
-#endif
- return true;
-}
-
-/* Take a section header read from a coff file (in HOST byte order),
- and make a BFD "section" out of it. */
-static boolean
-DEFUN(make_a_section_from_file,(abfd, hdr),
- bfd *abfd AND
- struct internal_scnhdr *hdr)
-{
- asection *return_section;
-
- {
- /* Assorted wastage to null-terminate the name, thanks AT&T! */
- char *name = bfd_alloc(abfd, sizeof (hdr->s_name)+1);
- if (name == NULL) {
- bfd_error = no_memory;
- return false;
- }
- strncpy(name, (char *) &hdr->s_name[0], sizeof (hdr->s_name));
- name[sizeof (hdr->s_name)] = 0;
-
- return_section = bfd_make_section(abfd, name);
- }
-
- /* s_paddr is presumed to be = to s_vaddr */
-#define assign(to, from) return_section->to = hdr->from
- assign(vma, s_vaddr);
- /* assign (vma, s_vaddr); */
- assign(size, s_size);
- assign(filepos, s_scnptr);
- assign(rel_filepos, s_relptr);
- assign(reloc_count, s_nreloc);
-#ifdef I960
- {
- /* FIXME, use a temp var rather than alignment_power */
- assign(alignment_power, s_align);
- {
- unsigned int i;
- for (i = 0; i < 32; i++) {
- if ((1 << i) >= (int) (return_section->alignment_power)) {
- return_section->alignment_power = i;
- break;
- }
- }
- }
- }
-#endif
- assign(line_filepos, s_lnnoptr);
- /*
- return_section->linesize = hdr->s_nlnno * sizeof (struct lineno);
- */
-
-#undef assign
- return_section->lineno_count = hdr->s_nlnno;
- return_section->userdata = NULL;
- return_section->next = (asection *) NULL;
- if ((hdr->s_flags & STYP_TEXT) || (hdr->s_flags & STYP_DATA))
- return_section->flags = (SEC_LOAD | SEC_ALLOC);
- else if (hdr->s_flags & STYP_BSS)
- return_section->flags = SEC_ALLOC;
-
- if (hdr->s_nreloc != 0)
- return_section->flags |= SEC_RELOC;
- if (hdr->s_scnptr != 0)
- return_section->flags |= SEC_HAS_CONTENTS;
- return true;
-}
-static boolean
-DEFUN(coff_mkobject,(abfd),
- bfd *abfd)
-{
- set_tdata (abfd, bfd_zalloc (abfd,sizeof(coff_data_type)));
- if (coff_data(abfd) == 0) {
- bfd_error = no_memory;
- return false;
- }
- coff_data(abfd)->relocbase = 0;
- return true;
-}
-
-static
-bfd_target *
-DEFUN(coff_real_object_p,(abfd, nscns, internal_f, internal_a),
- bfd *abfd AND
- unsigned nscns AND
- struct internal_filehdr *internal_f AND
- struct internal_aouthdr *internal_a)
-{
- coff_data_type *coff;
-
- size_t readsize; /* length of file_info */
- SCNHDR *external_sections;
-
- /* Build a play area */
- if (coff_mkobject(abfd) != true)
- return 0;
- coff = coff_data(abfd);
-
-
- external_sections = (SCNHDR *)bfd_alloc(abfd, readsize = (nscns * SCNHSZ));
- if (bfd_read((PTR)external_sections, 1, readsize, abfd) != readsize) {
- goto fail;
- }
-
-
-
- /* Now copy data as required; construct all asections etc */
- coff->symbol_index_slew = 0;
- coff->relocbase =0;
- coff->raw_syment_count = 0;
- coff->raw_linenos = 0;
- coff->raw_syments = 0;
- coff->sym_filepos =0;
- coff->flags = internal_f->f_flags;
- if (nscns != 0) {
- unsigned int i;
- for (i = 0; i < nscns; i++) {
- struct internal_scnhdr tmp;
- swap_scnhdr_in(abfd, external_sections + i, &tmp);
- make_a_section_from_file(abfd,&tmp);
- }
- }
- /* Determine the machine architecture and type. */
- abfd->obj_machine = 0;
- switch (internal_f->f_magic) {
-#ifdef MIPS
-#ifdef MIPSEBMAGIC
- case SMIPSEBMAGIC:
- case SMIPSELMAGIC:
- case MIPSEBUMAGIC:
- case MIPSELUMAGIC:
- case MIPSEBMAGIC:
- case MIPSELMAGIC:
- abfd->obj_arch = bfd_arch_mips;
- abfd->obj_machine = 0;
- break;
-#endif
-#endif
-#ifdef MC68MAGIC
- case MC68MAGIC:
- case M68MAGIC:
- abfd->obj_arch = bfd_arch_m68k;
- abfd->obj_machine = 68020;
- break;
-#endif
-#ifdef MC88MAGIC
- case MC88MAGIC:
- case MC88DMAGIC:
- case MC88OMAGIC:
- abfd->obj_arch = bfd_arch_m88k;
- abfd->obj_machine = 88100;
- break;
-#endif
-#ifdef I960
-#ifdef I960ROMAGIC
- case I960ROMAGIC:
- case I960RWMAGIC:
- abfd->obj_arch = bfd_arch_i960;
- switch (F_I960TYPE & internal_f->f_flags)
- {
- default:
- case F_I960CORE:
- abfd->obj_machine = bfd_mach_i960_core;
- break;
- case F_I960KB:
- abfd->obj_machine = bfd_mach_i960_kb_sb;
- break;
- case F_I960MC:
- abfd->obj_machine = bfd_mach_i960_mc;
- break;
- case F_I960XA:
- abfd->obj_machine = bfd_mach_i960_xa;
- break;
- case F_I960CA:
- abfd->obj_machine = bfd_mach_i960_ca;
- break;
- case F_I960KA:
- abfd->obj_machine = bfd_mach_i960_ka_sa;
- break;
-
- }
- break;
-#endif
-#endif
-
- default: /* Unreadable input file type */
- abfd->obj_arch = bfd_arch_obscure;
- break;
- }
-
- if (!(internal_f->f_flags & F_RELFLG))
- abfd->flags |= HAS_RELOC;
- if ((internal_f->f_flags & F_EXEC))
- abfd->flags |= EXEC_P;
- if (!(internal_f->f_flags & F_LNNO))
- abfd->flags |= HAS_LINENO;
- if (!(internal_f->f_flags & F_LSYMS))
- abfd->flags |= HAS_LOCALS;
-
-
- bfd_get_symcount(abfd) = internal_f->f_nsyms;
- if (internal_f->f_nsyms)
- abfd->flags |= HAS_SYMS;
-
- coff->sym_filepos = internal_f->f_symptr;
-
-
-
- coff->symbols = (coff_symbol_type *) NULL;
- bfd_get_start_address(abfd) = internal_f->f_opthdr ? internal_a->entry : 0;
-
- return abfd->xvec;
- fail:
- bfd_release(abfd, coff);
- return (bfd_target *)NULL;
-}
-
-static bfd_target *
-DEFUN(coff_object_p,(abfd),
- bfd *abfd)
- {
- int nscns;
- FILHDR filehdr;
- AOUTHDR opthdr;
- struct internal_filehdr internal_f;
- struct internal_aouthdr internal_a;
-
- bfd_error = system_call_error;
-
- /* figure out how much to read */
- if (bfd_read((PTR) &filehdr, 1, FILHSZ, abfd) != FILHSZ)
- return 0;
-
- swap_filehdr_in(abfd, &filehdr, &internal_f);
-
- if (BADMAG(internal_f)) {
- bfd_error = wrong_format;
- return 0;
- }
- nscns =internal_f.f_nscns;
-
- if (internal_f.f_opthdr) {
- if (bfd_read((PTR) &opthdr, 1,AOUTSZ, abfd) != AOUTSZ) {
- return 0;
- }
- swap_aouthdr_in(abfd, &opthdr, &internal_a);
- }
-
- /* Seek past the opt hdr stuff */
- bfd_seek(abfd, internal_f.f_opthdr + FILHSZ, SEEK_SET);
-
- /* if the optional header is NULL or not the correct size then
- quit; the only difference I can see between m88k dgux headers (MC88DMAGIC)
- and Intel 960 readwrite headers (I960WRMAGIC) is that the
- optional header is of a different size.
-
- But the mips keeps extra stuff in it's opthdr, so dont check
- when doing that
- */
-
-#ifndef MIPS
- if (internal_f.f_opthdr != 0 && AOUTSZ != internal_f.f_opthdr)
- return (bfd_target *)NULL;
-#endif
-
- return coff_real_object_p(abfd, nscns, &internal_f, &internal_a);
- }
-
-
diff --git a/bfd/coffswap.c b/bfd/coffswap.c
deleted file mode 100755
index b1f7451..0000000
--- a/bfd/coffswap.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Byte-swapping routines for COFF files */
-
-/* Copyright (C) 1990, 1991 Free Software Foundation, Inc.
-
-This file is part of BFD, the Binary File Diddler.
-
-BFD is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 1, or (at your option) any later version.
-
-BFD is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- details.
-
-You should have received a copy of the GNU General Public License along with
- BFD; see the file COPYING. If not, write to the Free Software Foundation,
- 675 Mass Ave, Cambridge, MA 02139, USA.
-*/
-
-/* Most of this hacked by Steve Chamberlain, steve@cygnus.com */
-#if 0
-#include <ansidecl.h>
-#include "intel-coff.h"
-#include "bfd.h"
-#include "libcoff.h" /* to allow easier abstraction-breaking */
-
-#define sp(x) bfd_h_put_x(abfd, x, &x)
-
-/* All the generic swapping routines:
-
-FIXME
- These routines cater for the sizes and alignments and offsets of
- all the contained fields. Because of this, the fields can change
- size, so these should be phased out to use the ones specific to the
- file format.
- */
-
-void
-DEFUN(bfd_coff_swap_name,(abfd, ptr),
- bfd *abfd AND
- long *ptr)
-{
- if (ptr[0] == 0) {
- /* There is an index which needs to be swapped */
- bfd_h_put_x(abfd, ptr[1], (ptr + 1));
- }
- else {
- /* This is a string .. leave it alone */
- }
-}
-
-void
-DEFUN(bfd_coff_swap_sym,(abfd, se),
- bfd *abfd AND
- struct internal_syment *se)
-{
- bfd_coff_swap_name(abfd, (long*)(se->n_name));
- bfd_h_put_x(abfd, se->n_value, &se->n_value);
- bfd_h_put_x(abfd, se->n_scnum, &se->n_scnum);
- bfd_h_put_x(abfd, se->n_type, &se->n_type);
- bfd_h_put_x(abfd, se->n_sclass, &se->n_sclass);
- bfd_h_put_x(abfd, se->n_numaux, &se->n_numaux);
-}
-
-void
-DEFUN(bfd_coff_swap_aux,(abfd, au, type, class),
- bfd *abfd AND
- struct internal_auxent *au AND
- int type AND
- int class)
-{
- switch (class) {
- case C_FILE:
- bfd_coff_swap_name(abfd, (long *)(&au->x_file.x_n));
- break;
- case C_STAT:
-#ifdef C_LEAFSTAT
- case C_LEAFSTAT:
-#endif
- case C_HIDDEN:
- if (type == T_NULL) {
- sp(au->x_scn.x_scnlen);
- sp(au->x_scn.x_nreloc);
- sp(au->x_scn.x_nlinno);
- break;
- }
- default:
- sp(au->x_sym.x_tagndx);
- sp(au->x_sym.x_tvndx);
-
- if (ISARY(type) || class == C_BLOCK) {
- sp(au->x_sym.x_fcnary.x_ary.x_dimen[0]);
- sp(au->x_sym.x_fcnary.x_ary.x_dimen[1]);
- sp(au->x_sym.x_fcnary.x_ary.x_dimen[2]);
- sp(au->x_sym.x_fcnary.x_ary.x_dimen[3]);
- }
- else {
- sp(au->x_sym.x_fcnary.x_fcn.x_lnnoptr);
- sp(au->x_sym.x_fcnary.x_fcn.x_endndx);
- }
- if (ISFCN(type)) {
- sp(au->x_sym.x_misc.x_fsize);
- }
- else {
- sp(au->x_sym.x_misc.x_lnsz.x_lnno);
- sp(au->x_sym.x_misc.x_lnsz.x_size);
- }
- }
-}
-
-void
-DEFUN(bfd_coff_swap_lineno,(abfd, lineno),
- bfd *abfd AND
- struct internal_lineno *lineno)
-{
- sp(lineno->l_addr.l_symndx);
- sp(lineno->l_lnno);
-}
-
-
-
-#endif
diff --git a/bfd/config.sub b/bfd/config.sub
deleted file mode 100755
index dac9ab8..0000000
--- a/bfd/config.sub
+++ /dev/null
@@ -1,446 +0,0 @@
-#!/bin/sh
-
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration (e.g. a typo).
-
-# Please email any bugs, comments, and/or additions to this file to:
-# configure@cygnus.com
-
-# decode aliases into canonical names
-
-case "$1" in
-# cpu alone is a valid alias for cpu-none-none.
-vax | tahoe | i386 | i860 | m68k | m68000 | m88k | sparc | ns32k \
- | alliant | arm | c1 | c2 | mips | pyramid | tron | a29k \
- | romp | rs6000 | i960 | h8300)
- cpu=$1
- vendor=none
- os=none
- ;;
-altos | altos3068)
- cpu=m68k
- vendor=altos
- os=sysv # maybe?
- ;;
-altosgas)
- cpu=m68k
- vendor=altos
- os=gas
- ;;
-am29k)
- cpu=a29k
- vendor=none
- os=bsd
- ;;
-amdahl)
- cpu=580
- vendor=amdahl
- os=uts
- ;;
-amigados)
- cpu=m68k
- vendor=cbm
- os=amigados # Native AmigaDOS
- ;;
-amigaunix | amix)
- cpu=m68k
- vendor=cbm
- os=svr4 # System V Release 4 (svr4 is an industry recognized acronym)
- ;;
-apollo68)
- cpu=m68k
- vendor=apollo
- os=sysv # maybe?
- ;;
-balance)
- cpu=ns32k
- vendor=sequent
- os=dynix
- ;;
-convex-c1)
- cpu=c1
- vendor=convex
- os=sysv # maybe?
- ;;
-convex-c2)
- cpu=c2
- vendor=convex
- os=sysv # maybe?
- ;;
-cray | ymp)
- cpu=ymp
- vendor=cray
- os=unicos
- ;;
-cray2)
- cpu=cray2
- vendor=cray
- os=unicos
- ;;
-dec3100 | decstatn | decstation | decstation-3100 | pmax | pmin)
- cpu=mips
- vendor=dec
- os=ultrix
- ;;
-delta | 3300 | motorola-3300 | motorola-delta \
- | 3300-motorola | delta-motorola)
- cpu=m68k
- vendor=motorola
- os=sysv # maybe?
- ;;
-
-delta88)
- cpu=m88k
- vendor=motorola
- os=m88kbcs
- ;;
-
-gmicro)
- cpu=tron
- vendor=gmicro
- os=sysv # maybe?
- ;;
-
-h8300hds)
- cpu=h8300
- vendor=hitachi
- os=hds
- ;;
-
-# start-sanitize-v9
-hal-32 | hal32)
- cpu=sparc64
- vendor=hal
- os=hal32
- ;;
-hal-64 | hal64)
- cpu=sparc64
- vendor=hal
- os=hal64
- ;;
-sparc64)
- cpu=sparc64
- vendor=sun
- os=v9
- ;;
-sparc64-v7 | sparc64v7)
- cpu=sparc64
- vendor=sun
- os=v7
- ;;
-# end-sanitize-v9
-hp300bsd)
- cpu=m68k
- vendor=hp
- os=bsd
- ;;
-hp300hpux | hpux | hp9k3[2-9][0-9])
- cpu=m68k
- vendor=hp
- os=hpux
- ;;
-hp9k31[0-9] | hp9k2[0-9][0-9])
- cpu=m68000
- vendor=hp
- os=hpux
- ;;
-i386sco)
- cpu=i386
- vendor=sco
- os=sysv # maybe?
- ;;
-i386v)
- cpu=i386
- vendor=none
- os=sysv
- ;;
-i386v32)
- cpu=i386
- vendor=none
- os=sysv32
- ;;
-iris | iris4d)
- cpu=mips
- vendor=sgi
- os=irix # maybe?
- ;;
-
-dpx2)
- vendor=bull
- cpu=m68k
- os=sysv
- ;;
-isi | isi68)
- cpu=m68k
- vendor=isi
- os=sysv # maybe?
- ;;
-littlemips)
- cpu=mips
- vendor=little
- os=bsd
- ;;
-magnum | m3230)
- cpu=mips
- vendor=mips
- os=sysv # maybe?
- ;;
-merlin)
- cpu=ns32k
- vendor=utek
- os=sysv # maybe?
- ;;
-miniframe)
- cpu=m68000
- vendor=convergent
- os=sysv # maybe?
- ;;
-mmax)
- cpu=ns32k
- vendor=encore
- os=sysv # maybe?
- ;;
-news | news700 | news800 | news900)
- cpu=m68k
- vendor=sony
- os=newsos3 # Based on bsd-4.3
- ;;
-news1000)
- cpu=m68030
- vendor=sony
- os=newsos3 # ?
- ;;
-news-3600 | bigmips | risc-news)
- cpu=mips
- vendor=sony
- os=newsos4 # Presumably?
- ;;
-next)
- cpu=m68k
- vendor=next
- os=sysv # maybe?
- ;;
-nindy960)
- cpu=i960
- vendor=intel
- os=nindy
- ;;
-none)
- cpu=none
- vendor=none
- os=none
- ;;
-np1)
- cpu=np1
- vendor=gould
- os=sysv # maybe?
- ;;
-rtpc)
- cpu=romp
- vendor=ibm
- os=aix # maybe?
- ;;
-pbd)
- cpu=sparc
- vendor=unicom
- os=sysv
- ;;
-pn)
- cpu=pn
- vendor=gould
- os=sysv # maybe?
- ;;
-ps2)
- cpu=i386
- vendor=ibm
- os=sysv # maybe?
- ;;
-sun2)
- cpu=m68000
- vendor=sun
- os=sunos4
- ;;
-sun2os3)
- cpu=m68000
- vendor=sun
- os=sunos3
- ;;
-sun2os4)
- cpu=m68000
- vendor=sun
- os=sunos4
- ;;
-sun3)
- cpu=m68k
- vendor=sun
- os=sunos4
- ;;
-sun3os3)
- cpu=m68k
- vendor=sun
- os=sunos3
- ;;
-sun3os4)
- cpu=m68k
- vendor=sun
- os=sunos4
- ;;
-sun386 | roadrunner | sun386i)
- cpu=i386
- vendor=sun
- os=sunos
- ;;
-sun4)
- cpu=sparc
- vendor=sun
- os=sunos4
- ;;
-sun4os3)
- cpu=sparc
- vendor=sun
- os=sunos3
- ;;
-sun4os4)
- cpu=sparc
- vendor=sun
- os=sunos4
- ;;
-symmetry)
- cpu=i386
- vendor=sequent
- os=dynix
- ;;
-tower | tower-32)
- cpu=m68k
- vendor=ncr
- os=sysv # maybe?
- ;;
-ultra3)
- cpu=a29k
- vendor=nyu
- os=sym1
- ;;
-umax)
- cpu=ns32k
- vendor=encore
- os=sysv # maybe?
- ;;
-unixpc | safari | pc7300 | 3b1 | 7300 | 7300-att | att-7300)
- cpu=m68k
- vendor=att
- os=sysv # maybe?
- ;;
-vax-dec)
- cpu=vax
- vendor=dec
- os=ultrix # maybe?
- ;;
-vxworks68)
- cpu=m68k
- vendor=wrs
- os=vxworks
- ;;
-vxworks960)
- cpu=i960
- vendor=wrs
- os=vxworks
- ;;
-xmp)
- cpu=xmp
- vendor=cray
- os=unicos
- ;;
-# not an alias. parse what we expect to be a canonical name.
-*)
- cpu=`echo $1 | sed 's/-.*$//'`
-
- if [ "${cpu}" = "$1" ] ; then
- # no vendor so this is an invalid name.
- echo '***' No vendor: configuration \`$1\' not recognized 1>&2
- exit 1
- else
- # parse out vendor
- rest=`echo $1 | sed "s/${cpu}-//"`
- vendor=`echo ${rest} | sed 's/-.*$//'`
-
- if [ "${vendor}" = "${rest}" ] ; then
- # a missing os is acceptable
- os=none
- else
- os=`echo ${rest} | sed "s/${vendor}-//"`
- fi
- fi
- ;;
-esac
-
-# At this point we should have three parts of a canonical name in cpu,
-# vendor, and os.
-
-# verify that the cpu is known.
-
-case "${cpu}" in
-none | vax | tahoe | i386 | i860 | m68k | m68000 | m88k | sparc \
- | ns32k | alliant | arm | c1 | c2 | mips | pyramid | tron \
- | a29k | romp | rs6000 | i960 | xmp | ymp | cray2 | 580 | h8300)
- ;;
-
-# start-sanitize-v9
-sparc64) ;;
-# end-sanitize-v9
-
-*)
- echo '***' Invalid cpu \`${cpu}\': configuration \`$1\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# verify that the vendor is known.
-
-case "${vendor}" in
- altos | amdahl | aout | apollo | att | bcs | bout |\
- cbm | convergent | convex | coff | cray | dec | encore |\
- gould | hitachi | intel | isi | hp | ibm | little | mips | motorola |\
- ncr | next | none | nyu | sco | sequent | sgi | sony | sun |\
- unicom | utek | wrs | bull ) ;;
-
-# start-sanitize-v9
-hal) ;;
-# end-sanitize-v9
-
-*)
- echo '***' Invalid vendor \`${vendor}\': configuration \`$1\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-# verify that the os is known, if it exists.
-
-case "${os}" in
-aix* | aout | bout | bsd* | coff | ctix* | dynix* | esix* | hpux* \
- | hds | irix* | isc* | kern | mach* | newsos* | nindy* | none \
- | osf* | sco* | sunos* | sysv* | ultrix* | unos* | v88r* \
- | vms* | vxworks* | sym[1-9]* | unicos* | uts | svr4 \
- | amigados)
- ;;
-
-# start-sanitize-v9
-hal32 | hal64 | v7 | v9) ;;
-# end-sanitize-v9
-
-*)
- echo '***' Invalid os \`${os}\': configuration \`$1\' not recognized 1>&2
- exit 1
- ;;
-esac
-
-echo ${cpu}-${vendor}-${os}
diff --git a/bfd/configdos.bat b/bfd/configdos.bat
deleted file mode 100755
index 46cdb94..0000000
--- a/bfd/configdos.bat
+++ /dev/null
@@ -1,6 +0,0 @@
-@echo off
-echo Configuring BFD for H8/300
-
-copy hosts\h-go32.h sysdep.h
-copy makefile.dos makefile
-
diff --git a/bfd/configure b/bfd/configure
deleted file mode 100755
index e7e05e8..0000000
--- a/bfd/configure
+++ /dev/null
@@ -1,774 +0,0 @@
-#!/bin/sh
-
-# Configuration script
-# Copyright (C) 1988, 1990, 1991 Free Software Foundation, Inc.
-
-#This file is part of GNU.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-# $Id$
-
-#
-# Shell script to create proper links to machine-dependent files in
-# preparation for compilation.
-#
-# If configure succeeds, it leaves its status in config.status.
-# If configure fails after disturbing the status quo,
-# config.status is removed.
-#
-
-remove=rm
-hard_link=ln
-symbolic_link='ln -s'
-
-#for Test
-#remove="echo rm"
-#hard_link="echo ln"
-#symbolic_link="echo ln -s"
-
-progname=$0
-
-# clear some things potentially inherited from environment.
-ansi=
-arguments=$*
-defaulttargets=
-destdir=
-fatal=
-hostsubdir=
-Makefile=Makefile
-Makefile_in=Makefile.in
-norecursion=
-recurring=
-removing=
-srcdir=
-srctrigger=
-target=
-targets=
-commontargets=
-configdirs=
-targetsubdir=
-template=
-verbose=
-
-for arg in $*;
-do
- case ${arg} in
- -ansi | +a*)
- ansi=true
- clib=clib
- ;;
- -destdir=* | +destdir=* | +destdi=* | +destd=* | +dest=* | +des=* | +de=* | +d=*)
- destdir=`echo ${arg} | sed 's/[+-]d[a-z]*=//'`
- ;;
- -languages=* | +languages=* | +language=* | +languag=* \
- | +langua=* | +langu=* | +lang=* | +lan=* | +la=* \
- | +l=*)
- languages="${languages} `echo ${arg} | sed 's/[+-]l[a-z]*=//'`"
- ;;
- -gas | +g*)
- gas=yes
- ;;
- -help | +h*)
- fatal=true
- ;;
- -nfp | +nf*)
- nfp=yes
- ;;
- -norecursion | +no*)
- norecursion=true
- ;;
- -recurring | +recurring | +recurrin | +recurri | +recurr | +recur | +recu | +rec | +re)
- recurring=true
- ;;
- -rm | +rm)
- removing=${arg}
- ;;
-# -srcdir=* | +srcdir=* | +srcdi=* | +srcd=* | +src=* | +sr=* | +s=*)
-# srcdir=`echo ${arg} | sed 's/[+-]s[a-z]*=//'`
-# ;;
- -subdirs | +f* | +su*)
- subdirs=${arg}
- ;;
- -target=* | +target=* | +targe=* | +targ=* | +tar=* | +ta=*)
- if [ -n "${targets}" ] ; then
- subdirs="+subdirs"
- fi
-
- newtargets="${targets} `echo ${arg} | sed 's/[+-]t[a-z]*=//'`"
- targets="${newtargets}"
- ;;
- -template=* | +template=* | +templat=* | +templa=* | +templ=* | +temp=* | +tem=* | +te=*)
- template=`echo ${arg} | sed 's/[+-]template=//'`
- ;;
- -v | -verbose | +v*)
- verbose=${arg}
- ;;
- -* | +*)
- (echo ;
- echo "Unrecognized option: \"${arg}\"". ;
- echo) 1>&2
- fatal=true
- ;;
- *)
- if [ -n "${hosts}" ] ; then
- subdirs="+subdirs"
- fi
-
- newhosts="${hosts} ${arg}"
- hosts=${newhosts}
- ;;
- esac
-done
-
-if [ -n "${verbose}" ] ; then
- echo `pwd`/configure $*
-fi
-
-# process host and target only if not rebuilding configure itself or removing.
-if [ -z "${template}" -a -z "${removing}" -a -z "${fatal}" ] ; then
- # Complain if an arg is missing
- if [ -z "${hosts}" ] ; then
- (echo ;
- echo "configure: No HOST specified." ;
- echo) 1>&2
- fatal=true
- fi
-fi
-
-if [ -n "${fatal}" -o "${hosts}" = "help" ] ; then
- (echo "Usage: configure HOST" ;
- echo ;
- echo "Options: [defaults in brackets]" ;
- echo " +ansi configure w/ANSI library. [no ansi lib]" ;
- echo " +destdir=MYDIR configure for installation into MYDIR. [/usr/local]" ;
- echo " +subdirs configure in subdirectories. [in source directories]" ;
- echo " +lang=LANG configure to build LANG. [gcc]" ;
- echo " +help print this message. [normal config]" ;
- echo " +gas configure the compilers for use with gas. [native as]" ;
- echo " +nfp configure the compilers default to soft floating point. [hard float]" ;
- echo " +norecursion configure this directory only. [recurse]" ;
- echo " +rm remove this configuration. [build a configuration]" ;
- echo " +target=TARGET configure for TARGET. [TARGET = HOST]" ;
- echo " +template=TEM rebuild configure using TEM. [normal config]" ;
- echo ;
- echo "Where HOST and TARGET are something like \"vax\", \"sun3\", \"encore\", etc." ;
- echo "Asking for more than one \"+target\" implies \"+subdirs\". Any other" ;
- echo "options given will apply to all targets.") 1>&2
-
- if [ -r config.status ] ; then
- cat config.status
- fi
-
- exit 1
-fi
-
-#### configure.in common parts come in here.
-# This file is a shell script that supplies the information necessary
-# to tailor a template configure script into the configure script
-# appropriate for this directory. For more information, check any
-# existing configure script.
-
-srctrigger=libbfd.c
-srcname="bfd"
-
-## end of common part.
-
-# are we rebuilding config itself?
-if [ -n "${template}" ] ; then
- if [ ! -r ${template} ] ; then
- echo '***' "Can't find template ${template}." 1>&2
- exit 1
- fi
-
-# prep the template
- sed -e '/^#### configure.in common parts come in here.$/,/^## end of common part.$/c\
-#### configure.in common parts come in here.\
-## end of common part.' \
- -e '/^#### configure.in per-host parts come in here.$/,/^## end of per-host part.$/c\
-#### configure.in per-host parts come in here.\
-## end of per-host part.' \
- -e '/^#### configure.in per-target parts come in here.$/,/^## end of per-target part.$/c\
-#### configure.in per-target parts come in here.\
-## end of per-target part.' \
- -e '/^#### configure.in post-target parts come in here.$/,/^## end of post-target part.$/c\
-#### configure.in post-target parts come in here.\
-## end of post-target part.' \
- < ${template} > template.new
-
- if [ -r configure.in ] ; then
- if [ -z "`grep '^# per\-host:' configure.in`" ] ; then
- echo '***' `pwd`/configure.in has no "per-host:" line. 1>&2
- exit 1
- fi
-
- if [ -z "`grep '^# per\-target:' configure.in`" ] ; then
- echo '***' `pwd`/configure.in has no "per-target:" line. 1>&2
- exit 1
- fi
-
- # split configure.in into common, per-host, per-target,
- # and post-target parts. Post-target is optional.
- sed -e '/^# per\-host:/,$d' configure.in > configure.com
- sed -e '1,/^# per\-host:/d' -e '/^# per\-target:/,$d' configure.in > configure.hst
- if grep -s '^# post-target:' configure.in ; then
- sed -e '1,/^# per\-target:/d' -e '/^# post\-target:/,$d' configure.in > configure.tgt
- sed -e '1,/^# post\-target:/d' configure.in > configure.pos
- else
- sed -e '1,/^# per\-target:/d' configure.in > configure.tgt
- echo >configure.pos
- fi
-
- # and insert them
- sed -e '/^#### configure.in common parts come in here.$/ r configure.com' \
- -e '/^#### configure.in per\-host parts come in here.$/ r configure.hst' \
- -e '/^#### configure.in per\-target parts come in here.$/ r configure.tgt' \
- -e '/^#### configure.in post\-target parts come in here.$/ r configure.pos' \
- template.new > configure.new
-
- rm -f configure.com configure.tgt configure.hst configure.pos
- else
- echo Warning: no configure.in in `pwd`
- cat ${template} >> configure
- fi
-
- chmod a+x configure.new
- rm template.new
-# mv configure configure.old
- mv configure.new configure
-
- if [ -n "${verbose}" ] ; then
- echo Rebuilt configure in `pwd`
- fi
-
- # Now update config.sub from the template directory.
- if echo "$template" | grep -s 'configure$' ; then
- cp `echo "$template" | sed s/configure$/config.sub/` ./config.sub.new
- # mv config.sub config.sub.old
- mv config.sub.new config.sub
-
- if [ -n "${verbose}" ] ; then
- echo Rebuilt config.sub in `pwd`
- fi
- fi
-
- if [ -z "${norecursion}" ] ; then
- # If template is relative path, make it absolute for recurring.
- if echo "${template}" | grep -s '^/' ; then
- true
- else
- template=`pwd`/${template}
- fi
-
- while [ -n "${configdirs}" ] ; do
- # set configdir to car of configdirs, configdirs to cdr of configdirs
- set ${configdirs}; configdir=$1; shift; configdirs=$*
-
- if [ "`echo ${configdir}.*`" != "${configdir}.*" ] ; then
- targetspecificdirs=${configdir}.*
- else
- targetspecificdirs=
- fi
-
- for i in ${configdir} ${targetspecificdirs} ; do
- if [ -d $i ] ; then
- if [ -r $i/configure ] ; then
- (cd $i ;
- ./configure +template=${template} ${verbose})
- else
- echo Warning: No configure script in `pwd`/$i
- fi
- else
- if [ -n "${verbose}" ] ; then
- echo Warning: directory $i is missing.
- fi
- fi
- done
- done
- fi
-
- exit 0
-fi
-
-# some sanity checks on configure.in
-if [ -z "${srctrigger}" ] ; then
- echo Warning: srctrigger not set in configure.in. `pwd` not configured.
- exit 1
-fi
-
-for host in ${hosts} ; do
- # Default other arg
- if [ -z "${targets}" -o -n "${defaulttargets}" ] ; then
- targets=${host}
- defaulttargets=true
- fi
-
- host_alias=${host}
-
- result=`/bin/sh ./config.sub ${host}`
- host_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
- host_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
- host_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
- host=${host_cpu}-${host_vendor}-${host_os}
- host_makefile_frag=config/hmake-${host}
-
-#### configure.in per-host parts come in here.
-
-if [ "${host_os}" = "posix" ] ; then
- bfd_host=posix
-else
- case "${host_cpu}" in
- rs6000) bfd_host=aix ;;
- mips)
- case "${host_vendor}" in
- dec) bfd_host=dec3100 ;;
- sgi) bfd_host=irix3 ;;
- esac
- ;;
- m88k)
- case "${host_vendor}" in
- *)
- case "${host_os}" in
- dgux) bfd_host=dgux ;;
- esac
- ;;
- esac
- ;;
- m68k)
- case "${host_vendor}" in
- cbm)
- case ${host_os} in
- amigados) bfd_host=amigados ;;
- svr4) bfd_host=amix ;;
- esac
- ;;
- hp)
- case "${host_os}" in
- hpux) bfd_host=hp9000 ;;
- bsd) bfd_host=hp300bsd ;;
- esac
- ;;
- sony) bfd_host=news ;;
- sun) bfd_host=sun3 ;;
- esac
- ;;
-
- i386)
- case "${host_vendor}" in
- *)
- case "${host_os}" in
- sysv) bfd_host=i386v ;;
- esac
- ;;
- esac
- ;;
-
- sparc)
- case "${host_vendor}" in
- sun) bfd_host=sun4 ;;
- esac
- ;;
-
- rtpc) bfd_host=rtbsd
- ;;
-
- a29k) bfd_host=ultra3
- ;;
-
- tahoe)
- bfd_host=${host_cpu}
- ;;
- vax)
- case "${host_os}" in
- ultrix) bfd_host=vaxult ;;
- *) bfd_host=vax ;;
- esac
- ;;
- esac
-fi
-
-if [ ! -f config/h-${bfd_host} ] ; then
- echo '***' BFD does not support host ${host}: no file config/h-${bfd_host}
- exit 1
-fi
-
-host_makefile_frag=config/h-${bfd_host}
-
-## end of per-host part.
-
- for target in ${targets} ; do
-
- target_alias=${target}
- result=`/bin/sh ./config.sub ${target}`
- target_cpu=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
- target_vendor=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\2/'`
- target_os=`echo $result | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\3/'`
- target=${target_cpu}-${target_vendor}-${target_os}
- target_makefile_frag=config/tmake-${target}
-
-#### configure.in per-target parts come in here.
-
-case "${target_vendor}" in
-aout | coff | bout | elf) bfd_target=${target_cpu}-${target_vendor} ;;
-sony) bfd_target=news ;;
-intel) bfd_target=${target_cpu}-coff ;;
-cbm) bfd_target=${target_cpu}-elf ;;
-
-hitachi)
- case "${target_cpu}" in
- h8300) bfd_target=h8300-ieee ;;
- *) echo "bad hitachi cpu" ;;
- esac
- ;;
-
-
-wrs)
- case "${target_cpu}" in
- i960) bfd_target=i960-bout ;;
- m68k) bfd_target=m68k-aout ;;
- esac
- ;;
-sun)
- case "${target_cpu}" in
- m68k) bfd_target=m68k-aout ;;
- sparc) bfd_target=sparc-aout ;;
- esac
- ;;
-dec)
- case "${target_cpu}" in
- mips) bfd_target=dec3100 ;;
- vax) bfd_target=vax ;;
- esac
- ;;
-hp)
- case "${target_cpu}" in
- m68k)
- case "${target_os}" in
- hpux) bfd_target=hp9000 ;;
- bsd) bfd_target=hp300bsd ;;
- esac
- ;;
- esac
- ;;
-sgi)
- case "${target_cpu}" in
- mips)
- bfd_target=irix3 ;;
- esac
- ;;
-none|nyu)
- case "${target_cpu}" in
- i386) bfd_target=i386-coff ;;
- a29k) case "${target_os}" in
- aout) bfd_target=a29k-aout ;;
- coff) bfd_target=a29k-coff ;;
- sym1) bfd_target=a29k-coff ;;
- esac
- ;;
- tahoe | vax) bfd_target=${target_cpu} ;;
- esac
- ;;
-*)
- case "${target_cpu}" in
- tahoe | vax) bfd_target=${target_cpu} ;;
- esac
- ;;
-esac
-
-if [ ! -f config/t-${bfd_target} ] ; then
- echo '***' BFD does not support target ${target}: no file config/t-${bfd_target}
- exit 1
-fi
-
-target_makefile_frag=config/t-${bfd_target}
-
-files=
-links=
-## end of per-target part.
-
- # Temporarily, we support only direct subdir builds.
- hostsubdir=H-${host_alias}
- targetsubdir=T-${target_alias}
-
- if [ -n "${removing}" ] ; then
- if [ -n "${subdirs}" ] ; then
- if [ -d "${hostsubdir}" ] ; then
- rm -rf ${hostsubdir}/${targetsubdir}
-
- if [ -z "`(ls ${hostsubdir}) 2>&1 | grep Target- | grep -v Target-independent`" ] ; then
- rm -rf ${hostsubdir}
- fi
- else
- echo Warning: no `pwd`/${hostsubdir} to remove.
- fi
- else
- rm -f ${Makefile} config.status ${links}
- fi
- else
- if [ -n "${subdirs}" ] ; then
- # check for existing status before allowing forced subdirs.
- if [ -f ${Makefile} ] ; then
- echo '***' "${Makefile} already exists in source directory. `pwd` not configured." 1>&2
- exit 1
- fi
-
- if [ ! -d ${hostsubdir} ] ; then mkdir ${hostsubdir} ; fi
- cd ${hostsubdir}
-
- if [ ! -d ${targetsubdir} ] ; then
- if [ -z "${commontargets}" ] ; then
- mkdir ${targetsubdir}
- else
- if [ ! -d Target-independent ] ; then
- mkdir Target-independent
- fi
-
- ${symbolic_link} Target-independent ${targetsubdir}
- fi # if target independent
- fi # if no target dir yet
-
- cd ${targetsubdir}
-
- srcdir=../..
- else
- # if not subdir builds, then make sure none exist.
- if [ -n "`(ls .) 2>&1 | grep Host-`" ] ; then
- echo '***' "Configured subdirs exist. `pwd` not configured." 1>&2
- exit 1
- fi
- fi
-
- # Find the source files, if location was not specified.
- if [ -z "${srcdir}" ] ; then
- srcdirdefaulted=1
- srcdir=.
- if [ -n "${srctrigger}" -a ! -r ${srctrigger} ] ; then
- srcdir=..
- fi
- fi
-
- if [ -n "${srctrigger}" -a ! -r ${srcdir}/${srctrigger} ] ; then
- if [ -z "${srcdirdefaulted}" ] ; then
- echo '***' "${progname}: Can't find ${srcname} sources in `pwd`/${srcdir}" 1>&2
- else
- echo '***' "${progname}: Can't find ${srcname} sources in `pwd`/. or `pwd`/.." 1>&2
- fi
-
- echo '***' \(At least ${srctrigger} is missing.\) 1>&2
- exit 1
- fi
-
- # Set up the list of links to be made.
- # ${links} is the list of link names, and ${files} is the list of names to link to.
-
- # Make the links.
- while [ -n "${files}" ] ; do
- # set file to car of files, files to cdr of files
- set ${files}; file=$1; shift; files=$*
- set ${links}; link=$1; shift; links=$*
-
- if [ ! -r ${srcdir}/${file} ] ; then
- echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2
- echo '***' "since the file \"${file}\" does not exist." 1>&2
- exit 1
- fi
-
- ${remove} -f ${link}
- rm -f config.status
- # Make a symlink if possible, otherwise try a hard link
- ${symbolic_link} ${srcdir}/${file} ${link} 2>/dev/null || ${hard_link} ${srcdir}/${file} ${link}
-
- if [ ! -r ${link} ] ; then
- echo '***' "${progname}: unable to link \"${link}\" to \"${srcdir}/${file}\"." 1>&2
- exit 1
- fi
-
- if [ -n "${verbose}" ] ; then
- echo "Linked \"${link}\" to \"${srcdir}/${file}\"."
- fi
- done
-
- # Create a .gdbinit file which runs the one in srcdir
- # and tells GDB to look there for source files.
-
- case ${srcdir} in
- .)
- ;;
- *)
- echo "dir ." > .gdbinit
- echo "dir ${srcdir}" >> .gdbinit
- echo "source ${srcdir}/.gdbinit" >> .gdbinit
- ;;
- esac
-
- # Install a makefile, and make it set VPATH
- # if necessary so that the sources are found.
- # Also change its value of srcdir.
-
- # FIXME-someday: This business of always writing to .tem and mv back
- # is so that I don't screw things up while developing. Once this
- # template is stable, these should be optimized. xoxorich.
-
- # Define macro CROSS_COMPILE in compilation if this is a cross-compiler.
- if [ "${host}" != "${target}" ] ; then
- echo "CROSS=-DCROSS_COMPILE" > ${Makefile}
- echo "ALL=start.encap" >> ${Makefile}
- else
- echo "ALL=all.internal" > ${Makefile}
- fi
-
- # set target, host, VPATH
- echo "host_alias = ${host_alias}" >> ${Makefile}
- echo "host_cpu = ${host_cpu}" >> ${Makefile}
- echo "host_vendor = ${host_vendor}" >> ${Makefile}
- echo "host_os = ${host_os}" >> ${Makefile}
-
- echo "target_alias = ${target_alias}" >> ${Makefile}
- echo "target_cpu = ${target_cpu}" >> ${Makefile}
- echo "target_vendor = ${target_vendor}" >> ${Makefile}
- echo "target_os = ${target_os}" >> ${Makefile}
-
- if [ -n "${subdirs}" ] ; then
- echo "subdir = /${hostsubdir}/${targetsubdir}" >> ${Makefile}
- else
- echo "subdir =" >> ${Makefile}
- fi
-
- # echo "workdir = `pwd`" >> ${Makefile}
- echo "VPATH = ${srcdir}" >> ${Makefile}
-
- # add "Makefile.in" (or whatever it's called)
- cat ${srcdir}/${Makefile_in} >> ${Makefile}
-
- # Conditionalize the makefile for this host.
- if [ -f ${srcdir}/${host_makefile_frag} ] ; then
- (echo "host_makefile_frag = ${srcdir}/${host_makefile_frag}" ;
- sed -e "/^####/ r ${srcdir}/${host_makefile_frag}" ${Makefile}) > Makefile.tem
- mv Makefile.tem ${Makefile}
- fi
-
- # Conditionalize the makefile for this target.
- if [ -f ${srcdir}/${target_makefile_frag} ] ; then
- (echo "target_makefile_frag = ${srcdir}/${target_makefile_frag}" ;
- sed -e "/^####/ r ${srcdir}/${target_makefile_frag}" ${Makefile}) > Makefile.tem
- mv Makefile.tem ${Makefile}
- fi
-
- # set srcdir
- sed "s@^srcdir = \.@srcdir = ${srcdir}@" ${Makefile} > Makefile.tem
- mv Makefile.tem ${Makefile}
-
- # set destdir
- if [ -n "${destdir}" ] ; then
- sed "s:^destdir =.*$:destdir = ${destdir}:" ${Makefile} > Makefile.tem
- mv Makefile.tem ${Makefile}
- fi
-
- # reset SUBDIRS
- sed "s:^SUBDIRS =.*$:SUBDIRS = ${configdirs}:" ${Makefile} > Makefile.tem
- mv Makefile.tem ${Makefile}
-
- # reset NONSUBDIRS
- sed "s:^NONSUBDIRS =.*$:NONSUBDIRS = ${noconfigdirs}:" ${Makefile} > Makefile.tem
- mv Makefile.tem ${Makefile}
-
- using=
- if [ -f ${srcdir}/${host_makefile_frag} ] ; then
- using=" using \"${host_makefile_frag}\""
- fi
-
- # remove any form feeds.
- sed -e "s/ //" ${Makefile} > Makefile.tem
- mv Makefile.tem ${Makefile}
-
- if [ -f ${srcdir}/${target_makefile_frag} ] ; then
- if [ -z "${using}" ] ; then
- andusing=" using \"${target_makefile_frag}\""
- else
- andusing="${using} and \"${target_makefile_frag}\""
- fi
- else
- andusing=${using}
- fi
-
- if [ -n "${verbose}" -o -z "${recurring}" ] ; then
- echo "Created \"${Makefile}\"" in `pwd`${andusing}.
- fi
-
-#### configure.in post-target parts come in here.
-
-## end of post-target part.
-
- # describe the chosen configuration in config.status.
- # Make that file a shellscript which will reestablish
- # the same configuration. Used in Makefiles to rebuild
- # Makefiles.
-
- echo "#!/bin/sh
-# ${srcname} was configured as follows:
-${srcdir}/configure" ${arguments} `if [ -z "${norecursion}" ] ; then echo +norecursion ; else true ; fi` > config.status
- chmod a+x config.status
-
- originaldir=`pwd`
- cd ${srcdir}
- fi
-
- # If there are subdirectories, then recurse.
- if [ -z "${norecursion}" -a -n "${configdirs}" ] ; then
- for configdir in ${configdirs} ; do
- if [ -n "${verbose}" ] ; then
- echo Configuring ${configdir}...
- fi
-
- if [ -d ${configdir} ] ; then
- (cd ${configdir} ;
- ./configure +recurring ${host_alias} +target=${target_alias} \
- ${verbose} ${subdirs} ${removing} +destdir=${destdir}) \
- | sed 's/^/ /'
- else
- if [ -n "${verbose}" ] ; then
- echo Warning: directory \"${configdir}\" is missing.
- fi
- fi
- done
- fi
- done # for each target
-
- # Now build a Makefile for this host.
- if [ -n "${subdirs}" -a ! -n "${removing}" ] ; then
- cd ${hostsubdir}
- cat > GNUmakefile << E!O!F
-# Makefile generated by configure for host ${host_alias}.
-
-ALL := $(shell ls -d Target-*)
-
-%:
- $(foreach subdir,$(ALL),$(MAKE) -C $(subdir) \$@ &&) true
-
-all:
-E!O!F
- cd ..
- fi
-done # for each host
-
-exit 0
-
-#
-# Local Variables:
-# fill-column: 131
-# End:
-#
-
-# end of configure
diff --git a/bfd/cplus-dem.c b/bfd/cplus-dem.c
deleted file mode 100755
index edb9e39..0000000
--- a/bfd/cplus-dem.c
+++ /dev/null
@@ -1,942 +0,0 @@
-/* Demangler for GNU C++
- Copyright (C) 1989 Free Software Foundation, Inc.
- written by James Clark (jjc@jclark.uucp)
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 1, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* This is for g++ 1.36.1 (November 6 version). It will probably
- require changes for any other version.
-
- Modified for g++ 1.36.2 (November 18 version). */
-
-/* This file exports one function
-
- char *cplus_demangle (const char *name)
-
- If `name' is a mangled function name produced by g++, then
- a pointer to a malloced string giving a C++ representation
- of the name will be returned; otherwise NULL will be returned.
- It is the caller's responsibility to free the string which
- is returned.
-
- For example,
-
- cplus_demangle ("_foo__1Ai")
-
- returns
-
- "A::foo(int)"
-
- This file imports xmalloc and xrealloc, which are like malloc and
- realloc except that they generate a fatal error if there is no
- available memory. */
-
-/* #define nounderscore 1 /* define this is names don't start with _ */
-
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-
-/* #include "misc.h" */
-
-#ifdef USG
-#include <memory.h>
-#else
-#define memcpy(s1, s2, n) strncpy(s1, s2, n)
-#define memcmp(s1, s2, n) strncmp(s1, s2, n)
-#define strchr(s, c) index(s, c)
-#endif
-
-#ifndef __STDC__
-#define const
-#endif
-
-#ifdef __STDC__
-extern char *cplus_demangle (const char *type);
-#else
-extern char *cplus_demangle ();
-#endif
-
-static char **typevec = 0;
-static int ntypes = 0;
-static int typevec_size = 0;
-
-static struct {
- const char *in;
- const char *out;
-} optable[] = {
- "new", " new",
- "delete", " delete",
- "ne", "!=",
- "eq", "==",
- "ge", ">=",
- "gt", ">",
- "le", "<=",
- "lt", "<",
- "plus", "+",
- "minus", "-",
- "mult", "*",
- "convert", "+", /* unary + */
- "negate", "-", /* unary - */
- "trunc_mod", "%",
- "trunc_div", "/",
- "truth_andif", "&&",
- "truth_orif", "||",
- "truth_not", "!",
- "postincrement", "++",
- "postdecrement", "--",
- "bit_ior", "|",
- "bit_xor", "^",
- "bit_and", "&",
- "bit_not", "~",
- "call", "()",
- "cond", "?:",
- "alshift", "<<",
- "arshift", ">>",
- "component", "->",
- "indirect", "*",
- "method_call", "->()",
- "addr", "&", /* unary & */
- "array", "[]",
- "nop", "", /* for operator= */
-};
-
-/* Beware: these aren't '\0' terminated. */
-
-typedef struct {
- char *b; /* pointer to start of string */
- char *p; /* pointer after last character */
- char *e; /* pointer after end of allocated space */
-} string;
-
-#ifdef __STDC__
-static void string_need (string *s, int n);
-static void string_delete (string *s);
-static void string_init (string *s);
-static void string_clear (string *s);
-static int string_empty (string *s);
-static void string_append (string *p, const char *s);
-static void string_appends (string *p, string *s);
-static void string_appendn (string *p, const char *s, int n);
-static void string_prepend (string *p, const char *s);
-#if 0
-static void string_prepends (string *p, string *s);
-#endif
-static void string_prependn (string *p, const char *s, int n);
-static int get_count (const char **type, int *count);
-static int do_args (const char **type, string *decl);
-static int do_type (const char **type, string *result);
-static int do_arg (const char **type, string *result);
-static int do_args (const char **type, string *decl);
-static void munge_function_name (string *name);
-#else
-static void string_need ();
-static void string_delete ();
-static void string_init ();
-static void string_clear ();
-static int string_empty ();
-static void string_append ();
-static void string_appends ();
-static void string_appendn ();
-static void string_prepend ();
-static void string_prepends ();
-static void string_prependn ();
-static int get_count ();
-static int do_args ();
-static int do_type ();
-static int do_arg ();
-static int do_args ();
-static void munge_function_name ();
-#endif
-
-char *
-cplus_demangle (type)
- const char *type;
-{
- string decl;
- int n;
- int success = 0;
- int constructor = 0;
- int const_flag = 0;
- int i;
- const char *p, *premangle;
-
- if (type == NULL || *type == '\0')
- return NULL;
-#ifndef nounderscore
- if (*type++ != '_')
- return NULL;
-#endif
- p = type;
- while (*p != '\0' && !(*p == '_' && p[1] == '_'))
- p++;
- if (*p == '\0')
- {
- /* destructor */
- if (type[0] == '_' && type[1] == '$' && type[2] == '_')
- {
- unsigned int l = (strlen (type) - 3)*2 + 3 + 2 + 1;
- char *tem = (char *) zalloc (l);
- strcpy (tem, type + 3);
- strcat (tem, "::~");
- strcat (tem, type + 3);
- strcat (tem, "()");
- return tem;
- }
- /* static data member */
- if (*type != '_' && (p = (char *) strchr (type, '$')) != NULL)
- {
- int n = strlen (type) + 2;
- char *tem = (char *) xmalloc (n);
- memcpy (tem, type, p - type);
- strcpy (tem + (p - type), "::");
- strcpy (tem + (p - type) + 2, p + 1);
- return tem;
- }
- /* virtual table */
- if (type[0] == '_' && type[1] == 'v' && type[2] == 't' && type[3] == '$')
- {
- int n = strlen (type + 4) + 14 + 1;
- char *tem = (char *) xmalloc (n);
- strcpy (tem, type + 4);
- strcat (tem, " virtual table");
- return tem;
- }
- return NULL;
- }
-
- string_init (&decl);
-
- if (p == type)
- {
- if (!isdigit (p[2]))
- {
- string_delete (&decl);
- return NULL;
- }
- constructor = 1;
- }
- else
- {
- string_appendn (&decl, type, p - type);
- munge_function_name (&decl);
- }
- p += 2;
-
- premangle = p;
- switch (*p)
- {
- case 'C':
- /* a const member function */
- if (!isdigit (p[1]))
- {
- string_delete (&decl);
- return NULL;
- }
- p += 1;
- const_flag = 1;
- /* fall through */
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- n = 0;
- do
- {
- n *= 10;
- n += *p - '0';
- p += 1;
- }
- while (isdigit (*p));
- if (strlen (p) < n)
- {
- string_delete (&decl);
- return NULL;
- }
- if (constructor)
- {
- string_appendn (&decl, p, n);
- string_append (&decl, "::");
- string_appendn (&decl, p, n);
- }
- else
- {
- string_prepend (&decl, "::");
- string_prependn (&decl, p, n);
- }
-#ifndef LONGERNAMES
- p = premangle;
-#else
- p += n;
-#endif
- success = do_args (&p, &decl);
- if (const_flag)
- string_append (&decl, " const");
- break;
- case 'F':
- p += 1;
- success = do_args (&p, &decl);
- break;
- }
-
- for (i = 0; i < ntypes; i++)
- if (typevec[i] != NULL)
- free (typevec[i]);
- ntypes = 0;
- if (typevec != NULL)
- {
- free ((char *)typevec);
- typevec = NULL;
- typevec_size = 0;
- }
-
- if (success)
- {
- string_appendn (&decl, "", 1);
- return decl.b;
- }
- else
- {
- string_delete (&decl);
- return NULL;
- }
-}
-
-static int
-get_count (type, count)
- const char **type;
- int *count;
-{
- if (!isdigit (**type))
- return 0;
- *count = **type - '0';
- *type += 1;
- /* see flush_repeats in cplus-method.c */
- if (isdigit (**type))
- {
- const char *p = *type;
- int n = *count;
- do
- {
- n *= 10;
- n += *p - '0';
- p += 1;
- }
- while (isdigit (*p));
- if (*p == '_')
- {
- *type = p + 1;
- *count = n;
- }
- }
- return 1;
-}
-
-/* result will be initialised here; it will be freed on failure */
-
-static int
-do_type (type, result)
- const char **type;
- string *result;
-{
- int n;
- int done;
- int non_empty = 0;
- int success;
- string decl;
- const char *remembered_type;
-
- string_init (&decl);
- string_init (result);
-
- done = 0;
- success = 1;
- while (success && !done)
- {
- int member;
- switch (**type)
- {
- case 'P':
- *type += 1;
- string_prepend (&decl, "*");
- break;
-
- case 'R':
- *type += 1;
- string_prepend (&decl, "&");
- break;
-
- case 'T':
- *type += 1;
- if (!get_count (type, &n) || n >= ntypes)
- success = 0;
- else
- {
- remembered_type = typevec[n];
- type = &remembered_type;
- }
- break;
-
- case 'F':
- *type += 1;
- if (!string_empty (&decl) && decl.b[0] == '*')
- {
- string_prepend (&decl, "(");
- string_append (&decl, ")");
- }
- if (!do_args (type, &decl) || **type != '_')
- success = 0;
- else
- *type += 1;
- break;
-
- case 'M':
- case 'O':
- {
- int constp = 0;
- int volatilep = 0;
-
- member = **type == 'M';
- *type += 1;
- if (!isdigit (**type))
- {
- success = 0;
- break;
- }
- n = 0;
- do
- {
- n *= 10;
- n += **type - '0';
- *type += 1;
- }
- while (isdigit (**type));
- if (strlen (*type) < n)
- {
- success = 0;
- break;
- }
- string_append (&decl, ")");
- string_prepend (&decl, "::");
- string_prependn (&decl, *type, n);
- string_prepend (&decl, "(");
- *type += n;
- if (member)
- {
- if (**type == 'C')
- {
- *type += 1;
- constp = 1;
- }
- if (**type == 'V')
- {
- *type += 1;
- volatilep = 1;
- }
- if (*(*type)++ != 'F')
- {
- success = 0;
- break;
- }
- }
- if ((member && !do_args (type, &decl)) || **type != '_')
- {
- success = 0;
- break;
- }
- *type += 1;
- if (constp)
- {
- if (non_empty)
- string_append (&decl, " ");
- else
- non_empty = 1;
- string_append (&decl, "const");
- }
- if (volatilep)
- {
- if (non_empty)
- string_append (&decl, " ");
- else
- non_empty = 1;
- string_append (&decl, "volatilep");
- }
- break;
- }
-
- case 'C':
- if ((*type)[1] == 'P')
- {
- *type += 1;
- if (!string_empty (&decl))
- string_prepend (&decl, " ");
- string_prepend (&decl, "const");
- break;
- }
-
- /* fall through */
- default:
- done = 1;
- break;
- }
- }
-
- done = 0;
- non_empty = 0;
- while (success && !done)
- {
- switch (**type)
- {
- case 'C':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- else
- non_empty = 1;
- string_append (result, "const");
- break;
- case 'U':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- else
- non_empty = 1;
- string_append (result, "unsigned");
- break;
- case 'V':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- else
- non_empty = 1;
- string_append (result, "volatile");
- break;
- default:
- done = 1;
- break;
- }
- }
-
- if (success)
- switch (**type)
- {
- case '\0':
- case '_':
- break;
- case 'v':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "void");
- break;
- case 'l':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "long");
- break;
- case 'i':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "int");
- break;
- case 's':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "short");
- break;
- case 'c':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "char");
- break;
- case 'r':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "long double");
- break;
- case 'd':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "double");
- break;
- case 'f':
- *type += 1;
- if (non_empty)
- string_append (result, " ");
- string_append (result, "float");
- break;
- case 'G':
- *type += 1;
- if (!isdigit (**type))
- {
- success = 0;
- break;
- }
- /* fall through */
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- n = 0;
- do
- {
- n *= 10;
- n += **type - '0';
- *type += 1;
- }
- while (isdigit (**type));
- if (strlen (*type) < n)
- {
- success = 0;
- break;
- }
- if (non_empty)
- string_append (result, " ");
- string_appendn (result, *type, n);
- *type += n;
- break;
- default:
- success = 0;
- break;
- }
-
- if (success)
- {
- if (!string_empty (&decl))
- {
- string_append (result, " ");
- string_appends (result, &decl);
- }
- string_delete (&decl);
- return 1;
- }
- else
- {
- string_delete (&decl);
- string_delete (result);
- return 0;
- }
-}
-
-/* `result' will be initialised in do_type; it will be freed on failure */
-
-static int
-do_arg (type, result)
- const char **type;
- string *result;
-{
- char *tem;
- int len;
- const char *start;
- const char *end;
-
- start = *type;
- if (!do_type (type, result))
- return 0;
- end = *type;
- if (ntypes >= typevec_size)
- {
- if (typevec_size == 0)
- {
- typevec_size = 3;
- typevec = (char **) xmalloc (sizeof (char*)*typevec_size);
- }
- else
- {
- typevec_size *= 2;
- typevec = (char **) realloc ((char *)typevec, sizeof (char*)*typevec_size);
- }
- }
- len = end - start;
- tem = (char *) xmalloc (len + 1);
- memcpy (tem, start, len);
- tem[len] = '\0';
- typevec[ntypes++] = tem;
- return 1;
-}
-
-/* `decl' must be already initialised, usually non-empty;
- it won't be freed on failure */
-
-static int
-do_args (type, decl)
- const char **type;
- string *decl;
-{
- string arg;
- int need_comma = 0;
- int dont_want_first;
-
-#ifndef LONGERNAMES
- dont_want_first = 1;
-#else
- dont_want_first = 0;
-#endif
-
- string_append (decl, "(");
-
- while (**type != '_' && **type != '\0' && **type != 'e' && **type != 'v')
- {
- if (**type == 'N')
- {
- int r;
- int t;
- *type += 1;
- if (!get_count (type, &r) || !get_count (type, &t) || t >= ntypes)
- return 0;
- while (--r >= 0)
- {
- const char *tem = typevec[t];
- if (need_comma)
- string_append (decl, ", ");
- if (!do_arg (&tem, &arg))
- return 0;
- string_appends (decl, &arg);
- string_delete (&arg);
- need_comma = 1;
- }
- }
- else
- {
- if (need_comma)
- string_append (decl, ", ");
- if (!do_arg (type, &arg))
- return 0;
- if (dont_want_first)
- dont_want_first = 0;
- else
- {
- string_appends (decl, &arg);
- need_comma = 1;
- }
- string_delete (&arg);
- }
- }
-
- if (**type == 'v')
- *type += 1;
- else if (**type == 'e')
- {
- *type += 1;
- if (need_comma)
- string_append (decl, ",");
- string_append (decl, "...");
- }
-
- string_append (decl, ")");
- return 1;
-}
-
-static void
-munge_function_name (name)
- string *name;
-{
- if (!string_empty (name) && name->p - name->b >= 3
- && name->b[0] == 'o' && name->b[1] == 'p' && name->b[2] == '$')
- {
- int i;
- /* see if it's an assignment expression */
- if (name->p - name->b >= 10 /* op$assign_ */
- && memcmp (name->b + 3, "assign_", 7) == 0)
- {
- for (i = 0; i < sizeof (optable)/sizeof (optable[0]); i++)
- {
- int len = name->p - name->b - 10;
- if (strlen (optable[i].in) == len
- && memcmp (optable[i].in, name->b + 10, len) == 0)
- {
- string_clear (name);
- string_append (name, "operator");
- string_append (name, optable[i].out);
- string_append (name, "=");
- return;
- }
- }
- }
- else
- {
- for (i = 0; i < sizeof (optable)/sizeof (optable[0]); i++)
- {
- int len = name->p - name->b - 3;
- if (strlen (optable[i].in) == len
- && memcmp (optable[i].in, name->b + 3, len) == 0)
- {
- string_clear (name);
- string_append (name, "operator");
- string_append (name, optable[i].out);
- return;
- }
- }
- }
- return;
- }
- else if (!string_empty (name) && name->p - name->b >= 5
- && memcmp (name->b, "type$", 5) == 0)
- {
- /* type conversion operator */
- string type;
- const char *tem = name->b + 5;
- if (do_type (&tem, &type))
- {
- string_clear (name);
- string_append (name, "operator ");
- string_appends (name, &type);
- string_delete (&type);
- return;
- }
- }
-}
-
-/* a mini string-handling package */
-
-static void
-string_need (s, n)
- string *s;
- int n;
-{
- if (s->b == NULL)
- {
- if (n < 32)
- n = 32;
- s->p = s->b = (char *) xmalloc (n);
- s->e = s->b + n;
- }
- else if (s->e - s->p < n)
- {
- int tem = s->p - s->b;
- n += tem;
- n *= 2;
- s->b = (char *) realloc (s->b, n);
- s->p = s->b + tem;
- s->e = s->b + n;
- }
-}
-
-static void
-string_delete (s)
- string *s;
-{
- if (s->b != NULL)
- {
- free (s->b);
- s->b = s->e = s->p = NULL;
- }
-}
-
-static void
-string_init (s)
- string *s;
-{
- s->b = s->p = s->e = NULL;
-}
-
-static void
-string_clear (s)
- string *s;
-{
- s->p = s->b;
-}
-
-static int
-string_empty (s)
- string *s;
-{
- return s->b == s->p;
-}
-
-static void
-string_append (p, s)
- string *p;
- const char *s;
-{
- int n;
- if (s == NULL || *s == '\0')
- return;
- n = strlen (s);
- string_need (p, n);
- memcpy (p->p, s, n);
- p->p += n;
-}
-
-static void
-string_appends (p, s)
- string *p, *s;
-{
- int n;
- if (s->b == s->p)
- return;
- n = s->p - s->b;
- string_need (p, n);
- memcpy (p->p, s->b, n);
- p->p += n;
-}
-
-static void
-string_appendn (p, s, n)
- string *p;
- const char *s;
- int n;
-{
- if (n == 0)
- return;
- string_need (p, n);
- memcpy (p->p, s, n);
- p->p += n;
-}
-
-static void
-string_prepend (p, s)
- string *p;
- const char *s;
-{
- if (s == NULL || *s == '\0')
- return;
- string_prependn (p, s, strlen (s));
-}
-
-static void
-string_prependn (p, s, n)
- string *p;
- const char *s;
- int n;
-{
- char *q;
-
- if (n == 0)
- return;
- string_need (p, n);
- for (q = p->p - 1; q >= p->b; q--)
- q[n] = q[0];
- memcpy (p->b, s, n);
- p->p += n;
-}
diff --git a/bfd/doc/Makefile b/bfd/doc/Makefile
deleted file mode 100755
index 2ac5d43..0000000
--- a/bfd/doc/Makefile
+++ /dev/null
@@ -1,82 +0,0 @@
-.SUFFIXES: .texi .o .c .h .p .ip
-VPATH=..
-.c.texi:
- ./scanit $< $@
-
-.h.texi:
- ./scanit $< $@
-
-.c.p:
- ./scanph $< $@
-
-.h.p:
- ./scanph $< $@
-
-.c.ip:
- ./scanph -i $< $@
-
-# main GDB source directory
-srcdir = ..
-
-TEXIDIR=${srcdir}/../texinfo/fsf
-
-DOCFILES = aoutx.texi archive.texi archures.texi \
- bfd.texi cache.texi coffcode.texi \
- core.texi format.texi libbfd.texi \
- opncls.texi reloc.texi section.texi \
- syms.texi targets.texi init.texi ctor.texi
-
-
-PROTOS = archive.p archures.p bfd.p \
- coffcode.p core.p format.p \
- libbfd.p opncls.p reloc.p \
- section.p syms.p targets.p \
- format.p coffcode.p core.p machines.p init.p
-
-IPROTOS = cache.ip libbfd.ip reloc.ip init.ip archures.ip ctor.ip
-
-# SRCDOC, SRCPROT, SRCIPROT only used to sidestep Sun Make bug in interaction
-# between VPATH and suffix rules. If you use GNU Make, perhaps other Makes,
-# you don't need these three:
-SRCDOC = aoutx.h archive.c archures.c \
- bfd.c cache.c coffcode.h \
- core.c format.c libbfd.c \
- opncls.c reloc.c section.c \
- syms.c targets.c init.c
-
-SRCPROT = archive.c archures.c bfd.c \
- coffcode.h core.c format.c \
- libbfd.c opncls.c reloc.c \
- section.c syms.c targets.c init.c
-
-SRCIPROT = cache.c libbfd.c reloc.c cpu-h8300.c cpu-i960.c archures.c init.c ctor.c
-
-
-docs: protos bfd.info bfd.dvi bfd.ps
-
-protos: $(PROTOS) $(IPROTOS)
- sed -f intobfd bfd-in.h > bfd.h
- sed -f tolibbfd libbfd-in.h > libbfd.h
- sed -f tolibcoff libcoff-in.h > libcoff.h
-
-# Following three rules only for the benefit of Sun Make; see comment above
-$(DOCFILES) : $(SRCDOC)
-$(PROTOS) : $(SRCPROT)
-$(IPROTOS) : $(SRCIPROT)
-
-clean:
- rm -f $(PROTOS) *.p *.ip *.h bfd.?? $(DOCFILES) bfd.dvi bfd.ps *~* *# bfd.???
-
-bfd.info: $(DOCFILES) bfd.texinfo
- makeinfo bfd.texinfo
-
-bfd.dvi: $(DOCFILES) bfd.texinfo
- TEXINPUTS=${TEXIDIR}:.:$$TEXINPUTS tex bfd.texinfo
- texindex bfd.??
- TEXINPUTS=${TEXIDIR}:.:$$TEXINPUTS tex bfd.texinfo
-
-bfd.ps: bfd.dvi
- dvips bfd -o
-
-quickdoc: $(DOCFILES) bfd.texinfo
- TEXINPUTS=${TEXIDIR}:.:$$TEXINPUTS tex bfd.texinfo
diff --git a/bfd/doc/awkscan b/bfd/doc/awkscan
deleted file mode 100755
index 69b0cea..0000000
--- a/bfd/doc/awkscan
+++ /dev/null
@@ -1,12 +0,0 @@
-# NOTE: BEGIN pattern gives errors if other than 1st line;
-# END ditto if other than last.
-BEGIN { print "@c ------------------------------START TEXT FROM " FILENAME }
-#
-# Keep /*doc* blocks (terminated by either */ or *-*/)
-/^\/\*doc\*/,/^\*\/|^\*-\*\//
-#
-# Also keep two kinds of /*proto blocks
-/^\/\*proto\*/,/^\*\/|^\*-\*\//
-/^\/\*proto-internal\*/,/^\*\/|^\*-\*\//
-#
-END { print "@c ------------------------------END TEXT FROM " FILENAME }
diff --git a/bfd/doc/awkscan-ip b/bfd/doc/awkscan-ip
deleted file mode 100755
index 73bd61f..0000000
--- a/bfd/doc/awkscan-ip
+++ /dev/null
@@ -1,8 +0,0 @@
-# Awk filter, 1st filter for BFD internal prototype file extraction
-#
-# keep /*proto-internal blocks
-/^\/\*proto-internal\*/,/^\*\/|^\*-\*\//
-#
-# Apparent bug in sed can discard last line in some situations; therefore
-# make last line harmless.
-END { print "\n" }
diff --git a/bfd/doc/awkscan-p b/bfd/doc/awkscan-p
deleted file mode 100755
index c7fe79f..0000000
--- a/bfd/doc/awkscan-p
+++ /dev/null
@@ -1,8 +0,0 @@
-# Awk filter, 1st filter for BFD prototype file extraction
-#
-# keep /*proto blocks
-/^\/\*proto\*/,/^\*\/|^\*-\*\//
-#
-# Apparent bug in sed can discard last line in some situations; therefore
-# make last line harmless.
-END { print "\n" }
diff --git a/bfd/doc/bfd.info b/bfd/doc/bfd.info
deleted file mode 100644
index 529d69d..0000000
--- a/bfd/doc/bfd.info
+++ /dev/null
@@ -1,67 +0,0 @@
-Info file bfd.info, produced by Makeinfo, -*- Text -*- from input file
-bfd.texinfo.
-
- This file documents the BFD library.
-
- Copyright (C) 1991 Free Software Foundation, Inc.
-
- 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, subject to the
-terms of the GNU General Public License, which includes the provision
-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.
-
-Indirect:
-bfd.info-1: 821
-bfd.info-2: 44533
-bfd.info-3: 89652
-
-Tag Table:
-(Indirect)
-Node: Top823
-Node: Overview1086
-Node: History1985
-Node: How It Works2937
-Node: What BFD Version 1 Can Do4363
-Node: BFD information loss5388
-Node: Mechanism8002
-Node: BFD front end12332
-Node: Memory Usage17576
-Node: Initialization18818
-Node: Sections19432
-Node: Section Input19910
-Node: Section Output21190
-Node: typedef asection22559
-Node: section prototypes27347
-Node: Symbols30865
-Node: Reading Symbols32454
-Node: Writing Symbols33410
-Node: typedef asymbol34939
-Node: symbol handling functions38386
-Node: Archives40232
-Node: Formats41678
-Node: Relocations43795
-Node: typedef arelent44535
-Node: howto manager56584
-Node: Core Files57569
-Node: Targets58466
-Node: bfd_target60218
-Node: Architectures68923
-Node: Opening and Closing76770
-Node: Internal78654
-Node: File Caching81129
-Node: BFD back end83617
-Node: What to Put Where83810
-Node: aout83946
-Node: coff89654
-Node: Index100603
-
-End Tag Table
diff --git a/bfd/doc/bfdinfo b/bfd/doc/bfdinfo
deleted file mode 100755
index 5bb06ff..0000000
--- a/bfd/doc/bfdinfo
+++ /dev/null
@@ -1,1281 +0,0 @@
-Info file bfdinfo, produced by Makeinfo, -*- Text -*- from input file
-bfd.texinfo.
-
- This file documents the BFD library.
-
- Copyright (C) 1991 Free Software Foundation, Inc.
-
- 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, subject to the
-terms of the GNU General Public License, which includes the provision
-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.
-
-
-File: bfdinfo, Node: Top, Next: Overview, Prev: (dir), Up: (dir)
-
- This file documents the binary file descriptor library libbfd.
-
-* Menu:
-
-* Overview:: Overview of BFD
-* History:: History of BFD
-* Backends:: Backends
-* Porting:: Porting
-* Future:: Future
-* Index:: Index
-
-BFD body:
-* Memory usage::
-* Sections::
-* Symbols::
-* Archives::
-* Formats::
-* Relocations::
-* Core Files::
-* Targets::
-* Architecturs::
-* Opening and Closing::
-* Internal::
-* File Caching::
-
-BFD backends:
-* a.out backends::
-* coff backends::
-
-
-File: bfdinfo, Node: Overview, Next: History, Prev: Top, Up: Top
-
-Introduction
-************
-
- Simply put, BFD is a package which allows applications 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.
-
- BFD is split into two parts; the front end and the many back ends.
-
- * memory, and various canonical data structures. The front end also
- decides which back end to use, and when to call back end routines.
-
- * 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.
-
-
-File: bfdinfo, Node: History, Next: How It Works, Prev: Overview, Up: Top
-
-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
-Cygnus 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 Steve Chamberlain (steve@cygnus.com),
-John Gilmore (gnu@cygnus.com), K. Richard Pixley (rich@cygnus.com) and
-David Wallace (gumby@cygnus.com) at Cygnus Support in Palo Alto,
-California.
-
-
-File: bfdinfo, Node: How It Works, Next: History, Prev: Porting, Up: Top
-
-How It Works
-============
-
- 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 sucessfully 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
-`include/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 `bfd'_.
-
- For example, this sequence would do 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);
- }
-
- lisp
-
- The abstraction used within BFD is that an object file has a header,
-a number of sections containing raw data, a set of relocations, and
-some symbol information. 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.
-
-What BFD Version 1 Can Do
-=========================
-
- As different information from the 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 the memory pointer to the relevant BFD back end
-routine 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 which takes the newly created symbol
-table and converts it into the chosen output format.
-
-
-File: bfdinfo, Node: BFD information loss, Next: Mechanism, Prev: BFD outline, Up: BFD
-
-Information Loss
-----------------
-
- *Some information is lost due to the nature of the file format.*
-The output targets supported by BFD do not provide identical
-facilities, and information which may 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
-(eg `a.out') or has sections without names (eg 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, this mechanism is very
-useful. There is no information lost for this reason 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: bfdinfo, Node: Mechanism, Prev: BFD information loss, Up: BFD
-
-Mechanism
----------
-
- The greatest potential for loss of information is when there is
-least overlap between the information provided by the source format,
-that stored by the canonical format, and the information needed by the
-destination format. A brief description of the canonical form may help
-you appreciate what kinds of data you can count on preserving across
-conversions.
-
-*files*
- Information on target machine architecture, particular
- implementation and format type are stored on a per-file basis.
- Other information includes a demand pageable bit and a write
- protected bit. Note that 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 linked with one another.
-
-*sections*
- Each section in the input file contains the name of the section,
- the original address in the object file, various flags, size and
- alignment information and pointers into other BFD data structures.
-
-*symbols*
- Each symbol contains a pointer to 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, the back end relocates all
- symbols to make them relative to the base of the section where
- they were defined. This ensures that each symbol points to its
- containing section. Each symbol also has a varying amount of
- hidden data to contain private data for the BFD back end. Since
- the symbol points to the original file, the private data format
- for that symbol is accessible. `gld' 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 effectively by message
- passing through the relocation type descriptor and symbol
- pointer. It allows relocations to be performed on output data
- using a relocation method 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 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 divination of 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: bfdinfo, Node: BFD front end, Next: BFD back end, Prev: Mechanism, Up: Top
-
-BFD front end
-*************
-
-typedef bfd
-===========
-
- Pointers to bfd structs are the cornerstone of any application using
-`libbfd'. References though the BFD and to data in the BFD give the
-entire BFD functionality.
-
- Here is the BFD struct itself. This contains the major data about
-the file, and contains pointers to the rest of the data.
-
- struct _bfd
- {
-
- The filename the application opened the BFD with.
-
- CONST char *filename;
-
- A pointer to the target jump table.
-
- struct bfd_target *xvec;
-
- To avoid dragging too many header files into every file that
-includes `bfd.h', IOSTREAM has been declared as a "char *", and MTIME
-as a "long". Their correct types, to which they are cast when used,
-are "FILE *" and "time_t".
-
- The iostream is the result of an fopen on the filename.
-
- char *iostream;
-
- Is the file being cached *Note File Caching::.
-
- boolean cacheable;
-
- Marks whether there was a default target specified when the BFD was
-opened. This is used to select what matching algorithm to use to chose
-the back end.
-
- boolean target_defaulted;
-
- The caching routines use these to maintain a least-recently-used
-list of BFDs (*note File Caching::.).
-
- struct _bfd *lru_prev, *lru_next;
-
- When a file is closed by the caching routines, BFD retains state
-information on the file here:
-
- file_ptr where;
-
- and here:
-
- boolean opened_once;
-
- boolean mtime_set;
-
- File modified time
-
- long mtime;
-
- Reserved for an unimplemented file locking extension.
-
- int ifd;
-
- The format which belongs to the BFD.
-
- bfd_format format;
-
- The direction the BFD was opened with
-
- enum bfd_direction {no_direction = 0,
- read_direction = 1,
- write_direction = 2,
- both_direction = 3} direction;
-
- Format_specific flags
-
- flagword flags;
-
- 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.
-
- file_ptr origin;
-
- Remember when output has begun, to stop strange things happening.
-
- boolean output_has_begun;
-
- Pointer to linked list of sections
-
- struct sec *sections;
-
- 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
-
- struct symbol_cache_entry **outsymbols;
-
- Architecture of object machine, eg m68k
-
- enum bfd_architecture obj_arch;
-
- Particular machine within arch, e.g. 68010
-
- unsigned long obj_machine;
-
- Stuff only useful for archives:
-
- PTR arelt_data;
- struct _bfd *my_archive;
- struct _bfd *next;
- struct _bfd *archive_head;
- boolean has_armap;
-
- Used by the back end to hold private data.
-
- PTR tdata;
-
- Used by the application to hold private data
-
- PTR usrdata;
-
- Where all the allocated stuff under this BFD goes (*note Memory
-Usage::.).
-
- struct obstack memory;
- };
-
-`bfd_set_start_address'
-.......................
-
- Marks the entry point of an output BFD. Returns `true' on success,
-`false' otherwise.
-
- boolean bfd_set_start_address(bfd *, bfd_vma);
-
-`bfd_get_mtime'
-...............
-
- Return cached file modification time (e.g. as read from archive
-header for archive members, or from file system if we have been called
-before); else determine modify time, cache it, and return it.
-
- long bfd_get_mtime(bfd *);
-
-`stuff'
-.......
-
-
-
- #define bfd_sizeof_headers(abfd, reloc) \
- BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, reloc))
-
- #define bfd_find_nearest_line(abfd, section, symbols, offset, filename_ptr, func, line_ptr) \
- BFD_SEND (abfd, _bfd_find_nearest_line, (abfd, section, symbols, offset, filename_ptr, func, line_ptr))
-
- #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_coff_swap_aux_in(a,e,t,c,i) \
- BFD_SEND (a, _bfd_coff_swap_aux_in, (a,e,t,c,i))
-
- #define bfd_coff_swap_sym_in(a,e,i) \
- BFD_SEND (a, _bfd_coff_swap_sym_in, (a,e,i))
-
- #define bfd_coff_swap_lineno_in(a,e,i) \
- BFD_SEND ( a, _bfd_coff_swap_lineno_in, (a,e,i))
-
- lisp
-
-
-File: bfdinfo, Node: Memory Usage, Next: Sections, Prev: bfd, Up: Top
-
-Memory Usage
-============
-
- BFD keeps all 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 libbfd for the closing file will be thrown away.
-
- BFD will not free anything created by an application, but pointers
-into `bfd' structures will be invalidated on a `bfd_close'; for
-example, after a `bfd_close' the vector passed to
-`bfd_canonicalize_symtab' will still be around, since it has been
-allocated by the application, but the data that it pointed to will be
-lost.
-
- The general rule is not to 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: bfdinfo, Node: Sections, Next: Symbols, Prev: Memory Usage, Up: Top
-
-Sections
-========
-
- Sections are supported in BFD in `section.c'.
-
- The raw data contained within a BFD is maintained through the
-section abstraction. A single BFD may have any number of sections,
-and keeps hold of them by pointing to the first, each one points to
-the next in the list.
-
-* Menu:
-
-* Section Input::
-* Section Output::
-* typedef asection::
-* section prototypes::
-
-
-File: bfdinfo, Node: Section Input, Next: Section Output, Up: Sections
-
-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'.
-
- 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 a supernumary section `COMMON' for each input file's BFD to
-hold information about common storage.
-
- The raw data is not necessarily read in at the same time as 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: bfdinfo, Node: Section Output, Next: typedef asection, Prev: Section Input, Up: Sections
-
-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'.
-
- The linker uses the fields `output_section' and `output_offset' to
-create an output file.
-
- The data to be written comes from input sections attached 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.
-
- Eg to create a section "O", starting at 0x100, 0x123 long,
-containing two subsections, "A" at offset 0x0 (ie at vma 0x100) and
-"B" at offset 0x20 (ie at vma 0x120) the 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 --------|
-
- lisp
-
-
-File: bfdinfo, Node: typedef asection, Next: section prototypes, Prev: Section Output, Up: Sections
-
-typedef asection
-----------------
-
- The shape of a section struct:
-
- typedef struct sec {
-
- 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;
-
- The next section in the list belonging to the BFD, or NULL.
-
- struct sec *next;
-
- The field flags contains attributes of the section. Some of these
-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 loaded. This
-would 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
-would be clear for a .bss section
-
- #define SEC_LOAD 0x002
-
- The section contains data still to be relocated, so there will be
-some relocation information too.
-
- #define SEC_RELOC 0x004
-
- Obsolete
-
- #define SEC_BALIGN 0x008
-
- A signal to the OS that the section contains read only data.
-
- #define SEC_READONLY 0x010
-
- The section contains code only.
-
- #define SEC_CODE 0x020
-
- The section contains data only.
-
- #define SEC_DATA 0x040
-
- The section will reside in ROM.
-
- #define SEC_ROM 0x080
-
- 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 (eg
-`__CTOR_LIST__'), attaches the symbol to it and builds a relocation.
-To build the lists of constructors, all the linker has to to is
-catenate all the sections called `__CTOR_LIST__' and relocte the data
-contained within - exactly the operations it would peform on standard
-data.
-
- #define SEC_CONSTRUCTOR 0x100
-
- The section is a constuctor, and should be placed at the end of the
-..
-
- #define SEC_CONSTRUCTOR_TEXT 0x1100
-
- #define SEC_CONSTRUCTOR_DATA 0x2100
-
- #define SEC_CONSTRUCTOR_BSS 0x3100
-
- The section has contents - a bss section could be `SEC_ALLOC' |
-`SEC_HAS_CONTENTS', a debug section could be `SEC_HAS_CONTENTS'
-
- #define SEC_HAS_CONTENTS 0x200
-
- An instruction to the linker not to output sections containing this
-flag even if they have information which would normally be written.
-
- #define SEC_NEVER_LOAD 0x400
-
- The base address of the section in the address space of the target.
-
- bfd_vma vma;
-
- The size of the section in bytes of the loaded section. This
-contains a value even if the section has no contents (eg, the size of
-`.bss').
-
- bfd_size_type size;
-
- If this section is going to be output, then this value is the
-offset into the output section of the first byte in the input section.
-Eg, if this was going to start at the 100th byte in the output
-section, this value would be 100.
-
- bfd_vma output_offset;
-
- The output section through which to map on output.
-
- struct sec *output_section;
-
- The alignment requirement of the section, as an exponent - eg 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;
-
- Which section is it 0..nth
-
- int index;
-
- 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
-
- PTR userdata;
-
- struct lang_output_section *otheruserdata;
-
- Attached line number information
-
- alent *lineno;
-
- Number of line number records
-
- unsigned int lineno_count;
-
- 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
-
- unsigned int target_index;
-
- PTR 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;
-
- } asection ;
-
-
-File: bfdinfo, Node: section prototypes, Next: Section, Prev: typedef section, Up: Sections
-
-section prototypes
-------------------
-
-`bfd_get_section_by_name'
-.........................
-
- Runs through the provided ABFD and returns the `asection' who's
-name matches that provided, otherwise NULL. *Note Sections::, for more
-information.
-
- asection * bfd_get_section_by_name(bfd *abfd, CONST char *name);
-
-`bfd_make_section'
-..................
-
- This function creates a new empty section called NAME and attaches
-it to the end of the chain of sections for the BFD supplied. An
-attempt to create a section with a name which is already in use,
-returns the old section by that name instead.
-
- Possible errors are:
-
-`invalid_operation'
- If output has already started for this BFD.
-
-`no_memory'
- If obstack alloc fails.
-
- asection * bfd_make_section(bfd *, CONST char *name);
-
-`bfd_set_section_flags'
-.......................
-
- Attempts to set the attributes of the section named in the BFD
-supplied to the value. Returns true on success, false on error.
-Possible error returns are:
-
-`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.
-
- boolean bfd_set_section_flags(bfd *, asection *, flagword);
-
-`bfd_map_over_sections'
-.......................
-
- Calls 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);
-
- void bfd_map_over_sections(bfd *abfd, void (*func)(), PTR obj);
-
- This is the prefered 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, ...)
-
-`bfd_set_section_size'
-......................
-
- Sets SECTION to the size VAL. If the operation is ok, then `true'
-is returned, else `false'.
-
- Possible error returns:
-
-`invalid_operation'
- Writing has started to the BFD, so setting the size is invalid
-
- boolean bfd_set_section_size(bfd *, asection *, bfd_size_type val);
-
-`bfd_set_section_contents'
-..........................
-
- 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 bytes.
-
- Normally `true' is returned, else `false'. Possible error returns
-are:
-
-`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'.
-
- boolean bfd_set_section_contents(bfd *abfd,
- asection *section,
- PTR data,
- file_ptr offset,
- bfd_size_type count);
-
-`bfd_get_section_contents'
-..........................
-
- This function reads 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 constuctor with the `SEC_CONSTUCTOR' flag set
-are requested, then the LOCATION is filled with zeroes.
-
- If no errors occur, `true' is returned, else `false'. Possible
-errors are:
-
-`unknown yet'
- boolean bfd_get_section_contents(bfd *abfd, asection *section, PTR location,
- file_ptr offset, bfd_size_type count);
-
-
-File: bfdinfo, Node: Symbols, Next: Archives, Prev: Sections, Up: To
-
-Symbols
-=======
-
- BFD trys 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 infomation passed to applications some targets keep some
-information 'behind the sceans', 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 was read, but was written through an a.out back end,
-all the coff specific information would be lost. (.. until BFD 2 :).
-
- 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 read, since the 'behind the sceens'
-information will be still available.
-
-* Menu:
-
-* Reading Symbols::
-* Writing Symbols::
-* typedef asymbol::
-* symbol handling functions::
-
-
-File: bfdinfo, Node: Reading Symbols, Next: Writing Symbols, Prev: Symbols, Up: Symbols
-
-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 appliction which reads the symbol table:
-
-
- unsigned int storage_needed;
- asymbol **symbol_table;
- unsigned int number_of_symbols;
- unsigned int i;
-
- storage_needed = get_symtab_upper_bound (abfd);
-
- if (storage_needed == 0) {
- return ;
- }
- symbol_table = (asymbol **) malloc (storage_needed);
- ...
- number_of_symbols =
- bfd_canonicalize_symtab (abfd, symbol_table);
-
- for (i = 0; i < number_of_symbols; i++) {
- process_symbol (symbol_table[i]);
- }
-
- lisp
-
- All storage for the symbols themselves is in an obstack connected to
-the BFD, and is freed when the BFD is closed.
-
-
-File: bfdinfo, Node: Writing Symbols, Next: typedef asymbol, Prev: Reading Symbols, Up: Symbols
-
-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 outputing 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'.
-
- An example showing the creation of a symbol table with only one
-element:
-
-
- #include "bfd.h"
- main()
- {
- 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 = (asection *)0;
- new->flags = BSF_ABSOLUTE | BSF_GLOBAL;
- new->value = 0x12345;
-
- ptrs[0] = new;
- ptrs[1] = (asymbol *)0;
-
- bfd_set_symtab(abfd, ptrs, 1);
- bfd_close(abfd);
- }
-
- ./makesym
- nm foo
- 00012345 A dummy_symbol
-
- lisp
-
- Many formats cannot represent arbitary symbol information; for
-instance the `a.out' object format does not allow an arbitary number
-of sections. A symbol pointing to a section which is not one of
-`.text', `.data' or `.bss' cannot be described.
-
-
-File: bfdinfo, Node: typedef asymbol, Next: symbol handling functions, Prev: Writing Symbols, Up: Symbols
-
-typedef asymbol
----------------
-
- An `asymbol' has the form:
-
- typedef struct symbol_cache_entry
- {
-
- A pointer to the BFD which owns the symbol. This information is
-necessary so that a back end can work out what additional (invisible to
-the application writer) information is carried with the symbol.
-
- struct _bfd *the_bfd;
-
- 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.
-
- 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 0x01
-
- The symbol has global scope; initialized data in `C'. The value is
-the offset into the section of the data.
-
- #define BSF_GLOBAL 0x02
-
- Obsolete
-
- #define BSF_IMPORT 0x04
-
- The symbol has global scope, and is exported. The value is the
-offset into the section of the data.
-
- #define BSF_EXPORT 0x08
-
- The symbol is undefined. `extern' in `C'. The value has no meaning.
-
- #define BSF_UNDEFINED 0x10
-
- The symbol is common, initialized to zero; default in `C'. The
-value is the size of the object in bytes.
-
- #define BSF_FORT_COMM 0x20
-
- A normal `C' symbol would be one of: `BSF_LOCAL', `BSF_FORT_COMM',
-`BSF_UNDEFINED' or `BSF_EXPORT|BSD_GLOBAL'
-
- The symbol is a debugging record. The value has an arbitary meaning.
-
- #define BSF_DEBUGGING 0x40
-
- The symbol has no section attached, any value is the actual value
-and is not a relative offset to a section.
-
- #define BSF_ABSOLUTE 0x80
-
- Used by the linker
-
- #define BSF_KEEP 0x10000
- #define BSF_KEEP_G 0x80000
-
- Unused
-
- #define BSF_WEAK 0x100000
- #define BSF_CTOR 0x200000
- #define BSF_FAKE 0x400000
-
- The symbol used to be a common symbol, but now it is allocated.
-
- #define BSF_OLD_COMMON 0x800000
-
- The default value for common data.
-
- #define BFD_FORT_COMM_DEFAULT_VALUE 0
-
- 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 0x40000
-
- Signal that the symbol is the label of constructor section.
-
- #define BSF_CONSTRUCTOR 0x1000000
-
- Signal that the symbol is a warning symbol. If the symbol is a
-warning symbol, then the value field (I know this is tacky) will point
-to the asymbol which when referenced will cause the warning.
-
- #define BSF_WARNING 0x2000000
-
- Signal that the symbol is indirect. The value of the symbol is a
-pointer to an undefined asymbol which contains the name to use instead.
-
- #define BSF_INDIRECT 0x4000000
-
- flagword flags;
-
- A pointer to the section to which this symbol is relative, or 0 if
-the symbol is absolute or undefined. Note that it is not sufficient to
-set this location to 0 to mark a symbol as absolute - the flag
-`BSF_ABSOLUTE' must be set also.
-
- struct sec *section;
-
- Back end special data. This is being phased out in favour of making
-this a union.
-
- PTR udata;
- } asymbol;
-
-
-File: bfdinfo, Node: symbol handling functions, Next: Symbols, Prev: typedef asymbol, Up: Symbols
-
-Symbol Handling Functions
--------------------------
-
-`get_symtab_upper_bound'
-........................
-
- Returns the number of bytes required in a vector of pointers to
-`asymbols' for all the symbols in the supplied BFD, including a
-terminal NULL pointer. If there are no symbols in the BFD, then 0 is
-returned.
-
-
- #define get_symtab_upper_bound(abfd) \
- BFD_SEND (abfd, _get_symtab_upper_bound, (abfd))
-
- lisp
-
-`bfd_canonicalize_symtab'
-.........................
-
- Supplied a BFD and a pointer to an uninitialized vector of pointers.
-This reads in the symbols from the BFD, and fills in the table with
-pointers to the symbols, and a trailing NULL. The routine returns the
-actual number of symbol pointers not including the NULL.
-
-
- #define bfd_canonicalize_symtab(abfd, location) \
- BFD_SEND (abfd, _bfd_canonicalize_symtab,\
- (abfd, location))
-
- lisp
-
-`bfd_set_symtab'
-................
-
- Provided a table of pointers to to symbols and a count, writes to
-the output BFD the symbols when closed.
-
- boolean bfd_set_symtab(bfd *, asymbol **, unsigned int );
-
-`bfd_print_symbol_vandf'
-........................
-
- Prints the value and flags of the symbol supplied to the stream
-file.
-
- void bfd_print_symbol_vandf(PTR file, asymbol *symbol);
-
-`bfd_make_empty_symbol'
-.......................
-
- This function creates a new `asymbol' structure for the BFD, and
-returns a pointer to it.
-
- This routine is necessary, since 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))
-
- lisp
-
-
-File: bfdinfo, Node: Archives, Next: Formats, Prev: Symbols, Up: Top
-
-Archives
-========
-
- Gumby, you promised to write this bit...
-
- Archives are supported in BFD in `archive.c'.
-
- An archive is represented internally just like another BFD, with a
-pointer to a chain of contained BFDs. Archives can be created by
-opening BFDs, linking them together and attaching them as children to
-another BFD and then closing the parent BFD.
-
-`bfd_get_next_mapent'
-.....................
-
- What this does
-
- symindex bfd_get_next_mapent(bfd *, symindex, carsym **);
-
-`bfd_set_archive_head'
-......................
-
- Used whilst processing archives. Sets the head of the chain of BFDs
-contained in an archive to NEW_HEAD. (see chapter on archives)
-
- boolean bfd_set_archive_head(bfd *output, bfd *new_head);
-
-`bfd_get_elt_at_index'
-......................
-
- Return the sub bfd contained within the archive at archive index n.
-
- bfd * bfd_get_elt_at_index(bfd *, int);
-
-`bfd_openr_next_archived_file'
-..............................
-
- Initially provided a BFD containing an archive and NULL, opens a BFD
-on the first contained element and returns that. Subsequent calls to
-bfd_openr_next_archived_file 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.
-
- bfd* bfd_openr_next_archived_file(bfd *archive, bfd *previous);
-
-
-File: bfdinfo, Node: Formats, Next: Relocations, Prev: Archives, Up: Top
-
-File Formats
-============
-
- A format is a BFD concept of high level file contents. The formats
-supported by BFD are:
-
-`bfd_object'
- The BFD may contain data, symbols, relocations and debug info.
-
-`bfd_archive'
- The \ No newline at end of file
diff --git a/bfd/doc/blins-p b/bfd/doc/blins-p
deleted file mode 100755
index 858dcd7..0000000
--- a/bfd/doc/blins-p
+++ /dev/null
@@ -1,8 +0,0 @@
-# sed script for BFD header files
-# Merge adjacent blank lines. Loop til no change.
-:blin
-/^$/,/^ *[^ ]*.*$/{
-/^$/N
-s/^ *\n *$//
-}
-t blin
diff --git a/bfd/doc/exfil1-p b/bfd/doc/exfil1-p
deleted file mode 100755
index a57fc95..0000000
--- a/bfd/doc/exfil1-p
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# Locate and coalesce adjacent comments
-/\*\/$/N
-s/\*\/\n\/\*/\
-/
diff --git a/bfd/doc/exfil3-p b/bfd/doc/exfil3-p
deleted file mode 100755
index c557a16..0000000
--- a/bfd/doc/exfil3-p
+++ /dev/null
@@ -1,16 +0,0 @@
-# blank-line activity:
-# Merge adjacent blank lines. Loop til no change.
-:blin
-/^$/,/^ *[^ ]*.*$/{
-/^$/N
-s/^ *\n *$//
-}
-t blin
-#
-/^$/,/^ *[^ ]*.*$/{
-/^$/N
-# Transpose <blank line> <end comment>
-/^ *\n\*\/$/c\
-*\/\
-
-}
diff --git a/bfd/doc/exfilter b/bfd/doc/exfilter
deleted file mode 100755
index 7551607..0000000
--- a/bfd/doc/exfilter
+++ /dev/null
@@ -1,14 +0,0 @@
-# SED script for preprocessing embedded doc from source (S. Chamberlain markup)
-# Final pass; cleanup work is done here.
-#
-# Within examples, make '{' and '}' printable:
-/^@lisp$/,/^@end lisp$/s/{/@{/
-/^@lisp$/,/^@end lisp$/s/}/@}/
-/^@example$/,/^@end example$/s/{/@{/
-/^@example$/,/^@end example$/s/}/@}/
-#
-# Delete empty @findex and @subsubsection entries (resulting from *proto*
-# with no further text on same line, in middle pass)
-/^@findex $/d
-/^@subsubsection @code{}/d
-#
diff --git a/bfd/doc/exfilter-p b/bfd/doc/exfilter-p
deleted file mode 100755
index 27a1d05..0000000
--- a/bfd/doc/exfilter-p
+++ /dev/null
@@ -1,12 +0,0 @@
-# SED script for preprocessing embedded headers from C source comments
-# (S. Chamberlain markup)
-# beginning of many passes of cleanup work
-#
-# Delete empty comment blocks
-/^\/\*$/N
-/^\/\*\n\*\/ *$/d
-#
-# Locate and coalesce adjacent comments
-/\*\/$/N
-s/\*\/\n\/\*/\
-/
diff --git a/bfd/doc/exfiltst b/bfd/doc/exfiltst
deleted file mode 100755
index 18bab5a..0000000
--- a/bfd/doc/exfiltst
+++ /dev/null
@@ -1,8 +0,0 @@
-# Merge adjacent blank lines. Loop til no change.
-:blin
-/^$/,/^ *[^ ]*.*$/{
-/^$/N
-s/^ *\n *$//
-}
-t blin
-
diff --git a/bfd/doc/exmerge b/bfd/doc/exmerge
deleted file mode 100755
index dafa424..0000000
--- a/bfd/doc/exmerge
+++ /dev/null
@@ -1,4 +0,0 @@
-# SED script for preprocessing embedded doc from source (S. Chamberlain markup)
-# Locate and coalesce adjacent @example blocks
-/^@end example/N
-/^@end example\n@example$/d
diff --git a/bfd/doc/intobfd b/bfd/doc/intobfd
deleted file mode 100755
index f72d8e9..0000000
--- a/bfd/doc/intobfd
+++ /dev/null
@@ -1,13 +0,0 @@
-/\/\*:init.c\*\//r init.p
-/\/\*:archive.c\*\//r archive.p
-/\/\*:archures.c\*\//r archures.p
-/\/\*:bfd.c\*\//r bfd.p
-/\/\*:core.c\*\//r core.p
-/\/\*:format.c\*\//r format.p
-/\/\*:libbfd.c\*\//r libbfd.p
-/\/\*:opncls.c\*\//r opncls.p
-/\/\*:reloc.c\*\//r reloc.p
-/\/\*:section.c\*\//r section.p
-/\/\*:syms.c\*\//r syms.p
-/\/\*:targets.c\*\//r targets.p
-
diff --git a/bfd/doc/mergecom-p b/bfd/doc/mergecom-p
deleted file mode 100755
index 456478b..0000000
--- a/bfd/doc/mergecom-p
+++ /dev/null
@@ -1,5 +0,0 @@
-# SED script for preprocessing embedded headers from C source comments
-# Locate and coalesce adjacent comments
-/\*\/$/N
-s/\*\/\n\/\*/\
-/
diff --git a/bfd/doc/movecom-p b/bfd/doc/movecom-p
deleted file mode 100755
index 7ed04c7..0000000
--- a/bfd/doc/movecom-p
+++ /dev/null
@@ -1,8 +0,0 @@
-# sed script for BFD header files:
-# Transpose <blank line> <end comment>
-/^$/,/^ *[^ ]*.*$/{
-/^$/N
-/^ *\n\*\/$/c\
-*\/\
-
-}
diff --git a/bfd/doc/scanit b/bfd/doc/scanit
deleted file mode 100755
index a989c78..0000000
--- a/bfd/doc/scanit
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-# Script to coordinate parsing of S. Chamberlain source-embedded
-# documentation markup language.
-
-# Four passes:
-# 1) awk discards lines not intended for docn, and marks blocks of
-# text with comments identifying source file;
-# 2) first sed pass interprets Chamberlain markup;
-# 3) second sed pass does cleanup that involves merging lines
-# 4) third sed pass does remaining cleans up---making {}
-# printable within examples, and eliminating empty index entries and
-# headings.
-#Third and second sed passes are separate because order of execution is hard
-#to control otherwise, making one or another of the things involving @example
-#inoperative.
-
-base=`echo $1 | cut -d '.' -f 1`
-out=`echo $2 | cut -d '.' -f 1`
-
-awk -f $3/awkscan $1 | \
-sed -f $3/sedscript | \
-sed -f $3/unPROTO | \
-sed -f $3/exmerge | \
-sed -f $3/exfilter >$out.texi
-
diff --git a/bfd/doc/scanph b/bfd/doc/scanph
deleted file mode 100755
index 956c2e9..0000000
--- a/bfd/doc/scanph
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-# Script to coordinate parsing of S. Chamberlain source-embedded
-# header-file markup language.
-
-# '-i' option means use *proto-internal* segments, else just *proto*
-SFX=p
-if [ $1 = "-i" ]; then
- SFX=ip
- shift
-fi
-
-out=`echo $2 | cut -d '.' -f 1`
-
-# passes:
-# 1) awk discards lines not intended for header, and marks blocks of
-# text with comments identifying source file;
-# 2) first sed pass interprets Chamberlain markup;
-# 3) further sed passes clean up---merging adjacent comments etc.
-
-awk -f $3/awkscan-$SFX $1 |\
-sed -f $3/sedscript-p |\
-sed -f $3/mergecom-p |\
-sed -f $3/startcom-p |\
-sed -f $3/blins-p |\
-sed -f $3/movecom-p >$out.$SFX
diff --git a/bfd/doc/sedscript b/bfd/doc/sedscript
deleted file mode 100755
index cc2022c..0000000
--- a/bfd/doc/sedscript
+++ /dev/null
@@ -1,85 +0,0 @@
-# SED script for preprocessing embedded doc from source (S. Chamberlain markup)
-# middle pass; most of the work is done here.
-#
-# First, get rid of /*doc* markers; they've done their job in the first pass.
-/^\/\*doc\*/d
-#
-# /*proto* markers may be optionally followed by a *i-style subsubsec, findex
-# entry. This will generate empty @findex and @subsubsection entries if
-# the *proto* is on a line by itself; third pass removes them.
-/^\/\*proto\*/s/^\/\*proto\* *\(.*\)$/@findex \1\
-@subsubsection @code{\1}/
-#
-# /*proto-internal* is just like /*proto* from doc point of view.
-/^\/\*proto-internal\*/s/^\/\*proto-internal\* *\(.*\)$/@findex \1\
-@subsubsection @code{\1}/
-#
-# *i at beginning of line: rest of line is both a subsubsection heading
-# and an entry in function index.
-/^\*i/s/^\*i *\(.*\)$/@findex \1\
-@subsubsection @code{\1}/
-#
-# Two alternative docn block ends, '*/' and '*-*/' on lines by themselves;
-# replace by blank lines (for texinfo source readability).
-/^\*\/$/c\
-
-/^\*-\*\/$/c\
-
-# {* and *} are standins for comment markers (originally embedded in .c
-# comments)---turn into real comment markers:
-s/{\*/\/\*/
-s/\*}/\*\//
-#
-# '*+++' and '*---' span a block of text that includes both example lines
-# (marked by leading '$') and explanatory text (to be italicized).
-# Italicize lines lacking '$':
-/\*\+\+\+/,/\*---/s/^\([^$].*\)$/@i{\1}/
-#
-# We don't need *+++ and *--- markers any more; kill them (trailing marker
-# becomes blank line for readability)
-/\*\+\+\+/d
-/\*---/c\
-
-# Any line beginning with '$' is made an example line; third pass later
-# coalesces adjacent example blocks. *DO NOT* introduce extra space after
-# @end example, so we can spot adjacent ones in third pass.
-/^\$/i\
-@example
-/^\$/a\
-@end example
-#
-# In any example line, turn '{' and '}' into '@{' and '@}'
-###/^\$/s/{/@{/g
-###/^\$/s/}/@}/g
-#
-# Now delete the '$' markers themselves:
-/^\$/s/\$//
-#
-# *+ and *- delimit large examples to be enclosed in cartouches.
-/^\*\+$/c\
-@lisp\
-@c @cartouche
-/^\*-$/c\
-@c @end cartouche\
-@end lisp\
-
-# '*;' introduces an example which may have a single line or multiple lines;
-# it extends until the next semicolon (which is also printed).
-# One-line case: (do this first; else second line address for multi-line case
-# will include random text til we happen to end a line in a doc comment with
-# a semicolon)
-/^\*;.*;$/{
-s/^\*;/@example\
-/
-s/;$/;\
-@end example\
-/
-}
-# Multi-line case:
-/^\*;/,/.*;$/{
-s/^\*;/@example\
-/
-s/;$/;\
-@end example\
-/
-}
diff --git a/bfd/doc/sedscript-p b/bfd/doc/sedscript-p
deleted file mode 100755
index 1f24900..0000000
--- a/bfd/doc/sedscript-p
+++ /dev/null
@@ -1,63 +0,0 @@
-# SED script for preprocessing embedded headers from source
-# (S. Chamberlain markup)
-# middle pass; most of the work is done here.
-#
-# First, get rid of /*proto* markers; they've done their job in the first pass.
-# (They remain comment-introducers)
-/^\/\*proto\*/s/^\/\*proto\*/\/*/
-/^\/\*proto-internal\*/s/^\/\*proto-internal\*/\/*/
-#
-# *-*/ is an alternative (older) comment-block end. Remap for uniformity:
-s/^\*-\*\//\*\//
-#
-# {* and *} are standins for comment markers (originally embedded in .c
-# comments)---turn into real comment markers:
-s/{\*/\/\*/
-s/\*}/\*\//
-#
-# '*+++' and '*---' span a block of text that includes both header lines
-# (marked by leading '$') and explanatory text (to be comments).
-# No need to start comment at "*+++", or end it at "*---", since we're
-# already in a *proto* comment block. Just delete.
-/\*\+\+\+/d
-/\*---/d
-#
-# Any line beginning with '$' is made a line of code in the header;
-# stuff in between is comments, so *precede* each '$' line with
-# END-comment, *follow* each '$' line with START-comment; third pass later
-# eliminates empty comment blocks.
-/^\$/i\
-*/
-/^\$/a\
-/*
-#
-# Now delete the '$' markers themselves:
-/^\$/s/\$//
-#
-# *+ and *- delimit larger blocks of code, treated the same as '$' lines
-/^\*\+$/c\
-*/
-/^\*-$/c\
-/*
-#
-# '*;' introduces code which may have a single line or multiple lines;
-# it extends until the next semicolon (which is also printed).
-#
-# One-line case: (do this first; else second line address for multi-line case
-# will include random text til we happen to end a line in a proto comment with
-# a semicolon)
-/^\*;.*;$/{
-s/^\*;/*\/\
-/
-s/;$/;\
-\/*\
-/
-}
-# Multi-line case:
-/^\*;/,/.*;$/{
-s/^\*;/*\/\
-/
-s/;$/;\
-\/*\
-/
-}
diff --git a/bfd/doc/startcom-p b/bfd/doc/startcom-p
deleted file mode 100755
index 0748fad..0000000
--- a/bfd/doc/startcom-p
+++ /dev/null
@@ -1,12 +0,0 @@
-# sed script for preprocessing BFD header files
-# <start comment> activity:
-/^\/\*$/{
-N
-# Delete empty comment blocks
-/^\/\*\n\*\/ *$/d
-# Transpose <start comment><blank line>
-s/^\/\*\n *$/\
-\/*/
-# merge <start comment> on line by itself with following line
-s/^\/\*\n\(.*\)/\/* \1/
-}
diff --git a/bfd/doc/tolibbfd b/bfd/doc/tolibbfd
deleted file mode 100755
index 3caa5eb..0000000
--- a/bfd/doc/tolibbfd
+++ /dev/null
@@ -1,10 +0,0 @@
-/---------------START FROM/,/---------------END FROM/d
-/\/\*:init.c\*\//r init.ip
-/\/\*:libbfd.c\*\//r libbfd.ip
-/\/\*:cache.c\*\//r cache.ip
-/\/\*:cpu-h8300.c\*\//r cpu-h8300.ip
-/\/\*:cpu-i960.c\*\//r cpu-i960.ip
-/\/\*:cpu-empty.c\*\//r cpu-empty.ip
-/\/\*:archures.c\*\//r archures.ip
-/\/\*:reloc.c\*\//r reloc.ip
-/\/\*:ctor.c\*\//r ctor.ip
diff --git a/bfd/doc/tolibcoff b/bfd/doc/tolibcoff
deleted file mode 100755
index 548c8ba..0000000
--- a/bfd/doc/tolibcoff
+++ /dev/null
@@ -1 +0,0 @@
-/\/\*:coffcode.h\*\//r coffcode.p
diff --git a/bfd/doc/unPROTO b/bfd/doc/unPROTO
deleted file mode 100755
index a6f9520..0000000
--- a/bfd/doc/unPROTO
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# The PROTO macro is a subterfuge to be compatible with both ANSI and K&R
-# declaration syntax. It's not widely known, so for the docn just map the
-# thing to ANSI declaration syntax.
-#
-# First, join up defns broken across multiple lines in source---but leave
-# any linebreaks, to prettify our examples
-:pbegn
-/PROTO(.*, *$/N
-s/\n/?/
-t pbegn
-s/?/\
-/g
-# Now actually do the PROTO interpretation.
-# A PROTO invocation looks like
-# PROTO( resulttype, function, (arglist));
-s/[ ]*PROTO(\(.*\),[\n ]*\(.*\),[\n ]*\((.*)\));/\1 \2\3;/
-
diff --git a/bfd/exfilter b/bfd/exfilter
deleted file mode 100755
index 7551607..0000000
--- a/bfd/exfilter
+++ /dev/null
@@ -1,14 +0,0 @@
-# SED script for preprocessing embedded doc from source (S. Chamberlain markup)
-# Final pass; cleanup work is done here.
-#
-# Within examples, make '{' and '}' printable:
-/^@lisp$/,/^@end lisp$/s/{/@{/
-/^@lisp$/,/^@end lisp$/s/}/@}/
-/^@example$/,/^@end example$/s/{/@{/
-/^@example$/,/^@end example$/s/}/@}/
-#
-# Delete empty @findex and @subsubsection entries (resulting from *proto*
-# with no further text on same line, in middle pass)
-/^@findex $/d
-/^@subsubsection @code{}/d
-#
diff --git a/bfd/exmerge b/bfd/exmerge
deleted file mode 100755
index dafa424..0000000
--- a/bfd/exmerge
+++ /dev/null
@@ -1,4 +0,0 @@
-# SED script for preprocessing embedded doc from source (S. Chamberlain markup)
-# Locate and coalesce adjacent @example blocks
-/^@end example/N
-/^@end example\n@example$/d
diff --git a/bfd/hosts/h-m68kv.h b/bfd/hosts/h-m68kv.h
deleted file mode 100644
index e667283..0000000
--- a/bfd/hosts/h-m68kv.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* $Id$ */
-
-#include <sys/types.h>
-#include <sys/file.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <stdio.h>
-#include <sys/stat.h>
-#include <ctype.h>
-#include <string.h>
-#include <malloc.h>
-
-#define USG
-
-#ifdef __GNUC__
-#define alloca __builtin_alloca
-#endif
-
-
-#ifndef O_ACCMODE
-#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)
-#endif
-#define SEEK_SET 0
-#define SEEK_CUR 1
-
-#include <memory.h>
-#define bcmp(b1,b2,len) memcmp(b1,b2,len)
-#define bcopy(src,dst,len) memcpy(dst,src,len)
-#define bzero(s,n) memset(s,0,n)
-
-#include <string.h>
-#define index(s,c) strchr(s,c)
-#define rindex(s,c) strrchr(s,c)
-
-
-/* EXACT TYPES */
-typedef char int8e_type;
-typedef unsigned char uint8e_type;
-typedef short int16e_type;
-typedef unsigned short uint16e_type;
-typedef int int32e_type;
-typedef unsigned int uint32e_type;
-
-/* CORRECT SIZE OR GREATER */
-typedef char int8_type;
-typedef unsigned char uint8_type;
-typedef short int16_type;
-typedef unsigned short uint16_type;
-typedef int int32_type;
-typedef unsigned int uint32_type;
-
diff --git a/bfd/hosts/hp9000.h b/bfd/hosts/hp9000.h
deleted file mode 100644
index 9e5c4a3..0000000
--- a/bfd/hosts/hp9000.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#include <fcntl.h>
-#include <errno.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <ctype.h>
-#include <string.h>
-#include <sys/file.h>
-#ifndef O_ACCMODE
-#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)
-#endif
-#define SEEK_SET 0
-#define SEEK_CUR 1
-
-void free();
-
-/* Some things that need to be defined in order to make code written for
- BSD Unix compile under System V Unix. */
-
-#include <memory.h>
-#define bcmp(b1,b2,len) memcmp(b1,b2,len)
-#define bcopy(src,dst,len) memcpy(dst,src,len)
-#define bzero(s,n) memset(s,0,n)
-
-#if 0
-static int
-rename(from, to)
-{
- unlink(to);
- return(link(from, to));
-}
-#endif
-
-/*
- * Might not need these. Leave them out for now.
- *
-#include <string.h>
-#define index(s,c) strchr(s,c)
-#define rindex(s,c) strrchr(s,c)
-
-#ifdef SEEK_SET
-# ifndef L_SET
-# define L_SET SEEK_SET
-# endif
-# endif
-
-#ifdef SEEK_CUR
-# ifndef L_INCR
-# define L_INCR SEEK_CUR
-# endif
-# endif
- */
-
-/* EXACT TYPES */
-typedef char int8e_type;
-typedef unsigned char uint8e_type;
-typedef short int16e_type;
-typedef unsigned short uint16e_type;
-typedef int int32e_type;
-typedef unsigned int uint32e_type;
-
-/* CORRECT SIZE OR GREATER */
-typedef char int8_type;
-typedef unsigned char uint8_type;
-typedef short int16_type;
-typedef unsigned short uint16_type;
-typedef int int32_type;
-typedef unsigned int uint32_type;
-
-#include "fopen-same.h"
diff --git a/bfd/howto.c b/bfd/howto.c
deleted file mode 100755
index 0be2261..0000000
--- a/bfd/howto.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* bfd howto manager.
- Copyright (C) 1990-1991 Free Software Foundation, Inc.
- Written by Steve Chamberlain of Cygnus Support.
-
-This file is part of BFD, the Binary File Descriptor library.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* 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.
-
-*/
-
-#include <sysdep.h>
-#include <bfd.h>
-#include "libbfd.h"
-/*proto* bfd_reloc_code_enum_type
-
-*+++
-
-$typedef enum
-${
-
-16 bits wide, simple reloc
-
-$ BFD_RELOC_16,
-
-8 bits wide, but used to form an address like 0xffnn
-
-$ BFD_RELOC_8_FFnn,
-
-8 bits wide, simple
-
-$ BFD_RELOC_8,
-
-8 bits wide, pc relative
-
-$ BFD_RELOC_8_PCREL
-$ } bfd_reloc_code_enum_real_type;
-
-*---
-
-*/
-
-
-
-/*proto* bfd_reloc_type_lookup
-This routine returns a pointer to a howto struct which when invoked,
-will perform the supplied relocation on data from the architecture
-noted.
-
-[Note] This function will go away.
-
-*; PROTO(struct reloc_howto_struct *,
- bfd_reloc_type_lookup,
- (enum bfd_architecture arch, bfd_reloc_code_enum_type code));
-*/
-
-
-struct reloc_howto_struct *
-DEFUN(bfd_reloc_type_lookup,(arch, code),
- enum bfd_architecture arch AND
- bfd_reloc_code_enum_type code)
-{
- return arch_functions(arch,0)->reloc_type_lookup(code);
-}
-
-
-
diff --git a/bfd/intobfd b/bfd/intobfd
deleted file mode 100755
index b256f4b..0000000
--- a/bfd/intobfd
+++ /dev/null
@@ -1,11 +0,0 @@
-/\/\*:archive.c\*\//r archive.p
-/\/\*:archures.c\*\//r archures.p
-/\/\*:bfd.c\*\//r bfd.p
-/\/\*:core.c\*\//r core.p
-/\/\*:format.c\*\//r format.p
-/\/\*:libbfd.c\*\//r libbfd.p
-/\/\*:opncls.c\*\//r opncls.p
-/\/\*:reloc.c\*\//r reloc.p
-/\/\*:section.c\*\//r section.p
-/\/\*:syms.c\*\//r syms.p
-/\/\*:targets.c\*\//r targets.p
diff --git a/bfd/makefile.dos b/bfd/makefile.dos
deleted file mode 100644
index 60b213b..0000000
--- a/bfd/makefile.dos
+++ /dev/null
@@ -1,334 +0,0 @@
-# Makefile template for Configure for the BFD library.
-# Copyright (C) 1990, 1991 Free Software Foundation, Inc.
-# Written by Cygnus Support.
-#
-# This file is part of BFD, the Binary File Descriptor library.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-# $Id$
-
-HDEPFILES=
-TDEPFILES=
-HDEFINES=-D__MSDOS__
-TDEFINES=
-CSWITCHES=
-
-srcdir = .
-ddestdir = /usr/local
-libdir = $(ddestdir)/lib
-docdir = $(srcdir)$(subdir)/doc
-includedir= $(ddestdir)/include
-RANLIB = ar rvs
-AR = ar
-AR_FLAGS = clq
-INCDIR = $(srcdir)/../include
-CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
-DEP = mkdep
-MINUS_G=-O
-
-SUBDIRS = doc
-
-#### host and target dependent Makefile fragments come in here.
-# Target: Hitachi H8/300 using IEEE-695 object file format
-# Avoid dragging in a lot of other architectures and formats.
-TDEFAULTS=-DSELECT_ARCHITECTURES=bfd_h8300_arch -DSELECT_VECS=&ieee_vec\,&srec_vec\,&h8300coff_vec
-
-
-# Change this (to MINIMIZE=1) to save space in executables.
-# Currently, all this does is control the target_vector in targets.c.
-MINIMIZE=0
-
-TARGETLIB = libbfd.a
-CFLAGS = $(MINUS_G) $(HDEFINES) $(TDEFINES) $(CSEARCH) $(CSWITCHES) # -DINTEL960VERSION
-
-
-BFD_LIBS = libbfd.o opncls.o bfd.o archive.o targets.o cache.o \
- archures.o core.o section.o format.o syms.o reloc.o init.o ctor.o
-
-BFD_MACHINES = cpu-h8300.o cpu-i960.o cpu-sparc.o cpu-m68k.o cpu-m88k.o \
- cpu-vax.o cpu-mips.o cpu-a29k.o cpu-i386.o cpu-rs6000.o
-
-BFD_BACKENDS = oasys.o ieee.o srec.o elf.o stab-syms.o\
- aout64.o aout32.o demo64.o sunos.o newsos3.o i386aout.o bout.o \
- coff-i960.o coff-a29k.o coff-m68k.o coff-i386.o coff-m88k.o \
- coff-mips.o coff-rs6000.o coff-h8300.o
-
-OPTIONAL_BACKENDS = trad-core.o
-
-BFD_H=$(INCDIR)/bfd.h
-
-# C source files that correspond to .o's.
-CFILES = libbfd.c opncls.c bfd.c archive.c targets.c cache.c archures.c \
- coff-i386.c aout64.c aout32.c sunos.c demo64.c coff-i960.c srec.c \
- oasys.c ieee.c coff-m68k.c coff-a29k.c coff-rs6000.c \
- format.c section.c core.c syms.c stabs-syms.c reloc.c init.c ctor.c \
- coff-m88k.c coff-mips.c trad-core.c newsos3.c i386aout.c bout.c elf.c \
- cpu-h8300.c cpu-i960.c cpu-sparc.c cpu-m68k.c cpu-m88k.c \
- cpu-vax.c cpu-mips.c cpu-a29k.c cpu-i386.c cpu-rs6000.c coff-h8300.c
-
-STAGESTUFF = $(TARGETLIB) $(OFILES)
-
-all: $(TARGETLIB)
-# $(MAKE) subdir_do DO=all "DODIRS=$(SUBDIRS)"
-
-all-info: force
- $(MAKE) subdir_do DO=all-info "DODIRS=$(SUBDIRS)"
-
-install-info: force
- $(MAKE) subdir_do DO=install-info "DODIRS=$(SUBDIRS)"
-
-# HDEPFILES comes from the host config; TDEPFILES from the target config.
-OFILES = $(BFD_LIBS) $(BFD_BACKENDS) $(BFD_MACHINES) $(HDEPFILES) $(TDEPFILES)
-
-$(TARGETLIB): $(OFILES)
- -rm -f $(TARGETLIB)
- >target.rf $(AR_FLAGS) $(TARGETLIB) $(OFILES)
- $(AR) @target.rf
- $(RANLIB) $(TARGETLIB)
-
-# When compiling targets.c, supply the default target info from configure.
-targets.o: targets.c
- >targets.rf $(CFLAGS) -c -DMINIMIZE=$(MINIMIZE) $(TDEFAULTS) targets.c
- $(CC) @targets.rf
-
-subdir_do: force
- for i in $(DODIRS); do \
- if [ -d $(unsubdir)/$$i ] ; then \
- if (cd $(unsubdir)/$$i$(subdir); \
- $(MAKE) \
- "against=$(against)" \
- "AR=$(AR)" \
- "CC=$(CC)" \
- "AR_FLAGS=$(AR_FLAGS)" \
- "RANLIB=$(RANLIB)" \
- "BISON=$(BISON)" $(DO)) ; then true ; \
- else exit 1 ; fi ; \
- else true ; fi ; \
- done
-
-stage1: force
- - mkdir stage1
- - mv -f $(STAGESTUFF) stage1
- $(MAKE) subdir_do DO=stage1 "DODIRS=$(SUBDIRS)"
-
-stage2: force
- - mkdir stage2
- - mv -f $(STAGESTUFF) stage2
- $(MAKE) subdir_do DO=stage2 "DODIRS=$(SUBDIRS)"
-
-stage3: force
- - mkdir stage3
- - mv -f $(STAGESTUFF) stage3
- $(MAKE) subdir_do DO=stage3 "DODIRS=$(SUBDIRS)"
-
-against=stage2
-
-comparison: force
- for i in *.o ; do cmp $$i $(against)/$$i || exit 1 ; done
- $(MAKE) subdir_do DO=comparison "DODIRS=$(SUBDIRS)"
-
-de-stage1: force
- - (cd stage1 ; mv -f $(STAGESTUFF) ..)
- - rmdir stage1
- $(MAKE) subdir_do DO=de-stage1 "DODIRS=$(SUBDIRS)"
-
-de-stage2: force
- - (cd stage2 ; mv -f $(STAGESTUFF) ..)
- - rmdir stage2
- $(MAKE) subdir_do DO=de-stage2 "DODIRS=$(SUBDIRS)"
-
-de-stage3: force
- - (cd stage3 ; mv -f $(STAGESTUFF) ..)
- - rmdir stage3
- $(MAKE) subdir_do DO=de-stage3 "DODIRS=$(SUBDIRS)"
-
-tags etags: TAGS
-
-TAGS: force
- etags $(INCDIR)/*.h $(srcdir)/*.h $(srcdir)/*.c
-
-clean:
- rm -f *.[oa] *~ core *.E *.p *.ip
- $(MAKE) subdir_do DO=clean "DODIRS=$(SUBDIRS)"
-
-clobber realclean: clean
- rm -f libbfd.a TAGS
- $(MAKE) subdir_do DO=clobber "DODIRS=$(SUBDIRS)"
-
-# Mark everything as depending on config.status, since the timestamp on
-# sysdep.h might actually move backwards if we reconfig and relink it
-# to a different hosts/h-xxx.h file. This will force a recompile anyway.
-RECONFIG = # config.status
-$(BFD_LIBS): libbfd.h $(BFD_H) $(RECONFIG)
-$(BFD_MACHINES): libbfd.h $(BFD_H) $(RECONFIG)
-$(BFD_BACKENDS): libbfd.h $(BFD_H) $(RECONFIG)
-$(OPTIONAL_BACKENDS): libbfd.h $(BFD_H) $(RECONFIG)
-
-# Get around a Sun Make bug in SunOS 4.1.1 with VPATH
-cpu-i386.o: cpu-i386.c
-
-saber:
- #suppress 65 on bfd_map_over_sections
- #suppress 66 on bfd_map_over_sections
- #suppress 67 on bfd_map_over_sections
- #suppress 68 on bfd_map_over_sections
- #suppress 69 on bfd_map_over_sections
- #suppress 70 on bfd_map_over_sections
- #suppress 110 in bfd_map_over_sections
- #suppress 112 in bfd_map_over_sections
- #suppress 530
- #suppress 590 in swap_exec_header
- #suppress 590 in _bfd_dummy_core_file_matches_executable_p
- #suppress 590 in bfd_dont_truncate_arname
- #suppress 590 on ignore
- #suppress 590 on abfd
- #setopt load_flags $(CFLAGS)
- #load $(CFILES)
-
-
-#-----------------------------------------------------------------------------
-# 'STANDARD' GNU/960 TARGETS BELOW THIS POINT
-#
-# 'VERSION' file must be present and contain a string of the form "x.y"
-#-----------------------------------------------------------------------------
-
-ver960.c: FORCE
- rm -f ver960.c
- echo "char ${TARG}_ver[]= \"${TARG} `cat VERSION`, `date`\";" > ver960.c
-
-
-# This target should be invoked before building a new release.
-# 'VERSION' file must be present and contain a string of the form "x.y"
-#
-roll:
- @V=`cat VERSION` ; \
- MAJ=`sed 's/\..*//' VERSION` ; \
- MIN=`sed 's/.*\.//' VERSION` ; \
- V=$$MAJ.`expr $$MIN 1` ; \
- rm -f VERSION ; \
- echo $$V >VERSION ; \
- echo Version $$V
-
-# Dummy target to force execution of dependent targets.
-#
-force:
-
-install:
- cp libbfd.a $(libdir)/libbfd.a.new
- $(RANLIB) $(libdir)/libbfd.a.new
- mv -f $(libdir)/libbfd.a.new $(libdir)/libbfd.a
- cp $(INCDIR)/bfd.h $(includedir)/bfd.h
- $(MAKE) subdir_do DO=install "DODIRS=$(SUBDIRS)"
-
-# Target to uncomment host-specific lines in this makefile. Such lines must
-# have the following string beginning in column 1: #__<hostname>__#
-# Original Makefile is backed up as 'Makefile.old'.
-#
-# Invoke with: make make HOST=xxx
-#
-make:
- -@if test $(HOST)x = x ; then \
- echo 'Specify "make make HOST=???"'; \
- exit 1; \
- fi ; \
- grep -s "^#The next line was generated by 'make make'" Makefile; \
- if test $$? = 0 ; then \
- echo "Makefile has already been processed with 'make make'";\
- exit 1; \
- fi ; \
- mv -f Makefile Makefile.old; \
- echo "#The next line was generated by 'make make'" >Makefile ; \
- echo "HOST=$(HOST)" >>Makefile ; \
- echo >>Makefile ; \
- sed "s/^#__$(HOST)__#//" < Makefile.old >>Makefile
-
-Makefile: $(srcdir)/Makefile.in $(host_makefile_frag) $(target_makefile_frag)
- $(SHELL) ./config.status
-
-dep: $(CFILES)
- mkdep $(CFLAGS) $?
-
-
-
-headers:
- (cd $(docdir); $(MAKE) protos)
- # Rebuild prototypes in bfd.h
- cp $(docdir)/bfd.h $(BFD_H)
- cp $(docdir)/libbfd.h $(srcdir)/libbfd.h
- cp $(docdir)/libcoff.h $(srcdir)/libcoff.h
-
-bfd.info:
- ( cd $(docdir); $(MAKE) bfd.info)
-
-bfd.dvi:
- (cd $(docdir); $(MAKE) bfd.dvi)
-
-bfd.ps:
- (cd $(docdir); $(MAKE) bfd.ps)
-
-# What appears below is generated by a hacked mkdep using gcc -MM.
-
-# DO NOT DELETE THIS LINE -- mkdep uses it.
-# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
-
-libbfd.o : libbfd.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h libbfd.h
-opncls.o : opncls.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h libbfd.h
-bfd.o : bfd.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h libbfd.h
-archive.o : archive.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h libbfd.h \
- $(INCDIR)/ar.h $(INCDIR)/ranlib.h
-targets.o : targets.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h libbfd.h
-cache.o : cache.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h libbfd.h
-archures.o : archures.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h
-aout64.o : aout64.c
-aout32.o : aout32.c aoutx.h $(INCDIR)/bfd.h $(INCDIR)/ansidecl.h \
- $(INCDIR)/obstack.h libaout.h libbfd.h $(INCDIR)/aout64.h \
- $(INCDIR)/stabgnu.h $(INCDIR)/stab.def $(INCDIR)/ar.h
-sunos.o : sunos.c aoutf1.h $(INCDIR)/bfd.h $(INCDIR)/obstack.h \
- libaout.h libbfd.h $(INCDIR)/aout64.h $(INCDIR)/stabgnu.h \
- $(INCDIR)/stab.def $(INCDIR)/ar.h
-demo64.o : demo64.c
-
-srec.o : srec.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h libbfd.h
-oasys.o : oasys.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h libbfd.h \
- $(INCDIR)/oasys.h liboasys.h
-ieee.o : ieee.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h libbfd.h \
- $(INCDIR)/ieee.h libieee.h
-coff-h8300.o: coff-h8300.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h libbfd.h \
- $(INCDIR)/coff-h8300.h $(INCDIR)/internalcoff.h libcoff.h coffcode.h
-format.o : format.c $(INCDIR)/bfd.h \
- $(INCDIR)/obstack.h libbfd.h
-section.o : section.c $(INCDIR)/bfd.h \
- $(INCDIR)/obstack.h libbfd.h
-core.o : core.c $(INCDIR)/bfd.h \
- $(INCDIR)/obstack.h libbfd.h
-syms.o : syms.c $(INCDIR)/bfd.h \
- $(INCDIR)/obstack.h libbfd.h
-syms.o : stab-syms.c
-reloc.o : reloc.c $(INCDIR)/bfd.h \
- $(INCDIR)/obstack.h libbfd.h
-
-trad-core.o : trad-core.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h \
- libbfd.h libaout.h
-newsos3.o : newsos3.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h libbfd.h \
- $(INCDIR)/aout64.h $(INCDIR)/stabgnu.h $(INCDIR)/stab.def \
- $(INCDIR)/ar.h libaout.h
-i386aout.o : i386aout.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h libbfd.h \
- $(INCDIR)/aout64.h $(INCDIR)/stabgnu.h $(INCDIR)/stab.def \
- $(INCDIR)/ar.h libaout.h
-bout.o : bout.c $(INCDIR)/bfd.h $(INCDIR)/obstack.h libbfd.h \
- $(INCDIR)/bout.h $(INCDIR)/stabgnu.h $(INCDIR)/stab.def libaout.h
-
-# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
diff --git a/bfd/mergecom-p b/bfd/mergecom-p
deleted file mode 100755
index 456478b..0000000
--- a/bfd/mergecom-p
+++ /dev/null
@@ -1,5 +0,0 @@
-# SED script for preprocessing embedded headers from C source comments
-# Locate and coalesce adjacent comments
-/\*\/$/N
-s/\*\/\n\/\*/\
-/
diff --git a/bfd/misc.c b/bfd/misc.c
deleted file mode 100755
index 041fcde..0000000
--- a/bfd/misc.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Copyright (C) 1990, 1991 Free Software Foundation, Inc.
-
-This file is part of BFD, the Binary File Diddler.
-
-BFD is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
-
-BFD is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with BFD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* $Id$ */
-
-#if 0
- /* xoxorich. coelesced from other binutils. */
-/* This crap should all be bundled with the binutils, or else be in its
- own library, but for expediency we are doing it this way right now. */
-
-/*
- * Last Mod Mon Feb 18 14:49:39 PST 1991, by rich@cygint.cygnus.com
- */
-
-#include <stdio.h>
-#include "misc.h"
-#if __STDC__
-extern char *realloc (char * ptr, int size);
-extern char *malloc (int size);
-#else
-extern char *realloc ();
-extern char *malloc ();
-#endif
-
-/* Print the filename of the current file on 'outfile' (a stdio stream). */
-
-/* Current file's name */
-
-char *input_name;
-
-/* Current member's name, or 0 if processing a non-library file. */
-
-char *input_member;
-
-void print_file_name (outfile)
- FILE *outfile;
-{
- fprintf (outfile, "%s", input_name);
- if (input_member)
- fprintf (outfile, "(%s)", input_member);
-}
-
-/* process one input file */
-void scan_library ();
-
-char *program_name;
-
-/* Report a nonfatal error.
- STRING is a format for printf, and ARG1 ... ARG3 are args for it. */
-/*VARARGS*/
-void
-error (string, arg1, arg2, arg3)
- char *string, *arg1, *arg2, *arg3;
-{
- fprintf (stderr, "%s: ", program_name);
- fprintf (stderr, string, arg1, arg2, arg3);
- fprintf (stderr, "\n");
-}
-
-
-
-/* Report a nonfatal error.
- STRING is printed, followed by the current file name. */
-
-void
-error_with_file (string)
- char *string;
-{
- fprintf (stderr, "%s: ", program_name);
- print_file_name (stderr);
- fprintf (stderr, ": ");
- fprintf (stderr, string);
- fprintf (stderr, "\n");
-}
-
-/* Like malloc but get fatal error if memory is exhausted. */
-
-
-/* Like realloc but get fatal error if memory is exhausted. */
-
-
-/* end of misc.c */
-#endif
diff --git a/bfd/misc.h b/bfd/misc.h
deleted file mode 100755
index 05935c2..0000000
--- a/bfd/misc.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright (C) 1990, 1991 Free Software Foundation, Inc.
-
-This file is part of BFD, the Binary File Diddler.
-
-BFD is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
-
-BFD is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with BFD; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* $Id$ */
-
-/* xoxorich. coelesced from binutils.
- *
- * Last Mod Mon Feb 18 14:49:51 PST 1991, by rich@cygint.cygnus.com
- */
-
-#ifndef MISC_H
-#define MISC_H 1
-
-#include "ranlib.h"
-
-#ifdef USG
-#include <string.h>
-#else
-#include <strings.h>
-#endif /* USG */
-
-#ifdef never
-#ifdef LOCKS
-#undef LOCKS
-#endif /* LOCKS */
-#endif /* never */
-
- /* used for masking system io calls into stdio. */
-
-/* the name, ie, argv[0], of this program. */
-
-extern char *program_name;
-
-/* Current file's name */
-
-extern char *input_name;
-
-/* Current member's name, or 0 if processing a non-library file. */
-
-extern char *input_member;
-
-/* Report an error using the message for the last failed system call,
- followed by the string NAME. */
-
-#define perror_name(name) perror(concat(program_name, ": error on ", name))
-#define pfatal_with_name(name) {perror_name(name);exit(-1);}
-
-#ifdef __STDC__
-
-extern char *concat(char *a, char *b, char *c);
-extern void *xmalloc(unsigned int size);
-extern void * xrealloc(char *ptr, int size);
-extern void error(char *string, char *arg1, char *arg2, char *arg3);
-extern void error_with_file(char *string);
-extern void fatal(char *string, char*a1, char*a2, char*a3);
-extern void print_file_name(FILE *outfile);
-extern void swap_symdef_table(struct symdef *sym, int count);
-#else
-extern char *alloca();
-extern char *concat();
-extern void * xmalloc();
-extern void *xrealloc();
-extern void error();
-extern void error_with_file();
-extern void fatal();
-extern void print_file_name();
-extern void swap_symdef_table();
-#endif /* __STDC__ */
-
-#endif /* MISC_H */
-
-/*
- * Local Variables:
- * comment-column: 0
- * End:
- */
-
-/* end of misc.h */
diff --git a/bfd/movecom-p b/bfd/movecom-p
deleted file mode 100755
index 7ed04c7..0000000
--- a/bfd/movecom-p
+++ /dev/null
@@ -1,8 +0,0 @@
-# sed script for BFD header files:
-# Transpose <blank line> <end comment>
-/^$/,/^ *[^ ]*.*$/{
-/^$/N
-/^ *\n\*\/$/c\
-*\/\
-
-}
diff --git a/bfd/obstack.c b/bfd/obstack.c
deleted file mode 100755
index bbed70b..0000000
--- a/bfd/obstack.c
+++ /dev/null
@@ -1,330 +0,0 @@
-/* obstack.c - subroutines used implicitly by object stack macros
- Copyright (C) 1988 Free Software Foundation, Inc.
-
-This program is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-#include <ansidecl.h>
-#include <sysdep.h>
-#include "obstack.h"
-
-
-/* Determine default alignment. */
-struct fooalign {char x; double d;};
-#define DEFAULT_ALIGNMENT ((char *)&((struct fooalign *) 0)->d - (char *)0)
-/* If malloc were really smart, it would round addresses to DEFAULT_ALIGNMENT.
- But in fact it might be less smart and round addresses to as much as
- DEFAULT_ROUNDING. So we prepare for it to do that. */
-union fooround {long x; double d;};
-#define DEFAULT_ROUNDING (sizeof (union fooround))
-
-/* When we copy a long block of data, this is the unit to do it with.
- On some machines, copying successive ints does not work;
- in such a case, redefine COPYING_UNIT to `long' (if that works)
- or `char' as a last resort. */
-#ifndef COPYING_UNIT
-#define COPYING_UNIT int
-#endif
-
-/* The non-GNU-C macros copy the obstack into this global variable
- to avoid multiple evaluation. */
-
-struct obstack *_obstack;
-
-/* Initialize an obstack H for use. Specify chunk size SIZE (0 means default).
- Objects start on multiples of ALIGNMENT (0 means use default).
- CHUNKFUN is the function to use to allocate chunks,
- and FREEFUN the function to free them. */
-
-void DEFUN(_obstack_begin,(h, size, alignment, chunkfun, freefun),
- struct obstack *h AND
- int size AND
- int alignment AND
- PTR (*chunkfun) () AND
- void (*freefun) ())
-{
- register struct _obstack_chunk* chunk; /* points to new chunk */
-
- if (alignment == 0)
- alignment = DEFAULT_ALIGNMENT;
- if (size == 0)
- /* Default size is what GNU malloc can fit in a 4096-byte block. */
- {
- /* 12 is sizeof (mhead) and 4 is EXTRA from GNU malloc.
- Use the values for range checking, because if range checking is off,
- the extra bytes won't be missed terribly, but if range checking is on
- and we used a larger request, a whole extra 4096 bytes would be
- allocated.
-
- These number are irrelevant to the new GNU malloc. I suspect it is
- less sensitive to the size of the request. */
- int extra = ((((12 + DEFAULT_ROUNDING - 1) & ~(DEFAULT_ROUNDING - 1))
- + 4 + DEFAULT_ROUNDING - 1)
- & ~(DEFAULT_ROUNDING - 1));
- size = 4096 - extra;
- }
-
- h->chunkfun = chunkfun;
- h->freefun = freefun;
- h->chunk_size = size;
- h->alignment_mask = alignment - 1;
-
- chunk = h->chunk = (struct _obstack_chunk *)(*h->chunkfun) (h->chunk_size);
- h->next_free = h->object_base = chunk->contents;
- h->chunk_limit = chunk->limit
- = (char *) chunk + h->chunk_size;
- chunk->prev = 0;
-}
-
-/* Allocate a new current chunk for the obstack *H
- on the assumption that LENGTH bytes need to be added
- to the current object, or a new object of length LENGTH allocated.
- Copies any partial object from the end of the old chunk
- to the beginning of the new one.
-
- The function must be "int" so it can be used in non-ANSI C
- compilers in a : expression. */
-
-int
-DEFUN(_obstack_newchunk,(h, length),
- struct obstack *h AND
- int length)
-{
- register struct _obstack_chunk* old_chunk = h->chunk;
- register struct _obstack_chunk* new_chunk;
- register long new_size;
- register int obj_size = h->next_free - h->object_base;
- register int i;
- int already;
-
- /* Compute size for new chunk. */
- new_size = (obj_size + length) + (obj_size >> 3) + 100;
- if (new_size < h->chunk_size)
- new_size = h->chunk_size;
-
- /* Allocate and initialize the new chunk. */
- new_chunk = h->chunk = (struct _obstack_chunk *)(*h->chunkfun) (new_size);
- new_chunk->prev = old_chunk;
- new_chunk->limit = h->chunk_limit = (char *) new_chunk + new_size;
-
- /* Move the existing object to the new chunk.
- Word at a time is fast and is safe if the object
- is sufficiently aligned. */
- if (h->alignment_mask + 1 >= DEFAULT_ALIGNMENT)
- {
- for (i = obj_size / sizeof (COPYING_UNIT) - 1;
- i >= 0; i--)
- ((COPYING_UNIT *)new_chunk->contents)[i]
- = ((COPYING_UNIT *)h->object_base)[i];
- /* We used to copy the odd few remaining bytes as one extra COPYING_UNIT,
- but that can cross a page boundary on a machine
- which does not do strict alignment for COPYING_UNITS. */
- already = obj_size / sizeof (COPYING_UNIT) * sizeof (COPYING_UNIT);
- }
- else
- already = 0;
- /* Copy remaining bytes one by one. */
- for (i = already; i < obj_size; i++)
- new_chunk->contents[i] = h->object_base[i];
-
- h->object_base = new_chunk->contents;
- h->next_free = h->object_base + obj_size;
-return 0;
-}
-
-/* Return nonzero if object OBJ has been allocated from obstack H.
- This is here for debugging.
- If you use it in a program, you are probably losing. */
-
-int
-DEFUN(_obstack_allocated_p, (h, obj),
- struct obstack *h AND
- PTR obj)
-{
- register struct _obstack_chunk* lp; /* below addr of any objects in this chunk */
- register struct _obstack_chunk* plp; /* point to previous chunk if any */
-
- lp = (h)->chunk;
- while (lp != 0 && ((PTR)lp > obj || (PTR)(lp)->limit < obj))
- {
- plp = lp -> prev;
- lp = plp;
- }
- return lp != 0;
-}
-
-/* Free objects in obstack H, including OBJ and everything allocate
- more recently than OBJ. If OBJ is zero, free everything in H. */
-
-#ifdef __STDC__
-#undef obstack_free
-void
-obstack_free (struct obstack *h, PTR obj)
-#else
-int
-_obstack_free (h, obj)
- struct obstack *h;
- PTR obj;
-#endif
-{
- register struct _obstack_chunk* lp; /* below addr of any objects in this chunk */
- register struct _obstack_chunk* plp; /* point to previous chunk if any */
-
- lp = (h)->chunk;
- /* We use >= because there cannot be an object at the beginning of a chunk.
- But there can be an empty object at that address
- at the end of another chunk. */
- while (lp != 0 && ((PTR)lp >= obj || (PTR)(lp)->limit < obj))
- {
- plp = lp -> prev;
- (*h->freefun) ((PTR) lp);
- lp = plp;
- }
- if (lp)
- {
- (h)->object_base = (h)->next_free = (char *)(obj);
- (h)->chunk_limit = lp->limit;
- (h)->chunk = lp;
- }
- else if (obj != 0)
- /* obj is not in any of the chunks! */
- abort ();
-}
-
-/* Let same .o link with output of gcc and other compilers. */
-
-#ifdef __STDC__
-int
-_obstack_free (h, obj)
- struct obstack *h;
- PTR obj;
-{
- obstack_free (h, obj);
- return 0;
-}
-#endif
-
-/* #if 0 */
-/* These are now turned off because the applications do not use it
- and it uses bcopy via obstack_grow, which causes trouble on sysV. */
-
-/* Now define the functional versions of the obstack macros.
- Define them to simply use the corresponding macros to do the job. */
-
-#ifdef __STDC__
-/* These function definitions do not work with non-ANSI preprocessors;
- they won't pass through the macro names in parentheses. */
-
-/* The function names appear in parentheses in order to prevent
- the macro-definitions of the names from being expanded there. */
-
-PTR (obstack_base) (obstack)
- struct obstack *obstack;
-{
- return obstack_base (obstack);
-}
-
-PTR (obstack_next_free) (obstack)
- struct obstack *obstack;
-{
- return obstack_next_free (obstack);
-}
-
-int (obstack_object_size) (obstack)
- struct obstack *obstack;
-{
- return obstack_object_size (obstack);
-}
-
-int (obstack_room) (obstack)
- struct obstack *obstack;
-{
- return obstack_room (obstack);
-}
-
-void (obstack_grow) (obstack, ptr, length)
- struct obstack *obstack;
- PTR ptr;
- int length;
-{
-(void) obstack_grow (obstack, ptr, length);
-}
-
-void (obstack_grow0) (obstack, ptr, length)
- struct obstack *obstack;
- PTR ptr;
- int length;
-{
-(void) obstack_grow0 (obstack, ptr, length);
-}
-
-void (obstack_1grow) (obstack, character)
- struct obstack *obstack;
- int character;
-{
-(void) obstack_1grow (obstack, character);
-}
-
-void (obstack_blank) (obstack, length)
- struct obstack *obstack;
- int length;
-{
-(void) obstack_blank (obstack, length);
-}
-
-void (obstack_1grow_fast) (obstack, character)
- struct obstack *obstack;
- int character;
-{
- obstack_1grow_fast (obstack, character);
-}
-
-void (obstack_blank_fast) (obstack, length)
- struct obstack *obstack;
- int length;
-{
- obstack_blank_fast (obstack, length);
-}
-
-PTR (obstack_finish) (obstack)
- struct obstack *obstack;
-{
- return obstack_finish (obstack);
-}
-
-PTR (obstack_alloc) (obstack, length)
- struct obstack *obstack;
- int length;
-{
- return obstack_alloc (obstack, length);
-}
-
-PTR (obstack_copy) (obstack, ptr, length)
- struct obstack *obstack;
- PTR ptr;
- int length;
-{
- return obstack_copy (obstack, ptr, length);
-}
-
-PTR (obstack_copy0) (obstack, ptr, length)
- struct obstack *obstack;
- PTR ptr;
- int length;
-{
- return obstack_copy0 (obstack, ptr, length);
-}
-
-#endif /* __STDC__ */
-
-
diff --git a/bfd/obstack.h b/bfd/obstack.h
deleted file mode 100755
index a4898ec..0000000
--- a/bfd/obstack.h
+++ /dev/null
@@ -1,413 +0,0 @@
-/* obstack.h - object stack macros
- Copyright (C) 1988 Free Software Foundation, Inc.
-
-This program is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 1, or (at your option) any
-later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* Summary:
-
-All the apparent functions defined here are macros. The idea
-is that you would use these pre-tested macros to solve a
-very specific set of problems, and they would run fast.
-Caution: no side-effects in arguments please!! They may be
-evaluated MANY times!!
-
-These macros operate a stack of objects. Each object starts life
-small, and may grow to maturity. (Consider building a word syllable
-by syllable.) An object can move while it is growing. Once it has
-been "finished" it never changes address again. So the "top of the
-stack" is typically an immature growing object, while the rest of the
-stack is of mature, fixed size and fixed address objects.
-
-These routines grab large chunks of memory, using a function you
-supply, called `obstack_chunk_alloc'. On occasion, they free chunks,
-by calling `obstack_chunk_free'. You must define them and declare
-them before using any obstack macros.
-
-Each independent stack is represented by a `struct obstack'.
-Each of the obstack macros expects a pointer to such a structure
-as the first argument.
-
-One motivation for this package is the problem of growing char strings
-in symbol tables. Unless you are "fascist pig with a read-only mind"
-[Gosper's immortal quote from HAKMEM item 154, out of context] you
-would not like to put any arbitrary upper limit on the length of your
-symbols.
-
-In practice this often means you will build many short symbols and a
-few long symbols. At the time you are reading a symbol you don't know
-how long it is. One traditional method is to read a symbol into a
-buffer, realloc()ating the buffer every time you try to read a symbol
-that is longer than the buffer. This is beaut, but you still will
-want to copy the symbol from the buffer to a more permanent
-symbol-table entry say about half the time.
-
-With obstacks, you can work differently. Use one obstack for all symbol
-names. As you read a symbol, grow the name in the obstack gradually.
-When the name is complete, finalize it. Then, if the symbol exists already,
-free the newly read name.
-
-The way we do this is to take a large chunk, allocating memory from
-low addresses. When you want to build a symbol in the chunk you just
-add chars above the current "high water mark" in the chunk. When you
-have finished adding chars, because you got to the end of the symbol,
-you know how long the chars are, and you can create a new object.
-Mostly the chars will not burst over the highest address of the chunk,
-because you would typically expect a chunk to be (say) 100 times as
-long as an average object.
-
-In case that isn't clear, when we have enough chars to make up
-the object, THEY ARE ALREADY CONTIGUOUS IN THE CHUNK (guaranteed)
-so we just point to it where it lies. No moving of chars is
-needed and this is the second win: potentially long strings need
-never be explicitly shuffled. Once an object is formed, it does not
-change its address during its lifetime.
-
-When the chars burst over a chunk boundary, we allocate a larger
-chunk, and then copy the partly formed object from the end of the old
-chunk to the beginning of the new larger chunk. We then carry on
-accreting characters to the end of the object as we normally would.
-
-A special macro is provided to add a single char at a time to a
-growing object. This allows the use of register variables, which
-break the ordinary 'growth' macro.
-
-Summary:
- We allocate large chunks.
- We carve out one object at a time from the current chunk.
- Once carved, an object never moves.
- We are free to append data of any size to the currently
- growing object.
- Exactly one object is growing in an obstack at any one time.
- You can run one obstack per control block.
- You may have as many control blocks as you dare.
- Because of the way we do it, you can `unwind' a obstack
- back to a previous state. (You may remove objects much
- as you would with a stack.)
-*/
-
-
-/* Don't do the contents of this file more than once. */
-
-#ifndef __OBSTACKS__
-#define __OBSTACKS__
-
-/* We use subtraction of (char *)0 instead of casting to int
- because on word-addressable machines a simple cast to int
- may ignore the byte-within-word field of the pointer. */
-
-#ifndef __PTR_TO_INT
-#define __PTR_TO_INT(P) ((P) - (char*)0)
-#endif
-
-#ifndef __INT_TO_PTR
-#define __INT_TO_PTR(P) ((P) + (char*)0)
-#endif
-
-struct _obstack_chunk /* Lives at front of each chunk. */
-{
- char *limit; /* 1 past end of this chunk */
- struct _obstack_chunk *prev; /* address of prior chunk or NULL */
- char contents[4]; /* objects begin here */
-};
-
-struct obstack /* control current object in current chunk */
-{
- long chunk_size; /* preferred size to allocate chunks in */
- struct _obstack_chunk* chunk; /* address of current struct obstack_chunk */
- char *object_base; /* address of object we are building */
- char *next_free; /* where to add next char to current object */
- char *chunk_limit; /* address of char after current chunk */
- int temp; /* Temporary for some macros. */
- int alignment_mask; /* Mask of alignment for each object. */
-
- PTR(*chunkfun) (); /* User's fcn to allocate a chunk. */
- void (*freefun) (); /* User's function to free a chunk. */
-};
-
-#ifdef __STDC__
-
-/* Do the function-declarations after the structs
- but before defining the macros. */
-
-void obstack_init (struct obstack *obstack);
-
-void * obstack_alloc (struct obstack *obstack, int size);
-
-void * obstack_copy (struct obstack *obstack, void *address, int size);
-void * obstack_copy0 (struct obstack *obstack, void *address, int size);
-
-void obstack_free (struct obstack *obstack, void *block);
-
-void obstack_blank (struct obstack *obstack, int size);
-
-void obstack_grow (struct obstack *obstack, void *data, int size);
-void obstack_grow0 (struct obstack *obstack, void *data, int size);
-
-void obstack_1grow (struct obstack *obstack, int data_char);
-void obstack_ptr_grow (struct obstack *obstack, void *data);
-void obstack_int_grow (struct obstack *obstack, int data);
-
-void * obstack_finish (struct obstack *obstack);
-
-int obstack_object_size (struct obstack *obstack);
-
-int obstack_room (struct obstack *obstack);
-void obstack_1grow_fast (struct obstack *obstack, int data_char);
-void obstack_ptr_grow_fast (struct obstack *obstack, void *data);
-void obstack_int_grow_fast (struct obstack *obstack, int data);
-void obstack_blank_fast (struct obstack *obstack, int size);
-
-void * obstack_base (struct obstack *obstack);
-void * obstack_next_free (struct obstack *obstack);
-int obstack_alignment_mask (struct obstack *obstack);
-int obstack_chunk_size (struct obstack *obstack);
-
-#endif /* __STDC__ */
-
-/* Non-ANSI C cannot really support alternative functions for these macros,
- so we do not declare them. */
-
-/* Pointer to beginning of object being allocated or to be allocated next.
- Note that this might not be the final address of the object
- because a new chunk might be needed to hold the final size. */
-
-#define obstack_base(h) ((h)->object_base)
-
-/* Size for allocating ordinary chunks. */
-
-#define obstack_chunk_size(h) ((h)->chunk_size)
-
-/* Pointer to next byte not yet allocated in current chunk. */
-
-#define obstack_next_free(h) ((h)->next_free)
-
-/* Mask specifying low bits that should be clear in address of an object. */
-
-#define obstack_alignment_mask(h) ((h)->alignment_mask)
-
-#define obstack_init(h) \
- _obstack_begin ((h), 0, 0, obstack_chunk_alloc, obstack_chunk_free)
-
-#define obstack_begin(h, size) \
- _obstack_begin ((h), (size), 0, obstack_chunk_alloc, obstack_chunk_free)
-
-#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = achar)
-
-#define obstack_blank_fast(h,n) ((h)->next_free += (n))
-
-#if defined (__GNUC__) && defined (__STDC__)
-
-/* For GNU C, if not -traditional,
- we can define these macros to compute all args only once
- without using a global variable.
- Also, we can avoid using the `temp' slot, to make faster code. */
-
-#define obstack_object_size(OBSTACK) \
- ({ struct obstack *__o = (OBSTACK); \
- (unsigned) (__o->next_free - __o->object_base); })
-
-#define obstack_room(OBSTACK) \
- ({ struct obstack *__o = (OBSTACK); \
- (unsigned) (__o->chunk_limit - __o->next_free); })
-
-#define obstack_grow(OBSTACK,where,length) \
-({ struct obstack *__o = (OBSTACK); \
- int __len = (length); \
- ((__o->next_free + __len > __o->chunk_limit) \
- ? _obstack_newchunk (__o, __len) : 0); \
- bcopy (where, __o->next_free, __len); \
- __o->next_free += __len; \
- (void) 0; })
-
-#define obstack_grow0(OBSTACK,where,length) \
-({ struct obstack *__o = (OBSTACK); \
- int __len = (length); \
- ((__o->next_free + __len + 1 > __o->chunk_limit) \
- ? _obstack_newchunk (__o, __len + 1) : 0), \
- bcopy (where, __o->next_free, __len), \
- __o->next_free += __len, \
- *(__o->next_free)++ = 0; \
- (void) 0; })
-
-#define obstack_1grow(OBSTACK,datum) \
-({ struct obstack *__o = (OBSTACK); \
- ((__o->next_free + 1 > __o->chunk_limit) \
- ? _obstack_newchunk (__o, 1) : 0), \
- *(__o->next_free)++ = (datum); \
- (void) 0; })
-
-/* These assume that the obstack alignment is good enough for pointers or ints,
- and that the data added so far to the current object
- shares that much alignment. */
-
-#define obstack_ptr_grow(OBSTACK,datum) \
-({ struct obstack *__o = (OBSTACK); \
- ((__o->next_free + sizeof (void *) > __o->chunk_limit) \
- ? _obstack_newchunk (__o, sizeof (void *)) : 0), \
- *((void **)__o->next_free)++ = ((void *)datum); \
- (void) 0; })
-
-#define obstack_int_grow(OBSTACK,datum) \
-({ struct obstack *__o = (OBSTACK); \
- ((__o->next_free + sizeof (int) > __o->chunk_limit) \
- ? _obstack_newchunk (__o, sizeof (int)) : 0), \
- *((int *)__o->next_free)++ = ((int)datum); \
- (void) 0; })
-
-#define obstack_ptr_grow_fast(h,aptr) (*((void **)(h)->next_free)++ = (void *)aptr)
-#define obstack_int_grow_fast(h,aint) (*((int *)(h)->next_free)++ = (int)aint)
-
-#define obstack_blank(OBSTACK,length) \
-({ struct obstack *__o = (OBSTACK); \
- int __len = (length); \
- ((__o->chunk_limit - __o->next_free < __len) \
- ? _obstack_newchunk (__o, __len) : 0); \
- __o->next_free += __len; \
- (void) 0; })
-
-#define obstack_alloc(OBSTACK,length) \
-({ struct obstack *__h = (OBSTACK); \
- obstack_blank (__h, (length)); \
- obstack_finish (__h); })
-
-#define obstack_copy(OBSTACK,where,length) \
-({ struct obstack *__h = (OBSTACK); \
- obstack_grow (__h, (where), (length)); \
- obstack_finish (__h); })
-
-#define obstack_copy0(OBSTACK,where,length) \
-({ struct obstack *__h = (OBSTACK); \
- obstack_grow0 (__h, (where), (length)); \
- obstack_finish (__h); })
-
-#define obstack_finish(OBSTACK) \
-({ struct obstack *__o = (OBSTACK); \
- void *value = (void *) __o->object_base; \
- __o->next_free \
- = __INT_TO_PTR ((__PTR_TO_INT (__o->next_free)+__o->alignment_mask)\
- & ~ (__o->alignment_mask)); \
- ((__o->next_free - (char *)__o->chunk \
- > __o->chunk_limit - (char *)__o->chunk) \
- ? (__o->next_free = __o->chunk_limit) : 0); \
- __o->object_base = __o->next_free; \
- value; })
-
-#define obstack_free(OBSTACK, OBJ) \
-({ struct obstack *__o = (OBSTACK); \
- void *__obj = (OBJ); \
- if (__obj > (void *)__o->chunk && __obj < (void *)__o->chunk_limit) \
- __o->next_free = __o->object_base = __obj; \
- else (obstack_free) (__o, __obj); })
-
-#else /* not __GNUC__ or not __STDC__ */
-
-#define obstack_object_size(h) \
- (unsigned) ((h)->next_free - (h)->object_base)
-
-#define obstack_room(h) \
- (unsigned) ((h)->chunk_limit - (h)->next_free)
-
-#define obstack_grow(h,where,length) \
-( (h)->temp = (length), \
- (((h)->next_free + (h)->temp > (h)->chunk_limit) \
- ? _obstack_newchunk ((h), (h)->temp) : 0), \
- bcopy (where, (h)->next_free, (h)->temp), \
- (h)->next_free += (h)->temp)
-
-#define obstack_grow0(h,where,length) \
-( (h)->temp = (length), \
- (((h)->next_free + (h)->temp + 1 > (h)->chunk_limit) \
- ? _obstack_newchunk ((h), (h)->temp + 1) : 0), \
- bcopy (where, (h)->next_free, (h)->temp), \
- (h)->next_free += (h)->temp, \
- *((h)->next_free)++ = 0)
-
-#define obstack_1grow(h,datum) \
-( (((h)->next_free + 1 > (h)->chunk_limit) \
- ? _obstack_newchunk ((h), 1) : 0), \
- *((h)->next_free)++ = (datum))
-
-#define obstack_ptr_grow(h,datum) \
-( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \
- ? _obstack_newchunk ((h), sizeof (char *)) : 0), \
- *((char **)(h)->next_free)++ = ((char *)datum))
-
-#define obstack_int_grow(h,datum) \
-( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \
- ? _obstack_newchunk ((h), sizeof (int)) : 0), \
- *((int *)(h)->next_free)++ = ((int)datum))
-
-#define obstack_ptr_grow_fast(h,aptr) (*((char **)(h)->next_free)++ = (char *)aptr)
-#define obstack_int_grow_fast(h,aint) (*((int *)(h)->next_free)++ = (int)aint)
-
-#define obstack_blank(h,length) \
-( (h)->temp = (length), \
- (((h)->chunk_limit - (h)->next_free < (h)->temp) \
- ? _obstack_newchunk ((h), (h)->temp) : 0), \
- (h)->next_free += (h)->temp)
-
-#define obstack_alloc(h,length) \
- (obstack_blank ((h), (length)), obstack_finish ((h)))
-
-#define obstack_copy(h,where,length) \
- (obstack_grow ((h), (where), (length)), obstack_finish ((h)))
-
-#define obstack_copy0(h,where,length) \
- (obstack_grow0 ((h), (where), (length)), obstack_finish ((h)))
-
-#define obstack_finish(h) \
-( (h)->temp = __PTR_TO_INT ((h)->object_base), \
- (h)->next_free \
- = __INT_TO_PTR ((__PTR_TO_INT ((h)->next_free)+(h)->alignment_mask) \
- & ~ ((h)->alignment_mask)), \
- (((h)->next_free - (char *)(h)->chunk \
- > (h)->chunk_limit - (char *)(h)->chunk) \
- ? ((h)->next_free = (h)->chunk_limit) : 0), \
- (h)->object_base = (h)->next_free, \
- __INT_TO_PTR ((h)->temp))
-
-#ifdef __STDC__
-#define obstack_free(h,obj) \
-( (h)->temp = (char *)(obj) - (char *) (h)->chunk, \
- (((h)->temp >= 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
- ? (int) ((h)->next_free = (h)->object_base \
- = (h)->temp + (char *) (h)->chunk) \
- : ((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0)))
-#else
-#define obstack_free(h,obj) \
-( (h)->temp = (char *)(obj) - (char *) (h)->chunk, \
- (((h)->temp >= 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\
- ? (int) ((h)->next_free = (h)->object_base \
- = (h)->temp + (char *) (h)->chunk) \
- : (int) _obstack_free ((h), (h)->temp + (char *) (h)->chunk)))
-#endif
-
-#endif /* not __GNUC__ or not __STDC__ */
-
-/* Declare the external functions we use; they are in obstack.c. */
-
-#ifdef __STDC__
- extern int _obstack_newchunk (struct obstack *h, int length);
- extern int _obstack_free (struct obstack *h, void *obj);
- extern void _obstack_begin (struct obstack *h, int size, int alignment,
- void *(*chunkfun) (), void (*freefun) ());
-#else
- extern int _obstack_newchunk ();
- extern int _obstack_free ();
- extern void _obstack_begin ();
-#endif
-
-#endif /* not __OBSTACKS__ */
-
diff --git a/bfd/opc-sparc.c b/bfd/opc-sparc.c
deleted file mode 100644
index a0c54ab..0000000
--- a/bfd/opc-sparc.c
+++ /dev/null
@@ -1,1811 +0,0 @@
-/* to sanitize this file, grep -v v9 < sparc.h > clean-sparc.h */
-
-/* Table of opcodes for the sparc.
- Copyright 1989, 1991, 1992 Free Software Foundation, Inc.
-
-This file is part of the BFD library.
-
-BFD is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
-version.
-
-BFD is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with this software; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* FIXME-someday: perhaps the ,a's and such should be embedded in the
- instruction's name rather than the args. This would make gas faster, pinsn
- slower, but would mess up some macros a bit. xoxorich. */
-
-#include <stdio.h>
-#include "ansidecl.h"
-#define BFD_EMIT_TABLE
-#include "opcode/sparc.h"
-
-const char *architecture_pname[] = {
- "v6",
- "v7",
- "v8",
- "sparclite",
- "v9",
- NULL,
-};
-
-
-#define COND(x) (((x)&0xf)<<25)
-#define MCOND(x,i_or_f) ((((i_or_f)&1)<<18)|(((x)>>11)&(0xf<<14))) /* v9 */
-
-#define CONDA (COND(0x8))
-#define CONDCC (COND(0xd))
-#define CONDCS (COND(0x5))
-#define CONDE (COND(0x1))
-#define CONDG (COND(0xa))
-#define CONDGE (COND(0xb))
-#define CONDGU (COND(0xc))
-#define CONDL (COND(0x3))
-#define CONDLE (COND(0x2))
-#define CONDLEU (COND(0x4))
-#define CONDN (COND(0x0))
-#define CONDNE (COND(0x9))
-#define CONDNEG (COND(0x6))
-#define CONDPOS (COND(0xe))
-#define CONDVC (COND(0xf))
-#define CONDVS (COND(0x7))
-
-#define CONDNZ CONDNE
-#define CONDZ CONDE
-#define CONDGEU CONDCC
-#define CONDLU CONDCS
-
-#define FCONDA (COND(0x8))
-#define FCONDE (COND(0x9))
-#define FCONDG (COND(0x6))
-#define FCONDGE (COND(0xb))
-#define FCONDL (COND(0x4))
-#define FCONDLE (COND(0xd))
-#define FCONDLG (COND(0x2))
-#define FCONDN (COND(0x0))
-#define FCONDNE (COND(0x1))
-#define FCONDO (COND(0xf))
-#define FCONDU (COND(0x7))
-#define FCONDUE (COND(0xa))
-#define FCONDUG (COND(0x5))
-#define FCONDUGE (COND(0xc))
-#define FCONDUL (COND(0x3))
-#define FCONDULE (COND(0xe))
-
-#define FCONDNZ FCONDNE
-#define FCONDZ FCONDE
-
-#define ICC (0) /* v9 */
-#define XCC (1<<11) /* v9 */
-#define FCC(x) (((x)&0x3)<<11) /* v9 */
-#define FBFCC(x) (((x)&0x3)<<20) /* v9 */
-
-/* The order of the opcodes in the table is significant:
-
- * The assembler requires that all instances of the same mnemonic must
- be consecutive. If they aren't, the assembler will bomb at runtime.
-
- * The disassembler should not care about the order of the opcodes.
-
-*/
-
-struct sparc_opcode sparc_opcodes[] = {
-
-{ "ld", F3(3, 0x00, 0), F3(~3, ~0x00, ~0), "[1+2],d", 0, v6 },
-{ "ld", F3(3, 0x00, 0), F3(~3, ~0x00, ~0)|RS2_G0, "[1],d", 0, v6 }, /* ld [rs1+%g0],d */
-{ "ld", F3(3, 0x00, 1), F3(~3, ~0x00, ~1), "[1+i],d", 0, v6 },
-{ "ld", F3(3, 0x00, 1), F3(~3, ~0x00, ~1), "[i+1],d", 0, v6 },
-{ "ld", F3(3, 0x00, 1), F3(~3, ~0x00, ~1)|RS1_G0, "[i],d", 0, v6 },
-{ "ld", F3(3, 0x00, 1), F3(~3, ~0x00, ~1)|SIMM13(~0), "[1],d", 0, v6 }, /* ld [rs1+0],d */
-{ "ld", F3(3, 0x20, 0), F3(~3, ~0x20, ~0), "[1+2],g", 0, v6 },
-{ "ld", F3(3, 0x20, 0), F3(~3, ~0x20, ~0)|RS2_G0, "[1],g", 0, v6 }, /* ld [rs1+%g0],d */
-{ "ld", F3(3, 0x20, 1), F3(~3, ~0x20, ~1), "[1+i],g", 0, v6 },
-{ "ld", F3(3, 0x20, 1), F3(~3, ~0x20, ~1), "[i+1],g", 0, v6 },
-{ "ld", F3(3, 0x20, 1), F3(~3, ~0x20, ~1)|RS1_G0, "[i],g", 0, v6 },
-{ "ld", F3(3, 0x20, 1), F3(~3, ~0x20, ~1)|SIMM13(~0), "[1],g", 0, v6 }, /* ld [rs1+0],d */
-{ "ld", F3(3, 0x21, 0), F3(~3, ~0x21, ~0), "[1+2],F", 0, v6 },
-{ "ld", F3(3, 0x21, 0), F3(~3, ~0x21, ~0)|RS2_G0, "[1],F", 0, v6 }, /* ld [rs1+%g0],d */
-{ "ld", F3(3, 0x21, 1), F3(~3, ~0x21, ~1), "[1+i],F", 0, v6 },
-{ "ld", F3(3, 0x21, 1), F3(~3, ~0x21, ~1), "[i+1],F", 0, v6 },
-{ "ld", F3(3, 0x21, 1), F3(~3, ~0x21, ~1)|RS1_G0, "[i],F", 0, v6 },
-{ "ld", F3(3, 0x21, 1), F3(~3, ~0x21, ~1)|SIMM13(~0), "[1],F", 0, v6 }, /* ld [rs1+0],d */
-{ "ld", F3(3, 0x30, 0), F3(~3, ~0x30, ~0), "[1+2],D", 0, v6 },
-{ "ld", F3(3, 0x30, 0), F3(~3, ~0x30, ~0)|RS2_G0, "[1],D", 0, v6 }, /* ld [rs1+%g0],d */
-{ "ld", F3(3, 0x30, 1), F3(~3, ~0x30, ~1), "[1+i],D", 0, v6 },
-{ "ld", F3(3, 0x30, 1), F3(~3, ~0x30, ~1), "[i+1],D", 0, v6 },
-{ "ld", F3(3, 0x30, 1), F3(~3, ~0x30, ~1)|RS1_G0, "[i],D", 0, v6 },
-{ "ld", F3(3, 0x30, 1), F3(~3, ~0x30, ~1)|SIMM13(~0), "[1],D", 0, v6 }, /* ld [rs1+0],d */
-{ "ld", F3(3, 0x31, 0), F3(~3, ~0x31, ~0), "[1+2],C", 0, v6 },
-{ "ld", F3(3, 0x31, 0), F3(~3, ~0x31, ~0)|RS2_G0, "[1],C", 0, v6 }, /* ld [rs1+%g0],d */
-{ "ld", F3(3, 0x31, 1), F3(~3, ~0x31, ~1), "[1+i],C", 0, v6 },
-{ "ld", F3(3, 0x31, 1), F3(~3, ~0x31, ~1), "[i+1],C", 0, v6 },
-{ "ld", F3(3, 0x31, 1), F3(~3, ~0x31, ~1)|RS1_G0, "[i],C", 0, v6 },
-{ "ld", F3(3, 0x31, 1), F3(~3, ~0x31, ~1)|SIMM13(~0), "[1],C", 0, v6 }, /* ld [rs1+0],d */
-
- /* FIXME-v9: combine ld, lduw, & ldw in macros. */
-{ "ldw", F3(3, 0x00, 0), F3(~3, ~0x00, ~0), "[1+2],d", F_ALIAS, v9 }, /* ldw === ld */
-{ "ldw", F3(3, 0x00, 0), F3(~3, ~0x00, ~0)|RS2_G0, "[1],d", F_ALIAS, v9 }, /* ld [rs1+%g0],d */
-{ "ldw", F3(3, 0x00, 1), F3(~3, ~0x00, ~1), "[1+i],d", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x00, 1), F3(~3, ~0x00, ~1), "[i+1],d", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x00, 1), F3(~3, ~0x00, ~1)|RS1_G0, "[i],d", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x00, 1), F3(~3, ~0x00, ~1)|SIMM13(~0), "[1],d", F_ALIAS, v9 }, /* ld [rs1+0],d */
-{ "ldw", F3(3, 0x20, 0), F3(~3, ~0x20, ~0), "[1+2],g", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x20, 0), F3(~3, ~0x20, ~0)|RS2_G0, "[1],g", F_ALIAS, v9 }, /* ld [rs1+%g0],d */
-{ "ldw", F3(3, 0x20, 1), F3(~3, ~0x20, ~1), "[1+i],g", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x20, 1), F3(~3, ~0x20, ~1), "[i+1],g", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x20, 1), F3(~3, ~0x20, ~1)|RS1_G0, "[i],g", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x20, 1), F3(~3, ~0x20, ~1)|SIMM13(~0), "[1],g", F_ALIAS, v9 }, /* ld [rs1+0],d */
-{ "ldw", F3(3, 0x21, 0), F3(~3, ~0x21, ~0), "[1+2],F", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x21, 0), F3(~3, ~0x21, ~0)|RS2_G0, "[1],F", F_ALIAS, v9 }, /* ld [rs1+%g0],d */
-{ "ldw", F3(3, 0x21, 1), F3(~3, ~0x21, ~1), "[1+i],F", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x21, 1), F3(~3, ~0x21, ~1), "[i+1],F", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x21, 1), F3(~3, ~0x21, ~1)|RS1_G0, "[i],F", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x21, 1), F3(~3, ~0x21, ~1)|SIMM13(~0), "[1],F", F_ALIAS, v9 }, /* ld [rs1+0],d */
-{ "ldw", F3(3, 0x30, 0), F3(~3, ~0x30, ~0), "[1+2],D", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x30, 0), F3(~3, ~0x30, ~0)|RS2_G0, "[1],D", F_ALIAS, v9 }, /* ld [rs1+%g0],d */
-{ "ldw", F3(3, 0x30, 1), F3(~3, ~0x30, ~1), "[1+i],D", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x30, 1), F3(~3, ~0x30, ~1), "[i+1],D", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x30, 1), F3(~3, ~0x30, ~1)|RS1_G0, "[i],D", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x30, 1), F3(~3, ~0x30, ~1)|SIMM13(~0), "[1],D", F_ALIAS, v9 }, /* ld [rs1+0],d */
-{ "ldw", F3(3, 0x31, 0), F3(~3, ~0x31, ~0), "[1+2],C", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x31, 0), F3(~3, ~0x31, ~0)|RS2_G0, "[1],C", F_ALIAS, v9 }, /* ld [rs1+%g0],d */
-{ "ldw", F3(3, 0x31, 1), F3(~3, ~0x31, ~1), "[1+i],C", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x31, 1), F3(~3, ~0x31, ~1), "[i+1],C", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x31, 1), F3(~3, ~0x31, ~1)|RS1_G0, "[i],C", F_ALIAS, v9 },
-{ "ldw", F3(3, 0x31, 1), F3(~3, ~0x31, ~1)|SIMM13(~0), "[1],C", F_ALIAS, v9 }, /* ld [rs1+0],d */
-
-{ "lduw", F3(3, 0x00, 0), F3(~3, ~0x00, ~0), "[1+2],d", F_ALIAS, v9 }, /* lduw === ld */
-{ "lduw", F3(3, 0x00, 0), F3(~3, ~0x00, ~0)|RS2_G0, "[1],d", F_ALIAS, v9 }, /* ld [rs1+%g0],d */
-{ "lduw", F3(3, 0x00, 1), F3(~3, ~0x00, ~1), "[1+i],d", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x00, 1), F3(~3, ~0x00, ~1), "[i+1],d", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x00, 1), F3(~3, ~0x00, ~1)|RS1_G0, "[i],d", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x00, 1), F3(~3, ~0x00, ~1)|SIMM13(~0), "[1],d", F_ALIAS, v9 }, /* ld [rs1+0],d */
-{ "lduw", F3(3, 0x20, 0), F3(~3, ~0x20, ~0), "[1+2],g", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x20, 0), F3(~3, ~0x20, ~0)|RS2_G0, "[1],g", F_ALIAS, v9 }, /* ld [rs1+%g0],d */
-{ "lduw", F3(3, 0x20, 1), F3(~3, ~0x20, ~1), "[1+i],g", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x20, 1), F3(~3, ~0x20, ~1), "[i+1],g", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x20, 1), F3(~3, ~0x20, ~1)|RS1_G0, "[i],g", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x20, 1), F3(~3, ~0x20, ~1)|SIMM13(~0), "[1],g", F_ALIAS, v9 }, /* ld [rs1+0],d */
-{ "lduw", F3(3, 0x21, 0), F3(~3, ~0x21, ~0), "[1+2],F", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x21, 0), F3(~3, ~0x21, ~0)|RS2_G0, "[1],F", F_ALIAS, v9 }, /* ld [rs1+%g0],d */
-{ "lduw", F3(3, 0x21, 1), F3(~3, ~0x21, ~1), "[1+i],F", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x21, 1), F3(~3, ~0x21, ~1), "[i+1],F", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x21, 1), F3(~3, ~0x21, ~1)|RS1_G0, "[i],F", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x21, 1), F3(~3, ~0x21, ~1)|SIMM13(~0), "[1],F", F_ALIAS, v9 }, /* ld [rs1+0],d */
-{ "lduw", F3(3, 0x30, 0), F3(~3, ~0x30, ~0), "[1+2],D", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x30, 0), F3(~3, ~0x30, ~0)|RS2_G0, "[1],D", F_ALIAS, v9 }, /* ld [rs1+%g0],d */
-{ "lduw", F3(3, 0x30, 1), F3(~3, ~0x30, ~1), "[1+i],D", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x30, 1), F3(~3, ~0x30, ~1), "[i+1],D", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x30, 1), F3(~3, ~0x30, ~1)|RS1_G0, "[i],D", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x30, 1), F3(~3, ~0x30, ~1)|SIMM13(~0), "[1],D", F_ALIAS, v9 }, /* ld [rs1+0],d */
-{ "lduw", F3(3, 0x31, 0), F3(~3, ~0x31, ~0), "[1+2],C", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x31, 0), F3(~3, ~0x31, ~0)|RS2_G0, "[1],C", F_ALIAS, v9 }, /* ld [rs1+%g0],d */
-{ "lduw", F3(3, 0x31, 1), F3(~3, ~0x31, ~1), "[1+i],C", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x31, 1), F3(~3, ~0x31, ~1), "[i+1],C", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x31, 1), F3(~3, ~0x31, ~1)|RS1_G0, "[i],C", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x31, 1), F3(~3, ~0x31, ~1)|SIMM13(~0), "[1],C", F_ALIAS, v9 }, /* ld [rs1+0],d */
-
-{ "lda", F3(3, 0x10, 0), F3(~3, ~0x10, ~0), "[1+2]A,d", 0, v6 },
-{ "lda", F3(3, 0x10, 0), F3(~3, ~0x10, ~0)|RS2_G0, "[1]A,d", 0, v6 }, /* lda [rs1+%g0],d */
-
-{ "ldd", F3(3, 0x03, 0), F3(~3, ~0x03, ~0)|ASI(~0), "[1+2],d", 0, v6 },
-{ "ldd", F3(3, 0x03, 0), F3(~3, ~0x03, ~0)|ASI_RS2(~0), "[1],d", 0, v6 }, /* ldd [rs1+%g0],d */
-{ "ldd", F3(3, 0x03, 1), F3(~3, ~0x03, ~1), "[1+i],d", 0, v6 },
-{ "ldd", F3(3, 0x03, 1), F3(~3, ~0x03, ~1), "[i+1],d", 0, v6 },
-{ "ldd", F3(3, 0x03, 1), F3(~3, ~0x03, ~1)|RS1_G0, "[i],d", 0, v6 },
-{ "ldd", F3(3, 0x03, 1), F3(~3, ~0x03, ~1)|SIMM13(~0), "[1],d", 0, v6 }, /* ldd [rs1+0],d */
-{ "ldd", F3(3, 0x23, 0), F3(~3, ~0x23, ~0)|ASI(~0), "[1+2],g", 0, v6 },
-{ "ldd", F3(3, 0x23, 0), F3(~3, ~0x23, ~0)|ASI_RS2(~0), "[1],g", 0, v6 }, /* ldd [rs1+%g0],d */
-{ "ldd", F3(3, 0x23, 1), F3(~3, ~0x23, ~1), "[1+i],g", 0, v6 },
-{ "ldd", F3(3, 0x23, 1), F3(~3, ~0x23, ~1), "[i+1],g", 0, v6 },
-{ "ldd", F3(3, 0x23, 1), F3(~3, ~0x23, ~1)|RS1_G0, "[i],g", 0, v6 },
-{ "ldd", F3(3, 0x23, 1), F3(~3, ~0x23, ~1)|SIMM13(~0), "[1],g", 0, v6 }, /* ldd [rs1+0],d */
-{ "ldd", F3(3, 0x33, 0), F3(~3, ~0x33, ~0)|ASI(~0), "[1+2],D", 0, v6 },
-{ "ldd", F3(3, 0x33, 0), F3(~3, ~0x33, ~0)|ASI_RS2(~0), "[1],D", 0, v6 }, /* ldd [rs1+%g0],d */
-{ "ldd", F3(3, 0x33, 1), F3(~3, ~0x33, ~1), "[1+i],D", 0, v6 },
-{ "ldd", F3(3, 0x33, 1), F3(~3, ~0x33, ~1), "[i+1],D", 0, v6 },
-{ "ldd", F3(3, 0x33, 1), F3(~3, ~0x33, ~1)|RS1_G0, "[i],D", 0, v6 },
-{ "ldd", F3(3, 0x33, 1), F3(~3, ~0x33, ~1)|SIMM13(~0), "[1],D", 0, v6 }, /* ldd [rs1+0],d */
-{ "ldsb", F3(3, 0x09, 0), F3(~3, ~0x09, ~0)|ASI(~0), "[1+2],d", 0, v6 },
-{ "ldsb", F3(3, 0x09, 0), F3(~3, ~0x09, ~0)|ASI_RS2(~0), "[1],d", 0, v6 }, /* ldsb [rs1+%g0],d */
-{ "ldsb", F3(3, 0x09, 1), F3(~3, ~0x09, ~1), "[1+i],d", 0, v6 },
-{ "ldsb", F3(3, 0x09, 1), F3(~3, ~0x09, ~1), "[i+1],d", 0, v6 },
-{ "ldsb", F3(3, 0x09, 1), F3(~3, ~0x09, ~1)|RS1_G0, "[i],d", 0, v6 },
-{ "ldsb", F3(3, 0x09, 1), F3(~3, ~0x09, ~1)|SIMM13(~0), "[1],d", 0, v6 }, /* ldsb [rs1+0],d */
-{ "ldsh", F3(3, 0x0a, 0), F3(~3, ~0x0a, ~0)|ASI_RS2(~0), "[1],d", 0, v6 }, /* ldsh [rs1+%g0],d */
-{ "ldsh", F3(3, 0x0a, 0), F3(~3, ~0x0a, ~0)|ASI(~0), "[1+2],d", 0, v6 },
-{ "ldsh", F3(3, 0x0a, 1), F3(~3, ~0x0a, ~1), "[1+i],d", 0, v6 },
-{ "ldsh", F3(3, 0x0a, 1), F3(~3, ~0x0a, ~1), "[i+1],d", 0, v6 },
-{ "ldsh", F3(3, 0x0a, 1), F3(~3, ~0x0a, ~1)|RS1_G0, "[i],d", 0, v6 },
-{ "ldsh", F3(3, 0x0a, 1), F3(~3, ~0x0a, ~1)|SIMM13(~0), "[1],d", 0, v6 }, /* ldsh [rs1+0],d */
-{ "ldstub", F3(3, 0x0d, 0), F3(~3, ~0x0d, ~0)|ASI(~0), "[1+2],d", 0, v6 },
-{ "ldstub", F3(3, 0x0d, 0), F3(~3, ~0x0d, ~0)|ASI_RS2(~0), "[1],d", 0, v6 }, /* ldstub [rs1+%g0],d */
-{ "ldstub", F3(3, 0x0d, 1), F3(~3, ~0x0d, ~1), "[1+i],d", 0, v6 },
-{ "ldstub", F3(3, 0x0d, 1), F3(~3, ~0x0d, ~1), "[i+1],d", 0, v6 },
-{ "ldstub", F3(3, 0x0d, 1), F3(~3, ~0x0d, ~1)|RS1_G0, "[i],d", 0, v6 },
-{ "ldsw", F3(3, 0x08, 0), F3(~3, ~0x08, ~0)|ASI(~0), "[1+2],d", 0, v9 },
-{ "ldsw", F3(3, 0x08, 0), F3(~3, ~0x08, ~0)|ASI_RS2(~0), "[1],d", 0, v9 }, /* ldsw [rs1+%g0],d */
-{ "ldsw", F3(3, 0x08, 1), F3(~3, ~0x08, ~1), "[1+i],d", 0, v9 },
-{ "ldsw", F3(3, 0x08, 1), F3(~3, ~0x08, ~1), "[i+1],d", 0, v9 },
-{ "ldsw", F3(3, 0x08, 1), F3(~3, ~0x08, ~1)|RS1_G0, "[i],d", 0, v9 },
-{ "ldsw", F3(3, 0x08, 1), F3(~3, ~0x08, ~1)|SIMM13(~0), "[1],d", 0, v9 }, /* ldsw [rs1+0],d */
-{ "ldub", F3(3, 0x01, 0), F3(~3, ~0x01, ~0)|ASI(~0), "[1+2],d", 0, v6 },
-{ "ldub", F3(3, 0x01, 0), F3(~3, ~0x01, ~0)|ASI_RS2(~0), "[1],d", 0, v6 }, /* ldub [rs1+%g0],d */
-{ "ldub", F3(3, 0x01, 1), F3(~3, ~0x01, ~1), "[1+i],d", 0, v6 },
-{ "ldub", F3(3, 0x01, 1), F3(~3, ~0x01, ~1), "[i+1],d", 0, v6 },
-{ "ldub", F3(3, 0x01, 1), F3(~3, ~0x01, ~1)|RS1_G0, "[i],d", 0, v6 },
-{ "ldub", F3(3, 0x01, 1), F3(~3, ~0x01, ~1)|SIMM13(~0), "[1],d", 0, v6 }, /* ldub [rs1+0],d */
-{ "lduh", F3(3, 0x02, 0), F3(~3, ~0x02, ~0)|ASI(~0), "[1+2],d", 0, v6 },
-{ "lduh", F3(3, 0x02, 0), F3(~3, ~0x02, ~0)|ASI_RS2(~0), "[1],d", 0, v6 }, /* lduh [rs1+%g0],d */
-{ "lduh", F3(3, 0x02, 1), F3(~3, ~0x02, ~1), "[1+i],d", 0, v6 },
-{ "lduh", F3(3, 0x02, 1), F3(~3, ~0x02, ~1), "[i+1],d", 0, v6 },
-{ "lduh", F3(3, 0x02, 1), F3(~3, ~0x02, ~1)|RS1_G0, "[i],d", 0, v6 },
-{ "lduh", F3(3, 0x02, 1), F3(~3, ~0x02, ~1)|SIMM13(~0), "[1],d", 0, v6 }, /* lduh [rs1+0],d */
-
-{ "ldx", F3(3, 0x0b, 0), F3(~3, ~0x0b, ~0)|ASI(~0), "[1+2],d", 0, v9 },
-{ "ldx", F3(3, 0x0b, 0), F3(~3, ~0x0b, ~0)|ASI_RS2(~0), "[1],d", 0, v9 }, /* ldx [rs1+%g0],d */
-{ "ldx", F3(3, 0x0b, 1), F3(~3, ~0x0b, ~1), "[1+i],d", 0, v9 },
-{ "ldx", F3(3, 0x0b, 1), F3(~3, ~0x0b, ~1), "[i+1],d", 0, v9 },
-{ "ldx", F3(3, 0x0b, 1), F3(~3, ~0x0b, ~1)|RS1_G0, "[i],d", 0, v9 },
-{ "ldx", F3(3, 0x0b, 1), F3(~3, ~0x0b, ~1)|SIMM13(~0), "[1],d", 0, v9 }, /* ldx [rs1+0],d */
-{ "ldx", F3(3, 0x29, 0), F3(~3, ~0x29, ~0), "[1+2],F", 0, v9 },
-{ "ldx", F3(3, 0x29, 0), F3(~3, ~0x29, ~0)|RS2_G0, "[1],F", 0, v9 }, /* ld [rs1+%g0],d */
-{ "ldx", F3(3, 0x29, 1), F3(~3, ~0x29, ~1), "[1+i],F", 0, v9 },
-{ "ldx", F3(3, 0x29, 1), F3(~3, ~0x29, ~1), "[i+1],F", 0, v9 },
-{ "ldx", F3(3, 0x29, 1), F3(~3, ~0x29, ~1)|RS1_G0, "[i],F", 0, v9 },
-{ "ldx", F3(3, 0x29, 1), F3(~3, ~0x29, ~1)|SIMM13(~0), "[1],F", 0, v9 }, /* ld [rs1+0],d */
-
-{ "ldda", F3(3, 0x13, 0), F3(~3, ~0x13, ~0), "[1+2]A,d", 0, v6 },
-{ "ldda", F3(3, 0x13, 0), F3(~3, ~0x13, ~0)|RS2_G0, "[1]A,d", 0, v6 }, /* ldda [rs1+%g0],d */
-{ "ldsba", F3(3, 0x19, 0), F3(~3, ~0x19, ~0), "[1+2]A,d", 0, v6 },
-{ "ldsba", F3(3, 0x19, 0), F3(~3, ~0x19, ~0)|RS2_G0, "[1]A,d", 0, v6 }, /* ldsba [rs1+%g0],d */
-{ "ldsha", F3(3, 0x1a, 0), F3(~3, ~0x1a, ~0), "[1+2]A,d", 0, v6 },
-{ "ldsha", F3(3, 0x1a, 0), F3(~3, ~0x1a, ~0)|RS2_G0, "[1]A,d", 0, v6 }, /* ldsha [rs1+%g0],d */
-{ "ldstuba", F3(3, 0x1d, 0), F3(~3, ~0x1d, ~0), "[1+2]A,d", 0, v6 },
-{ "ldstuba", F3(3, 0x1d, 0), F3(~3, ~0x1d, ~0)|RS2_G0, "[1]A,d", 0, v6 }, /* ldstuba [rs1+%g0],d */
-{ "ldswa", F3(3, 0x18, 0), F3(~3, ~0x18, ~0), "[1+2]A,d", 0, v9 }, /* lduwa === lda */
-{ "ldswa", F3(3, 0x18, 0), F3(~3, ~0x18, ~0)|RS2_G0, "[1]A,d", 0, v9 }, /* lda [rs1+%g0],d */
-{ "lduba", F3(3, 0x11, 0), F3(~3, ~0x11, ~0), "[1+2]A,d", 0, v6 },
-{ "lduba", F3(3, 0x11, 0), F3(~3, ~0x11, ~0)|RS2_G0, "[1]A,d", 0, v6 }, /* lduba [rs1+%g0],d */
-{ "lduha", F3(3, 0x12, 0), F3(~3, ~0x12, ~0), "[1+2]A,d", 0, v6 },
-{ "lduha", F3(3, 0x12, 0), F3(~3, ~0x12, ~0)|RS2_G0, "[1]A,d", 0, v6 }, /* lduha [rs1+%g0],d */
-{ "lduwa", F3(3, 0x10, 0), F3(~3, ~0x10, ~0), "[1+2]A,d", F_ALIAS, v9 }, /* lduwa === lda */
-{ "lduwa", F3(3, 0x10, 0), F3(~3, ~0x10, ~0)|RS2_G0, "[1]A,d", F_ALIAS, v9 }, /* lda [rs1+%g0],d */
-{ "ldxa", F3(3, 0x1b, 0), F3(~3, ~0x1b, ~0), "[1+2]A,d", 0, v9 }, /* lduwa === lda */
-{ "ldxa", F3(3, 0x1b, 0), F3(~3, ~0x1b, ~0)|RS2_G0, "[1]A,d", 0, v9 }, /* lda [rs1+%g0],d */
-
-{ "st", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|ASI(~0), "d,[1+2]", 0, v6 },
-{ "st", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|ASI_RS2(~0), "d,[1]", 0, v6 }, /* st d,[rs1+%g0] */
-{ "st", F3(3, 0x04, 1), F3(~3, ~0x04, ~1), "d,[1+i]", 0, v6 },
-{ "st", F3(3, 0x04, 1), F3(~3, ~0x04, ~1), "d,[i+1]", 0, v6 },
-{ "st", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|RS1_G0, "d,[i]", 0, v6 },
-{ "st", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|SIMM13(~0), "d,[1]", 0, v6 }, /* st d,[rs1+0] */
-{ "st", F3(3, 0x24, 0), F3(~3, ~0x24, ~0)|ASI(~0), "g,[1+2]", 0, v6 },
-{ "st", F3(3, 0x24, 0), F3(~3, ~0x24, ~0)|ASI_RS2(~0), "g,[1]", 0, v6 }, /* st d[rs1+%g0] */
-{ "st", F3(3, 0x24, 1), F3(~3, ~0x24, ~1), "g,[1+i]", 0, v6 },
-{ "st", F3(3, 0x24, 1), F3(~3, ~0x24, ~1), "g,[i+1]", 0, v6 },
-{ "st", F3(3, 0x24, 1), F3(~3, ~0x24, ~1)|RS1_G0, "g,[i]", 0, v6 },
-{ "st", F3(3, 0x24, 1), F3(~3, ~0x24, ~1)|SIMM13(~0), "g,[1]", 0, v6 }, /* st d,[rs1+0] */
-{ "st", F3(3, 0x34, 0), F3(~3, ~0x34, ~0)|ASI(~0), "D,[1+2]", 0, v6 },
-{ "st", F3(3, 0x34, 0), F3(~3, ~0x34, ~0)|ASI_RS2(~0), "D,[1]", 0, v6 }, /* st d,[rs1+%g0] */
-{ "st", F3(3, 0x34, 1), F3(~3, ~0x34, ~1), "D,[1+i]", 0, v6 },
-{ "st", F3(3, 0x34, 1), F3(~3, ~0x34, ~1), "D,[i+1]", 0, v6 },
-{ "st", F3(3, 0x34, 1), F3(~3, ~0x34, ~1)|RS1_G0, "D,[i]", 0, v6 },
-{ "st", F3(3, 0x34, 1), F3(~3, ~0x34, ~1)|SIMM13(~0), "D,[1]", 0, v6 }, /* st d,[rs1+0] */
-{ "st", F3(3, 0x35, 0), F3(~3, ~0x35, ~0)|ASI(~0), "C,[1+2]", 0, v6 },
-{ "st", F3(3, 0x35, 0), F3(~3, ~0x35, ~0)|ASI_RS2(~0), "C,[1]", 0, v6 }, /* st d,[rs1+%g0] */
-{ "st", F3(3, 0x35, 1), F3(~3, ~0x35, ~1), "C,[1+i]", 0, v6 },
-{ "st", F3(3, 0x35, 1), F3(~3, ~0x35, ~1), "C,[i+1]", 0, v6 },
-{ "st", F3(3, 0x35, 1), F3(~3, ~0x35, ~1)|RS1_G0, "C,[i]", 0, v6 },
-{ "st", F3(3, 0x35, 1), F3(~3, ~0x35, ~1)|SIMM13(~0), "C,[1]", 0, v6 }, /* st d,[rs1+0] */
-
-{ "st", F3(3, 0x25, 0), F3(~3, ~0x25, ~0)|RD_G0|ASI(~0), "F,[1+2]", 0, v6 },
-{ "st", F3(3, 0x25, 0), F3(~3, ~0x25, ~0)|RD_G0|ASI_RS2(~0), "F,[1]", 0, v6 }, /* st d,[rs1+%g0] */
-{ "st", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|RD_G0, "F,[1+i]", 0, v6 },
-{ "st", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|RD_G0, "F,[i+1]", 0, v6 },
-{ "st", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|RD_G0|RS1_G0, "F,[i]", 0, v6 },
-{ "st", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|SIMM13(~0), "F,[1]", 0, v6 }, /* st d,[rs1+0] */
-
- /* FIXME-v9: combine st, stw, stuw, stsw, in macros. */
-{ "stw", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|ASI(~0), "d,[1+2]", F_ALIAS, v9 }, /* stw === st */
-{ "stw", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|ASI_RS2(~0), "d,[1]", F_ALIAS, v9 }, /* st d,[rs1+%g0] */
-{ "stw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1), "d,[1+i]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1), "d,[i+1]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|RS1_G0, "d,[i]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|SIMM13(~0), "d,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-{ "stw", F3(3, 0x24, 0), F3(~3, ~0x24, ~0)|ASI(~0), "g,[1+2]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x24, 0), F3(~3, ~0x24, ~0)|ASI_RS2(~0), "g,[1]", F_ALIAS, v9 }, /* st d[rs1+%g0] */
-{ "stw", F3(3, 0x24, 1), F3(~3, ~0x24, ~1), "g,[1+i]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x24, 1), F3(~3, ~0x24, ~1), "g,[i+1]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x24, 1), F3(~3, ~0x24, ~1)|RS1_G0, "g,[i]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x24, 1), F3(~3, ~0x24, ~1)|SIMM13(~0), "g,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-{ "stw", F3(3, 0x34, 0), F3(~3, ~0x34, ~0)|ASI(~0), "D,[1+2]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x34, 0), F3(~3, ~0x34, ~0)|ASI_RS2(~0), "D,[1]", F_ALIAS, v9 }, /* st d,[rs1+%g0] */
-{ "stw", F3(3, 0x34, 1), F3(~3, ~0x34, ~1), "D,[1+i]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x34, 1), F3(~3, ~0x34, ~1), "D,[i+1]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x34, 1), F3(~3, ~0x34, ~1)|RS1_G0, "D,[i]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x34, 1), F3(~3, ~0x34, ~1)|SIMM13(~0), "D,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-{ "stw", F3(3, 0x35, 0), F3(~3, ~0x35, ~0)|ASI(~0), "C,[1+2]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x35, 0), F3(~3, ~0x35, ~0)|ASI_RS2(~0), "C,[1]", F_ALIAS, v9 }, /* st d,[rs1+%g0] */
-{ "stw", F3(3, 0x35, 1), F3(~3, ~0x35, ~1), "C,[1+i]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x35, 1), F3(~3, ~0x35, ~1), "C,[i+1]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x35, 1), F3(~3, ~0x35, ~1)|RS1_G0, "C,[i]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x35, 1), F3(~3, ~0x35, ~1)|SIMM13(~0), "C,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-{ "stw", F3(3, 0x25, 0), F3(~3, ~0x25, ~0)|RD_G0|ASI(~0), "F,[1+2]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x25, 0), F3(~3, ~0x25, ~0)|RD_G0|ASI_RS2(~0), "F,[1]", F_ALIAS, v9 }, /* st d,[rs1+%g0] */
-{ "stw", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|RD_G0, "F,[1+i]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|RD_G0, "F,[i+1]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|RD_G0|RS1_G0, "F,[i]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|SIMM13(~0), "F,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-
-{ "stuw", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|ASI(~0), "d,[1+2]", F_ALIAS, v9 }, /* stuw === st */
-{ "stuw", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|ASI_RS2(~0), "d,[1]", F_ALIAS, v9 }, /* st d,[rs1+%g0] */
-{ "stuw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1), "d,[1+i]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1), "d,[i+1]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|RS1_G0, "d,[i]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|SIMM13(~0), "d,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-{ "stuw", F3(3, 0x24, 0), F3(~3, ~0x24, ~0)|ASI(~0), "g,[1+2]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x24, 0), F3(~3, ~0x24, ~0)|ASI_RS2(~0), "g,[1]", F_ALIAS, v9 }, /* st d[rs1+%g0] */
-{ "stuw", F3(3, 0x24, 1), F3(~3, ~0x24, ~1), "g,[1+i]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x24, 1), F3(~3, ~0x24, ~1), "g,[i+1]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x24, 1), F3(~3, ~0x24, ~1)|RS1_G0, "g,[i]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x24, 1), F3(~3, ~0x24, ~1)|SIMM13(~0), "g,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-{ "stuw", F3(3, 0x34, 0), F3(~3, ~0x34, ~0)|ASI(~0), "D,[1+2]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x34, 0), F3(~3, ~0x34, ~0)|ASI_RS2(~0), "D,[1]", F_ALIAS, v9 }, /* st d,[rs1+%g0] */
-{ "stuw", F3(3, 0x34, 1), F3(~3, ~0x34, ~1), "D,[1+i]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x34, 1), F3(~3, ~0x34, ~1), "D,[i+1]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x34, 1), F3(~3, ~0x34, ~1)|RS1_G0, "D,[i]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x34, 1), F3(~3, ~0x34, ~1)|SIMM13(~0), "D,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-{ "stuw", F3(3, 0x35, 0), F3(~3, ~0x35, ~0)|ASI(~0), "C,[1+2]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x35, 0), F3(~3, ~0x35, ~0)|ASI_RS2(~0), "C,[1]", F_ALIAS, v9 }, /* st d,[rs1+%g0] */
-{ "stuw", F3(3, 0x35, 1), F3(~3, ~0x35, ~1), "C,[1+i]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x35, 1), F3(~3, ~0x35, ~1), "C,[i+1]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x35, 1), F3(~3, ~0x35, ~1)|RS1_G0, "C,[i]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x35, 1), F3(~3, ~0x35, ~1)|SIMM13(~0), "C,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-{ "stuw", F3(3, 0x25, 0), F3(~3, ~0x25, ~0)|RD_G0|ASI(~0), "F,[1+2]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x25, 0), F3(~3, ~0x25, ~0)|RD_G0|ASI_RS2(~0), "F,[1]", F_ALIAS, v9 }, /* st d,[rs1+%g0] */
-{ "stuw", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|RD_G0, "F,[1+i]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|RD_G0, "F,[i+1]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|RD_G0|RS1_G0, "F,[i]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|SIMM13(~0), "F,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-
-{ "stsw", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|ASI(~0), "d,[1+2]", F_ALIAS, v9 }, /* stsw === st */
-{ "stsw", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|ASI_RS2(~0), "d,[1]", F_ALIAS, v9 }, /* st d,[rs1+%g0] */
-{ "stsw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1), "d,[1+i]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1), "d,[i+1]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|RS1_G0, "d,[i]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|SIMM13(~0), "d,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-{ "stsw", F3(3, 0x24, 0), F3(~3, ~0x24, ~0)|ASI(~0), "g,[1+2]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x24, 0), F3(~3, ~0x24, ~0)|ASI_RS2(~0), "g,[1]", F_ALIAS, v9 }, /* st d[rs1+%g0] */
-{ "stsw", F3(3, 0x24, 1), F3(~3, ~0x24, ~1), "g,[1+i]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x24, 1), F3(~3, ~0x24, ~1), "g,[i+1]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x24, 1), F3(~3, ~0x24, ~1)|RS1_G0, "g,[i]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x24, 1), F3(~3, ~0x24, ~1)|SIMM13(~0), "g,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-{ "stsw", F3(3, 0x34, 0), F3(~3, ~0x34, ~0)|ASI(~0), "D,[1+2]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x34, 0), F3(~3, ~0x34, ~0)|ASI_RS2(~0), "D,[1]", F_ALIAS, v9 }, /* st d,[rs1+%g0] */
-{ "stsw", F3(3, 0x34, 1), F3(~3, ~0x34, ~1), "D,[1+i]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x34, 1), F3(~3, ~0x34, ~1), "D,[i+1]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x34, 1), F3(~3, ~0x34, ~1)|RS1_G0, "D,[i]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x34, 1), F3(~3, ~0x34, ~1)|SIMM13(~0), "D,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-{ "stsw", F3(3, 0x35, 0), F3(~3, ~0x35, ~0)|ASI(~0), "C,[1+2]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x35, 0), F3(~3, ~0x35, ~0)|ASI_RS2(~0), "C,[1]", F_ALIAS, v9 }, /* st d,[rs1+%g0] */
-{ "stsw", F3(3, 0x35, 1), F3(~3, ~0x35, ~1), "C,[1+i]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x35, 1), F3(~3, ~0x35, ~1), "C,[i+1]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x35, 1), F3(~3, ~0x35, ~1)|RS1_G0, "C,[i]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x35, 1), F3(~3, ~0x35, ~1)|SIMM13(~0), "C,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-{ "stsw", F3(3, 0x25, 0), F3(~3, ~0x25, ~0)|RD_G0|ASI(~0), "F,[1+2]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x25, 0), F3(~3, ~0x25, ~0)|RD_G0|ASI_RS2(~0), "F,[1]", F_ALIAS, v9 }, /* st d,[rs1+%g0] */
-{ "stsw", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|RD_G0, "F,[1+i]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|RD_G0, "F,[i+1]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|RD_G0|RS1_G0, "F,[i]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|SIMM13(~0), "F,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-
-{ "sta", F3(3, 0x14, 0), F3(~3, ~0x14, ~0), "d,[1+2]A", 0, v6 },
-{ "sta", F3(3, 0x14, 0), F3(~3, ~0x14, ~0)|RS2(~0), "d,[1]A", 0, v6 }, /* sta d,[rs1+%g0] */
-
-{ "stwa", F3(3, 0x14, 0), F3(~3, ~0x14, ~0), "d,[1+2]A", F_ALIAS, v9 },
-{ "stwa", F3(3, 0x14, 0), F3(~3, ~0x14, ~0)|RS2(~0), "d,[1]A", F_ALIAS, v9 }, /* sta d,[rs1+%g0] */
-
-{ "stswa", F3(3, 0x14, 0), F3(~3, ~0x14, ~0), "d,[1+2]A", F_ALIAS, v9 },
-{ "stswa", F3(3, 0x14, 0), F3(~3, ~0x14, ~0)|RS2(~0), "d,[1]A", F_ALIAS, v9 }, /* sta d,[rs1+%g0] */
-
-{ "stuwa", F3(3, 0x14, 0), F3(~3, ~0x14, ~0), "d,[1+2]A", F_ALIAS, v9 },
-{ "stuwa", F3(3, 0x14, 0), F3(~3, ~0x14, ~0)|RS2(~0), "d,[1]A", F_ALIAS, v9 }, /* sta d,[rs1+%g0] */
-
-{ "stb", F3(3, 0x05, 0), F3(~3, ~0x05, ~0)|ASI(~0), "d,[1+2]", 0, v6 },
-{ "stb", F3(3, 0x05, 0), F3(~3, ~0x05, ~0)|ASI_RS2(~0), "d,[1]", 0, v6 }, /* stb d,[rs1+%g0] */
-{ "stb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1), "d,[1+i]", 0, v6 },
-{ "stb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1), "d,[i+1]", 0, v6 },
-{ "stb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|RS1_G0, "d,[i]", 0, v6 },
-{ "stb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|SIMM13(~0), "d,[1]", 0, v6 }, /* stb d,[rs1+0] */
-
-{ "stub", F3(3, 0x05, 0), F3(~3, ~0x05, ~0)|ASI(~0), "d,[1+2]", F_ALIAS, v9 },
-{ "stub", F3(3, 0x05, 0), F3(~3, ~0x05, ~0)|ASI_RS2(~0), "d,[1]", F_ALIAS, v9 }, /* stb d,[rs1+%g0] */
-{ "stub", F3(3, 0x05, 1), F3(~3, ~0x05, ~1), "d,[1+i]", F_ALIAS, v9 },
-{ "stub", F3(3, 0x05, 1), F3(~3, ~0x05, ~1), "d,[i+1]", F_ALIAS, v9 },
-{ "stub", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|RS1_G0, "d,[i]", F_ALIAS, v9 },
-{ "stub", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|SIMM13(~0), "d,[1]", F_ALIAS, v9 }, /* stb d,[rs1+0] */
-
-{ "stsb", F3(3, 0x05, 0), F3(~3, ~0x05, ~0)|ASI(~0), "d,[1+2]", F_ALIAS, v9 },
-{ "stsb", F3(3, 0x05, 0), F3(~3, ~0x05, ~0)|ASI_RS2(~0), "d,[1]", F_ALIAS, v9 }, /* stb d,[rs1+%g0] */
-{ "stsb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1), "d,[1+i]", F_ALIAS, v9 },
-{ "stsb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1), "d,[i+1]", F_ALIAS, v9 },
-{ "stsb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|RS1_G0, "d,[i]", F_ALIAS, v9 },
-{ "stsb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|SIMM13(~0), "d,[1]", F_ALIAS, v9 }, /* stb d,[rs1+0] */
-
-{ "stba", F3(3, 0x15, 0), F3(~3, ~0x15, ~0), "d,[1+2]A", 0, v6 },
-{ "stba", F3(3, 0x15, 0), F3(~3, ~0x15, ~0)|RS2(~0), "d,[1]A", 0, v6 }, /* stba d,[rs1+%g0] */
-
-{ "stsba", F3(3, 0x15, 0), F3(~3, ~0x15, ~0), "d,[1+2]A", F_ALIAS, v9 },
-{ "stsba", F3(3, 0x15, 0), F3(~3, ~0x15, ~0)|RS2(~0), "d,[1]A", F_ALIAS, v9 }, /* stba d,[rs1+%g0] */
-
-{ "stuba", F3(3, 0x15, 0), F3(~3, ~0x15, ~0), "d,[1+2]A", F_ALIAS, v9 },
-{ "stuba", F3(3, 0x15, 0), F3(~3, ~0x15, ~0)|RS2(~0), "d,[1]A", F_ALIAS, v9 }, /* stba d,[rs1+%g0] */
-
-{ "std", F3(3, 0x07, 0), F3(~3, ~0x07, ~0)|ASI(~0), "d,[1+2]", 0, v6 },
-{ "std", F3(3, 0x07, 0), F3(~3, ~0x07, ~0)|ASI_RS2(~0), "d,[1]", 0, v6 }, /* std d,[rs1+%g0] */
-{ "std", F3(3, 0x07, 1), F3(~3, ~0x07, ~1), "d,[1+i]", 0, v6 },
-{ "std", F3(3, 0x07, 1), F3(~3, ~0x07, ~1), "d,[i+1]", 0, v6 },
-{ "std", F3(3, 0x07, 1), F3(~3, ~0x07, ~1)|RS1_G0, "d,[i]", 0, v6 },
-{ "std", F3(3, 0x07, 1), F3(~3, ~0x07, ~1)|SIMM13(~0), "d,[1]", 0, v6 }, /* std d,[rs1+0] */
-{ "std", F3(3, 0x26, 0), F3(~3, ~0x26, ~0)|ASI(~0), "q,[1+2]", 0, v6 },
-{ "std", F3(3, 0x26, 0), F3(~3, ~0x26, ~0)|ASI_RS2(~0), "q,[1]", 0, v6 }, /* std d,[rs1+%g0] */
-{ "std", F3(3, 0x26, 1), F3(~3, ~0x26, ~1), "q,[1+i]", 0, v6 },
-{ "std", F3(3, 0x26, 1), F3(~3, ~0x26, ~1), "q,[i+1]", 0, v6 },
-{ "std", F3(3, 0x26, 1), F3(~3, ~0x26, ~1)|RS1_G0, "q,[i]", 0, v6 },
-{ "std", F3(3, 0x26, 1), F3(~3, ~0x26, ~1)|SIMM13(~0), "q,[1]", 0, v6 }, /* std d,[rs1+0] */
-{ "std", F3(3, 0x27, 0), F3(~3, ~0x27, ~0)|ASI(~0), "g,[1+2]", 0, v6 },
-{ "std", F3(3, 0x27, 0), F3(~3, ~0x27, ~0)|ASI_RS2(~0), "g,[1]", 0, v6 }, /* std d,[rs1+%g0] */
-{ "std", F3(3, 0x27, 1), F3(~3, ~0x27, ~1), "g,[1+i]", 0, v6 },
-{ "std", F3(3, 0x27, 1), F3(~3, ~0x27, ~1), "g,[i+1]", 0, v6 },
-{ "std", F3(3, 0x27, 1), F3(~3, ~0x27, ~1)|RS1_G0, "g,[i]", 0, v6 },
-{ "std", F3(3, 0x27, 1), F3(~3, ~0x27, ~1)|SIMM13(~0), "g,[1]", 0, v6 }, /* std d,[rs1+0] */
-{ "std", F3(3, 0x36, 0), F3(~3, ~0x36, ~0)|ASI(~0), "Q,[1+2]", 0, v6 },
-{ "std", F3(3, 0x36, 0), F3(~3, ~0x36, ~0)|ASI_RS2(~0), "Q,[1]", 0, v6 }, /* std d,[rs1+%g0] */
-{ "std", F3(3, 0x36, 1), F3(~3, ~0x36, ~1), "Q,[1+i]", 0, v6 },
-{ "std", F3(3, 0x36, 1), F3(~3, ~0x36, ~1), "Q,[i+1]", 0, v6 },
-{ "std", F3(3, 0x36, 1), F3(~3, ~0x36, ~1)|RS1_G0, "Q,[i]", 0, v6 },
-{ "std", F3(3, 0x36, 1), F3(~3, ~0x36, ~1)|SIMM13(~0), "Q,[1]", 0, v6 }, /* std d,[rs1+0] */
-{ "std", F3(3, 0x37, 0), F3(~3, ~0x37, ~0)|ASI(~0), "D,[1+2]", 0, v6 },
-{ "std", F3(3, 0x37, 0), F3(~3, ~0x37, ~0)|ASI_RS2(~0), "D,[1]", 0, v6 }, /* std d,[rs1+%g0] */
-{ "std", F3(3, 0x37, 1), F3(~3, ~0x37, ~1), "D,[1+i]", 0, v6 },
-{ "std", F3(3, 0x37, 1), F3(~3, ~0x37, ~1), "D,[i+1]", 0, v6 },
-{ "std", F3(3, 0x37, 1), F3(~3, ~0x37, ~1)|RS1_G0, "D,[i]", 0, v6 },
-{ "std", F3(3, 0x37, 1), F3(~3, ~0x37, ~1)|SIMM13(~0), "D,[1]", 0, v6 }, /* std d,[rs1+0] */
-
-{ "stda", F3(3, 0x17, 0), F3(~3, ~0x17, ~0), "d,[1+2]A", 0, v6 },
-{ "stda", F3(3, 0x17, 0), F3(~3, ~0x17, ~0)|RS2(~0), "d,[1]A", 0, v6 }, /* stda d,[rs1+%g0] */
-
-{ "sth", F3(3, 0x06, 0), F3(~3, ~0x06, ~0)|ASI(~0), "d,[1+2]", 0, v6 },
-{ "sth", F3(3, 0x06, 0), F3(~3, ~0x06, ~0)|ASI_RS2(~0), "d,[1]", 0, v6 }, /* sth d,[rs1+%g0] */
-{ "sth", F3(3, 0x06, 1), F3(~3, ~0x06, ~1), "d,[1+i]", 0, v6 },
-{ "sth", F3(3, 0x06, 1), F3(~3, ~0x06, ~1), "d,[i+1]", 0, v6 },
-{ "sth", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|RS1_G0, "d,[i]", 0, v6 },
-{ "sth", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|SIMM13(~0), "d,[1]", 0, v6 }, /* sth d,[+] */
-
-{ "stsh", F3(3, 0x06, 0), F3(~3, ~0x06, ~0)|ASI(~0), "d,[1+2]", F_ALIAS, v9 },
-{ "stsh", F3(3, 0x06, 0), F3(~3, ~0x06, ~0)|ASI_RS2(~0), "d,[1]", F_ALIAS, v9 }, /* sth d,[rs1+%g0] */
-{ "stsh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1), "d,[1+i]", F_ALIAS, v9 },
-{ "stsh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1), "d,[i+1]", F_ALIAS, v9 },
-{ "stsh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|RS1_G0, "d,[i]", F_ALIAS, v9 },
-{ "stsh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|SIMM13(~0), "d,[1]", F_ALIAS, v9 }, /* sth d,[rs1+0] */
-
-{ "stuh", F3(3, 0x06, 0), F3(~3, ~0x06, ~0)|ASI(~0), "d,[1+2]", F_ALIAS, v9 },
-{ "stuh", F3(3, 0x06, 0), F3(~3, ~0x06, ~0)|ASI_RS2(~0), "d,[1]", F_ALIAS, v9 }, /* sth d,[rs1+%g0] */
-{ "stuh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1), "d,[1+i]", F_ALIAS, v9 },
-{ "stuh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1), "d,[i+1]", F_ALIAS, v9 },
-{ "stuh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|RS1_G0, "d,[i]", F_ALIAS, v9 },
-{ "stuh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|SIMM13(~0), "d,[1]", F_ALIAS, v9 }, /* sth d,[rs1+0] */
-
-{ "stha", F3(3, 0x16, 0), F3(~3, ~0x16, ~0), "d,[1+2]A", 0, v6 },
-{ "stha", F3(3, 0x16, 0), F3(~3, ~0x16, ~0)|RS2(~0), "d,[1]A", 0, v6 }, /* stha ,[+%] */
-
-{ "stsha", F3(3, 0x16, 0), F3(~3, ~0x16, ~0), "d,[1+2]A", F_ALIAS, v9 },
-{ "stsha", F3(3, 0x16, 0), F3(~3, ~0x16, ~0)|RS2(~0), "d,[1]A", F_ALIAS, v9 }, /* stha d,[rs1+%g0] */
-
-{ "stuha", F3(3, 0x16, 0), F3(~3, ~0x16, ~0), "d,[1+2]A", F_ALIAS, v9 },
-{ "stuha", F3(3, 0x16, 0), F3(~3, ~0x16, ~0)|RS2(~0), "d,[1]A", F_ALIAS, v9 }, /* stha d,[rs1+%g0] */
-
-{ "stx", F3(3, 0x0e, 0), F3(~3, ~0x0e, ~0)|ASI(~0), "d,[1+2]", 0, v9 },
-{ "stx", F3(3, 0x0e, 0), F3(~3, ~0x0e, ~0)|ASI_RS2(~0), "d,[1]", 0, v9 }, /* stx d,[rs1+%g0] */
-{ "stx", F3(3, 0x0e, 1), F3(~3, ~0x0e, ~1), "d,[1+i]", 0, v9 },
-{ "stx", F3(3, 0x0e, 1), F3(~3, ~0x0e, ~1), "d,[i+1]", 0, v9 },
-{ "stx", F3(3, 0x0e, 1), F3(~3, ~0x0e, ~1)|RS1_G0, "d,[i]", 0, v9 },
-{ "stx", F3(3, 0x0e, 1), F3(~3, ~0x0e, ~1)|SIMM13(~0), "d,[1]", 0, v9 }, /* stx d,[rs1+0] */
-{ "stx", F3(3, 0x2d, 0), F3(~3, ~0x2d, ~0)|RD_G0|ASI(~0), "F,[1+2]", F_ALIAS, v9 },
-{ "stx", F3(3, 0x2d, 0), F3(~3, ~0x2d, ~0)|RD_G0|ASI_RS2(~0), "F,[1]", F_ALIAS, v9 }, /* st d,[rs1+%g0] */
-{ "stx", F3(3, 0x2d, 1), F3(~3, ~0x2d, ~1)|RD_G0, "F,[1+i]", F_ALIAS, v9 },
-{ "stx", F3(3, 0x2d, 1), F3(~3, ~0x2d, ~1)|RD_G0, "F,[i+1]", F_ALIAS, v9 },
-{ "stx", F3(3, 0x2d, 1), F3(~3, ~0x2d, ~1)|RD_G0|RS1_G0, "F,[i]", F_ALIAS, v9 },
-{ "stx", F3(3, 0x2d, 1), F3(~3, ~0x2d, ~1)|SIMM13(~0), "F,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-
-{ "stxa", F3(3, 0x1e, 0), F3(~3, ~0x1e, ~0), "d,[1+2]A", 0, v9 },
-{ "stxa", F3(3, 0x1e, 0), F3(~3, ~0x1e, ~0)|RS2(~0), "d,[1]A", 0, v9 }, /* stha d,[rs1+%g0] */
-
-{ "swap", F3(3, 0x0f, 0), F3(~3, ~0x0f, ~0)|ASI(~0), "[1+2],d", 0, v7 },
-{ "swap", F3(3, 0x0f, 0), F3(~3, ~0x0f, ~0)|ASI_RS2(~0), "[1],d", 0, v7 }, /* swap [rs1+%g0],d */
-{ "swap", F3(3, 0x0f, 1), F3(~3, ~0x0f, ~1), "[1+i],d", 0, v7 },
-{ "swap", F3(3, 0x0f, 1), F3(~3, ~0x0f, ~1), "[i+1],d", 0, v7 },
-{ "swap", F3(3, 0x0f, 1), F3(~3, ~0x0f, ~1)|RS1_G0, "[i],d", 0, v7 },
-{ "swap", F3(3, 0x0f, 1), F3(~3, ~0x0f, ~1)|SIMM13(~0), "[1],d", 0, v7 }, /* swap [rs1+0],d */
-
-{ "swapa", F3(3, 0x1f, 0), F3(~3, ~0x1f, ~0), "[1+2]A,d", 0, v7 },
-{ "swapa", F3(3, 0x1f, 0), F3(~3, ~0x1f, ~0)|RS2(~0), "[1]A,d", 0, v7 }, /* swapa [rs1+%g0],d */
-
-{ "restore", F3(2, 0x3d, 0), F3(~2, ~0x3d, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "restore", F3(2, 0x3d, 0), F3(~2, ~0x3d, ~0)|RD_G0|RS1_G0|ASI_RS2(~0), "", 0, v6 }, /* restore %g0,%g0,%g0 */
-{ "restore", F3(2, 0x3d, 1), F3(~2, ~0x3d, ~1), "1,i,d", 0, v6 },
-{ "restore", F3(2, 0x3d, 1), F3(~2, ~0x3d, ~1)|RD_G0|RS1_G0|SIMM13(~0), "", 0, v6 }, /* restore %g0,0,%g0 */
-
-{ "rett", F3(2, 0x39, 0), F3(~2, ~0x39, ~0)|RD_G0|ASI(~0), "1+2", F_DELAYED, v6 }, /* rett rs1+rs2 */
-{ "rett", F3(2, 0x39, 0), F3(~2, ~0x39, ~0)|RD_G0|ASI_RS2(~0), "1", F_DELAYED, v6 }, /* rett rs1,%g0 */
-{ "rett", F3(2, 0x39, 1), F3(~2, ~0x39, ~1)|RD_G0, "1+i", F_DELAYED, v6 }, /* rett rs1+X */
-{ "rett", F3(2, 0x39, 1), F3(~2, ~0x39, ~1)|RD_G0, "i+1", F_DELAYED, v6 }, /* rett X+rs1 */
-{ "rett", F3(2, 0x39, 1), F3(~2, ~0x39, ~1)|RD_G0|RS1_G0,"i", F_DELAYED, v6 }, /* rett X+rs1 */
-{ "rett", F3(2, 0x39, 1), F3(~2, ~0x39, ~1)|RD_G0|RS1_G0, "i", F_DELAYED, v6 }, /* rett X */
-{ "rett", F3(2, 0x39, 1), F3(~2, ~0x39, ~1)|RD_G0|SIMM13(~0), "1", F_DELAYED, v6 }, /* rett rs1+0 */
-
-{ "save", F3(2, 0x3c, 0), F3(~2, ~0x3c, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "save", F3(2, 0x3c, 1), F3(~2, ~0x3c, ~1), "1,i,d", 0, v6 },
-{ "save", 0x81e00000, ~0x81e00000, "", F_ALIAS, v6 },
-
-{ "ret", F3(2, 0x38, 1)|RS1(0x1f)|SIMM13(8), F3(~2, ~0x38, ~1)|SIMM13(~8), "", F_DELAYED, v6 }, /* jmpl %i7+8,%g0 */
-{ "retl", F3(2, 0x38, 1)|RS1(0x0f)|SIMM13(8), F3(~2, ~0x38, ~1)|RS1(~0x0f)|SIMM13(~8), "", F_DELAYED, v6 }, /* jmpl %o7+8,%g0 */
-
-{ "jmpl", F3(2, 0x38, 0), F3(~2, ~0x38, ~0)|ASI(~0), "1+2,d", F_DELAYED, v6 },
-{ "jmpl", F3(2, 0x38, 0), F3(~2, ~0x38, ~0)|ASI_RS2(~0), "1,d", F_DELAYED, v6 }, /* jmpl rs1+%g0,d */
-{ "jmpl", F3(2, 0x38, 1), F3(~2, ~0x38, ~1)|SIMM13(~0), "1,d", F_DELAYED, v6 }, /* jmpl rs1+0,d */
-{ "jmpl", F3(2, 0x38, 1), F3(~2, ~0x38, ~1)|RS1_G0, "i,d", F_DELAYED, v6 }, /* jmpl %g0+i,d */
-{ "jmpl", F3(2, 0x38, 1), F3(~2, ~0x38, ~1), "1+i,d", F_DELAYED, v6 },
-{ "jmpl", F3(2, 0x38, 1), F3(~2, ~0x38, ~1), "i+1,d", F_DELAYED, v6 },
-
-{ "done", F3(2, 0x3e, 1)|RD(0), F3(~2, ~0x3e, ~1)|RD(~0)|RS1_G0|SIMM13(~0), "", 0, v9 },
-{ "retry", F3(2, 0x3e, 1)|RD(1), F3(~2, ~0x3e, ~1)|RD(~1)|RS1_G0|SIMM13(~0), "", 0, v9 },
-{ "saved", F3(2, 0x31, 1)|RD(0), F3(~2, ~0x31, ~1)|RD(~0)|RS1_G0|SIMM13(~0), "", 0, v9 },
-{ "restored", F3(2, 0x31, 1)|RD(1), F3(~2, ~0x31, ~1)|RD(~1)|RS1_G0|SIMM13(~0), "", 0, v9 },
-{ "sigm", F3(2, 0x30, 0)|RD(0xf), F3(~2, ~0x30, ~0)|RD(~0xf)|RS1_G0|SIMM13(~0), "", 0, v9 },
-
-{ "flush", F3(2, 0x3b, 0), F3(~2, ~0x3b, ~0)|ASI(~0), "1+2", F_ALIAS, v9 },
-{ "flush", F3(2, 0x3b, 0), F3(~2, ~0x3b, ~0)|ASI_RS2(~0), "1", 0, v9 }, /* flush rs1+%g0 */
-{ "flush", F3(2, 0x3b, 1), F3(~2, ~0x3b, ~1)|SIMM13(~0), "1", 0, v9 }, /* flush rs1+0 */
-{ "flush", F3(2, 0x3b, 1), F3(~2, ~0x3b, ~1)|RS1_G0, "i", F_ALIAS, v9 }, /* flush %g0+i */
-{ "flush", F3(2, 0x3b, 1), F3(~2, ~0x3b, ~1), "1+i", F_ALIAS, v9 },
-{ "flush", F3(2, 0x3b, 1), F3(~2, ~0x3b, ~1), "i+1", F_ALIAS, v9 },
-
-{ "return", F3(2, 0x39, 0), F3(~2, ~0x39, ~0)|ASI(~0), "1+2", 0, v9 },
-{ "return", F3(2, 0x39, 0), F3(~2, ~0x39, ~0)|ASI_RS2(~0), "1", 0, v9 }, /* return rs1+%g0 */
-{ "return", F3(2, 0x39, 1), F3(~2, ~0x39, ~1)|SIMM13(~0), "1", 0, v9 }, /* return rs1+0 */
-{ "return", F3(2, 0x39, 1), F3(~2, ~0x39, ~1)|RS1_G0, "i", 0, v9 }, /* return %g0+i */
-{ "return", F3(2, 0x39, 1), F3(~2, ~0x39, ~1), "1+i", 0, v9 },
-{ "return", F3(2, 0x39, 1), F3(~2, ~0x39, ~1), "i+1", 0, v9 },
-
-{ "flushw", F3(2, 0x2b, 0), F3(~2, ~0x2b, ~0)|RD_G0|RS1_G0|ASI_RS2(~0), "", 0, v9 },
-
-{ "membar", F3(2, 0x28, 1)|RS1(0xf), F3(~2, ~0x28, ~1)|RD_G0|RS1(~0xf)|ASI(~0), "K", 0, v9 },
-{ "stbar", F3(2, 0x28, 0)|RS1(0xf), F3(~2, ~0x28, ~0)|RD_G0|RS1(~0xf)|SIMM13(~0), "", 0, v9 }, /* maybe v8? */
-
-{ "prefetch", F3(3, 0x2d, 0), F3(~3, ~0x2d, ~0), "[1+2],*", 0, v9 },
-{ "prefetch", F3(3, 0x2d, 0), F3(~3, ~0x2d, ~0)|RS2_G0, "[1],*", 0, v9 }, /* prefetch [rs1+%g0],prefetch_fcn */
-{ "prefetch", F3(3, 0x2d, 1), F3(~3, ~0x2d, ~1), "[1+i],*", 0, v9 },
-{ "prefetch", F3(3, 0x2d, 1), F3(~3, ~0x2d, ~1), "[i+1],*", 0, v9 },
-{ "prefetch", F3(3, 0x2d, 1), F3(~3, ~0x2d, ~1)|RS1_G0, "[i],*", 0, v9 },
-{ "prefetch", F3(3, 0x2d, 1), F3(~3, ~0x2d, ~1)|SIMM13(~0), "[1],*", 0, v9 }, /* prefetch [rs1+0],prefetch_fcn */
-{ "prefetcha", F3(3, 0x3d, 0), F3(~3, ~0x3d, ~0), "[1+2]A,*", 0, v9 },
-{ "prefetcha", F3(3, 0x3d, 0), F3(~3, ~0x3d, ~0)|RS2_G0, "[1]A,*", 0, v9 }, /* prefetcha [rs1+%g0],prefetch_fcn */
-
- /* The 1<<12 is a long story. It is necessary. For more info, please contact rich@cygnus.com */
-{ "sll", F3(2, 0x25, 0), F3(~2, ~0x25, ~0)|(1<<12)|ASI(~0), "1,2,d", 0, v6 },
-{ "sll", F3(2, 0x25, 1), F3(~2, ~0x25, ~1)|(1<<12), "1,i,d", 0, v6 },
-{ "sra", F3(2, 0x27, 0), F3(~2, ~0x27, ~0)|(1<<12)|ASI(~0), "1,2,d", 0, v6 },
-{ "sra", F3(2, 0x27, 1), F3(~2, ~0x27, ~1)|(1<<12), "1,i,d", 0, v6 },
-{ "srl", F3(2, 0x26, 0), F3(~2, ~0x26, ~0)|(1<<12)|ASI(~0), "1,2,d", 0, v6 },
-{ "srl", F3(2, 0x26, 1), F3(~2, ~0x26, ~1)|(1<<12), "1,i,d", 0, v6 },
-
-{ "sllw", F3(2, 0x25, 0), F3(~2, ~0x25, ~0)|(1<<12)|ASI(~0), "1,2,d", F_ALIAS, v9 }, /* sllw === sll */
-{ "sllw", F3(2, 0x25, 1), F3(~2, ~0x25, ~1)|(1<<12), "1,i,d", F_ALIAS, v9 },
-{ "sraw", F3(2, 0x27, 0), F3(~2, ~0x27, ~0)|(1<<12)|ASI(~0), "1,2,d", F_ALIAS, v9 }, /* sraw === sra */
-{ "sraw", F3(2, 0x27, 1), F3(~2, ~0x27, ~1)|(1<<12), "1,i,d", F_ALIAS, v9 },
-{ "srlw", F3(2, 0x26, 0), F3(~2, ~0x26, ~0)|(1<<12)|ASI(~0), "1,2,d", F_ALIAS, v9 }, /* srlw === srl */
-{ "srlw", F3(2, 0x26, 1), F3(~2, ~0x26, ~1)|(1<<12), "1,i,d", F_ALIAS, v9 },
-
-{ "sllx", F3(2, 0x25, 0)|(1<<12), F3(~2, ~0x25, ~0)|(ASI(~0)^(1<<12)), "1,2,d", 0, v9 },
-{ "sllx", F3(2, 0x25, 1)|(1<<12), F3(~2, ~0x25, ~1), "1,i,d", 0, v9 },
-{ "srax", F3(2, 0x27, 0)|(1<<12), F3(~2, ~0x27, ~0)|(ASI(~0)^(1<<12)), "1,2,d", 0, v9 },
-{ "srax", F3(2, 0x27, 1)|(1<<12), F3(~2, ~0x27, ~1), "1,i,d", 0, v9 },
-{ "srlx", F3(2, 0x26, 0)|(1<<12), F3(~2, ~0x26, ~0)|(ASI(~0)^(1<<12)), "1,2,d", 0, v9 },
-{ "srlx", F3(2, 0x26, 1)|(1<<12), F3(~2, ~0x26, ~1), "1,i,d", 0, v9 },
-
-{ "mulscc", F3(2, 0x24, 0), F3(~2, ~0x24, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "mulscc", F3(2, 0x24, 1), F3(~2, ~0x24, ~1), "1,i,d", 0, v6 },
-
-{ "divscc", F3(2, 0x1d, 0), F3(~2, ~0x1d, ~0)|ASI(~0), "1,2,d", 0, sparclite },
-{ "divscc", F3(2, 0x1d, 1), F3(~2, ~0x1d, ~1), "1,i,d", 0, sparclite },
-
-{ "scan", F3(2, 0x2c, 0), F3(~2, ~0x2c, ~0)|ASI(~0), "1,2,d", 0, sparclite },
-{ "scan", F3(2, 0x2c, 1), F3(~2, ~0x2c, ~1), "1,i,d", 0, sparclite },
-
-{ "clr", F3(2, 0x02, 0), F3(~2, ~0x02, ~0)|RD_G0|RS1_G0|ASI_RS2(~0), "d", F_ALIAS, v6 }, /* or %g0,%g0,d */
-{ "clr", F3(2, 0x02, 1), F3(~2, ~0x02, ~1)|RS1_G0|SIMM13(~0), "d", F_ALIAS, v6 }, /* or %g0,0,d */
-{ "clr", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|RD_G0|ASI(~0), "[1+2]", F_ALIAS, v6 },
-{ "clr", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|RD_G0|ASI_RS2(~0), "[1]", F_ALIAS, v6 }, /* st %g0,[rs1+%g0] */
-{ "clr", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|RD_G0, "[1+i]", F_ALIAS, v6 },
-{ "clr", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|RD_G0, "[i+1]", F_ALIAS, v6 },
-{ "clr", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|RD_G0|RS1_G0, "[i]", F_ALIAS, v6 },
-{ "clr", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|RD_G0|SIMM13(~0), "[1]", F_ALIAS, v6 }, /* st %g0,[rs1+0] */
-
-{ "clrb", F3(3, 0x05, 0), F3(~3, ~0x05, ~0)|RD_G0|ASI(~0), "[1+2]", F_ALIAS, v6 },
-{ "clrb", F3(3, 0x05, 0), F3(~3, ~0x05, ~0)|RD_G0|ASI_RS2(~0), "[1]", F_ALIAS, v6 }, /* stb %g0,[rs1+%g0] */
-{ "clrb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|RD_G0, "[1+i]", F_ALIAS, v6 },
-{ "clrb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|RD_G0, "[i+1]", F_ALIAS, v6 },
-{ "clrb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|RD_G0|RS1_G0, "[i]", F_ALIAS, v6 },
-
-{ "clrh", F3(3, 0x06, 0), F3(~3, ~0x06, ~0)|RD_G0|ASI(~0), "[1+2]", F_ALIAS, v6 },
-{ "clrh", F3(3, 0x06, 0), F3(~3, ~0x06, ~0)|RD_G0|ASI_RS2(~0), "[1]", F_ALIAS, v6 }, /* sth %g0,[rs1+%g0] */
-{ "clrh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|RD_G0, "[1+i]", F_ALIAS, v6 },
-{ "clrh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|RD_G0, "[i+1]", F_ALIAS, v6 },
-{ "clrh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|RD_G0|RS1_G0, "[i]", F_ALIAS, v6 },
-
-{ "orcc", F3(2, 0x12, 0), F3(~2, ~0x12, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "orcc", F3(2, 0x12, 1), F3(~2, ~0x12, ~1), "1,i,d", 0, v6 },
-{ "orcc", F3(2, 0x12, 1), F3(~2, ~0x12, ~1), "i,1,d", 0, v6 },
-
-{ "orncc", F3(2, 0x16, 0), F3(~2, ~0x16, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "orncc", F3(2, 0x16, 1), F3(~2, ~0x16, ~1), "1,i,d", 0, v6 },
-{ "orncc", F3(2, 0x16, 1), F3(~2, ~0x16, ~1), "i,1,d", 0, v6 },
-
-{ "orn", F3(2, 0x06, 0), F3(~2, ~0x06, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "orn", F3(2, 0x06, 1), F3(~2, ~0x06, ~1), "1,i,d", 0, v6 },
-{ "orn", F3(2, 0x06, 1), F3(~2, ~0x06, ~1), "i,1,d", 0, v6 },
-
-{ "tst", F3(2, 0x12, 0), F3(~2, ~0x12, ~0)|RD_G0|ASI_RS2(~0), "1", 0, v6 }, /* orcc rs1, %g0, %g0 */
-{ "tst", F3(2, 0x12, 0), F3(~2, ~0x12, ~0)|RD_G0|RS1_G0|ASI(~0), "2", 0, v6 }, /* orcc %g0, rs2, %g0 */
-{ "tst", F3(2, 0x12, 1), F3(~2, ~0x12, ~1)|RD_G0|SIMM13(~0), "1", 0, v6 }, /* orcc rs1, 0, %g0 */
-
-{ "wr", F3(2, 0x30, 0), F3(~2, ~0x30, ~0)|ASI(~0), "1,2,m", 0, v8 }, /* wr r,r,%asrX */
-{ "wr", F3(2, 0x30, 0), F3(~2, ~0x30, ~0)|RD_G0|ASI(~0), "1,2,y", 0, v6 }, /* wr r,r,%y */
-{ "wr", F3(2, 0x30, 1), F3(~2, ~0x30, ~1), "1,i,m", 0, v8 }, /* wr r,i,%asrX */
-{ "wr", F3(2, 0x30, 1), F3(~2, ~0x30, ~1)|RD_G0, "1,i,y", 0, v6 }, /* wr r,i,%y */
-{ "wr", F3(2, 0x31, 0), F3(~2, ~0x31, ~0)|RD_G0|ASI(~0), "1,2,p", 0, v6 }, /* wr r,r,%psr */
-{ "wr", F3(2, 0x31, 1), F3(~2, ~0x31, ~1)|RD_G0, "1,i,p", 0, v6 }, /* wr r,i,%psr */
-{ "wr", F3(2, 0x32, 0), F3(~2, ~0x32, ~0)|RD_G0|ASI(~0), "1,2,w", 0, v6 }, /* wr r,r,%wim */
-{ "wr", F3(2, 0x32, 1), F3(~2, ~0x32, ~1)|RD_G0, "1,i,w", 0, v6 }, /* wr r,i,%wim */
-{ "wr", F3(2, 0x33, 0), F3(~2, ~0x33, ~0)|RD_G0|ASI(~0), "1,2,t", 0, v6 }, /* wr r,r,%tbr */
-{ "wr", F3(2, 0x33, 0), F3(~2, ~0x33, ~0)|RD_G0|ASI(~0), "1,2,s", 0, v9 }, /* wr r,r,%usr */
-{ "wr", F3(2, 0x33, 0), F3(~2, ~0x33, ~0)|RD_G0|ASI(~0), "1,2,o", 0, v9 }, /* wr r,r,%asi */
-{ "wr", F3(2, 0x33, 1), F3(~2, ~0x33, ~1)|RD_G0, "1,i,t", 0, v6 }, /* wr r,i,%tbr */
-{ "wr", F3(2, 0x33, 1), F3(~2, ~0x33, ~1)|RD_G0, "1,i,s", 0, v9 }, /* wr r,i,%usr */
-{ "wr", F3(2, 0x33, 1), F3(~2, ~0x33, ~1)|RD_G0, "1,i,o", 0, v9 }, /* wr r,i,%asi */
-
-{ "wr", F3(2, 0x30, 0)|RD(0), F3(~2, ~0x30, ~0)|RD(~0)|ASI(~0), "1,2,y", 0, v9 },
-{ "wr", F3(2, 0x30, 1)|RD(0), F3(~2, ~0x30, ~1)|RD(~0), "1,i,y", 0, v9 },
-{ "wr", F3(2, 0x30, 0)|RD(1), F3(~2, ~0x30, ~0)|RD(~1)|ASI(~0), "1,2,E", 0, v9 },
-{ "wr", F3(2, 0x30, 1)|RD(1), F3(~2, ~0x30, ~1)|RD(~1), "1,i,E", 0, v9 },
-{ "wr", F3(2, 0x30, 0)|RD(3), F3(~2, ~0x30, ~0)|RD(~3)|ASI(~0), "1,2,W", 0, v9 },
-{ "wr", F3(2, 0x30, 1)|RD(3), F3(~2, ~0x30, ~1)|RD(~3), "1,i,W", 0, v9 },
-{ "wr", F3(2, 0x30, 0)|RD(4), F3(~2, ~0x30, ~0)|RD(~4)|ASI(~0), "1,2,p", 0, v9 },
-{ "wr", F3(2, 0x30, 1)|RD(4), F3(~2, ~0x30, ~1)|RD(~4), "1,i,p", 0, v9 },
-{ "wr", F3(2, 0x30, 0)|RD(5), F3(~2, ~0x30, ~0)|RD(~5)|ASI(~0), "1,2,w", 0, v9 },
-{ "wr", F3(2, 0x30, 1)|RD(5), F3(~2, ~0x30, ~1)|RD(~5), "1,i,w", 0, v9 },
-
-{ "rd", F3(2, 0x28, 0), F3(~2, ~0x28, ~0)|SIMM13(~0), "M,d", 0, v8 }, /* rd %asr1,r */
-{ "rd", F3(2, 0x28, 0), F3(~2, ~0x28, ~0)|RS1_G0|SIMM13(~0), "y,d", 0, v6 }, /* rd %y,r */
-{ "rd", F3(2, 0x28, 0)|RS1(1), F3(~2, ~0x28, ~0)|RS1(~1)|SIMM13(~0), "E,d", 0, v9 }, /* rd %modes,r */
-{ "rd", F3(2, 0x28, 0)|RS1(2), F3(~2, ~0x28, ~0)|RS1(~2)|SIMM13(~0), "P,d", 0, v9 }, /* rd %pc,r */
-{ "rd", F3(2, 0x28, 0)|RS1(3), F3(~2, ~0x28, ~0)|RS1(~3)|SIMM13(~0), "W,d", 0, v9 }, /* rd %tick,r */
-{ "rd", F3(2, 0x28, 0)|RS1(4), F3(~2, ~0x28, ~0)|RS1(~4)|SIMM13(~0), "p,d", 0, v9 }, /* rd %psr,r */
-{ "rd", F3(2, 0x28, 0)|RS1(5), F3(~2, ~0x28, ~0)|RS1(~5)|SIMM13(~0), "w,d", 0, v9 }, /* rd %wim,r */
-{ "rd", F3(2, 0x2b, 0), F3(~2, ~0x2b, ~0)|RS1_G0|SIMM13(~0), "t,d", 0, v6 }, /* rd %tbr,r */
-{ "rd", F3(2, 0x2b, 0), F3(~2, ~0x2b, ~0)|RS1_G0|SIMM13(~0), "s,d", 0, v9 }, /* rd %usr,r */
-{ "rd", F3(2, 0x2b, 0), F3(~2, ~0x2b, ~0)|RS1_G0|SIMM13(~0), "o,d", 0, v9 }, /* rd %asi,r */
-
- /* FIXME-now: the v9 (ie, 0.5) definitions of these conflict with the older ones. These are the older ones. */
-{ "rd", F3(2, 0x29, 0), F3(~2, ~0x29, ~0)|RS1_G0|SIMM13(~0), "p,d", 0, v6 }, /* rd %psr,r */
-{ "rd", F3(2, 0x2a, 0), F3(~2, ~0x2a, ~0)|RS1_G0|SIMM13(~0), "w,d", 0, v6 }, /* rd %wim,r */
-
-{ "rdpr", F3(2, 0x2a, 0), F3(~2, ~0x2a, ~0)|SIMM13(~0), "?,d", 0, v9 }, /* rdpr %priv_reg,r */
-{ "wrpr", F3(2, 0x32, 0), F3(~2, ~0x32, ~0)|SIMM13(~0), "1,2,!", 0, v9 },
-{ "wrpr", F3(2, 0x32, 0), F3(~2, ~0x32, ~0)|SIMM13(~0), "1,!", 0, v9 },
-{ "wrpr", F3(2, 0x32, 0), F3(~2, ~0x32, ~0)|SIMM13(~0), "!", 0, v9 },
-{ "wrpr", F3(2, 0x32, 1), F3(~2, ~0x32, ~1), "1,i,!", 0, v9 },
-{ "wrpr", F3(2, 0x32, 1), F3(~2, ~0x32, ~1), "i,1,!", 0, v9 },
-{ "wrpr", F3(2, 0x32, 1), F3(~2, ~0x32, ~1), "i,!", 0, v9 },
-
-{ "mov", F3(2, 0x30, 0), F3(~2, ~0x30, ~0)|ASI(~0), "1,2,m", F_ALIAS, v8 }, /* wr r,r,%asrX */
-{ "mov", F3(2, 0x30, 0), F3(~2, ~0x30, ~0)|RD_G0|ASI(~0), "1,2,y", F_ALIAS, v6 }, /* wr r,r,%y */
-{ "mov", F3(2, 0x30, 0)|RD(0xe), F3(~2, ~0x30, ~0)|RD(~0xe)|ASI(~0), "1,2,Y", F_ALIAS, v9 }, /* wr r,r,%amr */
-{ "mov", F3(2, 0x30, 1), F3(~2, ~0x30, ~1), "1,i,m", F_ALIAS, v8 }, /* wr r,i,%asrX */
-{ "mov", F3(2, 0x30, 1), F3(~2, ~0x30, ~1)|RD_G0, "1,i,y", F_ALIAS, v6 }, /* wr r,i,%y */
-{ "mov", F3(2, 0x30, 1)|RD(0xe), F3(~2, ~0x30, ~1)|RD(~0xe), "1,i,Y", F_ALIAS, v9 }, /* wr r,i,%amr */
-{ "mov", F3(2, 0x31, 0), F3(~2, ~0x31, ~0)|RD_G0|ASI(~0), "1,2,p", F_ALIAS, v6 }, /* wr r,r,%psr */
-{ "mov", F3(2, 0x31, 1), F3(~2, ~0x31, ~1)|RD_G0, "1,i,p", F_ALIAS, v6 }, /* wr r,i,%psr */
-{ "mov", F3(2, 0x32, 0), F3(~2, ~0x32, ~0)|RD_G0|ASI(~0), "1,2,w", F_ALIAS, v6 }, /* wr r,r,%wim */
-{ "mov", F3(2, 0x32, 1), F3(~2, ~0x32, ~1)|RD_G0, "1,i,w", F_ALIAS, v6 }, /* wr r,i,%wim */
-{ "mov", F3(2, 0x33, 0), F3(~2, ~0x33, ~0)|RD_G0|ASI(~0), "1,2,t", F_ALIAS, v6 }, /* wr r,r,%tbr */
-{ "mov", F3(2, 0x33, 1), F3(~2, ~0x33, ~1)|RD_G0, "1,i,t", F_ALIAS, v6 }, /* wr r,i,%tbr */
-
-{ "mov", F3(2, 0x28, 0), F3(~2, ~0x28, ~0)|SIMM13(~0), "M,d", F_ALIAS, v8 }, /* rd %asr1,r */
-{ "mov", F3(2, 0x28, 0), F3(~2, ~0x28, ~0)|RS1_G0|SIMM13(~0), "y,d", F_ALIAS, v6 }, /* rd %y,r */
-{ "mov", F3(2, 0x28, 0)|RS1(0xe), F3(~2, ~0x28, ~0)|RS1(~0xe)|SIMM13(~0), "Y,d", F_ALIAS, v9 }, /* rd %amr,r */
-{ "mov", F3(2, 0x29, 0), F3(~2, ~0x29, ~0)|RS1_G0|SIMM13(~0), "p,d", F_ALIAS, v6 }, /* rd %psr,r */
-{ "mov", F3(2, 0x2a, 0), F3(~2, ~0x2a, ~0)|RS1_G0|SIMM13(~0), "w,d", F_ALIAS, v6 }, /* rd %wim,r */
-{ "mov", F3(2, 0x2b, 0), F3(~2, ~0x2b, ~0)|RS1_G0|SIMM13(~0), "t,d", F_ALIAS, v6 }, /* rd %tbr,r */
-
-{ "mov", F3(2, 0x30, 0), F3(~2, ~0x30, ~0)|ASI_RS2(~0), "1,y", F_ALIAS, v6 }, /* wr rs1,%g0,%y */
-{ "mov", F3(2, 0x30, 1), F3(~2, ~0x30, ~1), "i,y", F_ALIAS, v6 },
-{ "mov", F3(2, 0x30, 1), F3(~2, ~0x30, ~1)|SIMM13(~0), "1,y", F_ALIAS, v6 }, /* wr rs1,0,%y */
-{ "mov", F3(2, 0x31, 0), F3(~2, ~0x31, ~0)|ASI_RS2(~0), "1,p", F_ALIAS, v6 }, /* wr rs1,%g0,%psr */
-{ "mov", F3(2, 0x31, 1), F3(~2, ~0x31, ~1), "i,p", F_ALIAS, v6 },
-{ "mov", F3(2, 0x31, 1), F3(~2, ~0x31, ~1)|SIMM13(~0), "1,p", F_ALIAS, v6 }, /* wr rs1,0,%psr */
-{ "mov", F3(2, 0x32, 0), F3(~2, ~0x32, ~0)|ASI_RS2(~0), "1,w", F_ALIAS, v6 }, /* wr rs1,%g0,%wim */
-{ "mov", F3(2, 0x32, 1), F3(~2, ~0x32, ~1), "i,w", F_ALIAS, v6 },
-{ "mov", F3(2, 0x32, 1), F3(~2, ~0x32, ~1)|SIMM13(~0), "1,w", F_ALIAS, v6 }, /* wr rs1,0,%wim */
-{ "mov", F3(2, 0x33, 0), F3(~2, ~0x33, ~0)|ASI_RS2(~0), "1,t", F_ALIAS, v6 }, /* wr rs1,%g0,%tbr */
-{ "mov", F3(2, 0x33, 1), F3(~2, ~0x33, ~1), "i,t", F_ALIAS, v6 },
-{ "mov", F3(2, 0x33, 1), F3(~2, ~0x33, ~1)|SIMM13(~0), "1,t", F_ALIAS, v6 }, /* wr rs1,0,%tbr */
-
-{ "mov", F3(2, 0x02, 0), F3(~2, ~0x02, ~0)|RS1_G0|ASI(~0), "2,d", 0, v6 }, /* or %g0,rs2,d */
-{ "mov", F3(2, 0x02, 1), F3(~2, ~0x02, ~1)|RS1_G0, "i,d", 0, v6 }, /* or %g0,i,d */
-{ "mov", F3(2, 0x02, 0), F3(~2, ~0x02, ~0)|ASI_RS2(~0), "1,d", 0, v6 }, /* or rs1,%g0,d */
-{ "mov", F3(2, 0x02, 1), F3(~2, ~0x02, ~1)|SIMM13(~0), "1,d", 0, v6 }, /* or rs1,0,d */
-
-{ "or", F3(2, 0x02, 0), F3(~2, ~0x02, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "or", F3(2, 0x02, 1), F3(~2, ~0x02, ~1), "1,i,d", 0, v6 },
-{ "or", F3(2, 0x02, 1), F3(~2, ~0x02, ~1), "i,1,d", 0, v6 },
-
-{ "bset", F3(2, 0x02, 0), F3(~2, ~0x02, ~0)|ASI(~0), "2,r", F_ALIAS, v6 }, /* or rd,rs2,rd */
-{ "bset", F3(2, 0x02, 1), F3(~2, ~0x02, ~1), "i,r", F_ALIAS, v6 }, /* or rd,i,rd */
-
-{ "andn", F3(2, 0x05, 0), F3(~2, ~0x05, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "andn", F3(2, 0x05, 1), F3(~2, ~0x05, ~1), "1,i,d", 0, v6 },
-{ "andn", F3(2, 0x05, 1), F3(~2, ~0x05, ~1), "i,1,d", 0, v6 },
-
-{ "andncc", F3(2, 0x15, 0), F3(~2, ~0x15, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "andncc", F3(2, 0x15, 1), F3(~2, ~0x15, ~1), "1,i,d", 0, v6 },
-{ "andncc", F3(2, 0x15, 1), F3(~2, ~0x15, ~1), "i,1,d", 0, v6 },
-
-{ "bclr", F3(2, 0x05, 0), F3(~2, ~0x05, ~0)|ASI(~0), "2,r", F_ALIAS, v6 }, /* andn rd,rs2,rd */
-{ "bclr", F3(2, 0x05, 1), F3(~2, ~0x05, ~1), "i,r", F_ALIAS, v6 }, /* andn rd,i,rd */
-
-{ "cmp", F3(2, 0x14, 0), F3(~2, ~0x14, ~0)|RD_G0|ASI(~0), "1,2", 0, v6 }, /* subcc rs1,rs2,%g0 */
-{ "cmp", F3(2, 0x14, 1), F3(~2, ~0x14, ~1)|RD_G0, "1,i", 0, v6 }, /* subcc rs1,i,%g0 */
-
-{ "sub", F3(2, 0x04, 0), F3(~2, ~0x04, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "sub", F3(2, 0x04, 1), F3(~2, ~0x04, ~1), "1,i,d", 0, v6 },
-
-{ "subcc", F3(2, 0x14, 0), F3(~2, ~0x14, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "subcc", F3(2, 0x14, 1), F3(~2, ~0x14, ~1), "1,i,d", 0, v6 },
-
-{ "subx", F3(2, 0x0c, 0), F3(~2, ~0x0c, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "subx", F3(2, 0x0c, 1), F3(~2, ~0x0c, ~1), "1,i,d", 0, v6 },
-
-{ "subxcc", F3(2, 0x1c, 0), F3(~2, ~0x1c, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "subxcc", F3(2, 0x1c, 1), F3(~2, ~0x1c, ~1), "1,i,d", 0, v6 },
-
-{ "and", F3(2, 0x01, 0), F3(~2, ~0x01, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "and", F3(2, 0x01, 1), F3(~2, ~0x01, ~1), "1,i,d", 0, v6 },
-{ "and", F3(2, 0x01, 1), F3(~2, ~0x01, ~1), "i,1,d", 0, v6 },
-
-{ "andcc", F3(2, 0x11, 0), F3(~2, ~0x11, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "andcc", F3(2, 0x11, 1), F3(~2, ~0x11, ~1), "1,i,d", 0, v6 },
-{ "andcc", F3(2, 0x11, 1), F3(~2, ~0x11, ~1), "i,1,d", 0, v6 },
-
-{ "dec", F3(2, 0x04, 1)|SIMM13(0x1), F3(~2, ~0x04, ~1)|SIMM13(~0x0001), "r", F_ALIAS, v6 }, /* sub rd,1,rd */
-{ "dec", F3(2, 0x04, 1), F3(~2, ~0x04, ~1), "i,r", F_ALIAS, v8 }, /* sub rd,imm,rd */
-{ "deccc", F3(2, 0x14, 1)|SIMM13(0x1), F3(~2, ~0x14, ~1)|SIMM13(~0x0001), "r", F_ALIAS, v6 }, /* subcc rd,1,rd */
-{ "deccc", F3(2, 0x14, 1), F3(~2, ~0x14, ~1), "i,r", F_ALIAS, v8 }, /* subcc rd,imm,rd */
-{ "inc", F3(2, 0x00, 1)|SIMM13(0x1), F3(~2, ~0x00, ~1)|SIMM13(~0x0001), "r", F_ALIAS, v6 }, /* add rd,1,rd */
-{ "inc", F3(2, 0x00, 1), F3(~2, ~0x00, ~1), "i,r", F_ALIAS, v8 }, /* add rd,imm,rd */
-{ "inccc", F3(2, 0x10, 1)|SIMM13(0x1), F3(~2, ~0x10, ~1)|SIMM13(~0x0001), "r", F_ALIAS, v6 }, /* addcc rd,1,rd */
-{ "inccc", F3(2, 0x10, 1), F3(~2, ~0x10, ~1), "i,r", F_ALIAS, v8 }, /* addcc rd,imm,rd */
-
-{ "btst", F3(2, 0x11, 0), F3(~2, ~0x11, ~0)|RD_G0|ASI(~0), "1,2", F_ALIAS, v6 }, /* andcc rs1,rs2,%g0 */
-{ "btst", F3(2, 0x11, 1), F3(~2, ~0x11, ~1)|RD_G0, "i,1", F_ALIAS, v6 }, /* andcc rs1,i,%g0 */
-
-{ "neg", F3(2, 0x04, 0), F3(~2, ~0x04, ~0)|RS1_G0|ASI(~0), "2,d", F_ALIAS, v6 }, /* sub %g0,rs2,rd */
-{ "neg", F3(2, 0x04, 0), F3(~2, ~0x04, ~0)|RS1_G0|ASI(~0), "r", F_ALIAS, v6 }, /* sub %g0,rd,rd */
-
-{ "add", F3(2, 0x00, 0), F3(~2, ~0x00, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "add", F3(2, 0x00, 1), F3(~2, ~0x00, ~1), "1,i,d", 0, v6 },
-{ "add", F3(2, 0x00, 1), F3(~2, ~0x00, ~1), "i,1,d", 0, v6 },
-{ "addcc", F3(2, 0x10, 0), F3(~2, ~0x10, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "addcc", F3(2, 0x10, 1), F3(~2, ~0x10, ~1), "1,i,d", 0, v6 },
-{ "addcc", F3(2, 0x10, 1), F3(~2, ~0x10, ~1), "i,1,d", 0, v6 },
-{ "addx", F3(2, 0x08, 0), F3(~2, ~0x08, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "addx", F3(2, 0x08, 1), F3(~2, ~0x08, ~1), "1,i,d", 0, v6 },
-{ "addx", F3(2, 0x08, 1), F3(~2, ~0x08, ~1), "i,1,d", 0, v6 },
-{ "addxcc", F3(2, 0x18, 0), F3(~2, ~0x18, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "addxcc", F3(2, 0x18, 1), F3(~2, ~0x18, ~1), "1,i,d", 0, v6 },
-{ "addxcc", F3(2, 0x18, 1), F3(~2, ~0x18, ~1), "i,1,d", 0, v6 },
-
-{ "smul", F3(2, 0x0b, 0), F3(~2, ~0x0b, ~0)|ASI(~0), "1,2,d", 0, v8 },
-{ "smul", F3(2, 0x0b, 1), F3(~2, ~0x0b, ~1), "1,i,d", 0, v8 },
-{ "smul", F3(2, 0x0b, 1), F3(~2, ~0x0b, ~1), "i,1,d", 0, v8 },
-{ "smulcc", F3(2, 0x1b, 0), F3(~2, ~0x1b, ~0)|ASI(~0), "1,2,d", 0, v8 },
-{ "smulcc", F3(2, 0x1b, 1), F3(~2, ~0x1b, ~1), "1,i,d", 0, v8 },
-{ "smulcc", F3(2, 0x1b, 1), F3(~2, ~0x1b, ~1), "i,1,d", 0, v8 },
-{ "umul", F3(2, 0x0a, 0), F3(~2, ~0x0a, ~0)|ASI(~0), "1,2,d", 0, v8 },
-{ "umul", F3(2, 0x0a, 1), F3(~2, ~0x0a, ~1), "1,i,d", 0, v8 },
-{ "umul", F3(2, 0x0a, 1), F3(~2, ~0x0a, ~1), "i,1,d", 0, v8 },
-{ "umulcc", F3(2, 0x1a, 0), F3(~2, ~0x1a, ~0)|ASI(~0), "1,2,d", 0, v8 },
-{ "umulcc", F3(2, 0x1a, 1), F3(~2, ~0x1a, ~1), "1,i,d", 0, v8 },
-{ "umulcc", F3(2, 0x1a, 1), F3(~2, ~0x1a, ~1), "i,1,d", 0, v8 },
-{ "sdiv", F3(2, 0x0f, 0), F3(~2, ~0x0f, ~0)|ASI(~0), "1,2,d", 0, v8 },
-{ "sdiv", F3(2, 0x0f, 1), F3(~2, ~0x0f, ~1), "1,i,d", 0, v8 },
-{ "sdiv", F3(2, 0x0f, 1), F3(~2, ~0x0f, ~1), "i,1,d", 0, v8 },
-{ "sdivcc", F3(2, 0x1f, 0), F3(~2, ~0x1f, ~0)|ASI(~0), "1,2,d", 0, v8 },
-{ "sdivcc", F3(2, 0x1f, 1), F3(~2, ~0x1f, ~1), "1,i,d", 0, v8 },
-{ "sdivcc", F3(2, 0x1f, 1), F3(~2, ~0x1f, ~1), "i,1,d", 0, v8 },
-{ "udiv", F3(2, 0x0e, 0), F3(~2, ~0x0e, ~0)|ASI(~0), "1,2,d", 0, v8 },
-{ "udiv", F3(2, 0x0e, 1), F3(~2, ~0x0e, ~1), "1,i,d", 0, v8 },
-{ "udiv", F3(2, 0x0e, 1), F3(~2, ~0x0e, ~1), "i,1,d", 0, v8 },
-{ "udivcc", F3(2, 0x1e, 0), F3(~2, ~0x1e, ~0)|ASI(~0), "1,2,d", 0, v8 },
-{ "udivcc", F3(2, 0x1e, 1), F3(~2, ~0x1e, ~1), "1,i,d", 0, v8 },
-{ "udivcc", F3(2, 0x1e, 1), F3(~2, ~0x1e, ~1), "i,1,d", 0, v8 },
-
-{ "mulx", F3(2, 0x09, 0), F3(~2, ~0x09, ~0)|ASI(~0), "1,2,d", 0, v9 },
-{ "mulx", F3(2, 0x09, 1), F3(~2, ~0x09, ~1), "1,i,d", 0, v9 },
-{ "umulxcc", F3(2, 0x19, 0), F3(~2, ~0x19, ~0)|ASI(~0), "1,2,d", 0, v9 },
-{ "umulxcc", F3(2, 0x19, 1), F3(~2, ~0x19, ~1), "1,i,d", 0, v9 },
-{ "sdivxcc", F3(2, 0x1d, 0), F3(~2, ~0x1d, ~0)|ASI(~0), "1,2,d", 0, v9 },
-{ "sdivxcc", F3(2, 0x1d, 1), F3(~2, ~0x1d, ~1), "1,i,d", 0, v9 },
-{ "udivx", F3(2, 0x0d, 0), F3(~2, ~0x0d, ~0)|ASI(~0), "1,2,d", 0, v9 },
-{ "udivx", F3(2, 0x0d, 1), F3(~2, ~0x0d, ~1), "1,i,d", 0, v9 },
-
-{ "call", F1(0x1), F1(~0x1), "L", F_DELAYED, v6 },
-{ "call", F1(0x1), F1(~0x1), "L,#", F_DELAYED, v6 },
-{ "call", F3(2, 0x38, 0)|RD(0xf), F3(~2, ~0x38, ~0)|RD(~0xf)|ASI_RS2(~0), "1", F_DELAYED, v6 }, /* jmpl rs1+%g0, %o7 */
-{ "call", F3(2, 0x38, 0)|RD(0xf), F3(~2, ~0x38, ~0)|RD(~0xf)|ASI_RS2(~0), "1,#", F_DELAYED, v6 },
-
-/* Conditional instructions.
-
- Because this part of the table was such a mess earlier, I have
- macrofied it so that all the branches and traps are generated from
- a single-line description of each condition value. John Gilmore. */
-
-/* Define branches -- one annulled, one without, etc. */
-#define br(opcode, mask, lose, flags) \
- { opcode, (mask)|ANNUL, (lose), ",a l", (flags), v6 }, \
- { opcode, (mask) , (lose)|ANNUL, "l", (flags), v6 }
-
-#define brx(opcode, mask, lose, flags) /* v9 */ \
- { opcode, (mask), (lose)|ANNUL|BPRED, "Z,G", (flags), v9 }, \
- { opcode, (mask), (lose)|ANNUL|BPRED, ",N Z,G", (flags), v9 }, \
- { opcode, (mask)|ANNUL, (lose)|BPRED, ",a Z,G", (flags), v9 }, \
- { opcode, (mask)|ANNUL, (lose)|BPRED, ",a,N Z,G", (flags), v9 }, \
- { opcode, (mask)|BPRED, (lose)|ANNUL, ",T Z,G", (flags), v9 }, \
- { opcode, (mask)|ANNUL|BPRED, (lose), ",a,T Z,G", (flags), v9 }, \
- { opcode, (mask), (lose)|ANNUL|BPRED, "z,G", (flags), v9 }, \
- { opcode, (mask), (lose)|ANNUL|BPRED, ",N z,G", (flags), v9 }, \
- { opcode, (mask)|ANNUL, (lose)|BPRED, ",a z,G", (flags), v9 }, \
- { opcode, (mask)|ANNUL, (lose)|BPRED, ",a,N z,G", (flags), v9 }, \
- { opcode, (mask)|BPRED, (lose)|ANNUL, ",T z,G", (flags), v9 }, \
- { opcode, (mask)|ANNUL|BPRED, (lose), ",a,T z,G", (flags), v9 }
-
-/* Define four traps: reg+reg, reg + immediate, immediate alone, reg alone. */
-#define tr(opcode, mask, lose, flags) \
- { opcode, (mask)|IMMED, (lose)|RS1_G0, "i", (flags), v6 }, /* %g0 + imm */ \
- { opcode, (mask)|IMMED, (lose), "1+i", (flags), v6 }, /* rs1 + imm */ \
- { opcode, (mask), IMMED|(lose), "1+2", (flags), v6 }, /* rs1 + rs2 */ \
- { opcode, (mask)|(2<<11)|IMMED, (lose)|RS1_G0, "Z,i", (flags), v9 }, /* %g0 + imm */ \
- { opcode, (mask)|(2<<11)|IMMED, (lose), "Z,1+i", (flags), v9 }, /* rs1 + imm */ \
- { opcode, (mask)|(2<<11), IMMED|(lose), "Z,1+2", (flags), v9 }, /* rs1 + rs2 */ \
- { opcode, (mask)|(2<<11), IMMED|(lose)|RS2_G0, "Z,1", (flags), v9 }, /* rs1 + %g0 */ \
- { opcode, (mask)|IMMED, (lose)|RS1_G0, "z,i", (flags)|F_ALIAS, v9 }, /* %g0 + imm */ \
- { opcode, (mask)|IMMED, (lose), "z,1+i", (flags)|F_ALIAS, v9 }, /* rs1 + imm */ \
- { opcode, (mask), IMMED|(lose), "z,1+2", (flags)|F_ALIAS, v9 }, /* rs1 + rs2 */ \
- { opcode, (mask), IMMED|(lose)|RS2_G0, "z,1", (flags)|F_ALIAS, v9 }, /* rs1 + %g0 */ \
- { opcode, (mask), IMMED|(lose)|RS2_G0, "1", (flags), v6 } /* rs1 + %g0 */
-
-/* Define both branches and traps based on condition mask */
-#define cond(bop, top, mask, flags) \
- br(bop, F2(0, 2)|(mask), F2(~0, ~2)|((~mask)&COND(~0)), F_DELAYED|(flags)), \
- brx(bop, F2(0, 1)|(mask), F2(~0, ~1)|((~mask)&COND(~0)), F_DELAYED|(flags)), /* v9 */ \
- tr(top, F3(2, 0x3a, 0)|(mask), F3(~2, ~0x3a, 0)|((~mask)&COND(~0)), (flags))
-
-/* Define all the conditions, all the branches, all the traps. */
-
-cond ("b", "t", CONDA, 0),
-cond ("ba", "ta", CONDA, F_ALIAS), /* for nothing */
-cond ("bcc", "tcc", CONDCC, 0),
-cond ("bcs", "tcs", CONDCS, 0),
-cond ("be", "te", CONDE, 0),
-cond ("bg", "tg", CONDG, 0),
-cond ("bgt", "tgt", CONDG, F_ALIAS),
-cond ("bge", "tge", CONDGE, 0),
-cond ("bgeu", "tgeu", CONDGEU, F_ALIAS), /* for cc */
-cond ("bgu", "tgu", CONDGU, 0),
-cond ("bl", "tl", CONDL, 0),
-cond ("blt", "tlt", CONDL, F_ALIAS),
-cond ("ble", "tle", CONDLE, 0),
-cond ("bleu", "tleu", CONDLEU, 0),
-cond ("blu", "tlu", CONDLU, F_ALIAS), /* for cs */
-cond ("bn", "tn", CONDN, 0),
-cond ("bne", "tne", CONDNE, 0),
-cond ("bneg", "tneg", CONDNEG, 0),
-cond ("bnz", "tnz", CONDNZ, F_ALIAS), /* for ne */
-cond ("bpos", "tpos", CONDPOS, 0),
-cond ("bvc", "tvc", CONDVC, 0),
-cond ("bvs", "tvs", CONDVS, 0),
-cond ("bz", "tz", CONDZ, F_ALIAS), /* for e */
-
-#undef cond
-#undef br
-#undef tr
-
-#define brr(opcode, mask, lose, flags) /* v9 */ \
- { opcode, (mask), (lose)|ANNUL|BPRED, "1,k", F_DELAYED|(flags), v9 }, \
- { opcode, (mask), (lose)|ANNUL|BPRED, ",N 1,k", F_DELAYED|(flags), v9 }, \
- { opcode, (mask)|ANNUL, (lose)|BPRED, ",a 1,k", F_DELAYED|(flags), v9 }, \
- { opcode, (mask)|ANNUL, (lose)|BPRED, ",a,N 1,k", F_DELAYED|(flags), v9 }, \
- { opcode, (mask)|BPRED, (lose)|ANNUL, ",T 1,k", F_DELAYED|(flags), v9 }, \
- { opcode, (mask)|ANNUL|BPRED, (lose), ",a,T 1,k", F_DELAYED|(flags), v9 }
-
-#define condr(bop, mask, flags) /* v9 */ \
- brr(bop, F2(0, 3)|COND(mask), F2(~0, ~3)|COND(~(mask)), (flags)) /* v9 */ \
-
-/* v9 */ condr("bre", 0x1, 0),
-/* v9 */ condr("brne", 0x5, 0),
-/* v9 */ condr("brneg", 0x3, 0),
-/* v9 */ condr("brnegz", 0x2, 0),
-/* v9 */ condr("brposnz", 0x6, 0),
-/* v9 */ condr("brnz", 0x5, F_ALIAS),
-/* v9 */ condr("brpos", 0x7, 0),
-/* v9 */ condr("brz", 0x1, F_ALIAS),
-
-#undef condr /* v9 */
-#undef brr /* v9 */
-
-#define mrr(opcode, mask, lose, flags) /* v9 */ \
- { opcode, (mask), (lose), "1,2,d", (flags), v9 }, \
- { opcode, (mask), (lose), "1,i,d", (flags), v9 }
-
-#define movr(mop, mask, flags) /* v9 */ \
- mrr(mop, F3(2, 0x2f, 0)|COND(mask), F3(~2, ~0x2f, ~0)|COND(~(mask)), (flags)), /* v9 */ \
- mrr(mop, F3(2, 0x2f, 1)|COND(mask), F3(~2, ~0x2f, ~1)|COND(~(mask)), (flags)) /* v9 */
-
-#define fmrrs(opcode, mask, lose, flags) /* v9 */ \
- { opcode, (mask), (lose), "1,f,g", (flags), v9 }
-#define fmrrd(opcode, mask, lose, flags) /* v9 */ \
- { opcode, (mask), (lose), "1,B,H", (flags), v9 }
-#define fmrrq(opcode, mask, lose, flags) /* v9 */ \
- { opcode, (mask), (lose), "1,R,J", (flags), v9 }
-
-#define fmovrs(mop, mask, flags) /* v9 */ \
- fmrrs(mop, F3(2, 0x25, 0)|OPF_LOW(5)|COND(mask), F3(~2, ~0x25, 0)|OPF_LOW(~5)|COND(~(mask)), (flags)) /* v9 */
-#define fmovrd(mop, mask, flags) /* v9 */ \
- fmrrd(mop, F3(2, 0x25, 0)|OPF_LOW(6)|COND(mask), F3(~2, ~0x25, 0)|OPF_LOW(~6)|COND(~(mask)), (flags)) /* v9 */
-#define fmovrq(mop, mask, flags) /* v9 */ \
- fmrrq(mop, F3(2, 0x25, 0)|OPF_LOW(7)|COND(mask), F3(~2, ~0x25, 0)|OPF_LOW(~7)|COND(~(mask)), (flags)) /* v9 */
-
-/* v9 */ movr("movrne", 0x5, 0),
-/* v9 */ movr("movre", 0x1, 0),
-/* v9 */ movr("movrpos", 0x7, 0),
-/* v9 */ movr("movrneg", 0x3, 0),
-/* v9 */ movr("movrnegz", 0x2, 0),
-/* v9 */ movr("movrposnz", 0x6, 0),
-/* v9 */ movr("movrnz", 0x5, F_ALIAS),
-/* v9 */ movr("movrz", 0x1, F_ALIAS),
-
-/* v9 */ fmovrs("fmovrnes", 0x5, 0),
-/* v9 */ fmovrs("fmovres", 0x1, 0),
-/* v9 */ fmovrs("fmovrposs", 0x7, 0),
-/* v9 */ fmovrs("fmovrnegs", 0x3, 0),
-/* v9 */ fmovrs("fmovrnegzs", 0x2, 0),
-/* v9 */ fmovrs("fmovrposnzs", 0x6, 0),
-/* v9 */ fmovrs("fmovrnzs", 0x5, F_ALIAS),
-/* v9 */ fmovrs("fmovrzs", 0x1, F_ALIAS),
-
-/* v9 */ fmovrd("fmovrned", 0x5, 0),
-/* v9 */ fmovrd("fmovred", 0x1, 0),
-/* v9 */ fmovrd("fmovrposd", 0x7, 0),
-/* v9 */ fmovrd("fmovrnegd", 0x3, 0),
-/* v9 */ fmovrd("fmovrnegzd", 0x2, 0),
-/* v9 */ fmovrd("fmovrposnzd", 0x6, 0),
-/* v9 */ fmovrd("fmovrnzd", 0x5, F_ALIAS),
-/* v9 */ fmovrd("fmovrzd", 0x1, F_ALIAS),
-
-/* v9 */ fmovrq("fmovrneq", 0x5, 0),
-/* v9 */ fmovrq("fmovreq", 0x1, 0),
-/* v9 */ fmovrq("fmovrposq", 0x7, 0),
-/* v9 */ fmovrq("fmovrnegq", 0x3, 0),
-/* v9 */ fmovrq("fmovrnegzq", 0x2, 0),
-/* v9 */ fmovrq("fmovrposnzq", 0x6, 0),
-/* v9 */ fmovrq("fmovrnzq", 0x5, F_ALIAS),
-/* v9 */ fmovrq("fmovrzq", 0x1, F_ALIAS),
-
-#undef movr /* v9 */
-#undef mrr /* v9 */
-#undef fmovr /* v9 */
-#undef fmrr /* v9 */
-
-{ "mova", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDA,0), MCOND(~FCONDA,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDA,0), MCOND(~FCONDA,~0)|FCC(~0)|F3(~2, ~0x2c,~1), "6,I,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDA,0), MCOND(~FCONDA,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDA,0), MCOND(~FCONDA,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDA,0), MCOND(~FCONDA,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDA,0), MCOND(~FCONDA,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDA,0), MCOND(~FCONDA,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDA,0), MCOND(~FCONDA,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 0)|MCOND(CONDA,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDA,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 1)|MCOND(CONDA,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDA,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 0)|MCOND(CONDA,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDA,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 1)|MCOND(CONDA,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDA,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movcc", F3(2, 0x2c, 0)|MCOND(CONDCC,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDCC,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movcc", F3(2, 0x2c, 1)|MCOND(CONDCC,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDCC,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movcc", F3(2, 0x2c, 0)|MCOND(CONDCC,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDCC,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movcc", F3(2, 0x2c, 1)|MCOND(CONDCC,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDCC,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movgeu", F3(2, 0x2c, 0)|MCOND(CONDGEU,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDGEU,~1)|XCC|(1<<12), "z,2,d", F_ALIAS, v9 },
-{ "movgeu", F3(2, 0x2c, 1)|MCOND(CONDGEU,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDGEU,~1)|XCC|(1<<12), "z,I,d", F_ALIAS, v9 },
-{ "movgeu", F3(2, 0x2c, 0)|MCOND(CONDGEU,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDGEU,~1)|(1<<12), "Z,2,d", F_ALIAS, v9 },
-{ "movgeu", F3(2, 0x2c, 1)|MCOND(CONDGEU,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDGEU,~1)|(1<<12), "Z,I,d", F_ALIAS, v9 },
-{ "movcs", F3(2, 0x2c, 0)|MCOND(CONDCS,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDCS,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movcs", F3(2, 0x2c, 1)|MCOND(CONDCS,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDCS,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movcs", F3(2, 0x2c, 0)|MCOND(CONDCS,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDCS,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movcs", F3(2, 0x2c, 1)|MCOND(CONDCS,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDCS,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movlu", F3(2, 0x2c, 0)|MCOND(CONDLU,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDLU,~1)|XCC|(1<<12), "z,2,d", F_ALIAS, v9 },
-{ "movlu", F3(2, 0x2c, 1)|MCOND(CONDLU,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDLU,~1)|XCC|(1<<12), "z,I,d", F_ALIAS, v9 },
-{ "movlu", F3(2, 0x2c, 0)|MCOND(CONDLU,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDLU,~1)|(1<<12), "Z,2,d", F_ALIAS, v9 },
-{ "movlu", F3(2, 0x2c, 1)|MCOND(CONDLU,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDLU,~1)|(1<<12), "Z,I,d", F_ALIAS, v9 },
-{ "move", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDE,0), MCOND(~FCONDE,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "move", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDE,0), MCOND(~FCONDE,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "move", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDE,0), MCOND(~FCONDE,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "move", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDE,0), MCOND(~FCONDE,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "move", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDE,0), MCOND(~FCONDE,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "move", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDE,0), MCOND(~FCONDE,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "move", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDE,0), MCOND(~FCONDE,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "move", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDE,0), MCOND(~FCONDE,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "move", F3(2, 0x2c, 0)|MCOND(CONDE,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDE,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "move", F3(2, 0x2c, 1)|MCOND(CONDE,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDE,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "move", F3(2, 0x2c, 0)|MCOND(CONDE,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDE,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "move", F3(2, 0x2c, 1)|MCOND(CONDE,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDE,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDG,0), MCOND(~FCONDG,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDG,0), MCOND(~FCONDG,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDG,0), MCOND(~FCONDG,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDG,0), MCOND(~FCONDG,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDG,0), MCOND(~FCONDG,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDG,0), MCOND(~FCONDG,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDG,0), MCOND(~FCONDG,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDG,0), MCOND(~FCONDG,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 0)|MCOND(CONDG,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDG,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 1)|MCOND(CONDG,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDG,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 0)|MCOND(CONDG,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDG,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 1)|MCOND(CONDG,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDG,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDGE,0), MCOND(~FCONDGE,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDGE,0), MCOND(~FCONDGE,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDGE,0), MCOND(~FCONDGE,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDGE,0), MCOND(~FCONDGE,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDGE,0), MCOND(~FCONDGE,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDGE,0), MCOND(~FCONDGE,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDGE,0), MCOND(~FCONDGE,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDGE,0), MCOND(~FCONDGE,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 0)|MCOND(CONDGE,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDGE,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 1)|MCOND(CONDGE,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDGE,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 0)|MCOND(CONDGE,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDGE,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 1)|MCOND(CONDGE,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDGE,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movgu", F3(2, 0x2c, 0)|MCOND(CONDGU,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDGU,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movgu", F3(2, 0x2c, 1)|MCOND(CONDGU,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDGU,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movgu", F3(2, 0x2c, 0)|MCOND(CONDGU,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDGU,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movgu", F3(2, 0x2c, 1)|MCOND(CONDGU,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDGU,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDL,0), MCOND(~FCONDL,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDL,0), MCOND(~FCONDL,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDL,0), MCOND(~FCONDL,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDL,0), MCOND(~FCONDL,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDL,0), MCOND(~FCONDL,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDL,0), MCOND(~FCONDL,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDL,0), MCOND(~FCONDL,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDL,0), MCOND(~FCONDL,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 0)|MCOND(CONDL,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDL,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 1)|MCOND(CONDL,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDL,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 0)|MCOND(CONDL,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDL,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 1)|MCOND(CONDL,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDL,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDLE,0), MCOND(~FCONDLE,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDLE,0), MCOND(~FCONDLE,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDLE,0), MCOND(~FCONDLE,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDLE,0), MCOND(~FCONDLE,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDLE,0), MCOND(~FCONDLE,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDLE,0), MCOND(~FCONDLE,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDLE,0), MCOND(~FCONDLE,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDLE,0), MCOND(~FCONDLE,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 0)|MCOND(CONDLE,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDLE,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 1)|MCOND(CONDLE,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDLE,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 0)|MCOND(CONDLE,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDLE,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 1)|MCOND(CONDLE,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDLE,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movleu", F3(2, 0x2c, 0)|MCOND(CONDLEU,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDLEU,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movleu", F3(2, 0x2c, 1)|MCOND(CONDLEU,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDLEU,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movleu", F3(2, 0x2c, 0)|MCOND(CONDLEU,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDLEU,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movleu", F3(2, 0x2c, 1)|MCOND(CONDLEU,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDLEU,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movlg", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDLG,0), MCOND(~FCONDLG,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movlg", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDLG,0), MCOND(~FCONDLG,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movlg", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDLG,0), MCOND(~FCONDLG,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movlg", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDLG,0), MCOND(~FCONDLG,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movlg", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDLG,0), MCOND(~FCONDLG,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movlg", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDLG,0), MCOND(~FCONDLG,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movlg", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDLG,0), MCOND(~FCONDLG,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movlg", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDLG,0), MCOND(~FCONDLG,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDN,0), MCOND(~FCONDN,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDN,0), MCOND(~FCONDN,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDN,0), MCOND(~FCONDN,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDN,0), MCOND(~FCONDN,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDN,0), MCOND(~FCONDN,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDN,0), MCOND(~FCONDN,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDN,0), MCOND(~FCONDN,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDN,0), MCOND(~FCONDN,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 0)|MCOND(CONDN,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDN,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 1)|MCOND(CONDN,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDN,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 0)|MCOND(CONDN,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDN,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 1)|MCOND(CONDN,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDN,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDNE,0), MCOND(~FCONDNE,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDNE,0), MCOND(~FCONDNE,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDNE,0), MCOND(~FCONDNE,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDNE,0), MCOND(~FCONDNE,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDNE,0), MCOND(~FCONDNE,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDNE,0), MCOND(~FCONDNE,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDNE,0), MCOND(~FCONDNE,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDNE,0), MCOND(~FCONDNE,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 0)|MCOND(CONDNE,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDNE,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 1)|MCOND(CONDNE,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDNE,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 0)|MCOND(CONDNE,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDNE,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 1)|MCOND(CONDNE,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDNE,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movneg", F3(2, 0x2c, 0)|MCOND(CONDNEG,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDNEG,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movneg", F3(2, 0x2c, 1)|MCOND(CONDNEG,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDNEG,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movneg", F3(2, 0x2c, 0)|MCOND(CONDNEG,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDNEG,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movneg", F3(2, 0x2c, 1)|MCOND(CONDNEG,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDNEG,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movnz", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDNZ,0), MCOND(~FCONDNZ,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDNZ,0), MCOND(~FCONDNZ,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDNZ,0), MCOND(~FCONDNZ,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDNZ,0), MCOND(~FCONDNZ,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDNZ,0), MCOND(~FCONDNZ,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDNZ,0), MCOND(~FCONDNZ,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDNZ,0), MCOND(~FCONDNZ,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDNZ,0), MCOND(~FCONDNZ,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", F_ALIAS, v9 },
-{ "movo", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDO,0), MCOND(~FCONDO,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movo", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDO,0), MCOND(~FCONDO,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movo", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDO,0), MCOND(~FCONDO,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movo", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDO,0), MCOND(~FCONDO,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movo", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDO,0), MCOND(~FCONDO,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movo", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDO,0), MCOND(~FCONDO,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movo", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDO,0), MCOND(~FCONDO,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movo", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDO,0), MCOND(~FCONDO,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movpos", F3(2, 0x2c, 0)|MCOND(CONDPOS,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDPOS,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movpos", F3(2, 0x2c, 1)|MCOND(CONDPOS,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDPOS,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movpos", F3(2, 0x2c, 0)|MCOND(CONDPOS,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDPOS,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movpos", F3(2, 0x2c, 1)|MCOND(CONDPOS,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDPOS,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movu", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDU,0), MCOND(~FCONDU,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movu", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDU,0), MCOND(~FCONDU,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movu", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDU,0), MCOND(~FCONDU,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movu", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDU,0), MCOND(~FCONDU,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movu", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDU,0), MCOND(~FCONDU,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movu", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDU,0), MCOND(~FCONDU,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movu", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDU,0), MCOND(~FCONDU,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movu", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDU,0), MCOND(~FCONDU,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movue", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDUE,0), MCOND(~FCONDUE,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movue", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDUE,0), MCOND(~FCONDUE,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movue", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDUE,0), MCOND(~FCONDUE,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movue", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDUE,0), MCOND(~FCONDUE,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movue", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDUE,0), MCOND(~FCONDUE,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movue", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDUE,0), MCOND(~FCONDUE,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movue", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDUE,0), MCOND(~FCONDUE,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movue", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDUE,0), MCOND(~FCONDUE,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movug", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDUG,0), MCOND(~FCONDUG,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movug", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDUG,0), MCOND(~FCONDUG,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movug", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDUG,0), MCOND(~FCONDUG,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movug", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDUG,0), MCOND(~FCONDUG,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movug", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDUG,0), MCOND(~FCONDUG,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movug", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDUG,0), MCOND(~FCONDUG,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movug", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDUG,0), MCOND(~FCONDUG,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movug", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDUG,0), MCOND(~FCONDUG,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movuge", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDUGE,0), MCOND(~FCONDUGE,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movuge", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDUGE,0), MCOND(~FCONDUGE,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movuge", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDUGE,0), MCOND(~FCONDUGE,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movuge", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDUGE,0), MCOND(~FCONDUGE,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movuge", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDUGE,0), MCOND(~FCONDUGE,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movuge", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDUGE,0), MCOND(~FCONDUGE,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movuge", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDUGE,0), MCOND(~FCONDUGE,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movuge", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDUGE,0), MCOND(~FCONDUGE,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movul", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDUL,0), MCOND(~FCONDUL,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movul", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDUL,0), MCOND(~FCONDUL,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movul", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDUL,0), MCOND(~FCONDUL,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movul", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDUL,0), MCOND(~FCONDUL,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movul", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDUL,0), MCOND(~FCONDUL,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movul", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDUL,0), MCOND(~FCONDUL,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movul", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDUL,0), MCOND(~FCONDUL,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movul", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDUL,0), MCOND(~FCONDUL,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movule", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDULE,0), MCOND(~FCONDULE,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movule", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDULE,0), MCOND(~FCONDULE,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movule", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDULE,0), MCOND(~FCONDULE,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movule", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDULE,0), MCOND(~FCONDULE,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movule", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDULE,0), MCOND(~FCONDULE,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movule", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDULE,0), MCOND(~FCONDULE,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movule", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDULE,0), MCOND(~FCONDULE,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movule", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDULE,0), MCOND(~FCONDULE,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movvc", F3(2, 0x2c, 0)|MCOND(CONDVC,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDVC,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movvc", F3(2, 0x2c, 1)|MCOND(CONDVC,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDVC,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movvc", F3(2, 0x2c, 0)|MCOND(CONDVC,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDVC,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movvc", F3(2, 0x2c, 1)|MCOND(CONDVC,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDVC,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movvs", F3(2, 0x2c, 0)|MCOND(CONDVS,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDVS,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movvs", F3(2, 0x2c, 1)|MCOND(CONDVS,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDVS,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movvs", F3(2, 0x2c, 0)|MCOND(CONDVS,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDVS,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movvs", F3(2, 0x2c, 1)|MCOND(CONDVS,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDVS,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movz", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDZ,0), MCOND(~FCONDZ,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDZ,0), MCOND(~FCONDZ,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDZ,0), MCOND(~FCONDZ,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDZ,0), MCOND(~FCONDZ,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDZ,0), MCOND(~FCONDZ,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDZ,0), MCOND(~FCONDZ,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDZ,0), MCOND(~FCONDZ,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDZ,0), MCOND(~FCONDZ,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", F_ALIAS, v9 },
-
-{ "fmovad", F3F(2, 0x35, 0x102)|MCOND(CONDA,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDA,~0), "z,f,g", 0, v9 },
-{ "fmovad", F3F(2, 0x35, 0x082)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDA,~0), "6,f,g", 0, v9 },
-{ "fmovad", F3F(2, 0x35, 0x182)|MCOND(CONDA,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDA,~0), "Z,f,g", 0, v9 },
-{ "fmovad", F3F(2, 0x35, 0x0a2)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDA,~0), "7,f,g", 0, v9 },
-{ "fmovad", F3F(2, 0x35, 0x0c2)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDA,~0), "8,f,g", 0, v9 },
-{ "fmovad", F3F(2, 0x35, 0x0e2)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDA,~0), "9,f,g", 0, v9 },
-{ "fmovaq", F3F(2, 0x35, 0x103)|MCOND(CONDA,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDA,~0), "z,f,g", 0, v9 },
-{ "fmovaq", F3F(2, 0x35, 0x083)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDA,~0), "6,f,g", 0, v9 },
-{ "fmovaq", F3F(2, 0x35, 0x183)|MCOND(CONDA,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDA,~0), "Z,f,g", 0, v9 },
-{ "fmovaq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDA,~0), "7,f,g", 0, v9 },
-{ "fmovaq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDA,~0), "8,f,g", 0, v9 },
-{ "fmovaq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDA,~0), "9,f,g", 0, v9 },
-{ "fmovas", F3F(2, 0x35, 0x101)|MCOND(CONDA,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDA,~0), "z,f,g", 0, v9 },
-{ "fmovas", F3F(2, 0x35, 0x081)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDA,~0), "6,f,g", 0, v9 },
-{ "fmovas", F3F(2, 0x35, 0x181)|MCOND(CONDA,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDA,~0), "Z,f,g", 0, v9 },
-{ "fmovas", F3F(2, 0x35, 0x0a1)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDA,~0), "7,f,g", 0, v9 },
-{ "fmovas", F3F(2, 0x35, 0x0c1)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDA,~0), "8,f,g", 0, v9 },
-{ "fmovas", F3F(2, 0x35, 0x0e1)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDA,~0), "9,f,g", 0, v9 },
-{ "fmovccd", F3F(2, 0x35, 0x102)|MCOND(CONDCC,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDCC,~0), "z,f,g", 0, v9 },
-{ "fmovccd", F3F(2, 0x35, 0x182)|MCOND(CONDCC,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDCC,~0), "Z,f,g", 0, v9 },
-{ "fmovccq", F3F(2, 0x35, 0x103)|MCOND(CONDCC,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDCC,~0), "z,f,g", 0, v9 },
-{ "fmovccq", F3F(2, 0x35, 0x183)|MCOND(CONDCC,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDCC,~0), "Z,f,g", 0, v9 },
-{ "fmovccs", F3F(2, 0x35, 0x101)|MCOND(CONDCC,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDCC,~0), "z,f,g", 0, v9 },
-{ "fmovccs", F3F(2, 0x35, 0x181)|MCOND(CONDCC,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDCC,~0), "Z,f,g", 0, v9 },
-{ "fmovcsd", F3F(2, 0x35, 0x102)|MCOND(CONDCS,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDCS,~0), "z,f,g", 0, v9 },
-{ "fmovcsd", F3F(2, 0x35, 0x182)|MCOND(CONDCS,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDCS,~0), "Z,f,g", 0, v9 },
-{ "fmovcsq", F3F(2, 0x35, 0x103)|MCOND(CONDCS,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDCS,~0), "z,f,g", 0, v9 },
-{ "fmovcsq", F3F(2, 0x35, 0x183)|MCOND(CONDCS,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDCS,~0), "Z,f,g", 0, v9 },
-{ "fmovcss", F3F(2, 0x35, 0x101)|MCOND(CONDCS,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDCS,~0), "z,f,g", 0, v9 },
-{ "fmovcss", F3F(2, 0x35, 0x181)|MCOND(CONDCS,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDCS,~0), "Z,f,g", 0, v9 },
-{ "fmoved", F3F(2, 0x35, 0x102)|MCOND(CONDE,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDE,~0), "z,f,g", 0, v9 },
-{ "fmoved", F3F(2, 0x35, 0x082)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDE,~0), "6,f,g", 0, v9 },
-{ "fmoved", F3F(2, 0x35, 0x182)|MCOND(CONDE,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDE,~0), "Z,f,g", 0, v9 },
-{ "fmoved", F3F(2, 0x35, 0x0a2)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDE,~0), "7,f,g", 0, v9 },
-{ "fmoved", F3F(2, 0x35, 0x0c2)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDE,~0), "8,f,g", 0, v9 },
-{ "fmoved", F3F(2, 0x35, 0x0e2)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDE,~0), "9,f,g", 0, v9 },
-{ "fmoveq", F3F(2, 0x35, 0x103)|MCOND(CONDE,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDE,~0), "z,f,g", 0, v9 },
-{ "fmoveq", F3F(2, 0x35, 0x083)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDE,~0), "6,f,g", 0, v9 },
-{ "fmoveq", F3F(2, 0x35, 0x183)|MCOND(CONDE,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDE,~0), "Z,f,g", 0, v9 },
-{ "fmoveq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDE,~0), "7,f,g", 0, v9 },
-{ "fmoveq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDE,~0), "8,f,g", 0, v9 },
-{ "fmoveq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDE,~0), "9,f,g", 0, v9 },
-{ "fmoves", F3F(2, 0x35, 0x101)|MCOND(CONDE,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDE,~0), "z,f,g", 0, v9 },
-{ "fmoves", F3F(2, 0x35, 0x081)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDE,~0), "6,f,g", 0, v9 },
-{ "fmoves", F3F(2, 0x35, 0x181)|MCOND(CONDE,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDE,~0), "Z,f,g", 0, v9 },
-{ "fmoves", F3F(2, 0x35, 0x0a1)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDE,~0), "7,f,g", 0, v9 },
-{ "fmoves", F3F(2, 0x35, 0x0c1)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDE,~0), "8,f,g", 0, v9 },
-{ "fmoves", F3F(2, 0x35, 0x0e1)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDE,~0), "9,f,g", 0, v9 },
-{ "fmovgd", F3F(2, 0x35, 0x102)|MCOND(CONDG,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDG,~0), "z,f,g", 0, v9 },
-{ "fmovgd", F3F(2, 0x35, 0x082)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDG,~0), "6,f,g", 0, v9 },
-{ "fmovgd", F3F(2, 0x35, 0x182)|MCOND(CONDG,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDG,~0), "Z,f,g", 0, v9 },
-{ "fmovgd", F3F(2, 0x35, 0x0a2)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDG,~0), "7,f,g", 0, v9 },
-{ "fmovgd", F3F(2, 0x35, 0x0c2)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDG,~0), "8,f,g", 0, v9 },
-{ "fmovgd", F3F(2, 0x35, 0x0e2)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDG,~0), "9,f,g", 0, v9 },
-{ "fmovged", F3F(2, 0x35, 0x102)|MCOND(CONDGE,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDGE,~0), "z,f,g", 0, v9 },
-{ "fmovged", F3F(2, 0x35, 0x082)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDGE,~0), "6,f,g", 0, v9 },
-{ "fmovged", F3F(2, 0x35, 0x182)|MCOND(CONDGE,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDGE,~0), "Z,f,g", 0, v9 },
-{ "fmovged", F3F(2, 0x35, 0x0a2)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDGE,~0), "7,f,g", 0, v9 },
-{ "fmovged", F3F(2, 0x35, 0x0c2)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDGE,~0), "8,f,g", 0, v9 },
-{ "fmovged", F3F(2, 0x35, 0x0e2)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDGE,~0), "9,f,g", 0, v9 },
-{ "fmovgeq", F3F(2, 0x35, 0x103)|MCOND(CONDGE,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDGE,~0), "z,f,g", 0, v9 },
-{ "fmovgeq", F3F(2, 0x35, 0x083)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDGE,~0), "6,f,g", 0, v9 },
-{ "fmovgeq", F3F(2, 0x35, 0x183)|MCOND(CONDGE,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDGE,~0), "Z,f,g", 0, v9 },
-{ "fmovgeq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDGE,~0), "7,f,g", 0, v9 },
-{ "fmovgeq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDGE,~0), "8,f,g", 0, v9 },
-{ "fmovgeq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDGE,~0), "9,f,g", 0, v9 },
-{ "fmovges", F3F(2, 0x35, 0x101)|MCOND(CONDGE,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDGE,~0), "z,f,g", 0, v9 },
-{ "fmovges", F3F(2, 0x35, 0x081)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDGE,~0), "6,f,g", 0, v9 },
-{ "fmovges", F3F(2, 0x35, 0x181)|MCOND(CONDGE,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDGE,~0), "Z,f,g", 0, v9 },
-{ "fmovges", F3F(2, 0x35, 0x0a1)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDGE,~0), "7,f,g", 0, v9 },
-{ "fmovges", F3F(2, 0x35, 0x0c1)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDGE,~0), "8,f,g", 0, v9 },
-{ "fmovges", F3F(2, 0x35, 0x0e1)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDGE,~0), "9,f,g", 0, v9 },
-{ "fmovgeud", F3F(2, 0x35, 0x102)|MCOND(CONDGEU,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDGEU,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovgeud", F3F(2, 0x35, 0x182)|MCOND(CONDGEU,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDGEU,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovgeuq", F3F(2, 0x35, 0x103)|MCOND(CONDGEU,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDGEU,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovgeuq", F3F(2, 0x35, 0x183)|MCOND(CONDGEU,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDGEU,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovgeus", F3F(2, 0x35, 0x101)|MCOND(CONDGEU,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDGEU,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovgeus", F3F(2, 0x35, 0x181)|MCOND(CONDGEU,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDGEU,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovgq", F3F(2, 0x35, 0x103)|MCOND(CONDG,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDG,~0), "z,f,g", 0, v9 },
-{ "fmovgq", F3F(2, 0x35, 0x083)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDG,~0), "6,f,g", 0, v9 },
-{ "fmovgq", F3F(2, 0x35, 0x183)|MCOND(CONDG,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDG,~0), "Z,f,g", 0, v9 },
-{ "fmovgq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDG,~0), "7,f,g", 0, v9 },
-{ "fmovgq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDG,~0), "8,f,g", 0, v9 },
-{ "fmovgq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDG,~0), "9,f,g", 0, v9 },
-{ "fmovgs", F3F(2, 0x35, 0x101)|MCOND(CONDG,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDG,~0), "z,f,g", 0, v9 },
-{ "fmovgs", F3F(2, 0x35, 0x081)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDG,~0), "6,f,g", 0, v9 },
-{ "fmovgs", F3F(2, 0x35, 0x181)|MCOND(CONDG,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDG,~0), "Z,f,g", 0, v9 },
-{ "fmovgs", F3F(2, 0x35, 0x0a1)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDG,~0), "7,f,g", 0, v9 },
-{ "fmovgs", F3F(2, 0x35, 0x0c1)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDG,~0), "8,f,g", 0, v9 },
-{ "fmovgs", F3F(2, 0x35, 0x0e1)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDG,~0), "9,f,g", 0, v9 },
-{ "fmovgud", F3F(2, 0x35, 0x102)|MCOND(CONDGU,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDGU,~0), "z,f,g", 0, v9 },
-{ "fmovgud", F3F(2, 0x35, 0x182)|MCOND(CONDGU,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDGU,~0), "Z,f,g", 0, v9 },
-{ "fmovguq", F3F(2, 0x35, 0x103)|MCOND(CONDGU,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDGU,~0), "z,f,g", 0, v9 },
-{ "fmovguq", F3F(2, 0x35, 0x183)|MCOND(CONDGU,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDGU,~0), "Z,f,g", 0, v9 },
-{ "fmovgus", F3F(2, 0x35, 0x101)|MCOND(CONDGU,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDGU,~0), "z,f,g", 0, v9 },
-{ "fmovgus", F3F(2, 0x35, 0x181)|MCOND(CONDGU,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDGU,~0), "Z,f,g", 0, v9 },
-{ "fmovld", F3F(2, 0x35, 0x102)|MCOND(CONDL,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDL,~0), "z,f,g", 0, v9 },
-{ "fmovld", F3F(2, 0x35, 0x082)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDL,~0), "6,f,g", 0, v9 },
-{ "fmovld", F3F(2, 0x35, 0x182)|MCOND(CONDL,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDL,~0), "Z,f,g", 0, v9 },
-{ "fmovld", F3F(2, 0x35, 0x0a2)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDL,~0), "7,f,g", 0, v9 },
-{ "fmovld", F3F(2, 0x35, 0x0c2)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDL,~0), "8,f,g", 0, v9 },
-{ "fmovld", F3F(2, 0x35, 0x0e2)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDL,~0), "9,f,g", 0, v9 },
-{ "fmovled", F3F(2, 0x35, 0x102)|MCOND(CONDLE,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDLE,~0), "z,f,g", 0, v9 },
-{ "fmovled", F3F(2, 0x35, 0x082)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDLE,~0), "6,f,g", 0, v9 },
-{ "fmovled", F3F(2, 0x35, 0x182)|MCOND(CONDLE,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDLE,~0), "Z,f,g", 0, v9 },
-{ "fmovled", F3F(2, 0x35, 0x0a2)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDLE,~0), "7,f,g", 0, v9 },
-{ "fmovled", F3F(2, 0x35, 0x0c2)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDLE,~0), "8,f,g", 0, v9 },
-{ "fmovled", F3F(2, 0x35, 0x0e2)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDLE,~0), "9,f,g", 0, v9 },
-{ "fmovleq", F3F(2, 0x35, 0x103)|MCOND(CONDLE,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDLE,~0), "z,f,g", 0, v9 },
-{ "fmovleq", F3F(2, 0x35, 0x083)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDLE,~0), "6,f,g", 0, v9 },
-{ "fmovleq", F3F(2, 0x35, 0x183)|MCOND(CONDLE,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDLE,~0), "Z,f,g", 0, v9 },
-{ "fmovleq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDLE,~0), "7,f,g", 0, v9 },
-{ "fmovleq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDLE,~0), "8,f,g", 0, v9 },
-{ "fmovleq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDLE,~0), "9,f,g", 0, v9 },
-{ "fmovles", F3F(2, 0x35, 0x101)|MCOND(CONDLE,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDLE,~0), "z,f,g", 0, v9 },
-{ "fmovles", F3F(2, 0x35, 0x081)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDLE,~0), "6,f,g", 0, v9 },
-{ "fmovles", F3F(2, 0x35, 0x181)|MCOND(CONDLE,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDLE,~0), "Z,f,g", 0, v9 },
-{ "fmovles", F3F(2, 0x35, 0x0a1)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDLE,~0), "7,f,g", 0, v9 },
-{ "fmovles", F3F(2, 0x35, 0x0c1)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDLE,~0), "8,f,g", 0, v9 },
-{ "fmovles", F3F(2, 0x35, 0x0e1)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDLE,~0), "9,f,g", 0, v9 },
-{ "fmovleud", F3F(2, 0x35, 0x102)|MCOND(CONDLEU,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDLEU,~0), "z,f,g", 0, v9 },
-{ "fmovleud", F3F(2, 0x35, 0x182)|MCOND(CONDLEU,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDLEU,~0), "Z,f,g", 0, v9 },
-{ "fmovleuq", F3F(2, 0x35, 0x103)|MCOND(CONDLEU,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDLEU,~0), "z,f,g", 0, v9 },
-{ "fmovleuq", F3F(2, 0x35, 0x183)|MCOND(CONDLEU,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDLEU,~0), "Z,f,g", 0, v9 },
-{ "fmovleus", F3F(2, 0x35, 0x101)|MCOND(CONDLEU,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDLEU,~0), "z,f,g", 0, v9 },
-{ "fmovleus", F3F(2, 0x35, 0x181)|MCOND(CONDLEU,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDLEU,~0), "Z,f,g", 0, v9 },
-{ "fmovlgd", F3F(2, 0x35, 0x082)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDLG,~0), "6,f,g", 0, v9 },
-{ "fmovlgd", F3F(2, 0x35, 0x0a2)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDLG,~0), "7,f,g", 0, v9 },
-{ "fmovlgd", F3F(2, 0x35, 0x0c2)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDLG,~0), "8,f,g", 0, v9 },
-{ "fmovlgd", F3F(2, 0x35, 0x0e2)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDLG,~0), "9,f,g", 0, v9 },
-{ "fmovlgq", F3F(2, 0x35, 0x083)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDLG,~0), "6,f,g", 0, v9 },
-{ "fmovlgq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDLG,~0), "7,f,g", 0, v9 },
-{ "fmovlgq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDLG,~0), "8,f,g", 0, v9 },
-{ "fmovlgq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDLG,~0), "9,f,g", 0, v9 },
-{ "fmovlgs", F3F(2, 0x35, 0x081)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDLG,~0), "6,f,g", 0, v9 },
-{ "fmovlgs", F3F(2, 0x35, 0x0a1)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDLG,~0), "7,f,g", 0, v9 },
-{ "fmovlgs", F3F(2, 0x35, 0x0c1)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDLG,~0), "8,f,g", 0, v9 },
-{ "fmovlgs", F3F(2, 0x35, 0x0e1)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDLG,~0), "9,f,g", 0, v9 },
-{ "fmovlq", F3F(2, 0x35, 0x103)|MCOND(CONDL,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDL,~0), "z,f,g", 0, v9 },
-{ "fmovlq", F3F(2, 0x35, 0x083)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDL,~0), "6,f,g", 0, v9 },
-{ "fmovlq", F3F(2, 0x35, 0x183)|MCOND(CONDL,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDL,~0), "Z,f,g", 0, v9 },
-{ "fmovlq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDL,~0), "7,f,g", 0, v9 },
-{ "fmovlq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDL,~0), "8,f,g", 0, v9 },
-{ "fmovlq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDL,~0), "9,f,g", 0, v9 },
-{ "fmovls", F3F(2, 0x35, 0x101)|MCOND(CONDL,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDL,~0), "z,f,g", 0, v9 },
-{ "fmovls", F3F(2, 0x35, 0x081)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDL,~0), "6,f,g", 0, v9 },
-{ "fmovls", F3F(2, 0x35, 0x181)|MCOND(CONDL,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDL,~0), "Z,f,g", 0, v9 },
-{ "fmovls", F3F(2, 0x35, 0x0a1)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDL,~0), "7,f,g", 0, v9 },
-{ "fmovls", F3F(2, 0x35, 0x0c1)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDL,~0), "8,f,g", 0, v9 },
-{ "fmovls", F3F(2, 0x35, 0x0e1)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDL,~0), "9,f,g", 0, v9 },
-{ "fmovlud", F3F(2, 0x35, 0x102)|MCOND(CONDLU,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDLU,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovlud", F3F(2, 0x35, 0x182)|MCOND(CONDLU,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDLU,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovluq", F3F(2, 0x35, 0x103)|MCOND(CONDLU,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDLU,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovluq", F3F(2, 0x35, 0x183)|MCOND(CONDLU,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDLU,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovlus", F3F(2, 0x35, 0x101)|MCOND(CONDLU,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDLU,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovlus", F3F(2, 0x35, 0x181)|MCOND(CONDLU,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDLU,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovnd", F3F(2, 0x35, 0x102)|MCOND(CONDN,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDN,~0), "z,f,g", 0, v9 },
-{ "fmovnd", F3F(2, 0x35, 0x082)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDN,~0), "6,f,g", 0, v9 },
-{ "fmovnd", F3F(2, 0x35, 0x182)|MCOND(CONDN,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDN,~0), "Z,f,g", 0, v9 },
-{ "fmovnd", F3F(2, 0x35, 0x0a2)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDN,~0), "7,f,g", 0, v9 },
-{ "fmovnd", F3F(2, 0x35, 0x0c2)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDN,~0), "8,f,g", 0, v9 },
-{ "fmovnd", F3F(2, 0x35, 0x0e2)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDN,~0), "9,f,g", 0, v9 },
-{ "fmovned", F3F(2, 0x35, 0x102)|MCOND(CONDNE,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDNE,~0), "z,f,g", 0, v9 },
-{ "fmovned", F3F(2, 0x35, 0x082)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDNE,~0), "6,f,g", 0, v9 },
-{ "fmovned", F3F(2, 0x35, 0x182)|MCOND(CONDNE,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDNE,~0), "Z,f,g", 0, v9 },
-{ "fmovned", F3F(2, 0x35, 0x0a2)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDNE,~0), "7,f,g", 0, v9 },
-{ "fmovned", F3F(2, 0x35, 0x0c2)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDNE,~0), "8,f,g", 0, v9 },
-{ "fmovned", F3F(2, 0x35, 0x0e2)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDNE,~0), "9,f,g", 0, v9 },
-{ "fmovnegd", F3F(2, 0x35, 0x102)|MCOND(CONDNEG,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDNEG,~0), "z,f,g", 0, v9 },
-{ "fmovnegd", F3F(2, 0x35, 0x182)|MCOND(CONDNEG,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDNEG,~0), "Z,f,g", 0, v9 },
-{ "fmovnegq", F3F(2, 0x35, 0x103)|MCOND(CONDNEG,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDNEG,~0), "z,f,g", 0, v9 },
-{ "fmovnegq", F3F(2, 0x35, 0x183)|MCOND(CONDNEG,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDNEG,~0), "Z,f,g", 0, v9 },
-{ "fmovnegs", F3F(2, 0x35, 0x101)|MCOND(CONDNEG,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDNEG,~0), "z,f,g", 0, v9 },
-{ "fmovnegs", F3F(2, 0x35, 0x181)|MCOND(CONDNEG,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDNEG,~0), "Z,f,g", 0, v9 },
-{ "fmovneq", F3F(2, 0x35, 0x103)|MCOND(CONDNE,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDNE,~0), "z,f,g", 0, v9 },
-{ "fmovneq", F3F(2, 0x35, 0x083)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDNE,~0), "6,f,g", 0, v9 },
-{ "fmovneq", F3F(2, 0x35, 0x183)|MCOND(CONDNE,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDNE,~0), "Z,f,g", 0, v9 },
-{ "fmovneq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDNE,~0), "7,f,g", 0, v9 },
-{ "fmovneq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDNE,~0), "8,f,g", 0, v9 },
-{ "fmovneq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDNE,~0), "9,f,g", 0, v9 },
-{ "fmovnes", F3F(2, 0x35, 0x101)|MCOND(CONDNE,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDNE,~0), "z,f,g", 0, v9 },
-{ "fmovnes", F3F(2, 0x35, 0x081)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDNE,~0), "6,f,g", 0, v9 },
-{ "fmovnes", F3F(2, 0x35, 0x181)|MCOND(CONDNE,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDNE,~0), "Z,f,g", 0, v9 },
-{ "fmovnes", F3F(2, 0x35, 0x0a1)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDNE,~0), "7,f,g", 0, v9 },
-{ "fmovnes", F3F(2, 0x35, 0x0c1)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDNE,~0), "8,f,g", 0, v9 },
-{ "fmovnes", F3F(2, 0x35, 0x0e1)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDNE,~0), "9,f,g", 0, v9 },
-{ "fmovnq", F3F(2, 0x35, 0x103)|MCOND(CONDN,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDN,~0), "z,f,g", 0, v9 },
-{ "fmovnq", F3F(2, 0x35, 0x083)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDN,~0), "6,f,g", 0, v9 },
-{ "fmovnq", F3F(2, 0x35, 0x183)|MCOND(CONDN,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDN,~0), "Z,f,g", 0, v9 },
-{ "fmovnq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDN,~0), "7,f,g", 0, v9 },
-{ "fmovnq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDN,~0), "8,f,g", 0, v9 },
-{ "fmovnq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDN,~0), "9,f,g", 0, v9 },
-{ "fmovns", F3F(2, 0x35, 0x101)|MCOND(CONDN,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDN,~0), "z,f,g", 0, v9 },
-{ "fmovns", F3F(2, 0x35, 0x081)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDN,~0), "6,f,g", 0, v9 },
-{ "fmovns", F3F(2, 0x35, 0x181)|MCOND(CONDN,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDN,~0), "Z,f,g", 0, v9 },
-{ "fmovns", F3F(2, 0x35, 0x0a1)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDN,~0), "7,f,g", 0, v9 },
-{ "fmovns", F3F(2, 0x35, 0x0c1)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDN,~0), "8,f,g", 0, v9 },
-{ "fmovns", F3F(2, 0x35, 0x0e1)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDN,~0), "9,f,g", 0, v9 },
-{ "fmovnzd", F3F(2, 0x35, 0x102)|MCOND(CONDNZ,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDNZ,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovnzd", F3F(2, 0x35, 0x082)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDNZ,~0), "6,f,g", F_ALIAS, v9 },
-{ "fmovnzd", F3F(2, 0x35, 0x182)|MCOND(CONDNZ,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDNZ,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovnzd", F3F(2, 0x35, 0x0a2)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDNZ,~0), "7,f,g", F_ALIAS, v9 },
-{ "fmovnzd", F3F(2, 0x35, 0x0c2)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDNZ,~0), "8,f,g", F_ALIAS, v9 },
-{ "fmovnzd", F3F(2, 0x35, 0x0e2)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDNZ,~0), "9,f,g", F_ALIAS, v9 },
-{ "fmovnzq", F3F(2, 0x35, 0x103)|MCOND(CONDNZ,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDNZ,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovnzq", F3F(2, 0x35, 0x083)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDNZ,~0), "6,f,g", F_ALIAS, v9 },
-{ "fmovnzq", F3F(2, 0x35, 0x183)|MCOND(CONDNZ,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDNZ,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovnzq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDNZ,~0), "7,f,g", F_ALIAS, v9 },
-{ "fmovnzq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDNZ,~0), "8,f,g", F_ALIAS, v9 },
-{ "fmovnzq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDNZ,~0), "9,f,g", F_ALIAS, v9 },
-{ "fmovnzs", F3F(2, 0x35, 0x101)|MCOND(CONDNZ,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDNZ,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovnzs", F3F(2, 0x35, 0x081)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDNZ,~0), "6,f,g", F_ALIAS, v9 },
-{ "fmovnzs", F3F(2, 0x35, 0x181)|MCOND(CONDNZ,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDNZ,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovnzs", F3F(2, 0x35, 0x0a1)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDNZ,~0), "7,f,g", F_ALIAS, v9 },
-{ "fmovnzs", F3F(2, 0x35, 0x0c1)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDNZ,~0), "8,f,g", F_ALIAS, v9 },
-{ "fmovnzs", F3F(2, 0x35, 0x0e1)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDNZ,~0), "9,f,g", F_ALIAS, v9 },
-{ "fmovod", F3F(2, 0x35, 0x082)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDO,~0), "6,f,g", 0, v9 },
-{ "fmovod", F3F(2, 0x35, 0x0a2)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDO,~0), "7,f,g", 0, v9 },
-{ "fmovod", F3F(2, 0x35, 0x0c2)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDO,~0), "8,f,g", 0, v9 },
-{ "fmovod", F3F(2, 0x35, 0x0e2)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDO,~0), "9,f,g", 0, v9 },
-{ "fmovoq", F3F(2, 0x35, 0x083)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDO,~0), "6,f,g", 0, v9 },
-{ "fmovoq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDO,~0), "7,f,g", 0, v9 },
-{ "fmovoq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDO,~0), "8,f,g", 0, v9 },
-{ "fmovoq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDO,~0), "9,f,g", 0, v9 },
-{ "fmovos", F3F(2, 0x35, 0x081)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDO,~0), "6,f,g", 0, v9 },
-{ "fmovos", F3F(2, 0x35, 0x0a1)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDO,~0), "7,f,g", 0, v9 },
-{ "fmovos", F3F(2, 0x35, 0x0c1)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDO,~0), "8,f,g", 0, v9 },
-{ "fmovos", F3F(2, 0x35, 0x0e1)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDO,~0), "9,f,g", 0, v9 },
-{ "fmovposd", F3F(2, 0x35, 0x102)|MCOND(CONDPOS,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDPOS,~0), "z,f,g", 0, v9 },
-{ "fmovposd", F3F(2, 0x35, 0x182)|MCOND(CONDPOS,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDPOS,~0), "Z,f,g", 0, v9 },
-{ "fmovposq", F3F(2, 0x35, 0x103)|MCOND(CONDPOS,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDPOS,~0), "z,f,g", 0, v9 },
-{ "fmovposq", F3F(2, 0x35, 0x183)|MCOND(CONDPOS,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDPOS,~0), "Z,f,g", 0, v9 },
-{ "fmovposs", F3F(2, 0x35, 0x101)|MCOND(CONDPOS,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDPOS,~0), "z,f,g", 0, v9 },
-{ "fmovposs", F3F(2, 0x35, 0x181)|MCOND(CONDPOS,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDPOS,~0), "Z,f,g", 0, v9 },
-{ "fmovud", F3F(2, 0x35, 0x082)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDU,~0), "6,f,g", 0, v9 },
-{ "fmovud", F3F(2, 0x35, 0x0a2)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDU,~0), "7,f,g", 0, v9 },
-{ "fmovud", F3F(2, 0x35, 0x0c2)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDU,~0), "8,f,g", 0, v9 },
-{ "fmovud", F3F(2, 0x35, 0x0e2)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDU,~0), "9,f,g", 0, v9 },
-{ "fmovued", F3F(2, 0x35, 0x082)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDUE,~0), "6,f,g", 0, v9 },
-{ "fmovued", F3F(2, 0x35, 0x0a2)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDUE,~0), "7,f,g", 0, v9 },
-{ "fmovued", F3F(2, 0x35, 0x0c2)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDUE,~0), "8,f,g", 0, v9 },
-{ "fmovued", F3F(2, 0x35, 0x0e2)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDUE,~0), "9,f,g", 0, v9 },
-{ "fmovueq", F3F(2, 0x35, 0x083)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDUE,~0), "6,f,g", 0, v9 },
-{ "fmovueq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDUE,~0), "7,f,g", 0, v9 },
-{ "fmovueq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDUE,~0), "8,f,g", 0, v9 },
-{ "fmovueq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDUE,~0), "9,f,g", 0, v9 },
-{ "fmovues", F3F(2, 0x35, 0x081)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDUE,~0), "6,f,g", 0, v9 },
-{ "fmovues", F3F(2, 0x35, 0x0a1)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDUE,~0), "7,f,g", 0, v9 },
-{ "fmovues", F3F(2, 0x35, 0x0c1)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDUE,~0), "8,f,g", 0, v9 },
-{ "fmovues", F3F(2, 0x35, 0x0e1)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDUE,~0), "9,f,g", 0, v9 },
-{ "fmovugd", F3F(2, 0x35, 0x082)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDUG,~0), "6,f,g", 0, v9 },
-{ "fmovugd", F3F(2, 0x35, 0x0a2)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDUG,~0), "7,f,g", 0, v9 },
-{ "fmovugd", F3F(2, 0x35, 0x0c2)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDUG,~0), "8,f,g", 0, v9 },
-{ "fmovugd", F3F(2, 0x35, 0x0e2)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDUG,~0), "9,f,g", 0, v9 },
-{ "fmovuged", F3F(2, 0x35, 0x082)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDUGE,~0), "6,f,g", 0, v9 },
-{ "fmovuged", F3F(2, 0x35, 0x0a2)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDUGE,~0), "7,f,g", 0, v9 },
-{ "fmovuged", F3F(2, 0x35, 0x0c2)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDUGE,~0), "8,f,g", 0, v9 },
-{ "fmovuged", F3F(2, 0x35, 0x0e2)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDUGE,~0), "9,f,g", 0, v9 },
-{ "fmovugeq", F3F(2, 0x35, 0x083)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDUGE,~0), "6,f,g", 0, v9 },
-{ "fmovugeq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDUGE,~0), "7,f,g", 0, v9 },
-{ "fmovugeq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDUGE,~0), "8,f,g", 0, v9 },
-{ "fmovugeq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDUGE,~0), "9,f,g", 0, v9 },
-{ "fmovuges", F3F(2, 0x35, 0x081)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDUGE,~0), "6,f,g", 0, v9 },
-{ "fmovuges", F3F(2, 0x35, 0x0a1)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDUGE,~0), "7,f,g", 0, v9 },
-{ "fmovuges", F3F(2, 0x35, 0x0c1)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDUGE,~0), "8,f,g", 0, v9 },
-{ "fmovuges", F3F(2, 0x35, 0x0e1)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDUGE,~0), "9,f,g", 0, v9 },
-{ "fmovugq", F3F(2, 0x35, 0x083)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDUG,~0), "6,f,g", 0, v9 },
-{ "fmovugq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDUG,~0), "7,f,g", 0, v9 },
-{ "fmovugq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDUG,~0), "8,f,g", 0, v9 },
-{ "fmovugq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDUG,~0), "9,f,g", 0, v9 },
-{ "fmovugs", F3F(2, 0x35, 0x081)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDUG,~0), "6,f,g", 0, v9 },
-{ "fmovugs", F3F(2, 0x35, 0x0a1)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDUG,~0), "7,f,g", 0, v9 },
-{ "fmovugs", F3F(2, 0x35, 0x0c1)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDUG,~0), "8,f,g", 0, v9 },
-{ "fmovugs", F3F(2, 0x35, 0x0e1)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDUG,~0), "9,f,g", 0, v9 },
-{ "fmovuld", F3F(2, 0x35, 0x082)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDUL,~0), "6,f,g", 0, v9 },
-{ "fmovuld", F3F(2, 0x35, 0x0a2)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDUL,~0), "7,f,g", 0, v9 },
-{ "fmovuld", F3F(2, 0x35, 0x0c2)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDUL,~0), "8,f,g", 0, v9 },
-{ "fmovuld", F3F(2, 0x35, 0x0e2)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDUL,~0), "9,f,g", 0, v9 },
-{ "fmovuled", F3F(2, 0x35, 0x082)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDULE,~0), "6,f,g", 0, v9 },
-{ "fmovuled", F3F(2, 0x35, 0x0a2)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDULE,~0), "7,f,g", 0, v9 },
-{ "fmovuled", F3F(2, 0x35, 0x0c2)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDULE,~0), "8,f,g", 0, v9 },
-{ "fmovuled", F3F(2, 0x35, 0x0e2)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDULE,~0), "9,f,g", 0, v9 },
-{ "fmovuleq", F3F(2, 0x35, 0x083)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDULE,~0), "6,f,g", 0, v9 },
-{ "fmovuleq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDULE,~0), "7,f,g", 0, v9 },
-{ "fmovuleq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDULE,~0), "8,f,g", 0, v9 },
-{ "fmovuleq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDULE,~0), "9,f,g", 0, v9 },
-{ "fmovules", F3F(2, 0x35, 0x081)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDULE,~0), "6,f,g", 0, v9 },
-{ "fmovules", F3F(2, 0x35, 0x0a1)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDULE,~0), "7,f,g", 0, v9 },
-{ "fmovules", F3F(2, 0x35, 0x0c1)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDULE,~0), "8,f,g", 0, v9 },
-{ "fmovules", F3F(2, 0x35, 0x0e1)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDULE,~0), "9,f,g", 0, v9 },
-{ "fmovulq", F3F(2, 0x35, 0x083)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDUL,~0), "6,f,g", 0, v9 },
-{ "fmovulq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDUL,~0), "7,f,g", 0, v9 },
-{ "fmovulq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDUL,~0), "8,f,g", 0, v9 },
-{ "fmovulq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDUL,~0), "9,f,g", 0, v9 },
-{ "fmovuls", F3F(2, 0x35, 0x081)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDUL,~0), "6,f,g", 0, v9 },
-{ "fmovuls", F3F(2, 0x35, 0x0a1)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDUL,~0), "7,f,g", 0, v9 },
-{ "fmovuls", F3F(2, 0x35, 0x0c1)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDUL,~0), "8,f,g", 0, v9 },
-{ "fmovuls", F3F(2, 0x35, 0x0e1)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDUL,~0), "9,f,g", 0, v9 },
-{ "fmovuq", F3F(2, 0x35, 0x083)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDU,~0), "6,f,g", 0, v9 },
-{ "fmovuq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDU,~0), "7,f,g", 0, v9 },
-{ "fmovuq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDU,~0), "8,f,g", 0, v9 },
-{ "fmovuq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDU,~0), "9,f,g", 0, v9 },
-{ "fmovus", F3F(2, 0x35, 0x081)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDU,~0), "6,f,g", 0, v9 },
-{ "fmovus", F3F(2, 0x35, 0x0a1)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDU,~0), "7,f,g", 0, v9 },
-{ "fmovus", F3F(2, 0x35, 0x0c1)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDU,~0), "8,f,g", 0, v9 },
-{ "fmovus", F3F(2, 0x35, 0x0e1)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDU,~0), "9,f,g", 0, v9 },
-{ "fmovvcd", F3F(2, 0x35, 0x102)|MCOND(CONDVC,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDVC,~0), "z,f,g", 0, v9 },
-{ "fmovvcd", F3F(2, 0x35, 0x182)|MCOND(CONDVC,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDVC,~0), "Z,f,g", 0, v9 },
-{ "fmovvcq", F3F(2, 0x35, 0x103)|MCOND(CONDVC,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDVC,~0), "z,f,g", 0, v9 },
-{ "fmovvcq", F3F(2, 0x35, 0x183)|MCOND(CONDVC,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDVC,~0), "Z,f,g", 0, v9 },
-{ "fmovvcs", F3F(2, 0x35, 0x101)|MCOND(CONDVC,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDVC,~0), "z,f,g", 0, v9 },
-{ "fmovvcs", F3F(2, 0x35, 0x181)|MCOND(CONDVC,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDVC,~0), "Z,f,g", 0, v9 },
-{ "fmovvsd", F3F(2, 0x35, 0x102)|MCOND(CONDVS,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDVS,~0), "z,f,g", 0, v9 },
-{ "fmovvsd", F3F(2, 0x35, 0x182)|MCOND(CONDVS,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDVS,~0), "Z,f,g", 0, v9 },
-{ "fmovvsq", F3F(2, 0x35, 0x103)|MCOND(CONDVS,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDVS,~0), "z,f,g", 0, v9 },
-{ "fmovvsq", F3F(2, 0x35, 0x183)|MCOND(CONDVS,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDVS,~0), "Z,f,g", 0, v9 },
-{ "fmovvss", F3F(2, 0x35, 0x101)|MCOND(CONDVS,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDVS,~0), "z,f,g", 0, v9 },
-{ "fmovvss", F3F(2, 0x35, 0x181)|MCOND(CONDVS,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDVS,~0), "Z,f,g", 0, v9 },
-{ "fmovzd", F3F(2, 0x35, 0x102)|MCOND(CONDZ,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDZ,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovzd", F3F(2, 0x35, 0x082)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDZ,~0), "6,f,g", F_ALIAS, v9 },
-{ "fmovzd", F3F(2, 0x35, 0x182)|MCOND(CONDZ,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDZ,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovzd", F3F(2, 0x35, 0x0a2)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDZ,~0), "7,f,g", F_ALIAS, v9 },
-{ "fmovzd", F3F(2, 0x35, 0x0c2)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDZ,~0), "8,f,g", F_ALIAS, v9 },
-{ "fmovzd", F3F(2, 0x35, 0x0e2)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDZ,~0), "9,f,g", F_ALIAS, v9 },
-{ "fmovzq", F3F(2, 0x35, 0x103)|MCOND(CONDZ,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDZ,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovzq", F3F(2, 0x35, 0x083)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDZ,~0), "6,f,g", F_ALIAS, v9 },
-{ "fmovzq", F3F(2, 0x35, 0x183)|MCOND(CONDZ,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDZ,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovzq", F3F(2, 0x35, 0x0a3)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDZ,~0), "7,f,g", F_ALIAS, v9 },
-{ "fmovzq", F3F(2, 0x35, 0x0c3)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDZ,~0), "8,f,g", F_ALIAS, v9 },
-{ "fmovzq", F3F(2, 0x35, 0x0e3)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDZ,~0), "9,f,g", F_ALIAS, v9 },
-{ "fmovzs", F3F(2, 0x35, 0x101)|MCOND(CONDZ,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDZ,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovzs", F3F(2, 0x35, 0x081)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDZ,~0), "6,f,g", F_ALIAS, v9 },
-{ "fmovzs", F3F(2, 0x35, 0x181)|MCOND(CONDZ,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDZ,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovzs", F3F(2, 0x35, 0x0a1)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDZ,~0), "7,f,g", F_ALIAS, v9 },
-{ "fmovzs", F3F(2, 0x35, 0x0c1)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDZ,~0), "8,f,g", F_ALIAS, v9 },
-{ "fmovzs", F3F(2, 0x35, 0x0e1)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDZ,~0), "9,f,g", F_ALIAS, v9 },
-
-#define brfc(opcode, mask, lose, flags) \
- { opcode, (mask), ANNUL|(lose), "l", flags|F_DELAYED, v6 }, \
- { opcode, (mask)|ANNUL, (lose), ",a l", flags|F_DELAYED, v6 }
-
-#define brfcx(opcode, mask, lose, flags) /* v9 */ \
- { opcode, FBFCC(0)|(mask), ANNUL|BPRED|FBFCC(~0)|(lose), "6,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(0)|(mask)|ANNUL, BPRED|FBFCC(~0)|(lose), ",a 6,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(0)|(mask), ANNUL|BPRED|FBFCC(~0)|(lose), ",N 6,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(0)|(mask)|ANNUL, BPRED|FBFCC(~0)|(lose), ",a,N 6,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(0)|(mask)|BPRED, ANNUL|FBFCC(~0)|(lose), ",T 6,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(0)|(mask)|BPRED|ANNUL, FBFCC(~0)|(lose), ",a,T 6,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(1)|(mask), ANNUL|BPRED|FBFCC(~1)|(lose), "7,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(1)|(mask)|ANNUL, BPRED|FBFCC(~1)|(lose), ",a 7,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(1)|(mask), ANNUL|BPRED|FBFCC(~1)|(lose), ",N 7,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(1)|(mask)|ANNUL, BPRED|FBFCC(~1)|(lose), ",a,N 7,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(1)|(mask)|BPRED, ANNUL|FBFCC(~1)|(lose), ",T 7,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(1)|(mask)|BPRED|ANNUL, FBFCC(~1)|(lose), ",a,T 7,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(2)|(mask), ANNUL|BPRED|FBFCC(~2)|(lose), "8,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(2)|(mask)|ANNUL, BPRED|FBFCC(~2)|(lose), ",a 8,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(2)|(mask), ANNUL|BPRED|FBFCC(~2)|(lose), ",N 8,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(2)|(mask)|ANNUL, BPRED|FBFCC(~2)|(lose), ",a,N 8,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(2)|(mask)|BPRED, ANNUL|FBFCC(~2)|(lose), ",T 8,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(2)|(mask)|BPRED|ANNUL, FBFCC(~2)|(lose), ",a,T 8,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(3)|(mask), ANNUL|BPRED|FBFCC(~3)|(lose), "9,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(3)|(mask)|ANNUL, BPRED|FBFCC(~3)|(lose), ",a 9,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(3)|(mask), ANNUL|BPRED|FBFCC(~3)|(lose), ",N 9,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(3)|(mask)|ANNUL, BPRED|FBFCC(~3)|(lose), ",a,N 9,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(3)|(mask)|BPRED, ANNUL|FBFCC(~3)|(lose), ",T 9,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(3)|(mask)|BPRED|ANNUL, FBFCC(~3)|(lose), ",a,T 9,G", flags|F_DELAYED, v9 }
-
-#define condfc(fop, cop, mask, flags) \
- brfc(fop, F2(0, 6)|COND(mask), F2(~0, ~6)|COND(~(mask)), flags), \
- brfcx(fop, F2(0, 5)|COND(mask), F2(~0, ~5)|COND(~(mask)), flags), /* v9 */ \
- brfc(cop, F2(0, 7)|COND(mask), F2(~0, ~7)|COND(~(mask)), flags) \
-
-condfc("fb", "cb", 0x8, 0),
-condfc("fba", "cba", 0x8, F_ALIAS),
-condfc("fbe", "cb0", 0x9, 0),
-condfc("fbg", "cb2", 0x6, 0),
-condfc("fbge", "cb02", 0xb, 0),
-condfc("fbl", "cb1", 0x4, 0),
-condfc("fble", "cb01", 0xd, 0),
-condfc("fblg", "cb12", 0x2, 0),
-condfc("fbn", "cbn", 0x0, 0),
-condfc("fbne", "cb123", 0x1, 0),
-condfc("fbo", "cb012", 0xf, 0),
-condfc("fbu", "cb3", 0x7, 0),
-condfc("fbue", "cb03", 0xa, 0),
-condfc("fbug", "cb23", 0x5, 0),
-condfc("fbuge", "cb023", 0xc, 0),
-condfc("fbul", "cb13", 0x3, 0),
-condfc("fbule", "cb013", 0xe, 0),
-
-#undef condfc
-#undef brfc
-
-{ "jmp", F3(2, 0x38, 0), F3(~2, ~0x38, ~0)|RD_G0|ASI(~0), "1+2", F_DELAYED, v6 }, /* jmpl rs1+rs2,%g0 */
-{ "jmp", F3(2, 0x38, 0), F3(~2, ~0x38, ~0)|RD_G0|ASI_RS2(~0), "1", F_DELAYED, v6 }, /* jmpl rs1+%g0,%g0 */
-{ "jmp", F3(2, 0x38, 1), F3(~2, ~0x38, ~1)|RD_G0, "1+i", F_DELAYED, v6 }, /* jmpl rs1+i,%g0 */
-{ "jmp", F3(2, 0x38, 1), F3(~2, ~0x38, ~1)|RD_G0, "i+1", F_DELAYED, v6 }, /* jmpl i+rs1,%g0 */
-{ "jmp", F3(2, 0x38, 1), F3(~2, ~0x38, ~1)|RD_G0|RS1_G0, "i", F_DELAYED, v6 }, /* jmpl %g0+i,%g0 */
-
-{ "nop", F2(0, 4), 0xfeffffff, "", 0, v6 }, /* sethi 0, %g0 */
-
-{ "set", F2(0x0, 0x4), F2(~0x0, ~0x4), "Sh,d", F_ALIAS, v6 },
-
-{ "sethi", F2(0x0, 0x4), F2(~0x0, ~0x4), "h,d", 0, v6 },
-
-{ "taddcc", F3(2, 0x20, 0), F3(~2, ~0x20, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "taddcc", F3(2, 0x20, 1), F3(~2, ~0x20, ~1), "1,i,d", 0, v6 },
-{ "taddcc", F3(2, 0x20, 1), F3(~2, ~0x20, ~1), "i,1,d", 0, v6 },
-{ "taddcctv", F3(2, 0x22, 0), F3(~2, ~0x22, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "taddcctv", F3(2, 0x22, 1), F3(~2, ~0x22, ~1), "1,i,d", 0, v6 },
-{ "taddcctv", F3(2, 0x22, 1), F3(~2, ~0x22, ~1), "i,1,d", 0, v6 },
-
-{ "tsubcc", F3(2, 0x21, 0), F3(~2, ~0x21, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "tsubcc", F3(2, 0x21, 1), F3(~2, ~0x21, ~1), "1,i,d", 0, v6 },
-{ "tsubcctv", F3(2, 0x23, 0), F3(~2, ~0x23, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "tsubcctv", F3(2, 0x23, 1), F3(~2, ~0x23, ~1), "1,i,d", 0, v6 },
-
-/* These two are identical, except in name (v9). */
-{ "unimp", F2(0x0, 0x0), 0xffc00000, "n", 0, v6 },
-{ "illegal", F2(0, 0), F2(~0, ~0), "n", 0, v9 },
-
-{ "iflush", F3(2, 0x3b, 0), F3(~2, ~0x3b, ~0)|ASI(~0), "1+2", 0, v6 },
-{ "iflush", F3(2, 0x3b, 1), F3(~2, ~0x3b, ~1), "1+i", 0, v6 },
-{ "iflush", F3(2, 0x3b, 1), F3(~2, ~0x3b, ~1), "i+1", 0, v6 },
-{ "iflush", F3(2, 0x3b, 1), F3(~2, ~0x3b, ~1)|RS1_G0, "i", 0, v6 },
-
-{ "xnor", F3(2, 0x07, 0), F3(~2, ~0x07, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "xnor", F3(2, 0x07, 1), F3(~2, ~0x07, ~1), "1,i,d", 0, v6 },
-{ "xnor", F3(2, 0x07, 1), F3(~2, ~0x07, ~1), "i,1,d", 0, v6 },
-{ "xnorcc", F3(2, 0x17, 0), F3(~2, ~0x17, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "xnorcc", F3(2, 0x17, 1), F3(~2, ~0x17, ~1), "1,i,d", 0, v6 },
-{ "xnorcc", F3(2, 0x17, 1), F3(~2, ~0x17, ~1), "i,1,d", 0, v6 },
-{ "xor", F3(2, 0x03, 0), F3(~2, ~0x03, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "xor", F3(2, 0x03, 1), F3(~2, ~0x03, ~1), "1,i,d", 0, v6 },
-{ "xor", F3(2, 0x03, 1), F3(~2, ~0x03, ~1), "i,1,d", 0, v6 },
-{ "xorcc", F3(2, 0x13, 0), F3(~2, ~0x13, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "xorcc", F3(2, 0x13, 1), F3(~2, ~0x13, ~1), "1,i,d", 0, v6 },
-{ "xorcc", F3(2, 0x13, 1), F3(~2, ~0x13, ~1), "i,1,d", 0, v6 },
-
-{ "not", F3(2, 0x07, 0), F3(~2, ~0x07, ~0)|ASI(~0), "1,d", F_ALIAS, v6 }, /* xnor rs1,%0,rd */
-{ "not", F3(2, 0x07, 0), F3(~2, ~0x07, ~0)|ASI(~0), "r", F_ALIAS, v6 }, /* xnor rd,%0,rd */
-
-{ "btog", F3(2, 0x03, 0), F3(~2, ~0x03, ~0)|ASI(~0), "2,r", F_ALIAS, v6 }, /* xor rd,rs2,rd */
-{ "btog", F3(2, 0x03, 1), F3(~2, ~0x03, ~1), "i,r", F_ALIAS, v6 }, /* xor rd,i,rd */
-
-{ "fpop1", F3F(2, 0x34, 0), F3F(~2, ~0x34, ~1), "[1+2],d", 0, v6 },
-{ "fpop2", F3F(2, 0x35, 0), F3F(~2, ~0x35, ~1), "[1+2],d", 0, v6 },
-
-/* float-start */
-{ "fdtoi", F3F(2, 0x34, 0x0d2), F3F(~2, ~0x34, ~0x0d2)|RS1_G0, "B,g", 0, v6 },
-{ "fstoi", F3F(2, 0x34, 0x0d1), F3F(~2, ~0x34, ~0x0d1)|RS1_G0, "f,g", 0, v6 },
-
- /* all of these conversions are confused and probably wrong. */
-{ "fitod", F3F(2, 0x34, 0x0c8), F3F(~2, ~0x34, ~0x0c8)|RS1_G0, "f,H", 0, v6 },
-{ "fitos", F3F(2, 0x34, 0x0c4), F3F(~2, ~0x34, ~0x0c4)|RS1_G0, "f,g", 0, v6 },
-
-{ "fitoq", F3F(2, 0x34, 0x0cc), F3F(~2, ~0x34, ~0x0cc)|RS1_G0, "f,J", 0, v8 },
-
-{ "fxtoq", F3F(2, 0x34, 0x08c), F3F(~2, ~0x34, ~0x08c)|RS1_G0, "f,J", 0, v9 },
-
-{ "fdtoq", F3F(2, 0x34, 0x0ce), F3F(~2, ~0x34, ~0x0ce)|RS1_G0, "B,J", 0, v8 },
-{ "fdtos", F3F(2, 0x34, 0x0c6), F3F(~2, ~0x34, ~0x0c6)|RS1_G0, "B,g", 0, v6 },
-{ "fqtod", F3F(2, 0x34, 0x0cb), F3F(~2, ~0x34, ~0x0cb)|RS1_G0, "R,H", 0, v8 },
-{ "fqtos", F3F(2, 0x34, 0x0c7), F3F(~2, ~0x34, ~0x0c7)|RS1_G0, "R,g", 0, v8 },
-{ "fstod", F3F(2, 0x34, 0x0c9), F3F(~2, ~0x34, ~0x0c9)|RS1_G0, "f,H", 0, v6 },
-{ "fstoq", F3F(2, 0x34, 0x0cd), F3F(~2, ~0x34, ~0x0cd)|RS1_G0, "f,J", 0, v8 },
-
-{ "fqtox", F3F(2, 0x34, 0x083), F3F(~2, ~0x34, ~0x083)|RS1_G0, "R,g", 0, v9 },
-
-{ "fxtos", F3F(2, 0x34, 0x084), F3F(~2, ~0x34, ~0x084)|RS1_G0, "f,g", 0, v9 },
-
-{ "fdtox", F3F(2, 0x34, 0x082), F3F(~2, ~0x34, ~0x082)|RS1_G0, "B,g", 0, v9 },
-
-{ "fstox", F3F(2, 0x34, 0x081), F3F(~2, ~0x34, ~0x081)|RS1_G0, "f,g", 0, v9 },
-
-{ "fqtoi", F3F(2, 0x34, 0x0d3), F3F(~2, ~0x34, ~0x0d3)|RS1_G0, "R,g", 0, v8 },
-
-{ "fxtod", F3F(2, 0x34, 0x088), F3F(~2, ~0x34, ~0x088)|RS1_G0, "f,H", 0, v9 },
-
-{ "fdivd", F3F(2, 0x34, 0x04e), F3F(~2, ~0x34, ~0x04e), "v,B,H", 0, v6 },
-{ "fdivq", F3F(2, 0x34, 0x04f), F3F(~2, ~0x34, ~0x04f), "V,R,J", 0, v8 },
-{ "fdivs", F3F(2, 0x34, 0x04d), F3F(~2, ~0x34, ~0x04d), "e,f,g", 0, v6 },
-{ "fmuld", F3F(2, 0x34, 0x04a), F3F(~2, ~0x34, ~0x04a), "v,B,H", 0, v6 },
-{ "fmulq", F3F(2, 0x34, 0x04b), F3F(~2, ~0x34, ~0x04b), "V,R,J", 0, v8 },
-{ "fmuls", F3F(2, 0x34, 0x049), F3F(~2, ~0x34, ~0x049), "e,f,g", 0, v6 },
-
-{ "fdmulq", F3F(2, 0x34, 0x06e), F3F(~2, ~0x34, ~0x06e), "v,B,J", 0, v8 },
-{ "fsmuld", F3F(2, 0x34, 0x069), F3F(~2, ~0x34, ~0x069), "e,f,H", 0, v8 },
-
-{ "fsqrtd", F3F(2, 0x34, 0x02a), F3F(~2, ~0x34, ~0x02a)|RS1_G0, "B,H", 0, v7 },
-{ "fsqrtq", F3F(2, 0x34, 0x02b), F3F(~2, ~0x34, ~0x02b)|RS1_G0, "R,J", 0, v8 },
-{ "fsqrts", F3F(2, 0x34, 0x029), F3F(~2, ~0x34, ~0x029)|RS1_G0, "f,g", 0, v7 },
-
-{ "fabsd", F3F(2, 0x34, 0x00a), F3F(~2, ~0x34, ~0x00a)|RS1_G0, "B,H", 0, v9 },
-{ "fabsq", F3F(2, 0x34, 0x00b), F3F(~2, ~0x34, ~0x00b)|RS1_G0, "R,J", 0, v6 },
-{ "fabss", F3F(2, 0x34, 0x009), F3F(~2, ~0x34, ~0x009)|RS1_G0, "f,g", 0, v6 },
-{ "fmovd", F3F(2, 0x34, 0x002), F3F(~2, ~0x34, ~0x002)|RS1_G0, "B,H", 0, v9 },
-{ "fmovq", F3F(2, 0x34, 0x003), F3F(~2, ~0x34, ~0x003)|RS1_G0, "R,J", 0, v6 },
-{ "fmovs", F3F(2, 0x34, 0x001), F3F(~2, ~0x34, ~0x001)|RS1_G0, "f,g", 0, v6 },
-{ "fnegd", F3F(2, 0x34, 0x006), F3F(~2, ~0x34, ~0x006)|RS1_G0, "B,H", 0, v9 },
-{ "fnegq", F3F(2, 0x34, 0x007), F3F(~2, ~0x34, ~0x007)|RS1_G0, "R,J", 0, v6 },
-{ "fnegs", F3F(2, 0x34, 0x005), F3F(~2, ~0x34, ~0x005)|RS1_G0, "f,g", 0, v6 },
-
-{ "popc", F3(2, 0x2d, 0), F3(~2, ~0x2d, ~0)|(0x3fff<<5), "2,d", 0, v9 },
-
-{ "faddd", F3F(2, 0x34, 0x042), F3F(~2, ~0x34, ~0x042), "v,B,H", 0, v6 },
-{ "faddq", F3F(2, 0x34, 0x043), F3F(~2, ~0x34, ~0x043), "V,R,J", 0, v8 },
-{ "fadds", F3F(2, 0x34, 0x041), F3F(~2, ~0x34, ~0x041), "e,f,g", 0, v6 },
-{ "fsubd", F3F(2, 0x34, 0x046), F3F(~2, ~0x34, ~0x046), "v,B,H", 0, v6 },
-{ "fsubq", F3F(2, 0x34, 0x047), F3F(~2, ~0x34, ~0x047), "V,R,J", 0, v8 },
-{ "fsubs", F3F(2, 0x34, 0x045), F3F(~2, ~0x34, ~0x045), "e,f,g", 0, v6 },
-
-#define CMPFCC(x) (((x)&0x3)<<25)
-
-{ "fcmpd", F3F(2, 0x35, 0x052), F3F(~2, ~0x35, ~0x052)|RS1_G0, "v,B", 0, v6 },
-{ "fcmpd", CMPFCC(0)|F3F(2, 0x35, 0x052), CMPFCC(~0)|F3F(~2, ~0x35, ~0x052), "6,v,B", 0, v9 },
-{ "fcmpd", CMPFCC(1)|F3F(2, 0x35, 0x052), CMPFCC(~1)|F3F(~2, ~0x35, ~0x052), "7,v,B", 0, v9 },
-{ "fcmpd", CMPFCC(2)|F3F(2, 0x35, 0x052), CMPFCC(~2)|F3F(~2, ~0x35, ~0x052), "8,v,B", 0, v9 },
-{ "fcmpd", CMPFCC(3)|F3F(2, 0x35, 0x052), CMPFCC(~3)|F3F(~2, ~0x35, ~0x052), "9,v,B", 0, v9 },
-{ "fcmped", F3F(2, 0x35, 0x056), F3F(~2, ~0x35, ~0x056)|RS1_G0, "v,B", 0, v6 },
-{ "fcmped", CMPFCC(0)|F3F(2, 0x35, 0x056), CMPFCC(~0)|F3F(~2, ~0x35, ~0x056), "6,v,B", 0, v9 },
-{ "fcmped", CMPFCC(1)|F3F(2, 0x35, 0x056), CMPFCC(~1)|F3F(~2, ~0x35, ~0x056), "7,v,B", 0, v9 },
-{ "fcmped", CMPFCC(2)|F3F(2, 0x35, 0x056), CMPFCC(~2)|F3F(~2, ~0x35, ~0x056), "8,v,B", 0, v9 },
-{ "fcmped", CMPFCC(3)|F3F(2, 0x35, 0x056), CMPFCC(~3)|F3F(~2, ~0x35, ~0x056), "9,v,B", 0, v9 },
-{ "fcmpeq", F3F(2, 0x34, 0x057), F3F(~2, ~0x34, ~0x057), "V,R", 0, v8 },
-{ "fcmpeq", CMPFCC(0)|F3F(2, 0x35, 0x057), CMPFCC(~0)|F3F(~2, ~0x35, ~0x057), "6,V,R", 0, v9 },
-{ "fcmpeq", CMPFCC(1)|F3F(2, 0x35, 0x057), CMPFCC(~1)|F3F(~2, ~0x35, ~0x057), "7,V,R", 0, v9 },
-{ "fcmpeq", CMPFCC(2)|F3F(2, 0x35, 0x057), CMPFCC(~2)|F3F(~2, ~0x35, ~0x057), "8,V,R", 0, v9 },
-{ "fcmpeq", CMPFCC(3)|F3F(2, 0x35, 0x057), CMPFCC(~3)|F3F(~2, ~0x35, ~0x057), "9,V,R", 0, v9 },
-{ "fcmpes", F3F(2, 0x35, 0x055), F3F(~2, ~0x35, ~0x055)|RS1_G0, "e,f", 0, v6 },
-{ "fcmpes", CMPFCC(0)|F3F(2, 0x35, 0x055), CMPFCC(~0)|F3F(~2, ~0x35, ~0x055), "6,e,f", 0, v9 },
-{ "fcmpes", CMPFCC(1)|F3F(2, 0x35, 0x055), CMPFCC(~1)|F3F(~2, ~0x35, ~0x055), "7,e,f", 0, v9 },
-{ "fcmpes", CMPFCC(2)|F3F(2, 0x35, 0x055), CMPFCC(~2)|F3F(~2, ~0x35, ~0x055), "8,e,f", 0, v9 },
-{ "fcmpes", CMPFCC(3)|F3F(2, 0x35, 0x055), CMPFCC(~3)|F3F(~2, ~0x35, ~0x055), "9,e,f", 0, v9 },
-{ "fcmpq", F3F(2, 0x34, 0x053), F3F(~2, ~0x34, ~0x053), "V,R", 0, v8 },
-{ "fcmpq", CMPFCC(0)|F3F(2, 0x35, 0x053), CMPFCC(~0)|F3F(~2, ~0x35, ~0x053), "6,V,R", 0, v9 },
-{ "fcmpq", CMPFCC(1)|F3F(2, 0x35, 0x053), CMPFCC(~1)|F3F(~2, ~0x35, ~0x053), "7,V,R", 0, v9 },
-{ "fcmpq", CMPFCC(2)|F3F(2, 0x35, 0x053), CMPFCC(~2)|F3F(~2, ~0x35, ~0x053), "8,V,R", 0, v9 },
-{ "fcmpq", CMPFCC(3)|F3F(2, 0x35, 0x053), CMPFCC(~3)|F3F(~2, ~0x35, ~0x053), "9,V,R", 0, v9 },
-{ "fcmps", F3F(2, 0x35, 0x051), F3F(~2, ~0x35, ~0x051)|RS1_G0, "e,f", 0, v6 },
-{ "fcmps", CMPFCC(0)|F3F(2, 0x35, 0x051), CMPFCC(~0)|F3F(~2, ~0x35, ~0x051), "6,e,f", 0, v9 },
-{ "fcmps", CMPFCC(1)|F3F(2, 0x35, 0x051), CMPFCC(~1)|F3F(~2, ~0x35, ~0x051), "7,e,f", 0, v9 },
-{ "fcmps", CMPFCC(2)|F3F(2, 0x35, 0x051), CMPFCC(~2)|F3F(~2, ~0x35, ~0x051), "8,e,f", 0, v9 },
-{ "fcmps", CMPFCC(3)|F3F(2, 0x35, 0x051), CMPFCC(~3)|F3F(~2, ~0x35, ~0x051), "9,e,f", 0, v9 },
-
-/* IMPDEP* is a v9 replacement for cpop*. */
-{ "cpop1", F3(2, 0x36, 0), F3(~2, ~0x36, ~1), "[1+2],d", 0, v6 },
-{ "cpop2", F3(2, 0x37, 0), F3(~2, ~0x37, ~1), "[1+2],d", 0, v6 },
-{ "impdep1", F3(2, 0x36, 0), F3(~2, ~0x36, ~1), "[1+2],d", F_ALIAS, v9 },
-{ "impdep2", F3(2, 0x37, 0), F3(~2, ~0x37, ~1), "[1+2],d", F_ALIAS, v9 },
-
-{ "casx", F3(3, 0x0c, 1), F3(~3, ~0x0c, ~1), "[1],2,d", 0, v9 },
-{ "casxa", F3(3, 0x1c, 1), F3(~3, ~0x1c, ~1), "[1]A,2,d", 0, v9 },
-{ "cas", F3(3, 0x0c, 0), F3(~3, ~0x0c, ~0), "[1],2,d", 0, v9 },
-{ "casa", F3(3, 0x1c, 0), F3(~3, ~0x1c, ~0), "[1]A,2,d", 0, v9 },
-
-{ "fmaddd", F3(2, 0x35, 0)|OPF_LOW(0xa), F3(~2, ~0x35, ~0)|OPF_LOW(~0xa), "v,B,u,H", 0, v9 },
-{ "fmaddq", F3(2, 0x35, 0)|OPF_LOW(0xb), F3(~2, ~0x35, ~0)|OPF_LOW(~0xb), "V,R,U,J", 0, v9 },
-{ "fmadds", F3(2, 0x35, 0)|OPF_LOW(0x9), F3(~2, ~0x35, ~0)|OPF_LOW(~0x9), "e,f,j,g", 0, v9 },
-{ "fmsubd", F3(2, 0x35, 0)|OPF_LOW(0xe), F3(~2, ~0x35, ~0)|OPF_LOW(~0xe), "v,B,u,H", 0, v9 },
-{ "fmsubq", F3(2, 0x35, 0)|OPF_LOW(0xf), F3(~2, ~0x35, ~0)|OPF_LOW(~0xf), "V,R,U,J", 0, v9 },
-{ "fmsubs", F3(2, 0x35, 0)|OPF_LOW(0xd), F3(~2, ~0x35, ~0)|OPF_LOW(~0xd), "e,f,j,g", 0, v9 },
-
-};
-
-const int bfd_sparc_num_opcodes = ((sizeof sparc_opcodes)/(sizeof sparc_opcodes[0]));
diff --git a/bfd/scanit b/bfd/scanit
deleted file mode 100755
index 27eee02..0000000
--- a/bfd/scanit
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-# Script to coordinate parsing of S. Chamberlain source-embedded
-# documentation markup language.
-
-# Four passes:
-# 1) awk discards lines not intended for docn, and marks blocks of
-# text with comments identifying source file;
-# 2) first sed pass interprets Chamberlain markup;
-# 3) second sed pass does cleanup that involves merging lines
-# 4) third sed pass does remaining cleans up---making {}
-# printable within examples, and eliminating empty index entries and
-# headings.
-#Third and second sed passes are separate because order of execution is hard
-#to control otherwise, making one or another of the things involving @example
-#inoperative.
-
-base=`echo $1 | cut -d '.' -f 1`
-
-awk -f awkscan $1 | \
-sed -f sedscript | \
-sed -f unPROTO | \
-sed -f exmerge | \
-sed -f exfilter >$base.texi
-
diff --git a/bfd/scanph b/bfd/scanph
deleted file mode 100755
index 46912c3..0000000
--- a/bfd/scanph
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-# Script to coordinate parsing of S. Chamberlain source-embedded
-# header-file markup language.
-
-# '-i' option means use *proto-internal* segments, else just *proto*
-SFX=p
-if [ $1 = "-i" ]; then
- SFX=ip
- shift
-fi
-
-base=`echo $1 | cut -d '.' -f 1`
-
-# passes:
-# 1) awk discards lines not intended for header, and marks blocks of
-# text with comments identifying source file;
-# 2) first sed pass interprets Chamberlain markup;
-# 3) further sed passes clean up---merging adjacent comments etc.
-
-awk -f awkscan-$SFX $1 |\
-sed -f sedscript-p |\
-sed -f mergecom-p |\
-sed -f startcom-p |\
-sed -f blins-p |\
-sed -f movecom-p >$base.$SFX
diff --git a/bfd/sedscript b/bfd/sedscript
deleted file mode 100755
index e8e225d..0000000
--- a/bfd/sedscript
+++ /dev/null
@@ -1,85 +0,0 @@
-# SED script for preprocessing embedded doc from source (S. Chamberlain markup)
-# middle pass; most of the work is done here.
-#
-# First, get rid of /*doc* markers; they've done their job in the first pass.
-/^\/\*doc\*/d
-#
-# /*proto* markers may be optionally followed by a *i-style subsubsec, findex
-# entry. This will generate empty @findex and @subsubsection entries if
-# the *proto* is on a line by itself; third pass removes them.
-/^\/\*proto\*/s/^\/\*proto\* *\(.*\)$/@findex \1\
-@subsubsection @code{\1}/
-#
-# /*proto-internal* is just like /*proto* from doc point of view.
-/^\/\*proto-internal\*/s/^\/\*proto-internal\* *\(.*\)$/@findex \1\
-@subsubsection @code{\1}/
-#
-# *i at beginning of line: rest of line is both a subsubsection heading
-# and an entry in function index.
-/^\*i/s/^\*i *\(.*\)$/@findex \1\
-@subsubsection @code{\1}/
-#
-# Two alternative docn block ends, '*/' and '*-*/' on lines by themselves;
-# replace by blank lines (for texinfo source readability).
-/^\*\/$/c\
-
-/^\*-\*\/$/c\
-
-# {* and *} are standins for comment markers (originally embedded in .c
-# comments)---turn into real comment markers:
-s/{\*/\/\*/
-s/\*}/\*\//
-#
-# '*+++' and '*---' span a block of text that includes both example lines
-# (marked by leading '$') and explanatory text (to be italicized).
-# Italicize lines lacking '$':
-/\*\+\+\+/,/\*---/s/^\([^$].*\)$/@i{\1}/
-#
-# We don't need *+++ and *--- markers any more; kill them (trailing marker
-# becomes blank line for readability)
-/\*\+\+\+/d
-/\*---/c\
-
-# Any line beginning with '$' is made an example line; third pass later
-# coalesces adjacent example blocks. *DO NOT* introduce extra space after
-# @end example, so we can spot adjacent ones in third pass.
-/^\$/i\
-@example
-/^\$/a\
-@end example
-#
-# In any example line, turn '{' and '}' into '@{' and '@}'
-###/^\$/s/{/@{/g
-###/^\$/s/}/@}/g
-#
-# Now delete the '$' markers themselves:
-/^\$/s/\$//
-#
-# *+ and *- delimit large examples to be enclosed in cartouches.
-/^\*\+$/c\
-@lisp\
-@cartouche
-/^\*-$/c\
-@end cartouche\
-@end lisp\
-
-# '*;' introduces an example which may have a single line or multiple lines;
-# it extends until the next semicolon (which is also printed).
-# One-line case: (do this first; else second line address for multi-line case
-# will include random text til we happen to end a line in a doc comment with
-# a semicolon)
-/^\*;.*;$/{
-s/^\*;/@example\
-/
-s/;$/;\
-@end example\
-/
-}
-# Multi-line case:
-/^\*;/,/.*;$/{
-s/^\*;/@example\
-/
-s/;$/;\
-@end example\
-/
-}
diff --git a/bfd/sedscript-p b/bfd/sedscript-p
deleted file mode 100755
index 1f24900..0000000
--- a/bfd/sedscript-p
+++ /dev/null
@@ -1,63 +0,0 @@
-# SED script for preprocessing embedded headers from source
-# (S. Chamberlain markup)
-# middle pass; most of the work is done here.
-#
-# First, get rid of /*proto* markers; they've done their job in the first pass.
-# (They remain comment-introducers)
-/^\/\*proto\*/s/^\/\*proto\*/\/*/
-/^\/\*proto-internal\*/s/^\/\*proto-internal\*/\/*/
-#
-# *-*/ is an alternative (older) comment-block end. Remap for uniformity:
-s/^\*-\*\//\*\//
-#
-# {* and *} are standins for comment markers (originally embedded in .c
-# comments)---turn into real comment markers:
-s/{\*/\/\*/
-s/\*}/\*\//
-#
-# '*+++' and '*---' span a block of text that includes both header lines
-# (marked by leading '$') and explanatory text (to be comments).
-# No need to start comment at "*+++", or end it at "*---", since we're
-# already in a *proto* comment block. Just delete.
-/\*\+\+\+/d
-/\*---/d
-#
-# Any line beginning with '$' is made a line of code in the header;
-# stuff in between is comments, so *precede* each '$' line with
-# END-comment, *follow* each '$' line with START-comment; third pass later
-# eliminates empty comment blocks.
-/^\$/i\
-*/
-/^\$/a\
-/*
-#
-# Now delete the '$' markers themselves:
-/^\$/s/\$//
-#
-# *+ and *- delimit larger blocks of code, treated the same as '$' lines
-/^\*\+$/c\
-*/
-/^\*-$/c\
-/*
-#
-# '*;' introduces code which may have a single line or multiple lines;
-# it extends until the next semicolon (which is also printed).
-#
-# One-line case: (do this first; else second line address for multi-line case
-# will include random text til we happen to end a line in a proto comment with
-# a semicolon)
-/^\*;.*;$/{
-s/^\*;/*\/\
-/
-s/;$/;\
-\/*\
-/
-}
-# Multi-line case:
-/^\*;/,/.*;$/{
-s/^\*;/*\/\
-/
-s/;$/;\
-\/*\
-/
-}
diff --git a/bfd/sparc-opc.c b/bfd/sparc-opc.c
deleted file mode 100644
index 86405f1..0000000
--- a/bfd/sparc-opc.c
+++ /dev/null
@@ -1,1870 +0,0 @@
-/* to sanitize this file, grep -v v9 < sparc.h > clean-sparc.h */
-
-/* Table of opcodes for the sparc.
- Copyright 1989, 1991, 1992 Free Software Foundation, Inc.
-
-This file is part of the BFD library.
-
-BFD is free software; you can redistribute it and/or modify it under
-the terms of the GNU General Public License as published by the Free
-Software Foundation; either version 2, or (at your option) any later
-version.
-
-BFD is distributed in the hope that it will be useful, but WITHOUT ANY
-WARRANTY; without even the implied warranty of MERCHANTABILITY or
-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with this software; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-/* FIXME-someday: perhaps the ,a's and such should be embedded in the
- instruction's name rather than the args. This would make gas faster, pinsn
- slower, but would mess up some macros a bit. xoxorich. */
-
-#include <stdio.h>
-#include "ansidecl.h"
-#define BFD_EMIT_TABLE
-#include "opcode/sparc.h"
-
-const char *architecture_pname[] = {
- "v6",
- "v7",
- "v8",
- "sparclite",
- "v9",
- NULL,
-};
-
-/* v9: This file is correct for SPARC Version 9 Draft 1.0.4. */
-
-#define COND(x) (((x)&0xf)<<25)
-#define MCOND(x,i_or_f) ((((i_or_f)&1)<<18)|(((x)>>11)&(0xf<<14))) /* v9 */
-
-#define CONDA (COND(0x8))
-#define CONDCC (COND(0xd))
-#define CONDCS (COND(0x5))
-#define CONDE (COND(0x1))
-#define CONDG (COND(0xa))
-#define CONDGE (COND(0xb))
-#define CONDGU (COND(0xc))
-#define CONDL (COND(0x3))
-#define CONDLE (COND(0x2))
-#define CONDLEU (COND(0x4))
-#define CONDN (COND(0x0))
-#define CONDNE (COND(0x9))
-#define CONDNEG (COND(0x6))
-#define CONDPOS (COND(0xe))
-#define CONDVC (COND(0xf))
-#define CONDVS (COND(0x7))
-
-#define CONDNZ CONDNE
-#define CONDZ CONDE
-#define CONDGEU CONDCC
-#define CONDLU CONDCS
-
-#define FCONDA (COND(0x8))
-#define FCONDE (COND(0x9))
-#define FCONDG (COND(0x6))
-#define FCONDGE (COND(0xb))
-#define FCONDL (COND(0x4))
-#define FCONDLE (COND(0xd))
-#define FCONDLG (COND(0x2))
-#define FCONDN (COND(0x0))
-#define FCONDNE (COND(0x1))
-#define FCONDO (COND(0xf))
-#define FCONDU (COND(0x7))
-#define FCONDUE (COND(0xa))
-#define FCONDUG (COND(0x5))
-#define FCONDUGE (COND(0xc))
-#define FCONDUL (COND(0x3))
-#define FCONDULE (COND(0xe))
-
-#define FCONDNZ FCONDNE
-#define FCONDZ FCONDE
-
-#define ICC (0) /* v9 */
-#define XCC (1<<11) /* v9 */
-#define FCC(x) (((x)&0x3)<<11) /* v9 */
-#define FBFCC(x) (((x)&0x3)<<20) /* v9 */
-
-/* The order of the opcodes in the table is significant:
-
- * The assembler requires that all instances of the same mnemonic must
- be consecutive. If they aren't, the assembler will bomb at runtime.
-
- * The disassembler should not care about the order of the opcodes.
-
-*/
-
-struct sparc_opcode sparc_opcodes[] = {
-
-{ "ld", F3(3, 0x00, 0), F3(~3, ~0x00, ~0), "[1+2],d", 0, v6 },
-{ "ld", F3(3, 0x00, 0), F3(~3, ~0x00, ~0)|RS2_G0, "[1],d", 0, v6 }, /* ld [rs1+%g0],d */
-{ "ld", F3(3, 0x00, 1), F3(~3, ~0x00, ~1), "[1+i],d", 0, v6 },
-{ "ld", F3(3, 0x00, 1), F3(~3, ~0x00, ~1), "[i+1],d", 0, v6 },
-{ "ld", F3(3, 0x00, 1), F3(~3, ~0x00, ~1)|RS1_G0, "[i],d", 0, v6 },
-{ "ld", F3(3, 0x00, 1), F3(~3, ~0x00, ~1)|SIMM13(~0), "[1],d", 0, v6 }, /* ld [rs1+0],d */
-{ "ld", F3(3, 0x20, 0), F3(~3, ~0x20, ~0), "[1+2],g", 0, v6 },
-{ "ld", F3(3, 0x20, 0), F3(~3, ~0x20, ~0)|RS2_G0, "[1],g", 0, v6 }, /* ld [rs1+%g0],d */
-{ "ld", F3(3, 0x20, 1), F3(~3, ~0x20, ~1), "[1+i],g", 0, v6 },
-{ "ld", F3(3, 0x20, 1), F3(~3, ~0x20, ~1), "[i+1],g", 0, v6 },
-{ "ld", F3(3, 0x20, 1), F3(~3, ~0x20, ~1)|RS1_G0, "[i],g", 0, v6 },
-{ "ld", F3(3, 0x20, 1), F3(~3, ~0x20, ~1)|SIMM13(~0), "[1],g", 0, v6 }, /* ld [rs1+0],d */
-
-{ "ld", F3(3, 0x21, 0), F3(~3, ~0x21, ~0)|RD(~0), "[1+2],F", 0, v6 },
-{ "ld", F3(3, 0x21, 0), F3(~3, ~0x21, ~0)|RS2_G0|RD(~0),"[1],F", 0, v6 }, /* ld [rs1+%g0],d */
-{ "ld", F3(3, 0x21, 1), F3(~3, ~0x21, ~1)|RD(~0), "[1+i],F", 0, v6 },
-{ "ld", F3(3, 0x21, 1), F3(~3, ~0x21, ~1)|RD(~0), "[i+1],F", 0, v6 },
-{ "ld", F3(3, 0x21, 1), F3(~3, ~0x21, ~1)|RS1_G0|RD(~0),"[i],F", 0, v6 },
-{ "ld", F3(3, 0x21, 1), F3(~3, ~0x21, ~1)|SIMM13(~0)|RD(~0),"[1],F", 0, v6 }, /* ld [rs1+0],d */
-
-/* FIXME These are marked F_ALIAS, so that they won't conflict with new v9
- insns when v9 is present. Otherwise, the F_ALIAS flag is ignored. */
-{ "ld", F3(3, 0x30, 0), F3(~3, ~0x30, ~0), "[1+2],D", F_ALIAS, v6 },
-{ "ld", F3(3, 0x30, 0), F3(~3, ~0x30, ~0)|RS2_G0, "[1],D", F_ALIAS, v6 }, /* ld [rs1+%g0],d */
-{ "ld", F3(3, 0x30, 1), F3(~3, ~0x30, ~1), "[1+i],D", F_ALIAS, v6 },
-{ "ld", F3(3, 0x30, 1), F3(~3, ~0x30, ~1), "[i+1],D", F_ALIAS, v6 },
-{ "ld", F3(3, 0x30, 1), F3(~3, ~0x30, ~1)|RS1_G0, "[i],D", F_ALIAS, v6 },
-{ "ld", F3(3, 0x30, 1), F3(~3, ~0x30, ~1)|SIMM13(~0), "[1],D", F_ALIAS, v6 }, /* ld [rs1+0],d */
-{ "ld", F3(3, 0x31, 0), F3(~3, ~0x31, ~0), "[1+2],C", 0, v6 },
-{ "ld", F3(3, 0x31, 0), F3(~3, ~0x31, ~0)|RS2_G0, "[1],C", 0, v6 }, /* ld [rs1+%g0],d */
-{ "ld", F3(3, 0x31, 1), F3(~3, ~0x31, ~1), "[1+i],C", 0, v6 },
-{ "ld", F3(3, 0x31, 1), F3(~3, ~0x31, ~1), "[i+1],C", 0, v6 },
-{ "ld", F3(3, 0x31, 1), F3(~3, ~0x31, ~1)|RS1_G0, "[i],C", 0, v6 },
-{ "ld", F3(3, 0x31, 1), F3(~3, ~0x31, ~1)|SIMM13(~0), "[1],C", 0, v6 }, /* ld [rs1+0],d */
-
-/* The v9 LDUW is the same as the old 'ld' opcode, it is not the same as the
- 'ld' pseudo-op in v9. */
-{ "lduw", F3(3, 0x00, 0), F3(~3, ~0x00, ~0), "[1+2],d", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x00, 0), F3(~3, ~0x00, ~0)|RS2_G0, "[1],d", F_ALIAS, v9 }, /* ld [rs1+%g0],d */
-{ "lduw", F3(3, 0x00, 1), F3(~3, ~0x00, ~1), "[1+i],d", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x00, 1), F3(~3, ~0x00, ~1), "[i+1],d", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x00, 1), F3(~3, ~0x00, ~1)|RS1_G0, "[i],d", F_ALIAS, v9 },
-{ "lduw", F3(3, 0x00, 1), F3(~3, ~0x00, ~1)|SIMM13(~0), "[1],d", F_ALIAS, v9 }, /* ld [rs1+0],d */
-
-{ "ldd", F3(3, 0x03, 0), F3(~3, ~0x03, ~0)|ASI(~0), "[1+2],d", 0, v6 },
-{ "ldd", F3(3, 0x03, 0), F3(~3, ~0x03, ~0)|ASI_RS2(~0), "[1],d", 0, v6 }, /* ldd [rs1+%g0],d */
-{ "ldd", F3(3, 0x03, 1), F3(~3, ~0x03, ~1), "[1+i],d", 0, v6 },
-{ "ldd", F3(3, 0x03, 1), F3(~3, ~0x03, ~1), "[i+1],d", 0, v6 },
-{ "ldd", F3(3, 0x03, 1), F3(~3, ~0x03, ~1)|RS1_G0, "[i],d", 0, v6 },
-{ "ldd", F3(3, 0x03, 1), F3(~3, ~0x03, ~1)|SIMM13(~0), "[1],d", 0, v6 }, /* ldd [rs1+0],d */
-{ "ldd", F3(3, 0x23, 0), F3(~3, ~0x23, ~0)|ASI(~0), "[1+2],H", 0, v6 },
-{ "ldd", F3(3, 0x23, 0), F3(~3, ~0x23, ~0)|ASI_RS2(~0), "[1],H", 0, v6 }, /* ldd [rs1+%g0],d */
-{ "ldd", F3(3, 0x23, 1), F3(~3, ~0x23, ~1), "[1+i],H", 0, v6 },
-{ "ldd", F3(3, 0x23, 1), F3(~3, ~0x23, ~1), "[i+1],H", 0, v6 },
-{ "ldd", F3(3, 0x23, 1), F3(~3, ~0x23, ~1)|RS1_G0, "[i],H", 0, v6 },
-{ "ldd", F3(3, 0x23, 1), F3(~3, ~0x23, ~1)|SIMM13(~0), "[1],H", 0, v6 }, /* ldd [rs1+0],d */
-/* FIXME These are marked F_ALIAS, so that they won't conflict with new v9
- insns when v9 is present. Otherwise, the F_ALIAS flag is ignored. */
-{ "ldd", F3(3, 0x33, 0), F3(~3, ~0x33, ~0)|ASI(~0), "[1+2],D", F_ALIAS, v6 },
-{ "ldd", F3(3, 0x33, 0), F3(~3, ~0x33, ~0)|ASI_RS2(~0), "[1],D", F_ALIAS, v6 }, /* ldd [rs1+%g0],d */
-{ "ldd", F3(3, 0x33, 1), F3(~3, ~0x33, ~1), "[1+i],D", F_ALIAS, v6 },
-{ "ldd", F3(3, 0x33, 1), F3(~3, ~0x33, ~1), "[i+1],D", F_ALIAS, v6 },
-{ "ldd", F3(3, 0x33, 1), F3(~3, ~0x33, ~1)|RS1_G0, "[i],D", F_ALIAS, v6 },
-{ "ldd", F3(3, 0x33, 1), F3(~3, ~0x33, ~1)|SIMM13(~0), "[1],D", F_ALIAS, v6 }, /* ldd [rs1+0],d */
-
-{ "ldq", F3(3, 0x22, 0), F3(~3, ~0x22, ~0)|ASI(~0), "[1+2],J", 0, v9 },
-{ "ldq", F3(3, 0x22, 0), F3(~3, ~0x22, ~0)|ASI_RS2(~0), "[1],J", 0, v9 }, /* ldd [rs1+%g0],d */
-{ "ldq", F3(3, 0x22, 1), F3(~3, ~0x22, ~1), "[1+i],J", 0, v9 },
-{ "ldq", F3(3, 0x22, 1), F3(~3, ~0x22, ~1), "[i+1],J", 0, v9 },
-{ "ldq", F3(3, 0x22, 1), F3(~3, ~0x22, ~1)|RS1_G0, "[i],J", 0, v9 },
-{ "ldq", F3(3, 0x22, 1), F3(~3, ~0x22, ~1)|SIMM13(~0), "[1],J", 0, v9 }, /* ldd [rs1+0],d */
-
-{ "ldsb", F3(3, 0x09, 0), F3(~3, ~0x09, ~0)|ASI(~0), "[1+2],d", 0, v6 },
-{ "ldsb", F3(3, 0x09, 0), F3(~3, ~0x09, ~0)|ASI_RS2(~0), "[1],d", 0, v6 }, /* ldsb [rs1+%g0],d */
-{ "ldsb", F3(3, 0x09, 1), F3(~3, ~0x09, ~1), "[1+i],d", 0, v6 },
-{ "ldsb", F3(3, 0x09, 1), F3(~3, ~0x09, ~1), "[i+1],d", 0, v6 },
-{ "ldsb", F3(3, 0x09, 1), F3(~3, ~0x09, ~1)|RS1_G0, "[i],d", 0, v6 },
-{ "ldsb", F3(3, 0x09, 1), F3(~3, ~0x09, ~1)|SIMM13(~0), "[1],d", 0, v6 }, /* ldsb [rs1+0],d */
-
-{ "ldsh", F3(3, 0x0a, 0), F3(~3, ~0x0a, ~0)|ASI_RS2(~0), "[1],d", 0, v6 }, /* ldsh [rs1+%g0],d */
-{ "ldsh", F3(3, 0x0a, 0), F3(~3, ~0x0a, ~0)|ASI(~0), "[1+2],d", 0, v6 },
-{ "ldsh", F3(3, 0x0a, 1), F3(~3, ~0x0a, ~1), "[1+i],d", 0, v6 },
-{ "ldsh", F3(3, 0x0a, 1), F3(~3, ~0x0a, ~1), "[i+1],d", 0, v6 },
-{ "ldsh", F3(3, 0x0a, 1), F3(~3, ~0x0a, ~1)|RS1_G0, "[i],d", 0, v6 },
-{ "ldsh", F3(3, 0x0a, 1), F3(~3, ~0x0a, ~1)|SIMM13(~0), "[1],d", 0, v6 }, /* ldsh [rs1+0],d */
-
-{ "ldstub", F3(3, 0x0d, 0), F3(~3, ~0x0d, ~0)|ASI(~0), "[1+2],d", 0, v6 },
-{ "ldstub", F3(3, 0x0d, 0), F3(~3, ~0x0d, ~0)|ASI_RS2(~0), "[1],d", 0, v6 }, /* ldstub [rs1+%g0],d */
-{ "ldstub", F3(3, 0x0d, 1), F3(~3, ~0x0d, ~1), "[1+i],d", 0, v6 },
-{ "ldstub", F3(3, 0x0d, 1), F3(~3, ~0x0d, ~1), "[i+1],d", 0, v6 },
-{ "ldstub", F3(3, 0x0d, 1), F3(~3, ~0x0d, ~1)|RS1_G0, "[i],d", 0, v6 },
-{ "ldstub", F3(3, 0x0d, 1), F3(~3, ~0x0d, ~1)|SIMM13(~0), "[1],d", 0, v6 }, /* ldstub [rs1+0],d */
-
-{ "ldsw", F3(3, 0x08, 0), F3(~3, ~0x08, ~0)|ASI(~0), "[1+2],d", 0, v9 },
-{ "ldsw", F3(3, 0x08, 0), F3(~3, ~0x08, ~0)|ASI_RS2(~0), "[1],d", 0, v9 }, /* ldsw [rs1+%g0],d */
-{ "ldsw", F3(3, 0x08, 1), F3(~3, ~0x08, ~1), "[1+i],d", 0, v9 },
-{ "ldsw", F3(3, 0x08, 1), F3(~3, ~0x08, ~1), "[i+1],d", 0, v9 },
-{ "ldsw", F3(3, 0x08, 1), F3(~3, ~0x08, ~1)|RS1_G0, "[i],d", 0, v9 },
-{ "ldsw", F3(3, 0x08, 1), F3(~3, ~0x08, ~1)|SIMM13(~0), "[1],d", 0, v9 }, /* ldsw [rs1+0],d */
-
-{ "ldub", F3(3, 0x01, 0), F3(~3, ~0x01, ~0)|ASI(~0), "[1+2],d", 0, v6 },
-{ "ldub", F3(3, 0x01, 0), F3(~3, ~0x01, ~0)|ASI_RS2(~0), "[1],d", 0, v6 }, /* ldub [rs1+%g0],d */
-{ "ldub", F3(3, 0x01, 1), F3(~3, ~0x01, ~1), "[1+i],d", 0, v6 },
-{ "ldub", F3(3, 0x01, 1), F3(~3, ~0x01, ~1), "[i+1],d", 0, v6 },
-{ "ldub", F3(3, 0x01, 1), F3(~3, ~0x01, ~1)|RS1_G0, "[i],d", 0, v6 },
-{ "ldub", F3(3, 0x01, 1), F3(~3, ~0x01, ~1)|SIMM13(~0), "[1],d", 0, v6 }, /* ldub [rs1+0],d */
-
-{ "lduh", F3(3, 0x02, 0), F3(~3, ~0x02, ~0)|ASI(~0), "[1+2],d", 0, v6 },
-{ "lduh", F3(3, 0x02, 0), F3(~3, ~0x02, ~0)|ASI_RS2(~0), "[1],d", 0, v6 }, /* lduh [rs1+%g0],d */
-{ "lduh", F3(3, 0x02, 1), F3(~3, ~0x02, ~1), "[1+i],d", 0, v6 },
-{ "lduh", F3(3, 0x02, 1), F3(~3, ~0x02, ~1), "[i+1],d", 0, v6 },
-{ "lduh", F3(3, 0x02, 1), F3(~3, ~0x02, ~1)|RS1_G0, "[i],d", 0, v6 },
-{ "lduh", F3(3, 0x02, 1), F3(~3, ~0x02, ~1)|SIMM13(~0), "[1],d", 0, v6 }, /* lduh [rs1+0],d */
-
-{ "ldx", F3(3, 0x0b, 0), F3(~3, ~0x0b, ~0)|ASI(~0), "[1+2],d", 0, v9 },
-{ "ldx", F3(3, 0x0b, 0), F3(~3, ~0x0b, ~0)|ASI_RS2(~0), "[1],d", 0, v9 }, /* ldx [rs1+%g0],d */
-{ "ldx", F3(3, 0x0b, 1), F3(~3, ~0x0b, ~1), "[1+i],d", 0, v9 },
-{ "ldx", F3(3, 0x0b, 1), F3(~3, ~0x0b, ~1), "[i+1],d", 0, v9 },
-{ "ldx", F3(3, 0x0b, 1), F3(~3, ~0x0b, ~1)|RS1_G0, "[i],d", 0, v9 },
-{ "ldx", F3(3, 0x0b, 1), F3(~3, ~0x0b, ~1)|SIMM13(~0), "[1],d", 0, v9 }, /* ldx [rs1+0],d */
-
-{ "ldx", F3(3, 0x21, 0)|RD(1), F3(~3, ~0x21, ~0)|RD(~1), "[1+2],F", 0, v9 },
-{ "ldx", F3(3, 0x21, 0)|RD(1), F3(~3, ~0x21, ~0)|RS2_G0|RD(~1), "[1],F", 0, v9 }, /* ld [rs1+%g0],d */
-{ "ldx", F3(3, 0x21, 1)|RD(1), F3(~3, ~0x21, ~1)|RD(~1), "[1+i],F", 0, v9 },
-{ "ldx", F3(3, 0x21, 1)|RD(1), F3(~3, ~0x21, ~1)|RD(~1), "[i+1],F", 0, v9 },
-{ "ldx", F3(3, 0x21, 1)|RD(1), F3(~3, ~0x21, ~1)|RS1_G0|RD(~1), "[i],F", 0, v9 },
-{ "ldx", F3(3, 0x21, 1)|RD(1), F3(~3, ~0x21, ~1)|SIMM13(~0)|RD(~1),"[1],F", 0, v9 }, /* ld [rs1+0],d */
-
-{ "lda", F3(3, 0x10, 0), F3(~3, ~0x10, ~0), "[1+2]A,d", 0, v6 },
-{ "lda", F3(3, 0x10, 0), F3(~3, ~0x10, ~0)|RS2_G0, "[1]A,d", 0, v6 }, /* lda [rs1+%g0],d */
-{ "lda", F3(3, 0x10, 1), F3(~3, ~0x10, ~1), "[1+i]o,d", 0, v9 },
-{ "lda", F3(3, 0x10, 1), F3(~3, ~0x10, ~1), "[i+1]o,d", 0, v9 },
-{ "lda", F3(3, 0x10, 1), F3(~3, ~0x10, ~1)|RS1_G0, "[i]o,d", 0, v9 },
-{ "lda", F3(3, 0x10, 1), F3(~3, ~0x10, ~1)|SIMM13(~0), "[1]o,d", 0, v9 }, /* ld [rs1+0],d */
-{ "lda", F3(3, 0x30, 0), F3(~3, ~0x30, ~0), "[1+2]A,g", 0, v9 },
-{ "lda", F3(3, 0x30, 0), F3(~3, ~0x30, ~0)|RS2_G0, "[1]A,g", 0, v9 }, /* lda [rs1+%g0],d */
-{ "lda", F3(3, 0x30, 1), F3(~3, ~0x30, ~1), "[1+i]o,g", 0, v9 },
-{ "lda", F3(3, 0x30, 1), F3(~3, ~0x30, ~1), "[i+1]o,g", 0, v9 },
-{ "lda", F3(3, 0x30, 1), F3(~3, ~0x30, ~1)|RS1_G0, "[i]o,g", 0, v9 },
-{ "lda", F3(3, 0x30, 1), F3(~3, ~0x30, ~1)|SIMM13(~0), "[1]o,g", 0, v9 }, /* ld [rs1+0],d */
-
-{ "ldda", F3(3, 0x13, 0), F3(~3, ~0x13, ~0), "[1+2]A,d", 0, v6 },
-{ "ldda", F3(3, 0x13, 0), F3(~3, ~0x13, ~0)|RS2_G0, "[1]A,d", 0, v6 }, /* ldda [rs1+%g0],d */
-{ "ldda", F3(3, 0x13, 1), F3(~3, ~0x13, ~1), "[1+i]o,d", 0, v9 },
-{ "ldda", F3(3, 0x13, 1), F3(~3, ~0x13, ~1), "[i+1]o,d", 0, v9 },
-{ "ldda", F3(3, 0x13, 1), F3(~3, ~0x13, ~1)|RS1_G0, "[i]o,d", 0, v9 },
-{ "ldda", F3(3, 0x13, 1), F3(~3, ~0x13, ~1)|SIMM13(~0), "[1]o,d", 0, v9 }, /* ld [rs1+0],d */
-
-{ "ldda", F3(3, 0x33, 0), F3(~3, ~0x33, ~0), "[1+2]A,H", 0, v9 },
-{ "ldda", F3(3, 0x33, 0), F3(~3, ~0x33, ~0)|RS2_G0, "[1]A,H", 0, v9 }, /* ldda [rs1+%g0],d */
-{ "ldda", F3(3, 0x33, 1), F3(~3, ~0x33, ~1), "[1+i]o,H", 0, v9 },
-{ "ldda", F3(3, 0x33, 1), F3(~3, ~0x33, ~1), "[i+1]o,H", 0, v9 },
-{ "ldda", F3(3, 0x33, 1), F3(~3, ~0x33, ~1)|RS1_G0, "[i]o,H", 0, v9 },
-{ "ldda", F3(3, 0x33, 1), F3(~3, ~0x33, ~1)|SIMM13(~0), "[1]o,H", 0, v9 }, /* ld [rs1+0],d */
-
-{ "ldqa", F3(3, 0x32, 0), F3(~3, ~0x32, ~0), "[1+2]A,J", 0, v9 },
-{ "ldqa", F3(3, 0x32, 0), F3(~3, ~0x32, ~0)|RS2_G0, "[1]A,J", 0, v9 }, /* ldd [rs1+%g0],d */
-{ "ldqa", F3(3, 0x32, 1), F3(~3, ~0x32, ~1), "[1+i]o,J", 0, v9 },
-{ "ldqa", F3(3, 0x32, 1), F3(~3, ~0x32, ~1), "[i+1]o,J", 0, v9 },
-{ "ldqa", F3(3, 0x32, 1), F3(~3, ~0x32, ~1)|RS1_G0, "[i]o,J", 0, v9 },
-{ "ldqa", F3(3, 0x32, 1), F3(~3, ~0x32, ~1)|SIMM13(~0), "[1]o,J", 0, v9 }, /* ldd [rs1+0],d */
-
-{ "ldsba", F3(3, 0x19, 0), F3(~3, ~0x19, ~0), "[1+2]A,d", 0, v6 },
-{ "ldsba", F3(3, 0x19, 0), F3(~3, ~0x19, ~0)|RS2_G0, "[1]A,d", 0, v6 }, /* ldsba [rs1+%g0],d */
-{ "ldsba", F3(3, 0x19, 1), F3(~3, ~0x19, ~1), "[1+i]o,d", 0, v9 },
-{ "ldsba", F3(3, 0x19, 1), F3(~3, ~0x19, ~1), "[i+1]o,d", 0, v9 },
-{ "ldsba", F3(3, 0x19, 1), F3(~3, ~0x19, ~1)|RS1_G0, "[i]o,d", 0, v9 },
-{ "ldsba", F3(3, 0x19, 1), F3(~3, ~0x19, ~1)|SIMM13(~0), "[1]o,d", 0, v9 }, /* ld [rs1+0],d */
-
-{ "ldsha", F3(3, 0x1a, 0), F3(~3, ~0x1a, ~0), "[1+2]A,d", 0, v6 },
-{ "ldsha", F3(3, 0x1a, 0), F3(~3, ~0x1a, ~0)|RS2_G0, "[1]A,d", 0, v6 }, /* ldsha [rs1+%g0],d */
-{ "ldsha", F3(3, 0x1a, 1), F3(~3, ~0x1a, ~1), "[1+i]o,d", 0, v9 },
-{ "ldsha", F3(3, 0x1a, 1), F3(~3, ~0x1a, ~1), "[i+1]o,d", 0, v9 },
-{ "ldsha", F3(3, 0x1a, 1), F3(~3, ~0x1a, ~1)|RS1_G0, "[i]o,d", 0, v9 },
-{ "ldsha", F3(3, 0x1a, 1), F3(~3, ~0x1a, ~1)|SIMM13(~0), "[1]o,d", 0, v9 }, /* ld [rs1+0],d */
-
-{ "ldstuba", F3(3, 0x1d, 0), F3(~3, ~0x1d, ~0), "[1+2]A,d", 0, v6 },
-{ "ldstuba", F3(3, 0x1d, 0), F3(~3, ~0x1d, ~0)|RS2_G0, "[1]A,d", 0, v6 }, /* ldstuba [rs1+%g0],d */
-{ "ldstuba", F3(3, 0x1d, 1), F3(~3, ~0x1d, ~1), "[1+i]o,d", 0, v9 },
-{ "ldstuba", F3(3, 0x1d, 1), F3(~3, ~0x1d, ~1), "[i+1]o,d", 0, v9 },
-{ "ldstuba", F3(3, 0x1d, 1), F3(~3, ~0x1d, ~1)|RS1_G0, "[i]o,d", 0, v9 },
-{ "ldstuba", F3(3, 0x1d, 1), F3(~3, ~0x1d, ~1)|SIMM13(~0), "[1]o,d", 0, v9 }, /* ld [rs1+0],d */
-
-{ "ldswa", F3(3, 0x18, 0), F3(~3, ~0x18, ~0), "[1+2]A,d", 0, v9 },
-{ "ldswa", F3(3, 0x18, 0), F3(~3, ~0x18, ~0)|RS2_G0, "[1]A,d", 0, v9 }, /* lda [rs1+%g0],d */
-{ "ldswa", F3(3, 0x18, 1), F3(~3, ~0x18, ~1), "[1+i]o,d", 0, v9 },
-{ "ldswa", F3(3, 0x18, 1), F3(~3, ~0x18, ~1), "[i+1]o,d", 0, v9 },
-{ "ldswa", F3(3, 0x18, 1), F3(~3, ~0x18, ~1)|RS1_G0, "[i]o,d", 0, v9 },
-{ "ldswa", F3(3, 0x18, 1), F3(~3, ~0x18, ~1)|SIMM13(~0), "[1]o,d", 0, v9 }, /* ld [rs1+0],d */
-
-{ "lduba", F3(3, 0x11, 0), F3(~3, ~0x11, ~0), "[1+2]A,d", 0, v6 },
-{ "lduba", F3(3, 0x11, 0), F3(~3, ~0x11, ~0)|RS2_G0, "[1]A,d", 0, v6 }, /* lduba [rs1+%g0],d */
-{ "lduba", F3(3, 0x11, 1), F3(~3, ~0x11, ~1), "[1+i]o,d", 0, v9 },
-{ "lduba", F3(3, 0x11, 1), F3(~3, ~0x11, ~1), "[i+1]o,d", 0, v9 },
-{ "lduba", F3(3, 0x11, 1), F3(~3, ~0x11, ~1)|RS1_G0, "[i]o,d", 0, v9 },
-{ "lduba", F3(3, 0x11, 1), F3(~3, ~0x11, ~1)|SIMM13(~0), "[1]o,d", 0, v9 }, /* ld [rs1+0],d */
-
-{ "lduha", F3(3, 0x12, 0), F3(~3, ~0x12, ~0), "[1+2]A,d", 0, v6 },
-{ "lduha", F3(3, 0x12, 0), F3(~3, ~0x12, ~0)|RS2_G0, "[1]A,d", 0, v6 }, /* lduha [rs1+%g0],d */
-{ "lduha", F3(3, 0x12, 1), F3(~3, ~0x12, ~1), "[1+i]o,d", 0, v9 },
-{ "lduha", F3(3, 0x12, 1), F3(~3, ~0x12, ~1), "[i+1]o,d", 0, v9 },
-{ "lduha", F3(3, 0x12, 1), F3(~3, ~0x12, ~1)|RS1_G0, "[i]o,d", 0, v9 },
-{ "lduha", F3(3, 0x12, 1), F3(~3, ~0x12, ~1)|SIMM13(~0), "[1]o,d", 0, v9 }, /* ld [rs1+0],d */
-
-{ "lduwa", F3(3, 0x10, 0), F3(~3, ~0x10, ~0), "[1+2]A,d", F_ALIAS, v9 }, /* lduwa === lda */
-{ "lduwa", F3(3, 0x10, 0), F3(~3, ~0x10, ~0)|RS2_G0, "[1]A,d", F_ALIAS, v9 }, /* lda [rs1+%g0],d */
-{ "lduwa", F3(3, 0x10, 1), F3(~3, ~0x10, ~1), "[1+i]o,d", F_ALIAS, v9 },
-{ "lduwa", F3(3, 0x10, 1), F3(~3, ~0x10, ~1), "[i+1]o,d", F_ALIAS, v9 },
-{ "lduwa", F3(3, 0x10, 1), F3(~3, ~0x10, ~1)|RS1_G0, "[i]o,d", F_ALIAS, v9 },
-{ "lduwa", F3(3, 0x10, 1), F3(~3, ~0x10, ~1)|SIMM13(~0), "[1]o,d", F_ALIAS, v9 }, /* ld [rs1+0],d */
-
-{ "ldxa", F3(3, 0x1b, 0), F3(~3, ~0x1b, ~0), "[1+2]A,d", 0, v9 }, /* lduwa === lda */
-{ "ldxa", F3(3, 0x1b, 0), F3(~3, ~0x1b, ~0)|RS2_G0, "[1]A,d", 0, v9 }, /* lda [rs1+%g0],d */
-{ "ldxa", F3(3, 0x1b, 1), F3(~3, ~0x1b, ~1), "[1+i]o,d", 0, v9 },
-{ "ldxa", F3(3, 0x1b, 1), F3(~3, ~0x1b, ~1), "[i+1]o,d", 0, v9 },
-{ "ldxa", F3(3, 0x1b, 1), F3(~3, ~0x1b, ~1)|RS1_G0, "[i]o,d", 0, v9 },
-{ "ldxa", F3(3, 0x1b, 1), F3(~3, ~0x1b, ~1)|SIMM13(~0), "[1]o,d", 0, v9 }, /* ld [rs1+0],d */
-
-{ "st", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|ASI(~0), "d,[1+2]", 0, v6 },
-{ "st", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|ASI_RS2(~0), "d,[1]", 0, v6 }, /* st d,[rs1+%g0] */
-{ "st", F3(3, 0x04, 1), F3(~3, ~0x04, ~1), "d,[1+i]", 0, v6 },
-{ "st", F3(3, 0x04, 1), F3(~3, ~0x04, ~1), "d,[i+1]", 0, v6 },
-{ "st", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|RS1_G0, "d,[i]", 0, v6 },
-{ "st", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|SIMM13(~0), "d,[1]", 0, v6 }, /* st d,[rs1+0] */
-{ "st", F3(3, 0x24, 0), F3(~3, ~0x24, ~0)|ASI(~0), "g,[1+2]", 0, v6 },
-{ "st", F3(3, 0x24, 0), F3(~3, ~0x24, ~0)|ASI_RS2(~0), "g,[1]", 0, v6 }, /* st d[rs1+%g0] */
-{ "st", F3(3, 0x24, 1), F3(~3, ~0x24, ~1), "g,[1+i]", 0, v6 },
-{ "st", F3(3, 0x24, 1), F3(~3, ~0x24, ~1), "g,[i+1]", 0, v6 },
-{ "st", F3(3, 0x24, 1), F3(~3, ~0x24, ~1)|RS1_G0, "g,[i]", 0, v6 },
-{ "st", F3(3, 0x24, 1), F3(~3, ~0x24, ~1)|SIMM13(~0), "g,[1]", 0, v6 }, /* st d,[rs1+0] */
-/* FIXME These are marked F_ALIAS, so that they won't conflict with new v9
- insns when v9 is present. Otherwise, the F_ALIAS flag is ignored. */
-{ "st", F3(3, 0x34, 0), F3(~3, ~0x34, ~0)|ASI(~0), "D,[1+2]", F_ALIAS, v6 },
-{ "st", F3(3, 0x34, 0), F3(~3, ~0x34, ~0)|ASI_RS2(~0), "D,[1]", F_ALIAS, v6 }, /* st d,[rs1+%g0] */
-{ "st", F3(3, 0x34, 1), F3(~3, ~0x34, ~1), "D,[1+i]", F_ALIAS, v6 },
-{ "st", F3(3, 0x34, 1), F3(~3, ~0x34, ~1), "D,[i+1]", F_ALIAS, v6 },
-{ "st", F3(3, 0x34, 1), F3(~3, ~0x34, ~1)|RS1_G0, "D,[i]", F_ALIAS, v6 },
-{ "st", F3(3, 0x34, 1), F3(~3, ~0x34, ~1)|SIMM13(~0), "D,[1]", F_ALIAS, v6 }, /* st d,[rs1+0] */
-{ "st", F3(3, 0x35, 0), F3(~3, ~0x35, ~0)|ASI(~0), "C,[1+2]", 0, v6 },
-{ "st", F3(3, 0x35, 0), F3(~3, ~0x35, ~0)|ASI_RS2(~0), "C,[1]", 0, v6 }, /* st d,[rs1+%g0] */
-{ "st", F3(3, 0x35, 1), F3(~3, ~0x35, ~1), "C,[1+i]", 0, v6 },
-{ "st", F3(3, 0x35, 1), F3(~3, ~0x35, ~1), "C,[i+1]", 0, v6 },
-{ "st", F3(3, 0x35, 1), F3(~3, ~0x35, ~1)|RS1_G0, "C,[i]", 0, v6 },
-{ "st", F3(3, 0x35, 1), F3(~3, ~0x35, ~1)|SIMM13(~0), "C,[1]", 0, v6 }, /* st d,[rs1+0] */
-
-{ "st", F3(3, 0x25, 0), F3(~3, ~0x25, ~0)|RD_G0|ASI(~0), "F,[1+2]", 0, v6 },
-{ "st", F3(3, 0x25, 0), F3(~3, ~0x25, ~0)|RD_G0|ASI_RS2(~0), "F,[1]", 0, v6 }, /* st d,[rs1+%g0] */
-{ "st", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|RD_G0, "F,[1+i]", 0, v6 },
-{ "st", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|RD_G0, "F,[i+1]", 0, v6 },
-{ "st", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|RD_G0|RS1_G0, "F,[i]", 0, v6 },
-{ "st", F3(3, 0x25, 1), F3(~3, ~0x25, ~1)|RD_G0|SIMM13(~0), "F,[1]", 0, v6 }, /* st d,[rs1+0] */
-
- /* The v9 STW/STUW/STSW are the same as the old 'st' opcode, they are not
- the same as the 'st' psuedo-op in v9. */
-{ "stw", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|ASI(~0), "d,[1+2]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|ASI_RS2(~0), "d,[1]", F_ALIAS, v9 }, /* st d,[rs1+%g0] */
-{ "stw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1), "d,[1+i]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1), "d,[i+1]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|RS1_G0, "d,[i]", F_ALIAS, v9 },
-{ "stw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|SIMM13(~0), "d,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-
-{ "stuw", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|ASI(~0), "d,[1+2]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|ASI_RS2(~0), "d,[1]", F_ALIAS, v9 }, /* st d,[rs1+%g0] */
-{ "stuw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1), "d,[1+i]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1), "d,[i+1]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|RS1_G0, "d,[i]", F_ALIAS, v9 },
-{ "stuw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|SIMM13(~0), "d,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-
-{ "stsw", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|ASI(~0), "d,[1+2]", F_ALIAS, v9 }, /* stsw === st */
-{ "stsw", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|ASI_RS2(~0), "d,[1]", F_ALIAS, v9 }, /* st d,[rs1+%g0] */
-{ "stsw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1), "d,[1+i]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1), "d,[i+1]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|RS1_G0, "d,[i]", F_ALIAS, v9 },
-{ "stsw", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|SIMM13(~0), "d,[1]", F_ALIAS, v9 }, /* st d,[rs1+0] */
-
-{ "sta", F3(3, 0x14, 0), F3(~3, ~0x14, ~0), "d,[1+2]A", 0, v6 },
-{ "sta", F3(3, 0x14, 0), F3(~3, ~0x14, ~0)|RS2(~0), "d,[1]A", 0, v6 }, /* sta d,[rs1+%g0] */
-{ "sta", F3(3, 0x14, 1), F3(~3, ~0x14, ~1), "d,[1+i]o", 0, v9 },
-{ "sta", F3(3, 0x14, 1), F3(~3, ~0x14, ~1), "d,[i+1]o", 0, v9 },
-{ "sta", F3(3, 0x14, 1), F3(~3, ~0x14, ~1)|RS1_G0, "d,[i]o", 0, v9 },
-{ "sta", F3(3, 0x14, 1), F3(~3, ~0x14, ~1)|SIMM13(~0), "d,[1]o", 0, v9 }, /* st d,[rs1+0] */
-
-{ "sta", F3(3, 0x34, 0), F3(~3, ~0x34, ~0), "g,[1+2]A", 0, v9 },
-{ "sta", F3(3, 0x34, 0), F3(~3, ~0x34, ~0)|RS2(~0), "g,[1]A", 0, v9 }, /* sta d,[rs1+%g0] */
-{ "sta", F3(3, 0x34, 1), F3(~3, ~0x34, ~1), "g,[1+i]o", 0, v9 },
-{ "sta", F3(3, 0x34, 1), F3(~3, ~0x34, ~1), "g,[i+1]o", 0, v9 },
-{ "sta", F3(3, 0x34, 1), F3(~3, ~0x34, ~1)|RS1_G0, "g,[i]o", 0, v9 },
-{ "sta", F3(3, 0x34, 1), F3(~3, ~0x34, ~1)|SIMM13(~0), "g,[1]o", 0, v9 }, /* st d,[rs1+0] */
-
-{ "stwa", F3(3, 0x14, 0), F3(~3, ~0x14, ~0), "d,[1+2]A", F_ALIAS, v9 },
-{ "stwa", F3(3, 0x14, 0), F3(~3, ~0x14, ~0)|RS2(~0), "d,[1]A", F_ALIAS, v9 }, /* sta d,[rs1+%g0] */
-{ "stwa", F3(3, 0x14, 1), F3(~3, ~0x14, ~1), "d,[1+i]o", F_ALIAS, v9 },
-{ "stwa", F3(3, 0x14, 1), F3(~3, ~0x14, ~1), "d,[i+1]o", F_ALIAS, v9 },
-{ "stwa", F3(3, 0x14, 1), F3(~3, ~0x14, ~1)|RS1_G0, "d,[i]o", F_ALIAS, v9 },
-{ "stwa", F3(3, 0x14, 1), F3(~3, ~0x14, ~1)|SIMM13(~0), "d,[1]o", F_ALIAS, v9 }, /* st d,[rs1+0] */
-
-{ "stswa", F3(3, 0x14, 0), F3(~3, ~0x14, ~0), "d,[1+2]A", F_ALIAS, v9 },
-{ "stswa", F3(3, 0x14, 0), F3(~3, ~0x14, ~0)|RS2(~0), "d,[1]A", F_ALIAS, v9 }, /* sta d,[rs1+%g0] */
-{ "stswa", F3(3, 0x14, 1), F3(~3, ~0x14, ~1), "d,[1+i]o", F_ALIAS, v9 },
-{ "stswa", F3(3, 0x14, 1), F3(~3, ~0x14, ~1), "d,[i+1]o", F_ALIAS, v9 },
-{ "stswa", F3(3, 0x14, 1), F3(~3, ~0x14, ~1)|RS1_G0, "d,[i]o", F_ALIAS, v9 },
-{ "stswa", F3(3, 0x14, 1), F3(~3, ~0x14, ~1)|SIMM13(~0), "d,[1]o", F_ALIAS, v9 }, /* st d,[rs1+0] */
-
-{ "stuwa", F3(3, 0x14, 0), F3(~3, ~0x14, ~0), "d,[1+2]A", F_ALIAS, v9 },
-{ "stuwa", F3(3, 0x14, 0), F3(~3, ~0x14, ~0)|RS2(~0), "d,[1]A", F_ALIAS, v9 }, /* sta d,[rs1+%g0] */
-{ "stuwa", F3(3, 0x14, 1), F3(~3, ~0x14, ~1), "d,[1+i]o", F_ALIAS, v9 },
-{ "stuwa", F3(3, 0x14, 1), F3(~3, ~0x14, ~1), "d,[i+1]o", F_ALIAS, v9 },
-{ "stuwa", F3(3, 0x14, 1), F3(~3, ~0x14, ~1)|RS1_G0, "d,[i]o", F_ALIAS, v9 },
-{ "stuwa", F3(3, 0x14, 1), F3(~3, ~0x14, ~1)|SIMM13(~0), "d,[1]o", F_ALIAS, v9 }, /* st d,[rs1+0] */
-
-{ "stb", F3(3, 0x05, 0), F3(~3, ~0x05, ~0)|ASI(~0), "d,[1+2]", 0, v6 },
-{ "stb", F3(3, 0x05, 0), F3(~3, ~0x05, ~0)|ASI_RS2(~0), "d,[1]", 0, v6 }, /* stb d,[rs1+%g0] */
-{ "stb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1), "d,[1+i]", 0, v6 },
-{ "stb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1), "d,[i+1]", 0, v6 },
-{ "stb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|RS1_G0, "d,[i]", 0, v6 },
-{ "stb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|SIMM13(~0), "d,[1]", 0, v6 }, /* stb d,[rs1+0] */
-
-{ "stub", F3(3, 0x05, 0), F3(~3, ~0x05, ~0)|ASI(~0), "d,[1+2]", F_ALIAS, v9 },
-{ "stub", F3(3, 0x05, 0), F3(~3, ~0x05, ~0)|ASI_RS2(~0), "d,[1]", F_ALIAS, v9 }, /* stb d,[rs1+%g0] */
-{ "stub", F3(3, 0x05, 1), F3(~3, ~0x05, ~1), "d,[1+i]", F_ALIAS, v9 },
-{ "stub", F3(3, 0x05, 1), F3(~3, ~0x05, ~1), "d,[i+1]", F_ALIAS, v9 },
-{ "stub", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|RS1_G0, "d,[i]", F_ALIAS, v9 },
-{ "stub", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|SIMM13(~0), "d,[1]", F_ALIAS, v9 }, /* stb d,[rs1+0] */
-
-{ "stsb", F3(3, 0x05, 0), F3(~3, ~0x05, ~0)|ASI(~0), "d,[1+2]", F_ALIAS, v9 },
-{ "stsb", F3(3, 0x05, 0), F3(~3, ~0x05, ~0)|ASI_RS2(~0), "d,[1]", F_ALIAS, v9 }, /* stb d,[rs1+%g0] */
-{ "stsb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1), "d,[1+i]", F_ALIAS, v9 },
-{ "stsb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1), "d,[i+1]", F_ALIAS, v9 },
-{ "stsb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|RS1_G0, "d,[i]", F_ALIAS, v9 },
-{ "stsb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|SIMM13(~0), "d,[1]", F_ALIAS, v9 }, /* stb d,[rs1+0] */
-
-{ "stba", F3(3, 0x15, 0), F3(~3, ~0x15, ~0), "d,[1+2]A", 0, v6 },
-{ "stba", F3(3, 0x15, 0), F3(~3, ~0x15, ~0)|RS2(~0), "d,[1]A", 0, v6 }, /* stba d,[rs1+%g0] */
-{ "stba", F3(3, 0x15, 1), F3(~3, ~0x15, ~1), "d,[1+i]o", 0, v9 },
-{ "stba", F3(3, 0x15, 1), F3(~3, ~0x15, ~1), "d,[i+1]o", 0, v9 },
-{ "stba", F3(3, 0x15, 1), F3(~3, ~0x15, ~1)|RS1_G0, "d,[i]o", 0, v9 },
-{ "stba", F3(3, 0x15, 1), F3(~3, ~0x15, ~1)|SIMM13(~0), "d,[1]o", 0, v9 }, /* stb d,[rs1+0] */
-
-{ "stsba", F3(3, 0x15, 0), F3(~3, ~0x15, ~0), "d,[1+2]A", F_ALIAS, v9 },
-{ "stsba", F3(3, 0x15, 0), F3(~3, ~0x15, ~0)|RS2(~0), "d,[1]A", F_ALIAS, v9 }, /* stba d,[rs1+%g0] */
-{ "stsba", F3(3, 0x15, 1), F3(~3, ~0x15, ~1), "d,[1+i]o", F_ALIAS, v9 },
-{ "stsba", F3(3, 0x15, 1), F3(~3, ~0x15, ~1), "d,[i+1]o", F_ALIAS, v9 },
-{ "stsba", F3(3, 0x15, 1), F3(~3, ~0x15, ~1)|RS1_G0, "d,[i]o", F_ALIAS, v9 },
-{ "stsba", F3(3, 0x15, 1), F3(~3, ~0x15, ~1)|SIMM13(~0), "d,[1]o", F_ALIAS, v9 }, /* stb d,[rs1+0] */
-
-{ "stuba", F3(3, 0x15, 0), F3(~3, ~0x15, ~0), "d,[1+2]A", F_ALIAS, v9 },
-{ "stuba", F3(3, 0x15, 0), F3(~3, ~0x15, ~0)|RS2(~0), "d,[1]A", F_ALIAS, v9 }, /* stba d,[rs1+%g0] */
-{ "stuba", F3(3, 0x15, 1), F3(~3, ~0x15, ~1), "d,[1+i]o", F_ALIAS, v9 },
-{ "stuba", F3(3, 0x15, 1), F3(~3, ~0x15, ~1), "d,[i+1]o", F_ALIAS, v9 },
-{ "stuba", F3(3, 0x15, 1), F3(~3, ~0x15, ~1)|RS1_G0, "d,[i]o", F_ALIAS, v9 },
-{ "stuba", F3(3, 0x15, 1), F3(~3, ~0x15, ~1)|SIMM13(~0), "d,[1]o", F_ALIAS, v9 }, /* stb d,[rs1+0] */
-
-{ "std", F3(3, 0x07, 0), F3(~3, ~0x07, ~0)|ASI(~0), "d,[1+2]", 0, v6 },
-{ "std", F3(3, 0x07, 0), F3(~3, ~0x07, ~0)|ASI_RS2(~0), "d,[1]", 0, v6 }, /* std d,[rs1+%g0] */
-{ "std", F3(3, 0x07, 1), F3(~3, ~0x07, ~1), "d,[1+i]", 0, v6 },
-{ "std", F3(3, 0x07, 1), F3(~3, ~0x07, ~1), "d,[i+1]", 0, v6 },
-{ "std", F3(3, 0x07, 1), F3(~3, ~0x07, ~1)|RS1_G0, "d,[i]", 0, v6 },
-{ "std", F3(3, 0x07, 1), F3(~3, ~0x07, ~1)|SIMM13(~0), "d,[1]", 0, v6 }, /* std d,[rs1+0] */
-/* FIXME These are marked F_ALIAS, so that they won't conflict with new v9
- insns when v9 is present. Otherwise, the F_ALIAS flag is ignored. */
-{ "std", F3(3, 0x26, 0), F3(~3, ~0x26, ~0)|ASI(~0), "q,[1+2]", F_ALIAS, v6 },
-{ "std", F3(3, 0x26, 0), F3(~3, ~0x26, ~0)|ASI_RS2(~0), "q,[1]", F_ALIAS, v6 }, /* std d,[rs1+%g0] */
-{ "std", F3(3, 0x26, 1), F3(~3, ~0x26, ~1), "q,[1+i]", F_ALIAS, v6 },
-{ "std", F3(3, 0x26, 1), F3(~3, ~0x26, ~1), "q,[i+1]", F_ALIAS, v6 },
-{ "std", F3(3, 0x26, 1), F3(~3, ~0x26, ~1)|RS1_G0, "q,[i]", F_ALIAS, v6 },
-{ "std", F3(3, 0x26, 1), F3(~3, ~0x26, ~1)|SIMM13(~0), "q,[1]", F_ALIAS, v6 }, /* std d,[rs1+0] */
-{ "std", F3(3, 0x27, 0), F3(~3, ~0x27, ~0)|ASI(~0), "H,[1+2]", 0, v6 },
-{ "std", F3(3, 0x27, 0), F3(~3, ~0x27, ~0)|ASI_RS2(~0), "H,[1]", 0, v6 }, /* std d,[rs1+%g0] */
-{ "std", F3(3, 0x27, 1), F3(~3, ~0x27, ~1), "H,[1+i]", 0, v6 },
-{ "std", F3(3, 0x27, 1), F3(~3, ~0x27, ~1), "H,[i+1]", 0, v6 },
-{ "std", F3(3, 0x27, 1), F3(~3, ~0x27, ~1)|RS1_G0, "H,[i]", 0, v6 },
-{ "std", F3(3, 0x27, 1), F3(~3, ~0x27, ~1)|SIMM13(~0), "H,[1]", 0, v6 }, /* std d,[rs1+0] */
-/* FIXME These are marked F_ALIAS, so that they won't conflict with new v9
- insns when v9 is present. Otherwise, the F_ALIAS flag is ignored. */
-{ "std", F3(3, 0x36, 0), F3(~3, ~0x36, ~0)|ASI(~0), "Q,[1+2]", F_ALIAS, v6 },
-{ "std", F3(3, 0x36, 0), F3(~3, ~0x36, ~0)|ASI_RS2(~0), "Q,[1]", F_ALIAS, v6 }, /* std d,[rs1+%g0] */
-{ "std", F3(3, 0x36, 1), F3(~3, ~0x36, ~1), "Q,[1+i]", F_ALIAS, v6 },
-{ "std", F3(3, 0x36, 1), F3(~3, ~0x36, ~1), "Q,[i+1]", F_ALIAS, v6 },
-{ "std", F3(3, 0x36, 1), F3(~3, ~0x36, ~1)|RS1_G0, "Q,[i]", F_ALIAS, v6 },
-{ "std", F3(3, 0x36, 1), F3(~3, ~0x36, ~1)|SIMM13(~0), "Q,[1]", F_ALIAS, v6 }, /* std d,[rs1+0] */
-/* FIXME These are marked F_ALIAS, so that they won't conflict with new v9
- insns when v9 is present. Otherwise, the F_ALIAS flag is ignored. */
-{ "std", F3(3, 0x37, 0), F3(~3, ~0x37, ~0)|ASI(~0), "D,[1+2]", F_ALIAS, v6 },
-{ "std", F3(3, 0x37, 0), F3(~3, ~0x37, ~0)|ASI_RS2(~0), "D,[1]", F_ALIAS, v6 }, /* std d,[rs1+%g0] */
-{ "std", F3(3, 0x37, 1), F3(~3, ~0x37, ~1), "D,[1+i]", F_ALIAS, v6 },
-{ "std", F3(3, 0x37, 1), F3(~3, ~0x37, ~1), "D,[i+1]", F_ALIAS, v6 },
-{ "std", F3(3, 0x37, 1), F3(~3, ~0x37, ~1)|RS1_G0, "D,[i]", F_ALIAS, v6 },
-{ "std", F3(3, 0x37, 1), F3(~3, ~0x37, ~1)|SIMM13(~0), "D,[1]", F_ALIAS, v6 }, /* std d,[rs1+0] */
-
-{ "stda", F3(3, 0x17, 0), F3(~3, ~0x17, ~0), "d,[1+2]A", 0, v6 },
-{ "stda", F3(3, 0x17, 0), F3(~3, ~0x17, ~0)|RS2(~0), "d,[1]A", 0, v6 }, /* stda d,[rs1+%g0] */
-{ "stda", F3(3, 0x17, 1), F3(~3, ~0x17, ~1), "d,[1+i]o", 0, v9 },
-{ "stda", F3(3, 0x17, 1), F3(~3, ~0x17, ~1), "d,[i+1]o", 0, v9 },
-{ "stda", F3(3, 0x17, 1), F3(~3, ~0x17, ~1)|RS1_G0, "d,[i]o", 0, v9 },
-{ "stda", F3(3, 0x17, 1), F3(~3, ~0x17, ~1)|SIMM13(~0), "d,[1]o", 0, v9 }, /* std d,[rs1+0] */
-{ "stda", F3(3, 0x37, 0), F3(~3, ~0x37, ~0), "H,[1+2]A", 0, v9 },
-{ "stda", F3(3, 0x37, 0), F3(~3, ~0x37, ~0)|RS2(~0), "H,[1]A", 0, v9 }, /* stda d,[rs1+%g0] */
-{ "stda", F3(3, 0x37, 1), F3(~3, ~0x37, ~1), "H,[1+i]o", 0, v9 },
-{ "stda", F3(3, 0x37, 1), F3(~3, ~0x37, ~1), "H,[i+1]o", 0, v9 },
-{ "stda", F3(3, 0x37, 1), F3(~3, ~0x37, ~1)|RS1_G0, "H,[i]o", 0, v9 },
-{ "stda", F3(3, 0x37, 1), F3(~3, ~0x37, ~1)|SIMM13(~0), "H,[1]o", 0, v9 }, /* std d,[rs1+0] */
-
-{ "sth", F3(3, 0x06, 0), F3(~3, ~0x06, ~0)|ASI(~0), "d,[1+2]", 0, v6 },
-{ "sth", F3(3, 0x06, 0), F3(~3, ~0x06, ~0)|ASI_RS2(~0), "d,[1]", 0, v6 }, /* sth d,[rs1+%g0] */
-{ "sth", F3(3, 0x06, 1), F3(~3, ~0x06, ~1), "d,[1+i]", 0, v6 },
-{ "sth", F3(3, 0x06, 1), F3(~3, ~0x06, ~1), "d,[i+1]", 0, v6 },
-{ "sth", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|RS1_G0, "d,[i]", 0, v6 },
-{ "sth", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|SIMM13(~0), "d,[1]", 0, v6 }, /* sth d,[+] */
-
-{ "stsh", F3(3, 0x06, 0), F3(~3, ~0x06, ~0)|ASI(~0), "d,[1+2]", F_ALIAS, v9 },
-{ "stsh", F3(3, 0x06, 0), F3(~3, ~0x06, ~0)|ASI_RS2(~0), "d,[1]", F_ALIAS, v9 }, /* sth d,[rs1+%g0] */
-{ "stsh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1), "d,[1+i]", F_ALIAS, v9 },
-{ "stsh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1), "d,[i+1]", F_ALIAS, v9 },
-{ "stsh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|RS1_G0, "d,[i]", F_ALIAS, v9 },
-{ "stsh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|SIMM13(~0), "d,[1]", F_ALIAS, v9 }, /* sth d,[rs1+0] */
-
-{ "stuh", F3(3, 0x06, 0), F3(~3, ~0x06, ~0)|ASI(~0), "d,[1+2]", F_ALIAS, v9 },
-{ "stuh", F3(3, 0x06, 0), F3(~3, ~0x06, ~0)|ASI_RS2(~0), "d,[1]", F_ALIAS, v9 }, /* sth d,[rs1+%g0] */
-{ "stuh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1), "d,[1+i]", F_ALIAS, v9 },
-{ "stuh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1), "d,[i+1]", F_ALIAS, v9 },
-{ "stuh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|RS1_G0, "d,[i]", F_ALIAS, v9 },
-{ "stuh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|SIMM13(~0), "d,[1]", F_ALIAS, v9 }, /* sth d,[rs1+0] */
-
-{ "stha", F3(3, 0x16, 0), F3(~3, ~0x16, ~0), "d,[1+2]A", 0, v6 },
-{ "stha", F3(3, 0x16, 0), F3(~3, ~0x16, ~0)|RS2(~0), "d,[1]A", 0, v6 }, /* stha ,[+%] */
-{ "stha", F3(3, 0x16, 1), F3(~3, ~0x16, ~1), "d,[1+i]o", 0, v9 },
-{ "stha", F3(3, 0x16, 1), F3(~3, ~0x16, ~1), "d,[i+1]o", 0, v9 },
-{ "stha", F3(3, 0x16, 1), F3(~3, ~0x16, ~1)|RS1_G0, "d,[i]o", 0, v9 },
-{ "stha", F3(3, 0x16, 1), F3(~3, ~0x16, ~1)|SIMM13(~0), "d,[1]o", 0, v9 }, /* sth d,[+] */
-
-{ "stsha", F3(3, 0x16, 0), F3(~3, ~0x16, ~0), "d,[1+2]A", F_ALIAS, v9 },
-{ "stsha", F3(3, 0x16, 0), F3(~3, ~0x16, ~0)|RS2(~0), "d,[1]A", F_ALIAS, v9 }, /* stha d,[rs1+%g0] */
-{ "stsha", F3(3, 0x16, 1), F3(~3, ~0x16, ~1), "d,[1+i]o", F_ALIAS, v9 },
-{ "stsha", F3(3, 0x16, 1), F3(~3, ~0x16, ~1), "d,[i+1]o", F_ALIAS, v9 },
-{ "stsha", F3(3, 0x16, 1), F3(~3, ~0x16, ~1)|RS1_G0, "d,[i]o", F_ALIAS, v9 },
-{ "stsha", F3(3, 0x16, 1), F3(~3, ~0x16, ~1)|SIMM13(~0), "d,[1]o", F_ALIAS, v9 }, /* sth d,[+] */
-
-{ "stuha", F3(3, 0x16, 0), F3(~3, ~0x16, ~0), "d,[1+2]A", F_ALIAS, v9 },
-{ "stuha", F3(3, 0x16, 0), F3(~3, ~0x16, ~0)|RS2(~0), "d,[1]A", F_ALIAS, v9 }, /* stha d,[rs1+%g0] */
-{ "stuha", F3(3, 0x16, 1), F3(~3, ~0x16, ~1), "d,[1+i]o", F_ALIAS, v9 },
-{ "stuha", F3(3, 0x16, 1), F3(~3, ~0x16, ~1), "d,[i+1]o", F_ALIAS, v9 },
-{ "stuha", F3(3, 0x16, 1), F3(~3, ~0x16, ~1)|RS1_G0, "d,[i]o", F_ALIAS, v9 },
-{ "stuha", F3(3, 0x16, 1), F3(~3, ~0x16, ~1)|SIMM13(~0), "d,[1]o", F_ALIAS, v9 }, /* sth d,[+] */
-
-{ "stx", F3(3, 0x0e, 0), F3(~3, ~0x0e, ~0)|ASI(~0), "d,[1+2]", 0, v9 },
-{ "stx", F3(3, 0x0e, 0), F3(~3, ~0x0e, ~0)|ASI_RS2(~0), "d,[1]", 0, v9 }, /* stx d,[rs1+%g0] */
-{ "stx", F3(3, 0x0e, 1), F3(~3, ~0x0e, ~1), "d,[1+i]", 0, v9 },
-{ "stx", F3(3, 0x0e, 1), F3(~3, ~0x0e, ~1), "d,[i+1]", 0, v9 },
-{ "stx", F3(3, 0x0e, 1), F3(~3, ~0x0e, ~1)|RS1_G0, "d,[i]", 0, v9 },
-{ "stx", F3(3, 0x0e, 1), F3(~3, ~0x0e, ~1)|SIMM13(~0), "d,[1]", 0, v9 }, /* stx d,[rs1+0] */
-
-{ "stx", F3(3, 0x25, 0)|RD(1), F3(~3, ~0x25, ~0)|ASI(~0)|RD(~1), "F,[1+2]", 0, v9 },
-{ "stx", F3(3, 0x25, 0)|RD(1), F3(~3, ~0x25, ~0)|ASI_RS2(~0)|RD(~1),"F,[1]", 0, v9 }, /* st d,[rs1+%g0] */
-{ "stx", F3(3, 0x25, 1)|RD(1), F3(~3, ~0x25, ~1)|RD(~1), "F,[1+i]", 0, v9 },
-{ "stx", F3(3, 0x25, 1)|RD(1), F3(~3, ~0x25, ~1)|RD(~1), "F,[i+1]", 0, v9 },
-{ "stx", F3(3, 0x25, 1)|RD(1), F3(~3, ~0x25, ~1)|RS1_G0|RD(~1), "F,[i]", 0, v9 },
-{ "stx", F3(3, 0x25, 1)|RD(1), F3(~3, ~0x25, ~1)|SIMM13(~0)|RD(~1),"F,[1]", 0, v9 }, /* st d,[rs1+0] */
-
-{ "stxa", F3(3, 0x1e, 0), F3(~3, ~0x1e, ~0), "d,[1+2]A", 0, v9 },
-{ "stxa", F3(3, 0x1e, 0), F3(~3, ~0x1e, ~0)|RS2(~0), "d,[1]A", 0, v9 }, /* stha d,[rs1+%g0] */
-{ "stxa", F3(3, 0x1e, 1), F3(~3, ~0x1e, ~1), "d,[1+i]o", 0, v9 },
-{ "stxa", F3(3, 0x1e, 1), F3(~3, ~0x1e, ~1), "d,[i+1]o", 0, v9 },
-{ "stxa", F3(3, 0x1e, 1), F3(~3, ~0x1e, ~1)|RS1_G0, "d,[i]o", 0, v9 },
-{ "stxa", F3(3, 0x1e, 1), F3(~3, ~0x1e, ~1)|SIMM13(~0), "d,[1]o", 0, v9 }, /* stx d,[rs1+0] */
-
-{ "stq", F3(3, 0x26, 0), F3(~3, ~0x26, ~0)|ASI(~0), "J,[1+2]", 0, v9 },
-{ "stq", F3(3, 0x26, 0), F3(~3, ~0x26, ~0)|ASI_RS2(~0), "J,[1]", 0, v9 }, /* st d[rs1+%g0] */
-{ "stq", F3(3, 0x26, 1), F3(~3, ~0x26, ~1), "J,[1+i]", 0, v9 },
-{ "stq", F3(3, 0x26, 1), F3(~3, ~0x26, ~1), "J,[i+1]", 0, v9 },
-{ "stq", F3(3, 0x26, 1), F3(~3, ~0x26, ~1)|RS1_G0, "J,[i]", 0, v9 },
-{ "stq", F3(3, 0x26, 1), F3(~3, ~0x26, ~1)|SIMM13(~0), "J,[1]", 0, v9 }, /* st d,[rs1+0] */
-
-{ "stqa", F3(3, 0x36, 0), F3(~3, ~0x36, ~0)|ASI(~0), "J,[1+2]A", 0, v9 },
-{ "stqa", F3(3, 0x36, 0), F3(~3, ~0x36, ~0)|ASI_RS2(~0), "J,[1]A", 0, v9 }, /* st d[rs1+%g0] */
-{ "stqa", F3(3, 0x36, 1), F3(~3, ~0x36, ~1), "J,[1+i]o", 0, v9 },
-{ "stqa", F3(3, 0x36, 1), F3(~3, ~0x36, ~1), "J,[i+1]o", 0, v9 },
-{ "stqa", F3(3, 0x36, 1), F3(~3, ~0x36, ~1)|RS1_G0, "J,[i]o", 0, v9 },
-{ "stqa", F3(3, 0x36, 1), F3(~3, ~0x36, ~1)|SIMM13(~0), "J,[1]o", 0, v9 }, /* st d,[rs1+0] */
-
-{ "swap", F3(3, 0x0f, 0), F3(~3, ~0x0f, ~0)|ASI(~0), "[1+2],d", 0, v7 },
-{ "swap", F3(3, 0x0f, 0), F3(~3, ~0x0f, ~0)|ASI_RS2(~0), "[1],d", 0, v7 }, /* swap [rs1+%g0],d */
-{ "swap", F3(3, 0x0f, 1), F3(~3, ~0x0f, ~1), "[1+i],d", 0, v7 },
-{ "swap", F3(3, 0x0f, 1), F3(~3, ~0x0f, ~1), "[i+1],d", 0, v7 },
-{ "swap", F3(3, 0x0f, 1), F3(~3, ~0x0f, ~1)|RS1_G0, "[i],d", 0, v7 },
-{ "swap", F3(3, 0x0f, 1), F3(~3, ~0x0f, ~1)|SIMM13(~0), "[1],d", 0, v7 }, /* swap [rs1+0],d */
-
-{ "swapa", F3(3, 0x1f, 0), F3(~3, ~0x1f, ~0), "[1+2]A,d", 0, v7 },
-{ "swapa", F3(3, 0x1f, 0), F3(~3, ~0x1f, ~0)|RS2(~0), "[1]A,d", 0, v7 }, /* swapa [rs1+%g0],d */
-{ "swapa", F3(3, 0x1f, 1), F3(~3, ~0x1f, ~1), "[1+i]o,d", 0, v9 },
-{ "swapa", F3(3, 0x1f, 1), F3(~3, ~0x1f, ~1), "[i+1]o,d", 0, v9 },
-{ "swapa", F3(3, 0x1f, 1), F3(~3, ~0x1f, ~1)|RS1_G0, "[i]o,d", 0, v9 },
-{ "swapa", F3(3, 0x1f, 1), F3(~3, ~0x1f, ~1)|SIMM13(~0), "[1]o,d", 0, v9 }, /* swap [rs1+0],d */
-
-{ "restore", F3(2, 0x3d, 0), F3(~2, ~0x3d, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "restore", F3(2, 0x3d, 0), F3(~2, ~0x3d, ~0)|RD_G0|RS1_G0|ASI_RS2(~0), "", 0, v6 }, /* restore %g0,%g0,%g0 */
-{ "restore", F3(2, 0x3d, 1), F3(~2, ~0x3d, ~1), "1,i,d", 0, v6 },
-{ "restore", F3(2, 0x3d, 1), F3(~2, ~0x3d, ~1)|RD_G0|RS1_G0|SIMM13(~0), "", 0, v6 }, /* restore %g0,0,%g0 */
-
-{ "rett", F3(2, 0x39, 0), F3(~2, ~0x39, ~0)|RD_G0|ASI(~0), "1+2", F_DELAYED, v6 }, /* rett rs1+rs2 */
-{ "rett", F3(2, 0x39, 0), F3(~2, ~0x39, ~0)|RD_G0|ASI_RS2(~0), "1", F_DELAYED, v6 }, /* rett rs1,%g0 */
-{ "rett", F3(2, 0x39, 1), F3(~2, ~0x39, ~1)|RD_G0, "1+i", F_DELAYED, v6 }, /* rett rs1+X */
-{ "rett", F3(2, 0x39, 1), F3(~2, ~0x39, ~1)|RD_G0, "i+1", F_DELAYED, v6 }, /* rett X+rs1 */
-{ "rett", F3(2, 0x39, 1), F3(~2, ~0x39, ~1)|RD_G0|RS1_G0,"i", F_DELAYED, v6 }, /* rett X+rs1 */
-{ "rett", F3(2, 0x39, 1), F3(~2, ~0x39, ~1)|RD_G0|RS1_G0, "i", F_DELAYED, v6 }, /* rett X */
-{ "rett", F3(2, 0x39, 1), F3(~2, ~0x39, ~1)|RD_G0|SIMM13(~0), "1", F_DELAYED, v6 }, /* rett rs1+0 */
-
-{ "save", F3(2, 0x3c, 0), F3(~2, ~0x3c, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "save", F3(2, 0x3c, 1), F3(~2, ~0x3c, ~1), "1,i,d", 0, v6 },
-{ "save", 0x81e00000, ~0x81e00000, "", F_ALIAS, v6 },
-
-{ "ret", F3(2, 0x38, 1)|RS1(0x1f)|SIMM13(8), F3(~2, ~0x38, ~1)|SIMM13(~8), "", F_DELAYED, v6 }, /* jmpl %i7+8,%g0 */
-{ "retl", F3(2, 0x38, 1)|RS1(0x0f)|SIMM13(8), F3(~2, ~0x38, ~1)|RS1(~0x0f)|SIMM13(~8), "", F_DELAYED, v6 }, /* jmpl %o7+8,%g0 */
-
-{ "jmpl", F3(2, 0x38, 0), F3(~2, ~0x38, ~0)|ASI(~0), "1+2,d", F_DELAYED, v6 },
-{ "jmpl", F3(2, 0x38, 0), F3(~2, ~0x38, ~0)|ASI_RS2(~0), "1,d", F_DELAYED, v6 }, /* jmpl rs1+%g0,d */
-{ "jmpl", F3(2, 0x38, 1), F3(~2, ~0x38, ~1)|SIMM13(~0), "1,d", F_DELAYED, v6 }, /* jmpl rs1+0,d */
-{ "jmpl", F3(2, 0x38, 1), F3(~2, ~0x38, ~1)|RS1_G0, "i,d", F_DELAYED, v6 }, /* jmpl %g0+i,d */
-{ "jmpl", F3(2, 0x38, 1), F3(~2, ~0x38, ~1), "1+i,d", F_DELAYED, v6 },
-{ "jmpl", F3(2, 0x38, 1), F3(~2, ~0x38, ~1), "i+1,d", F_DELAYED, v6 },
-
-{ "done", F3(2, 0x3e, 1)|RD(0), F3(~2, ~0x3e, ~1)|RD(~0)|RS1_G0|SIMM13(~0), "", 0, v9 },
-{ "retry", F3(2, 0x3e, 1)|RD(1), F3(~2, ~0x3e, ~1)|RD(~1)|RS1_G0|SIMM13(~0), "", 0, v9 },
-{ "saved", F3(2, 0x31, 1)|RD(0), F3(~2, ~0x31, ~1)|RD(~0)|RS1_G0|SIMM13(~0), "", 0, v9 },
-{ "restored", F3(2, 0x31, 1)|RD(1), F3(~2, ~0x31, ~1)|RD(~1)|RS1_G0|SIMM13(~0), "", 0, v9 },
-{ "sigm", F3(2, 0x30, 0)|RD(0xf), F3(~2, ~0x30, ~0)|RD(~0xf)|RS1_G0|SIMM13(~0), "", 0, v9 },
-
-{ "flush", F3(2, 0x3b, 0), F3(~2, ~0x3b, ~0)|ASI(~0), "1+2", 0, v8 },
-{ "flush", F3(2, 0x3b, 0), F3(~2, ~0x3b, ~0)|ASI_RS2(~0), "1", 0, v8 }, /* flush rs1+%g0 */
-{ "flush", F3(2, 0x3b, 1), F3(~2, ~0x3b, ~1)|SIMM13(~0), "1", 0, v8 }, /* flush rs1+0 */
-{ "flush", F3(2, 0x3b, 1), F3(~2, ~0x3b, ~1)|RS1_G0, "i", 0, v8 }, /* flush %g0+i */
-{ "flush", F3(2, 0x3b, 1), F3(~2, ~0x3b, ~1), "1+i", 0, v8 },
-{ "flush", F3(2, 0x3b, 1), F3(~2, ~0x3b, ~1), "i+1", 0, v8 },
-
-/* IFLUSH was renamed to FLUSH in v8. */
-{ "iflush", F3(2, 0x3b, 0), F3(~2, ~0x3b, ~0)|ASI(~0), "1+2", F_ALIAS, v6 },
-{ "iflush", F3(2, 0x3b, 0), F3(~2, ~0x3b, ~0)|ASI_RS2(~0), "1", F_ALIAS, v6 }, /* flush rs1+%g0 */
-{ "iflush", F3(2, 0x3b, 1), F3(~2, ~0x3b, ~1)|SIMM13(~0), "1", F_ALIAS, v6 }, /* flush rs1+0 */
-{ "iflush", F3(2, 0x3b, 1), F3(~2, ~0x3b, ~1)|RS1_G0, "i", F_ALIAS, v6 },
-{ "iflush", F3(2, 0x3b, 1), F3(~2, ~0x3b, ~1), "1+i", F_ALIAS, v6 },
-{ "iflush", F3(2, 0x3b, 1), F3(~2, ~0x3b, ~1), "i+1", F_ALIAS, v6 },
-
-{ "return", F3(2, 0x39, 0), F3(~2, ~0x39, ~0)|ASI(~0), "1+2", 0, v9 },
-{ "return", F3(2, 0x39, 0), F3(~2, ~0x39, ~0)|ASI_RS2(~0), "1", 0, v9 }, /* return rs1+%g0 */
-{ "return", F3(2, 0x39, 1), F3(~2, ~0x39, ~1)|SIMM13(~0), "1", 0, v9 }, /* return rs1+0 */
-{ "return", F3(2, 0x39, 1), F3(~2, ~0x39, ~1)|RS1_G0, "i", 0, v9 }, /* return %g0+i */
-{ "return", F3(2, 0x39, 1), F3(~2, ~0x39, ~1), "1+i", 0, v9 },
-{ "return", F3(2, 0x39, 1), F3(~2, ~0x39, ~1), "i+1", 0, v9 },
-
-{ "flushw", F3(2, 0x2b, 0), F3(~2, ~0x2b, ~0)|RD_G0|RS1_G0|ASI_RS2(~0), "", 0, v9 },
-
-{ "membar", F3(2, 0x28, 1)|RS1(0xf), F3(~2, ~0x28, ~1)|RD_G0|RS1(~0xf)|ASI(~0), "K", 0, v9 },
-{ "stbar", F3(2, 0x28, 0)|RS1(0xf), F3(~2, ~0x28, ~0)|RD_G0|RS1(~0xf)|SIMM13(~0), "", 0, v8 },
-
-{ "prefetch", F3(3, 0x2d, 0), F3(~3, ~0x2d, ~0), "[1+2],*", 0, v9 },
-{ "prefetch", F3(3, 0x2d, 0), F3(~3, ~0x2d, ~0)|RS2_G0, "[1],*", 0, v9 }, /* prefetch [rs1+%g0],prefetch_fcn */
-{ "prefetch", F3(3, 0x2d, 1), F3(~3, ~0x2d, ~1), "[1+i],*", 0, v9 },
-{ "prefetch", F3(3, 0x2d, 1), F3(~3, ~0x2d, ~1), "[i+1],*", 0, v9 },
-{ "prefetch", F3(3, 0x2d, 1), F3(~3, ~0x2d, ~1)|RS1_G0, "[i],*", 0, v9 },
-{ "prefetch", F3(3, 0x2d, 1), F3(~3, ~0x2d, ~1)|SIMM13(~0), "[1],*", 0, v9 }, /* prefetch [rs1+0],prefetch_fcn */
-{ "prefetcha", F3(3, 0x3d, 0), F3(~3, ~0x3d, ~0), "[1+2]A,*", 0, v9 },
-{ "prefetcha", F3(3, 0x3d, 0), F3(~3, ~0x3d, ~0)|RS2_G0, "[1]A,*", 0, v9 }, /* prefetcha [rs1+%g0],prefetch_fcn */
-{ "prefetcha", F3(3, 0x3d, 1), F3(~3, ~0x3d, ~1), "[1+i]o,d", 0, v9 },
-{ "prefetcha", F3(3, 0x3d, 1), F3(~3, ~0x3d, ~1), "[i+1]o,d", 0, v9 },
-{ "prefetcha", F3(3, 0x3d, 1), F3(~3, ~0x3d, ~1)|RS1_G0, "[i]o,d", 0, v9 },
-{ "prefetcha", F3(3, 0x3d, 1), F3(~3, ~0x3d, ~1)|SIMM13(~0), "[1]o,d", 0, v9 }, /* prefetcha [rs1+0],d */
-
- /* The 1<<12 is a long story. It is necessary. For more info, please contact rich@cygnus.com */
-{ "sll", F3(2, 0x25, 0), F3(~2, ~0x25, ~0)|(1<<12)|ASI(~0), "1,2,d", 0, v6 },
-{ "sll", F3(2, 0x25, 1), F3(~2, ~0x25, ~1)|(1<<12), "1,i,d", 0, v6 },
-{ "sra", F3(2, 0x27, 0), F3(~2, ~0x27, ~0)|(1<<12)|ASI(~0), "1,2,d", 0, v6 },
-{ "sra", F3(2, 0x27, 1), F3(~2, ~0x27, ~1)|(1<<12), "1,i,d", 0, v6 },
-{ "srl", F3(2, 0x26, 0), F3(~2, ~0x26, ~0)|(1<<12)|ASI(~0), "1,2,d", 0, v6 },
-{ "srl", F3(2, 0x26, 1), F3(~2, ~0x26, ~1)|(1<<12), "1,i,d", 0, v6 },
-
-{ "sllx", F3(2, 0x25, 0)|(1<<12), F3(~2, ~0x25, ~0)|(ASI(~0)^(1<<12)), "1,2,d", 0, v9 },
-{ "sllx", F3(2, 0x25, 1)|(1<<12), F3(~2, ~0x25, ~1), "1,i,d", 0, v9 },
-{ "srax", F3(2, 0x27, 0)|(1<<12), F3(~2, ~0x27, ~0)|(ASI(~0)^(1<<12)), "1,2,d", 0, v9 },
-{ "srax", F3(2, 0x27, 1)|(1<<12), F3(~2, ~0x27, ~1), "1,i,d", 0, v9 },
-{ "srlx", F3(2, 0x26, 0)|(1<<12), F3(~2, ~0x26, ~0)|(ASI(~0)^(1<<12)), "1,2,d", 0, v9 },
-{ "srlx", F3(2, 0x26, 1)|(1<<12), F3(~2, ~0x26, ~1), "1,i,d", 0, v9 },
-
-{ "mulscc", F3(2, 0x24, 0), F3(~2, ~0x24, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "mulscc", F3(2, 0x24, 1), F3(~2, ~0x24, ~1), "1,i,d", 0, v6 },
-
-{ "divscc", F3(2, 0x1d, 0), F3(~2, ~0x1d, ~0)|ASI(~0), "1,2,d", 0, sparclite },
-{ "divscc", F3(2, 0x1d, 1), F3(~2, ~0x1d, ~1), "1,i,d", 0, sparclite },
-
-{ "scan", F3(2, 0x2c, 0), F3(~2, ~0x2c, ~0)|ASI(~0), "1,2,d", 0, sparclite },
-{ "scan", F3(2, 0x2c, 1), F3(~2, ~0x2c, ~1), "1,i,d", 0, sparclite },
-
-{ "popc", F3(2, 0x2e, 0), F3(~2, ~0x2e, ~0)|RS2_G0|ASI(~0),"2,d", 0, v9 },
-{ "popc", F3(2, 0x2e, 1), F3(~2, ~0x2e, ~1)|RS2_G0, "i,d", 0, v9 },
-
-{ "clr", F3(2, 0x02, 0), F3(~2, ~0x02, ~0)|RD_G0|RS1_G0|ASI_RS2(~0), "d", F_ALIAS, v6 }, /* or %g0,%g0,d */
-{ "clr", F3(2, 0x02, 1), F3(~2, ~0x02, ~1)|RS1_G0|SIMM13(~0), "d", F_ALIAS, v6 }, /* or %g0,0,d */
-{ "clr", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|RD_G0|ASI(~0), "[1+2]", F_ALIAS, v6 },
-{ "clr", F3(3, 0x04, 0), F3(~3, ~0x04, ~0)|RD_G0|ASI_RS2(~0), "[1]", F_ALIAS, v6 }, /* st %g0,[rs1+%g0] */
-{ "clr", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|RD_G0, "[1+i]", F_ALIAS, v6 },
-{ "clr", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|RD_G0, "[i+1]", F_ALIAS, v6 },
-{ "clr", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|RD_G0|RS1_G0, "[i]", F_ALIAS, v6 },
-{ "clr", F3(3, 0x04, 1), F3(~3, ~0x04, ~1)|RD_G0|SIMM13(~0), "[1]", F_ALIAS, v6 }, /* st %g0,[rs1+0] */
-
-{ "clrb", F3(3, 0x05, 0), F3(~3, ~0x05, ~0)|RD_G0|ASI(~0), "[1+2]", F_ALIAS, v6 },
-{ "clrb", F3(3, 0x05, 0), F3(~3, ~0x05, ~0)|RD_G0|ASI_RS2(~0), "[1]", F_ALIAS, v6 }, /* stb %g0,[rs1+%g0] */
-{ "clrb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|RD_G0, "[1+i]", F_ALIAS, v6 },
-{ "clrb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|RD_G0, "[i+1]", F_ALIAS, v6 },
-{ "clrb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|RD_G0|RS1_G0, "[i]", F_ALIAS, v6 },
-{ "clrb", F3(3, 0x05, 1), F3(~3, ~0x05, ~1)|RD_G0|SIMM13(~0), "[1]", F_ALIAS, v6 }, /* clrb [rs1+0],d */
-
-{ "clrh", F3(3, 0x06, 0), F3(~3, ~0x06, ~0)|RD_G0|ASI(~0), "[1+2]", F_ALIAS, v6 },
-{ "clrh", F3(3, 0x06, 0), F3(~3, ~0x06, ~0)|RD_G0|ASI_RS2(~0), "[1]", F_ALIAS, v6 }, /* sth %g0,[rs1+%g0] */
-{ "clrh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|RD_G0, "[1+i]", F_ALIAS, v6 },
-{ "clrh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|RD_G0, "[i+1]", F_ALIAS, v6 },
-{ "clrh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|RD_G0|RS1_G0, "[i]", F_ALIAS, v6 },
-{ "clrh", F3(3, 0x06, 1), F3(~3, ~0x06, ~1)|RD_G0|SIMM13(~0), "[1]", F_ALIAS, v6 }, /* clrb [rs1+0],d */
-
-{ "orcc", F3(2, 0x12, 0), F3(~2, ~0x12, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "orcc", F3(2, 0x12, 1), F3(~2, ~0x12, ~1), "1,i,d", 0, v6 },
-{ "orcc", F3(2, 0x12, 1), F3(~2, ~0x12, ~1), "i,1,d", 0, v6 },
-
-/* This is not a commutative instruction. */
-{ "orncc", F3(2, 0x16, 0), F3(~2, ~0x16, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "orncc", F3(2, 0x16, 1), F3(~2, ~0x16, ~1), "1,i,d", 0, v6 },
-
-/* This is not a commutative instruction. */
-{ "orn", F3(2, 0x06, 0), F3(~2, ~0x06, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "orn", F3(2, 0x06, 1), F3(~2, ~0x06, ~1), "1,i,d", 0, v6 },
-
-{ "tst", F3(2, 0x12, 0), F3(~2, ~0x12, ~0)|RD_G0|ASI_RS2(~0), "1", 0, v6 }, /* orcc rs1, %g0, %g0 */
-{ "tst", F3(2, 0x12, 0), F3(~2, ~0x12, ~0)|RD_G0|RS1_G0|ASI(~0), "2", 0, v6 }, /* orcc %g0, rs2, %g0 */
-{ "tst", F3(2, 0x12, 1), F3(~2, ~0x12, ~1)|RD_G0|SIMM13(~0), "1", 0, v6 }, /* orcc rs1, 0, %g0 */
-
-{ "wr", F3(2, 0x30, 0), F3(~2, ~0x30, ~0)|ASI(~0), "1,2,m", 0, v8 }, /* wr r,r,%asrX */
-{ "wr", F3(2, 0x30, 0), F3(~2, ~0x30, ~0)|RD_G0|ASI(~0), "1,2,y", 0, v6 }, /* wr r,r,%y */
-{ "wr", F3(2, 0x30, 1), F3(~2, ~0x30, ~1), "1,i,m", 0, v8 }, /* wr r,i,%asrX */
-{ "wr", F3(2, 0x30, 1), F3(~2, ~0x30, ~1)|RD_G0, "1,i,y", 0, v6 }, /* wr r,i,%y */
-{ "wr", F3(2, 0x31, 0), F3(~2, ~0x31, ~0)|RD_G0|ASI(~0), "1,2,p", 0, v6 }, /* wr r,r,%psr */
-{ "wr", F3(2, 0x31, 1), F3(~2, ~0x31, ~1)|RD_G0, "1,i,p", 0, v6 }, /* wr r,i,%psr */
-{ "wr", F3(2, 0x32, 0), F3(~2, ~0x32, ~0)|RD_G0|ASI(~0), "1,2,w", 0, v6 }, /* wr r,r,%wim */
-{ "wr", F3(2, 0x32, 1), F3(~2, ~0x32, ~1)|RD_G0, "1,i,w", 0, v6 }, /* wr r,i,%wim */
-{ "wr", F3(2, 0x33, 0), F3(~2, ~0x33, ~0)|RD_G0|ASI(~0), "1,2,t", 0, v6 }, /* wr r,r,%tbr */
-{ "wr", F3(2, 0x33, 0), F3(~2, ~0x33, ~0)|RD_G0|ASI(~0), "1,2,o", 0, v9 }, /* wr r,r,%asi */
-{ "wr", F3(2, 0x33, 1), F3(~2, ~0x33, ~1)|RD_G0, "1,i,t", 0, v6 }, /* wr r,i,%tbr */
-{ "wr", F3(2, 0x33, 1), F3(~2, ~0x33, ~1)|RD_G0, "1,i,o", 0, v9 }, /* wr r,i,%asi */
-
-{ "wr", F3(2, 0x30, 0)|RD(0), F3(~2, ~0x30, ~0)|RD(~0)|ASI(~0), "1,2,y", 0, v9 },
-{ "wr", F3(2, 0x30, 1)|RD(0), F3(~2, ~0x30, ~1)|RD(~0), "1,i,y", 0, v9 },
-{ "wr", F3(2, 0x30, 0)|RD(2), F3(~2, ~0x30, ~0)|RD(~2)|ASI(~0), "1,2,E", 0, v9 },
-{ "wr", F3(2, 0x30, 1)|RD(2), F3(~2, ~0x30, ~1)|RD(~2), "1,i,E", 0, v9 },
-{ "wr", F3(2, 0x30, 0)|RD(3), F3(~2, ~0x30, ~0)|RD(~3)|ASI(~0), "1,2,o", 0, v9 },
-{ "wr", F3(2, 0x30, 1)|RD(3), F3(~2, ~0x30, ~1)|RD(~3), "1,i,o", 0, v9 },
-{ "wr", F3(2, 0x30, 0)|RD(6), F3(~2, ~0x30, ~0)|RD(~6)|ASI(~0), "1,2,s", 0, v9 },
-{ "wr", F3(2, 0x30, 1)|RD(6), F3(~2, ~0x30, ~1)|RD(~6), "1,i,s", 0, v9 },
-
-{ "rd", F3(2, 0x28, 0), F3(~2, ~0x28, ~0)|SIMM13(~0), "M,d", 0, v8 }, /* rd %asr1,r */
-{ "rd", F3(2, 0x28, 0), F3(~2, ~0x28, ~0)|RS1_G0|SIMM13(~0), "y,d", 0, v6 }, /* rd %y,r */
-{ "rd", F3(2, 0x29, 0), F3(~2, ~0x29, ~0)|RS1_G0|SIMM13(~0), "p,d", 0, v6 }, /* rd %psr,r */
-{ "rd", F3(2, 0x2a, 0), F3(~2, ~0x2a, ~0)|RS1_G0|SIMM13(~0), "w,d", 0, v6 }, /* rd %wim,r */
-{ "rd", F3(2, 0x2b, 0), F3(~2, ~0x2b, ~0)|RS1_G0|SIMM13(~0), "t,d", 0, v6 }, /* rd %tbr,r */
-
-{ "rd", F3(2, 0x28, 0)|RS1(2), F3(~2, ~0x28, ~0)|RS1(~2)|SIMM13(~0), "E,d", 0, v9 }, /* rd %ccr,r */
-{ "rd", F3(2, 0x28, 0)|RS1(3), F3(~2, ~0x28, ~0)|RS1(~3)|SIMM13(~0), "o,d", 0, v9 }, /* rd %asi,r */
-{ "rd", F3(2, 0x28, 0)|RS1(4), F3(~2, ~0x28, ~0)|RS1(~4)|SIMM13(~0), "W,d", 0, v9 }, /* rd %tick,r */
-{ "rd", F3(2, 0x28, 0)|RS1(5), F3(~2, ~0x28, ~0)|RS1(~5)|SIMM13(~0), "P,d", 0, v9 }, /* rd %pc,r */
-{ "rd", F3(2, 0x2b, 0)|RS1(6), F3(~2, ~0x2b, ~0)|RS1(~6)|SIMM13(~0), "s,d", 0, v9 }, /* rd %fprs,r */
-
-{ "rdpr", F3(2, 0x2a, 0), F3(~2, ~0x2a, ~0)|SIMM13(~0), "?,d", 0, v9 }, /* rdpr %priv_reg,r */
-{ "wrpr", F3(2, 0x32, 0), F3(~2, ~0x32, ~0)|SIMM13(~0), "1,2,!", 0, v9 },
-{ "wrpr", F3(2, 0x32, 0), F3(~2, ~0x32, ~0)|SIMM13(~0), "1,!", 0, v9 },
-{ "wrpr", F3(2, 0x32, 0), F3(~2, ~0x32, ~0)|SIMM13(~0), "!", 0, v9 },
-{ "wrpr", F3(2, 0x32, 1), F3(~2, ~0x32, ~1), "1,i,!", 0, v9 },
-{ "wrpr", F3(2, 0x32, 1), F3(~2, ~0x32, ~1), "i,1,!", 0, v9 },
-{ "wrpr", F3(2, 0x32, 1), F3(~2, ~0x32, ~1), "i,!", 0, v9 },
-
-{ "mov", F3(2, 0x30, 0), F3(~2, ~0x30, ~0)|ASI(~0), "1,2,m", F_ALIAS, v8 }, /* wr r,r,%asrX */
-{ "mov", F3(2, 0x30, 0), F3(~2, ~0x30, ~0)|RD_G0|ASI(~0), "1,2,y", F_ALIAS, v6 }, /* wr r,r,%y */
-{ "mov", F3(2, 0x30, 1), F3(~2, ~0x30, ~1), "1,i,m", F_ALIAS, v8 }, /* wr r,i,%asrX */
-{ "mov", F3(2, 0x30, 1), F3(~2, ~0x30, ~1)|RD_G0, "1,i,y", F_ALIAS, v6 }, /* wr r,i,%y */
-{ "mov", F3(2, 0x31, 0), F3(~2, ~0x31, ~0)|RD_G0|ASI(~0), "1,2,p", F_ALIAS, v6 }, /* wr r,r,%psr */
-{ "mov", F3(2, 0x31, 1), F3(~2, ~0x31, ~1)|RD_G0, "1,i,p", F_ALIAS, v6 }, /* wr r,i,%psr */
-{ "mov", F3(2, 0x32, 0), F3(~2, ~0x32, ~0)|RD_G0|ASI(~0), "1,2,w", F_ALIAS, v6 }, /* wr r,r,%wim */
-{ "mov", F3(2, 0x32, 1), F3(~2, ~0x32, ~1)|RD_G0, "1,i,w", F_ALIAS, v6 }, /* wr r,i,%wim */
-{ "mov", F3(2, 0x33, 0), F3(~2, ~0x33, ~0)|RD_G0|ASI(~0), "1,2,t", F_ALIAS, v6 }, /* wr r,r,%tbr */
-{ "mov", F3(2, 0x33, 1), F3(~2, ~0x33, ~1)|RD_G0, "1,i,t", F_ALIAS, v6 }, /* wr r,i,%tbr */
-
-{ "mov", F3(2, 0x28, 0), F3(~2, ~0x28, ~0)|SIMM13(~0), "M,d", F_ALIAS, v8 }, /* rd %asr1,r */
-{ "mov", F3(2, 0x28, 0), F3(~2, ~0x28, ~0)|RS1_G0|SIMM13(~0), "y,d", F_ALIAS, v6 }, /* rd %y,r */
-{ "mov", F3(2, 0x29, 0), F3(~2, ~0x29, ~0)|RS1_G0|SIMM13(~0), "p,d", F_ALIAS, v6 }, /* rd %psr,r */
-{ "mov", F3(2, 0x2a, 0), F3(~2, ~0x2a, ~0)|RS1_G0|SIMM13(~0), "w,d", F_ALIAS, v6 }, /* rd %wim,r */
-{ "mov", F3(2, 0x2b, 0), F3(~2, ~0x2b, ~0)|RS1_G0|SIMM13(~0), "t,d", F_ALIAS, v6 }, /* rd %tbr,r */
-
-{ "mov", F3(2, 0x30, 0), F3(~2, ~0x30, ~0)|ASI_RS2(~0), "1,y", F_ALIAS, v6 }, /* wr rs1,%g0,%y */
-{ "mov", F3(2, 0x30, 1), F3(~2, ~0x30, ~1), "i,y", F_ALIAS, v6 },
-{ "mov", F3(2, 0x30, 1), F3(~2, ~0x30, ~1)|SIMM13(~0), "1,y", F_ALIAS, v6 }, /* wr rs1,0,%y */
-{ "mov", F3(2, 0x31, 0), F3(~2, ~0x31, ~0)|ASI_RS2(~0), "1,p", F_ALIAS, v6 }, /* wr rs1,%g0,%psr */
-{ "mov", F3(2, 0x31, 1), F3(~2, ~0x31, ~1), "i,p", F_ALIAS, v6 },
-{ "mov", F3(2, 0x31, 1), F3(~2, ~0x31, ~1)|SIMM13(~0), "1,p", F_ALIAS, v6 }, /* wr rs1,0,%psr */
-{ "mov", F3(2, 0x32, 0), F3(~2, ~0x32, ~0)|ASI_RS2(~0), "1,w", F_ALIAS, v6 }, /* wr rs1,%g0,%wim */
-{ "mov", F3(2, 0x32, 1), F3(~2, ~0x32, ~1), "i,w", F_ALIAS, v6 },
-{ "mov", F3(2, 0x32, 1), F3(~2, ~0x32, ~1)|SIMM13(~0), "1,w", F_ALIAS, v6 }, /* wr rs1,0,%wim */
-{ "mov", F3(2, 0x33, 0), F3(~2, ~0x33, ~0)|ASI_RS2(~0), "1,t", F_ALIAS, v6 }, /* wr rs1,%g0,%tbr */
-{ "mov", F3(2, 0x33, 1), F3(~2, ~0x33, ~1), "i,t", F_ALIAS, v6 },
-{ "mov", F3(2, 0x33, 1), F3(~2, ~0x33, ~1)|SIMM13(~0), "1,t", F_ALIAS, v6 }, /* wr rs1,0,%tbr */
-
-{ "mov", F3(2, 0x02, 0), F3(~2, ~0x02, ~0)|RS1_G0|ASI(~0), "2,d", 0, v6 }, /* or %g0,rs2,d */
-{ "mov", F3(2, 0x02, 1), F3(~2, ~0x02, ~1)|RS1_G0, "i,d", 0, v6 }, /* or %g0,i,d */
-{ "mov", F3(2, 0x02, 0), F3(~2, ~0x02, ~0)|ASI_RS2(~0), "1,d", 0, v6 }, /* or rs1,%g0,d */
-{ "mov", F3(2, 0x02, 1), F3(~2, ~0x02, ~1)|SIMM13(~0), "1,d", 0, v6 }, /* or rs1,0,d */
-
-{ "or", F3(2, 0x02, 0), F3(~2, ~0x02, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "or", F3(2, 0x02, 1), F3(~2, ~0x02, ~1), "1,i,d", 0, v6 },
-{ "or", F3(2, 0x02, 1), F3(~2, ~0x02, ~1), "i,1,d", 0, v6 },
-
-{ "bset", F3(2, 0x02, 0), F3(~2, ~0x02, ~0)|ASI(~0), "2,r", F_ALIAS, v6 }, /* or rd,rs2,rd */
-{ "bset", F3(2, 0x02, 1), F3(~2, ~0x02, ~1), "i,r", F_ALIAS, v6 }, /* or rd,i,rd */
-
-/* This is not a commutative instruction. */
-{ "andn", F3(2, 0x05, 0), F3(~2, ~0x05, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "andn", F3(2, 0x05, 1), F3(~2, ~0x05, ~1), "1,i,d", 0, v6 },
-
-/* This is not a commutative instruction. */
-{ "andncc", F3(2, 0x15, 0), F3(~2, ~0x15, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "andncc", F3(2, 0x15, 1), F3(~2, ~0x15, ~1), "1,i,d", 0, v6 },
-
-{ "bclr", F3(2, 0x05, 0), F3(~2, ~0x05, ~0)|ASI(~0), "2,r", F_ALIAS, v6 }, /* andn rd,rs2,rd */
-{ "bclr", F3(2, 0x05, 1), F3(~2, ~0x05, ~1), "i,r", F_ALIAS, v6 }, /* andn rd,i,rd */
-
-{ "cmp", F3(2, 0x14, 0), F3(~2, ~0x14, ~0)|RD_G0|ASI(~0), "1,2", 0, v6 }, /* subcc rs1,rs2,%g0 */
-{ "cmp", F3(2, 0x14, 1), F3(~2, ~0x14, ~1)|RD_G0, "1,i", 0, v6 }, /* subcc rs1,i,%g0 */
-
-{ "sub", F3(2, 0x04, 0), F3(~2, ~0x04, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "sub", F3(2, 0x04, 1), F3(~2, ~0x04, ~1), "1,i,d", 0, v6 },
-
-{ "subcc", F3(2, 0x14, 0), F3(~2, ~0x14, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "subcc", F3(2, 0x14, 1), F3(~2, ~0x14, ~1), "1,i,d", 0, v6 },
-
-/* FIXME These are marked F_ALIAS, so that they won't conflict with new v9
- insns when v9 is present. Otherwise, the F_ALIAS flag is ignored. */
-{ "subx", F3(2, 0x0c, 0), F3(~2, ~0x0c, ~0)|ASI(~0), "1,2,d", F_ALIAS, v6 },
-{ "subx", F3(2, 0x0c, 1), F3(~2, ~0x0c, ~1), "1,i,d", F_ALIAS, v6 },
-{ "subc", F3(2, 0x0c, 0), F3(~2, ~0x0c, ~0)|ASI(~0), "1,2,d", 0, v9 },
-{ "subc", F3(2, 0x0c, 1), F3(~2, ~0x0c, ~1), "1,i,d", 0, v9 },
-
-/* FIXME These are marked F_ALIAS, so that they won't conflict with new v9
- insns when v9 is present. Otherwise, the F_ALIAS flag is ignored. */
-{ "subxcc", F3(2, 0x1c, 0), F3(~2, ~0x1c, ~0)|ASI(~0), "1,2,d", F_ALIAS, v6 },
-{ "subxcc", F3(2, 0x1c, 1), F3(~2, ~0x1c, ~1), "1,i,d", F_ALIAS, v6 },
-{ "subccc", F3(2, 0x1c, 0), F3(~2, ~0x1c, ~0)|ASI(~0), "1,2,d", 0, v9 },
-{ "subccc", F3(2, 0x1c, 1), F3(~2, ~0x1c, ~1), "1,i,d", 0, v9 },
-
-{ "and", F3(2, 0x01, 0), F3(~2, ~0x01, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "and", F3(2, 0x01, 1), F3(~2, ~0x01, ~1), "1,i,d", 0, v6 },
-{ "and", F3(2, 0x01, 1), F3(~2, ~0x01, ~1), "i,1,d", 0, v6 },
-
-{ "andcc", F3(2, 0x11, 0), F3(~2, ~0x11, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "andcc", F3(2, 0x11, 1), F3(~2, ~0x11, ~1), "1,i,d", 0, v6 },
-{ "andcc", F3(2, 0x11, 1), F3(~2, ~0x11, ~1), "i,1,d", 0, v6 },
-
-{ "dec", F3(2, 0x04, 1)|SIMM13(0x1), F3(~2, ~0x04, ~1)|SIMM13(~0x0001), "r", F_ALIAS, v6 }, /* sub rd,1,rd */
-{ "dec", F3(2, 0x04, 1), F3(~2, ~0x04, ~1), "i,r", F_ALIAS, v8 }, /* sub rd,imm,rd */
-{ "deccc", F3(2, 0x14, 1)|SIMM13(0x1), F3(~2, ~0x14, ~1)|SIMM13(~0x0001), "r", F_ALIAS, v6 }, /* subcc rd,1,rd */
-{ "deccc", F3(2, 0x14, 1), F3(~2, ~0x14, ~1), "i,r", F_ALIAS, v8 }, /* subcc rd,imm,rd */
-{ "inc", F3(2, 0x00, 1)|SIMM13(0x1), F3(~2, ~0x00, ~1)|SIMM13(~0x0001), "r", F_ALIAS, v6 }, /* add rd,1,rd */
-{ "inc", F3(2, 0x00, 1), F3(~2, ~0x00, ~1), "i,r", F_ALIAS, v8 }, /* add rd,imm,rd */
-{ "inccc", F3(2, 0x10, 1)|SIMM13(0x1), F3(~2, ~0x10, ~1)|SIMM13(~0x0001), "r", F_ALIAS, v6 }, /* addcc rd,1,rd */
-{ "inccc", F3(2, 0x10, 1), F3(~2, ~0x10, ~1), "i,r", F_ALIAS, v8 }, /* addcc rd,imm,rd */
-
-{ "btst", F3(2, 0x11, 0), F3(~2, ~0x11, ~0)|RD_G0|ASI(~0), "1,2", F_ALIAS, v6 }, /* andcc rs1,rs2,%g0 */
-{ "btst", F3(2, 0x11, 1), F3(~2, ~0x11, ~1)|RD_G0, "i,1", F_ALIAS, v6 }, /* andcc rs1,i,%g0 */
-
-{ "neg", F3(2, 0x04, 0), F3(~2, ~0x04, ~0)|RS1_G0|ASI(~0), "2,d", F_ALIAS, v6 }, /* sub %g0,rs2,rd */
-{ "neg", F3(2, 0x04, 0), F3(~2, ~0x04, ~0)|RS1_G0|ASI(~0), "r", F_ALIAS, v6 }, /* sub %g0,rd,rd */
-
-{ "add", F3(2, 0x00, 0), F3(~2, ~0x00, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "add", F3(2, 0x00, 1), F3(~2, ~0x00, ~1), "1,i,d", 0, v6 },
-{ "add", F3(2, 0x00, 1), F3(~2, ~0x00, ~1), "i,1,d", 0, v6 },
-{ "addcc", F3(2, 0x10, 0), F3(~2, ~0x10, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "addcc", F3(2, 0x10, 1), F3(~2, ~0x10, ~1), "1,i,d", 0, v6 },
-{ "addcc", F3(2, 0x10, 1), F3(~2, ~0x10, ~1), "i,1,d", 0, v6 },
-/* FIXME These are marked F_ALIAS, so that they won't conflict with new v9
- insns when v9 is present. Otherwise, the F_ALIAS flag is ignored. */
-{ "addx", F3(2, 0x08, 0), F3(~2, ~0x08, ~0)|ASI(~0), "1,2,d", F_ALIAS, v6 },
-{ "addx", F3(2, 0x08, 1), F3(~2, ~0x08, ~1), "1,i,d", F_ALIAS, v6 },
-{ "addx", F3(2, 0x08, 1), F3(~2, ~0x08, ~1), "i,1,d", F_ALIAS, v6 },
-{ "addc", F3(2, 0x08, 0), F3(~2, ~0x08, ~0)|ASI(~0), "1,2,d", 0, v9 },
-{ "addc", F3(2, 0x08, 1), F3(~2, ~0x08, ~1), "1,i,d", 0, v9 },
-{ "addc", F3(2, 0x08, 1), F3(~2, ~0x08, ~1), "i,1,d", 0, v9 },
-/* FIXME These are marked F_ALIAS, so that they won't conflict with new v9
- insns when v9 is present. Otherwise, the F_ALIAS flag is ignored. */
-{ "addxcc", F3(2, 0x18, 0), F3(~2, ~0x18, ~0)|ASI(~0), "1,2,d", F_ALIAS, v6 },
-{ "addxcc", F3(2, 0x18, 1), F3(~2, ~0x18, ~1), "1,i,d", F_ALIAS, v6 },
-{ "addxcc", F3(2, 0x18, 1), F3(~2, ~0x18, ~1), "i,1,d", F_ALIAS, v6 },
-{ "addccc", F3(2, 0x18, 0), F3(~2, ~0x18, ~0)|ASI(~0), "1,2,d", 0, v9 },
-{ "addccc", F3(2, 0x18, 1), F3(~2, ~0x18, ~1), "1,i,d", 0, v9 },
-{ "addccc", F3(2, 0x18, 1), F3(~2, ~0x18, ~1), "i,1,d", 0, v9 },
-
-{ "smul", F3(2, 0x0b, 0), F3(~2, ~0x0b, ~0)|ASI(~0), "1,2,d", 0, v8 },
-{ "smul", F3(2, 0x0b, 1), F3(~2, ~0x0b, ~1), "1,i,d", 0, v8 },
-{ "smul", F3(2, 0x0b, 1), F3(~2, ~0x0b, ~1), "i,1,d", 0, v8 },
-{ "smulcc", F3(2, 0x1b, 0), F3(~2, ~0x1b, ~0)|ASI(~0), "1,2,d", 0, v8 },
-{ "smulcc", F3(2, 0x1b, 1), F3(~2, ~0x1b, ~1), "1,i,d", 0, v8 },
-{ "smulcc", F3(2, 0x1b, 1), F3(~2, ~0x1b, ~1), "i,1,d", 0, v8 },
-{ "umul", F3(2, 0x0a, 0), F3(~2, ~0x0a, ~0)|ASI(~0), "1,2,d", 0, v8 },
-{ "umul", F3(2, 0x0a, 1), F3(~2, ~0x0a, ~1), "1,i,d", 0, v8 },
-{ "umul", F3(2, 0x0a, 1), F3(~2, ~0x0a, ~1), "i,1,d", 0, v8 },
-{ "umulcc", F3(2, 0x1a, 0), F3(~2, ~0x1a, ~0)|ASI(~0), "1,2,d", 0, v8 },
-{ "umulcc", F3(2, 0x1a, 1), F3(~2, ~0x1a, ~1), "1,i,d", 0, v8 },
-{ "umulcc", F3(2, 0x1a, 1), F3(~2, ~0x1a, ~1), "i,1,d", 0, v8 },
-{ "sdiv", F3(2, 0x0f, 0), F3(~2, ~0x0f, ~0)|ASI(~0), "1,2,d", 0, v8 },
-{ "sdiv", F3(2, 0x0f, 1), F3(~2, ~0x0f, ~1), "1,i,d", 0, v8 },
-{ "sdiv", F3(2, 0x0f, 1), F3(~2, ~0x0f, ~1), "i,1,d", 0, v8 },
-{ "sdivcc", F3(2, 0x1f, 0), F3(~2, ~0x1f, ~0)|ASI(~0), "1,2,d", 0, v8 },
-{ "sdivcc", F3(2, 0x1f, 1), F3(~2, ~0x1f, ~1), "1,i,d", 0, v8 },
-{ "sdivcc", F3(2, 0x1f, 1), F3(~2, ~0x1f, ~1), "i,1,d", 0, v8 },
-{ "udiv", F3(2, 0x0e, 0), F3(~2, ~0x0e, ~0)|ASI(~0), "1,2,d", 0, v8 },
-{ "udiv", F3(2, 0x0e, 1), F3(~2, ~0x0e, ~1), "1,i,d", 0, v8 },
-{ "udiv", F3(2, 0x0e, 1), F3(~2, ~0x0e, ~1), "i,1,d", 0, v8 },
-{ "udivcc", F3(2, 0x1e, 0), F3(~2, ~0x1e, ~0)|ASI(~0), "1,2,d", 0, v8 },
-{ "udivcc", F3(2, 0x1e, 1), F3(~2, ~0x1e, ~1), "1,i,d", 0, v8 },
-{ "udivcc", F3(2, 0x1e, 1), F3(~2, ~0x1e, ~1), "i,1,d", 0, v8 },
-
-{ "mulx", F3(2, 0x09, 0), F3(~2, ~0x09, ~0)|ASI(~0), "1,2,d", 0, v9 },
-{ "mulx", F3(2, 0x09, 1), F3(~2, ~0x09, ~1), "1,i,d", 0, v9 },
-{ "sdivx", F3(2, 0x2d, 0), F3(~2, ~0x2d, ~0)|ASI(~0), "1,2,d", 0, v9 },
-{ "sdivx", F3(2, 0x2d, 1), F3(~2, ~0x2d, ~1), "1,i,d", 0, v9 },
-{ "udivx", F3(2, 0x0d, 0), F3(~2, ~0x0d, ~0)|ASI(~0), "1,2,d", 0, v9 },
-{ "udivx", F3(2, 0x0d, 1), F3(~2, ~0x0d, ~1), "1,i,d", 0, v9 },
-
-{ "call", F1(0x1), F1(~0x1), "L", F_DELAYED, v6 },
-{ "call", F1(0x1), F1(~0x1), "L,#", F_DELAYED, v6 },
-{ "call", F3(2, 0x38, 0)|RD(0xf), F3(~2, ~0x38, ~0)|RD(~0xf)|ASI_RS2(~0), "1", F_DELAYED, v6 }, /* jmpl rs1+%g0, %o7 */
-{ "call", F3(2, 0x38, 0)|RD(0xf), F3(~2, ~0x38, ~0)|RD(~0xf)|ASI_RS2(~0), "1,#", F_DELAYED, v6 },
-
-/* Conditional instructions.
-
- Because this part of the table was such a mess earlier, I have
- macrofied it so that all the branches and traps are generated from
- a single-line description of each condition value. John Gilmore. */
-
-/* Define branches -- one annulled, one without, etc. */
-#define br(opcode, mask, lose, flags) \
- { opcode, (mask)|ANNUL, (lose), ",a l", (flags), v6 }, \
- { opcode, (mask) , (lose)|ANNUL, "l", (flags), v6 }
-
-#define brx(opcode, mask, lose, flags) /* v9 */ \
- { opcode, (mask), (lose)|ANNUL|BPRED, "Z,G", (flags), v9 }, \
- { opcode, (mask), (lose)|ANNUL|BPRED, ",N Z,G", (flags), v9 }, \
- { opcode, (mask)|ANNUL, (lose)|BPRED, ",a Z,G", (flags), v9 }, \
- { opcode, (mask)|ANNUL, (lose)|BPRED, ",a,N Z,G", (flags), v9 }, \
- { opcode, (mask)|BPRED, (lose)|ANNUL, ",T Z,G", (flags), v9 }, \
- { opcode, (mask)|ANNUL|BPRED, (lose), ",a,T Z,G", (flags), v9 }, \
- { opcode, (mask), (lose)|ANNUL|BPRED, "z,G", (flags), v9 }, \
- { opcode, (mask), (lose)|ANNUL|BPRED, ",N z,G", (flags), v9 }, \
- { opcode, (mask)|ANNUL, (lose)|BPRED, ",a z,G", (flags), v9 }, \
- { opcode, (mask)|ANNUL, (lose)|BPRED, ",a,N z,G", (flags), v9 }, \
- { opcode, (mask)|BPRED, (lose)|ANNUL, ",T z,G", (flags), v9 }, \
- { opcode, (mask)|ANNUL|BPRED, (lose), ",a,T z,G", (flags), v9 }
-
-/* Define four traps: reg+reg, reg + immediate, immediate alone, reg alone. */
-#define tr(opcode, mask, lose, flags) \
- { opcode, (mask)|(2<<11)|IMMED, (lose)|RS1_G0, "Z,i", (flags), v9 }, /* %g0 + imm */ \
- { opcode, (mask)|(2<<11)|IMMED, (lose), "Z,1+i", (flags), v9 }, /* rs1 + imm */ \
- { opcode, (mask)|(2<<11), IMMED|(lose), "Z,1+2", (flags), v9 }, /* rs1 + rs2 */ \
- { opcode, (mask)|(2<<11), IMMED|(lose)|RS2_G0, "Z,1", (flags), v9 }, /* rs1 + %g0 */ \
- { opcode, (mask)|IMMED, (lose)|RS1_G0, "z,i", (flags)|F_ALIAS, v9 }, /* %g0 + imm */ \
- { opcode, (mask)|IMMED, (lose), "z,1+i", (flags)|F_ALIAS, v9 }, /* rs1 + imm */ \
- { opcode, (mask), IMMED|(lose), "z,1+2", (flags)|F_ALIAS, v9 }, /* rs1 + rs2 */ \
- { opcode, (mask), IMMED|(lose)|RS2_G0, "z,1", (flags)|F_ALIAS, v9 }, /* rs1 + %g0 */ \
- { opcode, (mask)|IMMED, (lose)|RS1_G0, "i", (flags), v6 }, /* %g0 + imm */ \
- { opcode, (mask)|IMMED, (lose), "1+i", (flags), v6 }, /* rs1 + imm */ \
- { opcode, (mask), IMMED|(lose), "1+2", (flags), v6 }, /* rs1 + rs2 */ \
- { opcode, (mask), IMMED|(lose)|RS2_G0, "1", (flags), v6 } /* rs1 + %g0 */
-
-/* Define both branches and traps based on condition mask */
-#define cond(bop, top, mask, flags) \
- br(bop, F2(0, 2)|(mask), F2(~0, ~2)|((~mask)&COND(~0)), F_DELAYED|(flags)), \
- brx(bop, F2(0, 1)|(mask), F2(~0, ~1)|((~mask)&COND(~0)), F_DELAYED|(flags)), /* v9 */ \
- tr(top, F3(2, 0x3a, 0)|(mask), F3(~2, ~0x3a, 0)|((~mask)&COND(~0)), (flags))
-
-/* Define all the conditions, all the branches, all the traps. */
-
-cond ("b", "t", CONDA, 0),
-cond ("ba", "ta", CONDA, F_ALIAS), /* for nothing */
-cond ("bcc", "tcc", CONDCC, 0),
-cond ("bcs", "tcs", CONDCS, 0),
-cond ("be", "te", CONDE, 0),
-cond ("bg", "tg", CONDG, 0),
-cond ("bgt", "tgt", CONDG, F_ALIAS),
-cond ("bge", "tge", CONDGE, 0),
-cond ("bgeu", "tgeu", CONDGEU, F_ALIAS), /* for cc */
-cond ("bgu", "tgu", CONDGU, 0),
-cond ("bl", "tl", CONDL, 0),
-cond ("blt", "tlt", CONDL, F_ALIAS),
-cond ("ble", "tle", CONDLE, 0),
-cond ("bleu", "tleu", CONDLEU, 0),
-cond ("blu", "tlu", CONDLU, F_ALIAS), /* for cs */
-cond ("bn", "tn", CONDN, 0),
-cond ("bne", "tne", CONDNE, 0),
-cond ("bneg", "tneg", CONDNEG, 0),
-cond ("bnz", "tnz", CONDNZ, F_ALIAS), /* for ne */
-cond ("bpos", "tpos", CONDPOS, 0),
-cond ("bvc", "tvc", CONDVC, 0),
-cond ("bvs", "tvs", CONDVS, 0),
-cond ("bz", "tz", CONDZ, F_ALIAS), /* for e */
-
-#undef cond
-#undef br
-#undef brr /* v9 */
-#undef tr
-
-#define brr(opcode, mask, lose, flags) /* v9 */ \
- { opcode, (mask), (lose)|ANNUL|BPRED, "1,k", F_DELAYED|(flags), v9 }, \
- { opcode, (mask), (lose)|ANNUL|BPRED, ",N 1,k", F_DELAYED|(flags), v9 }, \
- { opcode, (mask)|ANNUL, (lose)|BPRED, ",a 1,k", F_DELAYED|(flags), v9 }, \
- { opcode, (mask)|ANNUL, (lose)|BPRED, ",a,N 1,k", F_DELAYED|(flags), v9 }, \
- { opcode, (mask)|BPRED, (lose)|ANNUL, ",T 1,k", F_DELAYED|(flags), v9 }, \
- { opcode, (mask)|ANNUL|BPRED, (lose), ",a,T 1,k", F_DELAYED|(flags), v9 }
-
-#define condr(bop, mask, flags) /* v9 */ \
- brr(bop, F2(0, 3)|COND(mask), F2(~0, ~3)|COND(~(mask)), (flags)) /* v9 */
-
-/* v9 */ condr("brnz", 0x5, 0),
-/* v9 */ condr("brz", 0x1, 0),
-/* v9 */ condr("brgez", 0x7, 0),
-/* v9 */ condr("brlz", 0x3, 0),
-/* v9 */ condr("brlez", 0x2, 0),
-/* v9 */ condr("brgz", 0x6, 0),
-
-#undef condr /* v9 */
-#undef brr /* v9 */
-
-#define movr(opcode, mask, flags) /* v9 */ \
- { opcode, F3(2, 0x2f, 0)|COND(mask), F3(~2, ~0x2f, ~0)|COND(~(mask)), "1,2,d", (flags), v9 }, \
- { opcode, F3(2, 0x2f, 1)|COND(mask), F3(~2, ~0x2f, ~1)|COND(~(mask)), "1,j,d", (flags), v9 }
-
-#define fmrrs(opcode, mask, lose, flags) /* v9 */ \
- { opcode, (mask), (lose), "1,f,g", (flags), v9 }
-#define fmrrd(opcode, mask, lose, flags) /* v9 */ \
- { opcode, (mask), (lose), "1,B,H", (flags), v9 }
-#define fmrrq(opcode, mask, lose, flags) /* v9 */ \
- { opcode, (mask), (lose), "1,R,J", (flags), v9 }
-
-#define fmovrs(mop, mask, flags) /* v9 */ \
- fmrrs(mop, F3(2, 0x35, 0)|OPF_LOW5(5)|COND(mask), F3(~2, ~0x35, 0)|OPF_LOW5(~5)|COND(~(mask)), (flags)) /* v9 */
-#define fmovrd(mop, mask, flags) /* v9 */ \
- fmrrd(mop, F3(2, 0x35, 0)|OPF_LOW5(6)|COND(mask), F3(~2, ~0x35, 0)|OPF_LOW5(~6)|COND(~(mask)), (flags)) /* v9 */
-#define fmovrq(mop, mask, flags) /* v9 */ \
- fmrrq(mop, F3(2, 0x35, 0)|OPF_LOW5(7)|COND(mask), F3(~2, ~0x35, 0)|OPF_LOW5(~7)|COND(~(mask)), (flags)) /* v9 */
-
-/* v9 */ movr("movrne", 0x5, 0),
-/* v9 */ movr("movre", 0x1, 0),
-/* v9 */ movr("movrgez", 0x7, 0),
-/* v9 */ movr("movrlz", 0x3, 0),
-/* v9 */ movr("movrlez", 0x2, 0),
-/* v9 */ movr("movrgz", 0x6, 0),
-/* v9 */ movr("movrnz", 0x5, F_ALIAS),
-/* v9 */ movr("movrz", 0x1, F_ALIAS),
-
-/* v9 */ fmovrs("fmovrsne", 0x5, 0),
-/* v9 */ fmovrs("fmovrse", 0x1, 0),
-/* v9 */ fmovrs("fmovrsgez", 0x7, 0),
-/* v9 */ fmovrs("fmovrslz", 0x3, 0),
-/* v9 */ fmovrs("fmovrslez", 0x2, 0),
-/* v9 */ fmovrs("fmovrsgz", 0x6, 0),
-/* v9 */ fmovrs("fmovrsnz", 0x5, F_ALIAS),
-/* v9 */ fmovrs("fmovrsz", 0x1, F_ALIAS),
-
-/* v9 */ fmovrd("fmovrdne", 0x5, 0),
-/* v9 */ fmovrd("fmovrde", 0x1, 0),
-/* v9 */ fmovrd("fmovrdgez", 0x7, 0),
-/* v9 */ fmovrd("fmovrdlz", 0x3, 0),
-/* v9 */ fmovrd("fmovrdlez", 0x2, 0),
-/* v9 */ fmovrd("fmovrdgz", 0x6, 0),
-/* v9 */ fmovrd("fmovrdnz", 0x5, F_ALIAS),
-/* v9 */ fmovrd("fmovrdz", 0x1, F_ALIAS),
-
-/* v9 */ fmovrq("fmovrqne", 0x5, 0),
-/* v9 */ fmovrq("fmovrqe", 0x1, 0),
-/* v9 */ fmovrq("fmovrqgez", 0x7, 0),
-/* v9 */ fmovrq("fmovrqlz", 0x3, 0),
-/* v9 */ fmovrq("fmovrqlez", 0x2, 0),
-/* v9 */ fmovrq("fmovrqgz", 0x6, 0),
-/* v9 */ fmovrq("fmovrqnz", 0x5, F_ALIAS),
-/* v9 */ fmovrq("fmovrqz", 0x1, F_ALIAS),
-
-#undef movr /* v9 */
-#undef fmovr /* v9 */
-#undef fmrr /* v9 */
-
-{ "mova", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDA,0), MCOND(~FCONDA,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDA,0), MCOND(~FCONDA,~0)|FCC(~0)|F3(~2, ~0x2c,~1), "6,I,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDA,0), MCOND(~FCONDA,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDA,0), MCOND(~FCONDA,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDA,0), MCOND(~FCONDA,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDA,0), MCOND(~FCONDA,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDA,0), MCOND(~FCONDA,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDA,0), MCOND(~FCONDA,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 0)|MCOND(CONDA,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDA,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 1)|MCOND(CONDA,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDA,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 0)|MCOND(CONDA,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDA,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "mova", F3(2, 0x2c, 1)|MCOND(CONDA,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDA,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movcc", F3(2, 0x2c, 0)|MCOND(CONDCC,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDCC,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movcc", F3(2, 0x2c, 1)|MCOND(CONDCC,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDCC,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movcc", F3(2, 0x2c, 0)|MCOND(CONDCC,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDCC,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movcc", F3(2, 0x2c, 1)|MCOND(CONDCC,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDCC,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movgeu", F3(2, 0x2c, 0)|MCOND(CONDGEU,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDGEU,~1)|XCC|(1<<12), "z,2,d", F_ALIAS, v9 },
-{ "movgeu", F3(2, 0x2c, 1)|MCOND(CONDGEU,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDGEU,~1)|XCC|(1<<12), "z,I,d", F_ALIAS, v9 },
-{ "movgeu", F3(2, 0x2c, 0)|MCOND(CONDGEU,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDGEU,~1)|(1<<12), "Z,2,d", F_ALIAS, v9 },
-{ "movgeu", F3(2, 0x2c, 1)|MCOND(CONDGEU,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDGEU,~1)|(1<<12), "Z,I,d", F_ALIAS, v9 },
-{ "movcs", F3(2, 0x2c, 0)|MCOND(CONDCS,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDCS,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movcs", F3(2, 0x2c, 1)|MCOND(CONDCS,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDCS,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movcs", F3(2, 0x2c, 0)|MCOND(CONDCS,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDCS,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movcs", F3(2, 0x2c, 1)|MCOND(CONDCS,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDCS,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movlu", F3(2, 0x2c, 0)|MCOND(CONDLU,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDLU,~1)|XCC|(1<<12), "z,2,d", F_ALIAS, v9 },
-{ "movlu", F3(2, 0x2c, 1)|MCOND(CONDLU,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDLU,~1)|XCC|(1<<12), "z,I,d", F_ALIAS, v9 },
-{ "movlu", F3(2, 0x2c, 0)|MCOND(CONDLU,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDLU,~1)|(1<<12), "Z,2,d", F_ALIAS, v9 },
-{ "movlu", F3(2, 0x2c, 1)|MCOND(CONDLU,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDLU,~1)|(1<<12), "Z,I,d", F_ALIAS, v9 },
-{ "move", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDE,0), MCOND(~FCONDE,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "move", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDE,0), MCOND(~FCONDE,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "move", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDE,0), MCOND(~FCONDE,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "move", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDE,0), MCOND(~FCONDE,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "move", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDE,0), MCOND(~FCONDE,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "move", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDE,0), MCOND(~FCONDE,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "move", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDE,0), MCOND(~FCONDE,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "move", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDE,0), MCOND(~FCONDE,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "move", F3(2, 0x2c, 0)|MCOND(CONDE,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDE,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "move", F3(2, 0x2c, 1)|MCOND(CONDE,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDE,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "move", F3(2, 0x2c, 0)|MCOND(CONDE,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDE,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "move", F3(2, 0x2c, 1)|MCOND(CONDE,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDE,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDG,0), MCOND(~FCONDG,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDG,0), MCOND(~FCONDG,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDG,0), MCOND(~FCONDG,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDG,0), MCOND(~FCONDG,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDG,0), MCOND(~FCONDG,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDG,0), MCOND(~FCONDG,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDG,0), MCOND(~FCONDG,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDG,0), MCOND(~FCONDG,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 0)|MCOND(CONDG,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDG,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 1)|MCOND(CONDG,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDG,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 0)|MCOND(CONDG,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDG,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movg", F3(2, 0x2c, 1)|MCOND(CONDG,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDG,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDGE,0), MCOND(~FCONDGE,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDGE,0), MCOND(~FCONDGE,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDGE,0), MCOND(~FCONDGE,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDGE,0), MCOND(~FCONDGE,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDGE,0), MCOND(~FCONDGE,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDGE,0), MCOND(~FCONDGE,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDGE,0), MCOND(~FCONDGE,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDGE,0), MCOND(~FCONDGE,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 0)|MCOND(CONDGE,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDGE,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 1)|MCOND(CONDGE,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDGE,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 0)|MCOND(CONDGE,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDGE,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movge", F3(2, 0x2c, 1)|MCOND(CONDGE,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDGE,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movgu", F3(2, 0x2c, 0)|MCOND(CONDGU,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDGU,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movgu", F3(2, 0x2c, 1)|MCOND(CONDGU,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDGU,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movgu", F3(2, 0x2c, 0)|MCOND(CONDGU,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDGU,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movgu", F3(2, 0x2c, 1)|MCOND(CONDGU,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDGU,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDL,0), MCOND(~FCONDL,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDL,0), MCOND(~FCONDL,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDL,0), MCOND(~FCONDL,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDL,0), MCOND(~FCONDL,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDL,0), MCOND(~FCONDL,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDL,0), MCOND(~FCONDL,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDL,0), MCOND(~FCONDL,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDL,0), MCOND(~FCONDL,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 0)|MCOND(CONDL,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDL,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 1)|MCOND(CONDL,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDL,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 0)|MCOND(CONDL,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDL,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movl", F3(2, 0x2c, 1)|MCOND(CONDL,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDL,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDLE,0), MCOND(~FCONDLE,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDLE,0), MCOND(~FCONDLE,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDLE,0), MCOND(~FCONDLE,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDLE,0), MCOND(~FCONDLE,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDLE,0), MCOND(~FCONDLE,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDLE,0), MCOND(~FCONDLE,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDLE,0), MCOND(~FCONDLE,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDLE,0), MCOND(~FCONDLE,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 0)|MCOND(CONDLE,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDLE,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 1)|MCOND(CONDLE,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDLE,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 0)|MCOND(CONDLE,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDLE,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movle", F3(2, 0x2c, 1)|MCOND(CONDLE,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDLE,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movleu", F3(2, 0x2c, 0)|MCOND(CONDLEU,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDLEU,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movleu", F3(2, 0x2c, 1)|MCOND(CONDLEU,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDLEU,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movleu", F3(2, 0x2c, 0)|MCOND(CONDLEU,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDLEU,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movleu", F3(2, 0x2c, 1)|MCOND(CONDLEU,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDLEU,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movlg", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDLG,0), MCOND(~FCONDLG,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movlg", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDLG,0), MCOND(~FCONDLG,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movlg", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDLG,0), MCOND(~FCONDLG,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movlg", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDLG,0), MCOND(~FCONDLG,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movlg", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDLG,0), MCOND(~FCONDLG,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movlg", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDLG,0), MCOND(~FCONDLG,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movlg", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDLG,0), MCOND(~FCONDLG,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movlg", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDLG,0), MCOND(~FCONDLG,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDN,0), MCOND(~FCONDN,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDN,0), MCOND(~FCONDN,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDN,0), MCOND(~FCONDN,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDN,0), MCOND(~FCONDN,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDN,0), MCOND(~FCONDN,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDN,0), MCOND(~FCONDN,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDN,0), MCOND(~FCONDN,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDN,0), MCOND(~FCONDN,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 0)|MCOND(CONDN,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDN,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 1)|MCOND(CONDN,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDN,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 0)|MCOND(CONDN,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDN,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movn", F3(2, 0x2c, 1)|MCOND(CONDN,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDN,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDNE,0), MCOND(~FCONDNE,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDNE,0), MCOND(~FCONDNE,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDNE,0), MCOND(~FCONDNE,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDNE,0), MCOND(~FCONDNE,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDNE,0), MCOND(~FCONDNE,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDNE,0), MCOND(~FCONDNE,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDNE,0), MCOND(~FCONDNE,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDNE,0), MCOND(~FCONDNE,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 0)|MCOND(CONDNE,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDNE,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 1)|MCOND(CONDNE,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDNE,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 0)|MCOND(CONDNE,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDNE,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movne", F3(2, 0x2c, 1)|MCOND(CONDNE,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDNE,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movneg", F3(2, 0x2c, 0)|MCOND(CONDNEG,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDNEG,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movneg", F3(2, 0x2c, 1)|MCOND(CONDNEG,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDNEG,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movneg", F3(2, 0x2c, 0)|MCOND(CONDNEG,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDNEG,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movneg", F3(2, 0x2c, 1)|MCOND(CONDNEG,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDNEG,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movnz", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDNZ,0), MCOND(~FCONDNZ,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDNZ,0), MCOND(~FCONDNZ,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDNZ,0), MCOND(~FCONDNZ,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDNZ,0), MCOND(~FCONDNZ,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDNZ,0), MCOND(~FCONDNZ,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDNZ,0), MCOND(~FCONDNZ,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDNZ,0), MCOND(~FCONDNZ,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDNZ,0), MCOND(~FCONDNZ,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 0)|MCOND(CONDNZ,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDNZ,~1)|XCC|(1<<12), "z,2,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 1)|MCOND(CONDNZ,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDNZ,~1)|XCC|(1<<12), "z,I,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 0)|MCOND(CONDNZ,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDNZ,~1)|(1<<12), "Z,2,d", F_ALIAS, v9 },
-{ "movnz", F3(2, 0x2c, 1)|MCOND(CONDNZ,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDNZ,~1)|(1<<12), "Z,I,d", F_ALIAS, v9 },
-{ "movo", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDO,0), MCOND(~FCONDO,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movo", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDO,0), MCOND(~FCONDO,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movo", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDO,0), MCOND(~FCONDO,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movo", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDO,0), MCOND(~FCONDO,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movo", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDO,0), MCOND(~FCONDO,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movo", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDO,0), MCOND(~FCONDO,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movo", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDO,0), MCOND(~FCONDO,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movo", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDO,0), MCOND(~FCONDO,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movpos", F3(2, 0x2c, 0)|MCOND(CONDPOS,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDPOS,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movpos", F3(2, 0x2c, 1)|MCOND(CONDPOS,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDPOS,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movpos", F3(2, 0x2c, 0)|MCOND(CONDPOS,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDPOS,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movpos", F3(2, 0x2c, 1)|MCOND(CONDPOS,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDPOS,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movu", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDU,0), MCOND(~FCONDU,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movu", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDU,0), MCOND(~FCONDU,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movu", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDU,0), MCOND(~FCONDU,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movu", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDU,0), MCOND(~FCONDU,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movu", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDU,0), MCOND(~FCONDU,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movu", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDU,0), MCOND(~FCONDU,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movu", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDU,0), MCOND(~FCONDU,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movu", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDU,0), MCOND(~FCONDU,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movue", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDUE,0), MCOND(~FCONDUE,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movue", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDUE,0), MCOND(~FCONDUE,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movue", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDUE,0), MCOND(~FCONDUE,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movue", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDUE,0), MCOND(~FCONDUE,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movue", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDUE,0), MCOND(~FCONDUE,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movue", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDUE,0), MCOND(~FCONDUE,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movue", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDUE,0), MCOND(~FCONDUE,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movue", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDUE,0), MCOND(~FCONDUE,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movug", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDUG,0), MCOND(~FCONDUG,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movug", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDUG,0), MCOND(~FCONDUG,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movug", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDUG,0), MCOND(~FCONDUG,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movug", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDUG,0), MCOND(~FCONDUG,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movug", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDUG,0), MCOND(~FCONDUG,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movug", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDUG,0), MCOND(~FCONDUG,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movug", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDUG,0), MCOND(~FCONDUG,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movug", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDUG,0), MCOND(~FCONDUG,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movuge", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDUGE,0), MCOND(~FCONDUGE,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movuge", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDUGE,0), MCOND(~FCONDUGE,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movuge", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDUGE,0), MCOND(~FCONDUGE,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movuge", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDUGE,0), MCOND(~FCONDUGE,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movuge", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDUGE,0), MCOND(~FCONDUGE,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movuge", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDUGE,0), MCOND(~FCONDUGE,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movuge", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDUGE,0), MCOND(~FCONDUGE,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movuge", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDUGE,0), MCOND(~FCONDUGE,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movul", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDUL,0), MCOND(~FCONDUL,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movul", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDUL,0), MCOND(~FCONDUL,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movul", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDUL,0), MCOND(~FCONDUL,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movul", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDUL,0), MCOND(~FCONDUL,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movul", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDUL,0), MCOND(~FCONDUL,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movul", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDUL,0), MCOND(~FCONDUL,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movul", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDUL,0), MCOND(~FCONDUL,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movul", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDUL,0), MCOND(~FCONDUL,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movule", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDULE,0), MCOND(~FCONDULE,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", 0, v9 },
-{ "movule", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDULE,0), MCOND(~FCONDULE,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", 0, v9 },
-{ "movule", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDULE,0), MCOND(~FCONDULE,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", 0, v9 },
-{ "movule", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDULE,0), MCOND(~FCONDULE,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", 0, v9 },
-{ "movule", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDULE,0), MCOND(~FCONDULE,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", 0, v9 },
-{ "movule", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDULE,0), MCOND(~FCONDULE,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", 0, v9 },
-{ "movule", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDULE,0), MCOND(~FCONDULE,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", 0, v9 },
-{ "movule", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDULE,0), MCOND(~FCONDULE,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", 0, v9 },
-{ "movvc", F3(2, 0x2c, 0)|MCOND(CONDVC,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDVC,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movvc", F3(2, 0x2c, 1)|MCOND(CONDVC,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDVC,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movvc", F3(2, 0x2c, 0)|MCOND(CONDVC,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDVC,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movvc", F3(2, 0x2c, 1)|MCOND(CONDVC,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDVC,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movvs", F3(2, 0x2c, 0)|MCOND(CONDVS,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDVS,~1)|XCC|(1<<12), "z,2,d", 0, v9 },
-{ "movvs", F3(2, 0x2c, 1)|MCOND(CONDVS,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDVS,~1)|XCC|(1<<12), "z,I,d", 0, v9 },
-{ "movvs", F3(2, 0x2c, 0)|MCOND(CONDVS,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDVS,~1)|(1<<12), "Z,2,d", 0, v9 },
-{ "movvs", F3(2, 0x2c, 1)|MCOND(CONDVS,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDVS,~1)|(1<<12), "Z,I,d", 0, v9 },
-{ "movz", F3(2, 0x2c, 0)|FCC(0)|MCOND(FCONDZ,0), MCOND(~FCONDZ,~0)|FCC(~0)|F3(~2, ~0x2c, ~0), "6,2,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 1)|FCC(0)|MCOND(FCONDZ,0), MCOND(~FCONDZ,~0)|FCC(~0)|F3(~2, ~0x2c, ~1), "6,I,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 0)|FCC(1)|MCOND(FCONDZ,0), MCOND(~FCONDZ,~0)|FCC(~1)|F3(~2, ~0x2c, ~0), "7,2,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 1)|FCC(1)|MCOND(FCONDZ,0), MCOND(~FCONDZ,~0)|FCC(~1)|F3(~2, ~0x2c, ~1), "7,I,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 0)|FCC(2)|MCOND(FCONDZ,0), MCOND(~FCONDZ,~0)|FCC(~2)|F3(~2, ~0x2c, ~0), "8,2,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 1)|FCC(2)|MCOND(FCONDZ,0), MCOND(~FCONDZ,~0)|FCC(~2)|F3(~2, ~0x2c, ~1), "8,I,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 0)|FCC(3)|MCOND(FCONDZ,0), MCOND(~FCONDZ,~0)|FCC(~3)|F3(~2, ~0x2c, ~0), "9,2,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 1)|FCC(3)|MCOND(FCONDZ,0), MCOND(~FCONDZ,~0)|FCC(~3)|F3(~2, ~0x2c, ~1), "9,I,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 0)|MCOND(CONDZ,1)|ICC, F3(~2, ~0x2c, ~0)|MCOND(~CONDZ,~1)|XCC|(1<<12), "z,2,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 1)|MCOND(CONDZ,1)|ICC, F3(~2, ~0x2c, ~1)|MCOND(~CONDZ,~1)|XCC|(1<<12), "z,I,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 0)|MCOND(CONDZ,1)|XCC, F3(~2, ~0x2c, ~0)|MCOND(~CONDZ,~1)|(1<<12), "Z,2,d", F_ALIAS, v9 },
-{ "movz", F3(2, 0x2c, 1)|MCOND(CONDZ,1)|XCC, F3(~2, ~0x2c, ~1)|MCOND(~CONDZ,~1)|(1<<12), "Z,I,d", F_ALIAS, v9 },
-
-{ "fmovda", F3F(2, 0x35, 0x102)|MCOND(CONDA,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDA,~0), "z,f,g", 0, v9 },
-{ "fmovda", F3F(2, 0x35, 0x082)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDA,~0), "6,f,g", 0, v9 },
-{ "fmovda", F3F(2, 0x35, 0x182)|MCOND(CONDA,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDA,~0), "Z,f,g", 0, v9 },
-{ "fmovda", F3F(2, 0x35, 0x0a2)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDA,~0), "7,f,g", 0, v9 },
-{ "fmovda", F3F(2, 0x35, 0x0c2)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDA,~0), "8,f,g", 0, v9 },
-{ "fmovda", F3F(2, 0x35, 0x0e2)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDA,~0), "9,f,g", 0, v9 },
-{ "fmovqa", F3F(2, 0x35, 0x103)|MCOND(CONDA,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDA,~0), "z,f,g", 0, v9 },
-{ "fmovqa", F3F(2, 0x35, 0x083)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDA,~0), "6,f,g", 0, v9 },
-{ "fmovqa", F3F(2, 0x35, 0x183)|MCOND(CONDA,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDA,~0), "Z,f,g", 0, v9 },
-{ "fmovqa", F3F(2, 0x35, 0x0a3)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDA,~0), "7,f,g", 0, v9 },
-{ "fmovqa", F3F(2, 0x35, 0x0c3)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDA,~0), "8,f,g", 0, v9 },
-{ "fmovqa", F3F(2, 0x35, 0x0e3)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDA,~0), "9,f,g", 0, v9 },
-{ "fmovsa", F3F(2, 0x35, 0x101)|MCOND(CONDA,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDA,~0), "z,f,g", 0, v9 },
-{ "fmovsa", F3F(2, 0x35, 0x081)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDA,~0), "6,f,g", 0, v9 },
-{ "fmovsa", F3F(2, 0x35, 0x181)|MCOND(CONDA,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDA,~0), "Z,f,g", 0, v9 },
-{ "fmovsa", F3F(2, 0x35, 0x0a1)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDA,~0), "7,f,g", 0, v9 },
-{ "fmovsa", F3F(2, 0x35, 0x0c1)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDA,~0), "8,f,g", 0, v9 },
-{ "fmovsa", F3F(2, 0x35, 0x0e1)|MCOND(FCONDA,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDA,~0), "9,f,g", 0, v9 },
-{ "fmovdcc", F3F(2, 0x35, 0x102)|MCOND(CONDCC,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDCC,~0), "z,f,g", 0, v9 },
-{ "fmovdcc", F3F(2, 0x35, 0x182)|MCOND(CONDCC,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDCC,~0), "Z,f,g", 0, v9 },
-{ "fmovqcc", F3F(2, 0x35, 0x103)|MCOND(CONDCC,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDCC,~0), "z,f,g", 0, v9 },
-{ "fmovqcc", F3F(2, 0x35, 0x183)|MCOND(CONDCC,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDCC,~0), "Z,f,g", 0, v9 },
-{ "fmovscc", F3F(2, 0x35, 0x101)|MCOND(CONDCC,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDCC,~0), "z,f,g", 0, v9 },
-{ "fmovscc", F3F(2, 0x35, 0x181)|MCOND(CONDCC,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDCC,~0), "Z,f,g", 0, v9 },
-{ "fmovdcs", F3F(2, 0x35, 0x102)|MCOND(CONDCS,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDCS,~0), "z,f,g", 0, v9 },
-{ "fmovdcs", F3F(2, 0x35, 0x182)|MCOND(CONDCS,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDCS,~0), "Z,f,g", 0, v9 },
-{ "fmovqcs", F3F(2, 0x35, 0x103)|MCOND(CONDCS,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDCS,~0), "z,f,g", 0, v9 },
-{ "fmovqcs", F3F(2, 0x35, 0x183)|MCOND(CONDCS,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDCS,~0), "Z,f,g", 0, v9 },
-{ "fmovscs", F3F(2, 0x35, 0x101)|MCOND(CONDCS,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDCS,~0), "z,f,g", 0, v9 },
-{ "fmovscs", F3F(2, 0x35, 0x181)|MCOND(CONDCS,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDCS,~0), "Z,f,g", 0, v9 },
-{ "fmovde", F3F(2, 0x35, 0x102)|MCOND(CONDE,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDE,~0), "z,f,g", 0, v9 },
-{ "fmovde", F3F(2, 0x35, 0x082)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDE,~0), "6,f,g", 0, v9 },
-{ "fmovde", F3F(2, 0x35, 0x182)|MCOND(CONDE,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDE,~0), "Z,f,g", 0, v9 },
-{ "fmovde", F3F(2, 0x35, 0x0a2)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDE,~0), "7,f,g", 0, v9 },
-{ "fmovde", F3F(2, 0x35, 0x0c2)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDE,~0), "8,f,g", 0, v9 },
-{ "fmovde", F3F(2, 0x35, 0x0e2)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDE,~0), "9,f,g", 0, v9 },
-{ "fmovqe", F3F(2, 0x35, 0x103)|MCOND(CONDE,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDE,~0), "z,f,g", 0, v9 },
-{ "fmovqe", F3F(2, 0x35, 0x083)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDE,~0), "6,f,g", 0, v9 },
-{ "fmovqe", F3F(2, 0x35, 0x183)|MCOND(CONDE,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDE,~0), "Z,f,g", 0, v9 },
-{ "fmovqe", F3F(2, 0x35, 0x0a3)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDE,~0), "7,f,g", 0, v9 },
-{ "fmovqe", F3F(2, 0x35, 0x0c3)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDE,~0), "8,f,g", 0, v9 },
-{ "fmovqe", F3F(2, 0x35, 0x0e3)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDE,~0), "9,f,g", 0, v9 },
-{ "fmovse", F3F(2, 0x35, 0x101)|MCOND(CONDE,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDE,~0), "z,f,g", 0, v9 },
-{ "fmovse", F3F(2, 0x35, 0x081)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDE,~0), "6,f,g", 0, v9 },
-{ "fmovse", F3F(2, 0x35, 0x181)|MCOND(CONDE,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDE,~0), "Z,f,g", 0, v9 },
-{ "fmovse", F3F(2, 0x35, 0x0a1)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDE,~0), "7,f,g", 0, v9 },
-{ "fmovse", F3F(2, 0x35, 0x0c1)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDE,~0), "8,f,g", 0, v9 },
-{ "fmovse", F3F(2, 0x35, 0x0e1)|MCOND(FCONDE,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDE,~0), "9,f,g", 0, v9 },
-{ "fmovdg", F3F(2, 0x35, 0x102)|MCOND(CONDG,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDG,~0), "z,f,g", 0, v9 },
-{ "fmovdg", F3F(2, 0x35, 0x082)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDG,~0), "6,f,g", 0, v9 },
-{ "fmovdg", F3F(2, 0x35, 0x182)|MCOND(CONDG,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDG,~0), "Z,f,g", 0, v9 },
-{ "fmovdg", F3F(2, 0x35, 0x0a2)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDG,~0), "7,f,g", 0, v9 },
-{ "fmovdg", F3F(2, 0x35, 0x0c2)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDG,~0), "8,f,g", 0, v9 },
-{ "fmovdg", F3F(2, 0x35, 0x0e2)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDG,~0), "9,f,g", 0, v9 },
-{ "fmovqg", F3F(2, 0x35, 0x103)|MCOND(CONDG,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDG,~0), "z,f,g", 0, v9 },
-{ "fmovqg", F3F(2, 0x35, 0x083)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDG,~0), "6,f,g", 0, v9 },
-{ "fmovqg", F3F(2, 0x35, 0x183)|MCOND(CONDG,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDG,~0), "Z,f,g", 0, v9 },
-{ "fmovqg", F3F(2, 0x35, 0x0a3)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDG,~0), "7,f,g", 0, v9 },
-{ "fmovqg", F3F(2, 0x35, 0x0c3)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDG,~0), "8,f,g", 0, v9 },
-{ "fmovqg", F3F(2, 0x35, 0x0e3)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDG,~0), "9,f,g", 0, v9 },
-{ "fmovsg", F3F(2, 0x35, 0x101)|MCOND(CONDG,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDG,~0), "z,f,g", 0, v9 },
-{ "fmovsg", F3F(2, 0x35, 0x081)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDG,~0), "6,f,g", 0, v9 },
-{ "fmovsg", F3F(2, 0x35, 0x181)|MCOND(CONDG,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDG,~0), "Z,f,g", 0, v9 },
-{ "fmovsg", F3F(2, 0x35, 0x0a1)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDG,~0), "7,f,g", 0, v9 },
-{ "fmovsg", F3F(2, 0x35, 0x0c1)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDG,~0), "8,f,g", 0, v9 },
-{ "fmovsg", F3F(2, 0x35, 0x0e1)|MCOND(FCONDG,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDG,~0), "9,f,g", 0, v9 },
-{ "fmovdge", F3F(2, 0x35, 0x102)|MCOND(CONDGE,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDGE,~0), "z,f,g", 0, v9 },
-{ "fmovdge", F3F(2, 0x35, 0x082)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDGE,~0), "6,f,g", 0, v9 },
-{ "fmovdge", F3F(2, 0x35, 0x182)|MCOND(CONDGE,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDGE,~0), "Z,f,g", 0, v9 },
-{ "fmovdge", F3F(2, 0x35, 0x0a2)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDGE,~0), "7,f,g", 0, v9 },
-{ "fmovdge", F3F(2, 0x35, 0x0c2)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDGE,~0), "8,f,g", 0, v9 },
-{ "fmovdge", F3F(2, 0x35, 0x0e2)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDGE,~0), "9,f,g", 0, v9 },
-{ "fmovqge", F3F(2, 0x35, 0x103)|MCOND(CONDGE,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDGE,~0), "z,f,g", 0, v9 },
-{ "fmovqge", F3F(2, 0x35, 0x083)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDGE,~0), "6,f,g", 0, v9 },
-{ "fmovqge", F3F(2, 0x35, 0x183)|MCOND(CONDGE,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDGE,~0), "Z,f,g", 0, v9 },
-{ "fmovqge", F3F(2, 0x35, 0x0a3)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDGE,~0), "7,f,g", 0, v9 },
-{ "fmovqge", F3F(2, 0x35, 0x0c3)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDGE,~0), "8,f,g", 0, v9 },
-{ "fmovqge", F3F(2, 0x35, 0x0e3)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDGE,~0), "9,f,g", 0, v9 },
-{ "fmovsge", F3F(2, 0x35, 0x101)|MCOND(CONDGE,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDGE,~0), "z,f,g", 0, v9 },
-{ "fmovsge", F3F(2, 0x35, 0x081)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDGE,~0), "6,f,g", 0, v9 },
-{ "fmovsge", F3F(2, 0x35, 0x181)|MCOND(CONDGE,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDGE,~0), "Z,f,g", 0, v9 },
-{ "fmovsge", F3F(2, 0x35, 0x0a1)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDGE,~0), "7,f,g", 0, v9 },
-{ "fmovsge", F3F(2, 0x35, 0x0c1)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDGE,~0), "8,f,g", 0, v9 },
-{ "fmovsge", F3F(2, 0x35, 0x0e1)|MCOND(FCONDGE,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDGE,~0), "9,f,g", 0, v9 },
-{ "fmovdgeu", F3F(2, 0x35, 0x102)|MCOND(CONDGEU,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDGEU,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovdgeu", F3F(2, 0x35, 0x182)|MCOND(CONDGEU,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDGEU,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovqgeu", F3F(2, 0x35, 0x103)|MCOND(CONDGEU,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDGEU,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovqgeu", F3F(2, 0x35, 0x183)|MCOND(CONDGEU,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDGEU,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovsgeu", F3F(2, 0x35, 0x101)|MCOND(CONDGEU,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDGEU,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovsgeu", F3F(2, 0x35, 0x181)|MCOND(CONDGEU,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDGEU,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovdgu", F3F(2, 0x35, 0x102)|MCOND(CONDGU,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDGU,~0), "z,f,g", 0, v9 },
-{ "fmovdgu", F3F(2, 0x35, 0x182)|MCOND(CONDGU,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDGU,~0), "Z,f,g", 0, v9 },
-{ "fmovqgu", F3F(2, 0x35, 0x103)|MCOND(CONDGU,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDGU,~0), "z,f,g", 0, v9 },
-{ "fmovqgu", F3F(2, 0x35, 0x183)|MCOND(CONDGU,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDGU,~0), "Z,f,g", 0, v9 },
-{ "fmovsgu", F3F(2, 0x35, 0x101)|MCOND(CONDGU,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDGU,~0), "z,f,g", 0, v9 },
-{ "fmovsgu", F3F(2, 0x35, 0x181)|MCOND(CONDGU,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDGU,~0), "Z,f,g", 0, v9 },
-{ "fmovdl", F3F(2, 0x35, 0x102)|MCOND(CONDL,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDL,~0), "z,f,g", 0, v9 },
-{ "fmovdl", F3F(2, 0x35, 0x082)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDL,~0), "6,f,g", 0, v9 },
-{ "fmovdl", F3F(2, 0x35, 0x182)|MCOND(CONDL,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDL,~0), "Z,f,g", 0, v9 },
-{ "fmovdl", F3F(2, 0x35, 0x0a2)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDL,~0), "7,f,g", 0, v9 },
-{ "fmovdl", F3F(2, 0x35, 0x0c2)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDL,~0), "8,f,g", 0, v9 },
-{ "fmovdl", F3F(2, 0x35, 0x0e2)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDL,~0), "9,f,g", 0, v9 },
-{ "fmovql", F3F(2, 0x35, 0x103)|MCOND(CONDL,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDL,~0), "z,f,g", 0, v9 },
-{ "fmovql", F3F(2, 0x35, 0x083)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDL,~0), "6,f,g", 0, v9 },
-{ "fmovql", F3F(2, 0x35, 0x183)|MCOND(CONDL,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDL,~0), "Z,f,g", 0, v9 },
-{ "fmovql", F3F(2, 0x35, 0x0a3)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDL,~0), "7,f,g", 0, v9 },
-{ "fmovql", F3F(2, 0x35, 0x0c3)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDL,~0), "8,f,g", 0, v9 },
-{ "fmovql", F3F(2, 0x35, 0x0e3)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDL,~0), "9,f,g", 0, v9 },
-{ "fmovsl", F3F(2, 0x35, 0x101)|MCOND(CONDL,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDL,~0), "z,f,g", 0, v9 },
-{ "fmovsl", F3F(2, 0x35, 0x081)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDL,~0), "6,f,g", 0, v9 },
-{ "fmovsl", F3F(2, 0x35, 0x181)|MCOND(CONDL,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDL,~0), "Z,f,g", 0, v9 },
-{ "fmovsl", F3F(2, 0x35, 0x0a1)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDL,~0), "7,f,g", 0, v9 },
-{ "fmovsl", F3F(2, 0x35, 0x0c1)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDL,~0), "8,f,g", 0, v9 },
-{ "fmovsl", F3F(2, 0x35, 0x0e1)|MCOND(FCONDL,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDL,~0), "9,f,g", 0, v9 },
-{ "fmovdle", F3F(2, 0x35, 0x102)|MCOND(CONDLE,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDLE,~0), "z,f,g", 0, v9 },
-{ "fmovdle", F3F(2, 0x35, 0x082)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDLE,~0), "6,f,g", 0, v9 },
-{ "fmovdle", F3F(2, 0x35, 0x182)|MCOND(CONDLE,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDLE,~0), "Z,f,g", 0, v9 },
-{ "fmovdle", F3F(2, 0x35, 0x0a2)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDLE,~0), "7,f,g", 0, v9 },
-{ "fmovdle", F3F(2, 0x35, 0x0c2)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDLE,~0), "8,f,g", 0, v9 },
-{ "fmovdle", F3F(2, 0x35, 0x0e2)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDLE,~0), "9,f,g", 0, v9 },
-{ "fmovqle", F3F(2, 0x35, 0x103)|MCOND(CONDLE,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDLE,~0), "z,f,g", 0, v9 },
-{ "fmovqle", F3F(2, 0x35, 0x083)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDLE,~0), "6,f,g", 0, v9 },
-{ "fmovqle", F3F(2, 0x35, 0x183)|MCOND(CONDLE,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDLE,~0), "Z,f,g", 0, v9 },
-{ "fmovqle", F3F(2, 0x35, 0x0a3)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDLE,~0), "7,f,g", 0, v9 },
-{ "fmovqle", F3F(2, 0x35, 0x0c3)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDLE,~0), "8,f,g", 0, v9 },
-{ "fmovqle", F3F(2, 0x35, 0x0e3)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDLE,~0), "9,f,g", 0, v9 },
-{ "fmovsle", F3F(2, 0x35, 0x101)|MCOND(CONDLE,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDLE,~0), "z,f,g", 0, v9 },
-{ "fmovsle", F3F(2, 0x35, 0x081)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDLE,~0), "6,f,g", 0, v9 },
-{ "fmovsle", F3F(2, 0x35, 0x181)|MCOND(CONDLE,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDLE,~0), "Z,f,g", 0, v9 },
-{ "fmovsle", F3F(2, 0x35, 0x0a1)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDLE,~0), "7,f,g", 0, v9 },
-{ "fmovsle", F3F(2, 0x35, 0x0c1)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDLE,~0), "8,f,g", 0, v9 },
-{ "fmovsle", F3F(2, 0x35, 0x0e1)|MCOND(FCONDLE,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDLE,~0), "9,f,g", 0, v9 },
-{ "fmovdleu", F3F(2, 0x35, 0x102)|MCOND(CONDLEU,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDLEU,~0), "z,f,g", 0, v9 },
-{ "fmovdleu", F3F(2, 0x35, 0x182)|MCOND(CONDLEU,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDLEU,~0), "Z,f,g", 0, v9 },
-{ "fmovqleu", F3F(2, 0x35, 0x103)|MCOND(CONDLEU,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDLEU,~0), "z,f,g", 0, v9 },
-{ "fmovqleu", F3F(2, 0x35, 0x183)|MCOND(CONDLEU,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDLEU,~0), "Z,f,g", 0, v9 },
-{ "fmovsleu", F3F(2, 0x35, 0x101)|MCOND(CONDLEU,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDLEU,~0), "z,f,g", 0, v9 },
-{ "fmovsleu", F3F(2, 0x35, 0x181)|MCOND(CONDLEU,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDLEU,~0), "Z,f,g", 0, v9 },
-{ "fmovdlg", F3F(2, 0x35, 0x082)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDLG,~0), "6,f,g", 0, v9 },
-{ "fmovdlg", F3F(2, 0x35, 0x0a2)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDLG,~0), "7,f,g", 0, v9 },
-{ "fmovdlg", F3F(2, 0x35, 0x0c2)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDLG,~0), "8,f,g", 0, v9 },
-{ "fmovdlg", F3F(2, 0x35, 0x0e2)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDLG,~0), "9,f,g", 0, v9 },
-{ "fmovqlg", F3F(2, 0x35, 0x083)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDLG,~0), "6,f,g", 0, v9 },
-{ "fmovqlg", F3F(2, 0x35, 0x0a3)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDLG,~0), "7,f,g", 0, v9 },
-{ "fmovqlg", F3F(2, 0x35, 0x0c3)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDLG,~0), "8,f,g", 0, v9 },
-{ "fmovqlg", F3F(2, 0x35, 0x0e3)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDLG,~0), "9,f,g", 0, v9 },
-{ "fmovslg", F3F(2, 0x35, 0x081)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDLG,~0), "6,f,g", 0, v9 },
-{ "fmovslg", F3F(2, 0x35, 0x0a1)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDLG,~0), "7,f,g", 0, v9 },
-{ "fmovslg", F3F(2, 0x35, 0x0c1)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDLG,~0), "8,f,g", 0, v9 },
-{ "fmovslg", F3F(2, 0x35, 0x0e1)|MCOND(FCONDLG,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDLG,~0), "9,f,g", 0, v9 },
-{ "fmovdlu", F3F(2, 0x35, 0x102)|MCOND(CONDLU,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDLU,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovdlu", F3F(2, 0x35, 0x182)|MCOND(CONDLU,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDLU,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovqlu", F3F(2, 0x35, 0x103)|MCOND(CONDLU,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDLU,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovqlu", F3F(2, 0x35, 0x183)|MCOND(CONDLU,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDLU,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovslu", F3F(2, 0x35, 0x101)|MCOND(CONDLU,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDLU,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovslu", F3F(2, 0x35, 0x181)|MCOND(CONDLU,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDLU,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovdn", F3F(2, 0x35, 0x102)|MCOND(CONDN,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDN,~0), "z,f,g", 0, v9 },
-{ "fmovdn", F3F(2, 0x35, 0x082)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDN,~0), "6,f,g", 0, v9 },
-{ "fmovdn", F3F(2, 0x35, 0x182)|MCOND(CONDN,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDN,~0), "Z,f,g", 0, v9 },
-{ "fmovdn", F3F(2, 0x35, 0x0a2)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDN,~0), "7,f,g", 0, v9 },
-{ "fmovdn", F3F(2, 0x35, 0x0c2)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDN,~0), "8,f,g", 0, v9 },
-{ "fmovdn", F3F(2, 0x35, 0x0e2)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDN,~0), "9,f,g", 0, v9 },
-{ "fmovqn", F3F(2, 0x35, 0x103)|MCOND(CONDN,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDN,~0), "z,f,g", 0, v9 },
-{ "fmovqn", F3F(2, 0x35, 0x083)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDN,~0), "6,f,g", 0, v9 },
-{ "fmovqn", F3F(2, 0x35, 0x183)|MCOND(CONDN,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDN,~0), "Z,f,g", 0, v9 },
-{ "fmovqn", F3F(2, 0x35, 0x0a3)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDN,~0), "7,f,g", 0, v9 },
-{ "fmovqn", F3F(2, 0x35, 0x0c3)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDN,~0), "8,f,g", 0, v9 },
-{ "fmovqn", F3F(2, 0x35, 0x0e3)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDN,~0), "9,f,g", 0, v9 },
-{ "fmovsn", F3F(2, 0x35, 0x101)|MCOND(CONDN,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDN,~0), "z,f,g", 0, v9 },
-{ "fmovsn", F3F(2, 0x35, 0x081)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDN,~0), "6,f,g", 0, v9 },
-{ "fmovsn", F3F(2, 0x35, 0x181)|MCOND(CONDN,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDN,~0), "Z,f,g", 0, v9 },
-{ "fmovsn", F3F(2, 0x35, 0x0a1)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDN,~0), "7,f,g", 0, v9 },
-{ "fmovsn", F3F(2, 0x35, 0x0c1)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDN,~0), "8,f,g", 0, v9 },
-{ "fmovsn", F3F(2, 0x35, 0x0e1)|MCOND(FCONDN,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDN,~0), "9,f,g", 0, v9 },
-{ "fmovdne", F3F(2, 0x35, 0x102)|MCOND(CONDNE,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDNE,~0), "z,f,g", 0, v9 },
-{ "fmovdne", F3F(2, 0x35, 0x082)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDNE,~0), "6,f,g", 0, v9 },
-{ "fmovdne", F3F(2, 0x35, 0x182)|MCOND(CONDNE,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDNE,~0), "Z,f,g", 0, v9 },
-{ "fmovdne", F3F(2, 0x35, 0x0a2)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDNE,~0), "7,f,g", 0, v9 },
-{ "fmovdne", F3F(2, 0x35, 0x0c2)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDNE,~0), "8,f,g", 0, v9 },
-{ "fmovdne", F3F(2, 0x35, 0x0e2)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDNE,~0), "9,f,g", 0, v9 },
-{ "fmovqne", F3F(2, 0x35, 0x103)|MCOND(CONDNE,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDNE,~0), "z,f,g", 0, v9 },
-{ "fmovqne", F3F(2, 0x35, 0x083)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDNE,~0), "6,f,g", 0, v9 },
-{ "fmovqne", F3F(2, 0x35, 0x183)|MCOND(CONDNE,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDNE,~0), "Z,f,g", 0, v9 },
-{ "fmovqne", F3F(2, 0x35, 0x0a3)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDNE,~0), "7,f,g", 0, v9 },
-{ "fmovqne", F3F(2, 0x35, 0x0c3)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDNE,~0), "8,f,g", 0, v9 },
-{ "fmovqne", F3F(2, 0x35, 0x0e3)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDNE,~0), "9,f,g", 0, v9 },
-{ "fmovsne", F3F(2, 0x35, 0x101)|MCOND(CONDNE,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDNE,~0), "z,f,g", 0, v9 },
-{ "fmovsne", F3F(2, 0x35, 0x081)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDNE,~0), "6,f,g", 0, v9 },
-{ "fmovsne", F3F(2, 0x35, 0x181)|MCOND(CONDNE,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDNE,~0), "Z,f,g", 0, v9 },
-{ "fmovsne", F3F(2, 0x35, 0x0a1)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDNE,~0), "7,f,g", 0, v9 },
-{ "fmovsne", F3F(2, 0x35, 0x0c1)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDNE,~0), "8,f,g", 0, v9 },
-{ "fmovsne", F3F(2, 0x35, 0x0e1)|MCOND(FCONDNE,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDNE,~0), "9,f,g", 0, v9 },
-{ "fmovdneg", F3F(2, 0x35, 0x102)|MCOND(CONDNEG,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDNEG,~0), "z,f,g", 0, v9 },
-{ "fmovdneg", F3F(2, 0x35, 0x182)|MCOND(CONDNEG,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDNEG,~0), "Z,f,g", 0, v9 },
-{ "fmovqneg", F3F(2, 0x35, 0x103)|MCOND(CONDNEG,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDNEG,~0), "z,f,g", 0, v9 },
-{ "fmovqneg", F3F(2, 0x35, 0x183)|MCOND(CONDNEG,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDNEG,~0), "Z,f,g", 0, v9 },
-{ "fmovsneg", F3F(2, 0x35, 0x101)|MCOND(CONDNEG,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDNEG,~0), "z,f,g", 0, v9 },
-{ "fmovsneg", F3F(2, 0x35, 0x181)|MCOND(CONDNEG,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDNEG,~0), "Z,f,g", 0, v9 },
-{ "fmovdnz", F3F(2, 0x35, 0x102)|MCOND(CONDNZ,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDNZ,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovdnz", F3F(2, 0x35, 0x082)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDNZ,~0), "6,f,g", F_ALIAS, v9 },
-{ "fmovdnz", F3F(2, 0x35, 0x182)|MCOND(CONDNZ,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDNZ,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovdnz", F3F(2, 0x35, 0x0a2)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDNZ,~0), "7,f,g", F_ALIAS, v9 },
-{ "fmovdnz", F3F(2, 0x35, 0x0c2)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDNZ,~0), "8,f,g", F_ALIAS, v9 },
-{ "fmovdnz", F3F(2, 0x35, 0x0e2)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDNZ,~0), "9,f,g", F_ALIAS, v9 },
-{ "fmovqnz", F3F(2, 0x35, 0x103)|MCOND(CONDNZ,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDNZ,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovqnz", F3F(2, 0x35, 0x083)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDNZ,~0), "6,f,g", F_ALIAS, v9 },
-{ "fmovqnz", F3F(2, 0x35, 0x183)|MCOND(CONDNZ,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDNZ,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovqnz", F3F(2, 0x35, 0x0a3)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDNZ,~0), "7,f,g", F_ALIAS, v9 },
-{ "fmovqnz", F3F(2, 0x35, 0x0c3)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDNZ,~0), "8,f,g", F_ALIAS, v9 },
-{ "fmovqnz", F3F(2, 0x35, 0x0e3)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDNZ,~0), "9,f,g", F_ALIAS, v9 },
-{ "fmovsnz", F3F(2, 0x35, 0x101)|MCOND(CONDNZ,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDNZ,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovsnz", F3F(2, 0x35, 0x081)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDNZ,~0), "6,f,g", F_ALIAS, v9 },
-{ "fmovsnz", F3F(2, 0x35, 0x181)|MCOND(CONDNZ,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDNZ,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovsnz", F3F(2, 0x35, 0x0a1)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDNZ,~0), "7,f,g", F_ALIAS, v9 },
-{ "fmovsnz", F3F(2, 0x35, 0x0c1)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDNZ,~0), "8,f,g", F_ALIAS, v9 },
-{ "fmovsnz", F3F(2, 0x35, 0x0e1)|MCOND(FCONDNZ,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDNZ,~0), "9,f,g", F_ALIAS, v9 },
-{ "fmovdo", F3F(2, 0x35, 0x082)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDO,~0), "6,f,g", 0, v9 },
-{ "fmovdo", F3F(2, 0x35, 0x0a2)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDO,~0), "7,f,g", 0, v9 },
-{ "fmovdo", F3F(2, 0x35, 0x0c2)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDO,~0), "8,f,g", 0, v9 },
-{ "fmovdo", F3F(2, 0x35, 0x0e2)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDO,~0), "9,f,g", 0, v9 },
-{ "fmovqo", F3F(2, 0x35, 0x083)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDO,~0), "6,f,g", 0, v9 },
-{ "fmovqo", F3F(2, 0x35, 0x0a3)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDO,~0), "7,f,g", 0, v9 },
-{ "fmovqo", F3F(2, 0x35, 0x0c3)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDO,~0), "8,f,g", 0, v9 },
-{ "fmovqo", F3F(2, 0x35, 0x0e3)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDO,~0), "9,f,g", 0, v9 },
-{ "fmovso", F3F(2, 0x35, 0x081)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDO,~0), "6,f,g", 0, v9 },
-{ "fmovso", F3F(2, 0x35, 0x0a1)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDO,~0), "7,f,g", 0, v9 },
-{ "fmovso", F3F(2, 0x35, 0x0c1)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDO,~0), "8,f,g", 0, v9 },
-{ "fmovso", F3F(2, 0x35, 0x0e1)|MCOND(FCONDO,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDO,~0), "9,f,g", 0, v9 },
-{ "fmovdpos", F3F(2, 0x35, 0x102)|MCOND(CONDPOS,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDPOS,~0), "z,f,g", 0, v9 },
-{ "fmovdpos", F3F(2, 0x35, 0x182)|MCOND(CONDPOS,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDPOS,~0), "Z,f,g", 0, v9 },
-{ "fmovqpos", F3F(2, 0x35, 0x103)|MCOND(CONDPOS,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDPOS,~0), "z,f,g", 0, v9 },
-{ "fmovqpos", F3F(2, 0x35, 0x183)|MCOND(CONDPOS,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDPOS,~0), "Z,f,g", 0, v9 },
-{ "fmovspos", F3F(2, 0x35, 0x101)|MCOND(CONDPOS,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDPOS,~0), "z,f,g", 0, v9 },
-{ "fmovspos", F3F(2, 0x35, 0x181)|MCOND(CONDPOS,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDPOS,~0), "Z,f,g", 0, v9 },
-{ "fmovdu", F3F(2, 0x35, 0x082)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDU,~0), "6,f,g", 0, v9 },
-{ "fmovdu", F3F(2, 0x35, 0x0a2)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDU,~0), "7,f,g", 0, v9 },
-{ "fmovdu", F3F(2, 0x35, 0x0c2)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDU,~0), "8,f,g", 0, v9 },
-{ "fmovdu", F3F(2, 0x35, 0x0e2)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDU,~0), "9,f,g", 0, v9 },
-{ "fmovqu", F3F(2, 0x35, 0x083)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDU,~0), "6,f,g", 0, v9 },
-{ "fmovqu", F3F(2, 0x35, 0x0a3)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDU,~0), "7,f,g", 0, v9 },
-{ "fmovqu", F3F(2, 0x35, 0x0c3)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDU,~0), "8,f,g", 0, v9 },
-{ "fmovqu", F3F(2, 0x35, 0x0e3)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDU,~0), "9,f,g", 0, v9 },
-{ "fmovsu", F3F(2, 0x35, 0x081)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDU,~0), "6,f,g", 0, v9 },
-{ "fmovsu", F3F(2, 0x35, 0x0a1)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDU,~0), "7,f,g", 0, v9 },
-{ "fmovsu", F3F(2, 0x35, 0x0c1)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDU,~0), "8,f,g", 0, v9 },
-{ "fmovsu", F3F(2, 0x35, 0x0e1)|MCOND(FCONDU,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDU,~0), "9,f,g", 0, v9 },
-{ "fmovdue", F3F(2, 0x35, 0x082)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDUE,~0), "6,f,g", 0, v9 },
-{ "fmovdue", F3F(2, 0x35, 0x0a2)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDUE,~0), "7,f,g", 0, v9 },
-{ "fmovdue", F3F(2, 0x35, 0x0c2)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDUE,~0), "8,f,g", 0, v9 },
-{ "fmovdue", F3F(2, 0x35, 0x0e2)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDUE,~0), "9,f,g", 0, v9 },
-{ "fmovque", F3F(2, 0x35, 0x083)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDUE,~0), "6,f,g", 0, v9 },
-{ "fmovque", F3F(2, 0x35, 0x0a3)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDUE,~0), "7,f,g", 0, v9 },
-{ "fmovque", F3F(2, 0x35, 0x0c3)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDUE,~0), "8,f,g", 0, v9 },
-{ "fmovque", F3F(2, 0x35, 0x0e3)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDUE,~0), "9,f,g", 0, v9 },
-{ "fmovsue", F3F(2, 0x35, 0x081)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDUE,~0), "6,f,g", 0, v9 },
-{ "fmovsue", F3F(2, 0x35, 0x0a1)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDUE,~0), "7,f,g", 0, v9 },
-{ "fmovsue", F3F(2, 0x35, 0x0c1)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDUE,~0), "8,f,g", 0, v9 },
-{ "fmovsue", F3F(2, 0x35, 0x0e1)|MCOND(FCONDUE,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDUE,~0), "9,f,g", 0, v9 },
-{ "fmovdug", F3F(2, 0x35, 0x082)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDUG,~0), "6,f,g", 0, v9 },
-{ "fmovdug", F3F(2, 0x35, 0x0a2)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDUG,~0), "7,f,g", 0, v9 },
-{ "fmovdug", F3F(2, 0x35, 0x0c2)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDUG,~0), "8,f,g", 0, v9 },
-{ "fmovdug", F3F(2, 0x35, 0x0e2)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDUG,~0), "9,f,g", 0, v9 },
-{ "fmovqug", F3F(2, 0x35, 0x083)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDUG,~0), "6,f,g", 0, v9 },
-{ "fmovqug", F3F(2, 0x35, 0x0a3)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDUG,~0), "7,f,g", 0, v9 },
-{ "fmovqug", F3F(2, 0x35, 0x0c3)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDUG,~0), "8,f,g", 0, v9 },
-{ "fmovqug", F3F(2, 0x35, 0x0e3)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDUG,~0), "9,f,g", 0, v9 },
-{ "fmovsug", F3F(2, 0x35, 0x081)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDUG,~0), "6,f,g", 0, v9 },
-{ "fmovsug", F3F(2, 0x35, 0x0a1)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDUG,~0), "7,f,g", 0, v9 },
-{ "fmovsug", F3F(2, 0x35, 0x0c1)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDUG,~0), "8,f,g", 0, v9 },
-{ "fmovsug", F3F(2, 0x35, 0x0e1)|MCOND(FCONDUG,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDUG,~0), "9,f,g", 0, v9 },
-{ "fmovduge", F3F(2, 0x35, 0x082)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDUGE,~0), "6,f,g", 0, v9 },
-{ "fmovduge", F3F(2, 0x35, 0x0a2)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDUGE,~0), "7,f,g", 0, v9 },
-{ "fmovduge", F3F(2, 0x35, 0x0c2)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDUGE,~0), "8,f,g", 0, v9 },
-{ "fmovduge", F3F(2, 0x35, 0x0e2)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDUGE,~0), "9,f,g", 0, v9 },
-{ "fmovquge", F3F(2, 0x35, 0x083)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDUGE,~0), "6,f,g", 0, v9 },
-{ "fmovquge", F3F(2, 0x35, 0x0a3)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDUGE,~0), "7,f,g", 0, v9 },
-{ "fmovquge", F3F(2, 0x35, 0x0c3)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDUGE,~0), "8,f,g", 0, v9 },
-{ "fmovquge", F3F(2, 0x35, 0x0e3)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDUGE,~0), "9,f,g", 0, v9 },
-{ "fmovsuge", F3F(2, 0x35, 0x081)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDUGE,~0), "6,f,g", 0, v9 },
-{ "fmovsuge", F3F(2, 0x35, 0x0a1)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDUGE,~0), "7,f,g", 0, v9 },
-{ "fmovsuge", F3F(2, 0x35, 0x0c1)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDUGE,~0), "8,f,g", 0, v9 },
-{ "fmovsuge", F3F(2, 0x35, 0x0e1)|MCOND(FCONDUGE,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDUGE,~0), "9,f,g", 0, v9 },
-{ "fmovdul", F3F(2, 0x35, 0x082)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDUL,~0), "6,f,g", 0, v9 },
-{ "fmovdul", F3F(2, 0x35, 0x0a2)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDUL,~0), "7,f,g", 0, v9 },
-{ "fmovdul", F3F(2, 0x35, 0x0c2)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDUL,~0), "8,f,g", 0, v9 },
-{ "fmovdul", F3F(2, 0x35, 0x0e2)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDUL,~0), "9,f,g", 0, v9 },
-{ "fmovqul", F3F(2, 0x35, 0x083)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDUL,~0), "6,f,g", 0, v9 },
-{ "fmovqul", F3F(2, 0x35, 0x0a3)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDUL,~0), "7,f,g", 0, v9 },
-{ "fmovqul", F3F(2, 0x35, 0x0c3)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDUL,~0), "8,f,g", 0, v9 },
-{ "fmovqul", F3F(2, 0x35, 0x0e3)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDUL,~0), "9,f,g", 0, v9 },
-{ "fmovsul", F3F(2, 0x35, 0x081)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDUL,~0), "6,f,g", 0, v9 },
-{ "fmovsul", F3F(2, 0x35, 0x0a1)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDUL,~0), "7,f,g", 0, v9 },
-{ "fmovsul", F3F(2, 0x35, 0x0c1)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDUL,~0), "8,f,g", 0, v9 },
-{ "fmovsul", F3F(2, 0x35, 0x0e1)|MCOND(FCONDUL,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDUL,~0), "9,f,g", 0, v9 },
-{ "fmovdule", F3F(2, 0x35, 0x082)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDULE,~0), "6,f,g", 0, v9 },
-{ "fmovdule", F3F(2, 0x35, 0x0a2)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDULE,~0), "7,f,g", 0, v9 },
-{ "fmovdule", F3F(2, 0x35, 0x0c2)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDULE,~0), "8,f,g", 0, v9 },
-{ "fmovdule", F3F(2, 0x35, 0x0e2)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDULE,~0), "9,f,g", 0, v9 },
-{ "fmovqule", F3F(2, 0x35, 0x083)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDULE,~0), "6,f,g", 0, v9 },
-{ "fmovqule", F3F(2, 0x35, 0x0a3)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDULE,~0), "7,f,g", 0, v9 },
-{ "fmovqule", F3F(2, 0x35, 0x0c3)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDULE,~0), "8,f,g", 0, v9 },
-{ "fmovqule", F3F(2, 0x35, 0x0e3)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDULE,~0), "9,f,g", 0, v9 },
-{ "fmovsule", F3F(2, 0x35, 0x081)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDULE,~0), "6,f,g", 0, v9 },
-{ "fmovsule", F3F(2, 0x35, 0x0a1)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDULE,~0), "7,f,g", 0, v9 },
-{ "fmovsule", F3F(2, 0x35, 0x0c1)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDULE,~0), "8,f,g", 0, v9 },
-{ "fmovsule", F3F(2, 0x35, 0x0e1)|MCOND(FCONDULE,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDULE,~0), "9,f,g", 0, v9 },
-{ "fmovdvc", F3F(2, 0x35, 0x102)|MCOND(CONDVC,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDVC,~0), "z,f,g", 0, v9 },
-{ "fmovdvc", F3F(2, 0x35, 0x182)|MCOND(CONDVC,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDVC,~0), "Z,f,g", 0, v9 },
-{ "fmovqvc", F3F(2, 0x35, 0x103)|MCOND(CONDVC,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDVC,~0), "z,f,g", 0, v9 },
-{ "fmovqvc", F3F(2, 0x35, 0x183)|MCOND(CONDVC,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDVC,~0), "Z,f,g", 0, v9 },
-{ "fmovsvc", F3F(2, 0x35, 0x101)|MCOND(CONDVC,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDVC,~0), "z,f,g", 0, v9 },
-{ "fmovsvc", F3F(2, 0x35, 0x181)|MCOND(CONDVC,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDVC,~0), "Z,f,g", 0, v9 },
-{ "fmovdvs", F3F(2, 0x35, 0x102)|MCOND(CONDVS,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDVS,~0), "z,f,g", 0, v9 },
-{ "fmovdvs", F3F(2, 0x35, 0x182)|MCOND(CONDVS,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDVS,~0), "Z,f,g", 0, v9 },
-{ "fmovqvs", F3F(2, 0x35, 0x103)|MCOND(CONDVS,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDVS,~0), "z,f,g", 0, v9 },
-{ "fmovqvs", F3F(2, 0x35, 0x183)|MCOND(CONDVS,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDVS,~0), "Z,f,g", 0, v9 },
-{ "fmovsvs", F3F(2, 0x35, 0x101)|MCOND(CONDVS,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDVS,~0), "z,f,g", 0, v9 },
-{ "fmovsvs", F3F(2, 0x35, 0x181)|MCOND(CONDVS,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDVS,~0), "Z,f,g", 0, v9 },
-{ "fmovdz", F3F(2, 0x35, 0x102)|MCOND(CONDZ,0), F3F(~2, ~0x35, ~0x102)|MCOND(~CONDZ,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovdz", F3F(2, 0x35, 0x082)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x082)|MCOND(~FCONDZ,~0), "6,f,g", F_ALIAS, v9 },
-{ "fmovdz", F3F(2, 0x35, 0x182)|MCOND(CONDZ,0), F3F(~2, ~0x35, ~0x182)|MCOND(~CONDZ,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovdz", F3F(2, 0x35, 0x0a2)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0a2)|MCOND(~FCONDZ,~0), "7,f,g", F_ALIAS, v9 },
-{ "fmovdz", F3F(2, 0x35, 0x0c2)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0c2)|MCOND(~FCONDZ,~0), "8,f,g", F_ALIAS, v9 },
-{ "fmovdz", F3F(2, 0x35, 0x0e2)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0e2)|MCOND(~FCONDZ,~0), "9,f,g", F_ALIAS, v9 },
-{ "fmovqz", F3F(2, 0x35, 0x103)|MCOND(CONDZ,0), F3F(~2, ~0x35, ~0x103)|MCOND(~CONDZ,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovqz", F3F(2, 0x35, 0x083)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x083)|MCOND(~FCONDZ,~0), "6,f,g", F_ALIAS, v9 },
-{ "fmovqz", F3F(2, 0x35, 0x183)|MCOND(CONDZ,0), F3F(~2, ~0x35, ~0x183)|MCOND(~CONDZ,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovqz", F3F(2, 0x35, 0x0a3)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0a3)|MCOND(~FCONDZ,~0), "7,f,g", F_ALIAS, v9 },
-{ "fmovqz", F3F(2, 0x35, 0x0c3)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0c3)|MCOND(~FCONDZ,~0), "8,f,g", F_ALIAS, v9 },
-{ "fmovqz", F3F(2, 0x35, 0x0e3)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0e3)|MCOND(~FCONDZ,~0), "9,f,g", F_ALIAS, v9 },
-{ "fmovsz", F3F(2, 0x35, 0x101)|MCOND(CONDZ,0), F3F(~2, ~0x35, ~0x101)|MCOND(~CONDZ,~0), "z,f,g", F_ALIAS, v9 },
-{ "fmovsz", F3F(2, 0x35, 0x081)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x081)|MCOND(~FCONDZ,~0), "6,f,g", F_ALIAS, v9 },
-{ "fmovsz", F3F(2, 0x35, 0x181)|MCOND(CONDZ,0), F3F(~2, ~0x35, ~0x181)|MCOND(~CONDZ,~0), "Z,f,g", F_ALIAS, v9 },
-{ "fmovsz", F3F(2, 0x35, 0x0a1)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0a1)|MCOND(~FCONDZ,~0), "7,f,g", F_ALIAS, v9 },
-{ "fmovsz", F3F(2, 0x35, 0x0c1)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0c1)|MCOND(~FCONDZ,~0), "8,f,g", F_ALIAS, v9 },
-{ "fmovsz", F3F(2, 0x35, 0x0e1)|MCOND(FCONDZ,0), F3F(~2, ~0x35, ~0x0e1)|MCOND(~FCONDZ,~0), "9,f,g", F_ALIAS, v9 },
-
-#define brfc(opcode, mask, lose, flags) \
- { opcode, (mask), ANNUL|(lose), "l", flags|F_DELAYED, v6 }, \
- { opcode, (mask)|ANNUL, (lose), ",a l", flags|F_DELAYED, v6 }
-
-#define brfcx(opcode, mask, lose, flags) /* v9 */ \
- { opcode, FBFCC(0)|(mask), ANNUL|BPRED|FBFCC(~0)|(lose), "6,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(0)|(mask)|ANNUL, BPRED|FBFCC(~0)|(lose), ",a 6,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(0)|(mask), ANNUL|BPRED|FBFCC(~0)|(lose), ",N 6,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(0)|(mask)|ANNUL, BPRED|FBFCC(~0)|(lose), ",a,N 6,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(0)|(mask)|BPRED, ANNUL|FBFCC(~0)|(lose), ",T 6,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(0)|(mask)|BPRED|ANNUL, FBFCC(~0)|(lose), ",a,T 6,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(1)|(mask), ANNUL|BPRED|FBFCC(~1)|(lose), "7,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(1)|(mask)|ANNUL, BPRED|FBFCC(~1)|(lose), ",a 7,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(1)|(mask), ANNUL|BPRED|FBFCC(~1)|(lose), ",N 7,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(1)|(mask)|ANNUL, BPRED|FBFCC(~1)|(lose), ",a,N 7,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(1)|(mask)|BPRED, ANNUL|FBFCC(~1)|(lose), ",T 7,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(1)|(mask)|BPRED|ANNUL, FBFCC(~1)|(lose), ",a,T 7,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(2)|(mask), ANNUL|BPRED|FBFCC(~2)|(lose), "8,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(2)|(mask)|ANNUL, BPRED|FBFCC(~2)|(lose), ",a 8,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(2)|(mask), ANNUL|BPRED|FBFCC(~2)|(lose), ",N 8,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(2)|(mask)|ANNUL, BPRED|FBFCC(~2)|(lose), ",a,N 8,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(2)|(mask)|BPRED, ANNUL|FBFCC(~2)|(lose), ",T 8,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(2)|(mask)|BPRED|ANNUL, FBFCC(~2)|(lose), ",a,T 8,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(3)|(mask), ANNUL|BPRED|FBFCC(~3)|(lose), "9,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(3)|(mask)|ANNUL, BPRED|FBFCC(~3)|(lose), ",a 9,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(3)|(mask), ANNUL|BPRED|FBFCC(~3)|(lose), ",N 9,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(3)|(mask)|ANNUL, BPRED|FBFCC(~3)|(lose), ",a,N 9,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(3)|(mask)|BPRED, ANNUL|FBFCC(~3)|(lose), ",T 9,G", flags|F_DELAYED, v9 }, \
- { opcode, FBFCC(3)|(mask)|BPRED|ANNUL, FBFCC(~3)|(lose), ",a,T 9,G", flags|F_DELAYED, v9 }
-
-#define condfc(fop, cop, mask, flags) \
- brfc(fop, F2(0, 6)|COND(mask), F2(~0, ~6)|COND(~(mask)), flags), \
- brfcx(fop, F2(0, 5)|COND(mask), F2(~0, ~5)|COND(~(mask)), flags), /* v9 */ \
- brfc(cop, F2(0, 7)|COND(mask), F2(~0, ~7)|COND(~(mask)), flags) \
-
-#define condf(fop, mask, flags) \
- brfcx(fop, F2(0, 5)|COND(mask), F2(~0, ~5)|COND(~(mask)), flags), /* v9 */ \
- brfc(fop, F2(0, 6)|COND(mask), F2(~0, ~6)|COND(~(mask)), flags)
-
-condfc("fb", "cb", 0x8, 0),
-condfc("fba", "cba", 0x8, F_ALIAS),
-condfc("fbe", "cb0", 0x9, 0),
-condf("fbz", 0x9, F_ALIAS),
-condfc("fbg", "cb2", 0x6, 0),
-condfc("fbge", "cb02", 0xb, 0),
-condfc("fbl", "cb1", 0x4, 0),
-condfc("fble", "cb01", 0xd, 0),
-condfc("fblg", "cb12", 0x2, 0),
-condfc("fbn", "cbn", 0x0, 0),
-condfc("fbne", "cb123", 0x1, 0),
-condf("fbnz", 0x1, F_ALIAS),
-condfc("fbo", "cb012", 0xf, 0),
-condfc("fbu", "cb3", 0x7, 0),
-condfc("fbue", "cb03", 0xa, 0),
-condfc("fbug", "cb23", 0x5, 0),
-condfc("fbuge", "cb023", 0xc, 0),
-condfc("fbul", "cb13", 0x3, 0),
-condfc("fbule", "cb013", 0xe, 0),
-
-#undef condfc
-#undef brfc
-#undef brfcx /* v9 */
-
-{ "jmp", F3(2, 0x38, 0), F3(~2, ~0x38, ~0)|RD_G0|ASI(~0), "1+2", F_DELAYED, v6 }, /* jmpl rs1+rs2,%g0 */
-{ "jmp", F3(2, 0x38, 0), F3(~2, ~0x38, ~0)|RD_G0|ASI_RS2(~0), "1", F_DELAYED, v6 }, /* jmpl rs1+%g0,%g0 */
-{ "jmp", F3(2, 0x38, 1), F3(~2, ~0x38, ~1)|RD_G0, "1+i", F_DELAYED, v6 }, /* jmpl rs1+i,%g0 */
-{ "jmp", F3(2, 0x38, 1), F3(~2, ~0x38, ~1)|RD_G0, "i+1", F_DELAYED, v6 }, /* jmpl i+rs1,%g0 */
-{ "jmp", F3(2, 0x38, 1), F3(~2, ~0x38, ~1)|RD_G0|RS1_G0, "i", F_DELAYED, v6 }, /* jmpl %g0+i,%g0 */
-
-{ "nop", F2(0, 4), 0xfeffffff, "", 0, v6 }, /* sethi 0, %g0 */
-
-{ "set", F2(0x0, 0x4), F2(~0x0, ~0x4), "Sh,d", F_ALIAS, v6 },
-
-{ "sethi", F2(0x0, 0x4), F2(~0x0, ~0x4), "h,d", 0, v6 },
-
-{ "taddcc", F3(2, 0x20, 0), F3(~2, ~0x20, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "taddcc", F3(2, 0x20, 1), F3(~2, ~0x20, ~1), "1,i,d", 0, v6 },
-{ "taddcc", F3(2, 0x20, 1), F3(~2, ~0x20, ~1), "i,1,d", 0, v6 },
-{ "taddcctv", F3(2, 0x22, 0), F3(~2, ~0x22, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "taddcctv", F3(2, 0x22, 1), F3(~2, ~0x22, ~1), "1,i,d", 0, v6 },
-{ "taddcctv", F3(2, 0x22, 1), F3(~2, ~0x22, ~1), "i,1,d", 0, v6 },
-
-{ "tsubcc", F3(2, 0x21, 0), F3(~2, ~0x21, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "tsubcc", F3(2, 0x21, 1), F3(~2, ~0x21, ~1), "1,i,d", 0, v6 },
-{ "tsubcctv", F3(2, 0x23, 0), F3(~2, ~0x23, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "tsubcctv", F3(2, 0x23, 1), F3(~2, ~0x23, ~1), "1,i,d", 0, v6 },
-
-/* FIXME Thise is marked F_ALIAS, so that it won't conflict with new v9
- insns when v9 is present. Otherwise, the F_ALIAS flag is ignored. */
-{ "unimp", F2(0x0, 0x0), 0xffc00000, "n", F_ALIAS, v6 },
-{ "illtrap", F2(0, 0), F2(~0, ~0)|RD_G0, "n", 0, v9 },
-
-/* This *is* a commutative instruction. */
-{ "xnor", F3(2, 0x07, 0), F3(~2, ~0x07, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "xnor", F3(2, 0x07, 1), F3(~2, ~0x07, ~1), "1,i,d", 0, v6 },
-{ "xnor", F3(2, 0x07, 1), F3(~2, ~0x07, ~1), "i,1,d", 0, v6 },
-/* This *is* a commutative instruction. */
-{ "xnorcc", F3(2, 0x17, 0), F3(~2, ~0x17, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "xnorcc", F3(2, 0x17, 1), F3(~2, ~0x17, ~1), "1,i,d", 0, v6 },
-{ "xnorcc", F3(2, 0x17, 1), F3(~2, ~0x17, ~1), "i,1,d", 0, v6 },
-{ "xor", F3(2, 0x03, 0), F3(~2, ~0x03, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "xor", F3(2, 0x03, 1), F3(~2, ~0x03, ~1), "1,i,d", 0, v6 },
-{ "xor", F3(2, 0x03, 1), F3(~2, ~0x03, ~1), "i,1,d", 0, v6 },
-{ "xorcc", F3(2, 0x13, 0), F3(~2, ~0x13, ~0)|ASI(~0), "1,2,d", 0, v6 },
-{ "xorcc", F3(2, 0x13, 1), F3(~2, ~0x13, ~1), "1,i,d", 0, v6 },
-{ "xorcc", F3(2, 0x13, 1), F3(~2, ~0x13, ~1), "i,1,d", 0, v6 },
-
-{ "not", F3(2, 0x07, 0), F3(~2, ~0x07, ~0)|ASI(~0), "1,d", F_ALIAS, v6 }, /* xnor rs1,%0,rd */
-{ "not", F3(2, 0x07, 0), F3(~2, ~0x07, ~0)|ASI(~0), "r", F_ALIAS, v6 }, /* xnor rd,%0,rd */
-
-{ "btog", F3(2, 0x03, 0), F3(~2, ~0x03, ~0)|ASI(~0), "2,r", F_ALIAS, v6 }, /* xor rd,rs2,rd */
-{ "btog", F3(2, 0x03, 1), F3(~2, ~0x03, ~1), "i,r", F_ALIAS, v6 }, /* xor rd,i,rd */
-
-/* FPop1 and FPop2 are not instructions. Don't accept them. */
-
-{ "fdtoi", F3F(2, 0x34, 0x0d2), F3F(~2, ~0x34, ~0x0d2)|RS1_G0, "B,g", 0, v6 },
-{ "fstoi", F3F(2, 0x34, 0x0d1), F3F(~2, ~0x34, ~0x0d1)|RS1_G0, "f,g", 0, v6 },
-{ "fqtoi", F3F(2, 0x34, 0x0d3), F3F(~2, ~0x34, ~0x0d3)|RS1_G0, "R,g", 0, v8 },
-
-{ "fdtox", F3F(2, 0x34, 0x082), F3F(~2, ~0x34, ~0x082)|RS1_G0, "B,g", 0, v9 },
-{ "fstox", F3F(2, 0x34, 0x081), F3F(~2, ~0x34, ~0x081)|RS1_G0, "f,g", 0, v9 },
-{ "fqtox", F3F(2, 0x34, 0x083), F3F(~2, ~0x34, ~0x083)|RS1_G0, "R,g", 0, v9 },
-
-{ "fitod", F3F(2, 0x34, 0x0c8), F3F(~2, ~0x34, ~0x0c8)|RS1_G0, "f,H", 0, v6 },
-{ "fitos", F3F(2, 0x34, 0x0c4), F3F(~2, ~0x34, ~0x0c4)|RS1_G0, "f,g", 0, v6 },
-{ "fitoq", F3F(2, 0x34, 0x0cc), F3F(~2, ~0x34, ~0x0cc)|RS1_G0, "f,J", 0, v8 },
-
-{ "fxtod", F3F(2, 0x34, 0x088), F3F(~2, ~0x34, ~0x088)|RS1_G0, "f,H", 0, v9 },
-{ "fxtos", F3F(2, 0x34, 0x084), F3F(~2, ~0x34, ~0x084)|RS1_G0, "f,g", 0, v9 },
-{ "fxtoq", F3F(2, 0x34, 0x08c), F3F(~2, ~0x34, ~0x08c)|RS1_G0, "f,J", 0, v9 },
-
-{ "fdtoq", F3F(2, 0x34, 0x0ce), F3F(~2, ~0x34, ~0x0ce)|RS1_G0, "B,J", 0, v8 },
-{ "fdtos", F3F(2, 0x34, 0x0c6), F3F(~2, ~0x34, ~0x0c6)|RS1_G0, "B,g", 0, v6 },
-{ "fqtod", F3F(2, 0x34, 0x0cb), F3F(~2, ~0x34, ~0x0cb)|RS1_G0, "R,H", 0, v8 },
-{ "fqtos", F3F(2, 0x34, 0x0c7), F3F(~2, ~0x34, ~0x0c7)|RS1_G0, "R,g", 0, v8 },
-{ "fstod", F3F(2, 0x34, 0x0c9), F3F(~2, ~0x34, ~0x0c9)|RS1_G0, "f,H", 0, v6 },
-{ "fstoq", F3F(2, 0x34, 0x0cd), F3F(~2, ~0x34, ~0x0cd)|RS1_G0, "f,J", 0, v8 },
-
-{ "fdivd", F3F(2, 0x34, 0x04e), F3F(~2, ~0x34, ~0x04e), "v,B,H", 0, v6 },
-{ "fdivq", F3F(2, 0x34, 0x04f), F3F(~2, ~0x34, ~0x04f), "V,R,J", 0, v8 },
-{ "fdivs", F3F(2, 0x34, 0x04d), F3F(~2, ~0x34, ~0x04d), "e,f,g", 0, v6 },
-{ "fmuld", F3F(2, 0x34, 0x04a), F3F(~2, ~0x34, ~0x04a), "v,B,H", 0, v6 },
-{ "fmulq", F3F(2, 0x34, 0x04b), F3F(~2, ~0x34, ~0x04b), "V,R,J", 0, v8 },
-{ "fmuls", F3F(2, 0x34, 0x049), F3F(~2, ~0x34, ~0x049), "e,f,g", 0, v6 },
-
-{ "fdmulq", F3F(2, 0x34, 0x06e), F3F(~2, ~0x34, ~0x06e), "v,B,J", 0, v8 },
-{ "fsmuld", F3F(2, 0x34, 0x069), F3F(~2, ~0x34, ~0x069), "e,f,H", 0, v8 },
-
-{ "fsqrtd", F3F(2, 0x34, 0x02a), F3F(~2, ~0x34, ~0x02a)|RS1_G0, "B,H", 0, v7 },
-{ "fsqrtq", F3F(2, 0x34, 0x02b), F3F(~2, ~0x34, ~0x02b)|RS1_G0, "R,J", 0, v8 },
-{ "fsqrts", F3F(2, 0x34, 0x029), F3F(~2, ~0x34, ~0x029)|RS1_G0, "f,g", 0, v7 },
-
-{ "fabsd", F3F(2, 0x34, 0x00a), F3F(~2, ~0x34, ~0x00a)|RS1_G0, "B,H", 0, v9 },
-{ "fabsq", F3F(2, 0x34, 0x00b), F3F(~2, ~0x34, ~0x00b)|RS1_G0, "R,J", 0, v9 },
-{ "fabss", F3F(2, 0x34, 0x009), F3F(~2, ~0x34, ~0x009)|RS1_G0, "f,g", 0, v6 },
-{ "fmovd", F3F(2, 0x34, 0x002), F3F(~2, ~0x34, ~0x002)|RS1_G0, "B,H", 0, v9 },
-{ "fmovq", F3F(2, 0x34, 0x003), F3F(~2, ~0x34, ~0x003)|RS1_G0, "R,J", 0, v9 },
-{ "fmovs", F3F(2, 0x34, 0x001), F3F(~2, ~0x34, ~0x001)|RS1_G0, "f,g", 0, v6 },
-{ "fnegd", F3F(2, 0x34, 0x006), F3F(~2, ~0x34, ~0x006)|RS1_G0, "B,H", 0, v9 },
-{ "fnegq", F3F(2, 0x34, 0x007), F3F(~2, ~0x34, ~0x007)|RS1_G0, "R,J", 0, v9 },
-{ "fnegs", F3F(2, 0x34, 0x005), F3F(~2, ~0x34, ~0x005)|RS1_G0, "f,g", 0, v6 },
-
-{ "faddd", F3F(2, 0x34, 0x042), F3F(~2, ~0x34, ~0x042), "v,B,H", 0, v6 },
-{ "faddq", F3F(2, 0x34, 0x043), F3F(~2, ~0x34, ~0x043), "V,R,J", 0, v8 },
-{ "fadds", F3F(2, 0x34, 0x041), F3F(~2, ~0x34, ~0x041), "e,f,g", 0, v6 },
-{ "fsubd", F3F(2, 0x34, 0x046), F3F(~2, ~0x34, ~0x046), "v,B,H", 0, v6 },
-{ "fsubq", F3F(2, 0x34, 0x047), F3F(~2, ~0x34, ~0x047), "V,R,J", 0, v8 },
-{ "fsubs", F3F(2, 0x34, 0x045), F3F(~2, ~0x34, ~0x045), "e,f,g", 0, v6 },
-
-#define CMPFCC(x) (((x)&0x3)<<25)
-
-{ "fcmpd", F3F(2, 0x35, 0x052), F3F(~2, ~0x35, ~0x052)|RD_G0, "v,B", 0, v6 },
-{ "fcmpd", CMPFCC(0)|F3F(2, 0x35, 0x052), CMPFCC(~0)|F3F(~2, ~0x35, ~0x052), "6,v,B", 0, v9 },
-{ "fcmpd", CMPFCC(1)|F3F(2, 0x35, 0x052), CMPFCC(~1)|F3F(~2, ~0x35, ~0x052), "7,v,B", 0, v9 },
-{ "fcmpd", CMPFCC(2)|F3F(2, 0x35, 0x052), CMPFCC(~2)|F3F(~2, ~0x35, ~0x052), "8,v,B", 0, v9 },
-{ "fcmpd", CMPFCC(3)|F3F(2, 0x35, 0x052), CMPFCC(~3)|F3F(~2, ~0x35, ~0x052), "9,v,B", 0, v9 },
-{ "fcmped", F3F(2, 0x35, 0x056), F3F(~2, ~0x35, ~0x056)|RD_G0, "v,B", 0, v6 },
-{ "fcmped", CMPFCC(0)|F3F(2, 0x35, 0x056), CMPFCC(~0)|F3F(~2, ~0x35, ~0x056), "6,v,B", 0, v9 },
-{ "fcmped", CMPFCC(1)|F3F(2, 0x35, 0x056), CMPFCC(~1)|F3F(~2, ~0x35, ~0x056), "7,v,B", 0, v9 },
-{ "fcmped", CMPFCC(2)|F3F(2, 0x35, 0x056), CMPFCC(~2)|F3F(~2, ~0x35, ~0x056), "8,v,B", 0, v9 },
-{ "fcmped", CMPFCC(3)|F3F(2, 0x35, 0x056), CMPFCC(~3)|F3F(~2, ~0x35, ~0x056), "9,v,B", 0, v9 },
-{ "fcmpq", F3F(2, 0x34, 0x053), F3F(~2, ~0x34, ~0x053)|RD_G0, "V,R", 0, v8 },
-{ "fcmpq", CMPFCC(0)|F3F(2, 0x35, 0x053), CMPFCC(~0)|F3F(~2, ~0x35, ~0x053), "6,V,R", 0, v9 },
-{ "fcmpq", CMPFCC(1)|F3F(2, 0x35, 0x053), CMPFCC(~1)|F3F(~2, ~0x35, ~0x053), "7,V,R", 0, v9 },
-{ "fcmpq", CMPFCC(2)|F3F(2, 0x35, 0x053), CMPFCC(~2)|F3F(~2, ~0x35, ~0x053), "8,V,R", 0, v9 },
-{ "fcmpq", CMPFCC(3)|F3F(2, 0x35, 0x053), CMPFCC(~3)|F3F(~2, ~0x35, ~0x053), "9,V,R", 0, v9 },
-{ "fcmpeq", F3F(2, 0x34, 0x057), F3F(~2, ~0x34, ~0x057)|RD_G0, "V,R", 0, v8 },
-{ "fcmpeq", CMPFCC(0)|F3F(2, 0x35, 0x057), CMPFCC(~0)|F3F(~2, ~0x35, ~0x057), "6,V,R", 0, v9 },
-{ "fcmpeq", CMPFCC(1)|F3F(2, 0x35, 0x057), CMPFCC(~1)|F3F(~2, ~0x35, ~0x057), "7,V,R", 0, v9 },
-{ "fcmpeq", CMPFCC(2)|F3F(2, 0x35, 0x057), CMPFCC(~2)|F3F(~2, ~0x35, ~0x057), "8,V,R", 0, v9 },
-{ "fcmpeq", CMPFCC(3)|F3F(2, 0x35, 0x057), CMPFCC(~3)|F3F(~2, ~0x35, ~0x057), "9,V,R", 0, v9 },
-{ "fcmps", F3F(2, 0x35, 0x051), F3F(~2, ~0x35, ~0x051)|RD_G0, "e,f", 0, v6 },
-{ "fcmps", CMPFCC(0)|F3F(2, 0x35, 0x051), CMPFCC(~0)|F3F(~2, ~0x35, ~0x051), "6,e,f", 0, v9 },
-{ "fcmps", CMPFCC(1)|F3F(2, 0x35, 0x051), CMPFCC(~1)|F3F(~2, ~0x35, ~0x051), "7,e,f", 0, v9 },
-{ "fcmps", CMPFCC(2)|F3F(2, 0x35, 0x051), CMPFCC(~2)|F3F(~2, ~0x35, ~0x051), "8,e,f", 0, v9 },
-{ "fcmps", CMPFCC(3)|F3F(2, 0x35, 0x051), CMPFCC(~3)|F3F(~2, ~0x35, ~0x051), "9,e,f", 0, v9 },
-{ "fcmpes", F3F(2, 0x35, 0x055), F3F(~2, ~0x35, ~0x055)|RD_G0, "e,f", 0, v6 },
-{ "fcmpes", CMPFCC(0)|F3F(2, 0x35, 0x055), CMPFCC(~0)|F3F(~2, ~0x35, ~0x055), "6,e,f", 0, v9 },
-{ "fcmpes", CMPFCC(1)|F3F(2, 0x35, 0x055), CMPFCC(~1)|F3F(~2, ~0x35, ~0x055), "7,e,f", 0, v9 },
-{ "fcmpes", CMPFCC(2)|F3F(2, 0x35, 0x055), CMPFCC(~2)|F3F(~2, ~0x35, ~0x055), "8,e,f", 0, v9 },
-{ "fcmpes", CMPFCC(3)|F3F(2, 0x35, 0x055), CMPFCC(~3)|F3F(~2, ~0x35, ~0x055), "9,e,f", 0, v9 },
-
-/* FIXME These are marked F_ALIAS, so that they won't conflict with new v9
- insns when v9 is present. Otherwise, the F_ALIAS flag is ignored. */
-{ "cpop1", F3(2, 0x36, 0), F3(~2, ~0x36, ~1), "[1+2],d", F_ALIAS, v6 },
-{ "cpop2", F3(2, 0x37, 0), F3(~2, ~0x37, ~1), "[1+2],d", F_ALIAS, v6 },
-{ "impdep1", F3(2, 0x36, 0), F3(~2, ~0x36, ~1), "[1+2],d", 0, v9 },
-{ "impdep2", F3(2, 0x37, 0), F3(~2, ~0x37, ~1), "[1+2],d", 0, v9 },
-
-{ "casa", F3(3, 0x3c, 0), F3(~3, ~0x3c, ~0), "[1]A,2,d", 0, v9 },
-{ "casa", F3(3, 0x3c, 1), F3(~3, ~0x3c, ~1), "[1]o,2,d", 0, v9 },
-{ "casxa", F3(3, 0x3e, 0), F3(~3, ~0x3e, ~0), "[1]A,2,d", 0, v9 },
-{ "casxa", F3(3, 0x3e, 1), F3(~3, ~0x3e, ~1), "[1]o,2,d", 0, v9 },
-
-};
-
-const int bfd_sparc_num_opcodes = ((sizeof sparc_opcodes)/(sizeof sparc_opcodes[0]));
diff --git a/bfd/startcom-p b/bfd/startcom-p
deleted file mode 100755
index 0748fad..0000000
--- a/bfd/startcom-p
+++ /dev/null
@@ -1,12 +0,0 @@
-# sed script for preprocessing BFD header files
-# <start comment> activity:
-/^\/\*$/{
-N
-# Delete empty comment blocks
-/^\/\*\n\*\/ *$/d
-# Transpose <start comment><blank line>
-s/^\/\*\n *$/\
-\/*/
-# merge <start comment> on line by itself with following line
-s/^\/\*\n\(.*\)/\/* \1/
-}
diff --git a/bfd/tolibbfd b/bfd/tolibbfd
deleted file mode 100755
index ef9531e..0000000
--- a/bfd/tolibbfd
+++ /dev/null
@@ -1,4 +0,0 @@
-/---------------START FROM/,/---------------END FROM/d
-/\/\*:libbfd.c\*\//r libbfd.ip
-/\/\*:cache.c\*\//r cache.ip
-/\/\*:reloc.c\*\//r reloc.ip
diff --git a/bfd/tolibcoff b/bfd/tolibcoff
deleted file mode 100755
index 548c8ba..0000000
--- a/bfd/tolibcoff
+++ /dev/null
@@ -1 +0,0 @@
-/\/\*:coffcode.h\*\//r coffcode.p
diff --git a/bfd/trad-core.h b/bfd/trad-core.h
deleted file mode 100644
index b86f485..0000000
--- a/bfd/trad-core.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Declarations of BFD back end for traditional Unix core files
- Copyright (C) 1990-1991 Free Software Foundation, Inc.
- Written by Cygnus Support. Mostly John Gilmore's fault.
-
-This file is part of BFD, the Binary File Descriptor library.
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
-
-#include "ansidecl.h"
-
-/* forward declaration */
-PROTO (bfd_target *, trad_unix_core_file_p, (bfd *abfd));
-PROTO (char *, trad_unix_core_file_failing_command, (bfd *abfd));
-PROTO (int, trad_unix_core_file_failing_signal, (bfd *abfd));
-PROTO (boolean, trad_unix_core_file_matches_executable_p,
- (bfd *core_bfd, bfd *exec_bfd));
diff --git a/bfd/unPROTO b/bfd/unPROTO
deleted file mode 100755
index a6f9520..0000000
--- a/bfd/unPROTO
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# The PROTO macro is a subterfuge to be compatible with both ANSI and K&R
-# declaration syntax. It's not widely known, so for the docn just map the
-# thing to ANSI declaration syntax.
-#
-# First, join up defns broken across multiple lines in source---but leave
-# any linebreaks, to prettify our examples
-:pbegn
-/PROTO(.*, *$/N
-s/\n/?/
-t pbegn
-s/?/\
-/g
-# Now actually do the PROTO interpretation.
-# A PROTO invocation looks like
-# PROTO( resulttype, function, (arglist));
-s/[ ]*PROTO(\(.*\),[\n ]*\(.*\),[\n ]*\((.*)\));/\1 \2\3;/
-